如果您使用的是 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 Skills Kit
中的插槽类型参考。 长度限制:长度下限为 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 个物品。最多 10000 项。
必需:否
- 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
-
插槽类型的创建日期。
类型:时间戳
- createVersion
-
True
(如果创建了新版本的插槽类型)。如果请求中未指定createVersion
字段,则在响应中将createVersion
字段设置为 false。类型:布尔值
- description
-
槽类型的描述。
类型:字符串
长度约束:最小长度为 0。最大长度为 200。
- enumerationValues
-
定义插槽类型可采用值的
EnumerationValue
对象的列表。类型:EnumerationValue 对象数组
数组成员:最少 0 个物品。最多 10000 项。
- lastUpdatedDate
-
插槽类型的更新日期。创建插槽类型时,创建日期和上次更新日期相同。
类型:时间戳
- 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 的更多信息,请参阅以下内容: