您现在的位置是:首页 >其他 >云服务器搭建Python项目实现学术优化chatgpt网站首页其他

云服务器搭建Python项目实现学术优化chatgpt

无衣° 2024-06-17 10:24:50
简介云服务器搭建Python项目实现学术优化chatgpt

1 服务器准备

一个可以访问openAI的服务器,内地配置具体见我上篇文章:

云函数搭建内地可用的OpenAI代理

这里用的是腾讯云服务器,OpenCloud centos 8系统

2 云服务器配置

上一篇文章写了如何配置FTP用于与linux云服务器的文件传输

云函数搭建内地可用的OpenAI代理中的第二章节

2.1 python虚拟环境

云服务器好像是自带python3.6.8的,由于项目所需环境比较新,所以要重新安装,越新越好,不然会有很多莫名其妙的问题,或者首先你就会被虚拟环境宰了。比如:
在这里插入图片描述
卸载 Python 3.6.8:

sudo yum remove python=3.6.8

或卸载 Python(建议这个,全卸了,避免某些还给你保留了python2):

sudo yum remove python

2.1.1 python3.9安装配置

  1. 安装 Python 3.9:
sudo yum -y install python=3.9
  1. 检查 Python 3.9 是否成功安装:
python --version
  1. 若安装不成功,可以尝试先安装 EPEL 仓库,再重复进行1和2
sudo yum -y install epel-release

如果你不是centos,可能自带的第三方软件包就不是yum,可以换成apt-get试试

2.1.2 下载python项目

  1. 找一个文件夹放项目,确认自己找得到这个路径。
 git clone https://github.com/binary-husky/chatgpt_academic.git

如果你没有安装git,还是要安装git,但是我觉得安装git太麻烦了,再加上从github上下载可能速度较慢,我直接自己本地下载完利用ftp传输上来的。

而且本地下载的话修改比较方便,我想你也不想用那个可恶的vim吧?

  1. 复制config.py到一个config_private.py文件,修改里面的API_URL指为上篇文章弄到的那个香港代理地址加上后面这段/v1/chat/completions

因为香港代理地址仅仅表示的是https://api.openai.com

  1. 因为是直接映射的,所以就不需要代理了,USE_PROXY = False

  2. API_KEY填自己的key

  3. 另外在main.py文件里的最后一段话里面记得加个参数share=True,否则不生成外部链接(不仅在局域网中可以访问)啊。

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

在这里插入图片描述
在这里插入图片描述

2.1.3 创建python虚拟环境

如果你的linux是带图形界面的,可以考虑用pycharm,在里面装python环境比较友好一些,摆脱命令行。

要在Python中创建一个虚拟环境,

找个文件夹放虚拟环境,我是就放在项目目录下的,

可以按照以下步骤进行操作:

  1. 安装virtualenv模块:

    pip install virtualenv
    
  2. 在命令行中,导航到要创建虚拟环境的目录,创建虚拟环境:

    virtualenv env_name
    

    其中,env_name是您要为虚拟环境指定的名称。请注意,这将会在当前目录中创建一个名为env的新文件夹,并将虚拟环境安装到其中。

  3. 激活虚拟环境。要在命令行中激活虚拟环境,请执行以下命令:

    source env_name/bin/activate
    

    在Windows系统上,要激活虚拟环境,请运行以下命令:

    env_nameScriptsactivate
    
  4. 现在就处于虚拟环境中,可以自行安装相应的安装包了。本项目中,

    python -m pip install -r requirements.txt
    

要注意,此时所在目录一定要是项目的目录,不然找不到这个requirements.txt文件,你可以pwd看看当前目录路径,也可以ls看看当前路径下有哪些文件。

  1. 有了环境,有了项目就可以直接运行了,

    python main.py
    

如果你2.1.2节中的修改没有问题,这时已经好了,并且会生成两个链接。输出大概是这样:

在这里插入图片描述

这时候就已经好了。确实可以通过public URL 来打开,
but,有个很尴尬的问题,当你退出远控登录后,程序就退出了,那么如何永驻?

3 后台运行python项目(不然不能关闭与云服务器的连接,那意义何在?)

如果不能脱离本地主机而持续存在,那上云的意义何在?

第一反应就是将程序“服务化”

想了下关键词,是后台运行。

在先前的项目目录中在先前的虚拟环境中

nohup python -u main.py > logfile.log 2>&1 &

解释:

  • nohup 不是指定的在后台运行,但是这个nohup是让程序永久运行下去,和前后台没关系(这个不用改)

  • “-u”表示不启用缓存,实时输出打印信息到日志文件(如果不加-u,则会导致日志文件不会实时刷新代码中的print函数的信息)
    但程序还是运行滴,但总体还是不舒服的,不在掌控中。就是你感觉程序好像崩了。

  • main.py 这个是项目的主程序,就是想要运行的程序

  • “> logfile.log” 这个右括号是把你的输出的日志到后边的logfile.log日志文件中

  • 2>&1 这个2表示的当出错的时候输出的错误信息 >& 这个表示重定向;1表示标准输出 ,所以结合起来就是把错误信息重定向到标准输出

  • & 这个表示在后台运行

如果没搞好,nohup命令也会给你个进程号,如果你发现有地方不对,记得杀进程再重新搞(毕竟nohup这命令是要永久后台运行!)

kill -9 PID

-9应该是一种属性比如不顾一切地杀了(千万别觉得这是进程号,我当初就是这么把自己玩崩了);PID是指进程号,就是上述命令返回的那个值。

如果你后台运行完觉得万事大吉了,然后关了,然后发现不对劲,但是找不到进程了,怎么找进程?

ps aux |grep main

That’s all.

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。