

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

# Lex V2 ボットのリクエスト属性の設定
<a name="context-mgmt-request-attribs"></a>

*リクエスト属性*は、リクエスト固有の情報を示し、現在のリクエストにのみ適用されます。クライアントアプリケーションは、この情報を Amazon Lex V2 に送信します。 V2 セッション全体を通しては保持する必要がない情報は、リクエスト属性を使用して渡します。リクエスト属性は、独自に作成することも、事前定義されたものを使用することもできます。リクエスト属性を送信するには、[RecognizeUtterance](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeUtterance.html) の `x-amz-lex-request-attributes` ヘッダー、または [RecognizeText](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeText.html) リクエストの `requestAttributes` フィールドを使用します。セッション属性とは異なり、リクエスト属性は複数のリクエストにわたって保持されないため、`RecognizeUtterance` レスポンスや `RecognizeText` レスポンスで返されることはありません。

**注記**  
複数のリクエストにわたって保持される情報を送信するには、セッション属性を使用します。

## Lex V2 ボットリクエストごとのユーザー定義のリクエスト属性の設定
<a name="context-mgmt-user"></a>

*ユーザー定義のリクエスト属性*は各リクエストでボットに送信するデータです。この情報を送信するには、`RecognizeUtterance` リクエストの `amz-lex-request-attributes` ヘッダーを使用するか、`RecognizeText` リクエストの `requestAttributes` フィールドを使用します。

Amazon Lex V2 にリクエスト属性を送信するには、属性のstring-to-stringマップを作成します。リクエスト属性のマッピング方法を以下に示します。

```
{
   "attributeName": "attributeValue",
   "attributeName": "attributeValue"
}
```

`PostText` オペレーションの場合は、次に示すように、[`requestAttributes`] フィールドを使用してリクエストの本文にマップを挿入します。

```
"requestAttributes": {
   "attributeName": "attributeValue",
   "attributeName": "attributeValue"
}
```

`PostContent` オペレーションの場合は、マップを base64 エンコードし、それを `x-amz-lex-request-attributes` ヘッダーとして送信します。

バイナリまたは構造化されたデータをリクエスト属性で送信する場合は、最初にデータを単純な文字列に変換する必要があります。詳細については、「[Lex V2 ボットでの複雑な属性の設定](context-mgmt-complex-attributes.md)」を参照してください。

Amazon Lex V2 には、ボットに送信される情報の処理方法を管理するための事前定義されたリクエスト属性があります。事前定義されたリクエスト属性は、セッション全体にわたって保持されないため、リクエストごとに属性を送信する必要があります。すべての事前定義された属性は `x-amz-lex:` 名前空間にあります。

Amazon Lex には、以下の定義済み属性に加えて、メッセージングプラットフォーム用の定義済み属性が用意されています。これらの属性のリストについては、「メッセージングプラットフォームで Amazon Lex ボットをデプロイする」を参照してください。

## レスポンスタイプの設定
<a name="response-type-context"></a>



異なる機能を持つクライアントアプリケーションが 2 つある場合は、レスポンスのメッセージ形式の制限が必要な場合もあります。例えば、ウェブクライアントに送信するメッセージをプレーンテキストに制限し、モバイルクライアントではプレーンテキストと音声合成マークアップ言語 (SSML) の両方を使用できるようにしたいといった場合も考えられます。`PostContent` および `PostText` オペレーションが返すメッセージの形式を設定するには、x-amz-lex:accept-content-types リクエスト属性を使用します。

次のメッセージタイプを任意に組み合わせて属性を設定することができます。
+ `PlainText` - メッセージには UTF-8 プレーンテキストが含まれています。
+ `SSML` - メッセージには音声出力のテキスト形式が含まれています。
+ `CustomPayload` - メッセージにはクライアント向けに作成したカスタム形式が含まれています。アプリケーションのニーズを満たすようにペイロードを定義することができます。

Amazon Lex V2 はレスポンスの [メッセージ] フィールドで指定したタイプを使用するメッセージのみを返します。カンマで区切れば複数の値を設定できます。メッセージグループを使用している場合は、各メッセージグループで少なくとも 1 つ指定したタイプのメッセージが含まれている必要があります。それ以外の場合は、`NoUsableMessageException` エラーが発生します。詳細については、「Message Groups」(メッセージグループ) を参照してください。

## Lex V2 ボットの事前定義されたリクエスト属性の設定
<a name="setting-predefined-request-attributes"></a>

Amazon Lex V2 には、ボットに送信される情報の処理方法を管理するための事前定義されたリクエスト属性があります。事前定義されたリクエスト属性は、セッション全体にわたって保持されないため、リクエストごとに属性を送信する必要があります。すべての事前定義された属性は `x-amz-lex:` 名前空間にあります。

## Lex V2 ボットでインテントスイッチを無効にする
<a name="disabling-intent-switches-attributes"></a>

ユーザーがインテントの確認中またはスロット誘発中にインテントを切り替えることができるかどうかを制御するには、`x-amz-lex:intent-switch` リクエスト属性を使用します。`DISABLE` に設定すると、この属性により、ユーザーは現在のインテントフローの完了処理中に別のインテントをトリガーできなくなります。

例えば、ユーザーがフライトを予約中であり、フライトの詳細を求められている場合、通常は他のインテントをトリガーする「天気の確認」や「ホテルの予約」などの発話は無視され、会話は現在の予約プロセスに集中し続けます。