使用海外服务器部署GPT-Academic以及实现HTTPS访问

GPT_Academic(下面简称GA)作为基于GPT模型开发的学术辅助工具,功能丰富、部署方式多样。目前的star数量已经达到32.5k(截止发稿时)。之前的文章中有讲解本地部署GA的方法,这篇文章将会对云服务器部署方法进行详解。

1.获得一台海外云服务器

获得海外云服务器的方法很多,付费、免费的方法目前均有。付费的方法例如通过腾讯云或者阿里云购买海外服务器,如果使用人数不多需求不大,可以买最基础的版本。腾讯云最基础版本的海外云服务器是32元/月,阿里为24元/月,配置稍有差别,但是都够用。买的时候尽量别买香港地区的服务器。免费的方法例如阿里云海外版的学生认证,可以免费获得一年的试用机会等。! 36ece7fce35329b0db1be3bcc5dd79b8.jpeg

2.准备云服务器环境

购买云服务器时,我这里选择的系统是ubuntu20.04。首先是基础的配置环境,包括设置ssh连接相关设置、用户和根用户密码修改、apt源的修改更新等等。这些最基本的东西设置好以后。开始安装软件。 第一步,安装Miniconda,这里直接给到清华源镜像的Miniconda Linux X86点击下载。下载后使用bash命令直接安装。

bash Miniconda3-py310_23.1.0-1-Linux-x86_64.sh

开始安装后,需要按照指示铵Enter键继续,按照提示输入yes,最后一部是否加入系统环境也选择yes,安装完成后加载环境变量:

source /root/.bashrc

当你的命令行前面出现(base)则代表安装成功。 第二步,conda换源,直接输入下面的代码

conda config --add channels 'https://mirrors.bfsu.edu.cn/anaconda/pkgs/main'
conda config --add channels 'https://mirrors.bfsu.edu.cn/anaconda/pkgs/r'
conda config --add channels 'https://mirrors.bfsu.edu.cn/anaconda/cloud/numba'
conda config --add channels 'https://mirrors.bfsu.edu.cn/anaconda/cloud/bioconda'
conda config --add channels 'https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge'

第三步,创建GA运行的环境

conda create -n gpt python=3.11

按照提示选择yes即可 3.下载GA并部署 第四步,在github下载GA,这里放上链接(https://github.com/binary-husky/gpt_academic/releases),一般下载最新版本的.tar.gz版本。下载完成后上传到服务器,解压进入目录做好准备:

tar zxvf source code.tar.gz
cd gpt_academic

第五步,安装需求的Python依赖。首先我们进入到conda的gpt环境:

conda activate gpt

当命令行前面的(base)变成了(gpt)就可以开始安装依赖了。我们在GA的目录下运行命令

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/

等待python安装以来包 第六步,修改GA的相关配置文件。首先复制config,py并命名为config_private.py,修改其中的配置,例如API-key的设置、布局上下或左右的设置、是否开启看板娘的设置,如果是多人使用,还可以开启账号密码登录。不过即使不是多人使用,也建议设置一个账号密码,不然别人打开网页就可以使用,会耗费自己的API-key。 设置完config_private.py后,配置main.py文件。这里我们打开后跳转到最后一行可以看到这样一行代码

demo.queue(concurrency_count=CONCURRENT_COUNT).launch(server_name="0.0.0.0", server_port=PORT, auth=AUTHENTICATION, favicon_path="docs/logo.png")

我们把server_port后面的PORT改为我们希望使用的端口。关于端口这里我们扩充说一下:

1.如果你想通过IP地址直接访问,把端口改为80,然后运行后就可以直接在浏览器输入http://你的ip地址 就可以访问了。如果你有自己的域名,在DNS服务商把解析设置到该IP,就可以通过 http://你的域名 进行访问了。 2.如果你想通过IP或域名直接访问,这里我建议不要使用80端口,可以换用别的端口号,例如随便一个110端口。我们把server_port后面的PORT改为110,然后运行main.py,就可以使用http://你的ip地址:110或http://你的域名:110访问。 3.如果你想使用域名访问并且希望可以部署SSL证书,那本文最后会讲部署方法。

设置完main.py后,我们运行它

python main.py

运行后系统提示api-key已导入等等内容,只要没报错,就可以打开浏览器输入ip地址,如果不是80端口的,在ip后面输入端口号,就可以访问一下测试是否能正常使用了。

4.为域名部署SSL证书 SSL证书的获取可以从云服务商处获取免费SSL这书,这里博主从腾讯云获取的免费1年的Trust Asia证书。 第一步,安装Nginx

apt install nginx

第二步,将证书上传到服务器,准备配置nginx。这里博主是在/etc/nginx/sites-available文件夹下创建了chatgpt文件夹并把证书文件放进去了。 我们在/etc/nginx/sites-available中创建一个文件

vim chatgpt

随后输入下面这些代码

server {
    listen 80;
    server_name you_domain_name;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name you_domain_name;

    ssl_certificate /etc/nginx/sites-available/chatgpt/ you_domain_name.pem;
    ssl_certificate_key /etc/nginx/sites-available/chatgpt/ you_domain_name.key;


    location / {
        proxy_pass http://localhost:PORT;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

你需要将上面这段代码中所有的you_domain_name换为你部署该项目用的域名的名字。同时把proxy_pass http://localhost:PORT; 这句代码后面的PORT换为你在设置 main.py时server_port后面的端口号。然后保存文件。随后输入下面的命令设置软连接。

sudo ln -s /etc/nginx/sites-available/chatgpt /etc/nginx/sites-enabled/

然后重启nginx服务

service nginx restart

如果正常重启,则可以使用,如果报错可以输入nginx -t检查一下哪里有问题。

Comment