superlinear-ai/raglite

🥤 RAGLite is a Python toolkit for Retrieval-Augmented Generation (RAG) with DuckDB or PostgreSQL

What it solves

RAGLite 是一個 Python 工具組,旨在簡化檢索增強生成(RAG)管線的實作。它移除管理龐大依賴(如 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 與嵌入模型,並內建 Model Context Protocol(MCP)伺服器,以連接 Claude Desktop 等客戶端。

Who it’s for

想要快速、寬容且可擴充的 RAG 框架的開發者,避免「臃腫」的依賴,且同時支援本地(透過 llama.cpp)與遠端 LLM 供應商。

Highlights

  • Lightweight: 無 PyTorch 或 LangChain 依賴。
  • Flexible Storage: 原生支援 DuckDB 與 PostgreSQL。
  • Advanced Chunking: 實作語意分塊與延遲分塊,以更好地保留上下文。
  • Adaptive RAG: 由 LLM 驅動的是否檢索決策。
  • MCP Support: 內建 Model Context Protocol 伺服器,方便與 AI 助手整合。
  • Evaluation: 可選整合 Ragas,用於衡量檢索與生成效能。