Update app.py
Browse files
app.py
CHANGED
@@ -1,99 +1,88 @@
|
|
1 |
import gradio as gr
|
|
|
|
|
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 |
with gr.Blocks() as demo:
|
27 |
-
gr.Markdown("#
|
28 |
-
|
29 |
# Panel 1: Selecci贸n de Modalidades
|
30 |
with gr.Row():
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
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.
|
42 |
-
|
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 |
-
#
|
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.
|
63 |
-
|
64 |
-
|
65 |
-
header_output = gr.Textbox(label="Estructura del Dataset")
|
66 |
|
67 |
-
# Panel 4:
|
68 |
with gr.Row():
|
69 |
-
gr.
|
70 |
-
|
71 |
-
|
72 |
-
datasets_table = gr.DataFrame(headers=["Dataset", "Descripci贸n"])
|
73 |
|
74 |
-
# Panel 5:
|
75 |
with gr.Row():
|
76 |
-
gr.
|
77 |
-
|
78 |
-
|
79 |
-
|
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()
|