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