记一次购买海外服务器的经历和python包管理小记

概述

最近在研究ChatGPT,需要有个服务器一直挂着,刚好看到raksmart在搞活动;

可以关注下,他们的活动页面
https://billing.raksmart.com/whmcs/index.php?rp=%2Fannouncements&language=chinese-cn

刚好四月,有便宜的云服务,可以用来挂GPT。大概思路,就是利用QQ机器人去请求openAI的接口,这样,QQ里就有了一个全知全能的私人助手。

为此,我们需要:

  1. 海外云服务器或vps(选海外因为便宜,另一方面,它请求openAI接口,不需要VPN)
  2. QQ机器人程序,自己写好
  3. 为了防止云服务器的ip被墙,给他套一个CDN的壳。

海外服务器

官方地址:https://billing.raksmart.com/

该云服务提供商,时不时会有秒杀超低价活动,注意看活动公告:https://billing.raksmart.com/whmcs/index.php?rp=%2Fannouncements&language=chinese-cn

我买的是这个:

当然已经没货了,这个自己留意下,当月的活动情况。有秒杀就直接下手。raksmart支持支付宝支付,很方便。
购买后,长这个样子:

服务器有了,还需要远程登录客户端,这里推荐:finalShell,国人研发的,用java组件写的,很方便,很强大。

finalShell官方地址:http://www.hostbuf.com/c/131.html

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上传就可以了:

我的执行命令如下:

cp /dev/null nohup.out | nohup python qqbot.py 2>&1 > nohup.out &
# qqbot.py 就是我的机器人文件

海外CDN地址

为了安全起见,我们给云服务器ip套一个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项目中,我们会引入第三方包,部署到服务器上后,又得一个一个重新安装,很麻烦。
解决办法:

  1. 先在本机电脑上安装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 

这样第三方包就会安装下来。也就不需要我们一个个安装了。

总结

  1. raksmart上购买云服务器
  2. 使用python参考官方,编写QQ机器人,调用openAI接口
  3. 利用finalshell上传文件,部署执行。
  4. 原本还有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有没有被墙

本文链接:https://my.lmcjl.com/post/12143.html

展开阅读全文

4 评论

留下您的评论.