Aws lambda 如何向alexa skill动态添加插槽值
我是Alexa development的新手。我已经使用AWS lambda函数和Node.js代码成功创建了Alexa技能。这是我的意图模式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" }
{
"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似乎在询问如何获得额外的插槽值,而不是添加新的插槽或插槽类型。所以这部分是可能的,正如我在回答中所描述的。所以我很困惑,我能从我的代码中生成插槽值吗?