基于chatgpt开发QQ机器人原理分析
一、概述
通过调用OpenAI GPT-3模型提供的Completion API来实现一个更加智能的QQ机器人
以下是功能特色,点击展开查看具体使用方法
✅回复符合上下文 ✅支持敏感词过滤,避免账号风险 ✅使用官方api,不需要网络代理,稳定快捷 ✅完善的多api-key管理,超额自动切换 ✅组件少,部署方便,提供一键安装器及Docker安装 ✅支持预设指令文字 ✅完善的会话管理,重启不丢失
1.1 技术栈
Mirai 高效率 QQ 机器人支持库 YiriMirai 一个轻量级、低耦合的基于 mirai-api-http 的 Python SDK。 OpenAI API OpenAI API
1.2 项目结构
pkg.database 数据库操作相关 数据库用于存放会话的历史记录,确保在程序重启后能记住对话内容 pkg.openai OpenAI API相关 用于调用OpenAI的API生成回复内容 pkg.qqbot QQ机器人相关 处理QQ收到的消息,调用API并进行回复
二、开始部署
以下方式二选一,Linux首选Docker,Windows首选安装器
Docker方式 请查看此仓库mikumifa/QChatGPT-Docker-Installer
安装器方式 使用此安装器(若无法访问请到Gitee)进行部署
安装器目前仅支持部分平台,请到仓库文档查看,其他平台请手动部署
下面使用docker方式安装
git clone https://github.com/mikumifa/QChatGPT-Docker-Installer
cd QChatGPT-Docker-Installer
chmod +x loadFile.sh && ./loadFile.sh
最终效果如下,bot目录内是当前的RockChinQ/QChatGPT项目里面的内容,mirai目录内是ITXTech下载后解压到mirai里面
三、启动mirai
3.1 初始化mirai
docker-compose run --rm mirai
上面这一步,windows操作系统的可能会报错error during connect: This error may indicate that the docker daemon is not running 解决方式是CMD管理员模式DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V 等待安装,并按照提示操作登录。(第一次失败的话就,Ctrl + C退出,再重来一次)
3.2 在mirai上登录QQ
login <机器人QQ号> <机器人QQ密码>
登陆成功
3.3 自动登录
autologin add <机器人QQ号> <机器人密码>
autologin setConfig <机器人QQ号> protocol ANDROID_PAD
出现mirai登录时提示版本过低:当前QQ版本过低,请升级至最新版本后再登录。点击进入下载页面报错时候删除mirai/bots文件夹里面的数据
完成后, Ctrl + C 退出
四、编写配置文件
在bot目录下创建config.py,将config-template.py的内容复制进去,编辑config.py修改必需项
在 mirai/config/net.mamoe.mirai-api-http 文件夹中找到setting.yml,这是mirai-api-http的配置文件
将这个文件的内容修改为:
adapters:
- ws
debug: true
enableVerify: true
verifyKey: yirimirai
singleMode: false
cacheSize: 4096
adapterSettings:
ws:
host: localhost
port: 8080
reservedSyncId: -1
verifyKey要求与bot的config.py中的verifyKey相同
五、验证
5.1 启动mirai容器
docker-compose run -d mirai
此命令将在后台启动mirai容器
5.2 启动主程序容器
docker-compose run -d setup
此命令将在后台启动主程序的容器并完成配置
六、使用方法
6.1 私聊使用
- 添加机器人QQ为好友
- 发送消息给机器人,机器人即会自动回复
- 可以通过!help查看帮助信息
6.2 群聊使用
- 将机器人拉进群
- at机器人并发送消息,机器人即会自动回复
- at机器人并发送!help查看帮助信息
以上就是基于chatgpt开发QQ机器人原理分析的详细内容,更多关于chatgpt QQ机器人的资料请关注编程网其它相关文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341