本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
复合槽位是两个或多个槽位的组合,用于在单个用户输入中捕获多条信息。例如,您可以将机器人配置为通过请求“城市和州/省/自治区或邮政编码”来引发位置。相反,如果对话配置为使用单独的槽位类型,则会导致对话体验僵硬(询问“哪个城市?”,然后紧接着询问“邮政编码是什么?”)。使用复合槽位,您可以通过单个槽位来捕获所有信息。复合槽位是称为子槽位的组合,例如城市、州/省/自治区和邮政编码。
您可以组合使用可用的 Amazon Lex 槽位类型(内置)和您自己的槽位(自定义槽位)。您可以设计逻辑表达式来捕获所需子槽位中的信息。例如:城市和州/省/自治区或邮政编码。
复合槽位类型仅适用于 en-US。
创建复合槽位类型
要在复合槽位中使用子槽位,必须先配置复合槽位类型。为此,请使用添加槽位类型控制台步骤或 API 操作。为复合槽位类型选择名称和描述后,必须提供子槽位的信息。有关添加槽位类型的更多信息,请参阅添加槽位类型
子槽位
复合槽位类型需要配置底层槽位,称为子槽位。如果要在一次请求中从客户处引发多条信息,请配置子槽位的组合。例如:城市、州/省/自治区以及邮政编码。您可以为一个复合槽位添加最多 6 个子槽位。
单一槽位类型的槽位可用于向复合槽位类型添加子槽位。但是,您无法使用复合槽位类型作为子槽位的槽位类型。
下图是复合插槽 “汽车” 的插图,它是子插槽的组合:颜色、制造商、 FuelType型号、VIN 和年份。


表达式生成器
为便于复合槽位的履行,您可以选择使用表达式生成器。借助表达式生成器,您可以设计逻辑槽位表达式,以按所需顺序捕获所需的子槽位值。作为布尔表达式的一部分,您可以使用诸如 AND 和 OR 等运算符。根据设计的表达式,当履行所需的子槽位时,即视为履行该复合槽位。
使用复合槽位类型
对于某些意图,您可能需要将不同的槽位作为单个槽位的一部分来捕获。例如,车辆保养预约安排机器人可能有以下言语的意图:
My car is a {car}
该意图预期 {car} 复合槽位包含一系列槽位,其中包含车辆的详细信息。例如,“2021 White Toyota Camry”(2021 款白色丰田凯美瑞)。
复合槽位不同于多值槽位。复合槽位由多个槽位组成,每个槽位都有自己的值。而多值槽位是可以包含一系列值的单一槽位。有关多值槽位的更多信息,请参阅使用一个槽位中的多个值
对于复合槽位,Amazon Lex 会在响应 RecognizeText
或 RecognizeUtterance
操作时为每个子槽位返回一个值。以下是该话语返回的插槽信息:“我想通过机器人为我的 “2021 White Toyota Camry” 安排服务。 CarService
"slots": {
"CarType": {
"value": {
"originalValue": "White Toyota Camry 2021",
"interpretedValue": "White Toyota Camry 2021",
"resolvedValues": [
"white Toyota Camry 2021"
]
},
"subSlots": {
"Color": {
"value": {
"originalValue": "White",
"interpretedValue": "White",
"resolvedValues": [
"white"
]
},
"shape": "Scalar"
},
"Manufacturer": {
"value": {
"originalValue": "Toyota",
"interpretedValue": "Toyota",
"resolvedValues": [
"Toyota"
]
},
"shape": "Scalar"
},
"Model": {
"value": {
"originalValue": "Camry",
"interpretedValue": "Camry",
"resolvedValues": [
"Camry"
]
},
"shape": "Scalar"
},
"Year": {
"value": {
"originalValue": "2021",
"interpretedValue": "2021",
"resolvedValues": [
"2021"
]
},
"shape": "Scalar"
}
}
},
...
}
可以在对话的第一回合或第 n 回合中引发复合槽位。基于所提供的输入值,复合槽位可以引发其余所需的子槽位。
复合槽位总是为每个子槽位返回一个值。当言语中不包含给定子槽位的可识别值时,该特定子槽位不会返回任何响应。
复合槽位适用于文本和语音输入。
向意图中添加槽位时,复合槽位只能作为自定义槽位类型使用。
您可以在提示中使用复合槽位。例如,您可以为意图设置确认提示。
Would you like me to schedule service for your 2021 White Toyota
Camry?
当向用户发送提示时,Amazon Lex 会发送“Would you like me to schedule service for your 2021 White Toyota Camry?”(是否需要为您的 2021 款白色丰田凯美瑞预约保养服务?)。
每个子槽位都配置为一个槽位。您可以添加槽位提示来引发子槽位和示例言语。您可以为子槽启用“等待并继续”以及默认值。有关更多信息,请参阅 在 Lex V2 机器人的意图中使用默认槽位值

您可以使用槽位模糊处理来掩盖对话日志中的整个复合槽位。请注意,槽位模糊处理应用于复合槽位级别,启用后,属于复合槽位的子槽位的值将被模糊处理。当您对槽位值进行模糊处理时,每个槽位值将被替换为槽位的名称。有关更多信息,请参阅 从 Lex V2 掩盖对话日志中的槽位值。

编辑复合槽位类型
您可以从复合槽位配置中编辑子槽位,以修改子槽位名称和槽位类型。但是,当意图正在使用复合槽位时,您需要首先编辑意图,然后才能修改子槽位。

删除复合槽位类型
您可以从复合槽位配置中删除子槽位。请注意,当意图正在使用子槽位时,子槽位仍会从该意图中删除。

表达式生成器中的槽位表达式提供关于子槽位已被删除的警报。
