プロンプトの例でコード インタープリターを使用する

次の例は、複雑なプロンプトを処理するためのコード インタープリターの機能を示しています。

この例では、 新しいプロンプトを開始し、プロンプト設定でコード インタープリターを有効にしていることを前提としています。

シナリオ 1 の例: トランザクションを監査するコード インタープリター プロンプト

Contoso の購買マネージャーは、購入トランザクションを定期的に監査します。 リスクの高いベンダーを特定する定期的な PDF レポートを受け取り、10,000 ドルを超えるトランザクションに対して発注書を要求するポリシーに従います。 購買マネージャーは PDF を使用して、Excelのトランザクションを監査します。 購買マネージャーは、コード インタープリターと共にプロンプトを使用して、この監査プロセスを自動化します。

トランザクション プロンプトを編集してテストする

プロンプト エディターを開き、コード インタープリターを有効にした状態で、次の手順に従ってプロンプトを作成します。

  1. プロンプトへの次の指示を入力します。

    1. You are given:
    -An Excel file <parameter A> with thousands of procurement transactions, including vendor name, invoice amount, PO number, and transaction date.
    -A PDF file <parameter B> listing vendors flagged as "High Risk" in the latest compliance audit.
    
    2. Your tasks:
    -Process the Excel file to identify:
    -Transactions over $10,000 with missing or blank PO numbers.
    -Extract vendor names from the PDF file that are marked "High Risk".
    -Cross-reference the vendor names in Excel with those from the PDF file.
    -Flag transactions that meet either of the following criteria:
      -High-value transaction with missing PO
      -Vendor is classified as High Risk
    -For each flagged transaction:
      -Highlight the row in red
      -Add a comment explaining the issue (for example, "High Risk Vendor" or "PO Missing")
    
    3. Generate a summary report listing:
    -Total flagged transactions
    -Vendor names involved
    -Reasons for flagging
    
    4. Return:
    -The updated Excel file with highlights and comments
    -A summary audit report formatted as PDF
    -A summary of updates made in text
    
  2. この手順では、<parameter A> を、調達トランザクションを含むExcel ファイルのファイル入力パラメーターに置き換えます。 変更するには、テキストを / に置き換え、コンテキスト メニューから [イメージまたはドキュメント ] を選択します。 "調達トランザクション" などのこのパラメーターの名前を指定し、想定される形式を使用してトランザクションを含むサンプル Excel ファイルをアップロードします。

    トランザクション ID、仕入先名、請求書金額、発注書番号、およびトランザクション日付がトランザクション ファイルの列として含まれていることを確認します。 コード インタープリターが有効になっている別のプロンプトを使用して、必要に応じてこのサンプル Excel ファイルを作成できます。

  3. 同じ手順に従って、 <parameter B> テキストを、ベンダー リスク レポート用のアップロードされた入力 PDF ドキュメントに置き換えます。 PDF ファイルでは、ベンダー名をリストとして使用できます。 ここでも、コード インタープリターが有効になっている別のプロンプトを使用して、必要に応じてサンプル PDF ファイルを作成できます。

  4. テストを選択します。

    数秒後に、モデルの応答として概要出力がテキストで表示されます。

    既定のモデルは GPT-4o のままにするか、必要に応じて他の任意のモデルを選択できます。

  5. モデル応答>出力 で、モデルの応答形式として ドキュメント を選択します。 また、モデル応答には、フラグ付きトランザクションを含む更新されたExcel ファイルと PDF 形式の概要レポートも表示されます。 これらのファイルをダウンロードして結果を確認できます。

    Important

    別のファイルで再テストするには、プロンプト テキストを変更して保存する必要があります。 プロンプトを変更せずにサンプル ファイルをアップロードまたはスワップするだけでは、再処理はトリガーされません。

この例では、ファイルを使用して複雑なシナリオを実行するプロンプトを有効にするコード インタープリターの機能を示します。

シナリオ 2 の例: Dataverse テーブルの視覚的な概要を作成するためのコード インタープリター プロンプト

この例では、コード インタープリターを有効にしてプロンプトを作成し、Dataverse テーブルからレコードを読み取り、データを分析し、視覚的な概要 (グラフ) とテキストの概要を生成する方法を示します。

Dataverse プロンプトを編集してテストする

プロンプト エディターを開き、コード インタープリターを有効にした状態で、次の手順に従ってプロンプトを作成します。

  1. プロンプトへの次の指示を入力します。

    1. You are given:
    - Ticket data that gives the created date/time, first response date/time, and the first response SLA date/time:
    
    2. Your tasks:
    - Create a histogram of the tickets by day of the week created and show the first response SLA status
    - Create insights into trends in the data
    
    3. Return:
    - A graph. Make sure to return the graph as a base64 encoded image
    - A summary of insights
    
  2. 関連する Dataverse テーブル(例えば、チケットやスタッフのスケジュール)にリンクし、プロンプトを根付かせます。

    1. /を使用して入力とナレッジ メニューを開き、[ナレッジ] で [Dataverse] を選択します。

      プロンプトを関連する Dataverse テーブルにリンクするスクリーンショット。

    2. テーブルを選択し、プロンプトに必要なフィールド (チケットの状態、割り当てられたエージェント、SLA の状態など) を選択します。

    3. [ 追加] を選択して、テーブルのフィールドをプロンプトに追加します。

      プロンプトにフィールドを追加するスクリーンショット。

    4. 必要に応じて [ 属性のフィルター] を選択して、特定の属性と値のテーブル データをフィルター処理します。

      テーブル データのフィルター処理のスクリーンショット。

  3. [ テスト ] を選択してプロンプトを実行します。

  4. プロンプトがチケット データを読み取り、割り当てルールを適用し、Dataverse のレコードを期待どおりに更新することを確認します。

    機能を確認するためのプロンプトの実行のスクリーンショット。

  5. プロンプトを保存します

プロンプトを Copilot Studio のエージェント フローに統合する

次に、プロンプトをラップして Dataverse に接続するエージェント フローを作成できます。

  1. エージェントの [ツール] ページに戻り、[ツールの追加] >[新しいツール>エージェント フロー] を選択します。

    エージェント フロー デザイナーは、エージェントがフロー トリガーを 呼び出すときに最初に 表示されます。

  2. デザイナーで、[挿入] を選択>プロンプトを実行して、新しい [プロンプトの実行] アクションを追加します。

    エージェント フロー デザイナーでプロンプトを実行する新しいアクションを挿入するスクリーンショット。

  3. [ プロンプトの実行 ] ノードで、コード インタープリター プロンプトを選択します。

    [プロンプトの実行] ノードでコード インタープリター プロンプトを選択するスクリーンショット。

  4. デザイナーで、[挿入>エージェントに応答] を選択し、[プロンプトの実行] アクションの後に新しい [エージェントへの応答] アクションを追加します。

  5. 次に、エージェント ノード エディター に応答を 開き、出力としてエージェントに渡すパラメーターを選択します。

  6. [出力の追加] を使用して、概要テキストと、フローの出力としてプロンプトからのグラフ画像データを追加します。

    出力 Summaryの 1 つに名前を付け、動的な値オプションを使用して、[プロンプトの実行] アクションから Insights 出力変数 選択します。

    2 番目の出力 GraphBase64に名前を付け、式オプションを使用して出力値を定義します。 [プロンプトの実行] アクションから Base64 イメージ出力を選択します。

    [概要テキスト] と [グラフ] イメージの出力を選択しているスクリーンショット。

  7. 下書きを保存を選択します。

  8. [ 概要 ] タブの [ 詳細] で、フローに名前を付けます。

エージェントを公開および利用する

  1. エージェントを保存し、公開します。

    エージェントで Dataverse レコードを処理し、概要とグラフを生成できるようになりました。

  2. エージェントの [ツール] ページに移動し、プロンプトを使用する特定のエージェント フローを選択します。

  3. [ 完了] で、[ 実行後 ] アクションを [ アダプティブ カードの送信] に設定します (以下を指定します)。

  4. Power Fx式で表示するAdaptive cardの中から、Formulaを選択して、カードを式で定義します。

    アダプティブ カード数式エディターが表示されます。

  5. 次の式を使用して、アダプティブ カードの内容とソースを定義します。

    {
      "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
      "type": "AdaptiveCard",
      "version": "1.0",
      "body": [
        {
          "type": "Image",
          "url": "data:image/png;base64," & Topic.Output.GraphBase64,
          "altText": "Ticket analysis generated graph"
        },
        {
          "type": "TextBlock",
          "text": Topic.Output.Summary,
          "wrap": true
        }
      ]
    }
    

    ここでは、 Topic.Output.GraphBase64Topic.Output.Summary は、エージェント フローに対して前に定義した出力変数です。

  6. エージェントを保存してテストします。

  7. 他のユーザーが Dataverse テーブルに基づいて動的コンテンツを生成できるように、エージェントを発行します。

シナリオ 3 の例: ユーザー指定のExcel ファイルからグラフを作成するためのコード インタープリター プロンプト

この例では、アップロードされたExcel ファイルを読み取り、データをグラフイメージに変換し、その画像をユーザーに返すために、コード インタープリターを有効にしてプロンプトを作成する方法を示します。 プロンプトは、ユーザーがExcel ファイルをアップロードしてグラフを要求したときに、トピックからトリガーされます。

グラフ生成プロンプトを作成して構成する

プロンプト エディターを開き、コード インタープリターを有効にした状態で、次の手順に従ってプロンプトを作成します。

  1. プロンプトにわかりやすい名前 (画像 生成プロンプトなど) を付け、プロンプトに次の手順を入力します。

    Read the attached Excel (.xlsx) and convert it into a chart named mychart.png. 
    
  2. /を使用して入力とナレッジ メニューを開き、[入力] で [画像] または [ドキュメント] を選択します。

  3. テスト用のドキュメント入力としてアップロードするサンプル データを含むExcel ファイルを選択します。

  4. 保存を選びます。

  5. [ エージェントに追加] を 選択して、プロンプトをツールとして追加します。

グラフ プロンプトを呼び出すトピックを作成する

  1. Copilot Studioの Topics タブに移動し、 トピックの追加>空白 を選択して新しいトピックを作成します。

  2. [トリガー 注記] で、トピックの動作を 「ファイルがアップロードされ、ユーザーが 'グラフを生成してください' と言うとき」に設定します。

  3. ノードの追加 を選択し、変数の管理>リストの管理>リスト全体をループする を選択してループ ノードを追加します。

  4. リストをループするノードを選択してノード エディターを開きます。 [ ループする項目 ] で、[ 変数の選択>System>Activity.Attachments ] を選択します

    プロンプトをトリガーするサンプル トピックのスクリーンショット。

  5. ループ内で [ ノードの追加] を選択し、[ ツールの追加 ] を選択し、前に作成したプロンプトを選択して、プロンプト ツールをトピックに追加します。

  6. それに応じて入力変数と出力変数を構成します。 入力に対して、数式を使用して Topic.LoopValue1.Value を設定し、[挿入] を選択 します。 出力の場合は、プロンプト出力をキャプチャするために Output という名前の変数を初期化します。

    サンプル プロンプト ツールのスクリーンショット。

  7. ループ内で [ノードの追加] を選択>メッセージを作成してメッセージ ノードを追加します。 メッセージ ノードは、プロンプト出力をユーザーに中継するために使用されます。 この例では、プロンプトは応答で Output 変数を初期化します。 テキストは Output.textに格納されます。

  8. メッセージのテキスト部分で、[ 変数の挿入 ] を選択し、 Output.textを選択します。

  9. [ 追加>イメージ ] を選択して、メッセージに画像を追加します。

    サンプル メッセージ ツールのスクリーンショット。

  10. 次に、画像を正しく表示する書式を設定します。 [メディア] を選択し、[イメージ URL] で [変数の選択>Formula] を選択し、次の数式を入力します。"data:" & Topic.Output.artifacts.mychart.mimeType & ";base64," & Topic.Output.artifacts.mychart.base64Content

    この形式は、チャットがイメージを正しくレンダリングするために必要です。 この例では、 mychart はプロンプトでファイル出力用に選択した名前を表し、 Output は変数名です。 詳細は、プロンプト出力とトピック変数の名前付け方法に応じて、他の例で変更される可能性があります。

    画像レンダリングの数式のスクリーンショット。

  11. 保存を選択して、トピックを保存します。

  12. テストを選択します。 プロンプトがトリガーされると、画像が表示されます。

    画像を使用したチャット応答のスクリーンショット。

