使用一个槽位中的多个值 - Amazon Lex

使用一个槽位中的多个值

注意

多值槽位仅适用于英语(美国)。

对于某些意图,您可能需要为单个槽位捕获多个值。例如,披萨订购机器人可能有以下言语的意图:

I want a pizza with {toppings}

此意图预期该 {toppings} 槽位包含客户想要加在所订购披萨上的一系列配料,例如“pepperoni and pineapple”(意大利辣香肠和菠萝)。

要将槽位配置为捕获多个值,请将槽位上的 allowMultipleValues 字段设置为 true。您可以使用控制台或通过 CreateSlotUpdateSlot 操作来设置该字段。

您只能将具有自定义槽位类型的槽位标记为多值槽位。

对于多值槽位,Amazon Lex V2 在响应 RecognizeTextRecognizeUtterance 操作时会返回槽位值列表。以下是 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 掩盖对话日志中的槽位值