搭建云崽QQ机器人+ChatGPT插件
本文最后更新于34 天前,其中的信息可能已经过时,如有错误请发送邮件到916949904@qq.com

安装云崽Bot+ChatGPT插件

说明:如果你要找哪个配置项或步骤,请Ctrl + F进行搜索查找,查找无果再进行人为搜索

更新日志

2023.5.17

  • 更改安装的node版本为16.19

2023.4.10

  • 新增3321端口占用解决办法

2023.4.4

  • 新增git的编译安装方式
  • 新增一个ChatGPT版的问题合集
  • 去掉过时的问题

2023.3.11

  • 新增必应Token获取方式

2023.3.9

  • 修改云崽仓库源为喵喵源
  • 新增问题合集链接

2023.3.6

  • 新增语音API的获取及配置

2023.3.5

  • 新增官方群号
  • 支持gpt-3.5-turbo API
  • 更新chatgpt-plugin插件的修改配置
  • 新增安装锅巴插件
  • 新增使用锅巴修改chatgpt-plugin插件的配置(极力推荐)
  • 新增指令说明

2023.2.24

  • 新增一个常见问题
  • 新增一个版本低解决方案

2023.2.20

  • 新增一个常见问题
  • 新增切换API3模式的教程

这次我们来搭建云崽Bot,云崽Bot其实是一个用于原神的机器人,不过众多大佬开发出了很多有趣的插件供我们使用,这次我们就是用其中的一个插件Chat-GPT(其不是正宗的ChatGPT,是基于GPT3的,所以显得呆呆的,不过也算是能用)OpenAI官方发布了gpt-3.5-turbo 的API,使用效果和官网无差,缺点就是会消耗送的18美元,用完就没了,下面我们开始吧。

联系方式

有问题可以进群问,没人回就代表都不会(重装解决99%的问题)

QQ群:559567232 [问题交流]

QQ群:126132049 [机器人试验场]

项目地址

云崽Gitee:https://gitee.com/Le-niao/Yunzai-Bot

云崽无原神功能版:https://gitee.com/Nwflower/yunzai-bot-lite (自行测试)

插件库:https://gitee.com/yhArcadia/Yunzai-Bot-plugins-index (插件库并不包含所有的插件,可以自行查找插件使用)

Chat-GPT插件地址:https://github.com/ikechan8370/chatgpt-plugin

https://gitee.com/ikechan/chatgpt-plugin

ChatGPT插件文档:https://chatgptplugin.ikechan8370.com/

准备工作

系统:Windows、Linux (我用的 腾讯云 2h2g Centos7)

一个QQ号用来当机器人

安装环境

Node>=16,Redis

仓库换源

bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/ChangeMirrors.sh)

选择阿里云然后后面全部选Y

pSfvJ0g.png

安装node.js

#准备环境
yum install libtool automake autoconf gcc-c++ openssl-devel

mkdir -vp /usr/local/software/nodeJs
cd /usr/local/software/nodeJs

#下载
wget https://nodejs.org/dist/v16.19.0/node-v16.19.0-linux-x64.tar.gz
#解压
tar zxvf node-v16.19.0-linux-x64.tar.gz
# 改名
mv node-v16.19.0-linux-x64 node16.19
#赋权
chmod 777 node16.19

# 打开环境变量
vim /etc/profile
输入i或者按insert键进行插入操作,将下面两行代码粘贴在最下面
如果之前使用我的教程安装过node16.8,那么只需要将export NODE_HOME=/usr/local/software/nodeJs/node16,修改为export NODE_HOME=/usr/local/software/nodeJs/node16.19。
#set nodejs env(路径一定要配置对)
export NODE_HOME=/usr/local/software/nodeJs/node16.19
export PATH=$NODE_HOME/bin:$PATH
填写完之后,按esc键,然后输入:wq进行保存退出

# 重新加载环境变量
source /etc/profile

#检查是否安装成功,出现版本号说明安装成功
cd
node -v
npm -v

pShpnDf.png

安装git

方式一:

这种方式安装的git可能版本比较低(Centos7系统自带的git版本一般是1.8.3.1的,比较旧,通常建议升级git后再使用。),低版本在对云崽进行全部更新的时候时间格式就会报错,所以推荐使用第二种,也可以先试试第一种方式,安装上看看是哪个版本的,具体需要多少版本我也没测试(my阿里云:2.32,腾讯云:2.38)

yum install git
中间询问:Is this ok [y/d/N]:输入y就行,没问忽略
git --version #查看git版本

