如果您使用的是 Amazon Lex V2,請改參閱 Amazon Lex V2 指南。
如果您使用的是 Amazon Lex V1,我們建議您將機器人升級至 Amazon Lex V2。我們不再將新功能新增至 V1,並強烈建議對所有新機器人使用 V2。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
自訂槽類型
對於每個意圖,您可以指定參數,指出意圖需要滿足使用者的請求的資訊。這些參數或槽,有一個類型。插槽類型是 Amazon Lex 用來訓練機器學習模型以辨識插槽值的值清單。例如,您可以定義一個稱為「Genres.
」的槽類型,在該槽類型中的每個值都是一種流派的名稱,「喜劇」、「探險」、「紀錄片」,以此類推。您可以為槽類型值定義同義詞。例如,您可以為值「喜劇」定義同義詞「滑稽」和「幽默」。
您可以設定槽類型來限制槽值的解析。槽值會用作為列舉,並且只會在與其中一個槽值或同義詞相同時,才會將使用者輸入的值會解析為槽值。同義詞會解析為對應的槽值。例如,如果使用者輸入「滑稽」,它會解析為槽值「喜劇」。
您也可以設定槽類型來擴展該值。槽值會用作為訓練資料,並且只會在槽值和同義詞字類似時,才會將槽解析為使用者提供的值。這是預設行為。
Amazon Lex 會維護插槽的可能解析度清單。清單中的每個項目都提供解析度值,Amazon Lex 認為插槽的其他可能性。解析值是最符合槽值的項目。該清單最多可包含五個值。
當使用者輸入的值是同義詞時,解析值清單中的第一個項目是槽類型值。例如,如果使用者輸入「滑稽」,則 slots
欄位會包含「滑稽」而 slotDetails
欄位中的第一個項目是「喜劇」。您可以在使用 valueSelectionStrategy
操作建立或更新槽類型時設定 PutSlotType,如此一來槽值就會以解析清單中的第一個值填滿。
如果您使用的是 Lambda 函數,則函數的輸入事件會包含一個名為的解析度清單slotDetails
。下列範例顯示 Lambda 函數輸入的插槽和插槽詳細資訊區段:
"slots": {
"MovieGenre": "funny";
},
"slotDetails": {
"Movie": {
"resolutions": [
"value": "comedy"
]
}
}
對於每個槽類型,您最多可以定義 10,000 個值和同義詞。每個機器人總共可有 50,000 個槽類型值和同義詞。例如,您有 5 個槽類型,每個有 5,000 個值和同義詞,或您有 10 個槽類型,每個有 2,500 個值和同義詞。如果您超過這些限制,您在呼叫 PutBot 操作時會取得 LimitExceededException
。