基于 go-cqhttp 和 java Spring Boot 的QQ聊天机器人,支持灵活地配置多个监控群任务!
本项目采用多种设计模式,解耦监控者及回答者,可以灵活配置多个不同群聊的监控,并绑定不同类型的自动回复。
安装 go-cqhttp
1)点击go-cqhttp.exe,在当前界面选择02
2)修改config.yml,怎么修改参考已上传的config.yml,注意:
3)如果扫码登录不成功,将device.json文件中Protocol的值修改为2,再次启动即可
Java快速启动 1)修改 application.yml 配置主要包含 2 部分:
server:
port: 8080
huafeng:
bot:
port: 5700
#管理的群聊
manage-groups:
#群号
"810174486":
#进群答案
answers:
- 答案1
- 答案2
#群聊回复类型
type: default
#次数限制
limit: 5
#私聊次数限制
limit: 3
#是否保存撤回记录
is-save: true
#保存的路径
save-path: C:\Users\柒挽萦\Desktop\ppt\聊天记录
#保存的时间要使用cron表达式,要使用最好一天或者两天内,保存一次,不然如果消息太多,可能会out of memory
#cron表达式生成网站:https://cron.qqe2.com/
cron: 0 0 22 * * ?
openai:
#模型
model: gpt-4
api-key: hello-world
2)直接运行主类QqrobotDemoApplication
即可
本项目最关键的设计就是在于 解耦监听者与回答者 ,你可以监听任何群聊,并且给每个群聊绑定不同的自动回答(比如 OpenAI)。
实现关键:
定义 Answer 回答者接口,统一回答的方法 定义 Listener监听者接口,统一监听的方法,并针对消息类型的,通过 Answer 回调参数实现对监控到的消息进行自动回复
使用策略模式,根据配置生成监听者和回答者
开发
自定义监听
1)编写一个类,实现 Listener接口,并在该类上添加@Listener注解(要声明类型type)
2)实现parse()方法,对监听到的消息进行相应的处理
自定义回答
1)编写一个类,实现 answer/Answer 接口,并在该类上添加@Answer注解(根据自己需求来声明类型,默认类型为default)
2)实现createAnswer()方法,补充创建你自己的回答者
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。