本文為您介紹如何通過向量檢索服務Milvus版(簡稱Milvus)和Dify平台構建RAG系統。
背景資訊
RAG原理介紹
大語言模型常因知識局限而產生”幻覺“。檢索增強產生(RAG)技術通過串連外部知識庫,有效解決了這一痛點。要實現高效的RAG,一個強大的向量資料庫至關重要。
本文將聚焦於Milvus,並藉助低代碼AI平台Dify,向您展示如何將二者無縫結合,快速搭建一個企業級的RAG應用,直觀感受向量資料庫在解決AI“最後一公裡”問題上的核心價值。
關於Dify平台
Dify是開源人工智慧應用開發平台,具有低代碼的工作流程和友好的使用者介面的特點,其核心使命是通過將”後端即服務“(Backend-as-a-Service)與”大語言模型營運“(LLMOps)的理念深度融合,來徹底簡化和加速AI應用的構建全過程。
作為一個全棧式的解決方案,Dify在後端層面,提供了穩定可靠的API服務、資料管理等基礎設施,讓開發人員無需從零搭建;在LLM營運層面,提供了一個直觀的可視化提示詞編排介面,讓複雜的提示工程變得簡單高效。其內建的高品質檢索增強產生(RAG)引擎,能夠輕鬆串連企業文檔、資料庫等私人知識庫,讓大模型基於特定領域的知識進行回答,有效減少了資訊幻覺,並確保答案的準確性和可追溯性。
前提條件
-
已建立Milvus執行個體。具體操作請參見快速建立Milvus執行個體。
-
已開通阿里雲百鍊服務並獲得API-KEY。具體操作請參見擷取APP ID 和 Workspace ID。
-
已安裝Docker、Docker-Compose,具體操作請參見安裝並使用Docker和Docker Compose。
操作流程
步驟一:安裝Dify
-
請通過Git命令將開源Dify專案從GitHub複製至本地。
git clone https://github.com/langgenius/dify.git -
進入部署目錄備份.env設定檔。
cd dify/docker/ cp .env.example .env -
修改.env設定檔中以下配置資訊。
# 向量儲存引擎配置 VECTOR_STORE=milvus # 指定向量儲存引擎為Milvus # Milvus串連資訊 MILVUS_URI=http://YOUR_ALIYUN_MILVUS_ENDPOINT:19530 MILVUS_USER=YOUR_ALIYUN_MILVUS_USER MILVUS_PASSWORD=YOUR_ALIYUN_MILVUS_PASSWORD本文樣本涉及以下參數,請您根據實際環境替換。
參數
說明
MILVUS_URIMilvus執行個體的訪問地址,格式為
http://<公網地址>:<連接埠>。-
<公網地址>:您可以在Milvus執行個體的实例详情頁面查看。 -
<連接埠>:您可以在Milvus執行個體的实例详情頁面查看。預設為19530。
MILVUS_USER配置為建立Milvus執行個體時,您自訂的使用者名稱。
MILVUS_PASSWORD配置為建立Milvus執行個體時,您自訂使用者的密碼。
-
-
啟動Dify。
docker compose up -d --build[root@xxx /docker]# docker compose up -d --build [+] Running 15/15 ✔ Network docker_default Created ✔ Network docker_milvus Created ✔ Network docker_ssrf_proxy_network Created ✔ Container docker-db-1 Healthy ✔ Container docker-redis-1 Started ✔ Container docker-sandbox-1 Started ✔ Container milvus-etcd Started ✔ Container milvus-minio Started ✔ Container docker-ssrf_proxy-1 Started ✔ Container docker-web-1 Started ✔ Container docker-plugin_daemon-1 Started ✔ Container docker-worker-1 Started ✔ Container docker-api-1 Started ✔ Container milvus-standalone Started ✔ Container docker-nginx-1 Started -
在瀏覽器中訪問
http://127.0.0.1/地址,訪問部署的Dify服務IP地址,設定管理員帳號密碼,並登入進管控台。說明如果是運行在遠程伺服器(例如,雲端服務器或虛擬機器)上,則需要將
127.0.0.1替換為伺服器的公網IP地址或網域名稱,並確保網路能夠正常訪問。依次填寫郵箱、使用者名稱和密碼(密碼必須包含字母和數字,且長度不小於 8 位),單擊設定完成管理員賬戶初始化。
步驟二:設定模型
-
登入成功後,單擊右上方頭像,在下拉式功能表中選擇設定。
-
在左側選擇模型供應商,右側選擇千問安裝。
-
模型安裝成功後,選擇設定API-KEY,將提前準備好的百鍊平台API-KEY 輸入。
-
請根據實際情況配置系統模型設定。
在系統模型設定面板中,分別配置系統推理模型、Embedding 模型、Rerank 模型、語音轉文本模型和文本轉語音模型,完成後單擊儲存。
步驟三:建立知識庫
-
單擊上方的知識庫,然後單擊建立知識庫。
-
資料來源選擇匯入已有文本,您可以先單擊README.md下載樣本資料,隨後上傳該樣本資料。
-
修改相應參數,單擊儲存並處理。
其他保持預設的關鍵參數:索引方式選擇高品質,檢索設定選擇向量檢索,開啟Rerank模型gte-rerank,Top K設為3,Score閾值設為0.5。
本文樣本修改以下參數:
-
分段最大長度:設定為1024。
-
Embedding 模型:選擇text-embedding-v1。
執行完成後,即可看到知識庫建立成功。
頁面顯示 知識庫已建立,檔案 什麼是向量檢索服務Milvus版.md 嵌入完成(綠色對勾)。配置摘要:分段模式為 自訂,文本預先處理規則為替換掉連續的空格、分行符號和定位字元,索引方式為 高品質,檢索設定為 向量檢索。單擊 前往文檔 可查看知識庫詳情。
-
步驟四:驗證向量檢索是否成功
登入阿里雲Milvus控制台,選擇您配置的Milvus執行個體,單擊右上方Attu Manager進入Attu頁面,可以看到對應的Collection資料已匯入。更多操作,請參見Attu工具管理。
步驟五:驗證RAG效果
-
單擊上方工作室回到首頁,選擇從應用模板中建立。
-
在搜尋方塊中搜尋並使用Knowledge Retreival + Chatbot模板。
-
在彈出的對話方塊中,單擊建立。
-
選擇Knowledge Retrieval節點,知識庫設定為上面步驟中建立的知識庫。
工作流程畫布中節點串連順序為 START → KNOWLEDGE RETRIEVAL → LLM(使用 qwen-max 模型)→ ANSWER,查詢變數為
sys.query。 -
選擇LLM節點,將模型設定為qwen-max。
-
單擊右上方發布,選擇單擊發布更新。
-
單擊運行,進入測試頁面,輸入一個與知識庫內容相關的問題,即可獲得相應的答案。