【发布时间】:2017-04-20 23:00:44
【问题描述】:
我花了很长时间弄清楚如何让 Alexa 内置插槽正常工作,我觉得我一定错过了一些超级基本的东西。为了为您进行设置,我将从 Developer Portal 的测试页面开始。我正在使用 node.js 6.10。
在文本语音服务模拟器下,如果我输入“我需要 5 个睡眠周期”,它会生成如下请求:
"intent": {
"name": "SleepCyclesIntent",
"slots": {
"number": {
"name": "number"
}
}
}
结果是:“text”:“我现在知道你想要 NaN 睡眠周期。” 请注意,话语中缺少“值”字段。
但是,当我在 JSON 请求中手动插入“值”字段时,我得到了所需的输出!
"intent": {
"name": "SleepCyclesIntent",
"slots": {
"number": {
"name": "number",
"value": "5"
}
}
}
结果是:“text”:“我现在知道你想要 5 个睡眠周期。”
在遇到此问题之前,我已将所有内容都设置为默认意图编辑器,此后我已切换到 beta 意图编辑器,希望它能解决我可能做错的任何事情。在那里,在发送到 sleep_cycles 的“SleepCyclesIntent”下,我有一句话“我需要 {number} 个睡眠周期”,其中 [number} 是 AMAZON.NUMBER 的插槽类型。
为了更多参考,如果有帮助,这里是我在 Lambda 中的相关代码块:
function sleep_cycles(intent, session, callback) {
const cardTitle = "Sleep Cycles";
let repromptText = '';
let sessionAttributes = {};
const shouldEndSession = true;
let speechOutput = '';
let targetCycles = intent.slots.number.value;
speechOutput = "I now know that you want " + targetCycles + " sleep cycles.";
如果这是一个非常愚蠢的问题,我深表歉意,但在过去的一周里,我每天都在浏览论坛和亚马逊的 Alexa 帮助和谷歌,我只是不知道还能去哪里。任何帮助将不胜感激!
【问题讨论】:
标签: javascript node.js aws-lambda alexa