Aws lambda 如何向alexa skill动态添加插槽值

Aws lambda 如何向alexa skill动态添加插槽值,aws-lambda,alexa,alexa-skills-kit,alexa-skill,alexa-slot,Aws Lambda,Alexa,Alexa Skills Kit,Alexa Skill,Alexa Slot,我是Alexa development的新手。我已经使用AWS lambda函数和Node.js代码成功创建了Alexa技能。这是我的意图模式 { "intents": [ { "slots": [ { "name": "locationName", "type": "LOCATION_LIST" } ], "intent": "locationIntent" }

我是Alexa development的新手。我已经使用AWS lambda函数和Node.js代码成功创建了Alexa技能。这是我的意图模式

{
  "intents": [
    {
      "slots": [
        {
          "name": "locationName",
          "type": "LOCATION_LIST"
        }
      ],
      "intent": "locationIntent"
    }
  ]
}
我还使用了自定义插槽类型“LOCATION\u LIST”和以下值

kitchen
bedroom
bathroom
dining area
很好用。但是我需要从我自己的服务中动态添加更多的位置值。可能吗


基于我的系统架构,我们无法预定义位置名称。那我该怎么办呢?

不,您不能动态添加插槽。也许答案很短,但这是事实

Amazon也没有符合您需求的默认插槽。如果是其他地方,如城市,则有内置插槽,如“AMAZON.city”。这里唯一可能的方法是在自定义插槽中添加尽可能多的位置。自定义插槽中最多可以有50000个插槽值(交互模型中使用的所有自定义插槽的总和)


是的,可能会实现您的要求

首先,让我们弄清楚插槽是如何工作的。如Alexa博客文章所述:

“创建自定义插槽类型时,需要了解的一个关键概念是,这是Alexa的NLP(自然语言处理)的培训数据。您提供的值不是限制用户说话的严格枚举或数组。这有两个含义:1)不在插槽中的单词和短语值将传递给您;2)如果所说的内容未知,则代码需要执行所需的任何验证。”

这意味着您可以在插槽定义中未明确列出的插槽中接收单词。因此,您只需要在插槽列表中提供足够的单词示例来帮助Alexa NLP引擎


我建议您对当前的实现进行实验,并尝试替换其他位置,看看Alexa是否能够识别并返回它。尝试将插槽值写入日志,然后查看。您可能会感到惊喜。

虽然@Vijayanath在撰写本文时是正确的,但现在的答案是:是的,这是可能的。这是一个最近才添加的新功能(似乎是2019年3月左右)。你可以在博客上了解它。并查找开发人员文档。这很好地概括了这一点:

新的动态实体功能可帮助您个性化Alexa技能 通过在运行时调整交互模型而无需 编辑、生成或重新认证。现在你的技能可以应付了 通过更新现有客户、上下文和会话更改 代码、数据库或数据库中数据结构的插槽值 RESTful API调用


您认为不能动态添加新插槽是正确的。但Abdul似乎在询问如何获得额外的插槽值,而不是添加新的插槽或插槽类型。所以这部分是可能的,正如我在回答中所描述的。所以我很困惑,我能从我的代码中生成插槽值吗?