コード インタープリターを使用したプロンプトのその他の例

次の表に、コード インタープリターを有効にして使用できるプロンプトの例を示します。 これらの例では、複雑なタスクを実行するようにコード インタープリターに求める方法を示します。

プロンプト 予想される結果
注文の詳細をキャプチャする PDF ファイルを作成する PDF フォームで注文キャプチャ フォームを生成する
PDF ファイル <パラメーター A> のコピーを作成する 指定された PDF ファイル入力のコピーを作成します。
販売トランザクションの合成データ セットを含むExcel ファイルを作成する サンプルの販売トランザクションを含むExcel ファイルを作成します。 より高度な合成データを生成するための指示をプロンプトに表示することで、パフォーマンスを向上させることができます。 次の例では、より複雑なプロンプトを示します。
完全な暦年の 4 つのリージョン ("北"、"南"、"東"、"西") にわたる毎週の販売トランザクションをシミュレートする現実的な合成データセットを含むExcel ファイルを作成します。 各レコードには、次のものが含まれている必要があります。
- トランザクションの日付 (毎週)
- リージョン
- 営業担当者名 (リージョンごとに 3 つ以上の一意の名前)
- 製品カテゴリ (「電子機器」、「家具」、「アプライアンス」、「衣料品」など)
- 製品名 (カテゴリに基づく実際の名前)
- 販売単位
- 単価 (カテゴリによって異なる)
- 総売上額 (計算済み)
- 目標達成 (リージョンのしきい値に基づく、はい/いいえ)
- 四半期
- チャネル (オンライン、小売、ディストリビューター)
- 顧客セグメント (例: 「エンタープライズ」、「SMB」、「コンシューマー」)

ランダムなバリエーションと季節性を挿入します。
- 第 4 四半期に「エレクトロニクス」の売上を拡大
- 1 月から 2 月の「北部」での売上の減少 (冬の減速をシミュレート)
- 第 2 四半期 (春) の衣料品売上の増加

最終的なデータセットは、少なくとも 2,000 行である必要があります。 リアリズムのためにわずかなランダム性を追加します。
このプロンプトでは、以前よりも豊富な合成データを含むExcel ファイルが生成されます。 このプロンプトは、コード インタープリターの有効性と、プロンプトで明確で詳細な指示を行う方法を示しています。
概要シートの自動作成 – <パラメーター A> を使用して以下を生成します。

- 月単位のロールアップ
- 最もパフォーマンスの高いリージョン
- パフォーマンスが期待に満たない従業員の条件付き書式設定
このプロンプトに入力としてファイルを渡して、Excel ファイルの分析を実行します。 このプロンプトはExcelで概要を作成しますが、適切な指示を出すことでPDFファイルに保存することもできます。
売上が >1000 の場合はセルを緑色で強調表示し、そうでない場合は赤色にします 条件と数式に基づいてExcel書式設定を実行するようにコード インタープリターに依頼します。 書式設定は、図のようにプロンプトで表されます。

書式設定/スタイル処理で同じアイデアを他のユース ケースExcel適用できます。