HBAB commited on
Commit
136da9b
·
verified ·
1 Parent(s): 8861932

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +29 -37
app.py CHANGED
@@ -1,54 +1,46 @@
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
12
  def analizar_codigo(codigo):
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í"),
46
  outputs=[
47
  gr.Textbox(label="Estado de la sintaxis"),
48
- gr.Textbox(label="Análisis semántico (lógico)")
49
  ],
50
- title="🔍 Analizador de errores en funciones de programación",
51
- description="Este Space detecta errores de sintaxis y semánticos (lógicos) en funciones en Python."
 
 
 
52
  )
53
 
54
  demo.launch()
 
1
  import gradio as gr
2
+ from transformers import AutoTokenizer, AutoModel
3
+ import torch
 
 
 
4
 
5
+ # Cargar modelo y tokenizer
6
+ tokenizer = AutoTokenizer.from_pretrained("microsoft/codebert-base")
7
+ model = AutoModel.from_pretrained("microsoft/codebert-base")
8
 
9
+ # Función para "analizar" código con CodeBERT
10
  def analizar_codigo(codigo):
11
+ errores = "⚠️ No se realizó análisis de sintaxis (solo compatible con Python)."
12
+
 
 
 
 
13
  try:
14
+ # Obtener embeddings del código
15
+ inputs = tokenizer(codigo, return_tensors="pt", truncation=True, max_length=512)
16
+ with torch.no_grad():
17
+ outputs = model(**inputs)
18
 
19
+ # Simulación de análisis lógico: mostrar dimensiones del embedding
20
+ emb_shape = outputs.last_hidden_state.shape
21
+ explicacion = (
22
+ f"✅ El código fue procesado correctamente con CodeBERT.\n\n"
23
+ f"Embedding shape: {emb_shape}\n"
24
+ f"(usa estos embeddings para tareas de clasificación, detección de errores, etc.)"
25
+ )
26
  except Exception as e:
27
+ explicacion = f"❌ Error al analizar el código: {str(e)}"
 
28
 
29
+ return errores, explicacion
 
 
 
 
 
 
30
 
31
+ # Interfaz con Gradio
32
  demo = gr.Interface(
33
  fn=analizar_codigo,
34
+ inputs=gr.Textbox(lines=15, label="Pega tu código JavaScript aquí"),
35
  outputs=[
36
  gr.Textbox(label="Estado de la sintaxis"),
37
+ gr.Textbox(label="Análisis semántico (embeddings de CodeBERT)")
38
  ],
39
+ title="🔍 Analizador básico de código JavaScript con CodeBERT",
40
+ description=(
41
+ "Este Space procesa tu código JavaScript con CodeBERT para obtener representaciones internas (embeddings). "
42
+ "No se realiza análisis de sintaxis ni generación textual automática."
43
+ )
44
  )
45
 
46
  demo.launch()