danny-avila/rag_api

ID-based RAG FastAPI: Integration with Langchain and PostgreSQL/pgvector

何を解決するか

このプロジェクトは、埋め込みをファイルIDごとに整理するユースケースに特化した、スケーラブルで非同期的なAPI(RAG)を提供します。これにより、ファイルレベルのメタデータに基づいたターゲットクエリが可能になり、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ごとに埋め込みを整理し、正確なファイル固有のクエリを可能にします。
  • セキュアなスコープ制御: 結果のランク付けの前に呼び出し元の所有者セットを解決することで、不正なドキュメントアクセスを防止します。
  • 非同期処理: 非同期操作とバッチ処理による埋め込み処理をサポートし、制限された環境でのメモリ使用量とパフォーマンスを最適化します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト