import gradio as gr modalities_tasks = { "NLP": ["Clasificación de Texto", "Generación de Texto", "Resumen", "Traducción", "QA"], "Audio": ["Reconocimiento de Voz", "Clasificación de Audio", "Generación de Audio", "Separación de Fuentes"], "Vision": ["Clasificación de Imágenes", "Detección de Objetos", "Segmentación", "Generación de Imágenes"], "RAG": ["Búsqueda Semántica", "Generación Aumentada", "QA Contextual"], "Code": ["Generación de Código", "Depuración", "Traducción entre Lenguajes"], "Time Series": ["Predicción", "Detección de Anomalías", "Clasificación Temporal"], "Graph": ["Predicción de Nodos", "Clasificación de Grafos", "Generación de Grafos"], "Tabular": ["Regresión", "Clasificación", "Imputación de Datos"] } def generate_csv_header(*args): # Lógica para generar encabezado multimodal return "Encabezado generado: ID,Modalidad-Tarea1,Modalidad-Tarea2,..." def search_datasets(): # Lógica para buscar datasets en HuggingFace return [["Dataset1", "Descripción1"], ["Dataset2", "Descripción2"]] def generate_dataset(): # Lógica para generar dataset multimodal return "sample.csv" with gr.Blocks() as demo: gr.Markdown("# 🧠 Diseñador de Modelos Multimodales") # Panel 1: Selección de Modalidades with gr.Row(): gr.Markdown("## 1. Selección de Modalidades") modality_components = [] for modality in modalities_tasks: with gr.Column(): modality_components.append( gr.Checkbox(label=modality, interactive=True) ) # Panel 2: Selección de Tareas with gr.Row(): gr.Markdown("## 2. Configuración de Tareas") task_components = [] for modality in modalities_tasks: with gr.Column(visible=False) as col: task_dropdown = gr.Dropdown( choices=modalities_tasks[modality], label=f"Tareas para {modality}", interactive=True ) task_components.append((col, task_dropdown)) # Actualizar visibilidad de tareas for i, modality_check in enumerate(modality_components): modality_check.change( lambda val, idx=i: gr.update(visible=val), inputs=modality_check, outputs=task_components[i][0] ) # Panel 3: Generar Encabezado CSV with gr.Row(): gr.Markdown("## 3. Configuración del Dataset") with gr.Column(): header_btn = gr.Button("Generar Encabezado del CSV") header_output = gr.Textbox(label="Estructura del Dataset") # Panel 4: Búsqueda de Datasets with gr.Row(): gr.Markdown("## 4. Datasets Disponibles") with gr.Column(): search_btn = gr.Button("Buscar en HuggingFace") datasets_table = gr.DataFrame(headers=["Dataset", "Descripción"]) # Panel 5: Generación del Dataset with gr.Row(): gr.Markdown("## 5. Generación Final") with gr.Column(): generate_btn = gr.Button("Generar Dataset Multimodal") dataset_output = gr.File(label="Dataset Generado", file_types=[".csv"]) download_btn = gr.DownloadButton("⬇️ Descargar CSV", visible=False) # Conectar funcionalidades header_btn.click( generate_csv_header, inputs=[*modality_components, *[t[1] for t in task_components]], outputs=header_output ) search_btn.click( search_datasets, outputs=datasets_table ) generate_btn.click( generate_dataset, outputs=[dataset_output, download_btn] ) demo.launch()