AMAZON.FallbackIntent - Amazon Lex V1

Amazon Lex V2 を使用している場合は、代わりに Amazon Lex V2 ガイドを参照してください。

 

Amazon Lex V1 を使用している場合は、ボットを Amazon Lex V2 にアップグレードすることをお勧めします。V1 には新機能を追加されませんので、すべての新しいボットには V2 を使用することを強くお勧めします。

AMAZON.FallbackIntent

ユーザーがインテントに入力した内容がボットの想定通りでない場合、Amazon Lex がフォールバックインテントを呼び出すように設定できます。例えば、ユーザー入力「I'd to order candy」が OrderFlowers ボットのインテントと一致しない場合、Amazon Lex はフォールバックインテントを呼び出してレスポンスを処理します。

組み込みの AMAZON.FallbackIntent インテントタイプをボットに追加することで、フォールバックインテントを追加します。インテントを指定するには、PutBot オペレーションを使用するか、コンソールの組み込みインテントのリストからインテントを選択します。

フォールバックインテントを呼び出すには、2 つのステップを使用します。最初のステップでは、フォールバックインテントはユーザーからの入力に基づいてマッチングされます。フォールバックインテントが一致した場合、ボットの動作は、プロンプトに設定された再試行回数によって異なります。例えば、インテントを決定する最大試行回数が 2 の場合、ボットはフォールバックインテントを呼び出す前に、ボットの明確化プロンプトを 2 回返します。

Amazon Lex は、次のような状況でフォールバックインテントを一致させます。

  • インテントへのユーザーの入力が、ボットが想定する入力と一致しません

  • オーディオ入力がノイズであるか、テキスト入力が単語として認識されません。

  • ユーザーの入力があいまいで、Amazon Lex が呼び出すインテントを判断できません。

フォールバックインテントは、次の場合に呼び出されます。

  • 会話の開始時に明確化のための試行回数を設定した後で、ボットがインテントとしてユーザー入力を認識しない場合。

  • 設定された試行回数後に、インテントがユーザー入力をスロット値として認識しない場合。

  • 設定された試行回数後に、インテントが確認プロンプトへの応答としてユーザー入力を認識しない場合。

フォールバックインテントは以下と使用できます。

  • フルフィルメント Lambda 関数

  • 結論ステートメント

  • フォローアッププロンプト

フォールバックインテントに以下を追加することはできません。

  • 発話

  • スロット

  • 初期化および検証 Lambda 関数

  • 確認プロンプト

ボットに対して中止ステートメントとフォールバックインテントの両方を設定している場合、Amazon Lex はフォールバックインテントを使用します。ボットに中止ステートメントが必要な場合は、フォールバックインテントのフルフィルメント関数を使用して、中止ステートメントと同じ動作を提供できます。詳細については、「abortStatement オペレーション」の「PutBot パラメータ」を参照してください。

明確化プロンプトの使用

ボットに明確化プロンプトを指定する場合、プロンプトはユーザーから有効なインテントを求めるために使用されます。明確化プロンプトは、設定した回数だけ繰り返されます。その後、フォールバックインテントが呼び出されます。

ボットの作成時に明確化プロンプトを設定せず、ユーザーが有効なインテントで会話を開始しない場合、Amazon Lex は直ちにフォールバックインテントを呼び出します。

明確化プロンプトなしでフォールバックインテントを使用すると、Amazon Lex は次の状況下ではフォールバックを呼び出しません。

  • ユーザーがフォローアッププロンプトに応答しても、インテントを提供しない場合。例えば、「今日は他に何か好きですか?」というフォローアッププロンプトに応答して、 とすると、ユーザーは「はい」と言います。Amazon Lex には、ユーザーからインテントを取得するための明確化プロンプトがないため、400 Bad Request 例外が返されます。

  • AWS Lambda 関数を使用するときは、 ElicitIntent ダイアログタイプを返します。Amazon Lex には、ユーザーからインテントを取得するための明確化プロンプトがないため、400 Bad Request 例外が返されます。

  • PutSession オペレーションを使用するときは、ElicitIntent ダイアログタイプを送信します。Amazon Lex には、ユーザーからインテントを取得するための明確化プロンプトがないため、400 Bad Request 例外が返されます。

フォールバックインテントでの Lambda 関数の使用

フォールバックインテントが呼び出されると、レスポンスは PutIntent オペレーションに対する fulfillmentActivity パラメータの設定によって異なります。ボットは、次のいずれかを実行します。

  • クライアントアプリケーションにインテント情報を返します。

  • フルフィルメント Lambda 関数を呼び出します。セッションに設定されたセッション変数を使用して関数を呼び出します。

フォールバックインテントが呼び出されたときのレスポンスの設定の詳細については、「fulfillmentActivity オペレーション」の「PutIntent パラメータ」を参照してください。

フォールバックインテントでフルフィルメント Lambda 関数を使用する場合、この関数を使用して、別のインテントを呼び出す、またはコールバック番号の収集やカスタマーサービス担当者とのセッションの開始など、ユーザーとの何らかの通信を行うことができます。

フルフィルメント関数で他のインテントに実行できる任意のアクションをフォールバックインテント Lambda 関数で実行できます。AWS Lambda を使用したフルフィルメント関数の作成の詳細については、「Lambda 関数を使用する」を参照してください 。

フォールバックインテントは、同じセッションで複数回呼び出すことができます。例えば、Lambda 関数で ElicitIntent ダイアログアクションを使用して、ユーザーに別のインテントの入力を求めるとします。設定された試行回数の後に Amazon Lex がユーザーのインテントを推測できない場合、フォールバックインテントを再度呼び出します。また、試行回数設定後にユーザーが有効なスロット値で応答しない場合に、フォールバックインテントを呼び出します。

セッション変数を使用して、フォールバックインテントが呼び出された回数を追跡するように Lambda 関数を設定できます。Lambda 関数で設定したしきい値を超えて呼び出された場合、Lambda 関数は別のアクションを実行できます。セッション変数の詳細については、「セッション属性の設定」を参照してください。