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,用于衡量检索和生成性能。