Gradio HTML组件详解

news2024/12/24 2:35:35

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

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

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

请添加图片描述

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

Gradio HTML组件详解

使用Gradio库构建交互式界面时,可以利用HTML模块显示任意的HTML输出内容。HTML模块允许我们在界面中展示自定义的HTML代码。在这篇博客中,我们将介绍Gradio库的HTML模块以及其change方法的使用。

首先,让我们了解一下HTML模块的基本信息。HTML模块的初始化函数为gradio.HTML(),可以通过该函数创建一个HTML组件。HTML模块有两个重要的特点:它不接受输入(As input: this component does not accept input.),并且期望一个有效的HTML字符串作为输出(As output: expects a valid HTML str.)。通过gradio.HTML()创建的HTML组件可以显示任意的HTML内容。

下面是一个使用HTML模块的示例代码:

import gradio as gr
import os
os.system('python -m spacy download en_core_web_sm')
import spacy
from spacy import displacy

nlp = spacy.load("en_core_web_sm")

def text_analysis(text):
    doc = nlp(text)
    html = displacy.render(doc, style="dep", page=True)
    html = (
        ""
        + html
        + ""
    )
    pos_count = {
        "char_count": len(text),
        "token_count": 0,
    }
    pos_tokens = []

    for token in doc:
        pos_tokens.extend([(token.text, token.pos_), (" ", None)])

    return pos_tokens, pos_count, html

demo = gr.Interface(
    text_analysis,
    gr.Textbox(placeholder="Enter sentence here..."),
    ["highlight", "json", "html"],
    examples=[
        ["What a beautiful morning for a walk!"],
        ["It was the best of times, it was the worst of times."],
    ],
)

demo.launch()

接下来,让我们来了解一下HTML模块的change方法。change方法是一个监听器,当组件的值发生变化时触发。这个变化可以是用户输入引起的(例如用户在文本框中输入文本),也可以是函数更新引起的(例如图像接收到来自事件触发器输出的值)。change方法主要用于Gradio Blocks中的组件。

change方法的参数如下:

  • fn(必需):需要包装为界面的函数,通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,函数应返回单个值或值的元组,元组中的每个元素对应一个输出组件。
  • inputs:用作输入的组件,可以是单个组件、组件列表或组件集合。如果函数不接受输入,这里应该是一个空列表。
  • outputs:用作输出的组件,可以是单个组件或组件列表。如果函数不返回输出,这里应该是一个空列表。
  • api_name:定义此参数将在API文档中公开该端点。
  • 其他参数如status_trackerscroll_to_outputshow_progress等用于控制界面的显示和行为。

通过change方法,我们可以为HTML模块的值变化事件绑定回调函数,从而实现对值变化的响应处理。

参数详解

以下是一个整理了HTML模块参数和change方法参数的表格:

参数名数据类型默认值描述
valuestr | Callable“”默认值。如果是可调用对象,将在应用加载时调用该函数以设置组件的初始值。
labelstr | NoneNone接口中的组件名称。
everyfloat | NoneNone如果value是可调用对象,在客户端连接打开时每隔“every”秒运行该函数。否则无效。队列必须启用。可以通过此组件的.load_event属性访问事件(例如,用于取消事件)。
show_labelboolTrue如果为True,将显示标签。
visibleboolTrue如果为False,将隐藏组件。
elem_idstr | NoneNone可选字符串,用作此组件在HTML DOM中的id。可用于定位CSS样式。
elem_classeslist[str] | str | NoneNone可选字符串列表,用作此组件在HTML DOM中的类。可用于定位CSS样式。

change方法

