次の方法で共有


Azure Logic Apps を使用してエージェント ワークフロー内のファイルを処理する Python コードを実行する (プレビュー)

適用対象: Azure Logic Apps (Standard)

この機能はプレビュー段階にあり、「Microsoft Azure プレビューの追加使用条件」が適用されます。

Standard ロジック アプリでは、エージェント ワークフローは、エージェントを使用してチャット インターフェイスを介して自然言語要求を処理できるだけでなく、 コード インタープリター (Python Container Apps セッション) 組み込みのコネクタ操作を使用してエージェント ツールを作成するときにファイルを処理することもできます。 これらの操作により、エージェント ワークフローで Python コードの生成と実行、ファイルのアップロード、ダウンロード、削除を行うことができます。 シナリオの観点から見ると、エージェントは命令を受け取り、ファイルを受け入れ、分離された環境でコードを生成して実行し、サマリー、予測、その他の要求されたデータ変換などの使用可能な結果 (すべて同じワークフロー内) を返すことができます。

この記事では、エージェント ワークフローを使用し、エージェント ツール内で コード インタープリター 操作を使用して、エージェントで必要な Python コードを生成できることを前提としています。

次の例は、 Sales Report Agent という名前のエージェント アクションを含むワークフローを示しています。 エージェントは、売上データのアップロードという名前のツールを使用して、Upload ファイルPython コードの実行という名前のコード インタープリター操作を実行できます。

エージェントとツールを使用したワークフローを示すスクリーンショット。これは、Container Apps セッション プールにファイルをアップロードし、ファイル処理のために Python コードを実行するコード インタープリター アクションを使用します。

ワークフローが 要求トリガーを 介して指定されたファイルに対する HTTPS 要求を受信すると、 HTTP アクションは要求されたファイルを取得します。 エージェントには、ファイルを Container Apps セッション プールにアップロードし、ファイルを処理する Python コードを生成し、受信した手順に基づいて結果を返す手順があります。

コード インタープリター (Python Container Apps セッション) 操作は、エージェント アクションの外部、または標準ロジック アプリの非エージェント ワークフローで使用できます。 ただし、Python コードの実行アクションには、独自の Python コード を指定する必要があります。 このような場合、 コード インタープリター 操作では、エージェントのリンクされた AI モデルによって提供されるエージェント機能にアクセスできません。これには、自然言語の相互作用やモデルによって生成されたコードが含まれます。

エージェント ワークフローでは、多様なデータや断片化されたデータを含み、CSV、Excel、JSON などの形式を持つファイルを処理できます。これには数千から数百万行が含まれる可能性があります。 ただし、生データでは、有用な情報や分析情報を抽出する前に、多くの場合、追加の作業が必要になります。次に例を示します。

  • クリーニングと変換
  • 分析情報を抽出するためのカスタム ロジック
  • データを操作可能にする視覚化または概要

多くの場合、これらのタスクでは、データ サイエンスやエンジニアリングの専門知識を持たないユーザーにとって、エラーが発生しやすく時間がかかる手動で実行する手順が必要になります。 ワークフローでは 、コード インタープリター (Python Container Apps セッション) 操作を使用してこれらのタスクを自動化し、コード インタープリター機能をネイティブかつ直接 Azure Logic Apps ランタイムに取り込むことができます。 Python コードを実行する操作は、Azure Container Apps セッション プールを利用します。 Azure Container Apps の動的セッションは、コード インタープリターへの高速でスケーラブルなアクセスを提供します。 各コード インタープリター セッションは、Hyper-V 境界によって完全に分離され、信頼されていないコードを実行するように設計されています。 アプリ コンテナーでネットワーク分離を有効にすると、定義されたネットワーク境界からデータが離れることはありません。

これらの機能により、次の例のようなシナリオが可能になります。

Scenario 利用シーン
データ探索 ビジネス ユーザーは、自然言語を使用し、1 行のコードを記述したり、スプレッドシートを手動で操作したり、自然言語を使用したりすることなく、データについて質問できます。

