共用方式為


使用 Azure Logic Apps 執行處理代理程式工作流程中檔案的 Python 程式碼 (預覽版)

適用於:Azure Logic Apps (標準)

備註

此功能處於預覽狀態,且受限於 Microsoft Azure 預覽版的補充使用規定

在標準邏輯應用程式中,不僅是代理工作流程可以透過聊天介面使用代理來處理自然語言要求,您還可以透過 程式碼解譯器 (Python Container Apps 工作階段) 的內建連接器操作來建立代理工具,以便處理檔案。 這些作業可讓代理程式工作流程能夠產生和執行 Python 程式碼、上傳、下載和刪除檔案。 從案例的角度來看,代理程式可以在隔離的環境中接收指示、接受檔案、產生和執行程式碼,並傳回可用的結果,例如摘要、預測或其他要求的資料轉換 - 所有這些都在同一個工作流程中完成。

備註

本文假設您正在使用代理程式工作流程,並使用代理程式工具內的程式碼解譯器作業,以便您可以讓代理程式產生必要的 Python 程式碼。

下列範例顯示了一個包含名為 Sales Report Agent 的代理程式動作的工作流程。 代理程式程式可以使用一個名為 Upload sales data 的工具來執行名為 Upload fileExecute Python code程式碼解譯器作業。

螢幕擷取畫面顯示了包含代理程式程式和工具的工作流程,該工作流程使用 [程式碼解譯器] 動作將檔案上傳到 [容器應用程式] 工作階段集區,並執行 Python 程式碼進行檔案處理。

當工作流程透過要求觸發程序收到指定檔的 HTTPS 要求時,HTTP 動作會取得要求的檔案。 代理程式程式會收到指示,將檔案上傳到 [容器應用程式] 工作階段集區、產生 Python 程式碼來處理檔案,並根據收到的指示傳回結果:

備註

您可以在代理程式動作外部或標準邏輯應用程式的非代理程式工作流程中使用程式碼解譯器 (Python 容器應用程式工作階段) 作業。 不過,您必須為執行 Python 程式碼動作提供自己的 Python 程式碼。 在這些情況下,程式碼解譯器作業無法存取代理程式連結的 AI 模型所提供的代理程式功能,其中包括自然語言互動和模型產生的程式碼。

您的代理程式工作流程可以處理包含多樣化或碎片化資料的檔案,這些檔案採用 CSV、Excel 或 JSON 等格式,可能包含數千到數百萬列。 不過,原始資料通常需要額外的工作,才能擷取有用的資訊和深入解析,例如:

  • 清理和轉換
  • 擷取深入解析的自訂邏輯
  • 讓資料可操作的視覺化或摘要

這些工作通常需要手動執行容易出錯且耗時的步驟,特別是對於沒有資料科學或工程專業知識的人。 您的工作流程可以使用程式碼解譯器 (Python 容器應用程式工作階段) 作業來自動執行這些工作,並將程式碼解譯器功能以原生方式直接引入 Azure Logic Apps 執行階段。 執行 Python 程式碼的作業是由 Azure 容器應用程式工作階段集區提供支援。 Azure 容器應用程式中的動態工作階段提供對程式碼解譯器的快速且可調整的存取。 每個程式碼解譯器工作階段都會透過 Hyper-V 界限來完全隔離,其設計目的是為了執行不受信任的程式碼。 當您在應用程式容器上啟用網路隔離時,您的資料永遠不會離開定義的網路界限。

這些功能讓像以下範例的案例成為可能:

Scenario 用例
資料探索 商務使用者可以使用自然語言詢問有關資料的問題,而無需撰寫任何程式碼或手動操作試算表,例如:

-「按收入尋找排名前 5 項的產品。」
-「按地區預測下一季的需求。」
-「依據購買行為模式標示出不同的客群。」
Operations 清理大型記錄檔案、找出異常,並產生深入解析以提高可靠性。
金融 分析費用報告、偵測異常情況,或從 Excel 匯出產生季度明細。
銷售和行銷 上傳原始銷售資料並取得按需摘要、預測或地區性比較。

本文說明如何在代理程式工作流程中設定和使用各種程式碼解譯器 (Python 容器應用程式工作階段) 作業。

先決條件

  • Azure 帳戶和訂閱。 如果您沒有 Azure 訂用帳戶,請先註冊免費的 Azure 帳戶

  • Azure 容器應用程式中的容器應用程式和程式碼解譯器工作階段集區。

  • 標準邏輯應用程式資源和代理程式工作流程。 請務必在預設代理程式動作與用於程式碼產生的 AI 模型之間設定連線。

    若要建立此工作流程,請參閱在 Azure Logic App 中建立使用 AI 代理程式和模型來完成工作的工作流程

    備註

    代理程式工作流程必須以要求觸發程序啟動。 程式碼解譯器 (Python 容器應用程式工作階段) 連接器會提供動作,但不會提供觸發程序。

