【服务器部署】云端部署Gradio情感聊天bot应用(ubuntu服务器+Nginx反向代理+内网穿透)

【服务器部署】从0-1进行部署Gradio情感聊天AI bot云端应用(ubuntu服务器+Nginx反向代理+内网穿透)

Gradio是一个常用于创建机器学习和深度学习的Web应用程序,它提供了一个用户友好的界面,允许开发者进行快速构建和部署并制作可视化界面,本文会介绍如何将Gradio应用部署到云服务器上,并使用反向代理来实现外链访问

Step1:先准备一台能够运行代码环境的服务器

流程:服务器租用→ssh连接→环境搭建→检查环境

服务器租借购买可以参考该教程阿里云服务器租用搭建教程,可以根据自身实际需要选择需要的服务器,选择服务器后使用Xshell远程连接云服务器配置环境(Xshell自行在网络中下载),打开Xshell输入服务器的公网ip
请添加图片描述
输入要登录的账户名(主机名)

在这里插入图片描述

输入在云服务器中设置的登录密码,密码正确即完成SSH连接
请添加图片描述

开始配置应用所需要的python环境,如果需要配置java或者c++环境也可以参考其它的服务器配置教程
请添加图片描述

安装python虚拟环境所需要的依赖包

sudo apt update
sudo apt-get install python3-venv

创建python虚拟环境并激活

环境创建:python3 -m venv my-venv​ (环境名可自定)

激活环境:source work/bin/activate​(改为你的路径,linux默认~为起始目录)

请添加图片描述

安装应用所需要的依赖包,目前安装有两种策略,一种直接用pip install packge​进行安装或者将所需要包写入requirements.txt,或者使用以下语句进行安装​​

nano requirements.txt

请添加图片描述

这里所需要安装的包写进去

请添加图片描述

pip install -r requirements.txt

请添加图片描述

安装完后可以用pip list​查看所需要的包是否安装完成

请添加图片描述

Step 2:搭建一个Gradio应用,这里以文心一言的Enrie SDKt为例

流程:编写一个Gradio应用→上传应用文件→配置后台服务→测试Gradio应用

首选在服务器上创建一个用于测试应用的文件目录

mkdir gradio_test/bot

要编写一个Gradio Web应用,本文通过使用Enrie的sdk实现一个实现一个情感伙伴bot聊天,其代码如下举例介绍:

import gradio as gr
import json
import erniebot

history = []
# 导入角色设置
with open('../config/enireRoleConfig.json', 'r', encoding='utf-8') as file:
    role_config = json.load(file)

# 角色和描述
roles = role_config['roles']

# css样式
custom_css = """
<style>
@import url('https://fonts.googleapis.com/css2?family=Pacifico&family=Permanent+Marker&family=Roboto+Slab&family=Dancing+Script&display=swap');
body, .gradio-container {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    margin: 0;
}
.main {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}
.contain {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}
#component-0 {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}
#component-0 > .chat-interface {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}
#component-0 > .chat-interface > .message-list {
    flex-grow: 1;
    overflow-y: auto;
}
</style>
"""
def predict(message, history, option, api_key, role_selector):

    model = "ernie-bot"

    erniebot.api_type = 'aistudio'
    erniebot.access_token = api_key

    # 模型选择
    if option == "ernie-bot":
        model = 'ernie-bot'
    elif option == "ernie-bot-turbo":
        model = 'ernie-bot-turbo'
    elif option == "ernie-bot-4":
        model = 'ernie-bot-4'

    # 角色选择
    system_prompt = roles[role_selector]['prompt']

    # 输入消息
    json_str = {
   
   'role': 'user', 'content': message}
    messages = ""
    history = [{
   
   k: v for k, v in item.items() if k != 'metadata'} for item 
### 部署Gradio应用程序至服务器 为了成功地将Gradio应用程序部署服务器上,可以采用多种方法和服务来实现这一目标。一种流行的方法是利用Render平台来进行部署。 通过Render部署Gradio应用的过程相对简便。首先,在本地开发环境中构建好Gradio界面并测试其功能正常之后,需创建一个GitHub仓库并将项目源码推送到该仓库中[^1]。接着访问Render网站注册账号,并新建Web服务项;在此过程中要指定所使用的Git分支以及Python运行环境版本等配置选项。完成设置后,Render会自动拉取代码库中的最新更改并执行预设命令启动应用实例。此外,还可以自定义域名绑定以便更好地管理和分享已上线的应用程序链接。 对于希望进一步优化性能或扩展性的场景,则可能涉及到更多高级话题如负载均衡、SSL证书安装等方面的知识。不过对于大多数简单的应用场景而言,上述基本流程已经足够满足需求了。 ```python import gradio as gr def greet(name): return f'Hello {name}!' iface = gr.Interface(fn=greet, inputs='text', outputs='text') if __name__ == "__main__": iface.launch(server_name="0.0.0.0", server_port=7860) ``` 此段代码展示了如何编写一个简易的Gradio接口函数`greet()`用于处理输入文本并返回问候语句作为输出结果。当文件被当作脚本直接运行时(即处于主模块状态),将会调用`launch()`方法开启监听外部连接的服务端口,默认情况下为7860号端口。请注意实际生产环境下建议调整参数以适应具体网络状况和安全策略的要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值