SergioSCA commited on
Commit
1da3f58
verified
1 Parent(s): 3850248

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +69 -80
app.py CHANGED
@@ -1,99 +1,88 @@
1
  import gradio as gr
 
 
2
 
3
- modalities_tasks = {
4
- "NLP": ["Clasificaci贸n de Texto", "Generaci贸n de Texto", "Resumen", "Traducci贸n", "QA"],
5
- "Audio": ["Reconocimiento de Voz", "Clasificaci贸n de Audio", "Generaci贸n de Audio", "Separaci贸n de Fuentes"],
6
- "Vision": ["Clasificaci贸n de Im谩genes", "Detecci贸n de Objetos", "Segmentaci贸n", "Generaci贸n de Im谩genes"],
7
- "RAG": ["B煤squeda Sem谩ntica", "Generaci贸n Aumentada", "QA Contextual"],
8
- "Code": ["Generaci贸n de C贸digo", "Depuraci贸n", "Traducci贸n entre Lenguajes"],
9
- "Time Series": ["Predicci贸n", "Detecci贸n de Anomal铆as", "Clasificaci贸n Temporal"],
10
- "Graph": ["Predicci贸n de Nodos", "Clasificaci贸n de Grafos", "Generaci贸n de Grafos"],
11
- "Tabular": ["Regresi贸n", "Clasificaci贸n", "Imputaci贸n de Datos"]
12
  }
13
 
14
- def generate_csv_header(*args):
15
- # L贸gica para generar encabezado multimodal
16
- return "Encabezado generado: ID,Modalidad-Tarea1,Modalidad-Tarea2,..."
 
 
 
 
17
 
18
- def search_datasets():
19
- # L贸gica para buscar datasets en HuggingFace
20
- return [["Dataset1", "Descripci贸n1"], ["Dataset2", "Descripci贸n2"]]
 
 
 
 
 
 
21
 
22
- def generate_dataset():
23
- # L贸gica para generar dataset multimodal
24
- return "sample.csv"
 
 
 
 
 
 
 
25
 
 
 
 
 
 
 
 
 
 
 
26
  with gr.Blocks() as demo:
27
- gr.Markdown("# 馃 Dise帽ador de Modelos Multimodales")
28
-
29
  # Panel 1: Selecci贸n de Modalidades
30
  with gr.Row():
31
- gr.Markdown("## 1. Selecci贸n de Modalidades")
32
- modality_components = []
33
- for modality in modalities_tasks:
34
- with gr.Column():
35
- modality_components.append(
36
- gr.Checkbox(label=modality, interactive=True)
37
- )
38
-
39
- # Panel 2: Selecci贸n de Tareas
40
  with gr.Row():
41
- gr.Markdown("## 2. Configuraci贸n de Tareas")
42
- task_components = []
43
- for modality in modalities_tasks:
44
- with gr.Column(visible=False) as col:
45
- task_dropdown = gr.Dropdown(
46
- choices=modalities_tasks[modality],
47
- label=f"Tareas para {modality}",
48
- interactive=True
49
- )
50
- task_components.append((col, task_dropdown))
51
 
52
- # Actualizar visibilidad de tareas
53
- for i, modality_check in enumerate(modality_components):
54
- modality_check.change(
55
- lambda val, idx=i: gr.update(visible=val),
56
- inputs=modality_check,
57
- outputs=task_components[i][0]
58
- )
59
-
60
- # Panel 3: Generar Encabezado CSV
61
  with gr.Row():
62
- gr.Markdown("## 3. Configuraci贸n del Dataset")
63
- with gr.Column():
64
- header_btn = gr.Button("Generar Encabezado del CSV")
65
- header_output = gr.Textbox(label="Estructura del Dataset")
66
 
67
- # Panel 4: B煤squeda de Datasets
68
  with gr.Row():
69
- gr.Markdown("## 4. Datasets Disponibles")
70
- with gr.Column():
71
- search_btn = gr.Button("Buscar en HuggingFace")
72
- datasets_table = gr.DataFrame(headers=["Dataset", "Descripci贸n"])
73
 
74
- # Panel 5: Generaci贸n del Dataset
75
  with gr.Row():
76
- gr.Markdown("## 5. Generaci贸n Final")
77
- with gr.Column():
78
- generate_btn = gr.Button("Generar Dataset Multimodal")
79
- dataset_output = gr.File(label="Dataset Generado", file_types=[".csv"])
80
- download_btn = gr.DownloadButton("猬囷笍 Descargar CSV", visible=False)
81
-
82
- # Conectar funcionalidades
83
- header_btn.click(
84
- generate_csv_header,
85
- inputs=[*modality_components, *[t[1] for t in task_components]],
86
- outputs=header_output
87
- )
88
-
89
- search_btn.click(
90
- search_datasets,
91
- outputs=datasets_table
92
- )
93
-
94
- generate_btn.click(
95
- generate_dataset,
96
- outputs=[dataset_output, download_btn]
97
- )
98
 
 
99
  demo.launch()
 
1
  import gradio as gr
2
+ from datasets import load_dataset
3
+ import requests
4
 
