Loading...
ChatGPT 应用机器人类开源技术
🤖 可 DIY 的 多模态 AI 聊天机器人 | 🚀 快速接入 微信、 QQ、Telegram、等聊天平台 | 🦈支持DeepSeek、Grok、Claude、Ollama、Gemini、OpenAI | 工作流系统、网页搜索、AI画图、人设调教、虚拟女仆、语音对话 |
免责声明:本站大资源来自网络收集整理,小部分资源来自原创,如有侵权等,请联系处理。
交流群 会发布最新的项目动态。
加群之前先看这里的内容能不能解决你的问题。
如果不能解决,把遇到的问题、日志和配置文件准备好后再提问。
调试群 这个群里有很多 ChatGPT QQ 机器人,不解答技术问题。
🔧 使用
Linux: 通过快速部署脚本部署 (新人推荐)
执行下面这行命令启动自动部署脚本。
它会为你安装 Docker、 Docker Compose 和编写配置文件。
bash
1bash -c "$(curl -fsSL https://gist.githubusercontent.com/lss233/6f1af9510f47409e0d05276a3af816df/raw/chatgpt-mirai-installer.sh)"
Linux: 通过 Docker Compose 部署 (自带 Mirai)
我们使用 docker-compose.yaml 整合了 lss233/mirai-http 和本项目来实现快速部署。
但是在部署过程中仍然需要一些步骤来进行配置。
你可以在 Wiki 查看搭建教程。
Linux: 通过 Docker 部署 (适合已经有 Mirai 的用户)
-
找个合适的位置,写你的 config.cfg。
-
执行以下命令,启动 bot:
bash
1# 修改 /path/to/config.cfg 为你 config.cfg 的位置
2# XPRA_PASSWORD=123456 中的 123456 是你的 Xpra 密码,建议修改
3docker run --name mirai-chatgpt-bot \
4 -e XPRA_PASSWORD=123456 \
5 -v /path/to/config.cfg:/app/config.cfg \
6 --network host \
7 lss233/chatgpt-mirai-qq-bot:latest
- 启动后,在浏览器访问
http://你的服务器IP:14500 可以访问到登录 ChatGPT 的浏览器页面
Windows: 快速部署包 (自带 Mirai,新人推荐)
我们为 Windows 用户制作了一个快速启动包,可以在 Release 中找到。
文件名为:quickstart-windows-amd64.zip 或者 Windows快速部署包.zip
Linux: 手动部署
提示:你需要 Python >= 3.9 才能运行本项目
-
部署 Mirai ,安装 mirai-http-api 插件。
-
下载本项目:
bash
1git clone https://github.com/lss233/chatgpt-mirai-qq-bot
2cd chatgpt-mirai-qq-bot
3pip3 install -r requirements.txt
-
参照下文调整配置文件。
-
启动 bot.
⚙ 配置文件
参考 config.example.cfg 调整配置文件。将其复制为 config.cfg,然后修改 config.cfg。
配置文件主要包含 mirai-http-api 的连接信息和 OpenAI 的登录信息。
properties
1[mirai]
2# Mirai 相关设置
3
4qq = 请填写机器人的 QQ 号
5
6# 以下设置如果不懂 无需理会
7
8api_key = "1234567890" # mirai-http-api 中的 verifyKey
9http_url = "http://localhost:8080" # mirai-http-api 中的 http 回调地址
10ws_url = "http://localhost:8080"# mirai-http-api 中的 ws 回调地址
11
12[openai]
13# OpenAI 相关设置
14
15# 第 1 个 OpenAI 账号的登录信息
16[[openai.accounts]]
17# 模式选择,详情见下方 README
18mode = "browser"
19
20# 你的 OpenAI 邮箱
21email = "xxxx"
22# 你的 OpenAI 密码
23password = "xxx"
24
25# 对于通过 Google 登录或者微软登录的同学,可以使用 session_token 登录
26# 此时的 password 可以直接删除 (email 必填)
27# session_token = "一串 ey 开头的东西"
28
29# 你的 OpenAI access_token,登录后访问`https://chat.openai.com/api/auth/session`获取
30# access_token = "一串 ey 开头的东西"
31
32# 如果你在国内,需要配置代理
33# proxy="http://127.0.0.1:1080"
34
35# 使用 ChatGPT Plus(plus 用户此项设置为 true)
36paid = false
37
38# 以下是多账号的设置
39# 如果你想同时使用多个账号进行负载均衡,就删掉前面的注释
40
41# # 第 2 个 OpenAI 账号的登录信息
42# [[openai.accounts]]
43# 模式选择,详情见下方 README
44# mode = "browser"
45
46# # 你的 OpenAI 邮箱
47# email = "xxxx"
48# # 你的 OpenAI 密码
49# password = "xxx"
50
51# # 对于通过 Google 登录或者微软登录的同学,可以使用 session_token 登录
52# # 此时 email 和 password 可以直接删除
53# # session_token = "一串 ey 开头的东西"
54
55# # 如果你在国内,需要配置代理
56# # proxy="http://127.0.0.1:1080"
57
58# # 使用 ChatGPT Plus(plus 用户此项设置为 true)
59# paid = false
60
61# # 第 3 个 OpenAI 账号的登录信息
62# [[openai.accounts]]
63# 模式选择,详情见下方 README
64# mode = "browser"
65
66# # 你的 OpenAI 邮箱
67# email = "xxxx"
68# # 你的 OpenAI 密码
69# password = "xxx"
70
71# # 对于通过 Google 登录或者微软登录的同学,可以使用 session_token 登录
72# # 此时 email 和 password 可以直接删除
73# # session_token = "一串 ey 开头的东西"
74
75# # 如果你在国内,需要配置代理
76# # proxy="http://127.0.0.1:1080"
77
78# # 使用 ChatGPT Plus(plus 用户此项设置为 true)
79# paid = false
80
81[text_to_image]
82# 文字转图片
83font_size = 30 # 字体大小
84width = 700 # 图片宽度
85font_path = "fonts/sarasa-mono-sc-regular.ttf" # 字体
86offset_x = 50 # 起始点 X
87offset_y = 50 # 起始点 Y
88
89[trigger]
90# 配置机器人要如何响应,下面所有项均可选 (也就是可以直接删掉那一行)
91
92# 符合前缀才会响应,可以自己增减
93prefix = [ "",]
94
95# 配置群里如何让机器人响应,"at" 表示需要群里 @ 机器人,"mention" 表示 @ 或
96require_mention = "at"
97
98# 重置会话的命令
99reset_command = [ "重置会话",]
100
101# 回滚会话的命令
102rollback_command = [ "回滚会话",]
103
104[response]
105# 匹配指令成功但没有对话内容时发送的消息
106placeholder = "您好!我是 Assistant,一个由 OpenAI 训练的大型语言模型。我不是真正的人,而是一个计算机程序,可以通过文本聊天来帮助您解决问题。如果您有任何问题,请随时告诉我,我将尽力回答。\n如果您需要重置我们的会话,请回复`重置会话`。"
107
108# 发生错误时要发送的消息
109error_format = "出现故障!如果这个问题持续出现,请和我说“重置会话” 来开启一段新的会话,或者发送 “回滚对话” 来回溯到上一条对话,你上一条说的我就当作没看见。\n{exc}"
110
111# 是否要回复触发指令的消息
112quote = true
113
114# 发送下面那个提醒之前的等待时间
115timeout = 30.0
116
117# 超过响应时间时要发送的提醒
118timeout_format = "我还在思考中,请再等一下~"
119
120# 重置会话时发送的消息
121reset = "会话已重置。"
122
123# 回滚成功时发送的消息
124rollback_success = "已回滚至上一条对话,你刚刚发的我就忘记啦!"
125
126# 回滚失败时发送的消息
127rollback_fail = "回滚失败,没有更早的记录了!"
128
129# 服务器提示 429 错误时的回复
130request_too_fast = "当前正在处理的请求太多了,请稍等一会再发吧!"
131
132# 等待处理的消息的最大数量,如果要关闭此功能,设置为 0
133max_queue_size = 10
134
135# 队列满时的提示
136queue_full = "抱歉!我现在要回复的人有点多,暂时没有办法接收新的消息了,请过会儿再给我发吧!"
137
138# 新消息加入队列会发送通知的长度最小值
139queued_notice_size = 3
140
141# 新消息进入队列时,发送的通知。 queue_size 是当前排队的消息数
142queued_notice = "消息已收到!当前我还有{queue_size}条消息要回复,请您稍等。"
143
144[system]
145# 是否自动同意进群邀请
146accept_group_invite = false
147
148# 是否自动同意好友请求
149accept_friend_request = false
150
151[presets]
152# 切换预设的命令: 加载预设 猫娘
153command = "加载预设 (\\w+)"
154
155loaded_successful = "预设加载成功!"
156
157[presets.keywords]
158# 预设关键词 <-> 实际文件
159"正常" = "presets/default.txt"
160"猫娘" = "presets/catgirl.txt"
多账号支持
你可以登录多个不同的 OpenAI 账号,当机器人开始产生新对话时,我们会从你登录的账号中选择一个来使用 ChatGPT 和用户聊天。
一个对话会绑定在一个号上,所以你不必担心丢失上下文的问题。
properties
1[openai]
2# OpenAI 相关设置
3
4# 第 1 个 OpenAI 账号的登录信息
5[[openai.accounts]]
6# 里面是一些设置
7
8# 第 2 个 OpenAI 账号的登录信息
9[[openai.accounts]]
10# 里面是一些设置
11
12# 第 3 个 OpenAI 账号的登录信息
13[[openai.accounts]]
14# 里面是一些设置
模式选择
现在我们支持多种方式访问 OpenAI 服务器, 你可以在配置文件中选择所使用的模式。
properties
1[openai]
2# OpenAI 相关设置
3
4# 第 N 个 OpenAI 账号的登录信息
5[[openai.accounts]]
6# 前面别的东西
7
8# 模式选择
9mode = "browser"
10
11# 后面别的东西
- browser - 浏览器登录。该模式会在你的电脑上启动一个 Chrome 浏览器来登录并验证 OpenAI
- browserless - 无浏览器模式。该模式将你的账号信息发送到第三方服务器进行认证,从而不需要浏览器。
邮箱密码登录
当你使用这种方式登录时,我们会自动打开一个浏览器页面完成 OpenAI 的登录。
我们会自动点击页面中的 Log in 按钮、为您填写 email,并完成登录。
properties
1# 前面别的东西
2[openai]
3# OpenAI 相关设置
4
5# 第 N 个 OpenAI 账号的登录信息
6[[openai.accounts]]
7# 你的 OpenAI 邮箱
8email = "xxxx"
9# 你的 OpenAI 密码
10password = "xxx"
11# 后面别的东西
session_token 登录
对于通过 Google 登录或者微软登录的同学,可以使用 session_token 方式进行登录。
需要注意的是,session_token 过期比较频繁,过期后需要重新设置。
properties
1# 前面别的东西
2[openai]
3# OpenAI 相关设置
4
5# 第 N 个 OpenAI 账号的登录信息
6[[openai.accounts]]
7
8session_token = "一串 ey 开头的东西"
access_token 登录
json
1{
2 "user": {
3 "id": "user-*****",
4 "name": "***",
5 "email": "***",
6 "image": "***",
7 "picture": "***",
8 "groups": []
9 },
10 "expires": "2023-03-18T09:11:03.546Z",
11 "accessToken": "eyJhbGciOiJS*****X7GdA"
12}
获取以上json中accessToken的值即可,有效期在30天左右。过期后需要重新设置。
properties
1# 前面别的东西
2
3[[openai.accounts]]
4access_token = "一串 ey 开头的东西"
可以尝试设置 mode="browserless" 配置项。
开启后,你的账户密码将发送至一个第三方的代理服务器进行验证。
properties
1# 前面别的东西
2[openai]
3# OpenAI 相关设置
4
5# 第 N 个 OpenAI 账号的登录信息
6[[openai.accounts]]
7mode = "browserless"
8# 你的 OpenAI 邮箱
9email = "xxxx"
10# 你的 OpenAI 密码
11password = "xxx"
12# 后面别的东西
使用正向代理
如果你的网络访问 OpenAI 出现一直弹浏览器的问题,或者你的 IP 被封锁了,可以通过配置代理的方式来连接到 OpenAI。支持使用正向代理方式访问 OpenAI,你需要一个 HTTTP/HTTPS 代理服务器:
properties
1# 前面别的东西
2[openai]
3# OpenAI 相关设置
4
5# 第 N 个 OpenAI 账号的登录信息
6[[openai.accounts]]
7
8# 请注意,由于现在 OpenAI 封锁严格,你需要一个
9# 尽量使用独立的代理服务器,不要使用和其他人共用 IP 的代理
10# 否则会出现无限弹出浏览器的问题
11
12proxy="http://127.0.0.1:1080"
13
14# 后面别的东西
15
🦊 加载预设
如果你想让机器人自动带上某种聊天风格,可以使用预设功能。
我们自带了 猫娘 和 正常 两种预设,你可以在 presets 文件夹下了解预设的写法。
📷 图片转文字
向 QQ 群发送消息失败时,自动将消息转为图片发送。
Star History
如果你觉得本项目对你有帮助的话,欢迎点一个 Star!
访问 GitHub
开源协议GNU Affero General Public License v3.0
bardbotchatglm-6bchatgptdeepseekdiscorderniego-cqhttpgrokmirainew-bingollamaopenaipoeqqqqbotsydneytelegramwechatxinghuo
46.3k
LibreChat
Enhanced ChatGPT Clone: Features Agents, MCP, DeepSeek, Anthropic, AWS, OpenAI, Responses API, Azure, Groq, o1, GPT-5, Mistral, OpenRouter, Vertex AI, Gemini, Artifacts, AI model switching, message search, Code Interpreter, langchain, DALL-E-3, OpenAPI Actions, Functions, Secure Multi-User Auth, Presets, open-source for self-hosting. Active.
访问 GitHub
开源协议GNU Affero General Public License v3.0
bardbotchatglm-6bchatgptdeepseekdiscorderniego-cqhttpgrokmirainew-bingollamaopenaipoeqqqqbotsydneytelegramwechatxinghuo
chatgpt-mirai-qq-bot - 开源项目详情