weiwill88/Local_Pdf_Chat_RAG

🧠 纯原生 Python 实现的 RAG 框架 | FAISS + BM25 混合检索 | 支持 Ollama / SiliconFlow | 适合新手入门学习

解決する課題

このプロジェクトは、開発者が Retrieval‑Augmented Generation(RAG)を理解し実装できるように設計されたローカライズされたインテリジェント Q&A システムを提供します。透明でモジュール化されたパイプラインを提供することで、"ブラックボックス"的な RAG 実装の問題を解決し、ローカルドキュメントとチャットしながらさまざまな LLM バックエンドをサポートします。

仕組み

システムは構造化された RAG パイプラインに従います:

  1. ドキュメント処理:複数のフォーマット(.pdf、.txt、.docx、.md、.html、.csv、.xls、.xlsx)からテキストを抽出し、チャンクに分割してベクトル化します。
  2. ハイブリッド検索:FAISS のセマンティック検索と BM25 のキーワード検索を組み合わせ、リコールと精度を向上させます。
  3. 再ランク付け:CrossEncoder または LLM を使用して取得結果を洗練します。
  4. 生成:取得したコンテキストでプロンプトを構築し、設定された LLM(Ollama、SiliconFlow、または Magick API)に送信して最終回答を生成します。
  5. オプション機能:SerpAPI を統合してリアルタイムウェブ検索を行うことができ、DeepSeek‑R1 を用いた Chain‑of‑Thought 処理もサポートします。

対象者

主に開発者や RAG 初心者向けで、ドキュメントのロード、ベクトル化、ハイブリッド検索、LLM 統合を実践的に学べるプラットフォームです。

ハイライト

  • ハイブリッド検索戦略:FAISS(セマンティック)と BM25(キーワード)検索の両方を統合。
  • 柔軟な LLM バックエンド:Ollama によるローカル推論と、SiliconFlow や Magick API などのクラウド API をサポートし、バックエンドを自動検出。
  • 高度な RAG 手法:CrossEncoder による結果の再ランク付けと再帰的検索を実装。
  • インタラクティブ UI:Gradio ベースのウェブインターフェースを提供し、ドキュメントチャンクの可視化を含みます。