アダプティブ カードで質問する (プレビュー)

重要

このトピックは Power Virtual Agents プレビューのドキュメントを含み、今後変更される可能性があります。

プレビュー機能は運用環境での使用を想定しておらず、機能が制限される可能性があります。 これらの機能は公式リリースの前に使用できるため、一足先にアクセスして フィードバックを送る ことができます。

運用に対応したボットを構築する場合は、Power Virtual Agents の概要 を参照してください。

アダプティブ カード では、Power Virtual Agents ボットにコンテンツのスニペットを追加でき、他のクラウド アプリやサービスとオープンに交換することも可能です。 JSON コードを使用してフォーマットされたボット ビルダーは、ボットに豊富な会話機能を提供するために、テキスト、グラフィック、およびボタンを含めることができます。 プラットフォームに依存しないため、アダプティブ カードを必要に応じて簡単に調整できます。

アダプティブ カード デザイナー を使用してアダプティブ カードをデザインするか、JSON コードを使用して直接作成します。 アダプティブ カード ノードを使用すると、1 つ以上の送信ボタンと、オプションで 1 つ以上のフォーム入力フィールドを含むアダプティブ カードを送信できます。 次に、Power Virtual Agents はユーザーの応答を変数に保存し、後で会話で使用できるようにします。

ノードでは、ユーザーに送信するカードの JSON を提供したり、カードを表す Power Fx 式を提供することで、動的な情報をカードに含めることができます。 ノードの 追加のプロパティ を使用すると、ユーザーが無効な応答を入力したときの処理や、ノードの割り込みが可能かどうかなど、動作を制御できます。

アダプティブ カード ノードは、ユーザーが応答を送信することが想定される対話型カードに使用されます。 メッセージ および 質問 ノードは、ユーザーに情報を表示するための非対話型カードをユーザーに提示するために使用することができます。

前提条件

アダプティブ カード ノードを追加する

  1. ノードを追加 (+) を選択し、アダプティブ カードで質問する を選択します。

  2. カード アイコンを選択すると、ノードのプロパティ ペインが展開されます。 または、ノード メニュー () を選択し、プロパティ を選択します。

    新しいアダプティブ カード ノードのスクリーンショット

  3. JSON の編集 セクションでカードの JSON を入力します。

    JSON エディターの大きなビューを開くには、拡大アイコンを選択します。

    展開アイコンが強調表示された、アダプティブ カード ノードの JSON エディターのスクリーンショット。

チップ

カードには、ユーザーがボットに情報を送信できる対話型カードである必要があるため、少なくとも 1 つの送信ボタンが含まれている必要があります。 そうではなく、ボット ユーザーに情報を表示することだけを目的としている場合は、メッセージ ノードにカードを添付ファイルとして追加する必要があります。

  1. カードの JSON コードをエディターに追加したら、エディターの外側をクリックすると、以下に示すようにノードが更新され、カードのプレビューが表示されます。 Power Virtual Agents は、カード内で検出された入力に基づいて出力変数を自動的に作成します。

    カードのプレビューを含むアダプティブ カード ノードのスクリーンショット。

    チップ

    カード用に生成された出力変数が正しくない場合は、プロパティ ペインの JSON エディターの下にある スキーマの編集 ボタンを選択して、変数とそのタイプのリストを手動で更新できます。 以下の例では、4 つの文字列 (テキスト) 変数を定義しています。

    アダプティブ カード ノードのスキーマ エディターのスクリーンショット。

  2. 対話型アダプティブ カードの準備が整いました。 ボットのユーザーがいずれかのボタンを使用してカードを送信すると、出力変数に応答が入力されます。

追加のプロパティ

追加のプロパティを使用すると、無効な応答に対するボットの反応や、割り込みが可能かどうかなど、 アダプティブ カード ノードの動作を制御できます。

ボットが現在アダプティブ カードからの送信を待っていて、ユーザーがカードを送信する代わりにテキスト メッセージを送信した場合、メッセージが割り込みをトリガーしない限り、これは無効な応答と見なされます。 この場合、次のプロパティが動作を決定します。

  • 再プロンプト回数: ボットがカードから有効な送信を取得しようとする回数。 最大 2 回繰り返すが既定となります。 1 回繰り返すまたは繰り返さないを選択することもできます。 再試行のたびに、カードがユーザーに再送信されます。

  • プロンプトの再試行: このプロパティを使用して、カードの繰り返しとともに、再試行が発生したときに送信されるメッセージを定義します。 再試行メッセージを定義するには、カスタマイズ を選択し、新しいプロンプトを入力します。

  • 別のトピックへの切り替えを許可: チェックした場合 (デフォルト)、ボットがカードの送信を待っているときにユーザーからの受信メッセージがあると、割り込みをトリガーし、別のトピックに切り替わります。 その場合は、割り込みトピックが終了すると、カードがユーザーに再送信されます。

Power Fx を使用してカードを動的にする

Power Fx を使用して、カード内のトピックまたはボットから 1 つ以上の変数を参照して、動的な情報をカードに含めることができます。

  1. カード アイコンを選択すると、ノードのプロパティ ペインが展開されます。 または、ノード メニュー () を選択し、プロパティ を選択します。

  2. JSON の編集 ボタンを選択してから 数式 を選択します。 これにより、JSON が既に提示したカードが自動的に Power Fx に変換されます。

アダプティブ カード ノードの JSON エディターで JSON ではなく数式に切り替えるオプションのスクリーンショット。

JSON 例

以下は、ハードコードされたテキストの代わりに 2 つの変数 Topic.TitleTopic.Subtitle が使用されている、カードとその結果の Power Fx の JSON の例です。

  {
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "type": "AdaptiveCard",
    "version": "1.5",
    "body": [
        {
            "type": "ColumnSet",
            "columns": [
                {
                    "type": "Column",
                    "width": 2,
                    "items": [
                        {
                            "type": "TextBlock",
                            "text": "Tell us about yourself",
                            "weight": "Bolder",
                            "size": "Medium",
                            "wrap": true,
                            "style": "heading"
                        },
                        {
                            "type": "TextBlock",
                            "text": "We just need a few more details to get you booked for the trip of a lifetime!",
                            "isSubtle": true,
                            "wrap": true
                        },
                        {
                            "type": "Input.Text",
                            "id": "myName",
                            "label": "Your name (Last, First)",
                            "isRequired": true,
                            "regex": "^[A-Z][a-z]+, [A-Z][a-z]+$",
                            "errorMessage": "Please enter your name in the specified format"
                        }
                    ]
                }
            ]
        }
    ],
    "actions": [
        {
            "type": "Action.Submit",
            "title": "Submit"
        }
    ]
}  

Power Fx

  {
  '$schema': "http://adaptivecards.io/schemas/adaptive-card.json",
  type: "AdaptiveCard",
  version: "1.5",
  body: [
    {
      type: "ColumnSet",
      columns: [
        {
          type: "Column",
          width: "2",
          items: [
            {
              type: "TextBlock",
              text: Topic.Title
              weight: "Bolder",
              size: "Medium",
              wrap: true,
              style: "heading"
            },
            {
              type: "TextBlock",
              text: Topic.Subtitle,
              isSubtle: true,
              wrap: true
            },
            {
              type: "Input.Text",
              id: "myName",
              label: "Your name (Last, First)",
              isRequired: true,
              regex: "^[A-Z][a-z]+, [A-Z][a-z]+$",
              errorMessage: "Please enter your name in the specified format"
            }
          ]
        }
      ]
    }
  ],
  actions: [
    {
      type: "Action.Submit",
      title: "Submit"
    }
  ]
}