![cover](https://user-images.githubusercontent.com/117586514/230783378-34ddb86a-c8d3-47a6-baa5-86e39200b258.png)
ChatGPT for Bot
一款支持各种主流语言模型的聊天的机器人!
» 查看使用教程 »
⚡ 支持
- [x] 图片发送
- [x] 关键词触发回复
- [x] 多账号支持
- [x] 百度云内容审核
- [x] 额度限制
- [x] 人格设定
- [x] 支持 Mirai、 go-cqhttp、 Telegram、Discord、微信
- [x] 可作为 HTTP 服务端提供 Web API
- [x] 支持 ChatGPT 网页版
- [x] 支持 ChatGPT Plus
- [x] 支持 ChatGPT API
- [x] 支持 Bing 聊天
- [x] 支持 Google bard
- [x] 支持 poe.com 网页版
- [x] 支持 文心一言 网页版
- [x] 支持 ChatGLM-6B 本地版
🤖 多平台兼容
我们支持多种聊天平台。
平台 |
群聊回复 |
私聊回复 |
条件触发 |
管理员指令 |
绘图 |
语音回复 |
Mirai |
支持 |
支持 |
支持 |
支持 |
支持 |
支持 |
OneBot |
支持 |
支持 |
支持 |
支持 |
支持 |
支持 |
Telegram |
支持 |
支持 |
部分支持 |
部分支持 |
支持 |
支持 |
Discord |
支持 |
支持 |
部分支持 |
不支持 |
支持 |
支持 |
企业微信 |
支持 |
支持 |
支持 |
不支持 |
支持 |
支持 |
个人微信 |
支持 |
支持 |
支持 |
不支持 |
支持 |
支持 |
🐎 命令
你可以在 Wiki 了解机器人的内部命令。
🔧 搭建
如果你是手机党,可以看这个纯用手机的部署教程(使用 Linux 服务器):https://www.bilibili.com/video/av949514538
AidLux: 仅使用旧安卓手机进行部署
执行下面这行命令启动自动安装脚本。
```bash
bash -c "$(wget -O- https://gist.githubusercontent.com/B17w153/f77c2726c4eca4e05b488f9af58823a5/raw/4410356eba091d3259c48506fb68112e68db729b/install_bot_aidlux.sh)"
```
[部署教程](https://github.com/lss233/chatgpt-for-bot-docs/tree/main/bu-shu-jiao-cheng/kuai-su-bu-shu-jiao-cheng/linux-yi-jian-bu-shu-jiao-cheng.md)
Linux: 通过快速部署脚本部署 (新人推荐)
执行下面这行命令启动自动部署脚本。
它会为你安装 Docker、 Docker Compose 和编写配置文件。
```bash
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](https://github.com/lss233/chatgpt-mirai-qq-bot/wiki/%E4%BD%BF%E7%94%A8-Docker-Compose-%E9%83%A8%E7%BD%B2%EF%BC%88Mirai---%E6%9C%AC%E9%A1%B9%E7%9B%AE%EF%BC%89) 查看搭建教程。
Linux: 通过 Docker 部署 (适合已经有 Mirai 的用户)
1. 找个合适的位置,写你的 `config.cfg`。
2. 执行以下命令,启动 bot:
```bash
# 修改 /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](https://github.com/lss233/chatgpt-mirai-qq-bot/releases) 中找到。
文件名为:`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的安装及使用方法详见:[链接](https://brew.sh/index_zh-cn)
手动部署
提示:你需要 Python >= 3.11 才能运行本项目
1. 部署 Mirai ,安装 mirai-http-api 插件。
2. 下载本项目:
```bash
git clone https://github.com/lss233/chatgpt-mirai-qq-bot
cd chatgpt-mirai-qq-bot
pip3 install -r requirements.txt
```
3. 参照项目文档调整配置文件。
4. 启动 bot.
```bash
python3 bot.py
```
[广告] 免费 OpenAI API Key
你可以在这里获取免费的 OpenAI API Key 测试使用。
🕸 HTTP API
在 `config.cfg` 中加入以下配置后,将额外提供 HTTP API 支持。
```toml
[http]
# 填写提供服务的端口
host = "0.0.0.0"
port = 8080
debug = false
```
启动后将提供以下接口:
**POST** `/v1/chat`
**请求参数**
|参数名|必选|类型|说明|
|:---|:---|:---|:---|
|session_id| 是 | String |会话ID,默认:`friend-default_session`|
|username| 是 | String |用户名,默认:`某人`|
|message| 是 | String |消息,不能为空|
**请求示例**
```json
{
"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...|
**响应示例**
```json
{
"result": "DONE",
"message": ["pong!"],
"voice": [],
"image": []
}
```
**POST** `/v2/chat`
**请求参数**
|参数名|必选|类型|说明|
|:---|:---|:---|:---|
|session_id| 是 | String |会话ID,默认:`friend-default_session`|
|username| 是 | String |用户名,默认:`某人`|
|message| 是 | String |消息,不能为空|
**请求示例**
```json
{
"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之后没有更多返回。
**响应示例**
```json
{
"result": "DONE",
"message": ["pong!"],
"voice": ["data:audio/mpeg;base64,iVBORw0KGgoAAAANS..."],
"image": ["data:image/png;base64,UhEUgAAAgAAAAIACAIA...", "data:image/png;base64,UhEUgAAAgAAAAIACAIA..."]
}
```
* 请注意,当返回 `SUCCESS`的时候表示等待
```json
{"result": "SUCCESS", "message": [], "voice": [], "image": []}
```
* 请注意,可能有多条`DONE`,请一直请求,直到出现`FAILED`。`FAILED`表示回复完毕。
```json
{"result": "FAILED", "message": ["\u6ca1\u6709\u66f4\u591a\u4e86\uff01"], "voice": [], "image": []}
```
* 请注意`DONE`和`FAILED`之间可能会穿插`SUCCESS`。整个回复周期可能会大于一分钟。
🦊 加载预设
如果你想让机器人自动带上某种聊天风格,可以使用预设功能。
我们自带了 猫娘
和 正常
两种预设,你可以在 presets
文件夹下了解预设的写法。
使用 加载预设 猫娘
来加载猫娘预设。
下面是一些预设的小视频,你可以看看效果:
关于预设系统的详细教程:Wiki
你可以在 Awesome ChatGPT QQ Presets 获取由大家分享的预设。
你也可以参考 Awesome-ChatGPT-prompts-ZH_CN 来调教你的 ChatGPT,还可以参考 Awesome ChatGPT Prompts 来解锁更多技能。
📷 文字转图片
在发送代码或者向 QQ 群发送消息失败时,自动将消息转为图片发送。
字体文件存放于 fonts/
目录中。
默认使用的字体是 更纱黑体。
🎙 文字转语音
自 v2.2.5 开始,我们支持接入微软的 Azure 引擎 和 VITS 引擎,让你的机器人发送语音。
提示:在 Windows 平台上使用语音功能需要安装最新的 VC 运行库,你可以在这里下载。`
🎈 相似项目
如果你自己也有做机器人的想法,可以看看下面这些项目:
本项目基于以上项目开发,所以你可以给他们也点个 star !
除了我们以外,还有这些很出色的项目:
🛠 贡献者名单
欢迎提出新的点子、 Pull Request。
Made with contrib.rocks.
💪 支持我们
如果我们这个项目对你有所帮助,请给我们一颗 ⭐️