プロンプトの提案を作成する
プロンプト候補は、Microsoft Teams チャットでユーザーに提示されるコマンドです。
プロンプトの提案は、魅力的で洞察に富んだユーザー エクスペリエンスを作成し、会話を促すことでボットの価値を示すことで、ボットがユーザーを取得して保持するのに役立ちます。 プロンプトの提案を使用して、ユーザーがボットとの会話を開始し、ボットと対話する方法を学習するのに役立ちます。
次の 2 種類のプロンプト候補を使用できます。
スタート画面を表示する
注:
ボットでは、プロンプト スターターまたはウェルカム メッセージを使用できます。 ボットでプロンプト スターターを使用する場合は、ボットがウェルカム メッセージを送信しないことを確認します。
プロンプト スターターは、1 対 1 のチャット ボットでのみサポートされます。
プロンプト スターターを有効にするには、ボットのアプリ マニフェストで commands
プロパティを定義します。 各コマンドには、 title
と description
が含まれています。
title
はプロンプトであり、description
はユーザーが何を達成するかについて説明します。 ユーザーがプロンプト スターターを選択すると、プロンプトの title
が作成ボックスに入力されます。 アプリ マニフェストで commands
を定義するには、 開発者ポータル を使用するか、アプリ マニフェストに手動で追加します。
開発者ポータルを使用してプロンプト スターターを作成するには:
Teams を開き、左側のウィンドウから [アプリ] を選択します。 [ アプリ ] ページで、 開発者ポータルを検索し、[ 開く] を選択します。
開発者ポータルで、[アプリ] タブを選択します。既存のアプリ パッケージがない場合は、既存のアプリを作成またはインポートできます。 詳細については、「 Teams 用開発者ポータル」を参照してください。
[ アプリ ] タブを選択し、左側のウィンドウで [ アプリ機能 ] を選択し、[ ボット] を選択します。
[ コマンド] で、[ コマンドの追加] を選択します。
次のフィールドの値を入力します。
- コマンド: ボットのプロンプトとして表示されます。
- 説明: コマンドの目的の簡単な説明。
個人用スコープを選択し、[ 追加] を選択します。 これにより、コマンド メニューを表示する必要がある場所が定義されます。
注:
マニフェストからコマンドを削除する場合は、変更を実装するためにアプリを再デプロイする必要があります。 一般的に、マニフェストに変更を加える場合は、アプリを再デプロイする必要があります。
次に、プロンプトの候補の例を示します。
会話中に [新規作成] ボックスの上にある [ビュー プロンプト] ポップアップにプロンプト スターターが再び表示され、ボットとの対話中にユーザーがプロンプトを確認できるようになります。
ユーザーからのどんなメッセージを処理するときも、ボット コード内のメニュー コマンドを処理する必要があります。 メッセージ テキストの @Mention 部分を解析することで、ボット コードのメニュー コマンドを処理できます。
ボットで commands
を処理する
グループまたはチャネル内のボットは、メッセージに @mentioned されている場合にのみ応答します。 グループまたはチャンネル スコープ内でボットによって受信されたすべてのメッセージには、メッセージ テキストにその名前が含まれています。 返されるコマンドを処理する前に、メッセージ解析処理で、ボットが受信した名前付きのメッセージを処理する必要があります。
注:
コード内のコマンドを処理すると、通常のメッセージとしてボットに送信されます。 ユーザーからの他のメッセージを処理する場合と同様に、それらを処理する必要があります。 コード内のコマンドは、テキスト ボックスに事前構成されたテキストを挿入します。 その後、ユーザーはそのテキストを他のメッセージと同様に送信する必要があります。
Microsoft Bot Frameworkで提供される静的メソッドを使用して、メッセージ テキストの@Mention部分を解析できます。 これは、RemoveRecipientMention
という名前のActivity
クラスのメソッドです。
メッセージ テキストの @Mention 部分を解析する C# コードは次のとおりです。
// Remove recipient mention text from Text property.
// Use with caution because this function is altering the text on the Activity.
var modifiedText = turnContext.Activity.RemoveRecipientMention();
推奨されるアクション
推奨されるアクションは、ユーザーが前の応答や会話に基づいて、次に何を尋ねるかを考えるのに役立ちます。 ボットは、一般的なものや固定された提案ではなく、コンテキスト固有の提案をユーザーに提供する必要があります。 ボットの大きな言語モデル (LLM) を使用して、応答と共に最大 3 つの提案を生成できます。 次に、これらの提案を抽出し、ユーザーが選択するオプションとして提示できます。
ユーザーがボタンを選択すると、リッチ カードで表示され、アクセス可能なままになります。 ただし、推奨されるアクションの場合、ボタンは選択後に消え、ユーザーが関連しなくなった古いオプションを選択できないように設計されています。
注:
-
SuggestedActions
は、テキスト ベースのメッセージとアダプティブ カードの両方を持つ 1 対 1 のチャット ボットでのみサポートされます。 -
SuggestedActions
は、任意の会話の種類の添付ファイルを含むチャット ボットではサポートされていません。 -
imBack
は唯一サポートされているアクションの種類であり、Teams には最大 3 つの推奨アクションが表示されます。
メッセージに推奨されるアクションを追加するには、アクティビティ オブジェクトの sugestedActions
プロパティに対してユーザーに表示するボタンを表すカードアクション オブジェクトの一覧を指定します。
推奨されるアクションを実装して体験する例を次に示します。
{
"type": "message",
"from": {
"id": "12345678",
"name": "sender's name"
},
"conversation": {
"id": "abcd1234",
"name": "conversation's name"
},
"recipient": {
"id": "1234abcd",
"name": "recipient's name"
},
"text": "What are the tasks for the day.",
"inputHint": "expectingInput",
"suggestedActions": {
"actions": [
{
"type": "imBack",
"title": "Create a new query identifying overdue tasks",
"value": "Create a new query identifying overdue tasks"
},
{
"type": "imBack",
"title": "Create a new work item for this feature",
"value": "Create a new work item for this feature"
}
]
},
"replyToId": "5d5cdc723"
}
次に、推奨されるアクションの例を示します。
コード サンプル
サンプルの名前 | 説明 | .NET | Node.js |
---|---|---|---|
スタート ボットのプロンプト | このサンプル コードでは、ボットのアプリ マニフェストの commands プロパティを使用したボットのプロンプト スターターの実装について説明します。 |
表示 | 表示 |
関連項目
Platform Docs