Update app.py
Browse files
app.py
CHANGED
@@ -1,8 +1,11 @@
|
|
1 |
import gradio as gr
|
2 |
import ast
|
3 |
from transformers import pipeline
|
|
|
|
|
|
|
4 |
|
5 |
-
# Cargar modelo de Hugging Face
|
6 |
analyzer = pipeline("text2text-generation", model="Salesforce/codet5-base")
|
7 |
|
8 |
# Función que analiza el código
|
@@ -10,21 +13,33 @@ def analizar_codigo(codigo):
|
|
10 |
errores = ""
|
11 |
explicacion = ""
|
12 |
|
13 |
-
# Verificación de sintaxis
|
|
|
|
|
14 |
try:
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
|
21 |
# Análisis semántico con modelo
|
22 |
prompt = f"Analiza el siguiente código en Python y explica si hay errores lógicos o semánticos:\n\n{codigo}"
|
23 |
-
|
24 |
-
|
25 |
-
|
|
|
|
|
26 |
|
27 |
-
# ⬇️ Interfaz Gradio
|
28 |
demo = gr.Interface(
|
29 |
fn=analizar_codigo,
|
30 |
inputs=gr.Textbox(lines=15, label="Pega tu función aquí"),
|
|
|
1 |
import gradio as gr
|
2 |
import ast
|
3 |
from transformers import pipeline
|
4 |
+
import pyflakes.api
|
5 |
+
from pyflakes.reporter import Reporter
|
6 |
+
import io
|
7 |
|
8 |
+
# Cargar modelo de Hugging Face para análisis semántico
|
9 |
analyzer = pipeline("text2text-generation", model="Salesforce/codet5-base")
|
10 |
|
11 |
# Función que analiza el código
|
|
|
13 |
errores = ""
|
14 |
explicacion = ""
|
15 |
|
16 |
+
# Verificación de sintaxis con pyflakes
|
17 |
+
reporter_output = io.StringIO()
|
18 |
+
reporter = Reporter(reporter_output, reporter_output)
|
19 |
try:
|
20 |
+
# Analizar código con pyflakes
|
21 |
+
pyflakes.api.check(codigo, filename="<input>", reporter=reporter)
|
22 |
+
errores_sintaxis = reporter_output.getvalue()
|
23 |
+
|
24 |
+
if errores_sintaxis:
|
25 |
+
errores = f"❌ Errores de sintaxis detectados:\n{errores_sintaxis}"
|
26 |
+
explicacion = "Revisa los errores de sintaxis indicados y corrígelos antes de continuar."
|
27 |
+
return errores, explicacion
|
28 |
+
else:
|
29 |
+
errores = "✅ Sintaxis válida"
|
30 |
+
except Exception as e:
|
31 |
+
errores = f"❌ Error al analizar la sintaxis: {str(e)}"
|
32 |
+
explicacion = "Hubo un problema al analizar la sintaxis del código. Asegúrate de que el código sea correcto."
|
33 |
|
34 |
# Análisis semántico con modelo
|
35 |
prompt = f"Analiza el siguiente código en Python y explica si hay errores lógicos o semánticos:\n\n{codigo}"
|
36 |
+
try:
|
37 |
+
resultado = analyzer(prompt, max_length=256, do_sample=False)[0]['generated_text']
|
38 |
+
return errores, resultado
|
39 |
+
except Exception as e:
|
40 |
+
return errores, f"❌ Error al analizar semánticamente el código: {str(e)}"
|
41 |
|
42 |
+
# ⬇️ Interfaz Gradio
|
43 |
demo = gr.Interface(
|
44 |
fn=analizar_codigo,
|
45 |
inputs=gr.Textbox(lines=15, label="Pega tu función aquí"),
|