Tedi-group commited on
Commit
fee15be
·
verified ·
1 Parent(s): 2ab1aff

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +54 -20
app.py CHANGED
@@ -1,23 +1,57 @@
1
  import gradio as gr
2
- from transformers import pipeline
3
-
4
- # Carrega um modelo pré-treinado de análise de sentimentos
5
- classificador = pipeline("sentiment-analysis")
6
-
7
- def analisar_texto(texto):
8
- resultado = classificador(texto)
9
- # Formata a resposta para exibição
10
- label = resultado[0]['label']
11
- score = round(resultado[0]['score'] * 100, 2)
12
- return f"Resultado: {label} (Confiança: {score}%)"
13
-
14
- # Monta a interface gráfica do seu aplicativo
15
- interface = gr.Interface(
16
- fn=analisar_texto,
17
- inputs=gr.Textbox(lines=2, placeholder="Digite uma frase aqui..."),
18
- outputs="text",
19
- title="Minha Primeira IA no Hugging Face"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  )
21
 
22
- # Inicializa o app
23
- interface.launch()
 
1
  import gradio as gr
2
+ from transformers import AutoModelForCausalLM, AutoTokenizer
3
+ import torch
4
+
5
+ # 1. Defina o modelo (use "Qwen/Qwen2.5-1.5B-Instruct" para computadores mais modestos)
6
+ model_name = "Qwen/Qwen2.5-7B-Instruct"
7
+
8
+ # 2. Carrega o tokenizador e o modelo na memória do computador
9
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
10
+ model = AutoModelForCausalLM.from_pretrained(
11
+ model_name,
12
+ torch_dtype="auto",
13
+ device_map="auto" # Distribui o modelo automaticamente entre GPU e CPU
14
+ )
15
+
16
+ def responder_chat(mensagem, historico):
17
+ # Formata o histórico de mensagens no padrão exigido pelo Qwen
18
+ mensagens = [{"role": "system", "content": "Você é um assistente de IA prestativo e amigável em português."}]
19
+
20
+ # Adiciona as conversas passadas na memória do chat
21
+ for usuario, bot in historico:
22
+ mensagens.append({"role": "user", "content": usuario})
23
+ mensagens.append({"role": "assistant", "content": bot})
24
+
25
+ mensagens.append({"role": "user", "content": mensagem})
26
+
27
+ # Aplica o modelo de template de chat do Hugging Face
28
+ text = tokenizer.apply_chat_template(
29
+ mensagens,
30
+ tokenize=False,
31
+ add_generation_prompt=True
32
+ )
33
+
34
+ model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
35
+
36
+ # Gera a resposta do modelo
37
+ generated_ids = model.generate(
38
+ **model_inputs,
39
+ max_new_tokens=512, # Limite de tamanho da resposta do bot
40
+ temperature=0.7 # Controla a criatividade da resposta
41
+ )
42
+
43
+ generated_ids = [
44
+ output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
45
+ ]
46
+
47
+ resposta = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
48
+ return resposta
49
+
50
+ # 3. Cria uma interface específica de Chatbot no Gradio (gr.ChatInterface)
51
+ demo = gr.ChatInterface(
52
+ fn=responder_chat,
53
+ title="Minha IA Conversacional com Qwen"
54
  )
55
 
56
+ if __name__ == "__main__":
57
+ demo.launch()