|
import gradio as gr |
|
import ast |
|
from transformers import pipeline |
|
|
|
|
|
analyzer = pipeline("text2text-generation", model="Salesforce/codet5-base") |
|
|
|
|
|
def analizar_codigo(codigo): |
|
errores = "" |
|
explicacion = "" |
|
|
|
|
|
try: |
|
ast.parse(codigo) |
|
errores = "✅ Sintaxis válida" |
|
except SyntaxError as e: |
|
errores = f"❌ Error de sintaxis: {str(e)}" |
|
return errores, "No se puede hacer análisis semántico si hay errores de sintaxis." |
|
|
|
|
|
prompt = f"Analiza el siguiente código en Python y explica si hay errores lógicos o semánticos:\n\n{codigo}" |
|
resultado = analyzer(prompt, max_length=256, do_sample=False)[0]['generated_text'] |
|
|
|
return errores, resultado |
|
|
|
|
|
demo = gr.Interface( |
|
fn=analizar_codigo, |
|
inputs=gr.Textbox(lines=15, label="Pega tu función aquí"), |
|
outputs=[ |
|
gr.Textbox(label="Estado de la sintaxis"), |
|
gr.Textbox(label="Análisis semántico (lógico)") |
|
], |
|
title="🔍 Analizador de errores en funciones de programación", |
|
description="Este Space detecta errores de sintaxis y semánticos (lógicos) en funciones en Python." |
|
) |
|
|
|
demo.launch() |
|
|