本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
自定义槽位类型
对于每个目的,您都可以指定参数来指示目的要完成用户请求所需的信息。这些参数,或者说槽,都有一个类型。槽位类型是指 Amazon Lex V2 用于训练机器学习模型以识别槽位值的值列表。例如,您可以定义一个名为 Genres
的槽位类型,其值为“comedy”(喜剧)、“adventure”(探险剧)、“documentary”(纪录片)等。您可以定义槽位类型值的同义词。例如,可以为“comedy”值定义同义词“funny”和“humorous”。
或者,您可以通过配置槽位类型来扩展槽位值。槽位值将用作训练数据,并且当用户提供的值与槽位值以及这些值的同义词相似时,该模型将槽位解析为用户提供的值。这是默认行为。Amazon Lex V2 为槽位维护一个可能解析值的列表。列表中的每个条目都提供一个解析值,Amazon Lex V2 将其识别为槽位的更多可能值。解析值是与槽位值的尽可能匹配。该列表最多包含五个值。
或者,您可以通过配置槽位类型来限制对槽位值的解析。在这种情况下,只有当用户输入的槽位值与该槽位值相同或是该槽位值的同义词时,该模型才会将该槽位值解析为现有的槽位值。例如,如果用户输入“funny”,会解析为槽值“comedy”。
当用户输入的值是槽位类型值的同义词时,模型将返回该槽位类型值作为 resolvedValues
列表中的第一个条目。例如,如果用户输入“funny”(滑稽),则模型会在 originalValue
字段中填充值“funny”,在 resolvedValues 字段的第一个条目中填充“comedy”(喜剧)。您可以在使用 CreateSlotType 操作创建或更新槽类型时配置 valueSelectionStrategy
,以便使用解析列表中的第一个值填充槽值。
自定义槽位类型支持使用拼写样式进行输入。您可以使用 spell-by-letter 和 spell-by-word 样式来帮助客户输入字母。有关更多信息,请参阅在对话中使用拼写样式捕获时段值。
如果您使用 Lambda 函数,该函数的输入事件中会包含一个名为 resolvedValues
的解析列表。以下示例显示了 Lambda 函数输入的槽位部分:
"slots": {
"MovieGenre": {
"value": {
"originalValue": "funny",
"interpretedValue": "comedy",
"resolvedValues": [
"comedy"
]
}
}
}
对于每个槽类型,最多可定义 10000 个值和同义词。每个自动程序的槽类型值和同义词的总数最多为 50000。例如,您可以拥有 5 种插槽类型,每种类型包含 5,000 个值和 5,000 个同义词,或者您可以拥有 10 种插槽类型,每种类型包含 2,500 个值和 2,500 个同义词。
自定义槽位类型不应与内置槽位类型同名。例如,不应使用预留关键字“日期”、“数字”或“确认”来命名自定义槽位类型。这些关键字是为内置槽位类型预留的。有关所有内置槽位类型的列表,请参阅内置槽位类型。