gpt_academic icon indicating copy to clipboard operation
gpt_academic copied to clipboard

海外云服务器(基于阿里云)Linux和公网解决方案

Open EricChLee opened this issue 2 years ago • 13 comments

不是专业玩家,大概根据文科大佬https://github.com/binary-husky/chatgpt_academic/issues/374的调整的。 采用的是阿里云美国服务器和Linux Ubuntu服务器系统搭建

  1. 海外阿里云可以通过学生验证获取一个轻量级(1核1G内存40G储存空间1M带宽)的云服务器,具体看这里https://www.alibabacloud.com/zh/developer/students (需要海外云,中国站不知道是否有海外服务器) image

  2. 申请需要审核,成功后会邮件通知,申请成功后配置服务器的过程参考这里: https://www.alibabacloud.com/help/doc-detail/163467.html 这里介绍的是基于ubuntu 22.0的版本,所以镜像选择的就是ubuntu。地址选择美国硅谷。

  3. 然后就是登录控制台 image

  4. 然后就是进入服务器控制台,可能后续有些组件会提示你安装,安装就行。 image

  5. 服务台里就这样子 image 6.点击远程连接,使用默认选项,立即登录。 image 这里可能会需要输入登录ubuntu的用户名和密码,用户名默认为root,密码在配置的时候有要求设置过,具体参考这里:https://www.alibabacloud.com/help/zh/elastic-compute-service/latest/quick-start-for-linux-instances 登录后大概这样子 image

  6. 安装chatgpt_academic,直接git安装 git clone https://github.com/binary-husky/chatgpt_academic.git cd chatgpt_academic(记得cd到文件夹)

  7. 使用nano 命令进入config.py文件添加chatGPT API的key,具体看主页介绍https://github.com/binary-husky/chatgpt_academic nano config.py 进入后添加API的key和修改访问端口(记住端口号,后面要添加到服务器设置中),然后按Ctrl+X,回车保存,这里按照项目推荐,最好直接保存为private_config.py。 同样的方式使用nano命令进入main.py文件,修改文件权限,修改跟这里一样https://github.com/binary-husky/chatgpt_academic/issues/374 都把最后一行中demo.queue(concurrency_count=CONCURRENT_COUNT).launch(server_name="0.0.0.0", share=True, server_port=PORT, auth=AUTHENTICATION), share=True改为False,另外根据个人需求,也可以修改一下System prompt的内容,这个对应的就是main.py中的这里: image

  8. 完成后可以使用下面的命令打开对应的端口(把5000替换成你在config.py中设置的端口) sudo ufw allow 5000/tcp 12.这时候需要回到第5步的服务器控制台这里,点击实例的名称(第5步图中被涂红的那一大块),进入实例详情 image 点击安全组,再点击配置规则 image 选择手动添加,端口写上你设置的端口 image

  9. 下面就再次回到远程连接,进入系统,同样cd到chatgpt_academic文件夹内,使用nohup命令 nohup python3 main.py 就可以创建一个后台运行的访问系统,通过你的服务器的公网IP(第五步可以查询到)加上端口号就可以访问了 示例:公网IP为14.253.15.24,设置端口为5631则直接再浏览器输入14.253.15.24:5631访问。

  10. 如何结束进程,需要结束进程的时候则使用命名ps aux | grep main.py搜索后台执行的PID,使用kill PIDnumber结束进程,调试阶段可以不用nohup python3 main.py命令,而直接使用python3 main.py这样子可以直接运行,使用Ctrl+C停止进程,这种情况下退出远程登录也会直接结束进程(时刻记得先cd到chatgpt_academic路径再运行)。

EricChLee avatar Apr 08 '23 22:04 EricChLee

直接docker不是更方便吗

ShayDuane avatar Apr 09 '23 15:04 ShayDuane

自学小白,对docker使用很不熟练,所以就没用docker,我也摸索一下,我看到你的里面有个ChatGPT-Next-Web,感觉很好的样子,我要如何搬到我的云上面呢?

EricChLee avatar Apr 09 '23 16:04 EricChLee

@EricChLee 那个项目是我fork的,不用服务器可以直接一键部署,也可以部署在服务器上,国内服务器的话准备好代理和key,最简单的部署还是docker ,Google一下docker 官网,按照文档安装就几行命令,然后项目里readme 往下拉有docker部署的方案,docker run的时候填上你的代理和key还有访问密码啥的,直接运行就行,最后打开浏览器ip 加端口就可以访问了

ShayDuane avatar Apr 09 '23 17:04 ShayDuane

@RuSignalFlag 多谢多谢,确实docker方便很多啊,已经部署了ChatGPT-Next-Web了。 image 可以直接设置密码也是比较方便和安全的。

EricChLee avatar Apr 09 '23 18:04 EricChLee

如果希望在服务器上使用docker部署的话,可以参考以下步骤(其中前几点和master上的前几点都是一样的): 1、在你的指定目录下执行

git clone https://github.com/binary-husky/chatgpt_academic.git

2、cd chatgpt_academic 3、将config.py的内容拷贝到config_private.py中(如果不需要设置自己的config,可忽略)

cp config.py config_private.py

4、根据master指引,修改自己的配置,分别是以下几项:

# Your Key是自己的api key,此处位于第二行
API_KEY = "Your Key"

# 由于我是国外的服务器,所以USE_PROXY设置的是false,即默认值未做修改
USER_PROXY = False

# 修改自己的暴露端口,我选的是443,此处位于37行
WEB_PROT = 443

5、可选,修改镜像源 国外服务器访问DockerFile里的阿里镜像可能会慢,所以我去掉了其对镜像源的指定,如果也需要取消,可参考以下步骤:首先确保自己位于chatgpt_academic目录下,执行命令vim Dockerfile,删除3~5行的内容,结果如下

