

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

# Lex V2 ボットのインテントコンテキストの設定
<a name="context-mgmt-active-context"></a>

*コンテキスト*に基づいて Amazon Lex V2 でインテントをトリガーできます。*コンテキスト*は、ボットを定義するときにインテントに関連付けることができる状態変数です。コンソールを使用して、または [CreateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateIntent.html) オペレーションを使用してインテントを作成するときに、インテント用のコンテキストを設定します。コンテキストは、英語 (US) (en-US) ロケールでのみ使用することができます。

コンテキストには、出力コンテキストと入力コンテキストの 2 種類の関係があります。*出力コンテキスト*は、関連するインテントが満たされたときにアクティブになります。出力コンテキストは、[RecognizeText](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeText.html) オペレーション、または [RecognizeUtterance](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeUtterance.html) オペレーションの応答でアプリケーションに返され、現在のセッションに設定されます。コンテキストがアクティブになった後、コンテキストが定義されたときに設定されたターン数または時間制限の間、アクティブなままになります。

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

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

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

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

## Lex V2 ボットのインテントの出力コンテキスト
<a name="context-output"></a>

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

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

出力コンテキストは、コンソールまたは [CreateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateIntent.html) オペレーションでインテントを作成するときに設定します。1 つのインテントに複数の出力コンテキストを設定することができます。インテントが実行されると、すべての出力コンテキストがアクティブになり、[RecognizeText](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeText.html) または [RecognizeUtterance](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeUtterance.html) 応答で返されます。

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

アプリケーションは必要に応じて、出力コンテキストを使用することができます。例えば、アプリケーションは出力コンテキストを次のように使用できます。
+ コンテキストに基づき、アプリケーションの動作を変更します。例えば、旅行アプリケーションでは、コンテキストの「book\_car\_filled」に対して「rental\_hotel\_filded」とは異なるアクションを設定することができます。
+ 出力コンテキストを次の発話の入力コンテキストとして Amazon Lex V2 に返します。Amazon Lex V2 は、発話がインテントを引き出す試みであると認識した場合、 コンテキストを使用して、返されるインテントを指定されたコンテキストを持つインテントに制限します。

## Lex V2 ボットのインテントの入力コンテキスト
<a name="context-input"></a>

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

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

複数の入力コンテキストを持つインテントでは、インテントをトリガーするには、すべてのコンテキストがアクティブである必要があります。[RecognizeText](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeText.html)、[RecognizeUtterance](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeUtterance.html)、または [PutSession](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_PutSession.html) オペレーションを呼び出すときに、入力コンテキストを設定できます。

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