Buckets:
Introducción a Gradio Blocks[[introduction-to-gradio-blocks]]
En las secciones anteriores hemos explorado y creado demos usando la clase Interface. En esta sección presentaremos la API de bajo nivel gradio.Blocks.
Interface: una API de alto nivel para construir demos sencillas.Blocks: una API de bajo nivel para controlar el diseño y el flujo de datos de tu aplicación.
¿Por qué Blocks?[[why-blocks-]]
Blocks es útil cuando quieres:
- Agrupar varias demos relacionadas en pestañas.
- Cambiar el diseño de entradas y salidas.
- Crear interfaces de varios pasos.
- Modificar propiedades o visibilidad de componentes según la entrada del usuario.
Crear una demo sencilla usando Blocks[[creating-a-simple-demo-using-blocks]]
import gradio as gr
def flip_text(x):
return x[::-1]
demo = gr.Blocks()
with demo:
gr.Markdown(
"""
# Flip Text!
Start typing below to see the output.
"""
)
input = gr.Textbox(placeholder="Flip this text")
output = gr.Textbox()
input.change(fn=flip_text, inputs=input, outputs=output)
demo.launch()
Personalizar el diseño de tu demo[[customizing-the-layout-of-your-demo]]
Puedes organizar componentes con Row, Column, Tabs y TabItem:
import numpy as np
import gradio as gr
demo = gr.Blocks()
def flip_text(x):
return x[::-1]
def flip_image(x):
return np.fliplr(x)
with demo:
gr.Markdown("Flip text or image files using this demo.")
with gr.Tabs():
with gr.TabItem("Flip Text"):
with gr.Row():
text_input = gr.Textbox()
text_output = gr.Textbox()
text_button = gr.Button("Flip")
with gr.TabItem("Flip Image"):
with gr.Row():
image_input = gr.Image()
image_output = gr.Image()
image_button = gr.Button("Flip")
text_button.click(flip_text, inputs=text_input, outputs=text_output)
image_button.click(flip_image, inputs=image_input, outputs=image_output)
demo.launch()
Explorar eventos y estado[[exploring-events-and-state]]
Con Blocks puedes conectar eventos como click() o change() a funciones Python, reutilizar componentes como entrada y salida, y construir flujos más complejos.
Crear demos de varios pasos[[creating-multi-step-demos]]
También puedes encadenar varias funciones, usando la salida de una como entrada de otra, por ejemplo de speech-to-text a análisis de sentimiento.
Actualizar propiedades de componentes[[updating-component-properties]]
Además de cambiar valores, puedes actualizar propiedades como visibilidad o número de líneas devolviendo gr.Textbox.update(...) desde una función.
Al igual que con Interface, puedes compartir demos de Blocks con share=True o desplegarlas en Hugging Face Spaces.
Xet Storage Details
- Size:
- 2.86 kB
- Xet hash:
- b9b7a678a9711d4e42ddb5e4370f70d96e85313ff7c217ab1ec699ba820fd651
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.