安装云崽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
安装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
安装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版本
方式二:
如果你使用上面的方式安装发现版本比较低,那么就需要先卸载旧版本的
-
卸载旧版本
yum remove git
-
安装相关依赖
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc yum install gcc perl-ExtUtils-MakeMaker
只要没报错就说明成功了
-
下载
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
-
编译安装
cd git-2.32.0 make prefix=/usr/local/git all #这一步可能会出现问题,已在下方列出 make prefix=/usr/local/git install #这一步运行成功之后会比较乱,不要担心
-
编译安装可能出现的错
-
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.
-
-
配置环境变量
vi /etc/profile 输入
i
或者按insert
键进行插入操作,将下面两行代码粘贴在最下面 export GIT_HOME=/usr/local/git/bin export PATH=$GIT_HOME:$PATH 填写完之后,按esc
键,然后输入:wq
进行保存退出 source /etc/profile #重新加载环境变量 -
检查版本
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
然后填写相关信息就行了
登录成功会给主人账号发送说明
然后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
中修改
在你的服务器控制台找到这个页面,并点击防火墙(或者叫安全组,找不到的建议百度),接着点击添加规则,填上端口号,点击确定就行了。
有很多人会使用面板进行管理服务器,例如宝塔等,就还需要在面板上再开放一下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
反代
方式二:文件配置
复制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
进行保存退出
运行项目
修改完之后,我们就可以去运行使用了
screen -S yunzai
cd #回到根目录
cd Yunzai-Bot/ #进到云崽根目录
node app
运行项目没报错就可以使用了Ctrl + A + D
退出screen运行空间,这样就配置完可以用了,需要进入运行空间就执行screen -r yunzai
就可以了。
运行截图
私聊
群聊
[
使用说明
插件介绍
本插件支持官方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
复制链接
复制滑块验证链接用浏览器打开
F12 获取ticket
到下面这个页面先不要滑动方块验证,先按F12
,选择网络(Network
)
接着按下面步骤获取ticket
然后把得到的ticket
粘过去回车就好了
如何切换到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
,然后你的邮箱会收到一封验证邮箱的邮件,点击该邮件里面的链接,验证邮箱即可
获取语音API
在你注册网站的浏览器打开下面的网址:https://huggingface.co/spaces/ikechan8370/vits-uma-genshin-honkai ,点击右上角的三个点(手机端看不到三个点,必须用电脑),接着点Duplicate Space
,
会出现下面界面,这时候我们将VisBility
改成Public
(不改的话在使用的时候会出错),然后再次点击Duplicate Space
点击之后,它会自己运行,等一会就可以了,如果你的和我的一样变成Running了,那就说明成功了
接着把网页拉到最下面,点击view api
复制下面我框柱的内容,注意去掉最后的斜杠,这就是我们的语音API
配置语音API
方式一:锅巴配置
登录锅巴,进到ChatGPT-plugin
配置,找到语音转换API地址
,把上面复制的API
粘进去就可以了,下面的情感变化、发音长度、语速,可以自行调整
方式二:文件配置
请找到/Yunzai-Bot/plugins/chatgpt-plugin/config.json
文件,如果你使用的终端带ftp,那么可以直接双击打开编辑。
vi config.json
按Insert
键进行键入操作,将API
粘贴到ttsSpace
那里,如果没有这行可以自行添加 "ttsSpace": "你的API",
设置好之后,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虚拟机出问题了,就不给图了
大佬教程非常好且细致,我有一个小问题
大佬怎么保持bot在线啊,一退终端bot就掉了