Lex V2 ボットのインテントコンテキストの設定 - Amazon Lex

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Lex V2 ボットのインテントコンテキストの設定

Amazon Lex はコンテキストに基づいてインテントをトリガーすることができます。コンテキストは、ボットを定義するときにインテントに関連付けることができる状態変数です。コンソールまたは CreateIntentオペレーションを使用してインテントを作成するときに、インテントのコンテキストを設定します。コンテキストは、英語 (US) (en-US) ロケールでのみ使用することができます。

コンテキストには、出力コンテキストと入力コンテキストの 2 種類の関係があります。出力コンテキストは、関連するインテントが満たされたときにアクティブになります。出力コンテキストは、 RecognizeTextまたは RecognizeUtteranceオペレーションからのレスポンスでアプリケーションに返され、現在のセッションに設定されます。コンテキストがアクティブになった後、コンテキストが定義されたときに設定されたターン数または時間制限の間、アクティブなままになります。

入力コンテキストは、インテントを認識するための条件を指定します。会話中にインテントを認識できるのは、その入力コンテキストがすべてアクティブになっているときだけです。入力コンテクストがないインテントは、常に認識の対象となります。

Amazon Lex は、出力コンテキストでインテントを満たすことによってアクティブになったコンテキストのライフサイクルを自動的に管理します。また、RecognizeText オペレーション、または RecognizeUtterance のオペレーションの呼び出しでアクティブなコンテキストを設定することができます。

また、インテントの Lambda 関数を使用して会話のコンテキストを設定することができます。Amazon Lex からの出力コンテキストは、Lambda 関数の入力イベントに送信されます。Lambda 関数は、そのレスポンスでコンテキストを送信することができます。詳細については、「の統合 AWS Lambda ボットへの 関数」を参照してください。

例えば、レンタカーを予約するインテントがあり「book_car_fulfilled」という出力コンテキストを返すよう設定されているとします。インテントが達成すると、Amazon Lex は出力コンテキスト変数「book_car_fulfilled」を設定します。「book_car_filded」はアクティブなコンテキストであるため、ユーザーの発話がそのインテントを誘発する試みとして認識される限り、「book_car_filded」コンテキストを入力コンテキストとして設定したインテントが認識対象として考慮されます。これは、領収書のメール送信や予約の変更など、車を予約した後にのみ意味を持つインテントに使用できます。

Lex V2 ボットのインテントの出力コンテキスト

Amazon Lex は、インテントが実行されたときに、インテントの出力コンテキストをアクティブにします。出力コンテキストを使用して、現在のインテントをフォローアップできるインテントを制御できます。

各コンテキストは、セッションで保持されるパラメータのリストを持っています。パラメータは、履行されたインテントのスロット値です。これらのパラメータを使用して、他のインテントのスロット値を事前に入力することができます。詳細については、「」を参照してくださいLex V2 ボットのインテントでのデフォルトのスロット値の使用

コンソールまたは CreateIntentオペレーションを使用してインテントを作成するときに、出力コンテキストを設定します。1 つのインテントに複数の出力コンテキストを設定することができます。インテントが満たされると、すべての出力コンテキストがアクティブ化され、 RecognizeTextまたは RecognizeUtteranceレスポンスで返されます。

出力コンテキストを定義するときは、そのコンテキストの有効期限 (TTL)、つまり Amazon Lex からの応答に含まれる時間の長さまたはターン数も定義します。ある順番は、アプリケーションから Amazon Lex への 1 つのリクエストです。ターン数または時間が経過すると、コンテキストはアクティブでなくなります。

アプリケーションは必要に応じて、出力コンテキストを使用することができます。例えば、アプリケーションは出力コンテキストを次のように使用できます。

  • コンテキストに基づき、アプリケーションの動作を変更します。例えば、旅行アプリケーションでは、コンテキストの「book_car_filled」に対して「rental_hotel_filded」とは異なるアクションを設定することができます。

  • 出力コンテキストを、次の発話の入力コンテキストとして Amazon Lex に返します。Amazon Lex がその発話をインテントを誘発する試みと認識した場合、そのコンテキストを使用して、返されるインテントを指定されたコンテキストを持つものに限定します。

Lex V2 ボットのインテントの入力コンテキスト

入力コンテキストを設定することで、会話の中でインテントが認識されるポイントを限定することができます。入力コンテキストがないインテントは、常に認識対象となります。

インテントが応答する入力コンテキストは、コンソールまたは CreateIntent オペレーションを使用して設定します。インテントは複数の入力コンテキストを持つことができます。

複数の入力コンテキストを持つインテントでは、インテントをトリガーするには、すべてのコンテキストがアクティブである必要があります。、、または PutSessionオペレーションを呼び出すときにRecognizeTextRecognizeUtterance、入力コンテキストを設定できます。

インテント内のスロットは、現在アクティブなコンテキストからデフォルト値を取るように設定することができます。デフォルト値は、Amazon Lex が新しいインテントを認識するが、スロット値を受信しない場合に使用されます。スロットを定義する際に、コンテキスト名とスロット名を #context-name.parameter-name という形で指定します。詳細については、「Lex V2 ボットのインテントでのデフォルトのスロット値の使用」を参照してください。