Fork me on GitHub

QQ机器人搭建教程

其实很早就打算写这个简易教程了,一方面对这个项目做一个总结,另一方面虽然现在网上有很多的QQ机器人教程,但其实实现起来都有一点难度,尤其是对于一些缺乏编程基础的同学。希望这个教程可以实现小白也能搭建自己的QQbot,也算是给运营小雷锋、帮帮酱的联盟热心小伙伴们的一个答复。

2018.10.1 插件并入pandolia/qqbot,第一次成为contributer。
merge

目录

  1. qqbot项目总结回顾
  2. qqbot搭建教程
    • 2.1 安装python
    • 2.2 安装qqbot
    • 2.3 配置登录
    • 2.4 搭建自动回复问题库
    • 2.5 服务器上线
  3. 参考资料
  4. 反馈
  5. 项目展望

1. qqbot项目总结回顾

这一段基本上回顾一下我做QQ机器人的过程经历,也算是一个我的QQ机器人的更新历史吧。

  • 记得最早是大一暑假在知乎上看到QQ机器人这个项目的,然后自己也找了一些网上的教程(很遗憾刚刚又Google了一下没有找到当初借鉴最多的一篇教程),其实方法也挺多的,我使用的是GitHub上的开源项目qqbot,在写作本文时已有2957 star。

大一暑假使用QQ机器人进行电视台招新宣传,搭建在QQ号电视台小V上,实现好友300+,招新群新生人数200+。 当时经常水群的同学应该都对小V印象深刻,因为通过关键词检测,小V不仅可以自动回答新生们对电视台的相关问题,还会在很多时候自动向新生宣传电视台(比如其他社团发布广告时候),甚至因为机器人社联群几度踢出小V。

当时的QQ机器人功能已经比较丰富了,并且通过接入图灵机器人API接口可以与人进行聊天对话、天气预报、成语接龙等,以及通过运行在阿里云服务器上实现24h在线。不过因为通过代码中的关键词检测,实现的插件代码显得很臃肿(很多if-else语句)。于是产生使用文件操作通过读文件操作回答问题。

  • 因为招新工作的结束以及参加一些比赛,QQ机器人搁置了很久。直到第二年夏天,在和瓜大小雷锋QQ运营小伙伴们开会时重启,希望通过QQ机器人解决人工小雷锋无法快速回复一些重复问题的问题。

于是,QQ机器人被搭载在了小雷锋QQ号上。这次我做的工作主要分为三个阶段:

  1. 将问题库存储在单独的文件中,此时只有同学们发出单独的关键词可能触发相关问题的自动回复;
  2. 基于jieba分词项目,自动提取语句中的关键词,针对询问句触发相关问题回答;
  3. 实现可以通过QQ消息添加问题库QA,并且有需要的同学可以停止小雷锋的自动回复。

小雷锋QQ号目前好友1800+,QQ机器人对快速解决同学们常见问题带来了很大帮助。目前在策划一场活动来鼓励学校同学们主动丰富小雷锋问题库,以实现无论什么问题,只要有同学遇到过,都可以通过小雷锋自动解决。


2. qqbot搭建教程

总的来说,可以概括为:安装python、安装qqbot、下载插件并运行。

  • 2.1 安装python

qqbot支持Python 2.7/3.4+ 下使用,因为我后面插件的代码使用的是python3,所以建议下载python3,具体的网上教程很多,主要是修改系统路径可能对小白有点困难,下面是随便找的一篇安装教程:
python3安装教程

  • 2.2 安装qqbot

最快捷的方法是使用pip安装:

pip install qqbot

也可以下载源码解压后cd到该目录并运行:pip install

  • 2.3 配置登录

理论上安装好之后就可以扫码登录QQ机器人了。

Win+R输入cmd打开命令行输入qqbot可以扫码登录

但是这时候还不能自动回复,需要通过插件进行自动回复。

leifeng插件下载
(如果可以的话给我点颗star支持下新人谢谢~

这个是最成熟的一版,集成了保存聊天记录、添加问题、停止自动回复、自动聊天等,但需要修改一下相关的路径,包括问题库列表、聊天记录保存路径等,代码上的是在我服务器上的路径。

如果仅仅想实现自动聊天功能也可以下载下面这个更简单的插件:

smallV自动聊天插件下载

其中,有一个key值需要从图灵机器人网站注册创建机器人获得,并填入相关位置(插件第8行)

图灵机器人网站

注册创建就不说了,跟着步骤走,最后点击你创建好的机器人,找到API中的key:

key

最后,保存文件以后,只需要编译运行这个插件文件就可以扫码登录你的QQ机器人了~

  • 2.4 搭建自动回复问题库

其实在上面的leifeng.py中已经实现,问题列表格式可以参考下面的文件:

qa.txt

这里使用的是很朴素的方法,就是通过python读写文件操作,因为一直没有很系统地学习过python,实现这个对我python文件操作学习提高很大。

  • 2.5 服务器上线

通过前面的步骤你已经可以在自己的电脑上运行QQ机器人了,但是自己的电脑一般不会24h开机,所以就需要架设到服务器上。

一般来说我们买不起服务器,租用价格对于学生过高,这里推荐阿里云的学生计划比较便宜:

阿里云服务器学生计划

具体架设过程其实与在自己电脑上架设没有什么太大区别(windows主机),Linux服务器也可以正常搭建(区别可以参照qqbot的README文档),我现在使用的就是Linux服务器,对自己学习操作系统也有帮助。


3. 参考资料

本项目参考了下列开源项目,感谢作者们的无私奉献!

pandolia/qqbot

fxsjy/jieba


4. 反馈

如果存在问题,请发邮件至:dong.jinguo@outlook.com


5. 项目展望

其实QQ机器人目前还有许多不足的地方,首先是暂时无解的webQQ停止维护而导致的一些功能丧失,和需要定期扫码登录。

接着是小雷锋机器人实际应用中的一些问题,比如说语义分析,有可能遇到题库中的问题不能正确判断,或者是误触发。目前是使用的jieba分词中的算法加上一些自己的处理,这个问题打算在以后对语义分析进一步研究时进行解决。

还有使用python读写文件的操作进行题库读取整理效率不高(或者说感觉比较low),考虑可以通过建立数据库来优化。

在进一步的项目研究中,对于调用别人的API聊天对话也产生了一点兴趣,查到了一些机器自动应答的开源项目,后期可能会尝试这个领域。

作为我的第一篇博客,还想多说两句,当初知乎看到QQ机器人的时候并没想到这么多,可能想到招新,想到妹纸(很遗憾身边的女生对它兴趣不大),但没想到可以走这么多,提高了python水平,接触了服务器,入门了GitHub,甚至为了写教程开启了我的博客学会了markdown。

其实现在很感激父母,让我有机会通过2+2走出来,脱离原来的舒适圈,对如何更好地提高自己可以有更多思考与实践。

本文写于2018年9月23日,作为对2018年8月小项目的总结。

文章作者:Jinguo Dong (董金国)

最后更新:2018年12月27日 10:12:33

原始链接:http://blog.djinguo.com/2018-09-23/qqbot/

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 3.0 许可协议,转载请注明出处!

0%