calvesca commited on
Commit
c498dce
·
verified ·
1 Parent(s): b0a23b3

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. app.py +69 -4
app.py CHANGED
@@ -1,8 +1,73 @@
1
  import gradio as gr
 
 
2
 
3
- def greet(name):
4
- return "Hello " + name + "!"
 
5
 
6
- demo = gr.Interface(fn=greet, inputs="textbox", outputs="textbox")
 
 
7
 
8
- demo.launch(share=True) # Share your demo with just 1 extra parameter 🚀
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import gradio as gr
2
+ from transformers import GPT2Tokenizer, GPT2LMHeadModel
3
+ import torch
4
 
5
+ # Carregar o tokenizer e o modelo ajustado
6
+ tokenizer = GPT2Tokenizer.from_pretrained('modelo_treinado')
7
+ model = GPT2LMHeadModel.from_pretrained('modelo_treinado')
8
 
9
+ # Configurar o dispositivo para GPU se disponível
10
+ device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
11
+ model.to(device)
12
 
13
+ # Função para gerar notas de release
14
+ def gerar_nota_release(feature_description_prompt, max_new_tokens=50, num_return_sequences=1):
15
+ # Definir o template com um placeholder para a descrição da funcionalidade
16
+ template = """É hora de atualizar o seu íon Itaú.
17
+ {}
18
+ Atualize o app já e aproveite!"""
19
+
20
+ # Formatar o template com o placeholder para o prompt
21
+ prompt = template.format(feature_description_prompt)
22
+
23
+ # Tokenizar o prompt de entrada
24
+ inputs = tokenizer.encode(prompt, return_tensors='pt').to(device)
25
+
26
+ # Obter o comprimento do prompt
27
+ prompt_length = inputs.shape[1]
28
+
29
+ # Gerar texto
30
+ outputs = model.generate(
31
+ inputs,
32
+ max_new_tokens=max_new_tokens,
33
+ num_return_sequences=num_return_sequences,
34
+ no_repeat_ngram_size=2,
35
+ do_sample=True,
36
+ top_k=50,
37
+ top_p=0.95,
38
+ temperature=0.7,
39
+ eos_token_id=tokenizer.eos_token_id,
40
+ pad_token_id=tokenizer.eos_token_id,
41
+ )
42
+
43
+ # Decodificar e retornar o texto gerado
44
+ notas = []
45
+ for i in range(num_return_sequences):
46
+ # Decodificar a sequência gerada
47
+ output = outputs[i]
48
+ texto_completo = tokenizer.decode(output, skip_special_tokens=True)
49
+
50
+ # Extrair apenas a parte gerada após o prompt
51
+ texto_gerado = texto_completo[len(prompt):].strip()
52
+
53
+ # Montar a nota de release completa
54
+ nota_release = template.format(feature_description_prompt + ' ' + texto_gerado)
55
+ notas.append(nota_release)
56
+ return notas[0]
57
+
58
+ # Definir a função para o chat
59
+ def chat_model(feature_description):
60
+ return gerar_nota_release(feature_description)
61
+
62
+ # Criar a interface do Gradio
63
+ chat_interface = gr.Interface(
64
+ fn=chat_model,
65
+ inputs=gr.Textbox(lines=2, placeholder="Digite a descrição da funcionalidade..."),
66
+ outputs=gr.Textbox(),
67
+ title="Chat para Geração de Notas de Release",
68
+ description="Digite uma descrição de funcionalidade e o modelo gerará uma nota de release de acordo com o modelo treinado.",
69
+ )
70
+
71
+ # Executar a interface
72
+ if __name__ == "__main__":
73
+ chat_interface.launch(share=True)