僅適用於:Foundry(經典)入口。 這篇文章無法在新的 Foundry 入口網站中提供。
了解更多關於新入口網站的資訊。
註
本文中的連結可能會開啟新版 Microsoft Foundry 文件的內容,而非您目前正在瀏覽的 Foundry(經典版)文件。
警告
Prompt Flow 功能開發於 2026 年 4 月 20 日結束。 此功能將於 2027 年 4 月 20 日全面退休。 在淘汰日期當天,提示流程會進入唯讀模式。 您現有的資金流將持續運作至該日期。
提示流程是一種開發工具,旨在簡化由大型語言模型(LLM)驅動的 AI 應用的整個開發週期。 提示流程提供一個全面的解決方案,簡化了原型製作、實驗、迭代及部署 AI 應用程式的流程。
透過提示流程,您能夠:
- 透過視覺化的圖表,協調 LLM、提示符和 Python 工具的執行流程。
- 輕鬆測試、除錯並反覆優化你的流程。
- 創造提示變體並比較它們的表現。
在本文中,你將學習如何在 Microsoft Foundry 入口網站中創建並開發你的第一個提示流程。
先決條件
重要
本文提供基於集線器的專案的舊有支援。 這方法無法用於 Foundry 專案。 看看 ,我怎麼知道我手上的專案類型?
SDK 相容性說明:程式碼範例需要特定版本的 Microsoft Foundry SDK 版本。 如果你遇到相容性問題,可以考慮 從樞紐式專案遷移到 Foundry 專案。
- 一個有有效訂閱的 Azure 帳號。 如果你還沒有,請建立一個free Azure帳號,其中包含免費試用訂閱。
- 如果還沒有,就 建立一個中心型專案。
- 提示流程需要一個運算會話。 如果您沒有執行階段,可以在 Foundry 入口網站建立一個。
- 你需要一個已部署的模型。
- 在你的專案中,為 blob 儲存帳號設定存取控制。 將儲存體 Blob 資料參與者角色指派給您的使用者帳戶。
- 在 Foundry 入口網站左下角,選擇 管理中心。
- 在你的集線器的Connected resources中,選擇對應於Azure Blob 儲存體類型的連結。
- 選擇在Azure入口網站查看
- 在Azure入口網站中,選擇存取控制(IAM)。
- 選擇
新增 新增角色分配 。 - 搜尋儲存體 Blob 資料參與者,然後選取。
- 請使用 「新增角色分配 」頁面將自己加入為會員。
- 選擇 檢視 + 指派 以審核任務。
- 選擇 Review + 指派 以指派該角色。
建立和開發您的提示流程
你可以透過複製畫廊中可用的樣本來建立流程,或是從零開始建立流程。 如果你已經在本地或檔案分享中有流程檔案,也可以匯入檔案來建立流程。
若要從 Foundry 入口網站中的資源庫建立提示流程:
提示
因為你可以在 Microsoft Foundry 入口網站中自訂左側窗格,所以你可能會看到與這些步驟中顯示的不同物品。 如果你找不到你想要的,選擇 ⋯⋯更多選項 在左側窗格底部。
登入 Microsoft Foundry。 確定 新鑄造廠 的切換開關是關閉的。 這些步驟指的是Foundry (classic)。
選擇你的專案。
如果你在管理中心,請選擇 「前往專案 」以返回你的專案。
從可摺疊的左側選單中,選取 [提示流程]。
選擇 + 創建。
在 標準流程 圖塊中,選擇 「建立」。
在 「建立新流程 」頁面,輸入資料夾名稱,然後選擇 「建立」。
提示流程的編寫頁面會開啟。 選擇 「開始運算會話 」以讓運算會話為流程運行。
你現在就可以開始撰寫你的流程了。 預設設定下,你會看到一個樣本流程。 這個範例流程包含 LLM 和 Python 工具的節點。
註
圖表視圖僅供視覺化使用。 它顯示你正在發展的流程結構。 你不能直接編輯圖表視圖,但可以放大、縮小和捲動。 你可以在圖表檢視中選取節點高亮,並在工具編輯檢視中導覽該節點。
你也可以選擇性地在流程中加入更多工具。 可見的工具選項包括
LLM 、Prompt ,以及 Python 。 要查看更多工具,請選擇 + 更多工具。在 LLM 工具編輯器中選擇連線與部署。
在 輸入 區塊中,為主題加上一個值。 例如,「原子」。
選擇 「運行 」來執行流程。
流程運行狀態顯示 為「運行中」。
流程執行完成後,選擇 「檢視輸出 」以查看流程結果。
你可以在 輸出 區塊查看流程運行狀態和輸出。
編寫流程
每個流程由一個資料夾表示,內含 'flow.dag.yaml'' 檔案、原始碼檔案及系統資料夾。 你可以新增檔案、編輯現有檔案,甚至刪除檔案。 你也可以把檔案匯出到本地,或是從本地匯入檔案。
除了在預設檢視中直接編輯節點之外,您也可以開啟 [原始檔案模式] 切換,並選取檔案名稱,在開啟的檔案分頁中編輯該檔案。
流量輸入與輸出
流程輸入是指傳遞至流程中的整體資料。 透過指定名稱與類型來定義輸入結構。 設定每個輸入的輸入值以測試流量。 你可以在流程節點中使用 ${inputs.[input name]} 標記來引用流程輸入。
流量輸出是整個流程所產生的資料,用以總結流程執行的結果。 流程執行或批次執行結束後,你可以查看並匯出輸出表。 透過參考流程中單一節點的輸出來定義流程輸出值,語法為 ${[node name].output} 或 ${[node name].output.[field name]}。
連結節點
透過參考節點輸出,你可以將節點連結在一起。 例如,你可以在 Python 節點輸入中參考 LLM 節點的輸出,這樣 Python 節點就能消耗 LLM 節點的輸出,在圖視圖中你可以看到兩個節點是連結在一起的。
啟用流的條件控制
提示流程不僅提供了簡化流程執行的方式,還為開發者帶來了強大的功能——條件控制,讓使用者能設定流程中任意節點執行的條件。
條件控制的核心功能是能將流程中的每個節點與 啟用設定關聯起來。此配置本質上是一個「當」陳述式,用以決定節點何時執行。 當您有複雜流程,而某些任務的執行取決於前一任務的結果時,這個功能的優勢就得以發揮。 透過條件控制,你可以設定特定節點只在符合指定條件時執行。
具體來說,你可以透過節點卡片上的 啟用設定 按鈕來設定節點的啟用設定。 你可以加上「when」陳述並設定條件。
你可以透過參考流量輸入或節點輸出來設定條件。 例如,你可以將條件 ${inputs.[input name]} 設定為特定值或 ${[node name].output} 特定值。
若條件未達成,該節點會被跳過。 節點狀態顯示為「繞過」。
測試流量
你可以用兩種方式測試流量:
執行單一節點:
- 要執行單一節點,請在預設檢視中選擇節點的 執行 圖示。 執行結束後,你可以快速查看節點 輸出 區的結果。
n
- 要執行單一節點,請在預設檢視中選擇節點的 執行 圖示。 執行結束後,你可以快速查看節點 輸出 區的結果。
n
執行整個流程:
- 要執行整個流程,請選擇右上方的 執行 按鈕。
檢視測試結果與追蹤(預覽)
追蹤預設是停用的,要啟用追蹤你需要將環境變數 PF_DISABLE_TRACING 設為 false。 你可以在 Python 節點中加入以下內容:
import os
os.environ["PF_DISABLE_TRACING"] = "false"
整個流程運行期間,完成執行後,你可以在運行標題中查看運行狀態。 若要查看追蹤以檢查結果並觀察流程執行,您可以選擇 「檢視輸出 」,然後選擇 追蹤 標籤。你可以看到整個流程和每個節點的輸入輸出,還有更詳細的除錯資訊。 它在跑步期間和完成後都可以使用。
了解追蹤檢視
在輸出畫面選擇 追蹤標籤, 即可查看圖表,提供流程持續時間及相關代幣成本資訊。 在節點名稱下選擇流程,即可在右側窗格查看詳細的流程概覽資訊。
註
在提示流程 SDK 中,我們定義了多種範圍類型,包括 LLM、 函式、 嵌入、 檢索和 流程。 系統會自動建立包含執行資訊的追蹤跨度,並在指定的屬性與事件中記錄相關資訊。
欲了解更多關於跨度類型,請參閱 「痕跡跨度」。
建立聊天流程
聊天流程設計用於對話式應用程式開發,建立在標準流程的功能基礎上,並提供對聊天輸入/輸出及聊天記錄管理的強化支援。 有了聊天流程,你可以輕鬆建立一個處理聊天輸入和輸出的聊天機器人。
在聊天流程創作頁面中,聊天流程會被標記為「聊天」標籤,以區別於標準流程和評估流程。 要測試聊天流程,請選擇「聊天」按鈕,觸發對話框。
聊天輸入/輸出與聊天歷史
區分聊天流程與標準流程最重要的元素是 聊天輸入、 聊天歷史紀錄和 聊天輸出。
- 聊天輸入:聊天輸入指的是用戶向聊天機器人提交的訊息或查詢。 有效處理聊天輸入對成功對話至關重要,因為這涉及理解使用者意圖、提取相關資訊並觸發適當回應。
- 聊天紀錄:聊天記錄是用戶與聊天機器人之間所有互動的紀錄,包括使用者輸入及 AI 生成的輸出。 維護聊天紀錄對於追蹤對話上下文並確保 AI 能產生與情境相關的回應至關重要。
- 聊天輸出:聊天輸出是指由 AI 生成的訊息,這些訊息是回應使用者的輸入而發送給他們的。 產生符合情境且具吸引力的聊天輸出,對於正面的使用者體驗至關重要。
聊天流程可以包含多個輸入,在聊天流程中,聊天歷史和聊天輸入是必需的。
在聊天流程的輸入區塊中,可以將一個流程輸入標記為聊天輸入。 接著,您可以在聊天輸入框中輸入內容以填入聊天輸入值。
提示流程(Prompt flow)可以協助使用者管理聊天記錄。 在輸入區域中,
chat_history保留用於表示聊天歷史。 聊天框中的所有互動,包括用戶聊天輸入、生成的聊天輸出,以及其他流程輸入與輸出,都會自動儲存在聊天歷史紀錄中。 使用者無法在輸入區段手動設定 的chat_history值。 它的結構是輸入與輸出的清單:[ { "inputs": { "<flow input 1>": "xxxxxxxxxxxxxxx", "<flow input 2>": "xxxxxxxxxxxxxxx", "<flow input N>""xxxxxxxxxxxxxxx" }, "outputs": { "<flow output 1>": "xxxxxxxxxxxx", "<flow output 2>": "xxxxxxxxxxxxx", "<flow output M>": "xxxxxxxxxxxxx" } }, { "inputs": { "<flow input 1>": "xxxxxxxxxxxxxxx", "<flow input 2>": "xxxxxxxxxxxxxxx", "<flow input N>""xxxxxxxxxxxxxxx" }, "outputs": { "<flow output 1>": "xxxxxxxxxxxx", "<flow output 2>": "xxxxxxxxxxxxx", "<flow output M>": "xxxxxxxxxxxxx" } } ]
註
在聊天輸入框中進行測試時,編寫頁面提供自動儲存或管理聊天歷史的功能。 對於批次執行,使用者必須在批次執行資料集中包含聊天歷史。 如果沒有可供測試的聊天紀錄,請在批次執行資料集中將chat_history設為空清單 [] 。
作者提示與聊天紀錄
將聊天歷史納入提示中,對於創造具情境感知且吸引人的聊天機器人回應至關重要。 在提示中,你可以參考 chat_history 來取得先前的互動。 這讓你能參考先前的輸入與輸出,創造與情境相關的回應。
使用 Jinja 語言的 for-loop 文法 來顯示來自 chat_history的輸入與輸出清單。
{% for item in chat_history %}
user:
{{item.inputs.question}}
assistant:
{{item.outputs.answer}}
{% endfor %}
用聊天框測試
聊天框提供一種互動方式,透過模擬與聊天機器人的對話來測試聊天流暢度。 要測試聊天框的聊天流程,請遵循以下步驟:
- 選擇「聊天」按鈕開啟聊天框。
- 在聊天框輸入你的測試輸入,然後按 Enter 鍵傳送給聊天機器人。
- 請檢視聊天機器人的回應,確保其在情境中適當且準確。
- 在原位置檢視 [檢視追蹤],以便快速觀察與偵錯。