SergioSCA's picture
Update app.py
a48c7f7 verified
raw
history blame
2.84 kB
import gradio as gr
from functions import (
MODALIDAD_TAREAS,
generar_grafica_barras,
generar_encabezado,
buscar_datasets,
generar_dataset
)
# Interfaz Gradio
with gr.Blocks() as demo:
gr.Markdown("# Diseñador de Modelos de Redes Neuronales y Generador de Datasets Multimodales")
# Panel 1: Lista de Tareas Disponibles con Checkboxes
with gr.Row():
gr.Markdown("### Selecciona Tareas")
todas_las_tareas = [tarea for tareas in MODALIDAD_TAREAS.values() for tarea in tareas]
tareas_seleccionadas = gr.CheckboxGroup(choices=todas_las_tareas, label="Tareas Disponibles", interactive=True)
# Panel 2: Gráfica de Barras
with gr.Row():
gr.Markdown("### Distribución de Tareas Seleccionadas por Modalidad")
grafica_barras = gr.Plot(label="Gráfica de Barras")
btn_actualizar_grafica = gr.Button("Actualizar Gráfica")
btn_actualizar_grafica.click(
fn=lambda tareas: generar_grafica_barras(tareas),
inputs=tareas_seleccionadas,
outputs=grafica_barras
)
# Panel 3: Generar Encabezado del CSV
with gr.Row():
btn_generar_encabezado = gr.Button("Generar Encabezado del CSV")
encabezado_generado = gr.Textbox(label="Encabezado Generado", interactive=False)
btn_generar_encabezado.click(
fn=generar_encabezado,
inputs=tareas_seleccionadas,
outputs=encabezado_generado
)
# Panel 4: Buscar Datasets Compatibles con Filtros Adicionales
with gr.Row():
with gr.Column():
filtro_tamaño = gr.Dropdown(choices=["small", "medium", "large"], label="Filtrar por Tamaño")
filtro_licencia = gr.Dropdown(choices=["mit", "apache-2.0", "cc-by-4.0"], label="Filtrar por Licencia")
btn_buscar_datasets = gr.Button("Buscar Datasets Compatibles")
datasets_encontrados = gr.Textbox(label="Datasets Encontrados", interactive=False)
btn_buscar_datasets.click(
buscar_datasets,
inputs=[tareas_seleccionadas, filtro_tamaño, filtro_licencia],
outputs=datasets_encontrados
)
# Panel 5: Generar Dataset con Paginación
with gr.Row():
pagina_actual = gr.Number(value=1, label="Página Actual")
filas_por_pagina = gr.Number(value=5, label="Filas por Página")
btn_generar_dataset = gr.Button("Generar Dataset")
vista_previa_csv = gr.Textbox(label="Vista Previa del CSV", interactive=False)
btn_descargar_csv = gr.File(label="Descargar CSV")
btn_generar_dataset.click(
generar_dataset,
inputs=[encabezado_generado, datasets_encontrados, pagina_actual, filas_por_pagina],
outputs=vista_previa_csv
)
# Ejecutar la aplicación
demo.launch()