Amazon Lex のボットとのやりとりをカスタマイズしたいです。レスポンスカード、メッセージグループ、インテントコンテキストなどのメッセージング構造を使用して、ボットとのやりとりをカスタマイズするにはどうすればよいですか?
簡単な説明
Amazon Lex V2 には、ボットとのユーザーインタラクションをカスタマイズできる多数のメッセージング構築機能が用意されています。この記事の手順に従って、Amazon Lex V2 コンソールを使用して、レスポンスカード、メッセージグループ、インテントコンテキストなどのメッセージング構造をカスタマイズします。
解決方法
レスポンスカード
レスポンスカードは、プロンプトに対する一連の応答で構成されます。レスポンスカードは、Amazon Lex であらかじめ定義された一連のアプリケーションをクライアントアプリケーションに提供したい場合に使用できます。例えば、タクシー予約アプリケーションでは、コンパクト、バン、SUV など、ユーザーが利用できる車両の種類を設定できます。車両タイプはレスポンスカードにボタンとして表示され、アプリケーションユーザーは利用可能なオプションのいずれかを選択します。このオプションは入力として Amazon Lex に送信されます。
スロットプロンプトの Amazon Lex V2 コンソールを使用してレスポンスカードを作成するには、次の手順に従います。
1. Amazon Lex V2 コンソールを開き、スロットが設定されているインテントを選択します。
2. スロットセクションでスロットを選択し、[Advanced options] (詳細オプション) を選択します。
3. スロットプロンプトセクションで、[More prompt options] (その他のプロンプトオプション) を選択します。
4. [Add] (追加) ドロップダウンを選択し、[Add card group] (カードグループの追加) を選択します。これで、必要に応じてカードとカードグループを作成できます。
注: グループごとに最大 3 つのカードを定義できます。ユーザーは会話中にカードを 1 つ選択します。
メッセージグループ
メッセージグループは、特定のプロンプトに対する適切な応答のセットです。ボットに会話の応答を動的に構築させたい場合は、メッセージグループを使用できます。Amazon Lex がクライアントアプリケーションに応答を返すとき、各グループから 1 つのメッセージをランダムに選択します。
例えば、TaxiBooking ボットでは、最初のメッセージグループに、ボットがユーザーに挨拶するさまざまな方法が含まれている場合があります。「こんにちは」、「やあ」、「ねえ」、または「挨拶」を使用する場合があります。2 番目のメッセージグループには、「私は TaxiBooking チャットボットです」や「これは TaxiBooking チャットボットです」など、さまざまな形式の紹介が含まれている可能性があります。 3 つ目のメッセージグループは、「タクシー予約のお手伝いをします」や「タクシー予約をお手伝いしに来ました」など、機能を伝える場合があります。Amazon Lex は、各グループから 1 つのメッセージをランダムに選択し、それらを使用してユーザーに応答します。
Amazon Lex V2 コンソールを使用して、成功フルフィルメントメッセージの複数のメッセージグループを作成するには、次の手順に従います。
1. Amazon Lex V2 コンソールを開き、カスタマイズしたいインテントを選択します。
2. フルフィルメントセクションから、[Advanced options] (詳細オプション) を選択します。
3. 成功の応答セクションで、[More response options] (その他の応答オプション) を選択します。
4. [Add] (追加) ドロップダウンを選択し、[Add text message group] (テキストメッセージグループの追加) を選択します。必要に応じて、メッセージとメッセージグループを作成できるようになりました。
コンテキスト
コンテキストは、ボットを定義するときにインテントに関連付けることができる状態変数です。コンソールまたは CreateIntent オペレーションを使用してインテントを作成するときに、インテントのコンテキストを設定できます。
コンテキストには、出力コンテキストと入力コンテキストの 2 つのタイプの関係があります。関連するインテントが満たされると、出力コンテキストがアクティブになります。コンテキストをアクティブ化すると、コンテキストの定義時に設定したターン数または制限時間の間、そのコンテキストはアクティブのままになります。
入力コンテキストは、インテントが認識される条件を指定します。インテントは、すべての入力コンテキストがアクティブな会話中にのみ認識されます。入力コンテキストのないインテントは、常に認識の対象となります。
出力コンテキストを作成する
Amazon Lex は、インテントが満たされると、インテントの出力コンテキストをアクティブにします。出力コンテキストを使用して、現在のインテントをフォローアップするインテントの適格性を制御できます。インテントは複数の出力コンテキストで設定できます。インテントが満たされると、すべての出力コンテキストがアクティブ化され、RecognizeText または RecognizeUtterance 応答で返されます。
出力コンテキストを定義するときは、その存続時間も定義します。これは、コンテキストが Amazon Lex からの応答に含まれる時間の長さまたはターン数を示します。ターンは、アプリケーションから Amazon Lex への 1 つのリクエストです。ターン数または時間が経過すると、コンテキストはアクティブではなくなります。
アプリケーションは、必要に応じて出力コンテキストを使用できます。例えば、アプリケーションは次の目的で出力コンテキストを使用できます。
- コンテキストに基づいてアプリケーションの動作を変更します。例えば、旅行予約アプリケーションには book_car_fulfilled というコンテキストに対して 1 つのアクションがあり、rental_hotel_fulfilled に対して別のアクションがある場合があります。
- 次の発話の入力コンテキストとして、出力コンテキストを Amazon Lex に返します。Amazon Lex は、発話を、インテントを使用する試みとして認識した場合、コンテキストを使用して、返すことができるインテントを指定されたコンテキストのインテントに制限します。
出力コンテキストを作成/指定するには、次の手順に従います。
1. Amazon Lex V2 コンソールを開き、カスタマイズしたいインテントを選択します。
2. コンテキストセクションで、作成してインテントに割り当てる出力コンテキストを入力します。
入力コンテキストを作成する
入力コンテキストを設定して、インテントが認識される会話のポイントを制限できます。入力コンテキストのないインテントは、常に認識の対象となります。
入力コンテキストを作成または指定するには、次の手順に従います。
1. Amazon Lex V2 コンソールを開き、カスタマイズしたいインテントを選択します。
2. コンテキストセクションから、作成してインテントに割り当てる出力コンテキストを入力します。
複数の入力コンテキストを持つインテントの場合、インテントをトリガーするにはすべてのコンテキストがアクティブである必要があります。入力コンテキストは、RecognizeText、RecognizeUtterance、または PutSession オペレーションを呼び出すときに設定できます。
関連情報
ImageReponseCard
MessageGroup
OutputContext
InputContext