我目前正在撰写有关聊天机器人调查的论文(通过代码创建,并且能够通过Facebook / Slack上的对话框收集信息)。目前,我对Twilio中的对话流程有疑问。
要简化对话:
答案 0 :(得分:0)
Twilio开发人员布道者在这里。
您可以将自动驾驶仪与Twilio Functions(我们的无服务器环境工具)结合使用。
此Node.js quickstart具有使用自动驾驶仪制作语音机器人所需的前几个步骤。
您可以有一个自动驾驶任务,然后在Twilio函数中使用条件,该任务将重定向到该位置以检查用户所说的内容。 Twilio Autopilot任务可以包含以下JSON:
if/else
然后该功能可能包括
{
"actions": [
{
"redirect": {
"uri": "https://YOUR-TWILIO-FUNCTION-URL.twil.io/actions",
"method": "POST"
}
}
]
}
让我知道这是否有帮助!
答案 1 :(得分:0)
这实际上很简单。
如@lizziepika所述,您必须利用功能。
首先,假设您要从这样的问题中收集数据: 任务示例
{
"actions": [
{
"collect": {
"name": "contact",
"questions": [
{
"question": "Are you a human?",
"name": "contact_human",
"type": "Twilio.YES_NO"
}
],
"on_complete": {
"redirect": {
"method": "POST",
"uri": "https://Your_Twilio_Function_Domain.twil.io/Function_Name"
}
}
}
}
]
}
完成后,自动驾驶仪将重定向到Twilio功能。
可以在这里找到自动导航的Twilio功能的一个很好的例子。 https://github.com/twilio/autopilot-templates/blob/master/Functions/simple_response.js
对于我们的示例,我已经对其进行了调整。
exports.handler = function(context, event, callback) {
//we get the Memory from the answered questions.
let memory = JSON.parse(event.Memory);
//set up an array of object "actions" for the autopilot to continue.
let actions = [];
let responseItem;
//get the answer from Memory
let human = Memory.twilio.collected_data.contact.answers.contact_human.answer; //Yes or No
if(human === "Yes"){
responseItem = {
"say": "ANSWER YES - You are human"
};
actions.push(responseItem);
}else{
responseItem = {
"say": "ANSWER No - You are NOT human"
};
actions.push(responseItem);
}
responseItem = {
"redirect": {
"method": "POST",
"uri": "task://next_task"
}
};
actions.push(responseItem);
let respObj = {
"actions": actions
};
callback(null, respObj);
};
这样做的好处是,您可以让函数以任务中可能出现的任何内容进行响应。只要有效载荷的形式与自动驾驶仪任务相同,就可以使该函数响应问题,操作,重定向等。