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

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -21
app.py CHANGED
@@ -1,31 +1,28 @@
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
@@ -34,11 +31,11 @@ demo = gr.Interface(
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
  )
 
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
 
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
  )