首页 > 解决方案 > 自动驾驶仪重定向到新任务无法正常工作

问题描述

因此,自从您不再需要构建补丁以来,我一直在这里处理 Autopilot 任务,并且我已经看到,当我进行第二次重定向到另一个任务并且该任务侦听时,它只是失败了听,它会回到它的后备任务。

我试图不在重定向等之间使用函数,我使用了直接发布到我的 Twilio 函数,但这些都不起作用。我确实有一个包含两个问题的问卷,完整的标签是重定向,这就是我的任务开始失败的地方。

 "actions": [
  {
   "say": {
    "speech": "I just have a few questions"
   }
  },
  {
   "collect": {
    "name": "questions",
    "questions": [
     {
      "question": "Is the weather nice today",
      "name": "q_1",
      "type": "Twilio.YES_NO",
     },
     {
      "question": "Do you like ice cream?",
      "name": "q_2",
      "type": "Twilio.YES_NO",
     }
    ],
    "on_complete": {
     "redirect": "MY FUNCTION LINK"
    }
   }
  }
 ]
}

然后该函数将其作为 JSON 返回:

responseObject = {
 "actions": [
  { 
   "redirect": "task://MY TASK" 
  }
 ]
};

然后任务是这样的:

{
 "actions": [
  {
   "say": "Would you like to be transfered over, or be called later?"
  },
  {
   "listen": {
    "tasks": [
     "transfer",
     "calllater"
    ]
   }
  }
 ]
}

但是被监听的任务永远不会完成,我的日志似乎调用它的任务不存在。

该任务应该转到列出的正确任务,但它只是崩溃并返回到备用任务。我必须知道为什么这不起作用,请告诉我。

标签: twiliotwilio-api

解决方案


Twilio 开发人员布道者在这里。

我刚刚接受了您发布的代码并对其进行了调整,它工作正常。让我告诉你我做了什么。

我创建了一个欢迎任务

// welcome task
{
    "actions": [
        {
            "say": {
                "speech": "I just have a few questions"
            }
        },
        {
            "collect": {
                "name": "questions",
                "questions": [
                    {
                        "question": "Do you like ice cream?",
                        "name": "q_2",
                        "type": "Twilio.YES_NO"
                    }
                ],
                "on_complete": {
                    "redirect": "https://picayune-snout.glitch.me/api/collect"
                }
            }
        }
    ]
}

此任务与您的示例类似,定义了我在 Glitch 上托管on_complete的端点。端点以如下所示的 JSON 响应。

module.exports = (req, res) => {
  res.setHeader('Content-Type', 'application/json');
  res.send(JSON.stringify(
    {
      "actions": [      
        {
            "say": {
                "speech": "Thanks for you information"
            }
        },
        { 
         "redirect": "task://continue" 
        }
      ]
    }
  ));
}

然后,我定义了与您类似的 continue 任务:

{
    "actions": [
        {
            "say": "Would you like to be transfered over, or be called later?"
        },
        {
            "listen": {
                "tasks": [
                    "transfer",
                    "calllater"
                ]
            }
        }
    ]
}

calllater并且transfer只使用say它就可以正常工作。重要的一点是您为这两个任务定义样本,以便系统可以识别它们。您还必须为自然语言路由器重建模型。

任务样本

重建模型对话框

很难说你做错了什么。:/


推荐阅读