Spaces:
Running
Running
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() | |