共用方式為


開發提示流程

重要

本文中標示為 (預覽) 的項目目前處於公開預覽狀態。 此預覽版本沒有服務等級協定,不建議將其用於生產工作負載。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款

提示流程是一種開發工具,旨在簡化由大型語言模型 (LLM) 提供之 AI 應用程式的整個開發週期。 提示流程提供了全方位的解決方案,可簡化原型設計、實驗、反覆執行和部署 AI 應用程式的流程。

擁有提示流程,您將能夠:

  • 透過視覺化圖表,使用 LLM、提示和 Python 工具協調可執行流程。
  • 輕鬆完成流程的測試、偵錯和反覆執行。
  • 建立提示變數並比較其效能。

在本文中,您會了解如何在 Azure AI Studio 中建立及開發您的第一個提示流程。

必要條件

建立及開發您的提示流程

建立流程時,您可以複製資源庫中可用的範例,或從頭開始建立。 如果在本機或檔案共用中已經有流程檔案,您也可以匯入檔案來建立流程。

若要從 Azure AI Studio 中的資源庫建立提示流程:

  1. 登入 Azure AI Studio,然後選取您的專案。

  2. 從可折疊的左側功能表選取 [提示流程]

  3. 選取 + 建立

  4. 在 [標準流程] 磚中 ,選取 [建立]

  5. 在 [建立新的流程] 頁面上,輸入文件夾名稱,然後選取 [建立]

    選取和建立標準流程的螢幕擷取畫面。

  6. 提示流程撰寫頁面隨即開啟。 您現在可以開始撰寫流程。 根據預設,您會看到範例流程。 此範例流程包含 LLM 和 Python 工具的節點。

    編輯提示流程頁面上的流程輸入和輸出的螢幕擷取畫面。

    注意

    僅限視覺效果的圖表檢視。 其中會顯示您正在開發的流程結構。 您無法直接編輯圖表檢視,但您可以放大、縮小和捲動。 您可以在圖表檢視中選取節點,以醒目提示並瀏覽至工具編輯檢視中的節點。

  7. 您可以選擇性地將更多工具新增至流程。 可見的工具選項為 LLM提示Python。 若要檢視更多工具,請選取 [+ 更多工具]

    在其中您可以在編輯提示流程頁面上找到更多工具的螢幕擷取畫面。

  8. 在 LLM 工具編輯器中選取連線和部署。

    編輯提示流程頁面上 LLM 工具中所選連線和部署的螢幕擷取畫面。

  9. 選取 [執行] 執行流程。

    在編輯提示流程頁面上選取執行位置的螢幕擷取畫面。

  10. 流程執行狀態會顯示為 [執行中]

    編輯提示流程頁面上執行中狀態的流程的螢幕擷取畫面。

  11. 流程執行完成後,請選取 [檢視輸出] 以檢視流程結果。

    在其中您可以從編輯提示流程頁面選取以檢視流程結果的螢幕擷取畫面。

  12. 您可以在 [輸出] 區段中檢視流程執行狀態和輸出。

    輸出詳細資料的螢幕擷取畫面。

撰寫流程

每個流都由一個包含了「flow.dag.yaml」檔案、原始程式碼檔案和系統資料夾的資料夾來表示。 您可以新增檔案、編輯現有的檔案,以及刪除檔案。 您也可以將檔案匯出至本機,或從本機匯入檔案。

除了在扁平化檢視中直接編輯節點之外,您還可以開啟 [原始檔案模式] 切換,然後選取檔名以在 [開啟的檔案] 索引標籤中編輯檔案。

流程輸入和輸出

流程輸入是指傳遞至流程中的整體資料。 藉由指定名稱和類型來定義輸入結構描述。 設定各項輸入的輸入值,以測試流程。 您稍後可以使用 ${input.[input name]} 語法,在流程節點中引用流程輸入。

流程輸出是流程所產生的整體資料,會摘述流程執行的結果。 您可以在完成流程執行或批次執行後,檢視和匯出輸出資料表。 藉由使用語法 ${[node name].output}${[node name].output.[field name]} 來引用流程單一節點輸出,定義流程輸出值。

藉由引用節點輸出,您可以將節點連結在一起。 例如,您可以在 Python 節點輸入中引用 LLM 節點輸出,讓 Python 節點可以取用 LLM 節點輸出,而且您會在圖形檢視中看到這兩個節點連結在一起。

啟用流程的條件式控制

提示流程不僅提供執行流程的簡化方式,也為開發人員帶來了強大的功能 - 條件式控制,讓使用者為流程中的任何節點設定執行條件。