方式二:

如果你使用上面的方式安装发现版本比较低,那么就需要先卸载旧版本的

  1. 卸载旧版本

    yum remove git
  2. 安装相关依赖

    yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc
    yum install gcc perl-ExtUtils-MakeMaker

​ 只要没报错就说明成功了

  1. 下载git包,解压

    cd /usr/local/src/
    wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.32.0.tar.xz
    tar -xvf git-2.32.0.tar.xz
  2. 编译安装

    cd git-2.32.0
    make prefix=/usr/local/git all   #这一步可能会出现问题,已在下方列出
    make prefix=/usr/local/git install   #这一步运行成功之后会比较乱,不要担心
  3. 编译安装可能出现的错

    • http.h:6:23: fatal error: curl/curl.h: No such file or directory

      解决方式:

      yum -y install curl-devel
    • http-push.c:18:19: fatal error: expat.h: No such file or directory

      解决方式:

      yum install expat-devel
    • BEGIN failed--compilation aborted at Makefile.PL line 3.

      解决方式:

      yum install perl-ExtUtils-MakeMaker package.
  4. 配置环境变量

    vi  /etc/profile
    
    输入i或者按insert键进行插入操作,将下面两行代码粘贴在最下面
    export GIT_HOME=/usr/local/git/bin
    export PATH=$GIT_HOME:$PATH
    填写完之后,按esc键,然后输入:wq进行保存退出
    
    source /etc/profile  #重新加载环境变量
  5. 检查版本

    git --version        #出现git version 2.32.0就是成功了

安装chromium

yum -y install chromium

安装Redis

yum -y install redis

安装中文包

yum groupinstall fonts -y

安装项目

cd #转到根目录
# 使用Gitee
git clone --depth=1 https://gitee.com/yoimiya-kokomi/Miao-Yunzai.git
cd Miao-Yunzai 
git clone --depth=1 https://gitee.com/yoimiya-kokomi/miao-plugin.git ./plugins/miao-plugin/

安装依赖

cd Yunzai-Bot #进到云崽文件夹
npm config set registry https://registry.npmmirror.com
npm install pnpm -g
pnpm -v #查看版本号
pnpm config set registry https://registry.npmjs.org/
pnpm install -P

启动项目

启动redis

redis-server --save 900 1 --save 300 10 --daemonize yes

使用screen后台运行项目

yum install screen -y
screen -S yunzai
cd Yunzai-Bot/ #进到云崽根目录
node app
然后填写相关信息就行了

pShiBex.png

登录成功会给主人账号发送说明

pShFDjs.jpg

然后Ctrl + C停止运行,开始安装插件(在云崽根目录下:Yunzai-bot/)

安装锅巴插件(极力推荐)

克隆插件

git clone --depth=1 https://gitee.com/guoba-yunzai/guoba-plugin.git ./plugins/Guoba-Plugin/

安装依赖

在云崽根目录下执行

方式一:pnpm install --filter=guoba-plugin
方式二:npm install express multer body-parser jsonwebtoken

开放端口

锅巴默认50831端口,可在 config/application.yaml 中修改

在你的服务器控制台找到这个页面,并点击防火墙(或者叫安全组,找不到的建议百度),接着点击添加规则,填上端口号,点击确定就行了。

ppEXjdH.png

ppEjVoj.png

有很多人会使用面板进行管理服务器,例如宝塔等,就还需要在面板上再开放一下50831端口,操作和上面差不多
有的人没有使用面板还打不开锅巴,那就需要用命令行在本地开启端口,如下:

1.开启防火墙 
systemctl start firewalld
2.开放指定端口
firewall-cmd --zone=public --add-port=50831/tcp --permanent
 命令含义:
--zone #作用域
--add-port=50831/tcp  #添加端口,格式为:端口/通讯协议
--permanent  #永久生效,没有此参数重启后失效
3.重启防火墙
firewall-cmd --reload

这样我们在锅巴这里的操作就进行完了。

安装chatgpt插件

安装插件的大部分操作都是在云崽根目录(/root/Yunzai-Bot)

插件地址:https://github.com/ikechan8370/chatgpt-plugin或https://gitee.com/ikechan/chatgpt-plugin

有什么问题可以去这里看看有没有解决方法:https://github.com/ikechan8370/chatgpt-plugin/issues

版本要求

Node.js >= 18 / Node.js >= 14(with node-fetch) 小白尽可能使用18版本以上的nodejs

安装项目

