danny-avila/rag_api
ID-based RAG FastAPI: Integration with Langchain and PostgreSQL/pgvector
解决的问题
该项目提供了一个可扩展的异步 API,用于文档索引和检索(RAG),特别针对嵌入向量按文件 ID 组织的使用场景。这使得可以根据文件级别的元数据进行精准查询,从而更容易与 LibreChat 等平台集成。
工作原理
该 API 使用 FastAPI 和 Langchain 构建,采用 PostgreSQL 配合 pgvector 扩展(或 Atlas MongoDB)作为向量存储。文档被分割为块,使用多种支持的提供商(如 OpenAI、Bedrock、VertexAI 或 Ollama)生成嵌入,并与相关元数据一起存储。为确保安全,它实现了严格的拥有权范围,用户只能读取或删除自己拥有的内容,通过 JWT 令牌进行验证。
适用人群
需要文件级文档管理与多租户安全性的 RAG 应用开发者,或希望为 LibreChat 寻找专用 RAG 后端的用户。
主要亮点
- 多提供商嵌入支持:兼容 OpenAI、Azure、Bedrock、VertexAI、Google GenAI、Ollama 和 Hugging Face。
- 基于 ID 的检索:按
file_id组织嵌入,实现精确的文件级查询。 - 安全范围控制:在对结果进行排序前,解析调用者的拥有者集合,防止未经授权的文档访问。
- 异步处理:支持异步操作和批量嵌入处理,优化受限环境下的内存使用和性能。
相关
- 项目
- 项目
- 项目
- 项目
- 项目