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

article/2024/9/20 10:53:22

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

  • 1 服务器准备
  • 2 云服务器配置
    • 2.0 FTP配置
    • 2.1 python虚拟环境
      • 2.1.1 python3.9安装配置
      • 2.1.2 下载python项目
      • 2.1.3 创建python虚拟环境
  • 3 项目“服务化”(后台运行python项目)
  • 4 localURL访问(公网ip访问,域名访问)
    • 4.1 云服务器添加防火墙规则
    • 4.2 云服务器系统防火墙放开端口
    • 4.3 修改python项目中的端口
  • 5 域名访问
    • 5.1 备案
    • 5.2 修改DNS解析(不想备案那就Cloudflare)

1 服务器准备

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

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

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

2 云服务器配置

2.0 FTP配置

上一篇文章写了如何配置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_name\Scripts\activate
    
  4. 现在就处于虚拟环境中,可以自行安装相应的安装包了。本项目中,

    python -m pip install -r requirements.txt
    

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

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

    python main.py
    

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

在这里插入图片描述

这时候就已经好了。确实可以通过public URL 来打开,

至于能不能回答问题,这取决于你的APIkey是否正确以及代理地址是否正确。

在这里插入图片描述

but,有个很尴尬的问题,当你退出python程序后,程序就退出了,链接就失效了。

而当你本地主机关闭与云服务器的连接时,python程序也就退出了,

若不关闭连接就不能脱离本地主机运行,那上云的意义何在?

那么,如何永驻?

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表示标准输出 ,所以结合起来就是把错误信息重定向到标准输出

  • & 这个表示在后台运行

然后具体的输出信息就可以在logfile.log文件里面看到,查看的命令是:

cat logfile.log

localURLpublicURL都在里面,包括你的web端口,代理信息等等。虽然publicURL说的是72小时有效,但是经过我的实测,是无限期的,开心吧。

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

kill -9 PID

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

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

ps aux |grep main

That’s all.

但是这个经过huggingface转发的链接会导致加载比较慢。而且如果你想要通过你的公网ip访问或者是通过你的域名访问,

考虑localURL

4 localURL访问(公网ip访问,域名访问)

要直接通过localURL来访问的话,需要给云服务器添加防火墙规则,并在云服务器系统中放开端口。

4.1 云服务器添加防火墙规则

在这里插入图片描述

4.2 云服务器系统防火墙放开端口

不用iptables,用firewalld

  1. 开启防火墙服务firewalld
# 开启防火墙服务
sudo service firewalld start
或者
sudo systemctl start firewalld
# 重启防火墙服务
sudo service firewalld restart
# 关闭防火墙服务
sudo service firewalld stop
  1. 查看防火墙服务状态
# 查看防火墙服务状态
sudo systemctl status firewalld
# 查看防火墙状态
sudo firewall-cmd --state
  1. running状态下,向firewall添加需要的端口
# 查看防火墙服务状态
sudo firewall-cmd --permanent --zone=public --add-port=666/tcp
或者
sudo firewall-cmd --zone=public --add-port=5151/tcp --permanent# 重新加载配置
sudo firewall-cmd --reload

命令的作用是以管理员身份对公开域永久开放tcp协议的666和5151端口,即允许这两个端口的tcp流量通过。

自己要哪些端口就加那些。

如果加错了想删除,把add-port改成remove-port就行,比如google禁用了一些不安全端口:
google限制端口
其中6666就在里面,

sudo firewall-cmd --permanent --zone=public --remove-port=6666/tcp
  1. 查看已经放开的端口
# 查看对公开域永久放开的端口
sudo firewall-cmd --permanent --zone=public --list-ports
或者
# 列出所有的firewalld规则
sudo firewall-cmd --list-all

如果你是先后台运行了python项目,找到了随机的web端口,然后加了防火墙规则,这时候已经可以通过公网ip+端口访问这个web应用了。

如果你想固定这个放开的端口,以免每次运行都要重新放开端口,那就修改python配置文件设置固定端口。

4.3 修改python项目中的端口

到python项目路径下修改config_private.py配置文件中的端口,WEB_PORT = -1表示每次开机的端口都是随机的,比较麻烦,所以我改成自己想放开的端口,对应上前面的防火墙规则。

