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 應用開發者,或尋找專用 RAG 後端以整合 LibreChat 的使用者。

主要特色

  • 多提供者嵌入支援:相容 OpenAI、Azure、Bedrock、VertexAI、Google GenAI、Ollama 與 Hugging Face。
  • 基於 ID 的檢索:依 file_id 組織嵌入,實現精確的檔案特定查詢。
  • 安全範圍控制:在排序結果前解析呼叫者的擁有者集合,防止未經授權的文件存取。
  • 非同步處理:支援非同步操作與批次嵌入處理,優化資源受限環境下的記憶體使用與效能。

相關

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