lss233 / chatgpt-mirai-qq-bot

🚀 一键部署!真正的 AI 聊天机器人!支持ChatGPT、文心一言、讯飞星火、Bing、Bard、ChatGLM、POE,多账号,人设调教,虚拟女仆、图片渲染、语音发送 | 支持 QQ、Telegram、Discord、微信 等平台

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

cover


ChatGPT for Bot

一款支持各种主流语言模型的聊天的机器人!

» 查看使用教程 »

Github stars Docker build latest Docker Pulls License


  • Discord 一群QQ 二群QQ 三群QQ 四群QQ 五群QQ 开发群
    会发布最新的项目动态、视频教程、问题答疑和交流。 加群之前先看这里的内容能不能解决你的问题。
    如果不能解决,把遇到的问题、日志和配置文件准备好后再提问。
  • 调试群 这个群里有很多 ChatGPT QQ 机器人,不解答技术问题。
猫娘问答 生活助手 文字 RPG
image image image

⚡ 支持

  • 图片发送
  • 关键词触发回复
  • 多账号支持
  • 百度云内容审核
  • 额度限制
  • 人格设定
  • 支持 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 的用户)
  1. 找个合适的位置,写你的 config.cfg

  2. 执行以下命令,启动 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 才能运行本项目

  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

[广告] 免费 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,请一直请求,直到出现FAILEDFAILED表示回复完毕。
{"result": "FAILED", "message": ["\u6ca1\u6709\u66f4\u591a\u4e86\uff01"], "voice": [], "image": []}
  • 请注意DONEFAILED之间可能会穿插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.

💪 支持我们

如果我们这个项目对你有所帮助,请给我们一颗 ⭐️

About

🚀 一键部署!真正的 AI 聊天机器人!支持ChatGPT、文心一言、讯飞星火、Bing、Bard、ChatGLM、POE,多账号,人设调教,虚拟女仆、图片渲染、语音发送 | 支持 QQ、Telegram、Discord、微信 等平台

License:GNU Affero General Public License v3.0


Languages

Language:Python 91.1%Language:CSS 7.2%Language:HTML 1.0%Language:JavaScript 0.3%Language:Dockerfile 0.3%Language:Shell 0.1%