开源|ns4_chatbot通信组件的工作原理

栏目: 软件资讯 · 发布时间: 6年前

内容简介:项目开源地址:https://github.com/newsettle/ns4_chatbot

导语:宜信于2019年3月29日正式开源nextsystem4(以下简称“NS4”)系列模块。此次开源的NS4系列模块是围绕当前支付系统笨重、代码耦合度高、维护成本高而产生的分布式业务系统解决方案。NS4系列框架允许创建复杂的流程/业务流,对于业务服务节点的实现可串联,可分布式。其精简、轻量,实现了“脱容器”(不依赖tomcat、jetty等容器)独立运行。NS4系列框架的设计理念是将业务和逻辑进行分离,开发人员只需通过简单的配置和业务实现就可以实现逻辑复杂、性能高效、功能稳定的业务系统。 点击查看框架整体介绍

NS4系列包括4个开源模块,分别是:ns4_frame分布式服务框架 (详情点击查看:开源|ns4_frame分布式服务框架开发指南) 、ns4_gear_idgen ID生成器组件(NS4框架Demo示例) (详情点击查看:开源|为什么要使用ns4_gear_idgen ID生成器?) 、ns4_gear_watchdog 监控系统组件(服务守护、应用性能监控、数据采集、自动化报警系统)和ns4_chatbot通讯组件。 本文将重点介绍ns4_chatbot通讯组件的工作原理。

项目开源地址:https://github.com/newsettle/ns4_chatbot

一、项目简介

ns4_chatbot是针对业务的一个聊天机器人的聊天框架,集成了qqbot、wxchat、rasa以及web服务。提供微信和QQ聊天接口,可以对某个群组发送系统监控消息等。QQ和微信聊天机器人都无法直接发消息给群组中的非好友用户,只能通过@的的方式提醒。 

微信聊天机器人

使用的是开源的 wxpy  机器人框架。使用@register这种python wapper机制来绑定消息响应函数。微信机器人需要对群组进行注册才能对消息进行发送。

QQ聊天机器人

采用酷Q方案。酷Q是windows下的一个程序,可以模拟QQ。在 linux 系统中,采用wine技术。需要单独部署成为一个docker,然后通过一个http的接口暴露,各类http接口,用来让我们发送消息。提供http消息回调。 

二、全局目录结构

开源|ns4_chatbot通信组件的工作原理

三、实现功能

  • 接受内部系统(如监控系统)的系统调用,从而把消息推送给QQ或者微信用户。内部系统调用服务的时候,需要提供以下信息

    • 发给哪个群组

    • 发给这个群组中的那个用户

    • 发送的消息 

  • 可以接受QQ、微信用户的对话,理解其意图,并且回应用户。

四、项目部署&安装

此项目主要针对linux系统,采用 python 2.7+环境进行部署说明。 

4.1 依赖环境安装

  • 安装必需依赖包:取项目中的 ns4_chatbot/requirements.txt 文件,运行pip install –r requirements.txt命令 

  • 安装redis

  • 安装 mysql 数据库,导入ns4_chatbot/import_data/production/ddl.sql 文件 

4.2 酷Q聊天机器人安装

酷Q目前可以在Wine中运行,见酷Q Air / Pro on Wine,因此也就自然而然有了相应的 Docker 镜像coolq/wine-coolq。 要在Docker中使用本插件,可以使用酷Q官方的Docker镜像,然后在其中安装本插件(下载cpk、编辑配置文件、启用插件),也可以使用维护的已安装并启用了插件的镜像 richardchien/cqhttp(基于酷Q官方的镜像修改)。

下面介绍这个镜像的用法。

  • docker 安装

sudo apt-get install -y docker.io

  • 酷Q安装 

$ docker pull richardchien/cqhttp:latest $ mkdir coolq
# 用于存储酷 Q 的程序文件
$ docker run -ti --rm --name cqhttp-test \
# 将宿主目录挂载到容器内用于持久化酷 Q 的程序文件
-v $(pwd)/coolq:/home/user/coolq \
-p 9000:9000 \ # noVNC 端口,用于从浏览器控制酷 Q
-p 5700:5700 \ # HTTP API 插件开放的端口
-e COOLQ_ACCOUNT=123456 \ # 要登录的 QQ 账号,可选但建议填
-e CQHTTP_POST_URL=http://example.com:8080 \ # 事件上报地址
# 允许通过 HTTP 接口访问酷 Q 数据文件 -e CQHTTP_SERVE_DATA_FILES=yes \ richardchien/cqhttp:latest
  • 配置酷Q回调地址: 