5
+ # Diccionario de tareas por modalidad
6
+ MODALIDAD_TAREAS = {
7
+ "NLP": ["Clasificaci贸n de texto", "Generaci贸n de texto", "Traducci贸n", "Resumen"],
8
+ "Audio": ["Reconocimiento de voz", "Clasificaci贸n de audio", "Separaci贸n de fuentes"],
9
+ "Vision": ["Clasificaci贸n de im谩genes", "Detecci贸n de objetos", "Segmentaci贸n"],
10
+ "RAG": ["Respuesta a preguntas", "Recuperaci贸n de informaci贸n"],
11
+ "Code": ["Generaci贸n de c贸digo", "Completado de c贸digo"],
12
+ "Tabular": ["Clasificaci贸n tabular", "Regresi贸n tabular"],
13
+ "Time Series": ["Predicci贸n de series temporales"]
14
  }
15
 
16
+ # Funci贸n para actualizar las tareas seg煤n las modalidades seleccionadas
17
+ def actualizar_tareas(modalidades_seleccionadas):
18
+ tareas_disponibles = []
19
+ for modalidad in modalidades_seleccionadas:
20
+ if modalidad in MODALIDAD_TAREAS:
21
+ tareas_disponibles.extend(MODALIDAD_TAREAS[modalidad])
22
+ return {tarea: False for tarea in set(tareas_disponibles)}
23
 
24
+ # Funci贸n para generar el encabezado del CSV
25
+ def generar_encabezado(modalidades_seleccionadas, tareas_seleccionadas):
26
+ columnas = []
27
+ for modalidad in modalidades_seleccionadas:
28
+ columnas.append(f"{modalidad.lower()}_input")
29
+ columnas.append(f"{modalidad.lower()}_output")
30
+ for tarea in tareas_seleccionadas:
31
+ columnas.append(f"{tarea.lower().replace(' ', '_')}_label")
32
+ return ",".join(columnas)
33
 
34
+ # Funci贸n para buscar datasets compatibles en HuggingFace
35
+ def buscar_datasets(modalidades_seleccionadas, tareas_seleccionadas):
36
+ query = "+".join(modalidades_seleccionadas + tareas_seleccionadas)
37
+ url = f"https://huggingface.co/api/datasets?search={query}"
38
+ response = requests.get(url)
39
+ datasets = response.json()
40
+ resultados = []
41
+ for dataset in datasets:
42
+ resultados.append(f"- {dataset['id']}: {dataset['description']}")
43
+ return "\n".join(resultados)
44
 
45
+ # Funci贸n para generar el dataset
46
+ def generar_dataset(encabezado, datasets_seleccionados):
47
+ # Aqu铆 puedes implementar la l贸gica para extraer datos reales de internet o datasets
48
+ # Por simplicidad, generaremos un dataset ficticio basado en el encabezado
49
+ columnas = encabezado.split(",")
50
+ filas = [",".join([f"valor_{i}" for i in range(len(columnas))])]
51
+ contenido_csv = "\n".join([encabezado] + filas)
52
+ return contenido_csv
53
+
54
+ # Interfaz Gradio
55
  with gr.Blocks() as demo:
56
+ gr.Markdown("# Dise帽ador de Modelos de Redes Neuronales y Generador de Datasets Multimodales")
57
+
58
  # Panel 1: Selecci贸n de Modalidades
59
  with gr.Row():
60
+ modalidades = list(MODALIDAD_TAREAS.keys())
61
+ modalidades_seleccionadas = gr.CheckboxGroup(choices=modalidades, label="Selecciona Modalidades")
62
+
63
+ # Panel 2: Tareas Relacionadas
 
 
 
 
 
64
  with gr.Row():
65
+ tareas_disponibles = gr.CheckboxGroup(choices=[], label="Tareas Disponibles")
66
+ modalidades_seleccionadas.change(actualizar_tareas, inputs=modalidades_seleccionadas, outputs=tareas_disponibles)
 
 
 
 
 
 
 
 
67
 
68
+ # Panel 3: Generar Encabezado del CSV
 
 
 
 
 
 
 
 
69
  with gr.Row():
70
+ btn_generar_encabezado = gr.Button("Generar Encabezado del CSV")
71
+ encabezado_generado = gr.Textbox(label="Encabezado Generado", interactive=False)
72
+ btn_generar_encabezado.click(generar_encabezado, inputs=[modalidades_seleccionadas, tareas_disponibles], outputs=encabezado_generado)
 
73
 
74
+ # Panel 4: Buscar Datasets Compatibles
75
  with gr.Row():
76
+ btn_buscar_datasets = gr.Button("Buscar Datasets Compatibles")
77
+ datasets_encontrados = gr.Textbox(label="Datasets Encontrados", interactive=False)
78
+ btn_buscar_datasets.click(buscar_datasets, inputs=[modalidades_seleccionadas, tareas_disponibles], outputs=datasets_encontrados)
 
79
 
80
+ # Panel 5: Generar Dataset
81
  with gr.Row():
82
+ btn_generar_dataset = gr.Button("Generar Dataset")
83
+ vista_previa_csv = gr.Textbox(label="Vista Previa del CSV", interactive=False)
84
+ btn_descargar_csv = gr.File(label="Descargar CSV")
85
+ btn_generar_dataset.click(generar_dataset, inputs=[encabezado_generado, datasets_encontrados], outputs=vista_previa_csv)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
86
 
87
+ # Ejecutar la aplicaci贸n
88
  demo.launch()