- "収益で上位 5 つの製品を見つける"
- "次の四半期の需要を地域別に予測する"
- "購入パターンに基づいて顧客セグメントを強調表示する"。
オペレーション 大きなログ ファイルをクリーンアップし、例外を表示し、分析情報を生成して信頼性を向上させます。
ファイナンス 経費明細書の分析、異常の検出、Excel エクスポートからの四半期ごとの内訳の生成。
営業とマーケティング 生の売上データをアップロードし、オンデマンドの概要、予測、または地域比較を取得します。

この記事では、エージェント ワークフローでさまざまな コード インタープリター (Python Container Apps セッション) 操作を設定して使用する方法について説明します。

[前提条件]

  • Azure アカウントとサブスクリプション。 Azure サブスクリプションがない場合は、無料の Azure アカウントにサインアップしてください。

  • Azure Container Apps のコンテナー アプリとコード インタープリター セッション プール。

    • アプリを作成するには、「 クイック スタート: Azure portal を使用して最初のコンテナー アプリをデプロイする」を参照してください。 データがネットワークから離れないようにするには、コンテナー アプリでネットワーク分離を有効にします。

      詳細については、次の記事を参照してください。

    • セッション プールを作成するには、「 Azure Container Apps でセッション プールを作成する」を参照してください。 Azure portal または Azure CLI を使用できます。

      Important

      セッション プールの種類については、 必ず Python コード インタープリターを選択してください。

    • 省略可能: Azure portal を使用するか、HTTPS 要求を送信して、ファイルをセッションにアップロードできます。 その後、Python コードでファイルをデータ ソースとして参照できます。 詳細については、「 ファイルのアップロード - Azure Container Apps でのサーバーレス コード インタープリター セッション」を参照してください。 それ以外の場合は、コード インタープリター (Python Container Apps セッション) コネクタからファイルのアップロード アクションを使用できます。

      セッション プールでファイルを管理したり、コードを実行したりするには、セッション プールに Azure ContainerApps Session Executor という名前の Azure 組み込みロールがあることを確認します。 このタスクについては、「 リソースへの ID アクセス権を付与する」を参照してください。

      Azure portal を使用してファイルをアップロードするには、次の手順に従います。

      1. Azure portal で、コード インタープリター セッション プール リソースを開きます。

      2. リソースサイドバーで、[ プレイグラウンド] を選択します。

      3. プレイグラウンド ツールバーで、[ファイルの管理] を選択します。

        次の例は、プレイグラウンド ツール バーの [ファイルの管理] コマンドを示しています。

        スクリーンショットには、Container Apps セッション プール リソース、プレイグラウンドが選択されたサイド バー メニュー、および [ファイルの管理] コマンドが選択されたプレイグラウンド ツール バーが示されています。

      4. [ ファイルの管理 ] ウィンドウで、[ ファイルのアップロード] を選択し、アップロードするファイルを指定します。

  • 標準ロジック アプリ リソースとエージェント ワークフロー。 コード生成に使用する 既定のエージェント アクションと AI モデルの間に接続を設定していることを確認します。

    このワークフローを作成するには、「 AI エージェントとモデルを使用して Azure Logic Apps でタスクを完了するワークフローを作成する」を参照してください。

    エージェント ワークフローは 、要求 トリガーで開始する必要があります。 コード インタープリター (Python Container Apps セッション) コネクタはアクションを提供しますが、トリガーは提供しません。

コネクタのテクニカル リファレンス

このコネクタの操作に関する技術情報については、 コネクタのリファレンス ドキュメントを参照してください

