Gradio Blocks:自定义交互式Web应用和演示

news2024/12/24 22:13:29

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈

博主原文链接:https://www.yourmetaverse.cn/nlp/246/

请添加图片描述

(封面图由文心一格生成)

Gradio Blocks:自定义交互式Web应用和演示

Gradio是一个强大的库,提供了多种方法来构建交互式Web应用和演示。其中之一是Gradio的Blocks模块,它允许您创建比接口更加自定义的Web应用和演示,完全在Python中实现。本文将介绍Gradio的Blocks模块,探讨其灵活性和控制能力,并提供示例和详细的参数介绍。

1. 引言

Gradio的Blocks模块是Gradio的低级API,它允许您创建比接口更加自定义的Web应用和演示。相比于Interface类,Blocks提供了更多的灵活性和控制,包括组件的布局、触发函数执行的事件以及数据流(例如,输入可以触发输出,输出可以触发下一级的输出)。Blocks还提供了将相关的演示组合在一起的方法,例如使用选项卡。

2. 基本用法

使用Blocks的基本步骤如下:创建一个Blocks对象,然后将其用作上下文(使用"with"语句),在Blocks上下文中定义布局、组件或事件。最后,调用launch()方法启动演示。

以下是一个示例:

import gradio as gr

def update(name):
    return f"Welcome to Gradio, {name}!"

with gr.Blocks() as demo:
    gr.Markdown("Start typing below and then click **Run** to see the output.")
    with gr.Row():
        inp = gr.Textbox(placeholder="What is your name?")
        out = gr.Textbox()
    btn = gr.Button("Run")
    btn.click(fn=update, inputs=inp, outputs=out)

demo.launch()

在这个示例中,我们使用Blocks创建了一个简单的界面,包含一个文本输入框和一个按钮。当用户在文本框中输入内容并点击按钮时,按钮的点击事件会触发update函数,并将输入文本作为参数传递给它。然后,update函数返回一个欢迎消息,该消息将显示在输出文本框中。

3. 参数介绍

下面是Blocks的参数介绍:

参数数据类型默认值描述
themeTheme | str | NoneNone主题对象或表示主题的字符串。如果是字符串,将查找具有该名称的内置主题(例如"soft"或"default"),或尝试从HF Hub加载主题(例如"gradio/monochrome")。如果为None,将使用默认主题。
analytics_enabledbool | NoneNone是否允许基本的遥测。如果为None,将使用GRADIO_ANALYTICS_ENABLED环境变量的值,或默认为True。
modestr“blocks”Blocks或Interface的人类友好名称。
titlestr | None“Gradio”在输入和输出组件上方显示的标题。同时也用作在浏览器窗口中打开时的标签标题。
cssstr | NoneNone自定义CSS样式或自定义CSS文件的路径,应用于整个Blocks。

下面是Blocks的launch方法的参数介绍:

