😎高稳定性、🧩支持插件、🦄多模态的 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
2022-12-15 18:40:21 +08:00
.github/ISSUE_TEMPLATE doc: 更新需求建议模板 2022-12-15 14:48:45 +08:00
pkg fix(session.py): 不正确的截取长度 2022-12-15 18:40:02 +08:00
res doc: 添加示例图 2022-12-08 15:13:39 +08:00
tests feat: session基本功能及单测 2022-12-07 22:50:49 +08:00
.gitignore 排除__pycache__目录 2022-12-07 22:25:43 +08:00
config-template.py feat: 支持多个api-key并支持设置文字量阈值对其进行自动切换 2022-12-15 17:52:41 +08:00
LICENSE Create LICENSE 2022-12-10 11:06:55 +08:00
main.py feat: 支持多个api-key并支持设置文字量阈值对其进行自动切换 2022-12-15 17:52:41 +08:00
README.md doc: 加上QQ频道机器人的链接 2022-12-15 13:58:59 +08:00
sensitive.json feat:支持预设指令 2022-12-12 17:21:37 +08:00

QChatGPT

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

  • 回复符合上下文
  • 支持敏感词过滤,避免账号风险
  • 使用官方api不需要网络代理稳定快捷
  • 组件少,部署方便,提供一键安装器
  • 支持预设指令文字详见config-template.py
  • 提供ChatGPT逆向接口供选择

技术栈

  • 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
完成注册后,使用以下自动化或手动部署步骤

自动化部署

使用此安装器(若无法访问请到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 pymysql yiri-mirai openai colorlog func_timeout
  1. 运行一次主程序,生成配置文件
python3 main.py
  1. 编辑配置文件config.py

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

  1. 运行主程序
python3 main.py
  • 如提示安装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查看帮助信息
群聊示例