ファイルをアップロードする

  1. Azure portal で、Standard ロジック アプリ リソースを開きます。

  2. リソース サイドバーの [ ワークフロー] で [ ワークフロー] を選択し、エージェント ワークフローを選択します。

  3. ワークフロー サイドバーの [ ツール] で、デザイナーを選択してワークフローを開きます。

  4. 既定のエージェント アクションで、一般的な手順に従ってツールを作成し、[ファイルのアップロード] という名前のコード インタープリター (Python Container Apps セッション) アクションを追加します。

  5. 接続の作成を求めるメッセージが表示されたら、[接続の 作成 ] ウィンドウで、セッション プールの 接続情報 を指定します。

  6. アクション情報ウィンドウで、[ アップロードする入力ファイル] を展開し、次の値を指定します。

    パラメーター 価値 Description
    入力ファイル名 < file-name> ファイルに割り当てる名前。
    入力ファイルの内容 < file-content> アップロードするファイル コンテンツのパス。

    次の例では、ワークフローは HTTP アクションを使用し、REST 呼び出しを行ってソースの場所からファイルを取得します。 エージェント アクションには、ファイル名とコンテンツをパラメーターとして使用する [ ファイルのアップロード ] アクションを使用するツールがあります。 ファイル名は手動入力ですが、ファイル コンテンツは前の HTTP アクションからの出力を参照します。

    スクリーンショットは、ファイルを取得する HTTP アクションと、セッション プールにファイルを追加するファイルのアップロード アクションを含むエージェント ワークフローを示しています。

  7. アップロードするファイルが他にある場合は、[ 新しいアイテムの追加] を選択します。

  8. 完了したら、ワークフローを保存します。 デザイナーのツール バーで、 [保存] を選択します。

Python コードを実行する

  1. Azure portal で、Standard ロジック アプリ リソースを開きます。

  2. リソース サイドバーの [ ワークフロー] で [ ワークフロー] を選択し、エージェント ワークフローを選択します。

  3. ワークフロー サイドバーの [ ツール] で、デザイナーを選択してワークフローを開きます。

  4. 既定の エージェント アクションの場合は、シナリオに合わせてエージェントの名前を変更し、次の手順に従います。

    1. 前のセクションの [ファイルのアップロード ] アクションを使用してツールを作成したかどうかに基づいて、次のいずれかのオプションを選択します。

    2. 接続の作成を求めるメッセージが表示されたら、[接続の 作成 ] ウィンドウで、セッション プールの 接続情報 を指定します。

    3. 新しいツールで、 一般的な手順に従って、モデルで生成された出力のエージェント パラメーターを作成します

      このエージェント パラメーターは、実行時にエージェントのリンクされた AI モデルから生成された Python コードを Python コードの実行 アクションに渡します。

      完了すると、 Python コードの実行 アクションに、Python コード ボックスに次の コード 参照が表示されるようになりました。 @{agentParameters('python_code')}

      Python コードの実行アクション内のエージェント ワークフローとコード参照を示すスクリーンショット。

    4. Python の実行コード アクションでファイルのアップロード アクションからファイルを使用するには、次の手順に従って、ファイルのアップロード アクションのセッション ID パラメーター値をセッション ID に設定します。

      1. [Python コードの実行] アクションの [詳細パラメーター] ボックスの一覧から [セッション ID] を選択して、このパラメーターをアクションに追加します。

      2. 入力オプションを表示する セッション ID パラメーター内を選択し、動的コンテンツ オプション (稲妻アイコン) を選択します。

      3. 動的コンテンツの一覧の [ ファイルのアップロード] で、[ セッション ID] を選択します。

      次の例は、ファイルのアップロード アクションのセッション ID に設定されたセッション ID パラメーターを示しています。

      Python コードの実行アクションの高度なパラメーターとセッション ID パラメーターを示すスクリーンショット。

    5. 目的またはタスクを説明するようにツールの名前を変更します。

  5. 完了したら、ワークフローを保存します。 デザイナーのツール バーで、 [保存] を選択します。

接続情報

次の表では、Azure Container Apps でセッションに接続するために必要な情報について説明します。

パラメーター 必須 価値 Description
接続名 イエス < 接続名> 接続を識別する名前。
接続の種類 イエス マネージド ID 接続に使用する認証。

: マネージド ID 認証を 使用するには、必要なリソースにアクセスできるように Standard ロジック アプリでマネージド ID を設定する必要があります。 セッション プール リソースで、 Azure ContainerApps Session Executor という名前のロールを使用してマネージド ID を設定してください。 詳細については、「 Azure Logic Apps でマネージド ID を使用して Azure リソースへのアクセスと接続を認証する」を参照してください。
Subscription イエス < Azure サブスクリプション> 使用する Azure サブスクリプション。
セッション プール イエス < session-pool> Azure Container Apps のセッション プール (たとえば、 fabrikam-session-pool (/fabrikam-session-pool))。