擷取增強產生 (RAG) 是一種模式,可搭配預先定型的大型語言模型 (LLM) 和您自己的數據來產生回應。 您可以在 Azure 機器學習 的提示流程中實作 RAG。
在本文中,您將瞭解如何使用 Visual Studio Code 中的提示流程擴充功能,將 RAG 流程從 Azure 機器學習 雲端工作區轉換為本機裝置,並加以使用。
重要
RAG 目前處於公開預覽狀態。 此預覽版是在沒有服務等級協定的情況下提供,不建議用於生產工作負載。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款。
必要條件
在本機安裝的 Python
- 執行 所安裝的 promptflow SDK 和 promptflow-tools 套件
pip install promptflow promptflow-tools
- 執行 所安裝的 promptflow-vectordb 工具
pip install promptflow-vectordb
- 執行 所安裝的 promptflow SDK 和 promptflow-tools 套件
已安裝 Python 和提示流程延伸模組的 Visual Studio Code
Azure OpenAI 帳戶資源,具有聊天和文字內嵌-ada的模型部署
在 Azure Machine Learning 工作室 中建立的向量索引,以供範例提示流程使用
建立提示流程
本教學課程使用數據 RAG 提示流程的範例 Q&A,其中包含使用向量索引查閱工具的查閱節點,從儲存在工作區記憶體 Blob 中的已編製索引檔搜尋問題。
在 [Azure Machine Learning 工作室 提示流程] 頁面的 [連線] 索引卷標上,如果您還沒有連線,請設定 Azure OpenAI 資源的連線。 如果您使用 Azure AI 搜尋服務索引作為向量索引的數據源,您也必須有 Azure AI 搜尋連線。
在 [Azure Machine Learning 工作室 提示流程] 頁面上,選取 [建立]。
在 [建立新的流程] 畫面上,選取 [數據] 圖格上的 [複製],以複製範例提示流程。
複製的流程會在撰寫介面中開啟。
在複製流程的 查閱 步驟中,使用向量索引資訊填 入mlindex_content 輸入。
使用聊天 API 的連線和部署資訊,填入answer_the_question_with_context步驟。
請確定範例流程正確執行,並加以儲存。
選取 [檔案] 區段右上方的 [下載] 圖示。 將流程檔案下載為 ZIP 套件至本機電腦。
將封裝解壓縮至資料夾。
在 VS Code 中使用流程
本文的其餘部分詳細說明如何使用 VS Code 提示流程延伸模組來編輯流程。 如果您不想使用提示流程延伸模組,您可以在任何集成開發環境 (IDE) 中開啟解壓縮的資料夾,並使用 CLI 來編輯檔案。 如需詳細資訊,請參閱 提示流程快速入門。
在已啟用提示流程擴充功能的 VS Code 中,開啟解壓縮的提示流程資料夾。
選取左側功能表中的 [提示流程 ] 圖示,以開啟 [提示流程管理] 窗格。
選取 [管理] 窗格中的 [安裝相依性],並確定已選取正確的 Python 解釋器,並安裝 promptflow 和 promptflow-tools 套件。
建立連線
若要在本機使用向量索引查閱工具,您必須建立與雲端相同的向量索引服務連線。
展開 [提示流程管理] 窗格底部的 [連線] 區段,然後選取 + AzureOpenAI 連線類型旁的圖示。
new_AzureOpenAI_connection.yaml 檔案會在編輯窗格中開啟。 編輯此檔案以新增您的 Azure OpenAI 連線
name
和api_base
或端點。 尚未輸入您的api_key
資訊。選取檔案底部的 [ 建立連線 ] 連結。 應用程式會執行 以建立連線。 出現提示時,請在終端機中輸入連線的 API 金鑰。
如果您使用 Azure AI 搜尋服務索引作為向量索引的數據源,也請為要使用的本機向量索引查閱工具建立新的 Azure AI 搜尋連線。 如需詳細資訊,請參閱 Azure 機器學習 的索引查閱工具(預覽版)。
檢查檔案
開啟 flow.dag.yaml 檔案,然後選取檔案頂端的 [可視化編輯器] 連結。
在 flow.dag.yaml 的可視化編輯器版本中,捲動至查閱節點,此節點會取用此流程中的向量索引查閱工具。 在 [mlindex_content] 下,檢查內嵌和索引的路徑和連線。
注意
如果您的索引檔是工作區中的數據資產,本機耗用量需要 Azure 驗證。 請確定您已登入正確的 Azure 租使用者,並連線到 Azure 機器學習 工作區。
在查詢輸入方塊中選取 [編輯] 圖示,這會將原始 flow.dag.yaml 檔案開啟至
lookup
節點定義。請確定此節點中區段的值
tool
設定為promptflow_vectordb.tool.vector_index_lookup.VectorIndexLookup.search
,這是向量索引查閱工具的本機版本。注意
如果您有本機工具的任何問題
promptflow_vectordb
,請參閱 套件工具找不到錯誤 ,並從 舊版工具移轉至索引查閱工具 以進行疑難解答。捲動至 generate_prompt_context 節點,然後在原始 flow.dag.yaml 檔案中,選取 [ 開啟程式代碼檔案 ] 連結。
Python 程式代碼檔案中,確定向量工具的套件名稱為
promptflow_vectordb
。捲動至 answer_the_question_with_context 節點,並確定它使用您所建立的本機連線。 請檢查deployment_name,這是您在這裡用於內嵌的模型。
測試並執行流程
捲動至流程頂端,並填入輸入值,並填入此測試回合的單一問題,例如如何使用 SDK V2?,然後選取 [執行] 圖示來執行流程。
如需批次執行和評估的詳細資訊,請參閱將流程執行提交至 Azure 機器學習 工作區。