Update app.py
Browse files
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,
|
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
|
15 |
tokenizer = AutoTokenizer.from_pretrained("microsoft/codebert-base")
|
16 |
-
model =
|
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 |
-
#
|
72 |
-
response =
|
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):
|