参数数据类型默认值描述
inlinebool|NoneNone是否在界面中以iframe内联方式显示。在Python笔记本中默认为True;其他情况下默认为False。
inbrowserboolFalse是否在默认浏览器中自动打开界面的新标签页。
sharebool|NoneNone是否为界面创建一个公开可分享的链接。创建一个SSH隧道,使您的界面可以从任何地方访问。如果未提供,默认设置为False,除非在Google Colab中运行。当本地主机不可访问时(例如在Google Colab中),不支持设置share=False。
debugboolFalse如果为True,则阻塞主线程运行。在Google Colab中运行时,需要设置为True以打印单元格输出中的错误信息。
enable_queuebool|NoneNone已弃用(请使用.queue()方法代替)。如果为True,则推理请求将通过队列而不是并行线程进行处理。在需要较长的推理时间(>1分钟)时,使用队列来防止超时。HuggingFace Spaces的默认选项是True。其他情况下的默认选项是False。
max_threadsint40Gradio应用程序可以并行生成的最大线程数。默认值继承自starlette库(当前为40)。无论队列是否启用,都适用。但如果启用了队列,则将增加此参数的值,至少为队列的concurrency_count。
authCallable|tuple[str, str]|list[tuple[str, str]]|NoneNone如果提供,需要用户名和密码(或用户名-密码元组列表)来访问界面。也可以提供一个函数,该函数接受用户名和密码并返回True表示有效登录。
auth_messagestr|NoneNone如果提供,登录页面上显示的HTML消息。
prevent_thread_lockboolFalse如果为True,界面将在服务器运行时阻塞主线程。
show_errorboolFalse如果为True,界面中的任何错误将显示在警告模态框中,并打印在浏览器控制台日志中。
server_namestr|NoneNone若要在本地网络上使应用程序可访问,将其设置为"0.0.0.0"。可以通过环境变量GRADIO_SERVER_NAME进行设置。如果为None,则使用"127.0.0.1"。
server_portint|NoneNone将Gradio应用程序启动在此端口(如果可用)。可以通过环境变量GRADIO_SERVER_PORT进行设置。如果为None,则从7860开始搜索可用端口。
show_tipsboolFalse如果为True,将定期显示有关Gradio新功能的提示。
heightint500包含界面的iframe元素的高度(如果inline=True)。
widthint|str“100%”包含界面的iframe元素的宽度(如果inline=True)。
encryptbool|NoneNone已弃用,无效果。
favicon_pathstr|NoneNone如果提供文件的路径(.png、.gif或.ico),将其用作网页的favicon。
ssl_keyfilestr|NoneNone如果提供了文件的路径,将使用该路径作为私钥文件来创建运行在https上的本地服务器。
ssl_certfilestr|NoneNone如果提供文件的路径,将其用作https的签名证书。如果提供了ssl_keyfile,必须提供此参数。
ssl_keyfile_passwordstr|NoneNone如果提供密码,将与https的ssl证书一起使用。
ssl_verifyboolTrue如果为False,则跳过证书验证,允许使用自签名证书。
quietboolFalse如果为True,则抑制大部分打印语句。
show_apiboolTrue如果为True,则在界面的页脚显示API文档。默认为True。如果启用了队列,则由.queue()的api_open参数确定是否显示API文档,与show_api的值无关。
file_directorieslist[str]|NoneNone已更名为allowed_paths。将在将来的版本中删除。
allowed_pathslist[str]|NoneNone可以由Gradio公开访问的完整文件路径或父目录列表(除了包含Gradio Python文件的目录)。必须是绝对路径。警告:如果提供了目录,则这些目录及其子目录中的任何文件都可供您的应用程序的所有用户访问。
blocked_pathslist[str]|NoneNone不允许Gradio提供访问的完整文件路径或父目录列表(即,您的应用程序的用户不允许访问)。必须是绝对路径。警告:此参数优先于allowed_paths和Gradio默认公开的所有其他目录。
root_pathstr“”应用程序的根路径(或“挂载点”),如果它不是从域的根路径(“/”)提供的。通常在应用程序位于反向代理后面,将请求转发到应用程序时使用。例如,如果应用程序位于"https://example.com/myapp"上提供,则将root_path设置为“/myapp”。
app_kwargsdict[str, Any]|NoneNone作为参数键和参数值的字典,附加到底层FastAPI应用程序中的额外关键字参数。例如,{"docs_url": "/docs"}

4. 总结

Gradio的Blocks模块是一个强大的工具,可用于创建自定义的交互式Web应用和演示。通过使用Blocks,您可以实现更灵活和可控的布局、事件触发和数据流,以满足您的特定需求。


❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/671618.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GitPySearch: 全局Python代码搜索工具

一 、背景 在某些情况下,我们需要快速了解哪些项目包含特定的配置,例如使用了fastjson库或数据库的连接配置。然而,在GitLab上逐个代码仓库进行搜索是非常耗时的。为了提高效率,我们开发了一个Python脚本工具,用于实现…

PostgreSQL的优势:为何它成为主流数据库管理系统

PostgreSQL的优势:为何它成为主流数据库管理系统 Stack Overflow 2023年报告PostgreSQL和MySQL同异我们在开发中如何选择PostgreSQL和MySQL呢? 摘要:本文主要比较了PostgreSQL和MySQL这两个流行的关系型数据库管理系统。我们首先介绍了它们的…

屏蔽箱的材质结构和使用事项介绍

屏蔽箱是一种用于屏蔽机电波干扰的设备,通常用于电磁兼容测试、天线测试、短波收发等需要屏蔽电磁辐射噪声的场合。这种箱子通常由导电或者导磁材料制成,内部配备高效屏蔽材料,能够在一定范围内有效地屏蔽电磁波辐射,避免电磁波干…

详细介绍mysql索引类型

目录 Normal 普通索引Unique 唯一索引Full Text 全文索引SPATIAL 空间索引btree索引和hash索引的区别在实际操作过程中,应该选取表中哪些字段作为索引? Normal 普通索引 表示普通索引,大多数情况下都可以使用 Unique 唯一索引 表示唯一的&…

Linux内核内存管理源码分析之init-mm.c(2)

接前一篇文章:Linux内核内存管理源码分析之init-mm.c(1) 本文内容参考:https://www.cnblogs.com/mysky007/p/12317831.html 上回说到了swapper_pg_dir和init_top_gpt。再次给出内核源码中init_top_gpt的说明,在Documen…

【基础】MQTT -- MQTT 特性:QoS、Retained 消息、LWT 以及 Keepalive

MQTT -- MQTT 特性:QoS、Retained 消息、LWT 以及 Keepalive QoS 及其最佳实践MQTT 协议中的 QoS 等级QoS 0QoS 1PUBACK 数据包 QoS 2PUBREC 数据包PUBREL 数据包PUBCOMP 数据包 实际的订阅者 QoSQoS 的最佳实践QoS 与会话QoS 的选择 Retained 消息LWT 遗嘱消息Keep…

FPGA_学习_12_IP核_FIFO

