【发布时间】:2019-05-06 12:45:28
【问题描述】:
我创建了一个名为 "BuyDog" 的技能,它的调用名称是 "dog app"
这应该意味着,只有在听到调用名称之后,我才能使用内部定义的意图。 (对吗?)
然后我将带有插槽的 Intent 定义为:
"what is {dog} price."
"Tell me the price of {dog}."
插槽{dog} 的插槽类型为“DogType”。我已根据需要标记此插槽
然后我将端点添加到 AWS lambda 函数中,我在 node.js 中使用了 factkills 项目的蓝图代码,并进行了一些小改动以查看其工作情况。
const GET_DOG_PRICE_MESSAGE = "Here's your pricing: ";
const data = [
'You need to pay $2000.',
'You need to pay Rs2000.',
'You need to pay $5000.',
'You need to pay INR 3000.',
];
const handlers = {
//some handlers.......................
'DogIntent': function () {
const factArr = data;
const factIndex = Math.floor(Math.random() * factArr.length);
const randomFact = factArr[factIndex];
const speechOutput = GET_DOG_PRICE_MESSAGE + randomFact;
}
//some handlers.......................
};
根据我所期待的关于代码
我说:“Alexa 开放式狗应用程序”
它应该只是准备好聆听意图“{dog} 价格是多少。” 和另一个。相反,它表示来自 node.js 代码的 data[] 数组的随机字符串。在说出 Intent 后,我期待得到这个响应,因为完成 Intent 需要插槽。
当
我说:“打开狗应用程序,告诉我 XXXX 的价格。”
它询问“哪个品种”(这是我定义的问题)但它工作正常并显示定价
任何 XXXX(即狗或非狗类型)的Alexa 说:“这是你的定价:你需要支付 5000 美元。”
(或数据数组中的其他值)。 为什么 alexa 不确认单词是否在 slot set 中?
当
我说:“打开狗吠声”。
我预计 alexa 不会理解这个问题,但它给了我一个关于吠叫的事实。 为什么?这是怎么发生的?
alexa 有一套默认的技能吗?比如搜索谷歌/亚马逊等...
我很困惑。请帮助我了解发生了什么?
【问题讨论】:
-
你能发布你的完整代码吗?我想你一定用过默认的 Fact Skill 模板
-
是的,我确实在 lambda 函数中使用了事实技能模板并进行了上述更改
-
@MaruthiAdithya 你做了多轮对话alexa技能吗?
标签: alexa alexa-skills-kit alexa-skill alexa-voice-service avspeechutterance