QQ 聊天机器人小薇发布!

原创 2016年05月30日 21:48:08

简介

XiaoV(小薇)是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动:

  • 监听多个 QQ 群消息,发现有“感兴趣”的内容时通过图灵机器人进行智能回复
  • 监听到的 QQ 群消息可以配置推送到论坛某个接口上,以实现论坛弹幕或者动态聚合效果,请看实例
  • 在论坛代码中调用小薇进行 QQ 消息推送,比如论坛有新帖时自动推送到 QQ 群
  • 加小薇为好友后可通过暗号(key)让她群发消息

总之,如果你需要一个连通 QQ 群和论坛的机器人,小薇是个不错的选择 :smirk:

作者

小薇她爸 Daniel,妈 Vanessa,其他好心人可以在这里看到。

FAQ

为什么要单独做成一个 Web 服务,而不是一个依赖 jar?

做成依赖库的话会随应用部署,从开发的角度是比较方便,但有个致命的问题是应用一般是部署在云端,而登录扫码是在本地,这样会造成 QQ 的异地登录,导致很多问题。

所以需要将小薇部署在本地,保证用手机和小薇启动后 QQ 不出现异地登录。但是这也需要解决一个问题,即需要为小薇提供“内网穿透”的能力,比如使用 ngrok,具体可参考这里

为什么会出现“发送失败,Api返回码[1202]”?

这个问题是因为 QQ 服务器判断消息有问题时的返回,具体可关注这个 issue

启动

  1. 安装好 Java 1.7+、Maven 2+
  2. Clone 本项目,并在项目根目录上执行 mvn jetty:run

这样就可以使用默认的配置文件启动小薇了。

配置

配置文件主要是 src/main/resources/xiaov.properties:

  • api.key 定义了论坛调用小薇时用于验证的口令
  • turing.api & turing.key 定义了图灵机器人的 API 地址和口令
  • qq.bot.name 定义了机器人的名字,这个主要是用于识别群消息是否“感兴趣”,比如对于群消息:“小薇,你吃过饭了吗?”包含了机器人的名字,机器人就对其进行处理
  • qq.bot.key 定义了管理 QQ(加了机器人为好友的 QQ)发过来的消息群发的口令,需要消息开头是这个口令,验证过后才会群发后面的消息内容
  • qq.bot.pushGroups 定义了群发的群名,用 , 分隔多个群
  • bot.follow.keywords 定义了监听群消息时的关键词,碰到这些词就做处理,比如对于群消息:“如何能在 3 天内精通 Java 呢?”包含了关键词 Java,机器人就对其进行处理
  • forum.api & forum.key 定义了论坛 API 地址和口令,小薇会将所有监听到的消息通过该 API 转发到论坛

API

论坛推送 QQ 群

  • 功能:小薇提供给论坛调用的 HTTP 接口,用于将论坛的内容推送到 QQ 群
  • URL:/qq
  • Method:POST
  • Body:key={api.key}&msg={msgcontent}

QQ 群推送论坛

  • 功能:由论坛提供给小薇调用的 HTTP 接口,用于将 QQ 群消息推送到论坛(这个接口是论坛实现的,这里是给出小薇的调用方式和参数)
  • URL:{forum.api}
  • Method:POST
  • Body:key={forum.key}&msg={msgcontent}&user={hexuserid}

鸣谢

小薇的诞生离不开以下开源项目/产品服务:

  • Smart QQ Java:封装了 SmartQQ(WebQQ)的 API,完成 QQ 通讯实现
  • 图灵机器人:给予了小薇抖机灵的能力….
  • Latke:简洁高效的 Java Web 框架
版权声明:欢迎加入开源技术 Q 群:242561391,让学习和分享成为一种习惯!

相关文章推荐

tf13: 简单聊天机器人

现在很多卖货公司都使用聊天机器人充当客服人员,许多科技巨头也纷纷推出各自的聊天助手,如苹果Siri、Google Now、Amazon Alexa、微软小冰等等。前不久有一个视频比较了Google ...

使用深度学习打造智能聊天机器人

本文对目前使用深度学习来构建聊天机器人的技术进行了总结和归纳。

用 TensorFlow 做个聊天机器人

转自 http://blog.csdn.net/aliceyangxi1987/article/details/71055024 上一次提到了不错的学习聊天机器人的资源,不知道...

4 机器学习实践之手写数字识别- 神经网络识别

在 初步特征选择及线性识别篇中提到机器学习算法输入数据分为原始数据,特征工程(人工选择特征)及深度学习(机器自己计算)。 在前面采用了特征工程的方案,识别率也在85%左右。 识别率不是很高,这跟特...

keras + lstm 情感分类

负面评论如下: 正面评论如下: 使用keras配合lstm效果不错。 代码:#coding:utf-8 ''' Created on 2016-12-20@author: 刘帅 ''' impo...

利用webQQ实现聊天机器人。。

模块:QQRobot.py 用法:传入QQ, 密码, 调用server()函数即可。。。 各模块的地址: webQQLogin.py:http://blog.csdn.net/qq5066573...

Select()系统调用及fd_set的应用

Select()系统调用及文件描述符集fd_set的应用湖南省衡阳市环境工程公司网络中心 张 卿 在网络程序中,一个进程同时处理多个文件描述符是很常见的...

6 机器学习实践之手写数字识别-卷积神经网络实现

感谢 以下四篇文章,让我比较深刻了解了卷积神经网络 CNN 卷积神经网络推导和实现 http://blog.csdn.net/zouxy09/article/details/9993371 c++ ...

2个聊天机器人

找了2个接口,,,用来做聊天机器人(后面应该会写一个贴吧自动回复的机器人。所以先弄下这个),,,有需要就拿去用吧。 小i机器人的。。。。 # coding=gbk import urll...

linux下tty,控制台,虚拟终端,串口,console(控制台终端)详解

首先:1。终端和控制台都不是个人电脑的概念,而是多人共用的小型中型大型计算机上的概念. 一台主机,连很多终端,终端为主机提供了人机接口,每个人都通过终端使用主机的资源. 终端有字符哑终端和图形终端两...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)