Skip to content

🚀 一键部署!真正的 ChatGPT QQ 聊天机器人!支持 ChatGPT Plus,对话上下文,文字转图片发送,代理加速 (部分代码由 ChatGPT 生成)

License

Notifications You must be signed in to change notification settings

lzcndm/chatgpt-mirai-qq-bot

 
 

Repository files navigation

ChatGPT Mirai QQ Bot

一款使用 OpenAI 的 ChatGPT 进行聊天的 QQ 机器人!

Github stars Docker build latest Docker Pulls Docker Image Size

2023/2/10
本项目分为网页版和API版两种模式。
网页版代表版本号为 v1.5.x 的版本; API 版代表版本号为 v1.6 的版本
具体区别见:lss233#82
当前浏览的是 API 版,点这里切换至网页版。


基于:

支持:

  • 文字转图片发送

  • 群聊回复引用

  • 关键词触发回复

  • 正向代理

  • 无需浏览器登录

  • 预设人格初始化

  • 交流群 会发布最新的项目动态。
    加群之前先看这里的内容能不能解决你的问题。
    如果不能解决,把遇到的问题、日志和配置文件准备好后再提问。

  • 调试群 这个群里有很多 ChatGPT QQ 机器人,不解答技术问题。

Preview

🔧 使用

如果你在使用的过程中遇到问题,可以看搭建常见问题解答 | FAQ

Linux: 通过快速部署脚本部署 (新人推荐)

执行下面这行命令启动自动部署脚本。
它会为你安装 Docker、 Docker Compose 和编写配置文件。

bash -c "$(curl -fsSL https://gist.githubusercontent.com/lss233/54f0f794f2157665768b1bdcbed837fd/raw/chatgpt-mirai-installer-154-16RC3.sh)"
Linux: 通过 Docker Compose 部署 (自带 Mirai)

我们使用 docker-compose.yaml 整合了 lss233/mirai-http 和本项目来实现快速部署。
但是在部署过程中仍然需要一些步骤来进行配置。

您可以移步至 Wiki 浏览配置的方案。

Linux: 通过 Docker 部署 (适合已经有 Mirai 的用户)
  1. 找个合适的位置,写你的 config.cfg

  2. 执行以下命令,启动 bot:

# 修改 /path/to/config.cfg 为你 config.cfg 的位置
# XPRA_PASSWORD=123456 中的 123456 是你的 Xpra 密码,建议修改
docker run --name mirai-chatgpt-bot \
    -e XPRA_PASSWORD=123456 \ 
    -v /path/to/config.cfg:/app/config.cfg \
    --network host \
    lss233/chatgpt-mirai-qq-bot:latest
  1. 启动后,在浏览器访问 http://你的服务器IP:14500 可以访问到登录 ChatGPT 的浏览器页面
Windows: 快速部署包 (自带 Mirai,新人推荐)

我们为 Windows 用户制作了一个快速启动包,可以在 Release 中找到。

文件名为:quickstart-windows-amd64.zip

手动部署

提示:你需要 Python >= 3.9 才能运行本项目

  1. 部署 Mirai ,安装 mirai-http-api 插件。

  2. 下载本项目:

git clone https://github.com/lss233/chatgpt-mirai-qq-bot
cd chatgpt-mirai-qq-bot
pip3 install -r requirements.txt
  1. 参照下文调整配置文件。

  2. 启动 bot.

python3 bot.py

⚙ 配置文件

参考 config.example.cfg 调整配置文件。将其复制为 config.cfg,然后修改 config.cfg

配置文件主要包含 mirai-http-api 的连接信息和 OpenAI 的登录信息。

OpenAI 注册教程: https://www.cnblogs.com/mrjade/p/16968591.html

OpenAI 配置的信息可参考 这里

[mirai]
# Mirai 相关设置

qq = 请填写机器人的 QQ 号

# 以下设置如果不懂 无需理会

