開發提示流程(經典版)

僅適用於:Foundry(經典)入口。 這篇文章無法在新的 Foundry 入口網站中提供。 了解更多關於新入口網站的資訊。

本文中的連結可能會開啟新版 Microsoft Foundry 文件的內容,而非您目前正在瀏覽的 Foundry(經典版)文件。

警告

Prompt Flow 功能開發於 2026 年 4 月 20 日結束。 此功能將於 2027 年 4 月 20 日全面退休。 在淘汰日期當天,提示流程會進入唯讀模式。 您現有的資金流將持續運作至該日期。

建議行動:請於2027年4月20日前將您的Prompt Flow工作負載遷移至Microsoft代理框架

提示流程是一種開發工具,旨在簡化由大型語言模型(LLM)驅動的 AI 應用的整個開發週期。 提示流程提供一個全面的解決方案,簡化了原型製作、實驗、迭代及部署 AI 應用程式的流程。

透過提示流程,您能夠:

  • 透過視覺化的圖表,協調 LLM、提示符和 Python 工具的執行流程。
  • 輕鬆測試、除錯並反覆優化你的流程。
  • 創造提示變體並比較它們的表現。

在本文中,你將學習如何在 Microsoft Foundry 入口網站中創建並開發你的第一個提示流程。

先決條件

重要

本文提供基於集線器的專案的舊有支援。 這方法無法用於 Foundry 專案。 看看 ,我怎麼知道我手上的專案類型?

SDK 相容性說明:程式碼範例需要特定版本的 Microsoft Foundry SDK 版本。 如果你遇到相容性問題,可以考慮 從樞紐式專案遷移到 Foundry 專案

  • 提示流程需要一個運算會話。 如果您沒有執行階段,可以在 Foundry 入口網站建立一個
  • 你需要一個已部署的模型。
  • 在你的專案中,為 blob 儲存帳號設定存取控制。 將儲存體 Blob 資料參與者角色指派給您的使用者帳戶。
    • 在 Foundry 入口網站左下角,選擇 管理中心
    • 在你的集線器的Connected resources中,選擇對應於Azure Blob 儲存體類型的連結。
    • 選擇在Azure入口網站查看
    • 在Azure入口網站中,選擇存取控制(IAM)
    • 選擇 新增新增角色分配
    • 搜尋儲存體 Blob 資料參與者,然後選取。
    • 請使用 「新增角色分配 」頁面將自己加入為會員。
    • 選擇 檢視 + 指派 以審核任務。
    • 選擇 Review + 指派 以指派該角色。

建立和開發您的提示流程

你可以透過複製畫廊中可用的樣本來建立流程,或是從零開始建立流程。 如果你已經在本地或檔案分享中有流程檔案,也可以匯入檔案來建立流程。

若要從 Foundry 入口網站中的資源庫建立提示流程:

提示

因為你可以在 Microsoft Foundry 入口網站中自訂左側窗格,所以你可能會看到與這些步驟中顯示的不同物品。 如果你找不到你想要的,選擇 ⋯⋯更多選項 在左側窗格底部。

登入 Microsoft Foundry。 確定 新鑄造廠 的切換開關是關閉的。 這些步驟指的是Foundry (classic)

  1. 選擇你的專案。

  2. 如果你在管理中心,請選擇 「前往專案 」以返回你的專案。

  3. 從可摺疊的左側選單中,選取 [提示流程]

  4. 選擇 + 創建

  5. 標準流程 圖塊中,選擇 「建立」。

  6. 「建立新流程 」頁面,輸入資料夾名稱,然後選擇 「建立」。

    選取並建立標準流程的截圖。

  7. 提示流程的編寫頁面會開啟。 選擇 「開始運算會話 」以讓運算會話為流程運行。

  8. 你現在就可以開始撰寫你的流程了。 預設設定下,你會看到一個樣本流程。 這個範例流程包含 LLM 和 Python 工具的節點。

    編輯提示流程頁面上流程輸入與輸出的截圖。

    圖表視圖僅供視覺化使用。 它顯示你正在發展的流程結構。 你不能直接編輯圖表視圖,但可以放大、縮小和捲動。 你可以在圖表檢視中選取節點高亮,並在工具編輯檢視中導覽該節點。

  9. 你也可以選擇性地在流程中加入更多工具。 可見的工具選項包括 LLMPrompt,以及 Python。 要查看更多工具,請選擇 + 更多工具

    這是編輯提示流程頁面上可以找到更多工具的截圖。

  10. 在 LLM 工具編輯器中選擇連線與部署。

    在編輯提示流程頁面的 LLM 工具中,已選取的連線與部署之螢幕擷取畫面。

  11. 輸入 區塊中,為主題加上一個值。 例如,「原子」。

  12. 選擇 「運行 」來執行流程。

    在編輯提示流程頁面中選擇「執行」的截圖。

  13. 流程運行狀態顯示 為「運行中」。

    編輯提示流程頁面執行狀態下的流程截圖。

  14. 流程執行完成後,選擇 「檢視輸出 」以查看流程結果。

    截圖顯示你可以從編輯提示流程頁面選擇查看流程結果的位置。

  15. 你可以在 輸出 區塊查看流程運行狀態和輸出。

    輸出細節截圖。

編寫流程

每個流程由一個資料夾表示,內含 '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 截圖顯示節點卡上的執行按鈕。
  • 執行整個流程:

    • 要執行整個流程,請選擇右上方的 執行 按鈕。

檢視測試結果與追蹤(預覽)

追蹤預設是停用的,要啟用追蹤你需要將環境變數 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 %}

用聊天框測試

聊天框提供一種互動方式,透過模擬與聊天機器人的對話來測試聊天流暢度。 要測試聊天框的聊天流程,請遵循以下步驟:

  1. 選擇「聊天」按鈕開啟聊天框。
  2. 在聊天框輸入你的測試輸入,然後按 Enter 鍵傳送給聊天機器人。
  3. 請檢視聊天機器人的回應,確保其在情境中適當且準確。
  4. 在原位置檢視 [檢視追蹤],以便快速觀察與偵錯。

下一步