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。

相關

  • 專案
  • 專案
  • 專案
  • 專案