weiwill88/Local_Pdf_Chat_RAG
Transparent Python RAG reference with FAISS + BM25 hybrid retrieval, reranking, Gradio UI, and FastAPI.
解决的问题
本项目提供了一个透明、模块化的检索增强生成 (RAG) 管道 Python 实现。它被设计为一个教育工具,供开发者学习、检查并实验文档如何被处理与检索以提供 LLM 上下文,而非作为可用于生产环境的服务。
工作原理
系统通过结构化的管道处理文档:解析、分块以及创建嵌入。接着采用混合检索策略,结合 FAISS 进行密集检索与 BM25 进行基于关键字的检索。在最终上下文被创建并传递给 LLM 进行答案生成之前,可以使用可选的重排序步骤(通过 CrossEncoder 或基于模型的评分)进一步优化结果。
适用对象
想要参考实现以了解 RAG 管道内部工作原理的开发者与学生,以及希望实验不同模型后端的用户。
亮点
- 混合检索:结合 FAISS 与 BM25 以提升搜索准确度。
- 模块化设计:核心组件(加载器、分割器、嵌入、检索器、重排序器、生成器)被拆分为可替换的模块。
- 灵活后端:支持本地 Ollama、SiliconFlow 以及兼容 OpenAI 的 API。
- 广泛的文档支持:处理 PDF、TXT、Markdown、DOCX、XLS/XLSX 与 PPTX 文件。
- 双重接口:包含 Gradio 网页 UI 与 FastAPI REST API。
相关
- 项目
- 项目
- 项目
- 项目
- 项目