使用 Langflow 與 Milvus 建立 RAG 系統
本指南示範如何使用Langflow與Milvus 建立檢索增強生成 (RAG) 管道。
RAG 系統會先從知識庫中擷取相關文件,然後根據此上下文產生新的回應,藉此增強文字的產生。Milvus 用於儲存和擷取文字內嵌,而 Langflow 則有助於將擷取和產生整合到可視化的工作流程中。
Langflow 可以輕鬆建構 RAG 管道,將大量文字嵌入、儲存在 Milvus 中,並在進行相關查詢時擷取。這可讓語言模型產生符合上下文的回應。
Milvus 可作為可擴充的向量資料庫,快速找到語意相似的文字,而 Langflow 則可讓您管理管道處理文字擷取和回應產生的方式。兩者結合起來,提供了一個有效率的方式來建立強大的 RAG 管道,以增強以文字為基礎的應用程式。
先決條件
在執行本筆記本之前,請確定您已安裝下列依賴項目:
$ python -m pip install langflow -U
教學
安裝好所有相依性後,請輸入下列指令啟動 Langflow 面板:
$ python -m langflow run
接著會彈出一個儀表板,如下所示: langflow
我們要建立一個Vector Store專案,所以我們首先要點選New Project按鈕。會彈出一個面板,我們選擇Vector Store RAG選項: panel
一旦成功建立 Vector Store Rag 專案,預設的向量儲存是 AstraDB,而我們想要使用 Milvus。所以我們需要用 Milvus 取代這兩個 astraDB 模組,才能使用 Milvus 作為向量儲存器。 astraDB
用 Milvus 取代 astraDB 的步驟:
- 移除向量儲存的現有卡片。在上圖中點選兩張標紅的 AstraDB 卡,按下backspace鍵刪除它們。
- 按一下側邊列中的Vector Store選項,選擇 Milvus 並將其拖曳到畫布中。這樣做兩次,因為我們需要 2 張 Milvus 卡,一張用於儲存檔案處理工作流程,一張用於搜尋工作流程。
- 將 Milvus 模組連結到其他元件。請參考下面的圖片。
- 為兩個 Milvus 模組設定 Milvus 認證。最簡單的方法是使用 Milvus Lite,將 Connection URI 設定為 milvus_demo.db。如果您有自部署的 Milvus 伺服器或在 Zilliz Cloud 上,請將 Connection URI 設定為伺服器端點,並將 Connection Password 設定為 token (對於 Milvus 是 "
: ",對於 Zilliz Cloud 是 API Key)。請參考下圖:
Milvus 結構示範
將知識嵌入 RAG 系統
- 透過左下方的檔案模組上載檔案作為 LLM 的知識庫。這裡我們上傳了一個包含 Milvus 簡介的檔案
- 按下右下方 Milvus 模組的 run 按鈕,執行插入工作流程。這將插入知識到 Milvus 向量存儲器中。
- 測試知識是否在記憶體中。打開 playground,詢問任何與您上傳檔案相關的問題。
為什麼選擇 Milvus