😎高稳定性、🧩支持插件、🦄多模态的 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-03-09 15:52:18 +08:00
.github ci: 修改depsbot的配置 2023-02-25 16:01:18 +08:00
pkg 初步追加通过json导入messages数组的方式进行情景预设 2023-03-09 14:44:33 +08:00
plugins feat: 删除plugins/__init__.py的内容 2023-01-17 14:30:28 +08:00
res feat: 不再自带字体文件 2023-03-05 19:36:09 +08:00
scenario 初步追加通过json导入messages数组的方式进行情景预设 2023-03-09 14:44:33 +08:00
tests test: 模型-接口兼容性测试 2023-03-02 19:49:36 +08:00
.gitignore feat: 支持基于语义化版本的自动更新 2023-03-05 11:56:40 +08:00
banlist-template.py feat: 完善黑名单机制 (#191) 2023-02-27 05:57:45 +00:00
config-template.py 更新配置文件 2023-03-09 15:52:18 +08:00
CONTRIBUTING.md Create CONTRIBUTING.md 2023-03-03 19:48:55 +08:00
LICENSE Create LICENSE 2022-12-10 11:06:55 +08:00
main.py 初步追加通过json导入messages数组的方式进行情景预设 2023-03-09 14:44:33 +08:00
README.md 更新配置文件 2023-03-09 15:52:18 +08:00
requirements.txt feat: 支持基于语义化版本的自动更新 2023-03-05 11:56:40 +08:00
sensitive-template.json 初步追加通过json导入messages数组的方式进行情景预设 2023-03-09 14:44:33 +08:00

QChatGPT🤖完整情景导入版

  • 2023/3/9 初步追加通过json导入messages数组的方式进行情景预设 参考api通过该方法能注入gpt本不存在的记忆。neko.json来源于
  • 2023/3/8 fork from: RockChinQ/QChatGPT

改动一览

切换完整情景模式

  • config.py中,将preset_mode更改为full_scenario
  • 将情景json放入scenario文件夹中,使用!reload!reset <无后缀文件名>指令切换

过滤脱离人设的回复

  • config.py中将filter_ai_warning改为True

  • 在对应情景的json中添加注意,使用此过滤会使得机器人无法回复有关过滤词的内容

    "filter": {
        "reg": "我的本质|抱歉|AI助手|人工智能|语言模型|无法提供|无法回应|机器人",
        "replace": "<替换的回复>"
    },  
    

🍺模型适配一览

文字对话

  • OpenAI GPT-3.5模型(ChatGPT API), 本项目原生支持, 默认使用
  • OpenAI GPT-3模型, 本项目原生支持, 部署完成后前往config.py切换
  • ChatGPT网页版逆向API, 由插件接入

故事续写

  • NovelAI API, 由插件接入

图片绘制

语音生成

功能

支持敏感词过滤,避免账号风险
  • 难以监测机器人与用户对话时的内容,故引入此功能以减少机器人风险
  • 加入了百度云内容审核,在config.py中修改baidu_check的值,并填写baidu_api_keybaidu_secret_key以开启此功能
  • 编辑sensitive.json,并在config.py中修改sensitive_word_filter的值以开启此功能
群内多种响应规则不必at
  • 默认回复ai作为前缀或@机器人的消息
  • 详细见config.py中的response_rules字段
完善的多api-key管理超额自动切换
  • 支持配置多个api-key,内部统计使用量并在超额时自动切换
  • 请在config.py中修改openai_config的值以设置api-key
  • 可以在config.py中修改api_key_fee_threshold来自定义切换阈值
  • 运行期间向机器人说!usage以查看当前使用情况
支持预设指令文字
  • 支持以自然语言预设文字,自定义机器人人格等信息
  • 详见config.py中的default_prompt部分
  • 支持设置多个预设情景,并通过!reset、!default等指令控制详细请查看wiki指令
支持对话、绘图等模型,可玩性更高
  • 现已支持OpenAI的对话Completion API和绘图Image API
  • 向机器人发送指令!draw <prompt>即可使用绘图模型
支持指令控制热重载、热更新
  • 允许在运行期间修改config.py或其他代码后,以管理员账号向机器人发送指令!reload进行热重载,无需重启
  • 运行期间允许以管理员账号向机器人发送指令!update进行热更新,拉取远程最新代码并执行热重载
支持插件加载🧩
私聊、群聊黑名单机制
  • 支持将人或群聊加入黑名单以忽略其消息
  • 详见Wiki加入黑名单
长消息处理策略
  • 支持将长消息转换成图片或消息记录组件,避免消息刷屏
  • 请查看config.pyblob_message_strategy等字段
回复速度限制
  • 支持限制单会话内每分钟可进行的对话次数
  • 具有“等待”和“丢弃”两种策略
    • “等待”策略:在获取到回复后,等待直到此次响应时间达到对话响应时间均值
    • “丢弃”策略:此分钟内对话次数达到限制时,丢弃之后的对话
  • 详细请查看config.py中的相关配置

详情请查看Wiki功能使用页

🔩部署

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

- 注册OpenAI账号

参考以下文章自行注册

国内注册ChatGPT的方法(100%可用) 手把手教你如何注册ChatGPT超级详细

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

- 自动化部署

展开查看以下方式二选一Linux首选DockerWindows首选安装器

Docker方式

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

安装器方式

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

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

- 手动部署

手动部署适用于所有平台
  • 请使用Python 3.9.x以上版本

配置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, 请参考 此处

🚀使用

查看Wiki功能使用页

🧩插件生态

现已支持自行开发插件对功能进行扩展或自定义程序行为
详见Wiki插件使用页
开发教程见Wiki插件开发页

示例插件

tests/plugin_examples目录下,将其整个目录复制到plugins目录下即可使用

  • cmdcn - 主程序指令中文形式
  • hello_plugin - 在收到消息hello时回复相应消息
  • urlikethisijustsix - 收到冒犯性消息时回复相应消息

更多

欢迎提交新的插件

😘致谢

以及其他所有为本项目提供支持的朋友们。

👍赞赏

赞赏码