SergioSCA's picture
Update app.py
f8461dd verified
import gradio as gr
from functions import (
cargar_modalidades_tareas,
generar_grafica_barras,
buscar_datasets,
generar_dataset,
generar_encabezado,
actualizar_modalidades_tareas_desde_huggingface
)
# Cargar modalidades inicialmente
MODALIDAD_TAREAS = cargar_modalidades_tareas()
tareas_iniciales = list(MODALIDAD_TAREAS.keys())
with gr.Blocks() as demo:
gr.Markdown("# Diseñador de Modelos de Redes Neuronales y Generador de Datasets Multimodales")
# Panel 1: Tareas Disponibles (declarado primero)
with gr.Row():
tareas_disponibles = gr.CheckboxGroup(
choices=tareas_iniciales,
label="Tareas Disponibles",
interactive=True
)
# Panel de Actualización
with gr.Row():
btn_actualizar_json = gr.Button("Actualizar Modalidades desde HuggingFace")
mensaje_actualizacion = gr.Textbox(label="Estado", interactive=False)
# Función para actualizar y refrescar
def actualizar_tareas_handler():
try:
nuevas_tareas = actualizar_modalidades_tareas_desde_huggingface()
return nuevas_tareas, "✅ Modalidades actualizadas: " + ", ".join(nuevas_tareas)
except Exception as e:
return tareas_iniciales, f"❌ Error: {str(e)}"
# Vincular evento
btn_actualizar_json.click(
fn=actualizar_tareas_handler,
inputs=[],
outputs=[tareas_disponibles, mensaje_actualizacion] # Actualizar opciones y mensaje
)
# Panel 2: Gráfica de Barras
with gr.Row():
grafica_barras = gr.Plot()
btn_actualizar_grafica = gr.Button("Actualizar Gráfica")
btn_actualizar_grafica.click(
fn=lambda tareas: generar_grafica_barras(tareas, MODALIDAD_TAREAS),
inputs=tareas_disponibles,
outputs=grafica_barras
)
# Panel 3: Generar Encabezado
with gr.Row():
btn_generar_encabezado = gr.Button("Generar Encabezado")
encabezado_generado = gr.Textbox(label="Encabezado Generado", interactive=False)
btn_generar_encabezado.click(
fn=generar_encabezado,
inputs=tareas_disponibles,
outputs=encabezado_generado
)
# Panel 4: Buscar Datasets
with gr.Row():
with gr.Column():
filtro_tamaño = gr.Dropdown(choices=["small", "medium", "large"], label="Tamaño")
filtro_licencia = gr.Dropdown(choices=["mit", "apache-2.0", "cc-by-4.0"], label="Licencia")
btn_buscar_datasets = gr.Button("Buscar Datasets Útiles")
datasets_encontrados = gr.CheckboxGroup(label="Datasets Compatibles")
btn_buscar_datasets.click(
fn=buscar_datasets,
inputs=[tareas_disponibles, filtro_tamaño, filtro_licencia],
outputs=datasets_encontrados
)
# Panel 5: Generar Dataset
with gr.Row():
pagina_actual = gr.Number(value=1, label="Página")
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", interactive=False)
btn_generar_dataset.click(
fn=generar_dataset,
inputs=[encabezado_generado, datasets_encontrados, pagina_actual, filas_por_pagina],
outputs=vista_previa_csv
)
demo.launch()