HBAB commited on
Commit
8861932
·
verified ·
1 Parent(s): 40a21a9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -11
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
- ast.parse(codigo)
16
- errores = " Sintaxis válida"
17
- except SyntaxError as e:
18
- errores = f"❌ Error de sintaxis: {str(e)}"
19
- return errores, "No se puede hacer análisis semántico si hay errores de sintaxis."
 
 
 
 
 
 
 
 
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
- resultado = analyzer(prompt, max_length=256, do_sample=False)[0]['generated_text']
24
-
25
- return errores, resultado
 
 
26
 
27
- # ⬇️ Interfaz Gradio (ESTO VA AL FINAL)
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í"),