Gradio学习之旅(2)——Building Demo篇 Interface的使用(下)

在本篇文章中我们将介绍Gradio最常见的Building Demo——Interface。无论你是想做个文生图还是图生图甚至生成视频等的前端展示,在考虑便捷性和建议性的情况下,使用Interface是最好上手的选择。在本篇文章中将继上一篇文章对其lauch函数等展开介绍


前言

在本文的内容中,我们将介绍launch方法、load方法、from_pipeline方法、integrate方法、queue方法以及它们的参数等


提示:以下是本篇文章正文内容,下面案例可供参考

一、launch()

这个函数可用于启动一个简单的Web服务器来提供内容展示。此外,通过设置share=True,可以用于创建一个公共链接,任何人都可以使用这个链接在浏览器中访问这个演示。至于其具体参数介绍如下:(在自己简要使用中一般不用管launch函数的参数)

参数名称说明
inlinedefault: None
是否在界面中以内联方式在iframe中显示。在Python notebook中默认为True;在其他情况下默认为False。
inbrowserdefault: False
是否在默认浏览器的新标签页中自动启动界面。如果设置为True,则界面将在浏览器的新标签页中自动打开。
sharedefault: None
是否为界面创建一个可公开分享的链接。如果设置为True,它将创建一个SSH隧道,使你的用户界面可以从任何地方访问。如果没有提供此参数,则默认值为False,但在Google Colab中运行时除外。在无法访问localhost的环境中(例如Google Colab),将share设置为False是不支持的。
debugdefault: False
如果为True,则阻塞主线程运行。在Google Colab中运行时,这是必要的,以便在单元格输出中打印错误。
max_threadsdefault: 40
Gradio应用可以并行生成的最大线程数。默认值继承自starlette库(当前为40)。
authdefault: None
如果提供,则要求输入用户名和密码(或用户名-密码元组的列表)才能访问界面。也可以提供一个函数,该函数接受用户名和密码,并在验证登录时返回True。
auth_messagedefault: None
如果提供,则在登录页面上显示的HTML消息。
prevent_thread_lockdefault: False
如果为True,则在服务器运行时,界面将阻止主线程。
show_errordefault: False
如果为True,界面中的任何错误都将在一个警告模态框中显示,并在浏览器控制台日志中打印。
server_namedefault: None
要使应用在本地网络上可访问,请将其设置为"0.0.0.0"。可以通过环境变量GRADIO_SERVER_NAME设置。如果为None,则使用"127.0.0.1"。
server_portdefault: None
将在该端口上启动Gradio应用(如果可用)。可以通过环境变量GRADIO_SERVER_PORT设置。如果为None,则将从7860开始搜索可用端口。
heightdefault: 500
这表示包含界面的iframe元素的高度,以像素为单位。这个参数只在inline参数为True时使用,即当界面以内联方式嵌入到iframe中时。
widthdefault: “100%”
这表示包含界面的iframe元素的宽度。它可以是一个像素值(int)或一个百分比(str)。同样,这个参数只在inline参数为True时使用。
favicon_pathdefault: None
如果提供了指向文件(.png, .gif, 或 .ico)的路径,该文件将用作网页的favicon(网站图标)。通常,favicon显示在浏览器的地址栏或标签页上。
ssl_keyfiledefault: None
如果提供了文件路径,它将用作创建运行在https上的本地服务器的私钥文件。这在需要安全连接时很有用。
ssl_certfiledefault: None
如果提供了文件路径,它将用作https的签名证书。如果提供了ssl_keyfile,则必须提供此参数。
ssl_keyfile_passworddefault: None
如果提供了密码,它将与ssl证书一起用于https。这是为了保护私钥文件的安全访问。
ssl_verifydefault: True
如果为False,则跳过证书验证,这允许使用自签名证书。这在某些测试或内部环境中可能很有用,但在生产环境中可能不安全。
quietdefault: False
如果为True,则抑制大多数打印语句。这有助于减少控制台或终端上的输出,特别是在不需要详细日志的情况下。
show_apidefault: True
如果为True,则在应用的页脚显示API文档。这有助于用户了解和使用API接口。
allowed_pathsdefault: None
允许gradio服务的完整文件路径或父目录列表(除了包含gradio python文件的目录)。必须是绝对路径。警告:如果提供目录,则这些目录或其子目录中的任何文件都将对所有应用用户可访问。
blocked_pathsdefault: None
不允许gradio服务的完整文件路径或父目录列表(即应用用户不允许访问)。必须是绝对路径。警告:该选项优先于allowed_paths和Gradio默认公开的其他所有目录。
root_pathdefault: None
如果应用程序不是从域名的根目录(“/”)提供服务,则这是应用程序的根路径(或“挂载点”)。当应用程序位于反向代理后面,该代理将请求转发到应用程序时,该选项通常很有用。例如,如果应用程序在"https://example.com/myapp"上提供服务,则应将root_path设置为"/myapp"。可以提供一个以http://或https://开头的完整URL,这将被用作整个根路径。可以通过环境变量GRADIO_ROOT_PATH进行设置。默认为""。
app_kwargsdefault: None
要作为参数键和参数值字典传递给底层FastAPI应用的附加关键字参数。例如,“docs_url”: “/docs”。
state_session_capacitydefault: 10000
存储在内存中的会话信息的最大数量。如果会话数量超过此数量,将删除最旧的会话。在使用gradio.State或从函数返回更新的组件时,减少容量可减少内存使用。默认为10000。
share_server_addressdefault: None
用于指定用于共享Gradio应用的自定义FRP服务器和端口(仅当share=True时适用)。如果未提供,将使用默认的FRP服务器https://gradio.live。更多信息请参见https://github.com/huggingface/frp。
share_server_protocoldefault: None
用于指定共享链接使用的协议。默认为"https",除非提供了自定义的share_server_address,在这种情况下,它默认为"http"。如果您使用的是自定义的share_server_address并希望使用https,则必须将其设置为"https"。
auth_dependencydefault: None
一个函数,它接受一个FastAPI请求并返回一个字符串用户ID或None。如果该函数对特定请求返回None,则该用户无权访问应用(他们将看到401 Unauthorized响应)。用于与OAuth等外部身份验证系统一起使用。

