论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
数据库
›
Oracle
›
【Linux】阿里云服务器搭建gradio实例
【Linux】阿里云服务器搭建gradio实例
石小疯
金牌会员
|
2024-11-14 08:49:22
|
显示全部楼层
|
阅读模式
楼主
主题
829
|
帖子
829
|
积分
2487
0 前言
因为课程原因,需要做一个大模子相关的大作业,想到之前买的阿里云服务器,便想
在服务器基于大模子API部署一个聊天呆板人
。 因为是新手,专程做个记录,供初学者参考。
1 团体布局
聊天呆板人主要就是前端的交互界面和配景的大模子处理两个部分。其中前端的交互界面是基于
gradio
库来实现的(官网:https://www.gradio.app/);后端大模子是基于
langchain
这个一站式部署的库实现的(官网:https://www.langchain.com.cn/,API用的是国内大模子的免费API。接下来将分别介绍。
2 Python开放情况搭建
在开始介绍之前,还需要搭建一个Python情况。
阿里云服务器系统(CentOS 7.3)默认的python版本是3.6,实测在使用gradio时出现许多题目,所以建议安装高版本的Python,这里选择的是Python 3.10.14。
起首从官网下载安装包
由于gradio库需要使用到ssl,加上python 3.10支持的ssl版本要大于1.1.1,所以这里先安装SSL
2.1 SSL安装
到SSL的GitHub下载源码。
https://github.com/openssl/openssl/releases/tag/OpenSSL_1_1_1w
先解决依靠
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel
复制代码
解压openssl并编译安装
# 解压
tar -zxvf openssl-1.1.1w.tar.gz
# 进入到安装目录
cd openssl-1.1.1w/
# 配置安装路径
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl enable-shared
# 编译
make # -j 4
# 安装
make install
复制代码
安装好之后,还需要将openssl的可执行文件和库文件添加到系统能辨认的位置,如许后续编译运行对此有依靠的软件步伐就能正常执行。
# 先把原先老版本的openssl重命名一下备份
mv /usr/bin/openssl /usr/bin/openssl_backup
# 执行文件和库文件软链接,注意前面是实际位置,后面是链接存放的位置
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1
复制代码
如果加上软链接还提示找不到的话,可以将软链接放到
lib64
文件夹下,二者都是存放共享库,但是一个是32位步伐调用,一个是64位步伐调用。
安装好之后测试一下openssl的版本:
openssl version
复制代码
2.2 python安装
接下来开始安装python
和上面一样,先解决一下依靠
yum -y install gcc make
yum install libffi-devel
yum -y install zlib zlib-devel
yum -y install bzip2 bzip2-devel
yum -y install ncurses ncurses-devel
yum -y install readline readline-devel
yum -y install openssl openssl-devel
yum -y install openssl-static
yum -y install xz lzma xz-devel
yum -y install sqlite sqlite-devel
yum -y install gdbm gdbm-devel
yum -y install tk tk-devel
yum -y install mesa-libGL.x86_64
复制代码
这些依靠不肯定都要安装,可以先往后走,遇到报错再来安装
然后再到官网下载源码包,
解压python并编译安装
# 解压
tar -zxvf Python-3.10.14.tgz
# 进入到安装目录
cd Python-3.10.14/
# 配置安装路径和openssl路径
./configure
-C --with-openssl=/usr/local/openssl --with-openssl-rpath=auto --prefix=/usr/local/python310
# 编译
make # -j 4
# 安装
make install
复制代码
安装好之后,还需要将python的可执行文件的链接放到系统的情况变量中,如许就不消每次运行python还要找一波路径。
# 可以直接覆盖原来的python3,也可以像下面一样指定一个别名
ln -s /usr/local/python3/bin/python3.10 /usr/bin/python310
# pip这个可以不需要,因为实际使用时可以用python -m pip,或者虚拟环境中直接使用
ln -s /usr/local/python3/bin/pip3.10 /usr/bin/pip3
# 配置文件,根据自己的需要选择
ln -s /usr/local/python3/bin/python3.10-config /usr/bin/python3-config
复制代码
验证一下ssl是否安装成功
# 先在终端输入python310
python310
# 再导入一下ssl模块
import ssl
复制代码
如果不报错,就分析ssl安装成功。
参考链接
3 开发
搭建好python情况之后,接下来就可以正常开发了。
3.1 工具使用
起首是使用的工具,还是首推VS Code,使用内部的Remote Development插件套装,可以实现本地开发云端步伐,操作和本地基本一致,完全没有入门门槛,比力简朴,不再赘述。
3.2 gradio
工具确定了,接下来就是实际撸代码了。
gradio是主角之一。它可以快捷地实现一个前端,快到什么水平呢,基本几行代码就能实现一个前端交互界面,非常适合一些呆板学习等人工智能应用的快速可视化。
这里枚举一些参考资料
ChatInterface:https://www.gradio.app/docs/gradio/chatinterface
几行代码实现一个聊天交互界面。
gradio快速创建一个目的辨认的应用:
https://blog.csdn.net/weixin_44162814/article/details/138153029
3.3 langchain
langchain是一个一站式部署大模子的库,内部实现了许多国内外大模子的接口,比如OpenAI,智普AI等,除了官方文档,也可以参考一下这个文档:
https://github.com/aihes/LangChain-Tutorials-and-Examples
4 nginx部署
4.1 下载安装
先下载
wget -c https://nginx.org/download/nginx-1.14.0.tar.gz
复制代码
版本可以根据自己需要选择,现在官网最新版似乎是1.27.0:
解压并进入目录
tar -zxvf nginx-1.14.0.tar.gz
cd nginx-1.14.0
复制代码
使用nginx的默认配置
./configure
复制代码
最后再编译安装
make
make install
复制代码
现在安装好之后,由于还没有添加到情况变量中,所以还不能直接在终端运行nginx,也不能用which去查找,可以使用whereis去查找
> whereis nginx
nginx: /usr/local/nginx
复制代码
这里输出的是安装目录,执行文件在安装目录下的sbin文件夹,所以运行nginx时,需要:
/usr/local/nginx/sbin/nginx
复制代码
这个相当于是一个服务,运行起来之后就不会关闭。
如果需要关闭可以参考以下操作
# 先用ps指令查找对应的进程
ps -ef | grep nginx
kill <pid> # 对应进程的PID值
复制代码
关闭之后,如果想要重新运行,可以:
/usr/local/nginx/sbin/nginx
-s reopen
复制代码
正常运行之后,欣赏器访问服务器链接(80端口),应该可以看到一个欢迎界面:
nginx就是如许运行,比力简朴。复杂的地方在于这个配置的题目
可以使用vim编辑nginx的配置文件
vim /usr/local/nginx/conf/nginx.conf
复制代码
具体的配置部分明白继续看下一节。
参考链接
4.2 配置访问gradio
前面介绍gradio可以看到,运行代码之后,会出现一个本地链接和端口。
如果有在Windows上运行gradio的可能会有如许的疑惑:这不是跟flask一样,运行完成之后直接点击链接就能访问吗?那如果在服务器上面,只需要输入服务器对应公网IP不就行了?一开始我也是如许想的,但是在查找教程过程中,无意看到一句话:gradio只能提供内部访问,外部访问需要使用nginx如许的反向署理服务器。
在开始之前,先简朴介绍一下nginx的配置文件的布局
全局块:配置全局的指令,对整个Nginx服务器起作用。
events块:配置与连接相关的指令,如工作历程数和连接超时时间等。
http块:配置HTTP服务器的指令,如监听端口、虚拟主机和HTTP模块等。
server块:配置虚拟主机的指令,可以配置多个server块来支持多个域名或IP地址。
location块:配置URL路径的指令,可以在server块或http块中使用。
其中,我们主要需要配置的就是location块,即实现将默认访问80端口的哀求导向gradio的本地链接。
参考链接
幸亏gradio官网也提供的相应的教程:https://www.gradio.app/guides/running-gradio-on-your-web-server-with-nginx
不消到处去找博客视频之类的了
团体思路参考这个链接,具体的配置方式还是看上面谁人官网教程。
5 服务编写
为了避免每次都要用python运行步伐,可以考虑将这一指令写成服务的形式。
创建一个新的service文件,通常以.service作为后缀名。在终端中使用以下命令创建一个新的服务文件:
sudo vi /etc/systemd/system/myservice.service
在打开的编辑器中,输入以下内容:
[Unit]
Description=My Service
After=network.target
[Service]
ExecStart=/path/to/your/service_executable
Type=simple
Restart=always
RestartSec=3
User=your_username
[Install]
WantedBy=default.target
复制代码
其中,
Description是对服务的描述;
After指定服务应该在哪些目的之后启动;
ExecStart指定要运行的服务可执行文件的路径;
Type指定服务的类型,这里简朴地使用simple;
Restart指定服务在失败后应该如何重启,这里选择always;
RestartSec指定服务在重启之前应该等待的时间,这里选择3秒;
User指定服务应该以哪个用户的身份运行;
WantedBy指定在哪个目的之前安装此服务。
保存并关闭文件。
更新systemctl并启动新服务。在终端中运行以下命令:
sudo systemctl daemon-reload
sudo systemctl start myservice.service
复制代码
验证服务是否成功启动。可以使用以下命令查抄服务的状态:
sudo systemctl status myservice.service
复制代码
如果服务已成功启动,将在终端中看到服务的状态信息。
设置服务开机自启动。运行以下命令来启用服务自启动:
sudo systemctl enable myservice.service
复制代码
现在,服务将在系统启动时自动启动。
如许就创建了一个CentOS 7的service。根据实际情况,需要修改[Unit]和[Service]部分的内容以顺应您的具体服务需求。
参考链接
6 扩展:安装软件步骤总结
从上面安装的几个软件来看,其实Linux端安装软件还是有规律可循的,主要就是那么几步:configure,make,make install
参考链接:link1,link2
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
石小疯
金牌会员
这个人很懒什么都没写!
楼主热帖
解决图片无法设置hover,以设置图片的 ...
解决OpenCV的imread/imwrite在Qt环境不 ...
Linux的目录结构
qrtz表初始化脚本_mysql
Hive安装与启动
几个函数的使用例子:更新VBRK-XBLNR, ...
C# GDI+ 画心形 跳动动画
Springfox与SpringDoc——swagger如何 ...
5个高并发场景优化的衡量指标 ...
OpenHarmonyOs / LiteOs-a 开发环境搭 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表