取消意图未调用 Alexa

Posted

技术标签:

【中文标题】取消意图未调用 Alexa【英文标题】:Cancel intent not invoked Alexa 【发布时间】:2018-02-19 21:30:28 【问题描述】:

我正在编写 Alexa 技能,但遇到了 AMAZON.CancelIntent 意图问题。

如果我说“退出”或“帮助”,则会相应地调用其他意图。但是,如果我说“取消”我的自定义意图,NutriFactsIntent,就会被调用,当然会出现问题,因为插槽没有被填满。

为什么会这样?

意图架构

"intents": [

  "name": "AMAZON.CancelIntent",
  "samples": [
    "Cancel",
    "Never mind",
    "forget it"
  ]
,

  "name": "AMAZON.HelpIntent",
  "samples": [
    "Open",
    "Start",
    "what can I say",
    "help me"
  ]
,

  "name": "AMAZON.StopIntent",
  "samples": [
    "Quit",
    "Exit",
    "Leave",
    "Off",
    "Stop"
  ]
,

  "name": "NutriFactsIntent",
  "samples": [
    "give me the facts on a Food",
    "give me the facts on an Food",
    "give me the facts for a Food",
    "give me the facts for an Food",
    "give me the facts of a Food",
    "give me the facts of an Food",
    "give me the facts for Food",
    "give me the facts of Food",
    ...


捕捉意图

function onIntent(intentRequest, session, callback) 
    //console.log(`onIntent requestId=$intentRequest.requestId, sessionId=$session.sessionId`);

    const intent = intentRequest.intent;
    const intentName = intentRequest.intent.name;

    // Dispatch to your skill's intent handlers
    if (intentName === 'NutriFactsIntent') 
        getFactsFromSession(intent, session, callback);
     else if (intentName === 'AMAZON.HelpIntent') 
        getWelcomeResponse(callback);
     else if (intentName === 'AMAZON.StopIntent' || intentName === 'AMAZON.CancelIntent') 
        handleSessionEndRequest(callback);
     else 
        throw new Error('Invalid intent');
    

【问题讨论】:

你能在样本话语而不是样本中输入话语吗? 【参考方案1】:

我选择退出 Alexa 为交互模型提供的 Launch Skill Builder BETA。

我点击它进入了 BETA,然后我在经历了几个小时的痛苦之后去了仪表板并离开了 BETA。

现在一切正常。

【讨论】:

以上是关于取消意图未调用 Alexa的主要内容,如果未能解决你的问题,请参考以下文章

我们可以在alexa意图中传递alexa序列号吗?

Alexa无法识别意图

如何通过点击而不是语音触发 Alexa 意图?

从意图中获取 Alexa Slot 值

如何为 Alexa 技能意图响应获取和使用确认“是”或“否”

如何让这个alexa技能识别两个意图