

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 設定 Lex V2 機器人的請求屬性
<a name="context-mgmt-request-attribs"></a>

*請求屬性*包含請求特定的資訊並且僅適用於目前的請求。用戶端應用程式會將此資訊傳送至 Amazon Lex 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>

*使用者定義的請求屬性*是您在每個請求中傳送給機器人的資料。您在 `amz-lex-request-attributes` 請求中的 `RecognizeUtterance` 標頭，或在 `requestAttributes` 請求中 `RecognizeText` 欄位傳送資訊。

若要將請求屬性傳送至 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>



如果您有兩個具有不同功能的用戶端應用程式，可能需要限制回應中的訊息格式。例如，您可能想要將傳送到 Web 用戶端的訊息限制為純文字，但是讓行動用戶端可以同時使用純文字和語音合成標記語言 (SSML)。若要設定 `PostContent`和 `PostText`操作傳回的訊息格式，請使用 x-amz-lex：accept-content-types" 請求屬性。

您可以將屬性設定為以下訊息類型的任何組合：
+ `PlainText` — 訊息包含純 UTF-8 文字。
+ `SSML` — 訊息包含語音輸出的文字格式。
+ `CustomPayload` — 訊息包含您為用戶端建立的自訂格式。您可以定義承載，以符合應用程式的需求。

Amazon Lex V2 只會在回應的訊息欄位中傳回具有指定類型的訊息。您可以用逗號分隔各值來設定多個值。如果您使用訊息群組，那麼每個訊息群組都必須至少包含一個指定類型的訊息。否則，您會收到 `NoUsableMessageException` 錯誤。如需詳細資訊，請參閱訊息群組。

## 在 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`，此屬性可防止使用者在完成目前意圖流程時觸發不同的意圖。

例如，如果使用者正在預訂航班，並收到航班詳細資訊提示，則「檢查天氣」或「預訂飯店」等表達用語 - 這通常會觸發其他意圖 - 將被忽略，以確保對話專注於目前的預訂程序。