

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

# 複合槽類型
<a name="composite-slots"></a>

複合插槽是兩個或多個插槽的組合，可在單一使用者輸入中擷取多個資訊片段。例如，您可以透過請求「城市和狀態或郵遞區號」來設定機器人來引出位置。相反地，當對話設定為使用單獨的槽類型時，會產生嚴格的對話體驗 (「城市是什麼？」，後面接著「郵遞區號是什麼？」)。使用複合插槽，您可以透過單一插槽擷取所有資訊。複合插槽是稱為子插槽的插槽組合，例如城市、州和郵遞區號。

您可以使用可用的 Amazon Lex 插槽類型 （內建） 和您自己的插槽 （自訂插槽） 的組合。您可以設計邏輯表達式來擷取所需子槽內的資訊。例如：城市和州或郵遞區號。

複合插槽類型僅適用於 en-US。

**建立複合槽類型**

若要在複合插槽中使用子插槽，您必須先設定複合插槽類型。若要這樣做，請使用新增槽類型主控台步驟或 API 操作。選擇複合插槽類型的名稱和描述之後，您必須提供子插槽的資訊。如需新增插槽類型的詳細資訊，請參閱 [新增槽類型](add-slot-types.md) 

**子插槽**

複合槽類型需要基礎槽的組態，稱為子槽。如果您想要在一個請求中從客戶引出多個資訊，請設定子槽的組合。例如：城市、州和郵遞區號。您可以為複合插槽新增最多 6 個子插槽。

單一插槽類型的插槽可用來將子插槽新增至複合插槽類型。不過，您無法使用複合插槽類型做為子插槽的插槽類型。

下圖是複合槽 “Car” 的圖例，它是子槽的組合：顏色、FuelType、製造商、模型、VIN 和年份。

![\[槽類型面板會顯示子槽。\]](http://docs.aws.amazon.com/zh_tw/lexv2/latest/dg/images/cst-slottype.png)


![\[子插槽面板。\]](http://docs.aws.amazon.com/zh_tw/lexv2/latest/dg/images/cst-subslots.png)


**表達式建置器**

若要推動複合插槽的履行，您可以選擇使用表達式建置器。使用表達式建置器，您可以設計邏輯槽表達式，以所需的順序擷取所需的子槽值。作為布林表達式的一部分，您可以使用 AND 和 OR 等運算子。根據設計的表達式，當滿足所需的子槽時，複合槽會被視為已滿足。

**使用複合槽類型**

對於某些意圖，您可能想要將不同的插槽擷取為單一插槽的一部分。例如，汽車維護排程機器人可能有以下表達用語的意圖：

`My car is a {car}`

意圖預期 \$1car\$1 複合插槽包含插槽清單，其中包含車輛的詳細資訊。例如，"2021 White Toyota Camry"。

複合插槽與多值插槽不同。複合插槽由多個插槽組成，每個插槽都有自己的值。但多值插槽是可以包含值清單的單一插槽。如需多值插槽的詳細資訊，請參閱： [在槽中使用多個值](multi-valued-slots.md)

對於複合插槽，Amazon Lex 會在回應 `RecognizeText`或 `RecognizeUtterance`操作時傳回每個子插槽的值。以下是針對表達用語傳回的槽資訊：「我想要從 CarService 機器人為我的「2021 White Toyota Camry」排程服務。

```
"slots": {
    "CarType": {
        "value": {
            "originalValue": "White Toyota Camry 2021",
            "interpretedValue": "White Toyota Camry 2021",
            "resolvedValues": [
                "white Toyota Camry 2021"
            ]
        },
        "subSlots": {
            "Color": {
                "value": {
                    "originalValue": "White",
                    "interpretedValue": "White",
                    "resolvedValues": [
                        "white"
                    ]
                },
                "shape": "Scalar"
            },
            "Manufacturer": {
                "value": {
                    "originalValue": "Toyota",
                    "interpretedValue": "Toyota",
                    "resolvedValues": [
                        "Toyota"
                    ]
                },
                "shape": "Scalar"
            },
            "Model": {
                "value": {
                    "originalValue": "Camry",
                    "interpretedValue": "Camry",
                    "resolvedValues": [
                       "Camry"
                    ]
                },
                "shape": "Scalar"
            },
            "Year": {
                "value": {
                    "originalValue": "2021",
                    "interpretedValue": "2021",
                    "resolvedValues": [
                        "2021"
                    ]
                },
                "shape": "Scalar"
            }
        }
    },
    ...
}
```

複合槽可以在對話的第一圈或第 n 圈引出 。根據提供的輸入值，複合插槽可以引出剩餘的必要子插槽。

複合插槽一律會傳回每個子插槽的值。當表達用語不包含指定子槽的可辨識值時，就不會傳回該特定子槽的回應。

複合插槽可同時使用文字和語音輸入。

將插槽新增至意圖時，複合插槽只能做為自訂插槽類型使用。

您可以在提示中使用複合插槽。例如，您可以設定意圖的確認提示。

`Would you like me to schedule service for your 2021 White Toyota Camry?`

當 Amazon Lex 傳送提示給使用者時，會傳送「您希望我為您的 2021 年 White Toyota Camry 排程服務嗎？」

每個子槽都設定為插槽。您可以新增槽提示來引出子槽和範例表達用語。您可以啟用等待並繼續處理子插槽以及預設值。如需詳細資訊，請參閱[在 Lex V2 機器人的意圖中使用預設槽值](context-mgmt-default.md)

![\[複合槽設定面板\]](http://docs.aws.amazon.com/zh_tw/lexv2/latest/dg/images/cst-composite.png)


您可以使用槽混淆來遮罩對話日誌中的整個複合槽。請注意，槽混淆會套用至複合槽層級，啟用時，屬於複合槽的子槽值會混淆。當您混淆槽值時，每個槽值的值都會取代為槽的名稱。如需詳細資訊，請參閱[從 Lex V2 遮蔽對話日誌中的槽值](monitoring-obfuscate.md)。

![\[複合槽資訊面板\]](http://docs.aws.amazon.com/zh_tw/lexv2/latest/dg/images/cst-slotinfo.png)


**編輯複合槽類型**

您可以從複合槽組態中編輯子槽，以修改子槽名稱和槽類型。不過，當意圖使用複合槽時，您必須先編輯意圖，才能修改子槽。

![\[現有意圖的警示面板\]](http://docs.aws.amazon.com/zh_tw/lexv2/latest/dg/images/cst-alert.png)


**刪除複合槽類型**

您可以從複合槽組態中刪除子槽。請注意，當子槽在意圖中使用時，子槽仍會從該意圖中移除。

![\[使用子槽刪除意圖\]](http://docs.aws.amazon.com/zh_tw/lexv2/latest/dg/images/cst-delete.png)


表達式建置器中的槽表達式提供提醒，以通知已刪除的子槽。

![\[現有意圖的槽類型\]](http://docs.aws.amazon.com/zh_tw/lexv2/latest/dg/images/cst-slottype.png)
