概述
最近在研究ChatGPT,需要有个服务器一直挂着,刚好看到raksmart在搞活动;
可以关注下,他们的活动页面
https://billing.raksmart.com/whmcs/index.php?rp=%2Fannouncements&language=chinese-cn
刚好四月,有便宜的云服务,可以用来挂GPT。大概思路,就是利用QQ机器人去请求openAI的接口,这样,QQ里就有了一个全知全能的私人助手。
为此,我们需要:
- 海外云服务器或vps(选海外因为便宜,另一方面,它请求openAI接口,不需要VPN)
- QQ机器人程序,自己写好
- 为了防止云服务器的ip被墙,给他套一个CDN的壳。
海外服务器
官方地址:https://billing.raksmart.com/
该云服务提供商,时不时会有秒杀超低价活动,注意看活动公告:https://billing.raksmart.com/whmcs/index.php?rp=%2Fannouncements&language=chinese-cn
我买的是这个:
当然已经没货了,这个自己留意下,当月的活动情况。有秒杀就直接下手。raksmart支持支付宝支付,很方便。
购买后,长这个样子:
操作系统选择Ubuntu:Ubuntu-20.04.1-x64(自选),不要选择centos,因为已经不再维护了。
服务器有了,还需要远程登录客户端,这里推荐:finalShell
,国人研发的,用java
组件写的,很方便,很强大。
finalShell官方地址:http://www.hostbuf.com/c/131.html
登录密码是右上角的密码,不是控制面板密码
Raksmart也有自己的远程登录页面:https://svm.raksmart.com:5656/login.php
连接海外服务器,不用翻墙,但是上传文件需要
QQ机器人程序
这里的话,直接看QQ官方自己的例子:https://github.com/tencent-connect/botpy
我选的是python,很简单,上手很快。
这里贴出请求openAI 接口的例子:
import openai
messages = []
def openaiTest(message):print("准备调用openai:" + message)global messagesmessages.append({"role": "user", "content": message})response = openai.ChatCompletion.create(model="gpt-3.5-turbo", messages=messages)print("调用openai结束")print(response)return response["choices"][0]["message"]["content"]
上面的入参message
,就是QQ机器人传入的参数,看了QQ机器人的例子,自然就明白了。
接下来就是部署执行。
部署执行
将编写好的QQ机器人python文件,上传到服务器上。
怎么上传呢?利用finalshell上传就可以了:
- 不过由于服务器是海外的,所以上传文件的话,需要fan qiang。
2.Ubuntu系统使用python命令遇到小麻烦,可以参考下文中 遇到的问题。
我的执行命令如下:
cp /dev/null nohup.out | nohup python qqbot.py 2>&1 > nohup.out &
# qqbot.py 就是我的机器人文件
海外CDN地址
为了安全起见,我们给云服务器ip套一个CDN,防止被防火墙拉黑名单。
原理就是,我们请求CDN,然后由CDN请求我们的云服务器,防火墙不可能把海外CDN拉黑。真拉黑就等于全面与世界断网。那时什么手段都翻不出去。
cloudflare官网
由图可知,我们需要一个域名。
海外域名 – 阿里云海外版
由于CDN需要用到域名,所以我们注册一个海外域名。
特别说明是海外版,不是中国站的。
https://www.alibabacloud.com/zh?spm=a3c0i.9044345.6791778070.3.259262bfv6YlZk
https://www.alibabacloud.com/zh/free
特别注意:这里付钱的时候,有个要求:要么你得有海外的信用卡,比如visa卡;要么你得有海外的PayPal(国内的PayPal没用)。
如果都没有,就得自己想办法弄到。不然进行不下去。
遇到的问题
Ubuntu系统中python问题
Ubuntu系统包管理器是apt
# 安装是的python2
apt install python
# 安装python3
apt install python3
安装好之后,当你执行python --version
,它会告诉你,找不到python命令。
root@C20230408:~/pythonproject/chatgpt# python --versionCommand 'python' not found, did you mean:command 'python3' from deb python3command 'python' from deb python-is-python3
但是从Ubuntu 版本20开始,可以执行:
# 将python到python3的符合链接创建好,这样使用python就是python3
sudo apt install python-is-python3# 如果想还原的话,移除即可
sudo apt remove python-is-python3
python包安装的问题
python项目中,我们会引入第三方包,部署到服务器上后,又得一个一个重新安装,很麻烦。
解决办法:
- 先在本机电脑上安装pipreqs
pip install pipreqs# 有时会遇到如下错误
Collecting pipreqsUsing cached pipreqs-0.4.11-py2.py3-none-any.whl (32 kB)
Collecting docoptUsing cached docopt-0.6.2.tar.gz (25 kB)Preparing metadata (setup.py) ... done
ERROR: No .egg-info directory found in C:\Users\yutao\AppData\Local\Temp\pip-pip-egg-info-baemoac1# 遇到上述错误就将setuptools卸载掉,然后再安装
pip uninstall setuptools
然后在本机电脑上,进入python项目目录执行:
PS E:\openai\project\Chatbot> pipreqs ./ --encoding=utf-8 --force
INFO: Successfully saved requirements file in ./requirements.txt
也就是它会生成项目中用到的安装包记录到requirements.txt
文件中。
而后我们再把这个文件上传到云服务器上,并执行如下命令:
root@C202304081:~/pythonproject/chatgpt# pip install -r requirements.txt
这样第三方包就会安装下来。也就不需要我们一个个安装了。
总结
- 去raksmart上购买云服务器
- 使用python参考官方,编写QQ机器人,调用openAI接口
- 利用finalshell上传文件,部署执行。
- 原本还有CDN套壳的,但是我的visa卡还在申请中
参考地址:
https://www.youtube.com/watch?v=ESOjdn0aIlk
ERROR: No .egg-info directory found in C:\xxx\xx\xxx
https://github.com/tencent-connect/botpy
Command ‘python’ not found!解决Ubantu20 python 是 python3
python项目打包部署
美国免费的在线接码平台
一个免费好用的国外在线接收验证短信的网站文章
检测ip有没有被墙