golang编写的机器人业务后端,bot取名为 Vio ,qq机器人的实现基于gocq提供的api,监听gocq的上报事件调用转发外部讯息并返回。
可以完成基于chatgpt聊天任务,以及一些简单的指令响应。
目前正在重构,并且开发后台管理界面!除了聊天,VioGo的目标是可以在后台分析聊天数据的奇妙bot!
如果你有想法和意见请提issue!这对我和bot都很重要! 欢迎qq加群讨论:340961300
实现平台以及实现的外部功能:
-
QQ bot
- 随机涩图
- 猎杀对决枪声语音
- 发送已撤回的消息
- 禁言抽奖
-
天然支持http请求,使用go原生net包,创建了
/post
请求的路由,可以解析post内容转发调用chatgpt。 -
配合go-cqhttp使用,用于实现qqbot,基于上报事件,调用gocq提供的api进行回复。注意参考gocq官方文档。可以调用api发送图片,随机图片api参考
在安装本bot之前你需要部署两个前置服务:gocq服务以及qsign签名服务器
- gocq可以通过官方途径部署。gocq提供了链接指定bot的qq号,本项目只提供了bot的消息处理逻辑。
- qsign服务器可以通过docker拉取,建议拉取新更新的,请使用txlib 9.x.x版本和手表协议,不然容易报错低版本。
- 更多细节可以参考我的个人博客
可fork本仓库,用git连接到指定paas平台部署,注意配置环境变量即可。
环境变量参考config/env.go
文件
clone仓库源码 需要本地go环境 打包成可执行文件
以linux为例:
set goos=linux
go build main.go
之后配置环境变量挂载指定端口即可启动
2024/5更新:目前做了一次重大项目重构,使整个项目耦合程度下降,命令通过一个commandList哈希表来控制。websocket的conn不传入业务层,而是向外不断返回一个消息体,最后交给外层的ws连接发送。整个项目更加明了易读。添加了config配置文件,统一管理环境变量的初始化。
2025/4/1更新: 重大重构,基本相当于重写了一边,完善了项目架构,考虑了扩充和ws连接并发处理。具体参考更新文档。