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]] | |
| ```py | |
| 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`: | |
| ```py | |
| 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.