在这里插入图片描述

在这里插入图片描述

然后像第三章那样重新运行就可以了。

5 域名访问

5.1 备案

搞了几天,极其麻烦,要求还严格,心态崩了。

5.2 修改DNS解析(不想备案那就Cloudflare)

Cloudflare dashboard
注册账号开始免费使用就行了。

  1. Cloudflare dashboard注册账号开始免费使用。
  2. 添加站点(Add site),输入你的域名。
  3. 然后按着说明操作就行了,不会就按照默认的来,一路保存到最后,保存他给出的DNS server(待会要修改到云服务器的DNS服务器)。提交完后续24小时内会收到Cloudflare解析完的邮件:
    在这里插入图片描述
  4. 在自己买的域名的云产品里面找到域名注册,然后选择管理域名,在DNS解析里修改DNS服务器,换上刚才保存的地址。

在这里插入图片描述
在这里插入图片描述
5. 等他生效,

https解析,,,待写。


http://chatgpt.dhexx.cn/article/hF2tZ1EP.shtml

相关文章

ChatGPT技术与市场动态

ChatGPT服务器,深度拆解(2023) ChatGPT发布之后,引发了全球范围的关注和讨论,国内各大厂商相继宣布GPT模型开发计划。据各公司官网,2023年2月7日,百度宣布将推出ChatGPT类似产品“文心一言”&am…

ChatGPT技术与商业模式及产业发展布局方案

文章目录 模块一:概念模块二:架构模块三:技术模块四:算力模块五:体验模块六:应用模块七:商业模块八:产业模块九:建议 结语 主要内容: 采用模块化教学方法&…

对ChatGPT的二十点看法

TJUNLP 作者 | 熊德意 编辑 | 黄宇霏 【导读】二十点看法分为五大部分:总体看法、ChatGPT技术发展、国内同类技术、ChatGPT背后大模型技术的争议、未来趋势。 一、总体看法 1. 从人工智能发展角度看,这是认知智能发展的一个重要里程碑,其意义…

ChatGPT 都在用的身份认证产品,你了解多少?

近期,人工智能研究公司 OpenAI 正式推出 ChatGPT,这是一种基于对话的人工智能聊天机器人模型,它能够理解自然语言并以自然语言的方式做出回应。上线不到一周,用户数已经突破 100 万大关。 上线仅 5 天用户数就突破百万大关&#…

初谈 ChatGPT

引子 最近,小编发现互联网中的大 V 突然都在用 ChatGPT 做宣传:“ChatGPT不会淘汰你,能驾驭ChatGPT的人会淘汰你”、“带领一小部分人先驾驭ChatGPT”。 确实,ChatGPT这个新生事物,如今被视为蒸汽机、电脑、iPhone 般的…

为什么说百度下个月推出文心一言会被ChatGPT完全碾压

作者,姚远: Oracle ACE(Oracle和MySQL数据库方向)华为云MVP 《MySQL 8.0运维与优化》的作者中国唯一一位Oracle高可用大师拥有包括 Oracle 10g和12c OCM在内的20数据库相关认证。曾任IBM公司数据库部门经理现在一家第三方公司任首…

华为阿里版ChatGPT横空出世,谁的成效更好呢?

“你训练的大模型涌现了吗?”“还没有。好难受。”一时间成为了最近AI赛道玩家的一个爆热梗。 不管承不承认,相信每个玩家都不愿意输掉这场激烈的竞争。自百度成为国内“第一个吃螃蟹的人”后,又有两大中国科技巨头做好了准备——华为和阿里…

干货!​如何打造我们自己的“ChatGPT”?| 大佬思辨

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 火爆全网的ChatGPT究竟是什么?为什么这么强?ChatGPT会取代搜素引擎吗?ChatGPT凸显的能力会是metaverse的有力支撑吗?ChatGPT的火爆背后, AI发展路向何方? 2022年…

华为版ChatGPT要来了!

ChatGPT狂飙160天,世界已经不是之前的样子。 新建了人工智能中文站https://ai.weoknow.com 每天给大家更新可用的国内可用chatGPT资源 6月3日消息,钛媒体App近日从华为内部独家获悉,华为公司将发布一款直接对标ChatGPT的多模态千亿级大模型产…

