做好前期准备
- 一台云服务器
- 一个chatgpt账号,带有apikey,用于使用api接口
- github账号 ,用于获取项目
- 还有就是一颗愿意折腾,好奇的心,打造属于自己私人小助手和小群体的群聊助手伙伴
效果图
![](https://cdn.jsdelivr.net/gh/Bevis23/blog-pic/bot%E6%95%88%E6%9E%9C%E5%9B%BE.png)
服务器选择
由于api接口后期也被墙了,使用境外服务器的话就不需要配置代理,相对方便;
我个人是弄了一台腾讯云,轻量级, CentOS7.6的操作系统 ;新人首次112一年,够用;
chatgpt账号注册
注册的话,用邮箱,用sms接码验证便可注册,这里不具体阐述,会自带5$的api额度
github账号
直接账号注册,做好相关配置,获取机器人项目
项目地址:https://github.com/zhayujie/chatgpt-on-wechat
项目克隆步骤:
1配置ssh key
到服务器输入命令:
ssh-keygen -t rsa -C "xxxx@test.com" #然后一直回车即可
2 输入以下命令,查看,复制生成的key :
cat ~/.ssh/id_rsa.pub
3将复制的内容放置于github上ssh keys上,保存即可
部署操作步骤
安装相关工具和环境部署
环境要求为python3.9+版本
查看一下服务器是否有下载python和git:
[root@miyi_server ~]# python3 -V
Python 3.9.2
[root@miyi_server ~]# git --version
git version 1.8.3.1
我已经安装,假设你的服务器还没安装的话,则做如下操作,代码和注释已经很清晰,照着来就可以
yum update #更新下yum源
yum install -y git #安装git
cd /home #切换到/home目录下
git clone git@github.com:zhayujie/chatgpt-on-wechat.git #去github仓库克隆项目
yum install -y wget #安装wget,用于从Web服务器上下载python3文件
wget https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tgz #下载文件
tar -xzvf Python-3.9.2.tgz #对文件进行解压
yum install -y gcc # 从这里开始安装相关依赖
yum install -y zlib-devel
yum install openssl-devel
yum install libffi-devel
配置python环境
对python进行相关操作
cd /home/Python-3.9.2 #进入目录
##编译python
./configure
make altinstall
ln -s /usr/local/bin/python3.9 /usr/bin/python3 #加入软链接,指向该目录
yum install -y python3-pip #安装pip3
##安装相关依赖包
pip3 install itchat-uos==1.5.0.dev0 #安装微信机器人的包
pip3 install --upgrade openai #对openai 的包进行更新
##假如更新过后python的版本发生了改变,则需要重新设置一下
rm /usr/bin/python3 #删除python3软连接
ln -s /usr/local/bin/python3.9 /usr/bin/python3 #重新加入软连接
pip3 install --upgrade openai #对openai 的包进行更新
项目配置文件操作
python相关配置完成之后,对项目目录进行设置,配置相关参数
cd ../chatgpt-on-wechat/ #进入项目目录
cp config-template.json config.json #负制一份配置文件
## 使用vim工具进行编辑,假设你服务器没有,只需要
yum install -y vim
vim config.json #打开配置文件
以下配置文件的内容参数解析,根据我的注释做个人设置即可
{
"open_ai_api_key": "此处输入你自己的apikey",
"model": "gpt-3.5-turbo",
"proxy": "http://127.0.0.1:7890", #这便是需要配置代理的情况,假设你是境外服务器,则没有这个
"single_chat_prefix": [
"dan" #此处为私人聊天的触发词选项,我设置为dan,私人聊天便会按照这个触发词来决定是否由bot回答
],
"single_chat_reply_prefix": "",
"group_chat_prefix": [
"@dan" #群聊触发 为@dan
],
"group_name_white_list": [
"ALL_GROUP" #设置所有群都开启bot功能
],
"group_chat_in_one_session": [
"ChatGPT测试群"
],
"image_create_prefix": [
"画",
"看",
"找" #此为图片触发词
],
"speech_recognition": true, #是否打开语音识别,针对私聊
"group_speech_recognition": false, #是否打开语音识别,针对群聊
"voice_reply_voice": false, #是否开启语音回复
"conversation_max_tokens": 10000, #回复token的限制长度
"expires_in_seconds": 3600, #响应时间
"character_desc": "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。",
"subscribe_msg": "感谢您的关注!\n这里是ChatGPT,可以自由对话。\n支持语音对话。\n支持图片输入。\n支持图片输出,画字开头的消息将按要求创作图片。\n支持tool、角色扮演和文字冒险等丰富的插件。\n输入{trigger_prefix}#help 查看详细指令。"
}
配置完成 按ESC 输入 :wq 便可以保存退出
安装运行相关的python3库
pip3 install chatgpt_tool_hub
pip3 install qrcode
pip3 install pyqrcode
python3 app.py #运行app.py,便会出现二维码,扫码登录即可使用机器人
让bot永不间断地回复
服务是用终端进行连接的,终端进程会随着终端的关闭同时关闭,这时候即使服务器24小时开着,bot也会随着终端的关闭而停止,这时候需要想个法子让它在后台一直运行
面对这个问题,采用linux下的 nohup工具便可解决
touch nohup.out #先创建一个nohup.out
nohup python3 app.py & tail -f nohup.out #让应用程序以后台方式运行,并将输出日志重定向到nohup.out文件中,同时使用tail -f命令来实时监控nohup.out文件的内容变化;
# 当需要关闭后台时候
ps -ef | grep app.py #查看进程
kill -9 进程号
到此,整个操作就完成了,可以实现微信机器人的功能了
服务器代理设置
上面提到,用国内服务器的,需要配置相关的代理服务,在这篇里不做阐述; 大体的实现是在服务器上配置代理,方式有很多种,个人使用的是clash for linux,同样需要配置后台运行,这时候使用的则是配置systemd服务了,相对方便;配置代理文件等
综上,直接使用不需要配置代理的服务器会方便很多,只需按我上面提到的操作即可。