

サポート終了通知: 2025 年 9 月 15 日、 AWS は Amazon Lex V1 のサポートを終了します。 V1 2025 年 9 月 15 日を過ぎると、Amazon Lex V1 コンソールまたは Amazon Lex V1 リソースにはアクセスできなくなります。Amazon Lex V2 を使用している場合は、代わりに [Amazon Lex V2 ガイド](https://docs.aws.amazon.com/lexv2/latest/dg/what-is.html)を参照してください。

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

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

Amazon Lex は*コンテキスト*に基づいてインテントをトリガーすることができます。*コンテキスト*は、ボットを定義するときにインテントに関連付けることができる状態変数です。

コンソールを使用して、または [PutIntent](API_PutIntent.md) オペレーションを使用してインテントを作成するときに、インテント用のコンテキストを設定します。英語 (US) (en-US) ロケールで、[PutBot](API_PutBot.md) オペレーションでボットを作成した際に、`enableModelImprovements` パラメータを `true` に設定した場合のみ、コンテクストを使用することができます。

コンテキストには、出力コンテキストと出力コンテキストの 2 種類の関係があります。*出力コンテキスト*は、関連するインテントが満たされたときにアクティブになります。出力コンテキストは、[PostText](API_runtime_PostText.md) オペレーション、または [PostContent](API_runtime_PostContent.md) オペレーションの応答でアプリケーションに返され、現在のセッションに設定されます。コンテキストがアクティブになった後、コンテキストが定義されたときに設定されたターン数または時間制限の間、アクティブなままになります。

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

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

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

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

## 出力コンテキスト
<a name="context-output"></a>

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

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

出力コンテキストは、コンソールまたは [PutIntent](API_PutIntent.md) オペレーションでインテントを作成するときに設定します。1 つのインテントに複数の出力コンテキストを設定することができます。インテントが実行されると、すべての出力コンテキストがアクティブになり、[PostText](API_runtime_PostText.md) または [PostContent](API_runtime_PostContent.md) 応答で返されます。

次に、コンソールを使用してインテントに出力コンテキストを割り当てる方法を示します。

![order_complete というラベルの付いた出力タグには、5 ターン、つまり 90 秒の有効期間があります。](http://docs.aws.amazon.com/ja_jp/lex/latest/dg/images/context-output.png)


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

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

## コンテキストを入力する
<a name="context-input"></a>

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

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

![order_complete というラベルの付いた入力タグ。](http://docs.aws.amazon.com/ja_jp/lex/latest/dg/images/context-input.png)


複数の入力コンテキストを持つインテントでは、インテントをトリガーするには、すべてのコンテキストがアクティブである必要があります。[PostText](API_runtime_PostText.md) オペレーション、[PostContent](API_runtime_PostContent.md) オペレーション、または [PutSession](API_runtime_PutSession.md) のオペレーションを呼び出すと、入力コンテキストを設定することができます。

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