如果您使用的是 Amazon Lex V2,請改參閱 Amazon Lex V2 指南。
如果您使用的是 Amazon Lex V1,我們建議您將機器人升級至 Amazon Lex V2。我們不再將新功能新增至 V1,並強烈建議對所有新機器人使用 V2。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
PutSlotType
建立自訂插槽類型或取代現有的自訂插槽類型。
若要建立自訂槽類型,請指定插槽類型的名稱和一組列舉值,這些值是此類型槽可承擔的值。如需詳細資訊,請參閱 Amazon Lex 運作方式。
如果您指定現有插槽類型的名稱,請求中的欄位會取代插槽類型$LATEST
版本中的現有值。Amazon Lex 會移除您在請求中未提供的欄位。如果您未指定必填欄位,Amazon Lex 就會擲回例外狀況。當您更新插槽類型的$LATEST
版本時,如果機器人使用包含插槽類型的意圖$LATEST
版本,則機器人的status
欄位會設定為NOT_BUILT
。
這項操作需要 lex:PutSlotType
動作的許可。
請求語法
PUT /slottypes/name
/versions/$LATEST HTTP/1.1
Content-type: application/json
{
"checksum": "string
",
"createVersion": boolean
,
"description": "string
",
"enumerationValues": [
{
"synonyms": [ "string
" ],
"value": "string
"
}
],
"parentSlotTypeSignature": "string
",
"slotTypeConfigurations": [
{
"regexConfiguration": {
"pattern": "string
"
}
}
],
"valueSelectionStrategy": "string
"
}
URI 請求參數
請求會使用下列 URI 參數。
- name
-
位置類型的名稱。名稱不區分大小寫。
該名稱不能匹配內置插槽類型名稱,或帶有「AMAZON」的內置插槽類型名稱。刪除。例如,由於有一個名為的內置插槽類型
AMAZON.DATE
,因此您無法創建名為的自定義插槽類型DATE
。如需內建插槽類型的清單,請參閱 Alexa 技能套件中的插槽類型參考
。 長度限制:長度下限為 1。長度上限為 100。
模式:
^([A-Za-z]_?)+$
必要:是
請求主體
請求接受採用 JSON 格式的下列資料。
- checksum
-
識別版本的特定修訂
$LATEST
版本。當您建立新插槽類型時,請將
checksum
欄位保留空白。如果你指定一個校驗和,你會得到一個BadRequestException
異常。當您要更新插槽類型時,請將
checksum
欄位設定為該版本最新修訂$LATEST
版的總和檢查碼。如果您未指定checksum
欄位,或者總和檢查碼與$LATEST
版本不相符,則會出現PreconditionFailedException
例外狀況。類型:字串
必要:否
- createVersion
-
當設置
true
為插槽類型的新編號版本被創建。這與呼叫作CreateSlotTypeVersion
業相同。如果未指定createVersion
,預設值為false
。類型:布林值
必要:否
- description
-
位置類型的描述。
類型:字串
長度限制:長度下限為 0。長度上限為 200。
必要:否
- enumerationValues
-
定義插槽類型可採用的值的
EnumerationValue
物件清單。每個值都可以有一份清單synonyms
,這些清單是額外的值,可協助訓練機器學習模型,瞭解它為槽所解析的值。正則表達式插槽類型不需要枚舉值。所有其他插槽類型都需要列舉值清單。
Amazon Lex 解析插槽值時,會產生一份解析清單,其中包含插槽最多五個可能值。如果您使用的是 Lambda 函數,則會將此解析清單傳遞給函數。如果您不使用 Lambda 函數,您可以選擇將使用者輸入的值或解析度清單中的第一個值傳回為插槽值。此
valueSelectionStrategy
欄位指示要使用的選項。類型:EnumerationValue 物件陣列
陣列成員:項目數下限為 0。最多可包含 1 萬個項目。
必要:否
- parentSlotTypeSignature
-
用作插槽類型的父插槽類型的內建插槽類型。當您定義父插槽類型時,新的插槽類型與父插槽類型具有所有相同的模型組態。
僅支援
AMAZON.AlphaNumeric
。類型:字串
長度限制:長度下限為 1。長度上限為 100。
模式:
^((AMAZON\.)_?|[A-Za-z]_?)+
必要:否
- slotTypeConfigurations
-
擴充上層內建插槽類型的組態資訊。模型組態會新增至父插槽類型的設定中。
類型:SlotTypeConfiguration 物件陣列
陣列成員:項目數下限為 0。項目數上限為 10。
必要:否
- valueSelectionStrategy
-
決定 Amazon Lex 用來傳回插槽類型值的插槽解析策略。該欄位可以設定為下列其中一個值:
-
ORIGINAL_VALUE
-如果使用者值與槽值類似,則傳回使用者輸入的值。 -
TOP_RESOLUTION
-如果有插槽的解析度清單,請傳回解析度清單中的第一個值作為插槽類型值。如果沒有解析清單,則傳回 null。
如果未指定
valueSelectionStrategy
,預設值為ORIGINAL_VALUE
。類型:字串
有效值:
ORIGINAL_VALUE | TOP_RESOLUTION
必要:否
-
回應語法
HTTP/1.1 200
Content-type: application/json
{
"checksum": "string",
"createdDate": number,
"createVersion": boolean,
"description": "string",
"enumerationValues": [
{
"synonyms": [ "string" ],
"value": "string"
}
],
"lastUpdatedDate": number,
"name": "string",
"parentSlotTypeSignature": "string",
"slotTypeConfigurations": [
{
"regexConfiguration": {
"pattern": "string"
}
}
],
"valueSelectionStrategy": "string",
"version": "string"
}
回應元素
如果動作成功,則服務傳回 HTTP 200 回應。
服務會傳回下列 JSON 格式的資料。
- checksum
-
插槽類型
$LATEST
版本的總和檢查碼。類型:字串
- createdDate
-
插槽類型的建立日期。
類型:Timestamp
- createVersion
-
True
如果創建了插槽類型的新版本。如果未在請求中指定該字createVersion
段,則該createVersion
字段在響應中設置為 false。類型:布林值
- description
-
位置類型的描述。
類型:字串
長度限制:長度下限為 0。長度上限為 200。
- enumerationValues
-
定義插槽類型可採用的值的
EnumerationValue
物件清單。類型:EnumerationValue 物件陣列
陣列成員:項目數下限為 0。最多可包含 1 萬個項目。
- lastUpdatedDate
-
更新插槽類型的日期。建立插槽類型時,建立日期與上次更新日期相同。
類型:Timestamp
- name
-
位置類型的名稱。
類型:字串
長度限制:長度下限為 1。長度上限為 100。
模式:
^([A-Za-z]_?)+$
- parentSlotTypeSignature
-
用作插槽類型的父插槽類型的內建插槽類型。
類型:字串
長度限制:長度下限為 1。長度上限為 100。
模式:
^((AMAZON\.)_?|[A-Za-z]_?)+
- slotTypeConfigurations
-
擴充上層內建插槽類型的組態資訊。
類型:SlotTypeConfiguration 物件陣列
陣列成員:項目數下限為 0。項目數上限為 10。
- valueSelectionStrategy
-
Amazon Lex 用來判斷插槽值的插槽解析策略。如需詳細資訊,請參閱 PutSlotType。
類型:字串
有效值:
ORIGINAL_VALUE | TOP_RESOLUTION
- version
-
插槽類型的版本。對於新插槽類型,版本始終是
$LATEST
。類型:字串
長度限制:長度下限為 1。長度上限為 64。
模式:
\$LATEST|[0-9]+
錯誤
- BadRequestException
-
請求的格式不正確。例如,值無效或缺少必填欄位。請檢查欄位值,然後再試一次。
HTTP 狀態碼:400
- ConflictException
-
處理要求時發生衝突。請再次嘗試您的請求。
HTTP 狀態碼:409
- InternalFailureException
-
發生內部 Amazon Lex 錯誤。請再次嘗試您的請求。
HTTP 狀態碼:500
- LimitExceededException
-
請求超過限制。請再次嘗試您的請求。
HTTP 狀態碼:429
- PreconditionFailedException
-
您嘗試變更之資源的總和檢查碼與要求中的總和檢查碼不符。檢查資源的總和檢查碼,然後再試一次。
HTTP 狀態碼:412
另請參閱
如需在其中一個特定語言 AWS SDK 中使用此 API 的詳細資訊,請參閱下列內容: