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。
相關
- 專案
- 專案
- 專案
- 專案
- 專案