扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
本篇文章为大家展示了ns4_chatbot通信组件的工作原理是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
站在用户的角度思考问题,与客户深入沟通,找到曲沃网站设计与曲沃网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计制作、网站设计、企业官网、英文网站、手机端网站、网站推广、国际域名空间、网站空间、企业邮箱。业务覆盖曲沃地区。NS4系列包括4个开源模块,分别是:ns4_frame分布式服务框架(详情点击查看:开源|ns4_frame分布式服务框架开发指南)、ns4_gear_idgen ID生成器组件(NS4框架Demo示例)(详情点击查看:开源|为什么要使用ns4_gear_idgen ID生成器?)、ns4_gear_watchdog 监控系统组件(服务守护、应用性能监控、数据采集、自动化报警系统)和ns4_chatbot通讯组件。
小编将重点介绍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消息回调。
二、全局目录结构三、实现功能接受内部系统(如监控系统)的系统调用,从而把消息推送给QQ或者微信用户。内部系统调用服务的时候,需要提供以下信息
发给哪个群组
发给这个群组中的那个用户
发送的消息
可以接受QQ、微信用户的对话,理解其意图,并且回应用户。
此项目主要针对linux系统,采用python2.7+环境进行部署说明。
4.1 依赖环境安装安装必需依赖包:取项目中的 ns4_chatbot/requirements.txt 文件,运行pip install –r requirements.txt命令
安装redis
安装mysql数据库,导入ns4_chatbot/import_data/production/ddl.sql 文件
酷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, 进入如下页面:
点击图中的链接,进入如下页面,密码为COOLQ_ACCOUNT对应的密码。
登录酷Q,输入QQ密码等。
登录成功界面。
查看日志。
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/dialogue5.2 数据库配置
在数据库biz_system_tree中定义所有可能用到的QQ群组ID和微信群组名称,如果不定义的话,可能会出现找不到对应的群组的错误。
5.3 启动在ns4_chatbot目录下面,运行nohup python Main.py进行项目的启动。 然后到配置的邮箱进行微信扫码。
六、接口调用说明发送消息接口地址【post】:https://
上述内容就是ns4_chatbot通信组件的工作原理是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联网站制作公司行业资讯频道。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流