美文网首页
ChatOps,唤醒你的原型体 Javis

ChatOps,唤醒你的原型体 Javis

作者: BearyChat倍洽 | 来源:发表于2018-03-14 18:24 被阅读0次

    我们一直在思考未来的工作方式将走向何处,最后在 ChatOps 上找到了属于这个时代的答案。有关于 ChatOps,《ChatOps的前世,今生和未来》,是我在平台上看到较为详尽的一篇介绍,这里无须再次赘述。而其解放了日复一日繁琐工作内容的同时,也带来了个性化工作方式,佐之与出乎意料的惊喜。

    试着描绘一下你所能想象到的未来景象,那里或许会有霓虹与 LED 闪烁的赛博朋克

    或许有穿梭游于楼宇之间的飞行器

    或许有全智能化的家居设备

    但必然出现的是各类呼出式的各类智能助手。在引爆漫威电影热度的经典系列钢铁侠中,Javis 是这位魅力型科技英雄的好伙伴。除了在生活中的调侃

    Javis 更是在每件机甲研发与令人肾上腺素飙升的战斗过程中的左膀右臂。

    正如预言一般的凡尔纳小说,今时今日,找到一个属于你自己的 Javis 已经不再是一个类似超级英雄一般的幻想。今天为大家介绍的就是如何创造一款 Javis 的原型机——图灵机器人。

    效果图 效果图

    接下来就让我们在最短的时间内让「Javis」诞生在倍洽之上:

    Javis

    首先你需要在倍洽上创建一个沟通团队,它是 Javis-1号-图灵的孵化平台。

    然后需要在 Turing Robot 上注册账号,拿到调用图灵机器人的 key:

    接下来我们要在 BearyChat 上设置 Outgoing 机器人,在其中设置触发词为你想要的机器人名字。真的要「Javis-1号-图灵」嘛?这个名字可不比丹妮莉丝·坦格利安的前缀简洁多少,所以我给这个机器人起了个代号——「牛萌萌」,听起来相比于 Javis 的胞妹 Friday 还要更接地气些。总之,「@ 触发词 」就可以随时调用机器人进行对话了。

    考虑到倍洽的新手村村民,你只需要按照下图,点击团队域名旁的按钮在下拉菜单中找到「机器人管理」,点击进入机器人管理面板。

    点击右上角的添加机器人

    在弹出的面板中选择「自定义机器人」即可找到 Outgoing

    接下来需要创建一个 bearychat.php 的文件:

    <?php
    /**
     * @abstract 用于转换bearychat机器人和图灵机器人之间的转换
     * @author aishan
     * @date 2015-10-26
     * Bearychat:https://bearychat.com/
     * 图灵机器人:http://www.tuling123.com
     * 由于bearychat的outgoing机器人是post指定类型数据到某处,而图灵机器人接收信息是get方式,并且图灵机器人返回的数据形式之于Bearychat机器人
     * 需要接收的返回数据类型也是有一定的出入,所以需要此文件做个中转
     */
    require_once 'curl.php';//引入curl类
    $content = file_get_contents("php://input");//读取bearychat机器人post过来的数据
    $content_arr=json_decode($content);//json转对象
    $info=urlencode(substr($content_arr->text,11));//获取传过来的内容中的text字段并截取实际内容部分,去掉触发bearychat机器人的前缀
    $key='2d6************************d52';// 图灵机器人网站获取的key
    $request_url="http://www.tuling123.com/openapi/api?key=".$key."&info=".$info;//拼接图灵机器人所需请求url
    $curl=new CURL();
    $request=$curl->vget($request_url);//发送请求
    $request=json_decode($request,1);//将请求转换成数组,由于图灵机器人的菜谱、列车等查询会涉及到返回list形式数据,而bearychat机器人默认不能处理,故将图灵机器人返回的list数据转化拼接到text中
    if(isset($request['list'])){//如果有list形式数据,则进行转换处理
        $list=$request['list'];
        $text=$request['text'].PHP_EOL;//取到text数据,开始拼接
        for($i=1;$i<=3;$i++){//在list中的数据可能会有很多,为了bearychat机器人返回数据不至于过多,将最多只取前三条数据
            if(!isset($list[$i])){
                break;
            }
            $val=$list[$i];
            $list_key=array_keys($val);
            foreach($list_key as $key_val){
                if(!in_array($key_val,array('icon'))){//由于icon图标在bearychat上无法显示,所以此处直接抛弃
                    $text.=$val[$key_val].PHP_EOL;
                }
            }
        }
    
        $request['text']=$text;//将拼接好的text数据赋值
        unset($request['list']);//丢弃list数据
    }
    
    if(isset($request['url'])){//此处是当询问图灵机器人“xxx的照片”,会返回url形式数据,也拼接到text之后
        $text=$request['text'].PHP_EOL.$request['url'];
        $request['text']=$text;
        unset($request['url']);
    }
    $request['text']=str_replace('<br>',PHP_EOL,$request['text']);//最后图灵机器人返回的text数据会以<br>作为换行,而<br>在bearychat中不被转义,所以此处要将<br>标签替换
    echo json_encode($request);
    

    在其中引入的 curl.php 文件:

    <?php
    
    class CURL
    {
        function vget($url){ // 模拟获取内容函数
            $curl = curl_init(); // 启动一个CURL会话
            curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
            curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); // 从证书中检查SSL加密算法是否存在
            curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
            curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
            curl_setopt($curl, CURLOPT_HTTPGET, 1); // 发送一个常规的Post请求
            curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
            curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
            $tmpInfo = curl_exec($curl); // 执行操作
            if (curl_errno($curl)) {
                echo 'Error'.curl_error($curl);
            }
            curl_close($curl); // 关闭CURL会话
            return $tmpInfo; // 返回数据
        }
    }
    

    最后,有关于图灵机器人的相关设置只需要在图灵机器人网站做设置就好,这样你的「Javis」就已经孵化成功了。

    我知道,我知道,不同去猜,你不出意外地也将你的机器人也命名为了 Javis,OK,那么接下来只需要说出那句经典「密语」:

    本文参考 S & J 的博客

    相关文章

      网友评论

          本文标题:ChatOps,唤醒你的原型体 Javis

          本文链接:https://www.haomeiwen.com/subject/qmnfqftx.html