FROM python:3.11
  
WORKDIR /gpt
COPY requirements.txt .
RUN pip3 install -r requirements.txt

COPY . .

CMD ["python3", "-u", "main.py"]

6、打包Docker镜像,和master教程一致,命令为:

docker build -t gpt-academic .

7、运行Docker镜像,使用以下命令:

# --name可选,是给容器起的名字,-d是为了让他后台运行,443:443是为了把端口暴露出去
# 请确保暴露的端口telnet的通,同时此端口没有其他服务运行
docker run -itd --name chat -p 443:443 gpt-academic

8、可选 如果要更新怎么办 比如说key要换,或者某个配置错了,可以修改文件之后,按照第六步打一个新包,然后执行以下三条命令:

# 暂停原容器,如果没有设置名字,那这里的chat就用gpt-academic
docker stop chat

# 删除原容器,如果没有设置名字,那这里的chat就用gpt-academic
docker rm chat

# 重新执行第七步的命令
docker run -itd --name chat -p 443:443 gpt-academic

Marfars avatar Apr 13 '23 11:04 Marfars

请问这个需要重新注册吗,我在注册的时候发现没有中国,只有中国香港啥的

gysabc avatar Apr 19 '23 10:04 gysabc

这个没注意到啊,是注册账号阶段吗?不记得了,要不发个截图看看。

EricChLee avatar Apr 19 '23 11:04 EricChLee

这个没注意到啊,是注册账号阶段吗?不记得了,要不发个截图看看。

1

2

3

4

如最后一张图所示,在选择国家的地方,没有中国大陆

gysabc avatar Apr 19 '23 11:04 gysabc

这个没注意到啊,是注册账号阶段吗?不记得了,要不发个截图看看。

但是我在阿里云中国站控制台厘米看到有海外服务器可以购买

gysabc avatar Apr 19 '23 11:04 gysabc

这个没注意到啊,是注册账号阶段吗?不记得了,要不发个截图看看。

但是我在阿里云中国站控制台厘米看到有海外服务器可以购买

但是中国站免费试用的服务器在国内。。。。

gysabc avatar Apr 19 '23 11:04 gysabc

这个没注意到啊,是注册账号阶段吗?不记得了,要不发个截图看看。

但是我在阿里云中国站控制台厘米看到有海外服务器可以购买

但是中国站免费试用的服务器在国内。。。。

原来如此,没注意到这个问题,那估计是,手机验证这步估计得要个国外号码吧

EricChLee avatar Apr 19 '23 16:04 EricChLee

这个没注意到啊,是注册账号阶段吗?不记得了,要不发个截图看看。

但是我在阿里云中国站控制台厘米看到有海外服务器可以购买

但是中国站免费试用的服务器在国内。。。。

这个方案需要阿里云海外账户,直接注册海外阿里云需要地区选国外,且需要国外手机号接收验证码,然而SMS-Activate这样的平台上并没有针对阿里云海外注册开通的虚拟收码业务...

EmanuellaS826 avatar Apr 22 '23 16:04 EmanuellaS826

怎么绑定域名呢,有自己的域名,不想用ip+端口

yanlc-1 avatar Apr 25 '23 13:04 yanlc-1

怎么绑定域名呢,有自己的域名,不想用ip+端口

同问,我想知道怎么通过nginx代理这个网站

piwawa avatar Jun 24 '23 07:06 piwawa

如果希望在服务器上使用docker部署的话,可以参考以下步骤(其中前几点和master上的前几点都是一样的): 1、在你的指定目录下执行

git clone https://github.com/binary-husky/chatgpt_academic.git

2、cd chatgpt_academic 3、将config.py的内容拷贝到config_private.py中(如果不需要设置自己的config,可忽略)

cp config.py config_private.py

4、根据master指引,修改自己的配置,分别是以下几项:

# Your Key是自己的api key,此处位于第二行
API_KEY = "Your Key"

# 由于我是国外的服务器,所以USE_PROXY设置的是false,即默认值未做修改
USER_PROXY = False

# 修改自己的暴露端口,我选的是443,此处位于37行
WEB_PROT = 443

5、可选,修改镜像源 国外服务器访问DockerFile里的阿里镜像可能会慢,所以我去掉了其对镜像源的指定,如果也需要取消,可参考以下步骤:首先确保自己位于chatgpt_academic目录下,执行命令vim Dockerfile,删除3~5行的内容,结果如下

FROM python:3.11
  
WORKDIR /gpt
COPY requirements.txt .
RUN pip3 install -r requirements.txt

COPY . .

CMD ["python3", "-u", "main.py"]

6、打包Docker镜像,和master教程一致,命令为:

docker build -t gpt-academic .

7、运行Docker镜像,使用以下命令:

# --name可选,是给容器起的名字,-d是为了让他后台运行,443:443是为了把端口暴露出去
# 请确保暴露的端口telnet的通,同时此端口没有其他服务运行
docker run -itd --name chat -p 443:443 gpt-academic

8、可选 如果要更新怎么办 比如说key要换,或者某个配置错了,可以修改文件之后,按照第六步打一个新包,然后执行以下三条命令:

# 暂停原容器,如果没有设置名字,那这里的chat就用gpt-academic
docker stop chat

# 删除原容器,如果没有设置名字,那这里的chat就用gpt-academic
docker rm chat

# 重新执行第七步的命令
docker run -itd --name chat -p 443:443 gpt-academic

大佬,想问一下 在打包镜像那一步,有两个文件始终下载不下来,通过vim也改过镜像了还是下载不下来

ghostning avatar Dec 17 '23 07:12 ghostning