條件式控制的核心提供將流程中每個節點與啟動組態產生關聯的功能。此組態基本上是判斷節點何時應該執行的 "when" 陳述式。 有複雜的流程,而其中某些任務的執行取決於先前任務的結果時,就會體認到此功能的強大。 藉由善用條件式控制件,您可以設定特定節點只在符合指定條件時才會執行。

具體來說,您可以選取節點卡片中的 [啟動組態] 按鈕,來為節點設定啟動組態。 您可以新增 "when" 陳述式並設定條件。 您可以引用流程輸入或節點輸出來設定條件。 例如,您可以將條件 ${input.[input name]} 設為特定值,或將條件 ${[node name].output} 設為特定值。

如果不符合條件,則會略過節點。 節點狀態會顯示為「已略過」。

測試流程

您可以透過兩種方式測試流程:

  • 執行單一節點
    • 若要執行單一節點,請在扁平化檢視的節點上選取 [執行] 圖示。 執行完成之後,您可以在節點輸出區段中快速檢查結果。
  • 執行整個流程
    • 若要執行整個流程,請選取右上方的 [執行] 按鈕。

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

針對整個流程執行,在執行流程之後,您可以在執行橫幅中看到執行狀態。 然後,您可以選取 [檢視追蹤],以檢視檢查結果的追蹤並觀察流程執行,您可以在其中查看整個流程和每個節點的輸入和輸出,以及偵錯的詳細資訊。 在執行期間以及執行完成後即可使用。

了解追蹤檢視

提示流程的追蹤種類會指定為流程。 在追蹤檢視中,可以觀察到用於流程協調流程的工具清楚順序。

流程根下的每個層級 2 範圍都代表流程中的節點,以函數呼叫的形式執行,因此範圍種類會識別為函式。 您可以在範圍樹狀結構中看到每個節點執行的持續時間。

在範圍樹狀結構中,LLM 呼叫很容易識別為 LLM 範圍。 這些會提供 LLM 呼叫的持續時間及相關聯權杖成本的相關資訊。

藉由選取範圍,您可以在右側看到詳細資訊。 這包括輸入與輸出、原始 Json 和例外狀況,這些對觀察和偵錯都很有用。

 追蹤詳細資料的螢幕擷取畫面。

注意

在提示流程 SDK 中,我們定義了數種範圍類型,包括 LLM、函式、內嵌、流程。 系統會自動在指定的屬性和事件中使用執行資訊來建立範圍。

若要深入了解範圍類型,請參閱追蹤範圍

流程執行完成後,若要檢查結果,您可以選取 [檢視測試結果] 按鈕,以檢查清單中的所有歷史執行記錄。 根據預設,會顯示過去 7 天內建立的執行記錄。 您可以選取 [篩選] 來變更條件。

流程測試結果的螢幕擷取畫面。

您也可以選取執行記錄的 [名稱] 以檢視追蹤檢視中的詳細資訊。

開發聊天流程

聊天流程是專為對話式應用程式開發所設計,以標準流程的功能為基礎,來強化對聊天輸入/輸出和聊天歷程記錄管理的支援。 透過聊天流程,您可以輕鬆地建立聊天機器人來處理聊天輸入和輸出。

在聊天流程撰寫頁面中,聊天流程會標上「聊天」標籤,以與標準流程和評估流程區分。 若要測試聊天流程,請選取 [聊天] 按鈕以觸發進行交談的聊天方塊。

聊天輸入/輸出和聊天歷程記錄

區分聊天流程與標準流程的最重要元素是聊天輸入聊天歷程記錄聊天輸出

  • 聊天輸入:聊天輸入是指使用者向聊天機器人提交的訊息或查詢。 有效地處理聊天輸入對於成功的交談至關重要,因為其間涉及瞭解使用者意圖、擷取相關資訊和觸發適當的回應。
  • 聊天歷程記錄:聊天歷程記錄是使用者與聊天機器人之間所有互動的記錄,包括使用者輸入和 AI 產生的輸出。 維護聊天歷程記錄對於追蹤交談內容並確保 AI 能夠產生內容相關的回應至關重要。
  • 聊天輸出:聊天輸出是指為回應使用者的輸入而由 AI 產生並傳送給使用者的訊息。 產生內容適當且吸引人的聊天輸出對於正面的使用者體驗至關重要。

聊天流程可以有多個輸入,聊天歷程記錄和聊天輸入是聊天流程中的必要項目。

  • 在聊天流程輸入區段中,可以將流程輸入標示為聊天輸入。 然後,您可以在聊天方塊中輸入內容 ,以填入聊天輸入值。

  • 提示流程可協助使用者管理聊天歷程記錄。 輸入區段中的 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. 就地檢視追蹤,以便快速觀察和偵錯。

下一步