lss233/chatgpt-mirai-qq-bot
Fork: 1567 Star: 13491 (更新于 2024-12-22 16:00:15)
license: AGPL-3.0
Language: Python .
🚀 一键部署!真正的 AI 聊天机器人!支持ChatGPT、文心一言、讯飞星火、Bing、Bard、ChatGLM、POE,多账号,人设调教,虚拟女仆、图片渲染、语音发送 | 支持 QQ、Telegram、Discord、微信 等平台
最后发布版本: v3.0.0-alpha2 ( 2023-09-10 20:36:29)
ChatGPT for Bot
一款支持各种主流语言模型的聊天的机器人!
» 查看使用教程 »
-
Discord 一群、
QQ 二群、
QQ 三群、
QQ 四群、
QQ 五群、
QQ 开发群
会发布最新的项目动态、视频教程、问题答疑和交流。 加群之前先看这里的内容能不能解决你的问题。
如果不能解决,把遇到的问题、日志和配置文件准备好后再提问。 - 调试群 这个群里有很多 ChatGPT QQ 机器人,不解答技术问题。
⚡ 支持
- 图片发送
- 关键词触发回复
- 多账号支持
- 百度云内容审核
- 额度限制
- 人格设定
- 支持 Mirai、 go-cqhttp、 Telegram、Discord、微信
- 可作为 HTTP 服务端提供 Web API
- 支持 ChatGPT 网页版
- 支持 ChatGPT Plus
- 支持 ChatGPT API
- 支持 Bing 聊天
- 支持 Google bard
- 支持 poe.com 网页版
- 支持 文心一言 网页版
- 支持 ChatGLM-6B 本地版
🤖 多平台兼容
我们支持多种聊天平台。
平台 | 群聊回复 | 私聊回复 | 条件触发 | 管理员指令 | 绘图 | 语音回复 |
---|---|---|---|---|---|---|
Mirai | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
OneBot | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
Telegram | 支持 | 支持 | 部分支持 | 部分支持 | 支持 | 支持 |
Discord | 支持 | 支持 | 部分支持 | 不支持 | 支持 | 支持 |
企业微信 | 支持 | 支持 | 支持 | 不支持 | 支持 | 支持 |
个人微信 | 支持 | 支持 | 支持 | 不支持 | 支持 | 支持 |
🐎 命令
你可以在 Wiki 了解机器人的内部命令。
🔧 搭建
如果你是手机党,可以看这个纯用手机的部署教程(使用 Linux 服务器):https://www.bilibili.com/video/av949514538
AidLux: 仅使用旧安卓手机进行部署
执行下面这行命令启动自动安装脚本。bash -c "$(wget -O- https://gist.githubusercontent.com/B17w153/f77c2726c4eca4e05b488f9af58823a5/raw/4410356eba091d3259c48506fb68112e68db729b/install_bot_aidlux.sh)"
Linux: 通过快速部署脚本部署 (新人推荐)
执行下面这行命令启动自动部署脚本。 它会为你安装 Docker、 Docker Compose 和编写配置文件。bash -c "$(wget -O- https://gist.githubusercontent.com/lss233/2fdd75be3f0724739368d0dcd9d1367d/raw/62a790da4a391af096074b3355c2c2b7ecab3c28/chatgpt-mirai-installer-gocqhttp.sh)"
Linux: 通过 Docker Compose 部署 (自带 Mirai)
我们使用 `docker-compose.yaml` 整合了 [lss233/mirai-http](https://github.com/lss233/mirai-http-docker) 和本项目来实现快速部署。 但是在部署过程中仍然需要一些步骤来进行配置。你可以在 Wiki 查看搭建教程。
Linux: 通过 Docker 部署 (适合已经有 Mirai 的用户)
-
找个合适的位置,写你的
config.cfg
。 -
执行以下命令,启动 bot:
# 修改 /path/to/config.cfg 为你 config.cfg 的位置
# XPRA_PASSWORD=123456 中的 123456 是你的 Xpra 密码,建议修改
docker run --name mirai-chatgpt-bot \
-v /path/to/config.cfg:/app/config.cfg \
--network host \
lss233/chatgpt-mirai-qq-bot:browser-version
Windows: 快速部署包 (自带 Mirai/go-cqhttp,新人推荐)
我们为 Windows 用户制作了一个快速启动包,可以在 Release 中找到。
文件名为:quickstart-windows-go-cqhttp-amd64.zip
(推荐) 或者 quickstart-windows-mirai-amd64.zip
Mac: 快速部署包 (自带 Mirai,新人推荐)
Windows快速部署包Mac用户也可以使用,@magisk317 已测试通过,功能基本都正常
不过,需要注意的是,如果需要使用图片模式,由于wkhtmltoimage.exe
在Mac上无法运行,可以使用wkhtmltopdf
代替,安装命令:
brew install --cask wkhtmltopdf
brew的安装及使用方法详见:链接
手动部署
提示:你需要 Python >= 3.11 才能运行本项目
-
部署 Mirai ,安装 mirai-http-api 插件。
-
下载本项目:
git clone https://github.com/lss233/chatgpt-mirai-qq-bot
cd chatgpt-mirai-qq-bot
pip3 install -r requirements.txt
-
参照项目文档调整配置文件。
-
启动 bot.
python3 bot.py
[广告] 免费 OpenAI API Key
你可以在这里获取免费的 OpenAI API Key 测试使用。
🕸 HTTP API
在 `config.cfg` 中加入以下配置后,将额外提供 HTTP API 支持。
[http]
# 填写提供服务的端口
host = "0.0.0.0"
port = 8080
debug = false
启动后将提供以下接口:
POST /v1/chat
请求参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
session_id | 是 | String | 会话ID,默认:friend-default_session |
username | 是 | String | 用户名,默认:某人 |
message | 是 | String | 消息,不能为空 |
请求示例
{
"session_id": "friend-123456",
"username": "testuser",
"message": "ping"
}
响应格式
参数名 | 类型 | 说明 |
---|---|---|
result | String | SUCESS,DONE,FAILED |
message | String[] | 文本返回,支持多段返回 |
voice | String[] | 音频返回,支持多个音频的base64编码;参考:data:audio/mpeg;base64,,iVBORw0KGgoAAAANS... |
image | String[] | 图片返回,支持多个图片的base64编码;参考:data:image/png;base64,UhEUgAAAgAAAAIACAIA... |
响应示例
{
"result": "DONE",
"message": ["pong!"],
"voice": [],
"image": []
}
POST /v2/chat
请求参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
session_id | 是 | String | 会话ID,默认:friend-default_session |
username | 是 | String | 用户名,默认:某人 |
message | 是 | String | 消息,不能为空 |
请求示例
{
"session_id": "friend-123456",
"username": "testuser",
"message": "ping"
}
- 请注意,
session_id
请采用规范格式。其格式为friend-
(好友)或group-
(群组)加字符串
示例
friend-R6sxRvblulTZqNC
group-M3jpvxv26mKVM
如果不能正确继续是好友还是群组,将一律按照群组处理
响应格式 字符串:request_id
响应示例
1681525479905
- 请注意,返回的内容可能会带有引号。请去除引号。(包括
"
和'
)
'1681525479905'
GET /v2/chat/response
请求参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
request_id | 是 | String | 请求id,/v2/chat返回的值 |
请求示例
/v2/chat/response?request_id=1681525479905
- 请注意,request_id不能带有引号(包括
"
和'
)。 下列为错误示范
/v2/chat/response?request_id='1681525479905'
/v2/chat/response?request_id="1681525479905"
/v2/chat/response?request_id='1681525479905"
/v2/chat/response?request_id="1681525479905'
响应格式
参数名 | 类型 | 说明 |
---|---|---|
result | String | SUCESS,DONE,FAILED |
message | String[] | 文本返回,支持多段返回 |
voice | String[] | 音频返回,支持多个音频的base64编码;参考:data:audio/mpeg;base64,,iVBORw0KGgoAAAANS... |
image | String[] | 图片返回,支持多个图片的base64编码;参考:data:image/png;base64,UhEUgAAAgAAAAIACAIA... |
- 每次请求返回增量并清空。DONE、FAILED之后没有更多返回。
响应示例
{
"result": "DONE",
"message": ["pong!"],
"voice": ["data:audio/mpeg;base64,iVBORw0KGgoAAAANS..."],
"image": ["data:image/png;base64,UhEUgAAAgAAAAIACAIA...", "data:image/png;base64,UhEUgAAAgAAAAIACAIA..."]
}
- 请注意,当返回
SUCCESS
的时候表示等待
{"result": "SUCCESS", "message": [], "voice": [], "image": []}
- 请注意,可能有多条
DONE
,请一直请求,直到出现FAILED
。FAILED
表示回复完毕。
{"result": "FAILED", "message": ["\u6ca1\u6709\u66f4\u591a\u4e86\uff01"], "voice": [], "image": []}
- 请注意
DONE
和FAILED
之间可能会穿插SUCCESS
。整个回复周期可能会大于一分钟。
🦊 加载预设
如果你想让机器人自动带上某种聊天风格,可以使用预设功能。
我们自带了 猫娘
和 正常
两种预设,你可以在 presets
文件夹下了解预设的写法。
使用 加载预设 猫娘
来加载猫娘预设。
下面是一些预设的小视频,你可以看看效果:
- MOSS: https://www.bilibili.com/video/av309604568
- 丁真:https://www.bilibili.com/video/av267013053
- 小黑子:https://www.bilibili.com/video/av309604568
- 高启强:https://www.bilibili.com/video/av779555493
关于预设系统的详细教程:Wiki
你可以在 Awesome ChatGPT QQ Presets 获取由大家分享的预设。
你也可以参考 Awesome-ChatGPT-prompts-ZH_CN 来调教你的 ChatGPT,还可以参考 Awesome ChatGPT Prompts 来解锁更多技能。
📷 文字转图片
在发送代码或者向 QQ 群发送消息失败时,自动将消息转为图片发送。
字体文件存放于 fonts/
目录中。
默认使用的字体是 更纱黑体。
🎙 文字转语音
自 v2.2.5 开始,我们支持接入微软的 Azure 引擎 和 VITS 引擎,让你的机器人发送语音。
提示:在 Windows 平台上使用语音功能需要安装最新的 VC 运行库,你可以在这里下载。`
🎈 相似项目
如果你自己也有做机器人的想法,可以看看下面这些项目:
- Ariadne - 一个优雅且完备的 Python QQ 机器人框架 (主要是这个 !!!)
- mirai-api-http - 提供HTTP API供所有语言使用 mirai QQ 机器人
- Reverse Engineered ChatGPT by OpenAI - 非官方 ChatGPT Python 支持库
本项目基于以上项目开发,所以你可以给他们也点个 star !
除了我们以外,还有这些很出色的项目:
- LlmKira / Openaibot - 全平台,多模态理解的 OpenAI 机器人
- RockChinQ / QChatGPT - 基于 OpenAI 官方 API, 使用 GPT-3 的 QQ 机器人
- fuergaosi233 / wechat-chatgpt - 在微信上迅速接入 ChatGPT
🛠 贡献者名单
欢迎提出新的点子、 Pull Request。
Made with contrib.rocks.
💪 支持我们
如果我们这个项目对你有所帮助,请给我们一颗 ⭐️
最近版本更新:(数据更新于 2024-10-07 04:16:19)
2023-09-10 20:36:29 v3.0.0-alpha2
2023-08-06 20:59:27 v2.5.3
2023-06-11 01:00:56 v2.5.2
2023-05-07 03:13:49 v2.5.1
2023-04-29 04:01:44 v2.5.0
2023-04-27 03:37:40 v2.4.2.1
2023-04-21 01:29:16 v2.4.2
2023-04-18 21:40:42 v2.4.1
2023-04-17 11:08:29 v2.4.0.1
2023-04-16 14:23:07 v2.3.4.1
主题(topics):
bard, bot, chatglm-6b, chatgpt, discord, ernie, go-cqhttp, mirai, mirai-qq, new-bing, openai, poe, qq, qqbot, sydney, telegram, wechat, xinghuo
lss233/chatgpt-mirai-qq-bot同语言 Python最近更新仓库
2024-12-26 21:25:48 ultralytics/ultralytics
2024-12-26 17:11:27 princeton-vl/infinigen
2024-12-25 10:53:05 fishaudio/fish-speech
2024-12-25 00:20:24 Zipstack/unstract
2024-12-24 23:43:34 home-assistant/core
2024-12-24 21:37:31 MaxLastBreath/TOTK-mods