在本文中,你将学习如何使用DeepSeek-R1、LangChain、Ollama和Streamlit构建检索增强生成 (RAG)系统,该系统在本地处理 PDF 。本分步教程将LangChain的模块化功能与DeepSeek-R1的隐私优先方法相结合,为处理技术、法律和学术文档提供了强大的解决方案。
该项目将用于 RAG 工作流的 AI 框架LangChain与用于DeepSeek-r1本地部署的Ollama和用于用户界面的Streamlit相结合。最终打造出一款可以在本地提取 PDF并准确快速地回答问题的AI 助手。
在这个演示中,我们将使用一个具有 7B 参数的DeepSeek-r1蒸馏模型,但如果你拥有更强的计算能力,我推荐其他DeepSeek-r1 蒸馏模型。
为何选择私有RAG解决方案?
基于云的AI解决方案功能强大,但往往伴随着隐私风险和持续成本等挑战。通过利用LangChain的模块化框架,你可以创建一个本地RAG解决方案,该方案具有诸多优势:
工具和技术:LangChain、DeepSeek-R1、Ollama、ChromaDB和Streamlit
此项目由以下部分组成:
构建RAG管道:分步指南
以下是设置本地ChatPDF解决方案的方法:
安装前提条件
确保你已安装Python 3.8+和Ollama。运行以下命令:
curl -fsSL https://ollama.com/install.sh | sh
ollama -v # Verify installation
下载所需的AI模型:
ollama pull deepseek-r1:latest # Default 7B model
ollama pull mxbai-embed-large # Embeddings model
设置项目
克隆存储库并设置虚拟环境:
git clone https://github.com/paquino11/chatpdf-rag-deepseek-r1.git
cd chatpdf-rag-deepseek-r1
python3 -m venv venv
source venv/bin/activate
安装依赖项:
pip install -r requirements.txt
运行应用程序
启动Streamlit应用程序:
streamlit run app.py
在浏览器中访问 http://localhost:8501 以使用该应用。上传你的PDF文件,调整检索设置,并开始提问。
使用DeepSeek-R1、Ollama、LangChain和ChromaDB构建RAG管道
本项目使用LangChain来管理整个RAG工作流程:
1. 使用LangChain进行PDF摄入:
2. 使用ChromaDB进行文档检索:
3.使用DeepSeek-R1生成响应:
自定义检索设置以获得最佳结果
LangChain 可以轻松调整检索设置以获得最佳性能:
k:检索到的结果数
控制响应中使用多少个文档块。
score_threshold:相似度截止
过滤器根据相关性检索结果。
用例和测试你的RAG应用程序
以下是一些测试该应用程序的示例:
测试PDF:
示例问题:
结论
通过结合LangChain、DeepSeek-R1和ChromaDB,你可以创建一个注重隐私、灵活性和成本效益的RAG系统。这种本地RAG解决方案非常适合分析技术文档、法律文本等,而无需依赖基于云的工具。