二、load()

设置一个侦听器,在浏览器中初始加载时被触发
这个方法由于主要是Blocks这种块布局中使用的比较多,所以我们将在Block中进行介绍

三、from_pipeline()

gradio.Interface.from_pipeline 的主要作用是简化从预训练模型到交互式 Gradio 接口的创建过程。当你有一个预训练的模型管道时,你可以使用这个方法快速生成一个前端界面,让用户能够上传数据、观察模型输出,并实时与模型进行交互。

具体来说,from_pipeline 方法会根据提供的管道对象自动确定输入和输出组件,并为你创建一个 Gradio 接口。这意味着你不需要手动指定输入和输出类型,也不需要编写复杂的代码来连接模型和前端界面。

参数名称说明
pipeline(必要函数)使用pipeline对象

例如对于一个image-classification模型,我们可以使用transformers里的pipeline函数,并将创建的对象传入Interface中,直接可以生成个简单的前段交互界面,如下:

import gradio as gr
from transformers import pipeline
pipe = pipeline("image-classification")
gr.Interface.from_pipeline(pipe).launch()

(由于hugging face访问超时,此处就无图片)

四、integrate()

用于与其他库集成的“捕获所有”方法。它应该在launch()方法之后运行。

参数名称说明
comet_mldefault: None
如果提供了comet_ml Experiment对象,将与其集成并在Comet仪表板上显示。
wandbdefault: None
如果提供了wandb模块,将与其集成并在WandB仪表板上显示。
mlflowdefault: None
如果提供了mlflow模块,将与其集成并在ML Flow仪表板上显示。

五、queue()

通过启用队列功能,您可以控制用户能够知晓他们在队列中的位置,并设置允许的最大事件数量限制。

参数名称说明
status_update_ratedefault: “auto”
如果设置为"auto",Queue将在每个作业完成时向所有客户端发送状态估计。否则,Queue将按此参数设置的秒数间隔定期发送状态。
api_opendefault: None
如果为True,则后端的REST路由将打开,允许直接发送到这些端点的请求跳过队列。
max_sizedefault: None
队列在任何给定时刻将存储的最大事件数。如果队列已满,则不会添加新事件,并且用户将收到一条消息,指示队列已满。如果为None,则队列大小将不受限制。
concurrency_countdefault: None
已弃用。直接在事件监听器上设置concurrency_limit,例如btn.click(fn, …, concurrency_limit=10)或gr.Interface(concurrency_limit=10)。如有必要,可以通过launch()中的max_threads配置总工作线程数。
default_concurrency_limitdefault: “not_set”
未指定concurrency_limit的事件监听器的默认值。可以通过环境变量GRADIO_DEFAULT_CONCURRENCY_LIMIT设置。如果未设置,则默认为1。
代码如下:
demo = gr.Interface(image_generator, gr.Textbox(), gr.Image())
demo.queue(max_size=20)
demo.launch()

总结

这一节内容,主要是对Interface的方法的一个总结与盘点,并且由于不够直观,所以在这一节中并没有采用图片的形式进行展现。

  • 58
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值