如何在意图中将值列表传递给Alexa插槽

时间:2019-09-17 17:47:11

标签: alexa-skills-kit alexa-skill alexa-slot alexa-intent alexa-interaction-model

我想定义一个订单意图,例如“我要两支铅笔,一个笔记本,四个卡匣”

在alexa构建模型中,它看起来类似于以下内容  我想要{itemQuantity} {itemList}

此处{itemQuantity}定义为 Amazon.number ,而{itemList}定义为自定义广告位,其可能具有这组值{铅笔,笔记本,橡皮擦, cardbox,sharpner}。

现在,如果我说以下话:“我要三个橡皮擦”,则效果很好。它将itemQuantity设为3,并将itemList设为橡皮擦。

但是当我使用这样的多个值表示意图时,“我想要两支铅笔一个笔记本四个卡盒”。它向我返回itemQuantity为2和itemValue为“两支铅笔一本笔记本四个卡盒”。

其余字符串完全作为itemList出现。

我想以数组/列表的形式获取此输入,例如itemQuantity = {2,1,4} itemList = {铅笔,笔记本,卡片盒}

1 个答案:

答案 0 :(得分:0)

您不能以简单的方式进行操作。

您可以做的最简单的事情是定义语音,例如:

I want {itemQuantity1}{item1}{itemQuantity2}{item2}...

因此,您必须在说话时为列表指定所有可能性。如果您有最大固定长度列表,我认为这是正确的方法。

或者您可以使用AMAZON.SearchQuery槽(link)并在技能后端处理整个短语(应为two pencil one notebook four cardbox)并提取所需的值。 / p>

但是这样,您就可以限制该类型广告位所需的载体词组(请参阅链接的文档)。

另一种解决方法可能是catch all slots(顺便说一句,不能100%地起作用),但是如上所述,您必须处理后端中的整个短语并对其进行处理。