ChatOps,唤醒你的原型体 Javis

我们一直在思考未来的工作方式将走向何处,最后在 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 的博客

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容

  • 本文为约稿文,谢绝约稿者之外的一切转载,违者必追究法律责任。 首发于《外滩画报》旗下微信公众号“文工团”。 开场白...
    LostAbaddon阅读 17,179评论 26 36
  • 芠芐whisky阅读 293评论 6 8
  • 在我老家的房子左边有一杂草丛生的小山坡。山坡不高,仅有两三百米,坡上除了杂草和树木就是一条只可供一人行走的狭窄小路...
    ld熊壮壮阅读 349评论 0 0
  • 六年级 王思睿 上课的时候,我...
    橘子老师阅读 396评论 1 1
  • 已经是凌晨的两点我还是醒着的,这样的生活作息已经连续一个多月了,估计很多人都跟我一样,放假就是这样的节奏才对啊...
    董咚吧啦阅读 218评论 0 0