SergioSCA commited on
Commit
b956911
·
verified ·
1 Parent(s): ce47802

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -7
app.py CHANGED
@@ -1,5 +1,5 @@
1
  import gradio as gr
2
- from datasets import load_dataset
3
  import pandas as pd
4
  import time
5
 
@@ -48,12 +48,13 @@ def generate_csv(modalities, vision_tasks, nlp_tasks, audio_tasks, progress=gr.P
48
  progress(1, desc="Esquema CSV generado con éxito.")
49
  return ", ".join(columns)
50
 
51
- # Función para buscar datasets públicos relevantes
52
  def search_datasets(modalities, progress=gr.Progress()):
 
53
  dataset_map = {
54
- "Visión": ["coco", "imagenet", "openimages", "cityscapes"],
55
- "NLP": ["imdb", "glue", "wmt14", "sentiment140"],
56
- "Audio": ["common_voice", "librispeech", "fma", "musdb18", "lmd"] # Dataset MIDI agregado
57
  }
58
  results = []
59
  total_steps = len(modalities)
@@ -76,10 +77,10 @@ def analyze_datasets(selected_datasets, csv_schema, progress=gr.Progress()):
76
  if url.strip():
77
  progress(i / total_steps, desc=f"Analizando dataset: {url}")
78
  try:
79
- # Habilitar trust_remote_code para datasets que lo requieren
80
  dataset = load_dataset(url.strip(), trust_remote_code=True)
81
  df = pd.DataFrame(dataset["train"])
82
- # Filtrar columnas según el esquema CSV
83
  filtered_df = df[[col for col in schema_columns if col in df.columns]]
84
  datasets.append(filtered_df)
85
  time.sleep(2) # Simulación de procesamiento
@@ -90,6 +91,15 @@ def analyze_datasets(selected_datasets, csv_schema, progress=gr.Progress()):
90
  progress(1, desc="Análisis completado. Datos organizados según el esquema CSV.")
91
  return combined_dataset.to_csv(index=False)
92
 
 
 
 
 
 
 
 
 
 
93
  # Interfaz de Usuario con Gradio
94
  with gr.Blocks(title="Diseñador de Redes Neuronales Multimodales") as demo:
95
  gr.Markdown("# Diseñador de Redes Neuronales Multimodales")
@@ -138,6 +148,11 @@ with gr.Blocks(title="Diseñador de Redes Neuronales Multimodales") as demo:
138
  analyze_datasets_btn = gr.Button("Analizar Datasets Seleccionados")
139
  processed_output = gr.File(label="Dataset Procesado")
140
 
 
 
 
 
 
141
  # Conexiones de botones a funciones
142
  generate_csv_btn.click(
143
  generate_csv,
@@ -146,6 +161,7 @@ with gr.Blocks(title="Diseñador de Redes Neuronales Multimodales") as demo:
146
  )
147
  search_datasets_btn.click(search_datasets, inputs=[modalities], outputs=datasets_output)
148
  analyze_datasets_btn.click(analyze_datasets, inputs=[datasets_output, csv_output], outputs=processed_output)
 
149
 
150
  # Lanzar la aplicación
151
  demo.launch()
 
1
  import gradio as gr
2
+ from datasets import load_dataset, list_datasets
3
  import pandas as pd
4
  import time
5
 
 
48
  progress(1, desc="Esquema CSV generado con éxito.")
49
  return ", ".join(columns)
50
 
51
+ # Función para buscar datasets públicos relevantes en Hugging Face
52
  def search_datasets(modalities, progress=gr.Progress()):
53
+ all_datasets = list_datasets()
54
  dataset_map = {
55
+ "Visión": [ds for ds in all_datasets if "vision" in ds or "image" in ds],
56
+ "NLP": [ds for ds in all_datasets if "text" in ds or "nlp" in ds],
57
+ "Audio": [ds for ds in all_datasets if "audio" in ds or "midi" in ds]
58
  }
59
  results = []
60
  total_steps = len(modalities)
 
77
  if url.strip():
78
  progress(i / total_steps, desc=f"Analizando dataset: {url}")
79
  try:
80
+ # Cargar el dataset desde Hugging Face
81
  dataset = load_dataset(url.strip(), trust_remote_code=True)
82
  df = pd.DataFrame(dataset["train"])
83
+ # Filtrar y reordenar columnas según el esquema CSV
84
  filtered_df = df[[col for col in schema_columns if col in df.columns]]
85
  datasets.append(filtered_df)
86
  time.sleep(2) # Simulación de procesamiento
 
91
  progress(1, desc="Análisis completado. Datos organizados según el esquema CSV.")
92
  return combined_dataset.to_csv(index=False)
93
 
94
+ # Función para ordenar o combinar columnas del esquema CSV generado
95
+ def reorder_columns(csv_schema, column_order, progress=gr.Progress()):
96
+ schema_columns = [col.strip() for col in csv_schema.split(",")]
97
+ reordered_columns = [col for col in column_order if col in schema_columns]
98
+ missing_columns = [col for col in schema_columns if col not in reordered_columns]
99
+ final_columns = reordered_columns + missing_columns
100
+ progress(1, desc="Columnas reorganizadas con éxito.")
101
+ return ", ".join(final_columns)
102
+
103
  # Interfaz de Usuario con Gradio
104
  with gr.Blocks(title="Diseñador de Redes Neuronales Multimodales") as demo:
105
  gr.Markdown("# Diseñador de Redes Neuronales Multimodales")
 
148
  analyze_datasets_btn = gr.Button("Analizar Datasets Seleccionados")
149
  processed_output = gr.File(label="Dataset Procesado")
150
 
151
+ with gr.Row():
152
+ reorder_columns_btn = gr.Button("Reorganizar Columnas")
153
+ column_order_input = gr.Textbox(label="Orden de Columnas (separadas por comas)")
154
+ reordered_csv_output = gr.Textbox(label="Esquema CSV Reorganizado")
155
+
156
  # Conexiones de botones a funciones
157
  generate_csv_btn.click(
158
  generate_csv,
 
161
  )
162
  search_datasets_btn.click(search_datasets, inputs=[modalities], outputs=datasets_output)
163
  analyze_datasets_btn.click(analyze_datasets, inputs=[datasets_output, csv_output], outputs=processed_output)
164
+ reorder_columns_btn.click(reorder_columns, inputs=[csv_output, column_order_input], outputs=reordered_csv_output)
165
 
166
  # Lanzar la aplicación
167
  demo.launch()