当前位置: 首页 > news >正文

gradio常用组件

gradio常用组件

  • 1.gradio程序启动
  • 2.写入html相关代码
  • 3.文本框
  • 4. 回车触发事件
  • 5.选择按钮框
  • 6.下拉框
  • 7.点击按钮
  • 8.清空按钮
  • 9.监听组件
  • 10.输出流
  • 11.template

1.gradio程序启动

import gradio as gr
def tab():pass
with gr.Blocks() as ui:gr.Markdown("# <center>🕵️‍♂️gradio test 🕵️‍♂️</center>")tab()
ui.launch(server_name='127.0.0.1', server_port=8080,show_api=False, debug=True,share=True)

2.写入html相关代码

gr.Markdown("# <center>🕵️‍♂️ Chatglm robot  🕵️‍♂️</center>")

3.文本框

# placeholder:默认提示词
text=gr.Textbox( label='user',placeholder='input question')

4. 回车触发事件

msg = gr.Textbox( label='user',placeholder='input question')
msg.submit(user, [msg, chatbot], [msg, chatbot], queue=False).then(bot, chatbot, chatbot)

5.选择按钮框

mode_name= gr.Radio(['小红', '小白', '小胖', '小黑'], label='name', value='小红')

6.下拉框

# value:默认值
# label:组件名称
mode_type= gr.Dropdown(['1','2','3','4'], label='type', value='1')

7.点击按钮

# inputs:输入组件(输入参数),outputs:输出组件(输出参数)
# fn:触发时调用的函数
button = gr.Button("点击")
button.click(fn=update_keys, inputs=[model_key], outputs=prompt_key)

8.清空按钮

text=gr.Textbox( label='user',placeholder='input question')
clear = gr.Button("清除历史记录")
clear.click(lambda: None, None, text, queue=False)

9.监听组件

  • 输入组件变化,输出组件也变化

    import gradio as gr
    def tab():mode_input=gr.Textbox( label='user',placeholder='input question')mode_output =gr.Textbox( label='user',placeholder='input question')# mode_input值改变,mode_output值也会跟着改变# inputs:输入组件(输入参数),outputs:输出组件(输出参数)# fn:触发时调用的函数mode_input.change(fn=lambda x:x, inputs=mode_input, outputs=mode_output)
    with gr.Blocks() as ui:gr.Markdown("# <center>🕵️‍♂️gradio test 🕵️‍♂️</center>")tab()
    ui.launch(server_name='127.0.0.1', server_port=8080,show_api=False, debug=True,share=True)
    
  • 输入组件变化,对应的下拉框显示的值也变化

    # data为pandas文件
    mode_type= gr.Dropdown(types, label='type', value=types[0])
    mode_title = gr.Dropdown(list(data[data['type']==types[0]]['title'].unique()), label='title')
    mode_type.change(fn=lambda x:gr.update(choices=list(data[data['type']==x]['title'].unique())), inputs=mode_type, outputs=mode_title)
    

10.输出流

import time
import gradio as grdef user(user_message, history):return "", history + [[user_message, None]]def bot(history):bot_message = history[-1][0]history[-1][1] = ""for character in bot_message:history[-1][1] += charactertime.sleep(0.05)yield history
def robot_tab():chatbot = gr.Chatbot(label='robot')msg = gr.Textbox( label='user',placeholder='input question')button = gr.Button("generate answer")# then: 监听事件button.click(user, [msg, chatbot], [msg, chatbot], queue=False).then(bot, chatbot, chatbot)clear = gr.Button("清除历史记录")clear.click(lambda: None, None, chatbot, queue=False)with gr.Blocks() as ui:gr.Markdown("# <center>🕵️‍♂️ stream  🕵️‍♂️</center>")robot_tab()
# 使用队列提交数据
ui.queue()
ui.launch(server_name='127.0.0.1', server_port=8080,show_api=False, debug=True,share=True)

11.template

  • 模板:下代码在这个模板的基础下修改即可
    
    import cv2
    import gradio as grdef update(mode_name,mode_age,mode_gender,mode_height):# image = image.convert('RGB')text=f'我叫{mode_name},性别{mode_gender},身高{mode_height},今年{mode_age}岁。'return text# return imagedef prompt_tab():with gr.Column():with gr.Row():image = gr.Image(type='pil', label="Image")with gr.Column():mode_name= gr.Radio(['小红', '小白', '小胖', '小黑'], label='name', value='小红')mode_age = gr.Radio(['18', '30', '40', '50'], label='age', value='18')mode_gender = gr.Radio(['女', '男'], label='gender', value='女')mode_height = gr.Dropdown(['160','165','170','175','180'], value='160', label='height')prompt = gr.Textbox(label="Prompt")button = gr.Button("Personal Information")button.click(fn=update, inputs=[mode_name,mode_age,mode_gender,mode_height], outputs=prompt)def image_analysis(input_image):output_image =input_imagereturn output_imagedef analyze_tab():with gr.Column():with gr.Row():# 创建输入组件input_image = gr.Image(type='numpy', label="Image")with gr.Column():# 创建输出组件# output_image = gr.outputs.Image(type='pil', label="Image")output_image = gr.outputs.Image(type='numpy',label="Image")button = gr.Button("Analyze")button.click(image_analysis, inputs=[input_image], outputs=[output_image])with gr.Blocks() as ui:gr.Markdown("# <center>🕵️‍♂️ gradio project  🕵️‍♂️</center>")with gr.Tab("Prompt"):prompt_tab()with gr.Tab("Analyze"):analyze_tab()ui.launch(server_name='127.0.0.1', server_port=8080,show_api=False, debug=True,share=True)

