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組織嵌入,實現精確的檔案特定查詢。 - 安全範圍控制:在排序結果前解析呼叫者的擁有者集合,防止未經授權的文件存取。
- 非同步處理:支援非同步操作與批次嵌入處理,優化資源受限環境下的記憶體使用與效能。
相關
- 專案
- 專案
- 專案
- 專案
- 專案