【问题标题】:How to pass list of value to an alexa slot in an intent如何将值列表传递给意图中的alexa插槽
【发布时间】:2019-09-17 17:47:11
【问题描述】:

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

在 Alexa 构建模型中,它看起来像下面这样 我想要 {itemQuantity}{itemList}

这里 {itemQuantity} 被定义为 Amazon.number 而 {itemList} 被定义为 custom slot 可以有这组值 {pencil,notebook,eraser,卡片盒,磨刀器}。

现在,如果我说“我想要三个橡皮擦”,它工作得很好。它返回 itemQuantity 为 3 和 itemList 作为橡皮擦。

但是当我用多个值来制定意图时,“我想要两支铅笔,一个笔记本,四个卡片箱”。它返回我 itemQuantity 作为 2 和 itemValue 作为“两个铅笔一个笔记本四个卡盒”。

字符串的其余部分完全以 itemList 的形式出现。

我想以数组/列表的形式获取此输入,例如 itemQuantity = {2,1,4} itemList = {pencil,notebook,cardbox}

【问题讨论】:

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


    【解决方案1】:

    你不能以简单的方式做到这一点。

    您可以做的最简单的事情是定义如下语句:

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

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

    或者您可以使用AMAZON.SearchQueryslot (link) 并在技能的后端处理整个短语(应该是two pencil one notebook four cardbox)并提取您需要的值。

    但这样一来,您就会受到该类型插槽所需载体短语的限制(请参阅链接文档)。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-12
      • 1970-01-01
      • 1970-01-01
      • 2019-04-25
      • 2018-02-12
      • 1970-01-01
      • 2011-07-06
      • 2020-12-01
      相关资源
      最近更新 更多