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

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

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

シナリオ例 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 形式の要約レポートも添付する必要があります。 これらのファイルをダウンロードして結果を確認できます。

  6. 別の入力ファイルで再テストを行うには、手順に従って新しいサンプル ファイルをアップロードし、再生成せずにテストするを選択します。

    「再生成せずにテストする」オプションのスクリーンショット

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

シナリオ例 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. 出力の追加を使用して、プロンプトに含まれる要約テキストとグラフ画像データを、フローの出力として追加します。

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

    2 番目の出力を GraphBase64 と名付け、式オプションを使用して出力値を定義します。 プロンプトを実行するアクションから出力された Base64 形式の画像を選択します。

    「概要」テキストとグラフ画像の出力を選択した画面のスクリーンショット。

  7. ドラフトの保存 を選択します。

  8. 概要 タブの 詳細 セクションで、フローに名前を付けます。

エージェントを公開して利用する

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

    エージェントは、Dataverse のレコードを処理し、要約やグラフを生成できるようになります。

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

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

  4. Power Fx 数式を使用して表示するアダプティブ カード で、数式 を選択して数式でカードを定義します。

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

  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 の トピック タブに移動し、トピックを追加>空白から を選択して新しいトピックを作成します。

  2. トリガー ノートで、トピックの動作の説明を「ファイルがアップロードされ、ユーザーが『グラフを生成して』と発言したとき」に設定します。

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

  4. リストをループ処理ノードを選択して、ノード エディタを開きます。 ループ対象の項目で、変数の選択>システム>Activity.Attachments を選択します。

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

  5. ループ内でノードの追加を選択し、次にツールの追加を選択して、先ほど作成したプロンプトを選択すると、そのトピックにプロンプト ツールが追加されます。

  6. 入力変数と出力変数を適宜構成します。 入力欄では、数式を使用して Topic.LoopValue1.Value に設定し、挿入を選択します。 出力については、Output という名前の変数を初期化して、プロンプトの出力を取得します。

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

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

  8. メッセージの本文部分で、変数の挿入を選択し、Output.text を選択します。

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

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

  10. 次に、画像が正しく表示されるようにフォーマットを設定します。 メディア を選択し、画像 URL変数式の選択>数式 を選択して、次の式を入力します: "data:" & Topic.Output.artifacts.mychart.mimeType & ";base64," & Topic.Output.artifacts.mychart.base64Content

    メモ

    チャットで画像を正しく表示するには、この形式が必要です。 この例では、mychart はプロンプトで出力されるファイルに指定した名前を表し、Output は変数名です。 他の例では、プロンプトの出力やトピック変数の命名方法によって、詳細が異なる場合があります。

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

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

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

    画像付きのチャット返信のスクリーンショット。

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

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

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

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

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

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

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