アダプティブ カードで質問する (プレビュー)
重要
このトピックは Power Virtual Agents プレビューのドキュメントを含み、今後変更される可能性があります。
プレビュー機能は運用環境での使用を想定しておらず、機能が制限される可能性があります。 これらの機能は公式リリースの前に使用できるため、一足先にアクセスして フィードバックを送る ことができます。
運用に対応したボットを構築する場合は、Power Virtual Agents の概要 を参照してください。
アダプティブ カード では、Power Virtual Agents ボットにコンテンツのスニペットを追加でき、他のクラウド アプリやサービスとオープンに交換することも可能です。 JSON コードを使用してフォーマットされたボット ビルダーは、ボットに豊富な会話機能を提供するために、テキスト、グラフィック、およびボタンを含めることができます。 プラットフォームに依存しないため、アダプティブ カードを必要に応じて簡単に調整できます。
アダプティブ カード デザイナー を使用してアダプティブ カードをデザインするか、JSON コードを使用して直接作成します。 アダプティブ カード ノードを使用すると、1 つ以上の送信ボタンと、オプションで 1 つ以上のフォーム入力フィールドを含むアダプティブ カードを送信できます。 次に、Power Virtual Agents はユーザーの応答を変数に保存し、後で会話で使用できるようにします。
ノードでは、ユーザーに送信するカードの JSON を提供したり、カードを表す Power Fx 式を提供することで、動的な情報をカードに含めることができます。 ノードの 追加のプロパティ を使用すると、ユーザーが無効な応答を入力したときの処理や、ノードの割り込みが可能かどうかなど、動作を制御できます。
アダプティブ カード ノードは、ユーザーが応答を送信することが想定される対話型カードに使用されます。 メッセージ および 質問 ノードは、ユーザーに情報を表示するための非対話型カードをユーザーに提示するために使用することができます。
前提条件
アダプティブ カード ノードを追加する
ノードを追加 (+) を選択し、アダプティブ カードで質問する を選択します。
カード アイコンを選択すると、ノードのプロパティ ペインが展開されます。 または、ノード メニュー (⋮) を選択し、プロパティ を選択します。
JSON の編集 セクションでカードの JSON を入力します。
JSON エディターの大きなビューを開くには、拡大アイコンを選択します。
チップ
カードには、ユーザーがボットに情報を送信できる対話型カードである必要があるため、少なくとも 1 つの送信ボタンが含まれている必要があります。 そうではなく、ボット ユーザーに情報を表示することだけを目的としている場合は、メッセージ ノードにカードを添付ファイルとして追加する必要があります。
カードの JSON コードをエディターに追加したら、エディターの外側をクリックすると、以下に示すようにノードが更新され、カードのプレビューが表示されます。 Power Virtual Agents は、カード内で検出された入力に基づいて出力変数を自動的に作成します。
チップ
カード用に生成された出力変数が正しくない場合は、プロパティ ペインの JSON エディターの下にある スキーマの編集 ボタンを選択して、変数とそのタイプのリストを手動で更新できます。 以下の例では、4 つの文字列 (テキスト) 変数を定義しています。
対話型アダプティブ カードの準備が整いました。 ボットのユーザーがいずれかのボタンを使用してカードを送信すると、出力変数に応答が入力されます。
追加のプロパティ
追加のプロパティを使用すると、無効な応答に対するボットの反応や、割り込みが可能かどうかなど、 アダプティブ カード ノードの動作を制御できます。
ボットが現在アダプティブ カードからの送信を待っていて、ユーザーがカードを送信する代わりにテキスト メッセージを送信した場合、メッセージが割り込みをトリガーしない限り、これは無効な応答と見なされます。 この場合、次のプロパティが動作を決定します。
再プロンプト回数: ボットがカードから有効な送信を取得しようとする回数。 最大 2 回繰り返すが既定となります。 1 回繰り返すまたは繰り返さないを選択することもできます。 再試行のたびに、カードがユーザーに再送信されます。
プロンプトの再試行: このプロパティを使用して、カードの繰り返しとともに、再試行が発生したときに送信されるメッセージを定義します。 再試行メッセージを定義するには、カスタマイズ を選択し、新しいプロンプトを入力します。
別のトピックへの切り替えを許可: チェックした場合 (デフォルト)、ボットがカードの送信を待っているときにユーザーからの受信メッセージがあると、割り込みをトリガーし、別のトピックに切り替わります。 その場合は、割り込みトピックが終了すると、カードがユーザーに再送信されます。
Power Fx を使用してカードを動的にする
Power Fx を使用して、カード内のトピックまたはボットから 1 つ以上の変数を参照して、動的な情報をカードに含めることができます。
カード アイコンを選択すると、ノードのプロパティ ペインが展開されます。 または、ノード メニュー (⋮) を選択し、プロパティ を選択します。
JSON の編集 ボタンを選択してから 数式 を選択します。 これにより、JSON が既に提示したカードが自動的に Power Fx に変換されます。
JSON 例
以下は、ハードコードされたテキストの代わりに 2 つの変数 Topic.Title と Topic.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"
}
]
}