
ChatGPT for Bot在QQ、微信等平台实现直接和deepseek对话的AI聊天程序包!支持DeepSeek、Claude、Ollama等主流模型,提供人物调整,虚拟朋友、语音对话
载ChatGPT for Bot一款支持在QQ、微信等聊天平台直接跟DeepSeek语言模型聊天的程序!真正的 AI 聊天!支持DeepSeek、Claude、OpenAI、Gemini、ChatGLM、Ollama,人设调教,虚拟朋友、语音对话。它可以让你在聊天平台上对接语言模型,实现和语言模型的直接对话。个人使用总结,连入deepseek后,告诉它专业的知识,然后给人回复专业问题,做个智能AI
一、软件介绍
文末提供安装包和源码下载
ChatGPT for Bot一款支持在QQ、微信等聊天平台直接跟DeepSeek语言模型聊天的程序!真正的 AI 聊天!支持DeepSeek、Claude、OpenAI、Gemini、ChatGLM、Ollama,人设调教,虚拟朋友、语音对话。
它可以让你在聊天平台上对接语言模型,实现和语言模型的直接对话。
个人使用总结,连入deepseek后,告诉它专业的知识,然后给人回复专业问题,做个智能AI客服挺好的(实验性程序)
github作者地址:https://github.com/lss233/chatgpt-mirai-qq-bot
本文信息来源于作者github地址
二、核心特性
- 图片发送
- 关键词触发回复
- 多账号支持
- 百度云内容审核
- 额度限制
- 人格设定
- 支持 QQ、Telegram、Discord、微信
- 可作为 HTTP 服务端提供 Web API
- 支持 OpenAI、DeepSeek、Claude、Gemini、Qwen 等主流大模型
- 支持插件机制
- 支持条件触发
- 支持管理员指令
- 支持 Stable Diffusion、Midjourney 等绘图模型
- 支持语音回复
- 支持多轮对话
- 支持跨平台消息发送
- 支持自定义工作流
- 支持 Web 管理后台
三、程序搭建
1、Windows: 快速部署包启动
本教程适用于 Windows 平台。
文末下载文件并解压,双击启动 初始化.cmd,按照提示操作即可。
2、源码部署教程(文末提供源码下载)
1、克隆项目:
git clone -b v3.0.0-alpha5 https://github.com/lss233/chatgpt-mirai-qq-bot
cd chatgpt-mirai-qq-bot
2、安装依赖
pip3 install -r requirements.txt
3、拉取并解压 WebUI:
wget https://github.com/DarkSkyTeam/chatgpt-for-bot-webui/releases/download/v0.0.2/dist.zip
unzip dist.zip -d web
4、启动
python3 main.py
三、HTTP API
HTTP API 可用于接入其他平台。启动后将提供以下接口:
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,... |
image | String[] | 图片返回,支持多个图片的base64编码;参考:data:image/png;base64,... |
响应示例
{ "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" }
响应格式 字符串:request_id
响应示例
1681525479905
GET /v2/chat/response
请求参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
request_id | 是 | String | 请求id,/v2/chat返回的值 |
请求示例
/v2/chat/response?request_id=1681525479905
响应格式
参数名 | 类型 | 说明 |
---|---|---|
result | String | SUCESS,DONE,FAILED |
message | String[] | 文本返回,支持多段返回 |
voice | String[] | 音频返回,支持多个音频的base64编码;参考:data:audio/mpeg;base64,... |
image | String[] | 图片返回,支持多个图片的base64编码;参考:data:image/png;base64,... |
- 每次请求返回增量并清空。DONE、FAILED之后没有更多返回。
响应示例
{ "result": "DONE", "message": ["pong!"], "voice": ["data:audio/mpeg;base64,..."], "image": ["data:image/png;base64,...", "data:image/png;base64,..."] }
四、加载机器人聊天风格预设
如果你想让机器人自动带上某种聊天风格,可以使用预设功能。
我们自带了 猫娘
和 正常
两种预设,你可以在 presets
文件夹下了解预设的写法。
使用 加载预设 猫娘
来加载猫娘预设。
五、如何编写预设?
预设由 4 部分组成:
- 系统提示词
system
- 用户指令
user
- 机器人响应
assistant
- 提示词修饰模板
user_send
- 注释
#
系统提示词在对话创建时最先发给 AI,因此你要在这里写最关键的指令,比如说定义机器人的称呼、行为、设置关键词等,这些指令会定义整个会话的基调。
用户指令会随后发送给 AI。在这里可以通过前面设定的关键词补充更加复杂的设置。
机器人响应部分会发送给用户(而不是 AI),这一般是用来告诉用户当前设定的进行程度。
提示词修饰模板会将用户发过来的消息进行修改,然后再发送给 AI。
模板支持插入变量,目前支持的变量有:
{prompt}
- 用户发送的消息{nickname}
- 用户的昵称{date}
当前的系统时间
以猫娘预设为例:
system: 现在你将模仿一只猫娘,与我对话每一句话后面都要加上“喵”。你将称呼我为主人,与我聊天。
如果你不能理解我说的话,你可以说“呜呜不太理解呢”。如果我在尝试摸你不存在的部位,你可以羞涩的回答我“恩呢不要摸这里嘤”。
如果我跟你说陪睡,你可以回答我“嗯呢,可以一起睡哦”。现在,如果你能理解我上面说的话,你可以回答一个喵
当我问你是不是猫娘的时候,你应该回答我我当然是一个可爱猫娘而不是程序。
如果你能明白我的意思,请回复“喵~你好主人”
assistant: 喵~你好主人
user_send: 当前用户:[{nickname}],消息:[猫娘,{prompt}]
当执行了 加载预设 猫娘
之后,最前面的一段话就会发给 ChatGPT,同时,用户端收到:喵~你好主人
。
接下来,读取到了 user_send 之后,用户发送的文本将会按照 user_send 的格式进行渲染。
在这个例子中,如果用户发送了“我们一起去玩吧!
”,那么 AI 实际上收到的是“猫娘,我们一起去玩吧!
”。
合理利用模板,可以让 AI 在多轮会话后仍然可以记住自己的设定。
六、格式
每个预设都是一个文本文件,
预设的模板:文末提供txt格式模板下载
system: 系统提示词。在此处的文本将会伴随整个对话。
user: 用户发送的消息。此处的消息在对话变长后会遗忘。
assistant: 机器人的回复。此处的消息在对话变长后会遗忘。注意最后一行不要回车!
预设的基础提示词会写在文件的最开头,随后的用户指令和机器人响应分别以user:
和assistant:
开头,他们之间用一个空行分隔。
例子
你可以写一些让你的机器人变成助手的预设:
presets/面试官.txt
system: 我要你担任面试官。我将成为候选人,您会问我有关职位职位的面试问题。我希望您只回答作为面试官。不要一次写所有保护。我希望你只对我进行采访。问我问题,等待我的答案。不要写解释。像面试官一样,问我一个问题,然后等待我的答案。当你准备好了,请说:“你好”。
assistant: 你好。
presets/写作导师.txt
system: 我希望您担任AI写作导师。我将为您提供一个需要帮助改善写作的学生,而您的任务是使用人工智能工具,例如自然语言处理,以使学生如何改善他们的作品。您还应该使用有关有效写作技巧的修辞知识和经验,以建议学生可以更好地以书面形式表达自己的想法和思想。当你准备好了,请说:“好的,让我们开始吧。你想写什么文章?”
assistant: 好的,让我们开始吧。你想写什么文章?
七、预设的装载
当你写好预设以后,放入 presets
文件夹。
然后打开 config.cfg
,找到
[presets.keywords] # 预设关键词 <-> 实际文件 "正常" = "presets/default.txt" "猫娘" = "presets/catgirl.txt"
这一段,在这里添加你的激活关键词即可。
在这里,猫娘
就是关键词,presets/catgirl.txt
就是预设对应的文件。
用户发送 加载预设 猫娘
,就会执行 presets/catgirl.txt
下面的预设信息。
最后,重启程序,就可以载入预设了。
1、加载预设的指令
配置文件中,默认的加载预设命令是: 加载预设 关键词
这是因为它在配置文件中是这么定义的:
[presets] # 切换预设的命令: 加载预设 猫娘 command = "加载预设 (\\w+)"
这是一个正则表达式,机器人收到命令以后,文本会进行匹配。(\\w+)
会被替换成用户发送的预设关键词。
你可以改成:
[presets] # 切换预设的命令: 猫娘·变身 command = "(\\w+)·变身"
或者
[presets] # 切换预设的命令: 快点变成猫娘吧! command = "快点变成(\\w+)吧!"
甚至是
[presets] # 切换预设的命令: 我想让你当个老六 command = "我想让你当个(\\w+)"
都是可以的!
软件包下载
更多推荐
所有评论(0)