Nonebot插件Nature_gpt部署智能聊天机器人

*代表不确定

指导链接:https://www.bilibili.com/read/cv23554318/(linux)

Nonebot:在python3.8以上环境下运行的聊天机器人的框架

Natural_gpt:是Nonebot中的一个插件,使用gpt密钥api key来聊天

gocqhttp:相当于QQ的客户端

将gocqhttp放在服务器上运行,在后台挂上Nonebot框架,Natural_gpt使用api key来调用gpt聊天机器人

开始与 go-cqhttp 交互

go-cqhttp 成功运行之后, 你就可以通过自己写的程序, 使用 HTTP 或者 WebSocketgo-cqhttp 进行通讯, 实现 QQ 机器人. 在这个过程中, 你的程序只需要把一些数据发送给 go-cqhttp, 关于 QQ 的通信协议, go-cqhttp 会帮你解决.

go-cqhttp的具体细节https://docs.go-cqhttp.org/

用到的命令行

  • screen:
#screen使用
screen -R 窗口名称        //创建会话
ctrl+a    d        //组合在后台运行会话,将窗口最小化,程序进入detached状态不会应为用户退出或者终端关闭而中断
screen -R 窗口名称        //回到会话

#screen 状态 attached | detached
screen -X -S id.screenname quit        //关闭会话
screen -ls        //查看会话列表
  • 解决ssh连接长时间不操作自动断开的问题*
vim /etc/profile
#在最后添加'TMOUT=1800',表示30分钟后自动time logout
#最好不要修改etc里的文件,etc目录里的文件与系统运行有关
*无效
修改
etc/ssh/sshd_config
# 服务器每隔60秒会给客户端发送一次保活信息包给客户端,可以将这个值设置大一点
ClientAliveInterval 60
# 服务器发出的请求如果客户端没有响应,则判断超时1次,这个参数是表示允许超时的次数。可以将这个值设置大一点。
ClientAliveCountMax 666
最优解法:创建screen来ping自己
  • linux目录中重要的文件目录
etc #有点像execute但我查过出处是于一个希腊单词有关
lib    #libary文件是一个动态库文件,程序运行时函数调用时要用到这个库文件,类似于dll文件
root #管理员文件
var #various 用来存放修改的文件
usr #共享资源的文件unix shared resources,和Windows中的program file类似
bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。
  • 文件下载和文件解压
用wget curl等下载
tar -xvf 文件名        #解压选项-x解压前的文件名 -v显示解压详情 -f解压后的文件名
  • 配置文件,token文件,其他
相当于图形化界面中的设置
token文件像一段密钥用来标识代表个人的身份等等
json数据文件
  • 虚拟环境
#在虚拟环境中运行程序,相当于Windows的环境变量*
sudo python3 -m venv myenv     //python中的-m选项创建python3的虚拟环境,且名为myenv
source /myvenv/bin/activate    //进入虚拟环境
  • 端口
nginx用于web服务且监听了443端口https,80端口http
web用户发送的请求都会转为443和80端口,https用的是TCP协议
因为一个端口不能被监听两次,就会需要有一个域名来经行解析到443端口,来进行部署多个web应用
一般为顶级域名yujie95.top作为主要网站,cloud.yujie95.top/gpt.yujie95.top二级域名作为服务器管理员的web应用

image-20240101104932100

image-20240101105015613

可以看到DNS出来的都是443端口,也就是nginx的代理,实际上我gpt.的用的是3002端口/cloud.用的也是其他端口。

nginx代理->    ip+端口    <-DNS解析

对于这个实例,只部署了后台程序和QQ客户端(手机上显示的是手表登录),我不需要提供web服务,只需要在后台挂载即可。我们不用开放防火墙8000端口

  • 重定向

但是如果我使用http://yujie95.top来发送请求访问我的网站,我的服务器就会自动重定向到https://yujie95.top

因为我的ssl证书中设置了强制https,无证书或者是自签名的证书浏览器访问时都会显示不安全。

https://raw.githubusercontent.com/9527copy/typora-picgo/main/202401011106588.png

nb的配置文件加一行权限,调配置文件等级(调debug)

vim .env.prod

LOG_LEVEL=DEBUG

适配器

nb adapter list

nb adapter install "OneBot V11"