基于 Ragflow 搭建知識庫-初步實踐
一、簡介
Ragflow 是一個強大的工具,可用于構建知識庫,實現高效的知識檢索和查詢功能。本文介紹如何利用 Ragflow 搭建知識庫,包括環境準備、安裝步驟、配置過程以及基本使用方法。
二、環境準備
-
硬件要求
- CPU:建議 4 核及以上,以確保系統能夠流暢運行,尤其是在處理大規模知識庫數據和復雜查詢時。
- RAM:至少 16GB 內存,為系統運行和數據處理提供足夠的空間,避免因內存不足導致性能下降或程序崩潰。
- Disk:50GB 及以上的磁盤空間,用于存儲知識庫數據、索引文件以及系統運行過程中產生的其他數據。
-
軟件要求
-
Docker desktop:確保已安裝最新版本的 Docker desktop,可從官方網站下載并按照安裝向導進行安裝。
-
RAGFLOW:從官方 GitHub 倉庫獲取 RAGFLOW 相關文件,具體地址為https://github.com/infiniflow/ragflow
https://github.com/infiniflow/ragflow/blob/main/README_zh.md 根據這個文檔一步步搭建即可。
-
大模型(如 deepseek):選擇一個合適的大模型,并確保已開通其 API 訪問權限。本示例中提及了 deepseek 模型,但您可以根據實際需求選擇其他支持的模型。
-
-
版本要求 (2024年12月28日版本)
- Docker:版本需大于等于 24.0.0,確保具備較新的功能和穩定性支持。
- Docker Compose:版本大于等于 v2.26.1,用于管理和編排容器化應用。
三、安裝與配置
-
修改鏡像源(如果能正常下載,可以不需要修改)
-
找到 Ragflow 源碼中 docker/.env 文件,將其中的 RAGFLOW_IMAGE 修改為華為鏡像源:
RAGFLOW_IMAGE=swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:dev
需要注意的是,根據 2024 年 12 月 28 日官方文檔,替換如下的鏡像源會出現一個問題:
https://github.com/infiniflow/ragflow/issues/3418 查找不到 ‘/ragflow/conf/service_conf.yaml’ 這個文件
swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow
-
-
啟動 Ragflow
-
打開終端,進入 Ragflow 項目目錄(包含 docker-compose.yml 文件的目錄)。
-
執行以下命令啟動 Ragflow 服務,這將在后臺啟動 Ragflow 相關的容器服務。
$ cd ragflow $ docker compose -f docker/docker-compose.yml up -d
-
-
訪問主頁
- 打開瀏覽器,訪問http://127.0.0.1,進入 Ragflow 的主頁。
四、知識庫搭建流程
-
注冊與登錄
- 在主頁上,按照頁面提示流程,先注冊一個賬號,填寫必要的信息并完成注冊。
- 注冊成功后,使用注冊的賬號登錄系統。
-
創建知識庫
-
登錄后,點擊相應按鈕創建一個新的知識庫,為知識庫命名以便識別和管理。
-
上傳本地文件到知識庫,供知識庫進行解析。在上傳文件時,注意文件格式的支持情況,確保文件能夠被正確解析。目前支持的文件格式可能包括常見的文檔格式(如 PDF、DOCX 等)、文本文件等。上傳完成后,系統將顯示文件的相關信息,如分塊數、上傳日期、解析方法和解析狀態等。例如:
-
分塊數:表示文件被分割成的塊數,用于后續的索引和檢索。
-
上傳日期:記錄文件上傳的時間,方便跟蹤文件管理。
-
解析方法:顯示系統采用的解析方式,可能根據文件類型自動選擇合適的解析器。
-
解析狀態:初始上傳后可能顯示為 “解析中”,解析完成后將更新為 “已解析” 或相應的成功狀態。如果解析出現問題,可查看錯誤信息并根據提示進行排查。
-
-
-
配置模型提供商
-
點擊個人頭像,進入配置頁面。
-
在模型提供商配置區域,選擇您使用的模型提供商(如 deepseek),并將對應的 API key 粘貼到指定位置。如果您選擇搭建本地大模型,也需要在此處進行相應的配置,確保 Ragflow 能夠與本地模型進行通信和交互。不同的模型提供商可能有不同的配置參數和要求,詳細信息請參考模型提供商的文檔。
-
-
創建助理
-
等待知識庫文件解析完成后,進入聊天界面。
-
點擊新建一個助理,為助理命名并進行配置。初始配置可以先使用默認值,后續根據實際需求進行調整。
-
在模型設置頁面,選擇之前添加的模型提供商的模型,并根據需要調整模型參數,如:
- 溫度(Temperature):控制模型輸出的隨機性,取值范圍通常在 0 到 1 之間。較高的值(如 0.90)會使輸出更具隨機性,而較低的值會使輸出更確定性。
- Top P:用于控制模型在生成響應時考慮的前幾個概率最高的詞元的比例。例如,Top P 值為 0.90 表示模型將考慮概率總和占前 90% 的詞元。
- 存在處罰(Presence Penalty):對模型生成的新單詞進行懲罰,以鼓勵模型生成多樣化的文本。取值范圍一般在 0 到 1 之間,較高的值會增加模型生成新單詞的可能性。
- 頻率懲罰(Frequency Penalty):對模型生成中頻繁出現的單詞進行懲罰,以避免重復。取值范圍通常在 0 到 1 之間,較高的值會減少頻繁單詞的出現。
- 最大 token 數(Max Tokens):限制模型生成的響應中包含的最大詞元數量,以控制響應的長度。例如,設置為 512 表示模型生成的響應最多包含 512 個詞元。
-
五、使用知識庫
完成上述配置后,即可與創建的助理進行聊天。在聊天輸入框中輸入問題,助理將根據知識庫中的內容和配置的模型進行回答,為您提供準確、有用的信息。例如,您可以詢問知識庫中關于特定主題的知識、請求對某個問題的解釋或尋求相關的建議等。
六、注意事項
- 在整個搭建和使用過程中,密切關注系統的運行狀態和日志信息。如果遇到任何問題,如服務啟動失敗、文件解析錯誤、模型響應異常等,及時查看日志文件(通常位于 Ragflow 項目目錄下的特定日志文件夾中),根據錯誤提示進行排查和解決。
- 定期備份知識庫數據,以防止數據丟失或損壞。可以制定定期備份計劃,將知識庫數據備份到外部存儲設備或云端存儲服務中。
- 關注 Ragflow 官方文檔和社區論壇,獲取最新的版本更新、功能改進和問題解決方案。官方文檔可能會不斷更新,提供更詳細的配置說明和最佳實踐,社區論壇則是與其他用戶交流經驗、分享問題和解決方案的好去處。