ChatGPT-基于Ubuntu的微信聊天机器人教程

1.效果展示

rendering1

2.环境准备

2-1.服务器系统版本,Ubuntu 20.04(系统版本没什么差别,自带python版本不一样)

2-2.远程软件:putty、winSCP(都有官网,且免费)

2-3.clash机场-账号、实名的微信小号(不实名容易封号,且最好别用主号尝试)


3.实现方法

3-1.路线

3-2.具体步骤

境内服务器计费便宜,去年开通一年的腾讯云2核 2G 4M只需要65,今年涨价了。想着服务器马上到期,赶紧趁热把项目搬到阿里云上(2核 2G 3M 108元/年),顺便写个图文,保证以下涉及教程的时效性,拾人牙慧,并非原创。


1.clash配置,实现网络代理环境

价格是境内服务器的优势,而有时想要实现的项目难免需要外网环境,例如git,api调用。本着便宜能用就折腾一下的精神,为营造境外服务器相同的网络环境,需要给服务器设置代理。图省事,可以直接购买境外服务器。代理软件有很多,v2ray,小火箭,clash等,个人觉得clash最好用,本次就选用clash代理。

新开的服务器需要点“重置密码”设置一下root密码,以便能用ssh登录到终端。

打开putty,填入服务器公网ip,端口默认22,open,accept。(在服务器网页上,防火墙设置里开放22端口,阿里云默认放开)

输入root,回车,输入密码,回车。(linux系统输入的密码是看不见的,直接输就好)

进入后开始配置clash环境。

输入。可以选最新的linux版clash,替换一下最后的包名即可(/v1.17.0/clash… .gz),注意格式。

wget https://github.com/Dreamacro/clash/releases/download/v1.17.0/clash-linux-amd64-v1.17.0.gz

打开winSCP,和putty一样,填入公网ip,root,输入密码。

右键rename,重命名一下“clash-linux-amd…”这个包名,重命名为clash。这一步当然可以再putty终端上用指令操作,我不熟练,就用可视化的winSCP代替操作。有兴趣可以查linux重命名指令。

winSCP似乎没有解压操作,所以回到putty,进行clash.gz文件格式的解压。输入

gunzip -d clash.gz

输入。给予clash文件运行权限,可以在winscp中rights选项看到(按绿色环箭头刷新后),输入完指令后,有了x(可执行)的权限

sudo chmod u+x clash

输入。创建文件夹,并移动clash程序到创建的文件夹中

sudo mkdir /opt/clash

sudo mv clash /opt/clash

winSCP中进入/opt/clash文件夹中能够看到clash程序

回到putty,输入。进入clash文件夹中

cd /opt/clash

输入。第一次运行clash,会生成一个config文件(之后需要修改的),和一个mmdb文件

./clash

Country.mmdb 是 MaxMind GeoIP2 数据库中的一个文件,用于将 IP 地址映射到国家 / 地区。它包含一个 IPv4 和 IPv6 地址范围列表,以及每个地址范围对应的国家 / 地区代码。可以将其用于开发 Web 应用程序,以便根据访问者的 IP 地址获取其国家 / 地区信息,从而提供更好的用户体验和定位服务。简单来说就是可以被用来确定目标网站所在的国家或地区,从而方便选择相应的代理。

正常网络,会出现mmdb文件无法现在的情况。手动上传

打开Windows版本的clash,找到mmdb和yml结尾的文件

在Windows中将yml后缀的文件名改为config.yaml,用记事本打开,修改头部内容

打开winSCP,找到/root/.config/clash/路径,删除已有的config.yaml文件,将mmdb文件和新的config.yaml拖进去(正常没有dashboard文件夹,拿了之后步骤的图演示)

在浏览器中打开服务器的防火墙,放行7890,7891,7892,7893监听端口,以及9090 clash面板端口,端口协议tcp和udp各一个

输入。回到根目录。提醒:第一个命令不是cd,是cd+空格,指的是从当前目录退出到根目录,空格没法在文本里显示: ]

cd

进入~/.config/clash文件夹下载dashboard图形面板

cd ~/.config/clash

wget https://github.com/haishanh/yacd/archive/gh-pages.zip