在/coolq/app/io.github.richardchien.coolqhttpapi/config/.ini 中添加 post_url=http://[IP]:8080/coolq_callback
  • 酷Q启动: 在浏览器中输入 http://[ip]:5700, 进入如下页面: 

开源|ns4_chatbot通信组件的工作原理

点击图中的链接,进入如下页面,密码为COOLQ_ACCOUNT对应的密码。

开源|ns4_chatbot通信组件的工作原理

登录酷Q,输入QQ密码等。 

开源|ns4_chatbot通信组件的工作原理

登录成功界面。

开源|ns4_chatbot通信组件的工作原理

查看日志。

开源|ns4_chatbot通信组件的工作原理

五、项目配置&启动

5.1 配置 bot.conf 文件

bot=wechat,qq #启动微信和QQ功能
bot_chat_base_inteval=1 #设置消息的最少发送间隔,防止微信和QQ被封 bot_chat_interval=3 #在bot_chat_base_inteval的基础上随机停顿的时间 retry_max_num=10 #微信或者QQ掉线后尝试重新登录的次数
retry_interval = 60 #尝试重新登录的时间间隔
retry_sleep=600 #尝试10次后,没有登录成功,就彻底休息10分钟
debug = True #是否打开调试日志
[admin] email #微信二维码和错误日志发送的邮箱地址,支持多个邮箱,多个邮箱
地址以逗号隔开
[email]模块 #配置发送邮箱的用户名密码等,注意,此邮箱需要开通 smtp 协议 [http]模块
port=8080 #配置http服务监听地址端口
[db] 模块 #配置数据库的用户名、密码等相关信息 [redis]模块 #配置 redis 的ip、端口和密码等信息 [wxbot]模块
console_qr = True #是否在日志窗口打印微信登录二维码
cache_path = .cache #缓存地址,存放系统产生的图片,二维码等信息 cache_file = wxpy.pkl #存放微信记住密码等文件
qr_path = .cache/qr.png #存放微信二维码
[coolq]模块 #配置酷Q相关的信息 url=http://127.0.0.1:5700/ #配置登录酷 Q 的地址
qq=12345678 #配置酷Q的登录账号
cache_path = [workspace]/coolqdata/image #配置酷 Q 的图片位置,必须配 置到 coolq 的运行目录的 data/image,这样 CQ 码发送的时候图片的时候才能生效
[voice2txt] # #科大讯飞|百度的声音转文本配置 [rasa]
#NLU 自然语言意图识别模型
nlu_model = rasa/model/default/latest #对话模型
dialog_model = rasa/model/dialogue

5.2 数据库配置

在数据库biz_system_tree中定义所有可能用到的QQ群组ID和微信群组名称,如果不定义的话,可能会出现找不到对应的群组的错误。

5.3 启动

在ns4_chatbot目录下面,运行nohup python Main.py进行项目的启动。 然后到配置的邮箱进行微信扫码。

六、接口调用说明

发送消息接口地址【post】:https://:/chat 请求参数: 图

开源|ns4_chatbot通信组件的工作原理

:star:️ :star:️:star:️ 欢迎加入“ 宜信开源技术交流群 ”,跟开源团队直接交流。进群方式:请加小助手微信( 微信号:creditease_tech )回复:“ 开源 ”。

◆  ◆  ◆  ◆ 

如需转载请与小助手 (微信号: creditease_tech)联系。 发现文章有错误、对内容有疑问,都可以通过关注宜信技术学院微信公众号( CE_TECH ),在后台留言给我们。我们每周会挑选出一位热心小伙伴,送上一份精美的小礼品。快来扫码关注我们吧!

开源|ns4_chatbot通信组件的工作原理


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Beginning Google Maps API 3

Beginning Google Maps API 3

Gabriel Svennerberg / Apress / 2010-07-27 / $39.99

This book is about the next generation of the Google Maps API. It will provide the reader with the skills and knowledge necessary to incorporate Google Maps v3 on web pages in both desktop and mobile ......一起来看看 《Beginning Google Maps API 3》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具