DeepSeek接入個人知識庫,保姆級教程來了!

MLNLP

社群是國內外知名的機器學習與自然語言處理社群,受眾覆蓋國內外NLP碩博生、高校老師以及企業研究人員。


社群的願景是促進國內外自然語言處理,機器學習學術界、產業界和廣大愛好者之間的交流和進步,特別是初學者同學們的進步。
來源 | Datawhale
作者 | 張龍斐,Datawhale鯨英助教
上次的《最全梳理:一文搞懂 RAG 技術的5種正規化!

》梳理了對 RAG 進行了一個完整的綜述。這次帶來 RAG 的小白應用教程:介紹如何透過 ragflow 框架把 DeepSeek 接入到自己的個人知識庫中,當然其他模型也是類似,可以自由搭配。

先看效果: 

ragflow 簡介:

RAGFlow 是一款基於深度文件理解的開源檢索增強生成(Retrieval-Augmented Generation,RAG)引擎,旨在透過結合資訊檢索和生成式 AI 的優勢,解決現有技術在資料處理和生成答案方面的挑戰。 

作用

RAGFlow 廣泛應用於需要動態生成內容且依賴外部知識庫的場景,例如: 
  • 智慧客服:即時從企業知識庫中檢索相關資訊,為客戶提供準確、個性化的解答。
  • 文件生成與報告分析:從多個數據源中檢索資訊並生成結構化的文件或摘要,適合大規模內容管理。
  • 輔助診斷:醫療專業人員可以透過 RAGFlow 快速查詢相關醫學文獻和病例資料,為診斷和治療提供參考。
  • 文獻綜述:幫助學生和研究人員快速定位和分析相關的學術文獻,高效完成文獻綜述的撰寫。
  • 新聞報道與投資分析:記者和金融機構可以利用 RAGFlow 整合和提煉大量素材,生成新聞稿件或投資分析報告。

優勢

  1. 深度文件理解:能夠從複雜格式的非結構化資料中精準提取知識,支援多種文件格式(如 Word、PPT、Excel、PDF 等),並自動識別文件佈局。
  2. 降低幻覺風險:提供清晰的關鍵引用來源,支援文字分塊的視覺化和人工干預,確保生成答案有據可依。
  3. 相容異構資料來源:無縫處理多種資料格式,整合不同來源的資料,為使用者提供一站式的資料處理和問答體驗。
  4. 自動化工作流:支援從個人應用到超大型企業的各類生態系統,提供易用的 API,便於快速整合到各類業務系統。
  5. 高效性與成本最佳化:透過動態最佳化流程,減少不必要的計算和查詢次數,降低執行成本。
  6. 精準性與可靠性:檢索和生成環節相輔相成,確保最終結果的準確性和可靠性。
RAGFlow 的這些特性和優勢使其在資訊檢索和內容生成領域具有廣泛的應用前景和顯著的競爭力。 
我的理解呢,ragflow的意義在於它把原本複雜的rag系統開發,處理成了零程式碼開發模式,方便非計算機背景的人也可以進行rag系統的搭建和維護,而且融入了類似dify的強大的工作流編排功能。 

ragflow 本地 windows 部署

配置要求:ragflow是一個相當“重”的專案,如果你的電腦不滿足以下條件,請不要隨意嘗試 

一、軟體配置安裝

首先我們需要安裝好 docker 軟體 
https://www.runoob.com/docker/windows-docker-install.html 
安裝好 docker 後啟動即可,不用登陸不用設定任何東西,一路跳過。 
這裡我們需要配置 docker 映象源 
{

"registry-mirrors"

: [

"https://registry.docker-cn.com"

,

"http://hub-mirror.c.163.com"

,

"https://docker.mirrors.ustc.edu.cn"

  ],

"insecure-registries"

: [],

"debug"

false

,

"experimental"

false

,

"features"

: {

"buildkit"

true

  },

"builder"

: {

"gc"

: {

"enabled"

true

,

"defaultKeepStorage"

"20GB"

    }
  }
}
上方程式碼貼上替換完畢後點擊右下角 
到這裡我們的 docker 就配置好了 
然後我們需要安裝 git:https://cloud.tencent.com/developer/article/2099150 
最後我們需要安裝 vscode:https://zhuanlan.zhihu.com/p/264785441 