cd Yunzai-Bot/ #进到云崽根目录
git clone --depth=1 https://github.com/ikechan8370/chatgpt-plugin.git ./plugins/chatgpt-plugin/
git clone --depth=1 https://gitee.com/ikechan/chatgpt-plugin.git ./plugins/chatgpt-plugin/

安装依赖

cd plugins/chatgpt-plugin
pnpm i

修改配置

修改配置极力推荐使用锅巴配置,自己修改配置容易出错

方式一:锅巴配置(极力推荐)

进行到这一步相信你已经安装好插件了,那么请运行它

cd && cd Yunzai-Bot/
node app

运行起来以后,使用主人账号给机器人发送#锅巴登录,机器人会给你发登录网址,复制外网登录网址,用浏览器打开,一打开就能看到ChatGPT-Plugin,点它,然后选择配置,主要修改其中的apiKey和强制使用OpenAI反代

ppeLnv6.md.png

方式二:文件配置

复制plugins/chatgpt-plugin/config/config.example.json并将其改名为config.json 编辑plugins/chatgpt-plugin/config/config.json文件,根据其中的注释修改必要配置项,主要修改其中的apiKey
如何获得api-key可以看我的另一个文章:https://blog.hanhanz.top/archives/226.html

cd && cd /root/Yunzai-Bot/plugins/chatgpt-plugin/config
cp config.example.json config.json #复制文件并改名
vi config.json #编辑配置文件
输入i或者按insert键进行插入操作
填写完之后,按esc键,然后输入:wq进行保存退出

ppeLmgx.png

运行项目

修改完之后,我们就可以去运行使用了

screen -S yunzai
cd #回到根目录
cd Yunzai-Bot/ #进到云崽根目录
node app

运行项目没报错就可以使用了Ctrl + A + D退出screen运行空间,这样就配置完可以用了,需要进入运行空间就执行screen -r yunzai就可以了。

运行截图

私聊

pShAz7t.png

群聊

