Alexa内置插槽类型:没有值传递

时间:2017-04-20 14:46:39

标签: javascript node.js aws-lambda alexa

我一直想知道如何让Alexa内置插槽正常工作,我觉得我必须缺少一些超级基础的东西。为了为您做好准备,我将从Developer Portal的Testing页面开始。我使用node.js 6.10。

在文本话语服务模拟器下,如果我键入"我需要5个睡眠周期"它会生成一个请求:



  "intent": {
  "name": "SleepCyclesIntent",
  "slots": {
    "number": {
      "name": "number"
    }
  }
}




结果是:"文字":"我现在知道你想要NaN睡眠周期。" 注意缺少"值"从话语中产生的字段。

然而,当我手动插入"值"在JSON请求中的字段,我得到了所需的输出!



"intent": {
      "name": "SleepCyclesIntent",
      "slots": {
        "number": {
          "name": "number",
          "value": "5"
        }
      }
    }




结果是:"文字":"我现在知道你想要5个睡眠周期。"

在我遇到这个问题之前,我已经设置了默认的意图编辑器,并且我已经切换到beta intents编辑器,希望它能解决我可能做错的事情。在那里,在" SleepCyclesIntent"发送到sleep_cycles,我有一个话语"我需要{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帮助和谷歌,我不知道还有什么地方可以转向。任何帮助都会非常感激!

1 个答案:

答案 0 :(得分:3)

啊,吉赫,我是一个巨大的'frofgin'doofus。一位朋友看到了这个,并让我尝试在测试提示中输入自然语言,现在就像一个魅力。如果有人碰巧犯了这个错误,请参考以下内置插槽类型参考网址:https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/slot-type-reference#number