有小伙伴私信我,DeepSeek-R1能用來搭建 RAG(檢索增強(qiáng)生成)系統(tǒng)嗎?答案是絕對可以!
春節(jié)前夕,我們接到了業(yè)務(wù)方的緊急任務(wù),需要探討如何將 DeepSeek-R1 快速集成到即將上線的項(xiàng)目中。經(jīng)過多次深入討論,我們團(tuán)隊(duì)決定在現(xiàn)有 RAG 系統(tǒng)的一個核心模塊中試用 DeepSeek-R1,替換掉原有的 Qwen 模型。更換完成后,我們對系統(tǒng)進(jìn)行了一系列嚴(yán)格的測試,以確保其穩(wěn)定運(yùn)行。在經(jīng)過徹底驗(yàn)證后,我們成功地在除夕之夜將系統(tǒng)上線。
鑒于所處理數(shù)據(jù)的敏感性,本文將詳盡介紹如何使用DeepSeek-R1、LangChain、Ollama和Streamlit搭建一個本地的、專門處理PDF文件的RAG系統(tǒng)。這套系統(tǒng)利用LangChain的模塊化特點(diǎn)和DeepSeek-R1的隱私保護(hù)能力,非常適合處理技術(shù)文檔、法律文件及學(xué)術(shù)資料等。在后續(xù)的分享中,我將詳細(xì)介紹如何利用 DeepSeek-R1 對系統(tǒng)進(jìn)行Fine-tuning和優(yōu)化的過程。
此項(xiàng)目整合了 LangChain(一種用于 RAG 工作流程的 AI 框架)、Ollama(負(fù)責(zé) DeepSeek-R1 的本地部署)和 Streamlit(提供用戶界面)。最終成品是一個 AI 助手,它能在本地處理 PDF 文件,并以高精確度和速度回答問題。
在此次演示中,我們將使用一個參數(shù)為 7B 的 DeepSeek-R1 精簡模型。但如果你的計算資源更充足,我建議嘗試使用其他版本的 DeepSeek-R1 精簡模型。
雖然云端 AI 解決方案功能強(qiáng)大,但它們往往涉及到隱私和成本問題。使用 LangChain 的模塊化框架,你可以在本地搭建一個 RAG 系統(tǒng),這樣做有幾大優(yōu)點(diǎn):
這個項(xiàng)目涵蓋了以下幾個部分:
以下是如何設(shè)置你的本地 ChatPDF 解決方案:
確保你已經(jīng)安裝了 Python 3.8 和Ollama。運(yùn)行以下命令:
curl -fsSL https://ollama.com/install.sh | shollama -v # 驗(yàn)證安裝
下載所需的 AI 模型:
ollama pull deepseek-r1:latest # 默認(rèn) 7B 模型ollama pull mxbai-embed-large # 嵌入模型
克隆倉庫并設(shè)置虛擬環(huán)境:
git clone https://github.com/paquino11/chatpdf-rag-deepseek-r1.gitcd chatpdf-rag-deepseek-r1python3 -m venv venvsource venv/bin/activate
安裝依賴:
pip install -r requirements.txt
啟動 Streamlit 應(yīng)用:
streamlit run app.py
在瀏覽器中訪問http://localhost:8501。上傳你的 PDF 文件,調(diào)整檢索設(shè)置,開始提問。
這個項(xiàng)目我將利用 LangChain 來從零開始搭建的文檔處理流程:
LangChain 允許你輕松調(diào)整設(shè)置,以優(yōu)化搜索結(jié)果:
這里介紹幾種常見的場景,幫助你測試你的應(yīng)用程序:
結(jié)合 LangChain、DeepSeek-R1 和 ChromaDB 的使用,你可以構(gòu)建一個重視隱私保護(hù)、靈活性和成本效率的 RAG 系統(tǒng)。這種本地化的解決方案非常適用于分析技術(shù)性文件和法律文件,無需依賴于云服務(wù)。如此一來,你便可以在完全控制數(shù)據(jù)安全的環(huán)境下,有效地處理和分析專業(yè)文檔。