File size: 3,418 Bytes
efdd1f5
a48c7f7
7ae6cdf
a48c7f7
 
7ae6cdf
943d4f2
9cf1851
a48c7f7
1da3f58
f8461dd
9cf1851
f8461dd
943d4f2
d628526
1da3f58
9cf1851
a24e23b
 
 
 
 
 
 
 
f8461dd
9cf1851
 
 
 
f8461dd
9cf1851
c4f2a33
f8461dd
 
c4f2a33
a24e23b
9cf1851
f8461dd
9cf1851
 
 
f8461dd
9cf1851
2b833bb
 
d628526
86b4f27
33f2548
 
7ae6cdf
86b4f27
33f2548
 
 
ad8c2c9
33f2548
943d4f2
33f2548
 
86b4f27
943d4f2
33f2548
 
943d4f2
a24e23b
d628526
7c0815f
943d4f2
 
 
a24e23b
7c0815f
ad8c2c9
943d4f2
7c0815f
 
943d4f2
ad8c2c9
d628526
943d4f2
1cd532e
1da3f58
943d4f2
1cd532e
ad8c2c9
33f2548
1cd532e
 
efdd1f5
cba4d16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
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()