[

pShVIJK.png

使用说明

插件介绍

本插件支持官方API/第三方API/浏览器/必应四种模式。也可以选择我全都要(通过qq发送命令#chatgpt切换浏览器/API/API3/Bing实时切换)
回复模式包括:文本模式,图片模式,语音模式
支持画图(用额度会很快)

指令

#chatgpt帮助
#chatgpt模式帮助
#chatgpt对话列表
#结束对话 [@某人]
#清空chat队列
#移出chat队列首位
#chatgpt开启/关闭问题确认
#chatgpt切换API/API3/Bing
#chatgpt设置[必应]Token
#openai余额
#dalle绘图[关键词]
#dalle改图(最好先发出来一张图片,然后回复这个图片进行使用)
更多帮助请发送#chatgpt帮助进行查看

screen 的用法

screen -S name #新建一个运行空间,name可以随便写,例如:screen -S go-cq ,screen -S py 这里的S一定要大写
screen -D name #杀死命名为name的运行空间,杀死之后该运行空间还在,但里面运行的东西就没了
screen -r name #连接名字为name的运行空间
Ctrl + A + D #退出当前运行空间,但里面的运行的进程会一直运行,如果要对该进程进行操作,只需要运行上面的screen -r 即可进入
screen -S name -X quit #删除名为name的运行空间,里面运行的进程将也会停止

如何在网页手动获取ticket

复制链接

复制滑块验证链接用浏览器打开

pShZW6g.png

F12 获取ticket

到下面这个页面先不要滑动方块验证,先按F12,选择网络(Network)

pShZOcF.png

接着按下面步骤获取ticket

pShesu4.png

然后把得到的ticket粘过去回车就好了

pShexxS.png

如何切换到API3模式

发送指令#chatgpt切换API3,机器人会提示已切换到基于第三方Reversed Conversastion API(API3)的解决方案,这时你问机器人问题,它会让你绑定Access Token

获取Access Token

  • 登录ChatGPT:https://chat.openai.com 后访问https://chat.openai.com/api/auth/session
  • 您会获得类似如下一串json字符串{"user":{"id":"AAA","name":"BBB","email":"CCC","image":"DDD","picture":"EEE","groups":[]},"expires":"FFF","accessToken":"XXX"}
  • 其中的XXX即为ChatGPT AccessToken

获取到Access Token之后给机器人发送#chatgpt设置token,把刚刚获取的Access Token发送就行了,这样就切换到API3模式了

如何获取必应Token?(摘自插件文档)

JS一键获取

登录www.bing.com,刷新一下网页,按F12或直接打开开发者模式,点击Console/控制台,运行如下代码,执行后即在您的剪切板存储了必应Token

copy(document.cookie.split(";").find(cookie=>cookie.trim().startsWith("_U=")).split("=")[1]);

手动获取

登录www.bing.com ,刷新一下网页,按F12或直接打开开发者模式,点击Application/存储,点击左侧Storage下的Cookies,展开找到https://www.bing.com 项,在右侧列表Name项下找到"_U",_U的value即为必应Token

如何获取语音模式API以及API配置方式

注:语音模式请自行安装ffmpeg

注册Hugging Face

如果你已经有账号,请跳到下一步,没有账号就打开链接:https://huggingface.co ,点击右上角的Sign Up,然后输入你的邮箱和密码,点击Next,填写相关信息,同意协议,点击Cereate Account,然后你的邮箱会收到一封验证邮箱的邮件,点击该邮件里面的链接,验证邮箱即可

ppVWhD0.png

获取语音API

在你注册网站的浏览器打开下面的网址:https://huggingface.co/spaces/ikechan8370/vits-uma-genshin-honkai ,点击右上角的三个点(手机端看不到三个点,必须用电脑),接着点Duplicate Space,

ppVf0z9.png

会出现下面界面,这时候我们将VisBility改成Public(不改的话在使用的时候会出错),然后再次点击Duplicate Space

ppVfjzj.png

点击之后,它会自己运行,等一会就可以了,如果你的和我的一样变成Running了,那就说明成功了

ppVhMTK.png

接着把网页拉到最下面,点击view api

ppVh2mq.png

复制下面我框柱的内容,注意去掉最后的斜杠,这就是我们的语音API

ppVhxhD.png

配置语音API

方式一:锅巴配置

登录锅巴,进到ChatGPT-plugin配置,找到语音转换API地址,把上面复制的API粘进去就可以了,下面的情感变化、发音长度、语速,可以自行调整

ppV4Rvd.png

方式二:文件配置

请找到/Yunzai-Bot/plugins/chatgpt-plugin/config.json文件,如果你使用的终端带ftp,那么可以直接双击打开编辑。

vi config.json

Insert键进行键入操作,将API粘贴到ttsSpace那里,如果没有这行可以自行添加 "ttsSpace": "你的API",

ppV5SaV.png

设置好之后,Esc输入:wq保存退出

这样我们就配置好,就可以使用了

常见问题

问题合集

LUCK小运版:https://www.wolai.com/oA43vuW71aBnv7UsEysn4T
鹤望兰版:https://chatgptplugin.ikechan8370.com/guide/

Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'xxx'.

请参照本文前面的安装chatgpt插件-安装依赖部分重新依赖。随着项目更新可能引入新的依赖。

一般情况下请按照安装插件-安装依赖小节的内容重新安装依赖即可

最多的问题:载入插件错误:chat

问题详情:Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'showdown' imported from /app/Yunzai-Bot/plugins/chatgpt-plugin/apps/chat.js

原因:没装依赖

解决方式:请在插件根目录用pnmp i进行依赖安装

Error: listen EADDRINUSE: address already in use 0.0.0.0:3321

这个报错是因为端口被占用了,kill掉占用端口的进程或者换个端口就可以了

修改端口

这个办法适用于所有系统,找到chatgpt插件的config.json文件,查看是否有下面的内容,如果没有,就把这一行加进去,然后把3321改成其他的,如果有这一行,改3321就行了

"serverPort": 3321,
kill进程
Windows

win+r输入cmd,然后执行下面第一行命令,找到3321的进程ID,然后执行第二行命令,将11508改成你的PID

netstat -ano|findstr 3321
taskkill -pid 11508 -f
Centos
netstat -anp |grep 3321 #查看占用端口的进程
kill -9 PID #杀死占用端口的进程,例如我的是1237,就执行kill -9 1237
Ubuntu
lsof -i :3321
kill -9 PID

我这边Ubuntu虚拟机出问题了,就不给图了

本文作者:hanhan
本文标题:搭建云崽QQ机器人+ChatGPT插件
本文链接:https://blog.hanhanz.top/archives/309.html
作者 Q Q:916949904
如果觉得本文对您有所帮助,三连支持一下吧。

评论

  1. web菜狗
    Windows Chrome 99.0.4844.51
    10月前
    2023-2-18 1:15:21

    大佬教程非常好且细致,我有一个小问题
    大佬怎么保持bot在线啊,一退终端bot就掉了