import gradio as gr import json import shutil from main import main # Ejecutará el flujo completo que incluye NLP, parser, semántico, código intermedio def analizar_codigo(archivo): try: # Guardar archivo subido como entrada.txt (como espera main.py) ruta = "entrada.txt" shutil.copy(archivo.name, ruta) # Ejecutar análisis completo main() # Leer salida del análisis with open("analisis.json", "r", encoding="utf-8") as f: resultado = json.load(f) # Extraer mensajes combinados errores = [] for err in resultado.get("errores_parser", []): errores.append(f"[Parser] {err}") for err in resultado.get("errores_semanticos", []): errores.append(f"[Semántico] {err['mensaje']} → {err['sugerencia']}") for c in resultado.get("comentarios", []): errores.append(f"[Comentario] {c['comentario']} → {c['sugerencia']}") salida_texto = "\n".join(errores) if errores else "Análisis completado sin errores." return salida_texto, json.dumps(resultado, indent=2) except Exception as e: return f"Error crítico: {e}", "{}" gr.Interface( fn=analizar_codigo, inputs=gr.File(label="Sube tu archivo de código (.txt)"), outputs=[ gr.Textbox(label="Errores, sugerencias y anotaciones"), gr.Code(label="Contenido de analisis.json", language="json") ], title="Analizador Semántico con NLP - Lenguaje de Robots", description="Detecta errores, genera sugerencias y transforma comentarios usando Hugging Face NLP." ).launch()