搭建QQ小猫机器人集成GPT与Stable Diffusion Webui

一:准备工作

1.简单的说下执行过程,方便你理解,还是画图比较容易说明和理解

image-20230527121746328

go-cqhttp(此篇文章后续就缩写为CQ了)、MeowBot(简称机器人)、stable diffusion webui(简称SD)

看了上面的图你就知道要做那些准备工作了,

(1):如果部署在本地电脑上,那么需要使自己的网络可以ping通openai的地址。也就是可以访问gpt.

(2):如果部署在云服务器上,也是要准备可以访问openai的服务器。

2.先说我的解决方案吧:

(1):CQ+MeowBot在云服务器上(服务器可访问gpt)

(2):SD在自己台式机或者其他电脑上,然后经过frp内网穿透,供MeowBot可访问。

二:开始部署go-cqhttp

1.项目地址:Releases · Mrs4s/go-cqhttp (github.com)

选择你的系统合适的版本:推荐这两个,不要问为什么,因为我用的这两个

image-20230527122736177

建议先在windows上下载一个,部署好,因为云服务上QQ验证不了,异地加上各种不安全。总之,验证不了。
需要到时候把Windows下面生从accesstoken文件拷贝到服务器上,才可以正常运行。

2.部署go-cqhttp

(1)下载好之后,放在一个合适的空文件夹,这个地址很重要,因为项目地址使写死的,去获取CQ的data/image下面的图片,不然绘图之后发不了

image-20230527123340104

(2)按住Shift+右键,在此处打开power shell

image-20230527123454068

(3) ./go 然后tab会自动帮你补全的,也可以自己手打,Windows下会自动变成.\,

image-20230527123643644

(4)按下回车就会执行了,然后第一次会自动生成对应的配置文件,然后如图输入02即可,按下回车

image-20230527123818474

(5)成功的生成了config文件

image-20230527123954990

(6)关闭此窗口然后,按住Shift+右键,在此处打开power shell, ./go 然后tab会自动帮你补全的,再次启动CQ

image-20230527124155129

(7)会再次生成对应的配置文件和对应的日志以及消息的文件夹和文件

image-20230527124230944

(8)修改自己的QQ机器人和QQ协议

1.打开config.yml文件修改自己的QQ,只需要填数字就行,建议填写小号。

image-20230527124450688

2.如图,提示也写了不支持二维码登陆,需要修改对应的协议。打开device.json,搜索protocol 这个协议默认6,改成2即可
image-20230527124811870

(9)启动CQ,需要power shell启动,不要双击,如图扫码即可

image-20230527125109644

image-20230527125209558

到此为止,CQ已经部署完毕

需要注意的和下面用得到的东西就是

1.CQ存放图片的路径:G:\Go-Cqhttp\data\images

2.CQ的websocket端口: ws://localhost:8080

三:开始部署小猫机器人项目

机器人项目地址:https://github.com/CollapseNav/MeowBot

1.代码的简单说明:

(1)DrawAnimeCommand,找到这个类,如果使本地不能调用gpt或者不需要使用gpt的可以如图注释对应的代码即可,

(2)如果需要使用gpt,则需要把源代码的SD地址改为你自己SD地址

 //这里的路径现在是本地的,后面需要改为内网穿透之后的ip+端口
string url = "http://127.0.0.1:7860/sdapi/v1/txt2img";

image-20230527125856141

2.还是这个类,修改源代码的图片地址

改为上述的G:\Go-Cqhttp\data\images这个地址,不要把“/”换成了”\“

 var filePath = $"G:/Go-Cqhttp/data/images/{guid}.png";

image-20230527130142399

3.修改完之后重新编译即可,第一次执行会生成AppConfig.json

我已经帮你们修改了,直接修改即可,这种配置默认使CQ与机器人项目在同一个设备上(无论个人电脑还是云服务器),apiKey则是chatgpt的apikey

如果没有,可以在此地方购买首页 | TerraMours的小店,购买开发者key即可

这是查询key余额的地址:智能助手 (terramours.site)

{
  "apiKey": "sk-xxx",
  "botWebSocketUri": "ws://localhost:8080",
  "chatCompletionApiUrl": null,
  "textCompletionApiUrl": null,
  "gptModel": "gpt-3.5-turbo",
  "usageLimitTime": 300,
  "usageLimitCount": 5,
  "allowList": [],
  "blockList": [],
  "adminList": [],
  "groupConfigs": []
}

image-20230527130940569

然后再次启动即可