FIFO(Frist Input Frist Output),即先入先出,也是一种存储器,一般做数据缓冲。FIFO和 RAM的共同点在于都能存储数据、都有控制写和读的信号;不同点在于 FIFO 没有地址,所以不能任意指定读取某一个数据,数据只能按照数据…

一个女孩从软件测试工程师到主管的成长

说实话,我做测试工作的时间不是很长,学完软件测试工程师的课程后,到现在也就是一年多的时间吧,不过,我愿意自己学习和工作中积累起的这些点滴与大家分享。 如果你想学习自动化测试,我这边给你推荐一套视频…

C语言之程序环境和预处理(1)

本章主要以图片和文字的形式给大家讲解 程序的翻译环境和程序的执行环境 在ANSI C的任何一种实现中,存在两个不同的环境。 第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。 第2种是执行环境,它用于实际执行代码 2. 详解编译…

东南亚骑行类目热销品出炉!Shopee/Lazada跨境卖家有哪些优势产品可做?

菲律宾/巴西是Lazada/Shopee骑行品类卖家体量最大的2个站点,新加坡/越南/马来西亚紧随其后. 体量:在东南亚,菲律宾与新加坡对骑行的需求最强烈,其次是越南,三地总订单占总体70%以上,在南美地区&#xff0c…

Revit碰撞检查:Navisworks“复合对象碰撞”的使用

一、Navisworks 中碰撞检查中“复合对象碰撞”有什么用? 通常情况下我们使用 Revit 做好了模型,然后使用 Navisworks这款软件进行碰撞检查等优化工作。因为 Navisworks 相对于 Revit的软件数据要“轻”很多,可以让多专业的模型都在一起导入来进行全专业…

对接口进行限流?

在高并发的情况下,我们可以把消息放入队列,在从队列消费,达到限流的目的。但这里说的限流指的是当我们请求其他服务器接口,防止高并发下把对面服务器压垮,于是对我们要求每秒限制在100QPS。 如果使用springCloud可以用…

准备换工作跳槽面试人一定要看的的18条忠告

1、如果想好要跳槽就别犹豫,不用纠结太多外在因素,很多事情只有去做了才知道。(当然,如果你是非某家公司不可的话,那可以慢慢等待机会) 2、关于跳槽的渠道,主要有四种:直接被公司挖…

测试自动化的演进,从录制回放到对象映射

概要:在短时间的市场化和短期冲刺的文化中,测试人员通过使用测试自动化实践和工具保持同步是至关重要的。本文跟踪从基于脚本的测试与硬编码数据到自动化框架的转变,探索测试自动化的开始和到今天的演变 - 并且可能的未来走向。 今天的软件市…

Qt之QDial选择器

文章目录 前言一、QDial是什么二、操作api信号与槽示例代码总结 前言 Qt是一种流行的跨平台的C GUI应用程序开发框架,用于构建图形用户界面(GUI)和其他桌面应用程序。QDial是Qt框架中的一个小部件,用于创建旋转式的拨号器。本文将介绍如何使用QDial进行…

ChatGLM Efficient Tuning效率调试PEFT

ChatGLM Efficient Tuning 基于 PEFT 的高效 ChatGLM-6B 微调。 [ English | 中文 ] 更新日志 [23/06/05] 现在我们实现了 4 比特的 LoRA 训练(也称 QLoRA)。请尝试使用 --quantization_bit 4 参数进行 4 比特量化微调。(实验性功能&#…

Echarts实现流程图关系图拓扑图

实现如下&#xff0c;可以横着排竖着排都可以 1.先写个div做画布 ref值随意&#xff0c;但是一点要写 <div style"height: 400px;" ref"echartdom"></div> 2.下载echarts 我这边下载的是 "echarts": "^4.9.0",最新版应…

奢侈品回收APP系统开发功能有哪些?

奢侈品售卖回收APP系统开发功能有哪些&#xff1f; 1.回收品牌分类&#xff1a;奢侈品回收APP平台可以将支持回收鉴定的奢侈品品牌及商品进行分类展示&#xff0c;方便用户查看自己的想要出售的是不是平台支持的商品。 2.商品在线检索&#xff1a;客户可以直接按…

STM32F4_红外遥控

目录 1. 红外遥控简介 2. NEC协议 3. 硬件设计 4. 实验程序详解 4.1 main.c 4.2 Remote.c 4.3 Remote.h 1. 红外遥控简介 红外遥控是一种无线、非接触的控制技术。具有抗干扰能力强&#xff0c;信息传输可靠&#xff0c;功耗低&#xff0c;成本低&#xff0c;易实现等优…

深入理解Redis的AOF和RDB持久化机制

Redis的AOF&#xff08;Append-Only File&#xff09;和RDB&#xff08;Redis Database&#xff09;是两种常见的持久化机制&#xff0c;用于将内存中的数据保存到磁盘上&#xff0c;确保数据在Redis重新启动时的持久性。本文将深入介绍AOF和RDB的原理和使用&#xff0c;帮助读…