LibreChat-AI/rag-api
ID-based RAG FastAPI: Integration with Langchain and PostgreSQL/pgvector
解决的问题
该项目提供了一个可扩展的异步 API,用于文档索引和检索,专为基于 ID 的检索增强生成(RAG)而设计。它允许用户按 file_id 组织嵌入,从而实现基于特定文件或元数据的精准查询,这对于 LibreChat 等应用至关重要。
工作原理
基于 FastAPI 和 Langchain 构建,该 API 通过向量存储(默认使用 PostgreSQL/pgvector 或 Atlas MongoDB)管理文档。它使用多种提供商(OpenAI、Bedrock、Azure、Hugging Face、Google 等)将文档转换为嵌入,并以异步批处理方式处理,以保持高性能和低内存使用。关键的安全层确保用户只能读取或删除其拥有的内容,基于验证过的 JWT 令牌。
适用人群
需要文件级 RAG 系统、文档与特定 ID 关联且严格实施用户所有权的 AI 应用开发者。
主要亮点
- 多提供商嵌入支持:兼容 OpenAI、Azure、Bedrock、VertexAI、Ollama 和 Hugging Face。
- 基于 ID 的检索:按
file_id组织嵌入,实现精确、元数据驱动的查询。 - 基于所有权的安全性:实施严格的范围控制,确保用户只能访问其拥有的数据块。
- 可扩展的摄入能力:支持异步批处理,可在内存受限环境中处理大文件。
- 灵活的向量存储:支持 pgvector 和 Atlas MongoDB。
相关
- 项目
- 项目
- 项目
- 项目