二、安裝 ragflow

設定安裝路徑

在 c 盤之外的地方開啟一個資料夾用來安裝 ragflow,滑鼠右鍵,點選 open Git Bash here 
輸入命令: 
git clone https://github.com/infiniflow/ragflow.git 
點選回車就可以看到多了一個資料夾 ragflow 
由於預設配置版本是沒有 embedding 模型的,所以我們修改配置為完整版。使用 vscode 開啟 .env 檔案,修改第 84 行和第 87 行,ctrl+s 儲存檔案。 

拉取 docker 映象

接下來我們開始部署 docker 映象,按住 win+R 鍵,輸入 powershell,點選回車。之後輸入 cd+剛剛下載的ragflow資料夾路徑,我這裡是cd D:\demo\ragflow\docker按回車,輸入docker compose -f docker-compose.yml up -d按回車。之後可以看到正在使用 docker 載入映象,稍等一會兒載入完畢即可。 
大概 15 分鐘後鏡像載入完畢就部署完畢了。最後我們輸入docker logs -f ragflow-server,出現 RAGFLOW 字型就代表後端服務啟動成功了。 
之後我們在瀏覽器位址列輸入:localhost:80即可開啟ragflow登入頁面。登入頁面可以隨便輸入一個郵箱賬號(隨便編一個符合郵箱格式的就可以),全部是儲存在你本地電腦上的,不用擔心資料洩露。但是要注意第一個註冊的預設是管理員,所以還是要注意儲存一下你註冊的郵箱資訊。之後點選登入就可以使用ragflow了。 

三、簡易使用教程

首先我們配置一下 deepseek 模型服務,api-key 可以從 https://platform.deepseek.com/api_key 申請獲取(官網已經恢復充值)。 
之後我們上傳資料建立一個本地知識庫就可以啦。可以看到上傳的資料支援多種格式,掃描版的 pdf 文件也是可以的。 
上傳檔案之後需要等待文件解析完成,可以看到文件解析的效果還是不錯的 
建立對話助理後,就可以對話啦,注意在模型設定裡把模型替換為 deepseek-chat 

四、啟動與關閉 ragflow 程式

關閉 ragflow 程式:

關掉 powershell 視窗,退出 docker 程序即可。 

啟動 ragflow 程式:

開啟 docker 軟體,按下 win+R 開啟 powershell,輸入docker logs -f ragflow-server回車,就啟動了後端服務了。!!檢查一下 docker 軟體,看一下 ragflow 是否全部啟動,也就是下圖中的幾個服務全是執行狀態: 
如果都在執行中,此時可以在瀏覽器輸入localhost:80即可啟動前端介面,愉快的使用 ragflow 啦! 
本教程主要參考以下兩篇官方文件撰寫:
1. https://github.com/infiniflow/ragflow?tab=readme-ov-file 
2. https://ragflow.io/docs/dev/ 
技術交流群邀請函
△長按新增小助手
掃描二維碼新增小助手微信
請備註:姓名-學校/公司-研究方向
(如:小張-哈工大-對話系統)
即可申請加入自然語言處理/Pytorch等技術交流群

關於我們

MLNLP 社群是由國內外機器學習與自然語言處理學者聯合構建的民間學術社群,目前已經發展為國內外知名的機器學習與自然語言處理社群,旨在促進機器學習,自然語言處理學術界、產業界和廣大愛好者之間的進步。
社群可以為相關從業者的深造、就業及研究等方面提供開放交流平臺。歡迎大家關注和加入我們。

相關文章