souzat19 commited on
Commit
0ef5b19
·
verified ·
1 Parent(s): 58e79a9

Create handler.py

Browse files
Files changed (1) hide show
  1. handler.py +43 -0
handler.py ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ from transformers import AutoModelForCausalLM, AutoTokenizer
3
+
4
+ # Inicialização global do modelo e tokenizador
5
+ MODEL_NAME = "unsloth/mistral-7b-v0.3-bnb-4bit"
6
+ model = None
7
+ tokenizer = None
8
+
9
+ def initialize():
10
+ """
11
+ Função para carregar o modelo e o tokenizador durante a inicialização do endpoint.
12
+ """
13
+ global model, tokenizer
14
+ print("Carregando modelo e tokenizador...")
15
+ tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
16
+ model = AutoModelForCausalLM.from_pretrained(MODEL_NAME)
17
+ print("Modelo e tokenizador carregados com sucesso.")
18
+
19
+ def handle(data, context):
20
+ """
21
+ Função principal para processar requisições de entrada e gerar respostas.
22
+ """
23
+ global model, tokenizer
24
+ if model is None or tokenizer is None:
25
+ initialize()
26
+
27
+ # Parse da entrada
28
+ try:
29
+ inputs = json.loads(data)
30
+ text = inputs.get("text", "")
31
+ max_length = inputs.get("max_length", 128)
32
+ except Exception as e:
33
+ return {"error": f"Erro ao processar entrada: {str(e)}"}
34
+
35
+ # Geração de texto com o modelo
36
+ try:
37
+ tokens = tokenizer.encode(text, return_tensors="pt")
38
+ output_tokens = model.generate(tokens, max_length=max_length, eos_token_id=2)
39
+ generated_text = tokenizer.decode(output_tokens[0], skip_special_tokens=True)
40
+ except Exception as e:
41
+ return {"error": f"Erro ao gerar resposta: {str(e)}"}
42
+
43
+ return {"generated_text": generated_text}