本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用一个插槽中的多个值
注意
多值插槽仅适用于英语(美国)。
对于某些意图,您可能需要为单个插槽捕获多个值。例如,披萨订购机器人可能有以下言语的意图:
I want a pizza with {toppings}
该意图预期该 {toppings}
插槽包含客户想要加在所订购披萨上的一系列配料,例如“pepperoni and pineapple”(意大利辣香肠和菠萝)。
要将插槽配置为捕获多个值,请将插槽上的 allowMultipleValues
字段设置为 true。您可以使用控制台或通过 CreateSlot 或 UpdateSlot 操作来设置该字段。
您只能将具有自定义插槽类型的插槽标记为多值插槽。
对于多值插槽,Amazon Lex V2 在响应 RecognizeText 或 RecognizeUtterance 操作时会返回插槽值列表。以下是 OrderPizza 机器人为言语“I want a pizza with pepperoni and pineapple”(我想要一个意大利辣香肠和菠萝的披萨)返回的插槽信息。
"slots": {
"toppings": {
"shape": "List",
"value": {
"interpretedValue": "pepperoni and pineapple",
"originalValue": "pepperoni and pineapple",
"resolvedValues": [
"pepperoni and pineapple"
]
},
"values": [
{
"shape": "Scalar",
"value": {
"interpretedValue": "pepperoni",
"originalValue": "pepperoni",
"resolvedValues": [
"pepperoni"
]
}
},
{
"shape": "Scalar",
"value:": {
"interpretedValue": "pineapple",
"originalValue": "pineapple",
"resolvedValues": [
"pineapple"
]
}
}
]
}
}
多值插槽始终返回一系列的值。当言语只包含一个值时,返回的值列表仅包含一个响应。
Amazon Lex V2 可识别由空格、逗号 (,) 和连词 “and” 分隔的多个值。多值插槽支持使用文本和语音输入。
您可以在提示中使用多个值的插槽。例如,您可以将意图的确认提示设置为
Would you like me to order your {toppings} pizza?
当 Amazon Lex V2 将向用户发送提示时,将发送“Would you like me to order your pepperoni and pineapple pizza?”(是否需要为您预定意大利辣香肠和菠萝披萨?)
多值插槽支持单个默认值。如果提供了多个默认值,Amazon Lex V2 将仅使用第一个可用值来填充插槽。有关更多信息,请参阅在 Lex V2 机器人的意图中使用默认插槽值。
您可以使用插槽模糊处理来掩盖对话日志中多值插槽的值。当您对插槽值进行模糊处理时,每个插槽值将被替换为插槽的名称。有关更多信息,请参阅在 Lex V2 的对话日志中隐藏 slot 值。