HBAB commited on
Commit
f0c291f
·
verified ·
1 Parent(s): 553c93b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -24
app.py CHANGED
@@ -1,43 +1,37 @@
1
  import gradio as gr
2
- from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
3
  import torch
4
 
5
- # Cargar modelo y tokenizer de CodeT5
6
- tokenizer = AutoTokenizer.from_pretrained("Salesforce/codet5-base")
7
- model = AutoModelForSeq2SeqLM.from_pretrained("Salesforce/codet5-base")
8
 
9
- # Función para generar explicación del código con CodeT5
10
  def analizar_codigo(codigo):
11
  errores = "⚠️ No se realizó análisis de sintaxis (solo compatible con Python)."
12
  try:
13
- # Preparamos el prompt para explicación (puedes ajustar el prompt según la tarea)
14
- prompt = f"Explain this JavaScript code:\n{codigo}\n"
15
- inputs = tokenizer(prompt, return_tensors="pt", truncation=True, max_length=512)
16
  with torch.no_grad():
17
- summary_ids = model.generate(
18
- inputs.input_ids,
19
- max_length=128,
20
- num_beams=4,
21
- early_stopping=True
22
- )
23
- explicacion = tokenizer.decode(summary_ids[0], skip_special_tokens=True)
24
  except Exception as e:
25
- explicacion = f"❌ Error al analizar el código: {str(e)}"
26
  return errores, explicacion
27
 
28
- # Interfaz con Gradio
29
  demo = gr.Interface(
30
  fn=analizar_codigo,
31
- inputs=gr.Textbox(lines=15, label="Pega tu código JavaScript aquí"),
32
  outputs=[
33
  gr.Textbox(label="Estado de la sintaxis"),
34
- gr.Textbox(label="Explicación generada por CodeT5")
35
  ],
36
- title="🔍 Explicador de código JavaScript con CodeT5",
37
- description=(
38
- "Este Space utiliza CodeT5 para generar explicaciones automáticas de tu código JavaScript. "
39
- "No se realiza análisis de sintaxis ni generación textual automática."
40
- )
41
  )
42
 
43
  demo.launch()
 
1
  import gradio as gr
2
+ from transformers import AutoTokenizer, AutoModel
3
  import torch
4
 
5
+ # Cargar CodeBERT
6
+ tokenizer = AutoTokenizer.from_pretrained("microsoft/codebert-base-mlm")
7
+ model = AutoModel.from_pretrained("microsoft/codebert-base-mlm")
8
 
9
+ # Función que usa CodeBERT para codificar y analizar
10
  def analizar_codigo(codigo):
11
  errores = "⚠️ No se realizó análisis de sintaxis (solo compatible con Python)."
12
  try:
13
+ inputs = tokenizer(codigo, return_tensors="pt", truncation=True, max_length=512)
 
 
14
  with torch.no_grad():
15
+ outputs = model(**inputs)
16
+
17
+ # Tomamos el embedding del primer token [CLS] como resumen
18
+ cls_embedding = outputs.last_hidden_state[0][0]
19
+ vector = cls_embedding.tolist()[:5] # solo primeros 5 valores para mostrar
20
+ explicacion = f"Vector de representación del código (parcial): {vector}"
 
21
  except Exception as e:
22
+ explicacion = f"❌ Error al procesar el código: {str(e)}"
23
  return errores, explicacion
24
 
25
+ # Interfaz Gradio
26
  demo = gr.Interface(
27
  fn=analizar_codigo,
28
+ inputs=gr.Textbox(lines=15, label="Pega tu código aquí"),
29
  outputs=[
30
  gr.Textbox(label="Estado de la sintaxis"),
31
+ gr.Textbox(label="Representación del código")
32
  ],
33
+ title="🔍 Representación de Código con CodeBERT",
34
+ description="Este Space usa CodeBERT (MLM) para generar una representación vectorial del código fuente."
 
 
 
35
  )
36
 
37
  demo.launch()