superlinear-ai/raglite
🥤 RAGLite is a Python toolkit for Retrieval-Augmented Generation (RAG) with DuckDB or PostgreSQL
What it solves
RAGLite는 Retrieval-Augmented Generation(RAG) 파이프라인 구현을 단순화하기 위해 설계된 Python 툴킷입니다. PyTorch나 LangChain과 같은 무거운 의존성을 관리하는 복잡성을 없애고, DuckDB나 PostgreSQL과 같은 경량 데이터베이스를 사용해 문서 처리, 검색, 생성용 고성능 도구를 제공합니다.
How it works
- Data Ingestion: 문서(PDF 포함)를 Markdown으로 변환하고, 의미론적 청킹 및 레이트 청킹과 같은 고급 청킹 기법을 사용해 임베딩 데이터를 준비합니다.
- Storage & Search: DuckDB 또는 PostgreSQL을 활용해 키워드(FTS/tsvector)와 벡터(VSS/pgvector) 검색을 모두 지원, 하이브리드 검색 기능을 구현합니다.
- Retrieval Pipeline: LLM이 검색 필요 여부를 결정하는 적응형 검색,
rerankers라이브러리를 통한 재랭킹, 검색 결과 최적화를 위한 폐쇄형 선형 쿼리 어댑터를 지원합니다. - Integration: LiteLLM을 이용해 공급자에 구애받지 않는 LLM 및 임베딩 모델에 접근하고, Claude Desktop 등 클라이언트와 연결할 수 있는 Model Context Protocol(MCP) 서버를 내장합니다.
Who it’s for
"비대해진" 의존성을 피하고 로컬(llama.cpp) 및 원격 LLM 공급자를 모두 지원하는 빠르고 관용적이며 확장 가능한 RAG 프레임워크를 원하는 개발자를 위한 것입니다.
Highlights
- Lightweight: PyTorch나 LangChain 의존성이 없습니다.
- Flexible Storage: DuckDB와 PostgreSQL을 네이티브로 지원합니다.
- Advanced Chunking: 의미론적 청킹과 레이트 청킹을 구현해 컨텍스트 보존을 향상합니다.
- Adaptive RAG: LLM이 주도하는 정보 검색 여부 결정.
- MCP Support: AI 어시스턴트와의 손쉬운 통합을 위한 Model Context Protocol 서버 내장.
- Evaluation: 검색 및 생성 성능 측정을 위해 Ragas와의 선택적 통합이 가능합니다.