相关文章:

gradio常用组件

gradio常用组件 1.gradio程序启动2.写入html相关代码3.文本框4. 回车触发事件5.选择按钮框6.下拉框7.点击按钮8.清空按钮9.监听组件10.输出流11.template 1.gradio程序启动 import gradio as gr def tab():pass with gr.Blocks() as ui:gr.Markdown("# <center>&am…...

vcode开发go

配置环境变量 go env -w GO111MODULEon go env -w GOPROXYhttps://goproxy.cn,direct 创建文件夹 mkdir hello cd hello go mod help go mod help 初始化一个项目 go mod init hello 获取第三方包 go get github.com/shopspring/decimal 将依赖包下载到本地 go mod …...

聊城大学823软件工程考研

1.什么是软件工程?它目标和内容是什么? 软件工程就是用科学的知识和技术原理来定义&#xff0c;开发&#xff0c;维护软件的一门学科。 软件工程目标&#xff1a;付出较低开发成本&#xff1b;达到要求的功能&#xff1b;取得较好的性能&#xff1b;开发的软件易于移植&…...

Spring Initailizr--快速入门--SpringBoot的选择

&#x1f600;前言 本篇博文是关于IDEA使用Spring Initializer快速创建Spring Boot项目的说明&#xff0c;希望能够帮助到您&#x1f60a; &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可…...

大数据课程I1——Kafka的概述

文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 了解Kafka的概念; ⚪ 掌握Kafka的配置与启动; 一、简介 1. 基本概念 Apache kafka 是一个分布式数据流平台。可以从如下几个层面来理解: 1. 我们可以向Kafka发布数据以及从Kafka订阅…...

视图簇 se54 sm34 se54

今天演练了一下 维护视图到视图簇的过程。 se11建表&#xff0c;建表之后 【使用程序】→【表维护生成器】 se54 新建视图簇 对象结构 选中其中一行 字段附属 PS:以上每一行都要设置过去 &#xff0c; 设置完成了 激活 sm34展示...

风丘科技将亮相 EVM ASIA 2023

风丘科技将首次亮相 EVM ASIA 2023 WINDHILL will debut EVM ASIA 2023 ——可持续移动的未来 —The Future of SUSTAINABLE Mobility EVM ASIA 2023是亚太地区电气化的国际性展会&#xff0c;专注于新能源汽车、充电技术及汽车零件制造等。展会致力于促进包括充电站、交通…...

腾讯云服务器S6、SA3、S5、SA2等CVM实例介绍

腾讯云服务器CVM实例标准型S6、SA3、S5、SA2等多款实例降价&#xff0c;最高幅度达40%&#xff0c;标准型S6云服务器是新一代云服务器&#xff0c;SA3和SA2是AMD处理器&#xff0c;标准型S5是次新一代的云服务器&#xff0c;如下图&#xff1a; 腾讯云服务器CVM降价 标准型S6&a…...

使用kickstart和anaconda自动化安装centos系统

使用kickstart和anaconda自动化安装centos系统 使用kickstart和anaconda自动化安装centos系统 anaconda 介绍 kickstart 介绍 实验过程 前提 1.已经安装好至少两台centos系统 2.需要实现自动安装的系统的光盘镜像 3.已安装的系统之间可以通讯(比如处于VMware中的NAT网络的…...

Delphi7通过VB6之COM对象调用PowerBASIC写的DLL功能

Delphi7通过VB6之COM对象调用PowerBASIC写的DLL功能。标题挺长&#xff0c;其实目标很简单&#xff0c;就是在Delphi7中使用PowerBASIC的MKI/CVI, MKS/CVS, MKD/CVD&#xff0c;并顺便加入CRC16检验函数&#xff0c;再进行16进制高低字节调整&#xff0c;方便在VB6、Delphi、La…...

中电金信:ChatGPT一夜爆火,知识图谱何以应战?

随着ChatGPT的爆火出圈 人工智能再次迎来发展小高潮 那么作为此前搜索领域的主流技术 知识图谱前路又将如何呢&#xff1f; 事实上&#xff0c;ChatGPT也并非“万能”&#xff0c;作为黑箱模型&#xff0c;ChatGPT很难验证生成的知识是否准确。并且ChatGPT是通过概率模型执行推…...

单细胞分类和预测任务

对于分类和预测任务&#xff0c;在生物信息学领域有一些常用的方法和工具可以使用。以下是一些常见的方法和工具&#xff1a; 1. 机器学习方法&#xff1a; 包括支持向量机&#xff08;Support Vector Machine&#xff0c;SVM&#xff09;、随机森林&#xff08;Random Forest…...

那些年的Webview开发经验记录

获取网站视频真实链接 直接上工具类 直接调用即可&#xff0c;这个工具类会返回加载的网页中所有的链接&#xff0c;至于对链接怎么处理就是你们自己的事了&#xff0c; 亲测至今我所遇到的所有视频&#xff0c;它都可以捕获到其链接 import android.app.Activity; import an…...

ssh-keygen详解

ssh-keygen命令参数详解 -b BITS指定密钥长度。 -e读取私有或公共 OpenSSH 密钥文件并以 -m 选项指定的格式之一将密钥打印到标准输出。 -C添加注释。 -f FILENAME指定用来保存密钥的文件名。 -i以 -m 选项指定的格式读取未加密的私钥&#xff08;或公钥&#xff09;文件&…...

自动方向识别式 LSF型电平转换芯片

大家好&#xff0c;这里是大话硬件。 今天这篇文章想分享一下电平转换芯片相关的内容。 其实在之前的文章分享过一篇关于电平转换芯片的相关内容&#xff0c;具体可以看链接《高速电路逻辑电平转换设计》。当时这篇文章也是分析的电平转换芯片&#xff0c;不过那时候更多的是…...

轻量的工作流引擎:告别低效,创造新高!

伴随着日益激烈的市场竞争&#xff0c;作为新时代的企业&#xff0c;如何在众多同质化竞争中脱颖而出&#xff0c;占有更多的市场份额&#xff0c;实现更大发展&#xff1f;此时此刻就需要拥有不同寻常的头脑&#xff0c;寻找不平常的路径&#xff0c;轻量的工作流引擎是低代码…...

Linux-mysql安装

1. 获取rpm wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm 2. 安装rpm rpm -ivh mysql57-community-release-el7-9.noarch.rpm 3. 确认依赖文件 cd /etc/yum.repos.d ls 查看该文件夹下是否已存在如下两个文件 4. import mysql 的公钥到RPM…...

山东布谷科技直播平台搭建游戏开发技术分享:数据存储的重要意义

在市场上的热门的直播平台中&#xff0c;有很多小程序为用户提供各种各样的功能&#xff0c;这其中就有很多游戏小程序&#xff0c;当今社会独生子女众多&#xff0c;很多作为独生子女的用户都会去选择一个能够社交互动的APP来填补内心的空虚&#xff0c;而直播平台的实时互动的…...

MyBatisPlus的介绍

本资料仅用于学习和讨论&#xff0c;如有侵权请反馈 https://mp .baomidou. com/ MyBatis-Plus 1.1 为什么网站叫做苞米逗是国人开发的 1.2 点击快速开发 1.3 点击快速开始 1.4 Mybatis的特性 2、快速的把数据层的标准开发给做完&#xff1a; 2.1上来就来标准开发了&#xf…...

麻省理工学院利用水泥和炭黑制造出超级电容器

麻省理工学院的研究人员展示了一种使用低成本水泥和炭黑的制造的超级电容器&#xff0c;这一发明可能会彻底颠覆可再生能源的存储。 ​为了解决太阳能、风能和潮汐能等间歇性和非周期性电源的普及问题&#xff0c;实用并且廉价的电力储存技术一直是重要的环节。MIT的研究人员最…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具&#xff0c;该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具&#xff0c;其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利&#xff0c;如安装和调试…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机

这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机&#xff0c;因为在使用过程中发现 Airsim 对外部监控相机的描述模糊&#xff0c;而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置&#xff0c;最后在源码示例中找到了&#xff0c;所以感…...

从物理机到云原生:全面解析计算虚拟化技术的演进与应用

前言&#xff1a;我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM&#xff08;Java Virtual Machine&#xff09;让"一次编写&#xff0c;到处运行"成为可能。这个软件层面的虚拟化让我着迷&#xff0c;但直到后来接触VMware和Doc…...

MeshGPT 笔记

[2311.15475] MeshGPT: Generating Triangle Meshes with Decoder-Only Transformers https://library.scholarcy.com/try 真正意义上的AI生成三维模型MESHGPT来袭&#xff01;_哔哩哔哩_bilibili GitHub - lucidrains/meshgpt-pytorch: Implementation of MeshGPT, SOTA Me…...

Qt的学习(二)

1. 创建Hello Word 两种方式&#xff0c;实现helloworld&#xff1a; 1.通过图形化的方式&#xff0c;在界面上创建出一个控件&#xff0c;显示helloworld 2.通过纯代码的方式&#xff0c;通过编写代码&#xff0c;在界面上创建控件&#xff0c; 显示hello world&#xff1b; …...