记一次购买海外服务器的经历和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支持支付宝支付,很方便。
购买后,长这个样子:

操作系统选择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 messages
    messages.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上传就可以了:

在这里插入图片描述

  1. 不过由于服务器是海外的,所以上传文件的话,需要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 --version

Command 'python' not found, did you mean:

  command 'python3' from deb python3
  command '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 pipreqs
  Using cached pipreqs-0.4.11-py2.py3-none-any.whl (32 kB)
Collecting docopt
  Using 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有没有被墙

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山鬼谣me

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值