PutSlotType - Amazon Lex V1

如果您使用的是 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 的更多信息,请参阅以下内容: