nsv2042 commited on
Commit
a312056
1 Parent(s): 8e51313

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -9
app.py CHANGED
@@ -2,7 +2,7 @@ import gradio as gr
2
  import shutil
3
  import os
4
  from zipfile import ZipFile
5
- from transformers import AutoTokenizer, AutoModelForSequenceClassification
6
  import torch
7
 
8
  # Diretório temporário para os uploads
@@ -11,9 +11,9 @@ UPLOAD_DIR = "uploaded_files"
11
  # Variável global para armazenar o código dos arquivos .java
12
  java_files_content = {}
13
 
14
- # Carregar o modelo e o tokenizador do CodeBERT localmente
15
  tokenizer = AutoTokenizer.from_pretrained("microsoft/codebert-base")
16
- model = AutoModelForSequenceClassification.from_pretrained("microsoft/codebert-base")
17
 
18
  # Função para processar a pasta enviada
19
  def process_uploaded_folder(zip_path):
@@ -54,6 +54,7 @@ def search_in_code(search_term):
54
  results = []
55
  for filename, content in java_files_content.items():
56
  if search_term.lower() in content.lower():
 
57
  results.append(f"Arquivo: {filename}\n{content[:300]}...") # Exibe os primeiros 300 caracteres do código
58
 
59
  if not results:
@@ -66,12 +67,11 @@ def generate_codebert_response(prompt):
66
  # Tokenize the input
67
  inputs = tokenizer(prompt, return_tensors="pt", truncation=True, padding=True, max_length=512)
68
  with torch.no_grad():
69
- outputs = model(**inputs)
70
-
71
- # Decode the output (for simplicity, assuming a classification task, but could be adjusted)
72
- response = outputs.logits.argmax(dim=-1).item() # Simplified for classification, adjust as needed
73
-
74
- return f"Resposta do modelo: {response}"
75
 
76
  # Interface de upload
77
  def upload_and_analyze(zip_file_path):
 
2
  import shutil
3
  import os
4
  from zipfile import ZipFile
5
+ from transformers import AutoTokenizer, AutoModelForCausalLM
6
  import torch
7
 
8
  # Diretório temporário para os uploads
 
11
  # Variável global para armazenar o código dos arquivos .java
12
  java_files_content = {}
13
 
14
+ # Carregar o modelo e o tokenizador do CodeBERT
15
  tokenizer = AutoTokenizer.from_pretrained("microsoft/codebert-base")
16
+ model = AutoModelForCausalLM.from_pretrained("microsoft/codebert-base")
17
 
18
  # Função para processar a pasta enviada
19
  def process_uploaded_folder(zip_path):
 
54
  results = []
55
  for filename, content in java_files_content.items():
56
  if search_term.lower() in content.lower():
57
+ # Adiciona o nome do arquivo e um trecho do código onde foi encontrado
58
  results.append(f"Arquivo: {filename}\n{content[:300]}...") # Exibe os primeiros 300 caracteres do código
59
 
60
  if not results:
 
67
  # Tokenize the input
68
  inputs = tokenizer(prompt, return_tensors="pt", truncation=True, padding=True, max_length=512)
69
  with torch.no_grad():
70
+ outputs = model.generate(**inputs, max_length=512, num_return_sequences=1)
71
+
72
+ # Decodificar a resposta gerada
73
+ response = tokenizer.decode(outputs[0], skip_special_tokens=True)
74
+ return response
 
75
 
76
  # Interface de upload
77
  def upload_and_analyze(zip_file_path):