Twilio自动驾驶仪对话流程?

时间:2020-02-25 13:35:02

标签: twilio twilio-programmable-chat

我目前正在撰写有关聊天机器人调查的论文(通过代码创建,并且能够通过Facebook / Slack上的对话框收集信息)。目前,我对Twilio中的对话流程有疑问。
要简化对话:

  • 聊天机器人:嘿,您介意回答几个问题吗?
  • 化妆师:如果是,则继续提问/否,那么感谢顾客并停止对话。

    我在Twilio Autopilot上使用了示例调查机器人,但实际上并没有“ if / else”场景。如果Twilio没有它,那么还有其他适合这个的聊天机器人吗?

2 个答案:

答案 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);
    };

这样做的好处是,您可以让函数以任务中可能出现的任何内容进行响应。只要有效载荷的形式与自动驾驶仪任务相同,就可以使该函数响应问题,操作,重定向等。