😎高稳定性、🧩支持插件、🦄多模态的 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
Rock Chin 83d731b599
Merge pull request #14 from RockChinQ/sqlite
使用SQLite替换MySQL作为数据库 #13
2022-12-11 14:02:42 +08:00
pkg feat: 使用SQLite作为数据库 2022-12-11 13:58:47 +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: 使用SQLite作为数据库 2022-12-11 13:58:47 +08:00
LICENSE Create LICENSE 2022-12-10 11:06:55 +08:00
main.py feat: 使用SQLite作为数据库 2022-12-11 13:58:47 +08:00
README.md doc(README.md): 更新数据库相关内容 2022-12-11 14:00:36 +08:00

QChatGPT

通过调用OpenAI GPT-3模型提供的Completion API来实现一个更加智能的QQ机器人
使用SQLite储存会话内容保证回复内容符合上下文
已部署的测试机器人QQ: 960164003
交流群、答疑群: 204785790
无需云服务器,在个人电脑上即可部署

技术栈

  • 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并进行回复

部署

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

1. 注册OpenAI账号并取得api_key

参考以下文章

注册成功后请前往个人中心查看api_key

2. 配置Mirai

按照此教程配置Mirai及YiriMirai

3. 配置主程序

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

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

  1. 初始化数据库
python3 main.py init_db
  1. 运行主程序
  • 如提示安装uvicornhypercorn不要安装这两个不是必需的目前存在未知原因bug
python3 main.py
  • 如报错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查看帮助信息
群聊示例