本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
複合插槽是兩個或多個插槽的組合,可在單一使用者輸入中擷取多個資訊片段。例如,您可以透過請求「城市和狀態或郵遞區號」,設定機器人來引出位置。相反地,當對話設定為使用不同的槽類型,導致剛性對話體驗 (「城市是什麼?」後面接著「郵遞區號是什麼?」)。使用複合插槽,您可以透過單一插槽擷取所有資訊。複合插槽是稱為子插槽的插槽組合,例如城市、州和郵遞區號。
您可以使用可用的 Amazon Lex 插槽類型 (內建) 和您自己的插槽 (自訂插槽) 的組合。您可以設計邏輯表達式來擷取所需子槽內的資訊。例如:城市和州或郵遞區號。
複合插槽類型僅在 en-US 中提供。
建立複合槽類型
若要在複合插槽中使用子插槽,您必須先設定複合插槽類型。若要這樣做,請使用新增槽類型主控台步驟或 API 操作。選擇複合槽類型的名稱和描述後,您必須提供子槽的資訊。如需新增插槽類型的詳細資訊,請參閱 新增槽類型
子槽
複合槽類型需要基礎槽的組態,稱為子槽。如果您想要在一個請求中從客戶引出多個資訊,請設定子槽的組合。例如:城市、州和郵遞區號。您最多可以為複合插槽新增 6 個子槽。
單一插槽類型的插槽可用來將子插槽新增至複合插槽類型。不過,您無法將複合插槽類型用作子插槽的插槽類型。
下列影像是複合槽「Car」的圖解,其為子槽的組合:顏色、FuelType、製造商、模型、VIN 和年份。


表達式建置器
若要推動複合插槽的履行,您可以選擇使用表達式建置器。使用表達式建置器,您可以設計邏輯槽表達式,以按所需的順序擷取所需的子槽值。作為布林表達式的一部分,您可以使用 AND 和 OR 等運算子。根據設計的表達式,當滿足所需的子槽時,複合槽會被視為已滿足。
使用複合槽類型
對於某些意圖,您可能想要擷取不同的插槽,做為單一插槽的一部分。例如,汽車維護排程機器人可能有意圖表達下列用語:
My car is a {car}
此意圖預期 {car} 複合槽包含插槽清單,其中包含車輛的詳細資訊。例如,"2021 White Toyota Camry"。
複合插槽與多值插槽不同。複合插槽由多個插槽組成,每個插槽都有自己的值。但多值插槽是單一插槽,可包含值清單。如需多值插槽的詳細資訊,請參閱: 在槽中使用多個值
對於複合槽,Amazon Lex 會傳回回應 RecognizeText
或 RecognizeUtterance
操作中每個子槽的值。以下是針對表達用語傳回的槽資訊:「我想要從 CarService 機器人為我的「2021 年白豐田 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 機器人的意圖中使用預設槽值

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

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

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

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