weiwill88/Local_Pdf_Chat_RAG

Transparent Python RAG reference with FAISS + BM25 hybrid retrieval, reranking, Gradio UI, and FastAPI.

它解決的問題

這個專案提供了一個透明且模組化的 Python 實作,用於檢索增強生成(RAG)流程。它被設計為開發者的教育工具,用於學習、檢視和實驗文件如何被處理與檢索,以提供上下文給大型語言模型(LLM),而非作為可直接投入生產的服務。

如何運作

系統透過結構化的流程處理文件:解析、切塊與建立嵌入向量。接著採用混合檢索策略,結合 FAISS 進行密集檢索,以及 BM25 進行關鍵字檢索。檢索結果可透過可選的重排序步驟(使用 CrossEncoder 或基於模型的評分)進一步優化,然後建立最終的上下文並傳遞給 LLM 以生成答案。

適用對象

希望獲得 RAG 流程內部運作參考實作的開發者與學生,以及想嘗試不同模型後端的人。

主要特色

  • 混合檢索:結合 FAISS 與 BM25,提升搜尋準確度。
  • 模組化設計:核心組件(載入器、切分器、嵌入模型、檢索器、重排序器、生成器)被拆分為可替換的模組。
  • 彈性後端支援:支援本地的 Ollama、SiliconFlow,以及 OpenAI 兼容的 API。
  • 廣泛的文件支援:支援 PDF、TXT、Markdown、DOCX、XLS/XLSX 和 PPTX 檔案。
  • 雙重介面:包含 Gradio 網頁介面與 FastAPI REST API。

相關

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