资讯专栏INFORMATION COLUMN

Zulip聊天机器人Python开发

ghnor / 566人阅读

摘要:最重要的一点,还提供了聊天机器人接口。所以我们希望可以通过聊天机器人的开发,把这些非技术人员需要查询的需求集成进去,然后智能解析他们发送的消息,并以友好方式自动答复数据结果。

Zulip是什么

Zulip是移动和桌面办公聊天解决方案开发商
一个强大的群组聊天软件
目前已被Dropbox收购并完全开源
(github:https://github.com/zulip/zulip)

就Zulip而言,该公司对消息的处理专注于会话,而不仅仅是基本的“聊天”。因此,消息流中包含主题和线程式回复,每个主题可以包含多个细分主题。

例如,在Zulip网站的一张截图中,“工程”消息流中可以包含“文档”、“新招聘”和“WebKit漏洞”等细分主题。

示例如下:

Zulip表示,这一功能将帮助用户更好地找到对他们有意义的会话。

其他功能还包括:

强大而快速的搜索,以及能吸引开发者兴趣的“极客”功能。如键盘快捷键、代码高亮、应用程序接口(API),以及与Trac、Nagios、GitHub和Jenkins的整合等。

并且,Zulip还提供了标准的消息/聊天应用功能集合,其中包括拖动上传文件、粘贴图片、群聊、声音通知、未收到消息的电子邮件通知,以及虚拟表情等。

最重要的一点,zulip还提供了聊天机器人接口。

一、我们用Zulip来做什么

在日常工作中,对于一些非技术的小伙伴们,由于需要查询某业务数据结果之类,只有通过攻城狮临时生成一大串数据,或者攻城狮提供调用某个API接口URL链接,直接在网页浏览器中查看数据结果。如此一来,攻城狮还要花时间教小白如何看数据。

而且,如果API接口URL中涉及用户授权认证,就容易暴露内部授权码,得不偿失了。

所以我们希望可以通过聊天机器人的开发,把这些非技术人员需要查询的需求集成进去,然后智能解析他们发送的消息,并以友好方式自动答复数据结果。

举个栗子。

如果我们需要使用岂安Red.Q(业务风险情报系统)服务查询一些手机号码或者IP地址是否有风险,并给机器人发送消息(我们约定多个数据以逗号隔离)

消息如下:

211.97.131.210,58.243.254.109,13136482589, 20160909 

查询结果:

13136482589:87.4,临时号码、收码平台、异常状态
211.97.131.210:50.6,组织出口、爬虫
58.243.254.109:81.9,vps服务器、组织出口、爬虫
其他: 
20160909:无效内容(不符合有效ip和手机号码基本格式)
二、如何实现

Zulip安装步骤这里略。
安装好并登陆zulip系统,我们先在帐号设置里添加一个机器人redq-bot@bigsec.com,系统会生成对应的API Key。

打开zulip系统url(https://zulip.local/api),系统提供了相关API的使用说明,python说明如下:

Python API
#!/usr/bin/env python
import zulip
import sys
# Keyword arguments "email" and "api_key" are not required if you are using ~/.zuliprc
client = zulip.Client(email="*********************",
                      api_key="********************",
                      site=https://zulip.local/api )
# Send a stream message
client.send_message({
    "type": "stream",
    "to": "Denmark",
    "subject": "Castle",
    "content": "Something is rotten in the state of Denmark."
})
# Send a private message
client.send_message({
    "type": "private",
    "to": "hamlet@example.com",
    "content": "I come not, friends, to steal away your hearts."
})
# Print each message the user receives
# This is a blocking call that will run forever
client.call_on_each_message(lambda msg: sys.stdout.write(str(msg) + "
"))
# Print every event relevant to the user
# This is a blocking call that will run forever
# This will never be reached unless you comment out the previous line
client.call_on_each_event(lambda msg: sys.stdout.write(str(msg) + "
"))

Red.Q案例里:

通过消息事件回调函数client.call_on_each_message(redq)解析用户发送给机器人的消息内容
返回每个匹配内容的Red.Q服务API结果:

msgsend
def msgsend(sender, msg):
      client.send_message({
                  "type": "private",
                  "to": sender,
                  "content": msg
                   })

当脚本编写完毕后,需要多带带去运行在某台服务器上,该服务器需要与zulip服务器的api接口通信,一般为443或者80端口,交互流程如下:


 
此时,在zulip的Web界面找到此机器人并发送相关消息就可以愉快地进行聊天啦。

反爬虫
文章来源:http://bigsec.com/

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/38173.html

相关文章

  • 来 DIY 个器人 - 收藏集 - 掘金

    摘要:能不能省掉这些烦琐的步骤,让开发人员自己完成呢现在好了,你可以用和把聊天机器人接入微信工具资源掘金今晚看了个电影,回得有点迟。 小花猫-网页聊天机器人 - 前端 - 掘金 基于图灵机器人API的网页聊天机器人,输入二维码+你要说的话有惊喜哦~~~(菜单中的功能尚未开发完成,玩玩聊天功能就好了~)代码开源在https://github.com/ColorfulCa... 了~... (英...

    mrli2016 评论0 收藏0
  • python玩微信(聊天器人,好友信息统计)

    摘要:用实现微信好友性别及位置信息统计这里使用的库开发。使用图灵机器人自动与指定好友聊天让室友帮忙测试发现发送表情发送文字还能回应,但是发送图片可能不会回复,猜应该是我们申请的图灵机器人是最初级的没有加图片识别功能。 1.用 Python 实现微信好友性别及位置信息统计 这里使用的python3+wxpy库+Anaconda(Spyder)开发。如果你想对wxpy有更深的了解请查看:wxpy...

    Youngs 评论0 收藏0
  • 超赞!快来用Python的搭建你的AI老婆吧!

    摘要:夏天太热,又不想出门,就让我们用的来搭建属于自己的可以对话的老婆吧本文拟使用的开发语言实现类似于的平台的小娜,或者是下的的。 夏天太热,又不想出门,就让我们用的Python来搭建属于自己的〜可以对话的AI老婆吧〜   本文拟使用Python的开发语言实现类似于的WIndows平台的小娜,或者是IOS下的Siri的。最终达到人机对话的效果。 showImg(https://segment...

    Tychio 评论0 收藏0
  • 微信公号DIY:一小时搭建微信聊天器人

    摘要:最近借用了女朋友的公号,感觉如果只是用来发文章,太浪费微信给提供的这些功能了。想了想,先从最简单的开始,做一个聊天机器人吧。是一款接口的,基于一系列规则和机器学习算法完成的聊天机器人。 最近借用了女朋友的公号,感觉如果只是用来发文章,太浪费微信给提供的这些功能了。想了想,先从最简单的开始,做一个聊天机器人吧。 使用Python实现聊天机器人的方案有多种:AIML、chatterBot以...

    source 评论0 收藏0
  • 【翻译】用AIML实现的Python人工智能聊天器人

    摘要:前言用的包很容易就能写一个人工智能聊天机器人。他开发了一个叫的机器人并且赢了几个人工智能的奖项。这条在它收到一个以开始的消息时会随机回复。那也有一个可以让你玩点的机器人。机器人需要变活。这就要靠机器人大脑文件了。看下节写命令给机器人。 前言 用python的AIML包很容易就能写一个人工智能聊天机器人。 AIML是Artificial Intelligence Markup Langu...

    seasonley 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<