参数名数据类型默认值描述
fnCallable | None必填要在接口周围包装的函数。通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,函数应返回单个值或一个值元组,元组中的每个元素对应一个输出组件。
inputsComponent | list[Component] | set[Component] | NoneNone用作输入的gradio.components列表。如果函数不接受任何输入,应将其设置为空列表。
outputsComponent | list[Component] | NoneNone用作输出的gradio.components列表。如果函数不返回任何输出,应将其设置为空列表。
api_namestr | NoneNone定义此参数将在API文档中公开端点。
status_trackerNoneNone
scroll_to_outputboolFalse如果为True,将在完成后滚动到输出组件。
show_progressLiteral[‘full’] | Literal[‘minimal’] | Literal[‘hidden’]“full”如果为True,在等待期间显示进度动画。
queuebool | NoneNone如果为True,将将请求放入队列中(如果启用了队列)。如果为False,即使启用了队列,也不会将此事件放入队列中。如果为None,则使用gradio应用的队列设置。
batchboolFalse如果为True,则函数应处理一批输入,即它应接受每个参数的输入值列表。列表应具有相等的长度(并且最多为max_batch_size)。然后函数需要返回元组列表(即使只有1个输出组件),元组中的每个列表对应一个输出组件。
max_batch_sizeint4如果从队列调用此参数,批量在一起处理的最大输入数(仅在batch=True时相关)。
preprocessboolTrue如果为False,将在运行“fn”之前不运行组件数据的预处理(例如,如果使用Image组件调用此方法,则将其保留为base64字符串)。
postprocessboolTrue如果为False,将在将’fn’的输出返回给浏览器之前不运行组件数据的后处理。
cancelsdict[str, Any] | list[dict[str, Any]] | NoneNone要在此侦听器被触发时取消的其他事件列表。例如,设置cancels=[click_event]将取消click_event,其中click_event是另一个组件的.click方法的返回值。尚未运行的函数(或正在迭代的生成器)将被取消,但正在运行的函数将被允许完成。
everyfloat | NoneNone在客户端连接打开时每隔“every”秒运行此事件。以秒为单位解释。队列必须启用。

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

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

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

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

相关文章

【23-07-03:HTTP协议的结构学习】

