AMAZON.FallbackIntent - Amazon Lex

Amazon Lex V2 を使用して最新の機能を利用することをお勧めします。 Amazon Lex 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 関数の使用

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

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

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

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

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

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

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

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