a bot application running on Tencent QQ that integrates GPT chatbot capabilities with AI painting.
一个运行于腾讯qq上的, 将gpt聊天能力与ai绘画集成的机器人应用.
Due to limited personal energy, currently this project is mainly aimed at Chinese users. If I have time in the future, I may add more internationalization support. For English users, it should not be difficult to understand with the help of variable names in the code. You can also translate this readme file into English to help you understand this project. The core idea is to use prompts to guide the insertion of identifying text for the program to recognize and execute instructions. Similar approaches can also be used for services such as voice services, group management, and user image analysis(has been implemented by visual-chatgpt). If this project can inspire or help you, I would be honored.
有一个基于本项目修改, 添加了vits语音和图像分析能力的衍生项目: https://github.com/AGuanDao/mix-chatgpt-and-ai-painting-and-vits
从selfhostedAI中任选一个项目启动API ( 我仅测试了RWKV-Runner,推荐使用)
接着在config.py内,将use_selfhostedllm设为True,此时使用 #gpt切换,切换为原本的GPT3模式,就会调用本地模型
show all ...
展开,
windows一般使用windows_amd64.exe 由于go-cqhttp宣布停止维护, 你现在可以使用 https://github.com/LLOneBot/LLOneBot 作为替代, 在设置中启用正向Websocket连接即可, 其余内容照旧
models/Stable-diffusion
目录下python webui.py --medvram --deepdanbooru --xformers --api --enable-insecure-extension-access
, 注意必须带有--api
参数, 如果你使用的是他人的整合包,
可能需要自己手动在启动脚本加上--api
参数, 参考上面的常见问题
一栏git clone https://github.com/josStorer/mix-chatgpt-and-ai-painting
, 并pip install -r requirements.txt
安装依赖api_key
/email,password
, master_id
, bot_id
,
建议考虑实际情况修改的变量为: use_chatgpt
, working_groups
, auth_vip_for_all
, local_mode
, 其他请自行抉择python main.py
启动本项目win+tab
新建一个桌面干别的事情,
让你的电脑闲置时给群友玩耍吧AttributeError: 'Error' object has no attribute 'message'
"proxy": "你的代理地址"
, 如果你没有代理, 请将use_chatgpt
设为False
, 并填写api_key
错误: 'images'
, 或 错误: 404: {"detail":"Not Found"}
--api
参数, 如果你使用的是他人的整合包,
请找到相关启动文件(一般是.bat后缀),
找到其中有参数的一行, 如--deepdanbooru
, --xformers
, 在后面加上一个--api
, 注意参数间空格, 如果有启动器的,
请找到启用API
/暴露API
之类的选项勾选错误: [WinError 3] The system cannot find the path specified
HOME
环境变量为某个文件夹路径, 用于存储配置信息git pull
拉取本项目的更新, 并注意使用pip install -r requirements.txt --upgrade
升级依赖库device.json
, 打开并找到protocol
, 将值改为2
, 并重新启动程序登录main.py
末尾, 找到run_forever
, 把括号内的reconnect=3
删掉main.py
内添加以下内容配置代理: proxy = {'http': "http://127.0.0.1:端口号", 'https': "http://127.0.0.1:端口号"}
openai.proxy = proxy
如有使用问题, 可加qq群283430436交流, 也可进行试玩
@机器人1号 #上线
, 适用于群内有多个机器人的情况, 而直接使用警号指令则作用于所有机器人指令 | 示例 | 说明 |
---|---|---|
#gpt切换 | #gpt切换 | 在gpt3与chatgpt模式间切换 |
#上线 | #上线 | 令该群聊的机器人上线, 使其允许执行openai调用和ai绘画 |
#下线 | #下线 | 令该群聊的机器人下线, 使其不允许执行openai调用和ai绘画 |
#画图 | #画图 512x512.girl | 令机器人在该群聊中画图, 例如: #画图 girl , 使用点或分号分隔, 允许一些快捷操作, 使用花括号允许传入细致的json配置操作, 详细请使用 #帮助 查看 |
#d | #d 512x512.girl | vip列表内的用户允许使用的快捷画图操作, 效果同 #画图
|
#撤回 | #撤回 | 撤回由你触发的上一条机器人消息 |
#拉黑 | #拉黑 123456 | 禁止该用户在该群聊中使用机器人 |
#解除 | #解除 123456 | 解除对该用户的拉黑 |
#vip | #vip 123456 | 将该用户加入vip列表, vip列表内的用户可以使用 #d 指令, 也可以通过at调用机器人, 执行openai api对话 |
#unvip | #unvip 123456 | 将该用户从vip列表中移除 |
#清理对话 | #清理对话 | 清理对话上下文(先前对话内容过长导致请求失败时, 可以选择清理) |
#帮助 | #帮助 | 显示面向群内普通用户的帮助信息, 不含vip指令和master指令 |
#默认 | #默认 | 显示 #画图 的默认json配置, 你可以直接复制这些信息自己修改, 然后再通过 #画图 {...} 传回去调用 |
#黑名单 | #黑名单 | 显示黑名单列表 |
#at切换 | #at切换 | 切换机器人响应模式, 默认总是需要at机器人以进行openai回复, 切换后可以直接对话, 对每句话都进行回复 |
#model | #model anything-v4 | 直接输入#model 查看当前激活模型及所有可用模型列表, 输入#model 模型名 进行模型切换, 模型名不需要完整, 只需要存在于目标模型名中即可, 不区分大小写, 例如, 完整的模型名为anything-v4.0-pruned.safetensors , 可直接输入#model v4 进行切换 |
#vae | #vae Anything-V3.0.vae.pt | 直接输入#vae 查看当前使用的VAE, 输入#vae VAE名称 进行VAE切换, 注意与模型切换不同, VAE切换必须完全匹配文件名称 |
#余额 | #余额 | 显示当前所用api key的余额 |
修改main.py内的on_message函数, 及ws_wrapper.py, 以尝试为QQ以外的其他程序开发机器人应用
这个项目一开始只是给沙雕群友们搞的玩具, 图一乐来着, 最近搞真人模型的时候, 顺便集成了gpt对话功能, 感觉效果还不错, 就开源了
核心思路看config.py的prompt就懂了, 类似思路, 也可用于生成语音对话, 管理群聊等, 仅作抛砖引玉, 欢迎大伙fork改造
代码和git日志很拉, 因为一开始就是个玩具项目, 直接一把梭做出来的, 而且记录里还有我自己的域名和key等隐私信息, 所以直接新建了一个项目, 没有log了