如果在服务器上启动,记得加上如下的nohup 以及& 这样即可关闭当前窗口,服务还是会在后台运行,如果是需要服务自动重启,需要自己用systemd 服务来自动重启和管理服务

nohup ./xxxx &

E:\go-cqhttp

-----------------------------------------------------非开发看这里

4.考虑到不一定所有的看官是开发,所以编译了一个windows的发布包,路径修改为默认D盘下的,想必一般的电脑都还是有D盘的

 var filePath = $"D:/go-cqhttp/data/images/{guid}.png";

也就是你的CQ需要安装到D盘的go-cqhttp这个文件夹下即可

包地址:https://file.firstsaofan.top/blogfile/MeowBot-win-x64.zip

解压之后双击MeowBot.exe即可;然后修改AppConfig.json内容即可

------------------------------------------------------结束

四:开始部署SD绘图服务

(一):准备工作

1.SD的GitHub地址:https://github.com/AUTOMATIC1111/stable-diffusion-webui

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

2.或者整合包,B站秋葉aaaki的整合包,一键启动

地址:秋葉aaaki的个人空间_哔哩哔哩_bilibili

官方安装教程:https://github.com/AUTOMATIC1111/stable-diffusion-webui#automatic-installation-on-windows

在视窗上自动安装(机翻)

  1. 安装 Python 3.10.6(较新版本的 Python 不支持 torch),选中“将 Python 添加到 PATH”。
  2. 安装 git
  3. 下载稳定扩散 webui 存储库,例如通过运行 .git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
  4. 以正常、非管理员、用户身份从 Windows 资源管理器运行。webui-user.bat

安装总结:

1.由于后续重构的系统会集成SD,是担心整合包被修改了或者不更新,所以我采取的官方的项目,我帮朋友部署过一个发现整合包并没有修改api相关的东西,所以单纯的使用这个机器人项目,整合包并没有任何问题,并且让你更简单。(推荐)

2.git 拉去官方项目的问题,主要是访问GitHub的原因,加上模型默认有好几个G,以及它的第一次运行会下载各种依赖包,没有网络条件的会有问题。也可以下载fast GitHub这个项目来解决,但是貌似速度也不是特别快,但是能解决你的访问GitHub的问题。

官方地址:Releases · dotnetcore/FastGithub

访问不了GitHub的可以用我下载好的:https://file.firstsaofan.top/blogfile/fastgithub_win-x64.zip

https://file.firstsaofan.top/blogfile/fastgithub_win-x64.zip //因为md格式url自带下划线,我怕有的人没看到fastgithub_win-x64.zip的下划线

3.官方的项目启动默认是不启动api,需要修改webui-user.bat文件,把参数带上–api

set COMMANDLINE_ARGS=--api

然后正常双击webui-user.bat即可。

五:如何使用机器人与测试

1.常用的就是gpt与绘图

gpt指令为直接@你的群机器人,也就是CQ配置的那个QQ。

绘图需要@机器人之后带上#drawanime即可

下面演示测试图(我把机器人的名片设置带上了绘图的口令免得使用的人忘记了)

GPT

image-20230527140933324

绘图(出图取决于你的模型)SD的模型以及基本的使用我就不写了

image-20230527141130471

详细指令#help即可

image-20230527141200553

六:代理openai的,可以用社区的不过需要自己寻找,也可以用TerraMours的开源项目自己部署

yarp代理openai项目地址:

raokun/YarpProject: 基于Yarp.ReverseProxy的反向代理项目,实现ChatGPT代理 (github.com)

然后把机器人项目里面的AppConfig.cs的写死的DefaultChatCompletionApiUrl改成你对应的就好

https://api.openai.com改成你代理的地址即可

 public static string DefaultChatCompletionApiUrl { get; } = "https://api.openai.com/v1/chat/completions";

如果用了别人的代理,那么意味数据会走别人的服务器一遍,自己需要在知道风险的情况自己选择。

最后说明

以上就全部结束了,出图取决你的模型,速度的快慢取决你的机器配置,我是1060 6G显存的卡,配置比较低,我用朋友的4070TI测试大概3-5秒

如果需要frp内网穿透SD的,可以在博客搜索frp,有对应的教程。

如果需要了解所有的命令与信息,可看起源机器人项目:

https://github.com/SlimeNull/MeowBot#介绍

最后感谢以下项目

此机器人项目:https://github.com/CollapseNav/MeowBot

此项目的起源:https://github.com/SlimeNull/MeowBot

SD:AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI (github.com)

自己的连接

QQ群号码可体验机器人:814880639

GPT体验站:https://ai.terramours.site/

Net7通用开源框架:firstsaofan/TerraMours (github.com)