目录 HTTP 请求的结构HTTP 请求的整体架构请求方法(Method)请求路径(URI)GET 参数(Parameters for GET)协议说明(Protocol)头部字段(Headers)请求体(Body&…

论文与专利查找和下载

例如我想查找和下载视频理解(video understanding)相关论文 路线大纲如下: 一、最主要方式: 大纲,蓝色都是有超级链接的可以直接打开: 第一步 谷歌搜索(英文) 学校的知网(中文)第二步 下载论文(谷歌学术--英文 学校的知网--中文)下载不了…

CMA

文章目录 前言概念功能启用CMA 内存的创建方式一、使用 cmdline方式二、使用 dts CMA 内存分配和释放实例(dts 方式) 前言 在嵌入式设备中,很多外设(如摄像机、硬件视频解码器等)需要较大的内存缓冲区,kma…

clickhouse日志表占用大量磁盘空间

clickhouse日志表占用大量磁盘空间 sql: SELECT sum(rows) AS 总行数, formatReadableSize(sum(data_uncompressed_bytes)) AS 原始大小, formatReadableSize(sum(data_compressed_bytes)) AS 压缩大小, round((sum(data_compressed_bytes) / sum(data_uncompresse…

<DB2> 《IBM DB2 备份恢复实用文档》(第一部分)

[TOC](《IBM DB2 备份恢复实用文档》(第一部分)) 1 理论 1.1 关于备份恢复说明 a、DB2数据库备份和恢复的数据都是已经提交落地在磁盘的数据 。 b、DB2数据库备份和恢复使用的日志都是归档日志。 c、只有开启归档日志,才能进行在线全备、在线增备。否则只能进行离…

基于单片机智能手环心率老人防跌倒心率体温 步数里程

功能介绍 以STM32单片机作为主控系统; OLED液晶显示心率体温步数等信息;通过按键设置心率、体温上限设置;当心率或者体温超过按键设置上限蜂鸣器进行声光报警提醒;通过wifi模块esp8266把数据发送到手机端进行显整个电路以5v供电&a…

Three.js卡通材质实现简明教程

继 Harry Alisavakis 令人惊叹的汤着色器之后,我想使用 Three.js 重新创建类似的卡通着色效果。 我从 Roystan 的卡通着色器教程开始,它是为 Unity 编写的。 在这篇文章中,我将把 Roystan 教程中概述的原则翻译成 Three.js。 下面描述的着色器…

mysql索引之Hash

在存储引擎中Memory引擎是支持Hash索引的,Hash索引跟java中的HashMap很像,有很多槽,存的也是键值对,键值为索引列,值为这条数据的行指针,通过指针就可以找到数据。 但是Hash索引应用的并不多,原…

一篇文章解释清楚IOC和DI

背景 众所周知我们要学习Spring,必不可少的就是IOC和AOP,那就让我们了解一下什么是IOC,开启下面的学习吧。 过程 什么是IOC? Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一…

VSCode 2019 “对COM组件的调用返回了错误HRESULT E_FAIL” 的解决

问题: VSCode使用 “MFC应用”模板创建项目时,出现:文件夹打不开,并弹出 “对COM组件的调用返回了错误HRESULT E_FAIL” 错误 解决方案: 1. 以管理员身份打开Developer Command Prompt for VS 2019(vs2…

敏捷开发发展和优缺点

目录 1 概述1.1 四种开发模式1.1.1 瀑布式开发1.1.2 螺旋模型1.1.3 迭代式开发1.1.4 敏捷开发 1.2 开发模式对比 2 敏捷开发2.1 敏捷宣言2.1.1 敏捷宣言解读2.1.2 敏捷宣言价值观 2.2 敏捷准则2.2.1 目的:是客户满意2.2.2 态度:欢迎需求变更2.2.3 关注&a…

加油,也可以更智慧

摘要:智慧加油站及油库管理系统的应用引擎是结合了华为云Roma Exchange能力,提升应用开发、部署和升级效率,支撑应用快速开发、远程部署。 停车、加油、驶离…… 从开车进场到离场,2分钟内即可完成“即加即走”的无感加油支付有没…

如何自动批量查询手机号归属地?

我们在工作生活中可能会收集到很多用户的手机号,我们如果想获取手机号归属地,只能一个个人工查询。如果数据量较多的情况就会比较耗费时间。有没有什么方法可以自动查询手机号归属地呢?当然可以,并且这个方法还是免费的。 首先&a…

qt-线程竞争共享资源和读写锁--QReadWriteLock

目录 一、线程竞争的概念2、什么是线程竞争2、什么是线程竞争共享资源? 二、读写锁1、读写锁的概念2、读写锁的工作原理如下:3、使用读写锁的示例(QReadWriteLock) 三、总结: 一、线程竞争的概念 2、什么是线程竞争 …

网络安全进阶学习第五课——文件上传漏洞

文章目录 一、常见文件上传点二、任意文件上传漏洞三、任意文件上传危害四、webshell五、上传木马所需条件六、木马上传流程七、上传绕过1、绕过JS验证1)Burpsuite剔除响应JS。2)浏览器审计工具剔除JS 2、绕过MIME-Type验证1)利用抓包工具&am…

Session 反序列化漏洞

将$_SESSION中保存的所有数据序列化存储到PHPSESSID对应的文件中有三种存取格式: (1)默认使用php:键名|键值(经过序列化函数处理的值) name|s:6:"1FonlY"; (2)php_seri…

Multi-level Wavelet-CNN for Image Restoration论文总结

论文:Multi-level Wavelet-CNN for Image Restoration 源码:GitHub - lpj0/MWCNN: Multi-level Wavelet-CNN for Image Restoration 目录 一、背景和出发点 二、创新点 三、MWCNN具体实现 四、DWT与池化运算和膨胀卷积相关性证明 五、DWT、IWT代码实…

阿里云服务器白嫖教程

阿里云服务器白嫖教程 第一步:打开百度第二步:进入阿里云官方,注册登录账号第三步:点击免费试用第四步:点击立即试用第五步:选择操作系统第五步:选择到期释放设置![在这里插入图片描述](https://img-blog.csdnimg.cn/d02f4582dd5943319441df9ccbae60f0.png)第六步:同意协议,并立…

3D深度视觉与myCobot 320机械臂无序抓取

今天我记录使用myCobot320 M5跟FS820-E1深度相机进行一个无序抓取物体的分享。 为什么会选择深度相机和机械臂做一个案例呢? 2D相机(最常见使用的相机)可以捕捉二维图像,也就是在水平和垂直方向上的像素值。它们通常用于拍摄静态…

F#奇妙游(5):计算π的值

F#到底有什么用? 奇妙游写到第五篇,前面的几篇都是开场白: 一个用F#编写WinForm的例子donet命令行工具,也就是F#的开发环境关于函数和函数式编程的碎碎念函数式编程的核心概念:值 下面,我们开始正式来搞…