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