【问题标题】:Alexa Built-In Slot Type: No value being passedAlexa 内置插槽类型:未传递任何值
【发布时间】: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


    【解决方案1】:

    哎呀,我是一个巨大的该死的傻瓜。一位朋友看到了这个并让我尝试将自然语言输入到测试提示中,它现在就像一个魅力。如果有人碰巧犯了这个错误,供参考,这里是内置插槽类型参考 URL:https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/slot-type-reference#number

    【讨论】:

    • 谢谢!我遇到了同样的问题并且感到困惑,因为当 Alexa 回到错误的提示时我没有遇到这个问题,即使它得到了正确的意图。当我解决该问题时,模拟器中开始出现缺少 AMAZON.NUMBER 插槽值的问题。这绝对有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多