我是Alexa开发的新手。我已经使用AWS lambda函数和Node.js代码成功创建了Alexa技能。这是我的意图模式。
{
"intents": [
{
"slots": [
{
"name": "locationName",
"type": "LOCATION_LIST"
}
],
"intent": "locationIntent"
}
]
}
我还使用了具有以下值的自定义插槽类型“ LOCATION_LIST”。
kitchen
bedroom
bathroom
dining area
一切正常。但是我需要从我自己的服务中动态添加更多位置值。可能吗?
根据我的系统架构,我们无法预定义位置名称。那我该怎么办?
最佳答案
是的,有可能完成您的要求。
首先,让我们澄清一下插槽的工作方式。如this Alexa博客文章中所述:
“当您创建自定义插槽类型时,要理解的一个关键概念是这是Alexa NLP(自然语言处理)的训练数据。您提供的值不是严格的枚举或数组,它限制了用户可以说的内容。有两个含义:1)不在您的广告位值中的单词和短语将被传递给您; 2)如果您所说的内容未知,则您的代码需要执行所需的任何验证。”
这意味着您可以在未在SLOT定义中明确列出的插槽中接收单词。因此,您只需要在SLOT列表中提供足够的单词示例即可帮助Alexa NLP引擎。
我建议您尝试一下当前的实现,然后尝试替换其他位置,看看Alexa是否可以识别并返回它。尝试将插槽值写入日志并查看。您可能会感到惊喜。
关于aws-lambda - 如何为Alexa技能动态添加广告位值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46827106/