Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -3,8 +3,9 @@ import pandas as pd
|
|
3 |
import torch
|
4 |
from transformers import AutoTokenizer, AutoModelForCausalLM
|
5 |
|
6 |
-
tokenizer = AutoTokenizer.from_pretrained("
|
7 |
-
model = AutoModelForCausalLM.from_pretrained("
|
|
|
8 |
|
9 |
# Set the padding token to the end-of-sequence token
|
10 |
if tokenizer.pad_token is None:
|
@@ -15,23 +16,22 @@ df = pd.read_csv('anomalies.csv')
|
|
15 |
# Função para gerar resposta
|
16 |
def response(question):
|
17 |
prompt = f"Considerando os dados: {df.to_string(index=False)}, onde 'ds' está em formato DateTime, 'real' é o valor da despesa e 'group' é o grupo da despesa. Pergunta: {question}"
|
18 |
-
inputs = tokenizer(prompt, return_tensors='pt', padding='max_length', truncation=True, max_length=
|
19 |
attention_mask = inputs['attention_mask']
|
20 |
input_ids = inputs['input_ids']
|
21 |
|
22 |
generated_ids = model.generate(
|
23 |
input_ids,
|
24 |
attention_mask=attention_mask,
|
25 |
-
max_length=len(input_ids[0]) +
|
26 |
-
temperature=0.
|
27 |
-
top_p=0.9,
|
28 |
-
no_repeat_ngram_size=2
|
|
|
29 |
)
|
30 |
|
31 |
generated_text = tokenizer.decode(generated_ids[0], skip_special_tokens=True)
|
32 |
-
|
33 |
-
response_part = generated_text.split("Resposta:")[1] if "Resposta:" in generated_text else "Resposta não encontrada."
|
34 |
-
final_response = response_part.split(".")[0] + "." # Assumindo que a resposta termina na primeira sentença.
|
35 |
|
36 |
return final_response
|
37 |
|
|
|
3 |
import torch
|
4 |
from transformers import AutoTokenizer, AutoModelForCausalLM
|
5 |
|
6 |
+
tokenizer = AutoTokenizer.from_pretrained("distilgpt2")
|
7 |
+
model = AutoModelForCausalLM.from_pretrained("distilgpt2", torch_dtype=torch.float16)
|
8 |
+
model = model.to('cuda') if torch.cuda.is_available() else model.to('cpu')
|
9 |
|
10 |
# Set the padding token to the end-of-sequence token
|
11 |
if tokenizer.pad_token is None:
|
|
|
16 |
# Função para gerar resposta
|
17 |
def response(question):
|
18 |
prompt = f"Considerando os dados: {df.to_string(index=False)}, onde 'ds' está em formato DateTime, 'real' é o valor da despesa e 'group' é o grupo da despesa. Pergunta: {question}"
|
19 |
+
inputs = tokenizer(prompt, return_tensors='pt', padding='max_length', truncation=True, max_length=256)
|
20 |
attention_mask = inputs['attention_mask']
|
21 |
input_ids = inputs['input_ids']
|
22 |
|
23 |
generated_ids = model.generate(
|
24 |
input_ids,
|
25 |
attention_mask=attention_mask,
|
26 |
+
max_length=len(input_ids[0]) + 50, # Reduce max_length to speed up response
|
27 |
+
temperature=0.7,
|
28 |
+
top_p=0.9,
|
29 |
+
no_repeat_ngram_size=2,
|
30 |
+
num_beams=3, # Adding beams for more reliable generation
|
31 |
)
|
32 |
|
33 |
generated_text = tokenizer.decode(generated_ids[0], skip_special_tokens=True)
|
34 |
+
final_response = generated_text.split("Resposta:")[-1].split(".")[0] + "."
|
|
|
|
|
35 |
|
36 |
return final_response
|
37 |
|