我不谈ChatGPT

(1)数据 有两个未经证实的传闻: 1、客服问答:80%用户问的问题都是那20%常见问题,但是就是这样,占用了客服人员80%的工作量和工作时间2、资讯搜索:谷歌一位员工说,在互联网上&#xf…

网络疯传华为面试题:800公斤牛,过承重700公斤的桥,有答案了?

前不久,华为一道面试题流传于网络:一头牛重800千克,一座桥承重700千克,牛怎么过桥? *图:源自网络,如侵删 面对这种看似无聊却又考验思维能力和底层逻辑的面试题,你会怎么回答&…

爆发前夜!华为阿里版ChatGPT!

本文经授权转载自微信公众号:51CTO技术栈,作者 | 徐杰承,审校 | 云昭 “你训练的大模型涌现了吗?”“还没有。好难受。”一时间成为了最近AI赛道玩家的一个爆热梗。 不管承不承认,相信每个玩家都不愿意输掉这场激烈的竞…

ChatGPT做到人人都可以配置思科华为网络设备

最近有个一个想法,chatgpt能不能帮忙配置网络设备,于是我开始在网上找了个拓扑图。 然后我将拓扑图及需求,以prompt的形式发送给chatgpt,然后chatgpt根据我的要求,将所有节点的配置全部输出了出来,真是一个…

震惊!火爆全网的ChatGPT背后使用的数据库居然是……

摘要:ChatGPT承认了自己背后使用的数据库是Cassandra。 OpenAI最近发布的AI驱动的智能聊天机器人ChatGPT在互联网上掀起了一阵风暴,热衷于尝试这一新AI成果的网民不在少数。ChatGPT针对网友广泛的问题提供了非常有针对性的回答,其不可思议的能…

不定期更新:我对 ChatGPT 进行多方位了解后的报告,超级全面,建议想了解的朋友看看

优质介绍视频: GPT4前端【AI编程新纪元】 【渐构】万字科普GPT4为何会颠覆现有工作流;为何你要关注微软Copilot、文心一言等大模型 此文章不定期更新(一周应该会更新一次) 最近一次更新:2023.5.17 23:00(…

ChatGPT将颠覆我们生活?

一款由OpenAI开发的消费级别的强人工智能应用ChatGPT横空出世! ChatGPT推出仅两个月,月活用户突破1亿,成为史上用户增长速度最快的消费级应用程序。 关于ChatGPT,马斯克在去年12月就曾公开表示称:ChatGPT好得吓人&am…

终于,乔姆斯基出手了:追捧ChatGPT是浪费资源

编辑:蛋酱、泽南 Colorless green ideas sleep furiously. 人类语言语法的基础不可能是基于统计意义的。 ChatGPT 掀起了科技领域最新的一轮军备竞赛,但留给 AI 领域的议题还有很多:ChatGPT 是一种真正的创新吗?是否意味着初步的通…

语言学巨头乔姆斯基评ChatGPT:缺乏任何智能的关键能力,追捧就是浪费资源

编|蛋酱、泽南源|机器之心 Colorless green ideas sleep furiously. 人类语言语法的基础不可能是基于统计意义的。 ChatGPT 掀起了科技领域最新的一轮军备竞赛,但留给 AI 领域的议题还有很多:ChatGPT 是一种真正的创新吗&#xff…

最新ChatGPT GPT-4 相似匹配Embedding技术详解(附ipynb与python源码及视频讲解)——开源DataWhale发布入门ChatGPT技术新手从0到1必备使用指南手册(一)

目录 前言最新ChatGPT GPT-4 相似匹配Embedding技术详解1. 何为Embedding2. 相关API2.1 LMAS Embedding API2.2 ChatGPT Style 3. Embedding应用3.1 QA3.2 聚类3.3 推荐 相关文献 参考资料其它资料下载 前言 如果您想提高ChatGPT中文本处理的效率和精度,那么Embedd…

ChatGPT的前世今生

作者🕵️‍♂️:让机器理解语言か 专栏🎇:NLP(自然语言处理) 描述🎨:让机器理解语言,让世界更加美好! 寄语💓:🐾没有白走的…