File size: 2,840 Bytes
efdd1f5
a48c7f7
 
 
 
 
 
 
1da3f58
 
d628526
1da3f58
0c4f209
8bf0097
c8e0946
a48c7f7
8bf0097
 
2b833bb
 
d628526
a48c7f7
 
33f2548
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c7d73f9
33f2548
d628526
7c0815f
 
 
1da3f58
 
7c0815f
 
8bf0097
7c0815f
 
6b3f7f3
33f2548
d628526
1cd532e
 
1da3f58
 
 
1cd532e
 
33f2548
1cd532e
 
efdd1f5
1da3f58
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
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()