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。

相关

  • 项目
  • 项目
  • 项目
  • 项目