😎高稳定性、🧩支持插件、🦄多模态的 ChatGPT QQ / QQ频道 / One Bot 机器人🤖 | 支持 OpenAI GPT、GPT 4o、Claude、Gemini Pro、DeepSeek、Moonshot(Kimi)、gpt4free、One API 的 QQ / QQ频道 / OneBot 机器人 / Agent 平台
Go to file
2023-01-02 13:14:50 +08:00
.github/ISSUE_TEMPLATE doc: 修改需求建议issue模板 2022-12-27 20:42:14 +08:00
pkg doc: 添加热重载相关注释 2023-01-02 13:06:48 +08:00
res doc: 添加绘图功能说明 2022-12-29 19:51:19 +08:00
tests feat: session基本功能及单测 2022-12-07 22:50:49 +08:00
.gitignore 在config.py配置主人/机器人名字 2022-12-20 23:30:54 +08:00
config-template.py feat: 管理员QQ配置检查 2023-01-02 13:11:33 +08:00
LICENSE Create LICENSE 2022-12-10 11:06:55 +08:00
main.py feat: 管理员QQ配置检查 2023-01-02 13:11:33 +08:00
README.md doc: 热重载、热更新相关文档说明 2023-01-02 13:14:50 +08:00
sensitive.json feat:支持预设指令 2022-12-12 17:21:37 +08:00

QChatGPT🤖

  • 测试号: 2196084348
  • 交流、答疑群: 204785790
    • 进群提问前请您确保已经找遍文档和issue均无法解决
    • 进群提问前请您确保已经找遍文档和issue均无法解决
    • 进群提问前请您确保已经找遍文档和issue均无法解决
  • QQ频道机器人见QQChannelChatGPT

通过调用OpenAI GPT-3模型提供的Completion API来实现一个更加智能的QQ机器人

功能

以下是功能特色,点击展开查看具体使用方法

回复符合上下文
  • 程序向模型发送近几次对话内容,模型根据上下文生成回复
  • 您可在config.py中修改process_message_timeout自定义联系上下文的范围
支持敏感词过滤,避免账号风险
  • 难以监测机器人与用户对话时的内容,故引入此功能以减少机器人风险
  • 编辑sensitive.json,并在config.py中修改sensitive_word_filter的值以开启此功能
使用官方api不需要网络代理稳定快捷
  • 不使用ChatGPT逆向接口而使用官方的Completion API稳定性高
  • 您可以在config.py中自定义completion_api_params字段设置向官方API提交的参数以自定义机器人的风格
完善的多api-key管理超额自动切换
  • 支持配置多个api-key,内部统计使用量并在超额时自动切换
  • 请在config.py中修改openai_config的值以设置api-key
  • 可以在config.py中修改api_key_usage_threshold来自定义切换阈值
  • 运行期间向机器人说!usage以查看当前使用情况
组件少部署方便提供一键安装器及Docker安装
  • 手动部署步骤少
  • 提供自动安装器及docker方式详见以下安装步骤
支持预设指令文字
  • 支持以自然语言预设文字,自定义机器人人格等信息
  • 详见config.py中的default_prompt部分
完善的会话管理,重启不丢失
  • 使用SQLite进行会话内容持久化
  • 最后一次对话一定时间后自动保存,请到config.py中修改session_expire_time的值以自定义时间
  • 运行期间可使用!reset !list !last !next !prompt等指令管理会话
支持对话、绘图等模型,可玩性更高
  • 现已支持OpenAI的对话Completion API和绘图Image API
  • 向机器人发送指令!draw <prompt>即可使用绘图模型
支持指令控制热重载、热更新
  • 允许在运行期间修改config.py或其他代码后,以管理员账号向机器人发送指令!reload进行热重载,无需重启
  • 运行期间允许以管理员账号向机器人发送指令!update进行热更新,拉取远程最新代码并执行热重载

💻技术栈

  • Mirai 高效率 QQ 机器人支持库
  • YiriMirai 一个轻量级、低耦合的基于 mirai-api-http 的 Python SDK。
  • OpenAI API OpenAI API

🧱项目结构

  • pkg.database 数据库操作相关
    • 数据库用于存放会话的历史记录,确保在程序重启后能记住对话内容
  • pkg.openai OpenAI API相关
    • 用于调用OpenAI的API生成回复内容
  • pkg.qqbot QQ机器人相关
    • 处理QQ收到的消息调用API并进行回复

🔩部署

部署过程中遇到任何问题,请先在QChatGPTqcg-installer的issue里进行搜索

注册OpenAI账号

参考以下文章

只需 1 元搞定 ChatGPT 注册
手把手教你如何注册ChatGPT超级详细

注册成功后请前往个人中心查看api_key
完成注册后,使用以下自动化或手动部署步骤

自动化部署

以下方式二选一Linux首选DockerWindows首选安装器

Docker方式

请查看此仓库mikumifa/QChatGPT-Docker-Installer

安装器方式

使用此安装器(若无法访问请到Gitee)进行部署

  • 安装器目前仅支持部分平台,请到仓库文档查看,其他平台请手动部署

手动部署

手动部署适用于所有平台
  • 请使用Python 3.9.x以上版本
  • 请注意OpenAI账号额度消耗
    • 每个账户仅有18美元免费额度如未绑定银行卡则会在超出时报错
    • OpenAI收费标准默认使用的text-davinci-003模型 0.02美元/千字

配置Mirai

按照此教程配置Mirai及YiriMirai
启动mirai-console后使用login命令登录QQ账号保持mirai-console运行状态

配置主程序

  1. 克隆此项目
git clone https://github.com/RockChinQ/QChatGPT
cd QChatGPT
  1. 安装依赖
pip3 install yiri-mirai openai colorlog func_timeout
pip3 install dulwich
  1. 运行一次主程序,生成配置文件
python3 main.py
  1. 编辑配置文件config.py

按照文件内注释填写配置信息

  1. 运行主程序
python3 main.py

无报错信息即为运行成功

常见问题

  • mirai登录提示QQ版本过低,见此issue
  • 如提示安装uvicornhypercorn不要安装这两个不是必需的目前存在未知原因bug
  • 如报错TypeError: As of 3.10, the *loop* parameter was removed from Lock() since it is no longer necessary, 请参考 此处

🚀使用

私聊使用

  1. 添加机器人QQ为好友
  2. 发送消息给机器人,机器人即会自动回复
  3. 可以通过!help查看帮助信息
私聊示例

群聊使用

  1. 将机器人拉进群
  2. at机器人并发送消息机器人即会自动回复
  3. at机器人并发送!help查看帮助信息
群聊示例 绘图功能