api_key = "1234567890" # mirai-http-api 中的 verifyKey
http_url = "http://localhost:8080" # mirai-http-api 中的 http 回调地址
ws_url = "http://localhost:8080"# mirai-http-api 中的 ws 回调地址

[openai]
# OpenAI 相关设置
api_key = "请填写 OpenAI 的 api_key"

# 机器人情感值
temperature = 0.5

[text_to_image]
# 文字转图片
font_size = 30 # 字体大小
width = 700  # 图片宽度
font_path = "fonts/sarasa-mono-sc-regular.ttf"  # 字体
offset_x = 50  # 起始点 X
offset_y = 50 # 起始点 Y

[trigger]
# 配置机器人要如何响应,下面所有项均可选 (也就是可以直接删掉那一行)

# 符合前缀才会响应,可以自己增减
prefix = [ "",]

# 配置群里如何让机器人响应,"at" 表示需要群里 @ 机器人,"mention" 表示 @ 或
require_mention = "at"

# 重置会话的命令
reset_command = [ "重置会话",]

# 回滚会话的命令
rollback_command = [ "回滚会话",]

[response]
# 匹配指令成功但没有对话内容时发送的消息
placeholder = "您好!我是 Assistant,一个由 OpenAI 训练的大型语言模型。我不是真正的人,而是一个计算机程序,可以通过文本聊天来帮助您解决问题。如果您有任何问题,请随时告诉我,我将尽力回答。\n如果您需要重置我们的会话,请回复`重置会话`。"

# 发生错误时要发送的消息
error_format = "出现故障!如果这个问题持续出现,请和我说“重置会话” 来开启一段新的会话,或者发送 “回滚对话” 来回溯到上一条对话,你上一条说的我就当作没看见。\n{exc}"

# 是否要回复触发指令的消息
quote = true

# 发送下面那个提醒之前的等待时间
timeout = 30.0

# 超过响应时间时要发送的提醒
timeout_format = "我还在思考中,请再等一下~"

# 重置会话时发送的消息
reset = "会话已重置。"

# 回滚成功时发送的消息
rollback_success = "已回滚至上一条对话,你刚刚发的我就忘记啦!"

# 回滚失败时发送的消息
rollback_fail = "回滚失败,没有更早的记录了!"

[system]
# 是否自动同意进群邀请
accept_group_invite = false

# 是否自动同意好友请求
accept_friend_request = false

[presets]
# 切换预设的命令: 加载预设 猫娘
command = "加载预设 (\\w+)"

loaded_successful = "预设加载成功!"

[presets.keywords]
# 预设关键词 <-> 实际文件
"正常" = "presets/default.txt"
"猫娘" = "presets/catgirl.txt"

API Key 登录

截止至 2023年2月3日, OpenAI 可以通过 API Key 的方式免费使用 ChatGPT,无需浏览器、无访问限制。

你可以在这里生成 API Key。

# 前面别的东西
[openai]
api_key = "一串 sk- 开头的字符串"
# 后面别的东西

加载预设

如果你想让机器人自动带上某种聊天风格,可以使用预设功能。

我们自带了 猫娘正常 两种预设,你可以在 presets 文件夹下了解预设的写法。

使用 加载预设 猫娘 来加载猫娘预设。

你可以参考Awesome-ChatGPT-prompts-ZH_CN 来调教你的 ChatGPT。

📷 图片转文字

向 QQ 群发送消息失败时,自动将消息转为图片发送。

字体文件存放于 fonts/ 目录中。

默认使用的字体是 更纱黑体

Star History

如果你觉得本项目对你有帮助的话,欢迎点一个 Star!

Star History Chart

About

🚀 一键部署!真正的 ChatGPT QQ 聊天机器人!支持 ChatGPT Plus,对话上下文,文字转图片发送,代理加速 (部分代码由 ChatGPT 生成)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.1%
  • Other 0.9%