連接器技術參考

如需此連接器作業的相關技術資訊,請參閱連接器的參考文件

上傳檔案

  1. Azure 入口網站中,開啟您的標準邏輯應用程式資源。

  2. 在資源側邊欄上的 [工作流程] 下,選取 [工作流程],然後選取您的代理程式工作流程。

  3. 在工作流程側邊欄的 工具 下,選取設計工具以開啟工作流程。

  4. 預設代理程式動作中,遵循一般步驟來建立工具,並新增名為上傳檔案程式碼解譯器 (Python 容器應用程式工作階段) 動作

  5. 如果系統提示您建立連線,請在 [建立連線] 窗格上提供工作階段集區的連線資訊

  6. 在動作資訊窗格中,展開 [要上傳的輸入檔案],並提供下列值:

    參數 價值觀 Description
    輸入檔案名稱 < 檔案名稱> 要指派給檔案的名稱。
    輸入檔案內容 < 檔案內容> 要上傳的檔案內容路徑。

    在下列範例中,工作流程會使用 HTTP 動作,該動作會發出 REST 呼叫以從其來源位置取得該檔案。 代理程式動作包含一個工具,該工具會使用上傳檔案動作,並以檔案名稱和內容作為參數。 檔案名稱是手動輸入的,而檔案內容會參考上述 HTTP 動作的輸出:

    螢幕擷取畫面顯示了代理程式工作流程,其中包含用於取得檔案的 HTTP 動作,以及用於將檔案新增至工作階段集區的上傳檔案動作。

  7. 如果您有更多要上傳的檔案,請選取 [新增項目]

  8. 完成後,請儲存您的工作流程。 在設計工具的工具列上,選取 [儲存]

執行 Python 程式碼

  1. Azure 入口網站中,開啟您的標準邏輯應用程式資源。

  2. 在資源側邊欄上的 [工作流程] 下,選取 [工作流程],然後選取您的代理程式工作流程。

  3. 在工作流程側邊欄的 工具 下,選取設計工具以開啟工作流程。

  4. 對於預設代理程式動作,請針對您的案例重新命名代理程式,並遵循下列步驟:

    1. 根據您是否已在上一節中使用上傳檔案動作建立了工具,選擇下列任一選項:

    2. 如果系統提示您建立連線,請在 [建立連線] 窗格上提供工作階段集區的連線資訊

    3. 在新工具上,遵循一般步驟,以為模型產生的輸出建立代理程式參數

      此代理程式參數會將在執行階段從代理程式連結的 AI 模型產生的 Python 程式碼傳遞給執行 Python 程式碼動作。

      完成之後,執行 Python 程式碼動作現在會在 [Python 程式碼 方塊中顯示下列程式碼參考:@{agentParameters('python_code')}

      螢幕擷取畫面顯示了 [執行 Python 程式碼] 的動作內部代理程式工作流程和程式碼參考。

    4. 若要讓執行 Python 程式碼動作使用上傳檔案動作中的檔案,請遵循下列步驟將工作階段識別碼參數值設為上傳檔案動作的工作階段識別碼:

      1. 執行 Python 程式碼動作中,從 [進階參數] 清單中選取 [工作階段識別碼] 以將此參數新增至動作中。

      2. 在顯示輸入選項的 [工作階段識別碼] 參數內進行選取,然後選取動態內容選項 (閃電圖示)。

      3. 從動態內容清單的 [上傳檔案] 底下,選取 [工作階段識別碼]

      下列範例顯示了將 [工作階段識別碼] 參數設定為 [上傳檔案] 動作的工作階段識別碼:

      螢幕擷取畫面顯示了「執行 Python 程式碼」動作的進階參數和工作階段識別碼參數。

    5. 重新命名該工具以描述其用途或工作。

  5. 完成後,請儲存您的工作流程。 在設計工具的工具列上,選取 [儲存]

連線資訊

下表描述了在 Azure 容器應用程式中連線到工作階段所需的資訊:

參數 為必填項目 價值觀 Description
連接名稱 Yes < 連線名稱> 用於識別連線的名稱。
連線類型 Yes 受控識別 用於連線的驗證。

附註:若要使用受控識別驗證,您必須在標準邏輯應用程式上設定受控識別,並具有能夠存取您所要之資源的權限。 在工作階段集區資源上,請確保使用名為 Azure ContainerApps 工作階段執行者的角色來設定受控識別。 如需詳細資訊,請參閱在 Azure Logic Apps 中使用受控識別來驗證對 Azure 資源的存取和連線 (部分機器翻譯)。
Subscription Yes < Azure 訂用帳戶> 要使用的 Azure 訂用帳戶。
工作階段集區 Yes < session-pool> Azure 容器應用程式中的工作階段集區,例如 fabrikam-session-pool (/fabrikam-session-pool)