此时在clash文件夹里有一个gh-pages.zip文件,如果安装了unzip程序可以调用unzip解压,我这里没有安装,所以用一个取巧的办法。打开winscp,找到root-.config-clash路径,拖出文件,在Windows下解压。同时,在clash文件夹下新建dashboard文件夹,将Windows中的yacd-gh-pages文件夹拖进去。

回到putty,输入。进入clash程序文件夹中

cd /opt/clash

启动clash,保持后台运行, &是可以后台运行的意思

./clash &

按ctrl+c退出程序,输入jobs或者jobs -l,检查后台是否有clash运行

clash的dashboard面板必须在程序执行的情况下才能打开,此时打开Windows浏览器,在网址栏输入(注意,浏览器打开dashboard面板时最好不要挂梯子,即是Windows电脑不能开代理,因为开了代理相当于境外访问境内服务器,有打不开的风险)

公网ip:9090/ui

填入http://公网ip:9090,secret处填入之前config.yaml里的密码,点add,在双击下面创建的账号进入后台,选择想要接入的线路

返回根目录,开启代理

cd

export http_proxy=http://127.0.0.1:7890 #7890为你配置的端口

export https_proxy=http://127.0.0.1:7890 #7890为你配置的端口

如需要取消终端代理(还是先测试吧)

unset http_proxy

unset https_proxy

输入。测试代理

curl -x '127.0.0.1:7890' 'www.google.com' -L

代理成功,ctrl+c退出curl

关闭clash

jobs -l

找到clash前面的代码,例如1342

kill 1342

输入jobs以后发现后台已经没有运行的程序了

至此,已经拥有了一台和境外服务器一样的环境了。


参考(排名不分先后):

https://blog.gakki.icu/linux/55

https://typecho.hanzhe.site/archives/72/

http://www.manongjc.com/detail/25-awetejegnvqjini.html

https://www.iculture.cc/cybersecurity/pig=22005?only_author=24007


2.安装微信机器人

安装步骤参照

https://github.com/zhayujie/chatgpt-on-wechat

输入。进入根目录

cd

输入。先安装git,没有git指令没法把项目拷到服务器上,中途需要按y确认一次

sudo apt update

sudo apt install git

输入。确认是否安装成功以及git版本

git --version

输入。拷贝项目

git clone https://github.com/zhayujie/chatgpt-on-wechat

重点!此时要关闭代理,不然pip3指令找不到安装版本(我试过切换python版本,试过换源pip(换了个国内的源,乐了))

还记得怎么关闭代理吗?

cd

unset http_proxy

unset https_proxy

输入。进入项目文件夹

cd chatgpt-on-wechat/

输入。安装依赖,微信机器人等

pip3 install -r requirements.txt

输入。安装拓展依赖(非必须)

pip3 install -r requirements-optional.txt

输入。配置文件,复制config-template为config文件

cp config-template.json config.json

打开winSCP,找到/root/chatgpt-on-wechat/目录,打开config.json文件,将YOURAPI KEY替换成自己的openai api(咸鱼3.5模型5块5美刀余额),在proxy处填上127.0.0.1:7890,保存。其余参数见上面的github项目介绍。

回到putty,输入。打开clash,打开代理

cd /opt/clash

./clash &

cd

export http_proxy=http://127.0.0.1:7890

export https_proxy=http://127.0.0.1:7890

输入。进入项目文件夹,运行程序

cd chatgpt-on-wechat/

python3 app.py

终端会显示一个二维码,登录微信开始聊天(默认触发词为bot以及@bot)

Clash和项目都可以不挂起,即关闭终端后一样能够运行,指令项目里有提及,这里就不赘述了。


4.总结

没什么好说的,这是我装的第二次,也是磕磕绊绊的。在国内,任何报错都有可能和网络配置有关。其实掌握了前面clash的教程,很多github上的项目都可以拷下来玩玩,例如我之前尝试的stable-diffusion AI作画,非常不错。


 

下一篇,我准备把分子动力学lammps软件的安装出了,网上的教程有很多,只看一个教程大概率是走不通的。装了也有一个月了,再装一遍的话,应该还是很吃力,尽量早点出吧。

发表评论