第一部分:RAGFlow 端配置
在 Dify 能夠調用之前,確保 RAGFlow 已經就緒并提供了可訪問的 API。
步驟 1: 確保 RAGFlow 正常運行
具體可以參考:
https://blog.csdn.net/qq_35354529/article/details/151149191?spm=1001.2014.3001.5502
注意啟動命令使用docker compose -p ragflow up -d
- RAGFlow 服務應該已經通過 Docker 正常啟動。
- 通過瀏覽器訪問 RAGFlow 的 Web 界面(通常是
http://你的服務器IP:80
,我這個訪問的地址是http://服務器ID:8580
),確保可以正常登錄。
步驟 2: 創建知識庫并上傳文檔
- 登錄 RAGFlow 后,點擊“知識庫” -> “新建知識庫”,創建一個新的知識庫。
- 進入該知識庫,點擊“上傳文件”,將包含復雜表格和圖片的 PDF 文檔上傳。
步驟 3: 創建 API 密鑰
- 點擊頁面右上角的“頭像”圖標。
- 創建API KEY
API KEY:
ragflow-E5ZW*****************************
后續提供給Dify調用RAGFlow使用
- 記錄RAGFlow知識庫ID
步驟 4: 記錄 API 端點信息
- RAGFlow API 基地址(Base URL):通常是
http://RAGFlow服務器IP:8580
- 檢索接口路徑:
/api/v1/retrieve
- 完整的檢索端點 URL:
http://RAGFlow服務器IP:8580/api/v1/retrieve
- RAGFlow知識庫ID:581af2b2889a11f082420242ac1f0006
第二部分:Dify 端配置
現在,在 Dify 中創建一個應用,并通過工作流調用 RAGFlow知識庫。
步驟 1: 在 Dify 中創建一個外部知識庫
- 創建外部知識庫API
- 召回測試
API Endpoint:
http://RAGFlow服務器IP:8580/api/v1/dify
API KEY:RAGFlow提供的API KEY
步驟 2: 在 Dify 中創建新應用
- 登錄你的 Dify 控制臺。
- 點擊“創建新應用”,選擇“ChatFlow”
步驟 3: 構建工作流
進入應用的工作流編輯界面,按以下順序添加和配置節點:
節點 1: 開始
- 拖入一個 “開始” 節點。它代表了用戶輸入的提問。
節點 2: 知識檢索
- 拖入一個 “知識檢索” 節點。設置知識庫。
節點 3: LLM(大語言模型)
- 拖入一個 “LLM” 節點。
- 設計系統提示詞
- 可以根據需要調整溫度和最大生成長度等參數。
你是一個專業的問答助手。請嚴格根據<知識庫內容>來回答用戶的問題。# 知識庫內容:
{{#context#}}# 用戶問題:
{{#sys.query#}}# 回答要求:
1. **精準忠實**:答案必須完全源自上述<知識庫內容>。嚴禁編造、演繹或使用外部知識。
2. **清晰有條理**:組織你的答案,使其邏輯清晰、易于理解。可以使用列表、分點等方式。
3. **引用溯源**:如果<知識庫內容>中包含了明確的來源(如文件名、URL、章節名),請在答案末尾以“來源:[此處填寫來源]”的格式注明。
4. **不確定性處理**:如果<知識庫內容>中**完全沒有**與用戶問題相關的信息,請明確告知用戶“根據現有資料,我無法找到相關問題答案。”
5. **完整性**:盡量提供完整的信息,如果問題涉及多個方面,請覆蓋所有方面。現在,請開始回答。
節點 4: 直接回復
6. 拖入一個 “直接回復” 節點。
7. 將其連接到“LLM”節點之后。這個節點會將 LLM 生成的最終答案返回給用戶。
測試:
關鍵注意事項
- 使用 Docker 網絡隔離:為每個項目創建獨立的網絡
- 使用環境變量文件:為每個項目創建獨立的
.env
文件 - 啟動RAGFlow與Dify:
# 在 Dify 目錄中,使用項目名 "dify"
cd /dify1.8/dify-1.8.0/docker
docker compose -p dify down
docker compose -p dify up -d# 在 RAGFlow 目錄中,使用項目名 "ragflow"
cd /path/to/ragflow
docker compose -p ragflow down
docker compose -p ragflow up -d