Gradio机器学习模型快速部署工具应用分享

目录
  • 1.嵌入 IFrame
  • 2.API页面
  • 3.验证
  • 4.直接访问网络请求
  • 5.在另一个 FastAPI 应用程序中安装[![图片转存失败,建议将图片保存下来直接上传
  • 6.安全和文件访问

1.嵌入 IFrame

     (/assets/img/anchor.svg)]()](https://gradio.app/sharing-your-app/#embedding-with-iframes)

要改为嵌入 IFrame(例如,如果您无法将 javascript 添加到您的网站),请添加此元素:

<iframe src="https://$your_space_host.hf.space"></iframe>

同样,您可以找到src=空间嵌入 URL 的属性,您可以在“嵌入此空间”按钮中找到它。

您还需要height手动添加一个固定的以及其他常规的 iframe 属性。例如:

<iframe src="https://abidlabs-pytorch-image-classifier.hf.space" frameBorder="0" height="900"></iframe>

2.API页面

渐变/你好世界 使用 Gradio构建。 托管在 空间

如果您单击并打开上面的空间,您将在应用程序的页脚中看到一个“通过 API 使用”链接。

这是记录用户可用于查询函数的 REST API 的页面InterfaceBlocks应用程序也可以生成一个 API 页面,尽管 API 必须为每个事件侦听器显式命名,例如

btn.click(add, [num1, num2], output, api_name="addition")

这会将端点记录/api/addition/到自动生成的 API 页面。

注意:对于启用队列的Gradio 应用程序,如果用户向您的 API 端点发出 POST 请求,则可以绕过队列。要禁用此行为,请api_open=Falsequeue()方法中设置。

3.验证

您可能希望在您的应用程序前面放置一个身份验证页面,以限制谁可以打开您的应用程序。通过方法auth=中的关键字参数launch(),您可以提供一个包含用户名和密码的元组,或者一个可接受的用户名/密码元组列表;下面是一个为名为“admin”的单个用户提供基于密码的身份验证的示例:

demo.launch(auth=("admin", "pass1234"))

对于更复杂的身份验证处理,您甚至可以传递一个函数,该函数将用户名和密码作为参数,并返回 True 以允许身份验证,否则返回 False。这可用于向 3rd 方身份验证服务发出请求等。

下面是一个函数示例,它接受用户名和密码相同的任何登录:

def same_auth(username, password):
    return username == password
demo.launch(auth=same_auth)

为使身份验证正常工作,必须在您的浏览器中启用第三方 cookie。默认情况下,Safari、Chrome 隐身模式不是这种情况。

4.直接访问网络请求

当用户对您的应用做出预测时,您可能需要底层网络请求,以便获取请求标头(例如用于高级身份验证)、记录客户端的 IP 地址或其他原因。Gradio 以类似于 FastAPI 的方式支持这一点:只需添加一个类型提示为的函数参数gr.Request,Gradio 就会将网络请求作为该参数传入。这是一个例子:

import gradio as gr
def echo(name, request: gr.Request):
    if request:
        print("Request headers dictionary:", request.headers)
        print("IP address:", request.client.host)
    return name
io = gr.Interface(echo, "textbox", "textbox").launch()

注意:如果您的函数是直接调用而不是通过 UI 调用(例如,当示例被缓存时会发生这种情况),那么request将是None. 您应该明确处理这种情况,以确保您的应用不会抛出任何错误。这就是为什么我们有明确的检查if request

5.在另一个 FastAPI 应用程序中安装[![图片转存失败,建议将图片保存下来直接上传

     (/assets/img/anchor.svg)]()](https://gradio.app/sharing-your-app/#mounting-within-another-fastapi-app)

在某些情况下,您可能有一个现有的 FastAPI 应用程序,并且您想要为 Gradio 演示添加一个路径。您可以使用 轻松地做到这一点gradio.mount_gradio_app()

这是一个完整的例子:

from fastapi import FastAPI
import gradio as gr
CUSTOM_PATH = "/gradio"
app = FastAPI()
@app.get("/")
def read_main():
    return {"message": "This is your main app"}
io = gr.Interface(lambda x: "Hello, " + x + "!", "textbox", "textbox")
app = gr.mount_gradio_app(app, io, path=CUSTOM_PATH)
# Run this from the terminal as you would normally start a FastAPI app: `uvicorn run:app`
# and navigate to http://localhost:8000/gradio in your browser.

请注意,此方法还允许您在自定义路径上运行 Gradio 应用程序(http://localhost:8000/gradio在上面的示例中)。

6.安全和文件访问

与他人共享您的 Gradio 应用程序(通过将其托管在 Spaces、您自己的服务器上或通过临时共享链接)会将主机上的某些文件**公开给您的 Gradio 应用程序的用户。**这样做是为了让 Gradio 应用程序能够显示由 Gradio 创建或由您的预测功能创建的输出文件。

特别是,Gradio 应用程序授予用户访问三种文件的权限:

  • Gradio 脚本启动所在的同一文件夹(或子目录)中的文件。例如,如果您的 gradio 脚本的路径是/home/usr/scripts/project/app.py并且您从 启动它/home/usr/scripts/project/,那么您共享的 Gradio 应用程序的用户将能够访问其中的任何文件/home/usr/scripts/project/。这是必需的,以便您可以轻松地在 Gradio 应用程序中引用这些文件。
  • Gradio 创建的临时文件。这些文件是由 Gradio 创建的,作为运行预测功能的一部分。例如,如果你的预测函数返回一个视频文件,那么 Gradio 会将该视频保存到一个临时文件中,然后将临时文件的路径发送到前端。
  • file_directories您通过中的参数明确允许的文件launch()。在某些情况下,您可能希望引用文件系统中的其他文件。该file_directories参数允许您传入您希望提供访问权限的其他目录列表。(默认情况下,没有其他文件目录)。

用户不应该能够访问主机上的其他任意路径。

以上就是Gradio机器学习模型快速部署工具应用分享的详细内容,更多关于Gradio 部署应用分享的资料请关注我们其它相关文章!

(0)

相关推荐

  • Gradio机器学习模型快速部署工具quickstart

    目录 引言 1.图像示例 2.块:更多的灵活性和控制 3.更复杂的 Blocks 引言 书接上回 Gradio机器学习模型快速部署工具[quickstart]翻译,讲到多输入输出,其实很简单,就是把多个组件包装到列表,inputs和outputs对应的就是2个列表,输入输出列表,仅此而已. 1.图像示例 Gradio 支持多种类型的组件,例如Image, DataFrame, Video, 或Label. 让我们尝试一个图像到图像的功能来感受一下这些! import numpy as np im

  • Gradio机器学习模型快速部署工具quickstart前篇

    目录 Gradio 是做什么的? Hello, World 类Interface 组件属性 多个输入和输出组件 Gradio 是做什么的? 先决条件:Gradio 需要 Python 3.7 或更高版本,仅此而已! gradio.app/quickstart/… 与他人分享您的机器学习模型.API 或数据科学工作流程的最佳方式_之一是创建一个交互式应用程序,让您的用户或同事可以在他们的浏览器中试用该演示. Gradio 允许您**构建演示并共享它们,所有这些都在 Python 中.**通常只需几

  • 对网站内嵌gradio应用的输入输出做审核实现详解

    目录 前言 1 | 方案 1.1 | 基于 nginx 流量劫持和转发 1.2 | 基于 gradio sdk 的二次开发 1.3 | 比较 2 | 实施 2.1 | 创建ingress,来劫持发往 /run/predict 的请求 2.2 | 审核服务的接收和处理 3 | 效果展示 前言 在AI领域,来快速实现一个idea:前后端开发+部署+展现,如果走传统的前后端分离开发+服务器docker部署等方式,会很重且入门成本很高. 所以,行业内诞生出来了 gradio :基于python的前端+后

  • 通过gradio和摄像头获取照片和视频实现过程

    目录 1.环境设置 1.1gradio安装 2.ffmpeg安装 2.简单小程序 2.1 引入gradio 2.2 定义方法 2.3 定义接口 2.4 运行 3.执行情况 3.1 终端日志输出 3.2 截图 3.3 保存 1.环境设置 1.1gradio安装 需要安装 gradio,安装办法就是 pip install gradio 2.ffmpeg安装 再次需要加入到path路径. 下载地址: https://www.jb51.net/softjc/760881.html ffmpeg.exe

  • 使用ruby部署工具mina快速部署nodejs应用教程

    前面有一篇文章讲到过用git的hook部署应用,hook的方法有一个缺陷就是每次都要到服务器去修改一下hook对应的配置文件,这个配置文件是与当前仓库分离的,调试上会有一些麻烦,借助ruby的一个部署工具mina可以快速的在服务器部署nodejs应用. 安装mina 复制代码 代码如下: gem install mina 安装之后,它需要一个配置文件,默认情况下是当前目录的config/deploy.rb 简单的配置 复制代码 代码如下: require 'mina/git' require '

  • Python的批量远程管理和部署工具Fabric用法实例

    本文实例讲述了Python的批量远程管理和部署工具Fabric用法.分享给大家供大家参考.具体如下: Fabric是Python中一个非常强大的批量远程管理和部署工具,常用于在多个远程PC上批量执行SSH任务. 常见的使用方法大概总结如下: 1. 首先,要将批量执行的任务写入到一个fabfile.py中, 复制代码 代码如下: # -*- coding:utf-8 -*-    from fabric.api import run, local, roles, env, cd  env.host

  • C#实现的SN快速输入工具实例

    本文实例讲述了C#实现的SN快速输入工具的方法.分享给大家供大家参考.具体实现方法分析如下: 一般软件都要输入序列号(SN),而大家平时用的最多的恐怕是盗版软件,通常盗版软件的序列号(SN)都保存成:XXXXX-XXXXX-XXXX-XXXX的形式. 而软件输入序列号的地方通常都是几个文本框(TextBox)组成.一个个的将XXXXX复制到文本框将非常麻烦.于是SN快速输入工具便由此产生了. 当然这些都和我的编写这个程序的原因无关.我编写这个程序的原因纯粹是因为有个网友和他舅舅打赌说要编写个程序

  • CentOS 6.5平台实现快速部署FTP的方法

    本文实例讲述了CentOS 6.5平台实现快速部署FTP的方法.分享给大家供大家参考,具体如下: 安装vsftpd(这里需要使用YUM,YUM的安装可参考前面一篇 CentOS 6.5平台本地YUM配置的方法) yum install vsftpd -y yum install lftp -y 创建用户qq 创建目录/home/wq useradd -d /home/wq/ qq passwd qq 赋予目录权限 chmod -R 777 /home/wq/ 赋予用户权限 chown -R qq

  • SpringBoot应用快速部署到K8S的详细教程

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容: 所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS等: 背景 对于生产环境,我们一般会用CI&&CD工具完成整个构建和部署,因此本文不适合生产环境:对于学习和开发环境,我们频繁修改代码,又想快速见到效果,本文就是针对这种场景的: 内容简介 如果您正在开发SpringBoot应用,并且应用部署在K8S环境,可以参考本文将应用快速部署到K8S环

  • idea整合docker快速部署springboot应用的详细过程

    目录 一.前言 二.环境及工具 三.安装docker以及配置远程连接 四.idea连接远程docker 一.前言 容器化一词相信大家已经不陌生了,听到它我们可能会想到docker.k8s.jenkins.rancher等等.那么今天我来说一下idea如何使用docker快速部署springboot应用. 二.环境及工具 windows10(开发) centos 7.6 (部署) idea docker xshell 三.安装docker以及配置远程连接 安装docker步骤网上有很多,在这里还是

  • python数据挖掘使用Evidently创建机器学习模型仪表板

    目录 1.安装包 2.导入所需的库 3.加载数据集 4.创建模型 5.创建仪表板 6.可用报告类型 1)数据漂移 2)数值目标漂移 3)分类目标漂移 4)回归模型性能 5)分类模型性能 6)概率分类模型性能 解释机器学习模型是一个困难的过程,因为通常大多数模型都是一个黑匣子,我们不知道模型内部发生了什么.创建不同类型的可视化有助于理解模型是如何执行的,但是很少有库可以用来解释模型是如何工作的. Evidently 是一个开源 Python 库,用于创建交互式可视化报告.仪表板和 JSON 配置文

  • python人工智能human learn绘图可创建机器学习模型

    目录 什么是 human-learn 安装 human-learn 互动绘图 创建模型并进行预测 预测新数据 解释结果 预测和评估测试数据 结论 如今,数据科学家经常给带有标签的机器学习模型数据,以便它可以找出规则. 这些规则可用于预测新数据的标签. 这很方便,但是在此过程中可能会丢失一些信息.也很难知道引擎盖下发生了什么,以及为什么机器学习模型会产生特定的预测. 除了让机器学习模型弄清楚所有内容之外,还有没有一种方法可以利用我们的领域知识来设置数据标记的规则? 是的,这可以通过 human-l

  • Docker Compose快速部署多容器服务实战的实例详解

    目录 1 什么是Docker Compose 2 安装Docker Compose 3 Docker Compose文件格式的简单介绍 4 Docker Compose常用命令 5 使用Docker Compose一键部署Spring Boot+Redis实战 5.1 构建应用 5.1.1 Spring Boot项目 5.1.2 Redis配置文件 5.2 打包应用并构建目录 5.2.1 打包Spring Boot项目 5.2.2 上传redis.conf配置文件 5.3 编写Dockerfil

  • 快速部署 Scrapy项目scrapyd的详细流程

    快速部署 Scrapy项目 scrapyd 给服务端 install scrapyd pip install scrapyd  -i https://pypi.tuna.tsinghua.edu.cn/simple 运行 scrapyd 修改配置项 , 以便远程访问 使用Ctrl +c 停止 上一步的运行的scrapyd 在要运行scrapyd 命令的路径下,新建文件scrapyd.cnf 文件 输入以下内容 [scrapyd] # 网页和Json服务监听的IP地址,默认为127.0.0.1(只

随机推荐