Spaces:
Running
Running
File size: 1,635 Bytes
d02548d 4892b6f d02548d 4892b6f 3fdac99 4892b6f d02548d 4892b6f d02548d 3fdac99 d02548d 4892b6f d02548d 4892b6f 3fdac99 |
1 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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
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()
|