weiwill88/Local_Pdf_Chat_RAG
Transparent Python RAG reference with FAISS + BM25 hybrid retrieval, reranking, Gradio UI, and FastAPI.
何を解決するか
このプロジェクトは、検索拡張生成(RAG)パイプラインの透明性が高く、モジュール式のPython実装を提供します。これは、本番環境向けのサービスではなく、開発者がドキュメントがどのように処理・検索され、LLMにコンテキストを提供するかを学び、調査し、実験するための教育用ツールとして設計されています。
仕組み
システムは、パース、チャンキング、埋め込み(embeddings)の作成という構造化されたパイプラインを通じてドキュメントを処理します。次に、FAISSによる密な検索(dense retrieval)とBM25によるキーワードベースの検索を組み合わせたハイブリッド検索戦略を採用しています。結果は、最終的なコンテキストが構築され、回答生成のためにLLMに渡される前に、オプションのリランキング(reranking)ステップ(CrossEncoderまたはモデルベースのスコアリング経由)を使用してさらに洗練させることができます。
対象者
RAGパイプラインの内部動作を理解するためのリファレンス実装を求める開発者や学生、および異なるモデルバックエンドを試したいと考えている人々。
ハイライト
- ハイブリッド検索: FAISSとBM25を組み合わせて検索精度を向上させます。
- モジュール式設計: コアコンポーネント(loader, splitter, embeddings, retriever, reranker, generator)は、交換可能なモジュールに分割されています。
- 柔軟なバックエンド: ローカルのOllama、SiliconFlow、およびOpenAI互換APIをサポートしています。
- 幅広いドキュメントサポート: PDF、TXT、Markdown、DOCX、XLS/XLSX、およびPPTXファイルを扱います。
- デュアルインターフェース: GradioのWeb UIとFastAPIのREST APIの両方が含まれています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト