共用方式為


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

適用於:Azure Logic Apps (標準)

備註

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

在標準邏輯應用程式中,代理工作流程不僅能透過聊天介面透過代理迴圈處理自然語言請求,也能在使用 程式碼解譯器(Python 容器應用程式會話) 內建連接器操作建立代理工具時處理檔案。 這些操作使代理工作流程能夠產生並執行 Python 程式碼,並上傳、下載及刪除檔案。 從情境角度來看,代理迴圈能接收指令、接受檔案、在隔離環境中產生與執行程式碼,並回傳可用的結果,如摘要、預測或其他請求的資料轉換——全部在同一工作流程中完成。

備註

本指南假設你使用的是代理式工作流程,並使用代理工具內的 程式碼解譯器 操作,讓你能讓代理迴圈產生必要的 Python 程式碼。

以下範例展示了一個包含名為 銷售報告代理的代理迴圈動作的工作流程。 代理迴圈可以使用名為「上傳銷售資料」的工具,執行名為「上傳檔案」和「執行 Python 程式碼」的程式碼解譯器操作。

截圖顯示了使用 agent loop 和 tool 的工作流程,該工具使用 Code Interpreter 動作將檔案上傳到 Container Apps 會話池,並執行 Python 程式碼進行檔案處理。

當工作流程透過要求觸發程序收到指定檔的 HTTPS 要求時,HTTP 動作會取得要求的檔案。 代理迴圈有指令將檔案上傳至 Container Apps 會話池,產生 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 容器應用程式中的容器應用程式和程式碼解譯器工作階段集區。

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

    要建立此工作流程,請參閱 「建立使用 AI 模型完成 Azure Logic Apps 任務的工作流程」。

    備註

    代理式工作流程必須從 Request 觸發器開始。 程式碼解譯器 (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 < 工作階段-集區> Azure 容器應用程式中的工作階段集區,例如 fabrikam-session-pool (/fabrikam-session-pool)