kawre commited on
Commit
a68cb46
·
verified ·
1 Parent(s): 881ad0f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +37 -27
app.py CHANGED
@@ -12,36 +12,39 @@ client_aux2 = InferenceClient(token=HF_TOKEN, model="facebook/bart-large-cnn")
12
 
13
  # Função principal de resposta
14
  def respond(message, history, system_message, max_tokens, temperature, top_p):
15
- # Constrói o histórico completo com system message
16
- messages = [{"role": "system", "content": system_message}]
17
- messages.extend(history)
18
- messages.append({"role": "user", "content": message})
 
19
 
20
- full_prompt = "\n".join([m["content"] for m in messages])
21
 
22
- # Llama 3.1
23
- result_main = client_main.text_generation(
24
- inputs=full_prompt,
25
- max_tokens=max_tokens,
26
- temperature=temperature,
27
- top_p=top_p
28
- )
29
- response_main = result_main[0]["generated_text"]
30
 
31
- # FLAN-T5
32
- result_aux1 = client_aux1.text_generation(
33
- inputs=f"Reformule este texto de forma clara e objetiva:\n{response_main}",
34
- max_new_tokens=max_tokens
35
- )
36
- response_aux1 = result_aux1[0]["generated_text"]
37
 
38
- # BART
39
- result_aux2 = client_aux2.text_generation(
40
- inputs=f"Resuma este texto em 3 frases:\n{response_aux1}",
41
- max_new_tokens=150
42
- )
43
- response_aux2 = result_aux2[0]["generated_text"]
44
 
 
 
45
 
46
  # Atualiza histórico do chat
47
  history.append({"role": "user", "content": message})
@@ -52,7 +55,10 @@ response_aux2 = result_aux2[0]["generated_text"]
52
  # Interface Gradio
53
  with gr.Blocks() as demo:
54
  gr.Markdown("## 🤖 Chatbot em Cascata (Llama 3.1 + FLAN-T5 + BART)")
55
- system_message = gr.Textbox(value="Você é um chatbot amigável e prestativo.", label="System Message")
 
 
 
56
  chatbot = gr.Chatbot()
57
  msg = gr.Textbox(label="Digite sua mensagem")
58
  max_tokens = gr.Slider(50, 2048, 512, step=50, label="Max Tokens")
@@ -64,7 +70,11 @@ with gr.Blocks() as demo:
64
  def handle_submit(message, history, system_message, max_tokens, temperature, top_p):
65
  return respond(message, history, system_message, max_tokens, temperature, top_p)
66
 
67
- msg.submit(handle_submit, inputs=[msg, history, system_message, max_tokens, temperature, top_p], outputs=[chatbot, history])
 
 
 
 
68
 
69
  if __name__ == "__main__":
70
  demo.launch()
 
12
 
13
  # Função principal de resposta
14
  def respond(message, history, system_message, max_tokens, temperature, top_p):
15
+ try:
16
+ # Constrói o histórico completo com system message
17
+ messages = [{"role": "system", "content": system_message}]
18
+ messages.extend(history)
19
+ messages.append({"role": "user", "content": message})
20
 
21
+ full_prompt = "\n".join([m["content"] for m in messages])
22
 
23
+ # --- Passo 1: Llama 3.1 ---
24
+ result_main = client_main.text_generation(
25
+ inputs=full_prompt,
26
+ max_tokens=max_tokens,
27
+ temperature=temperature,
28
+ top_p=top_p
29
+ )
30
+ response_main = result_main[0]["generated_text"]
31
 
32
+ # --- Passo 2: FLAN-T5 (reformulação) ---
33
+ result_aux1 = client_aux1.text_generation(
34
+ inputs=f"Reformule este texto de forma clara e objetiva:\n{response_main}",
35
+ max_new_tokens=max_tokens
36
+ )
37
+ response_aux1 = result_aux1[0]["generated_text"]
38
 
39
+ # --- Passo 3: BART (resumo) ---
40
+ result_aux2 = client_aux2.text_generation(
41
+ inputs=f"Resuma este texto em 3 frases:\n{response_aux1}",
42
+ max_new_tokens=150
43
+ )
44
+ response_aux2 = result_aux2[0]["generated_text"]
45
 
46
+ except Exception as e:
47
+ response_aux2 = f"Erro ao gerar resposta: {e}"
48
 
49
  # Atualiza histórico do chat
50
  history.append({"role": "user", "content": message})
 
55
  # Interface Gradio
56
  with gr.Blocks() as demo:
57
  gr.Markdown("## 🤖 Chatbot em Cascata (Llama 3.1 + FLAN-T5 + BART)")
58
+ system_message = gr.Textbox(
59
+ value="Você é um chatbot amigável e prestativo.",
60
+ label="System Message"
61
+ )
62
  chatbot = gr.Chatbot()
63
  msg = gr.Textbox(label="Digite sua mensagem")
64
  max_tokens = gr.Slider(50, 2048, 512, step=50, label="Max Tokens")
 
70
  def handle_submit(message, history, system_message, max_tokens, temperature, top_p):
71
  return respond(message, history, system_message, max_tokens, temperature, top_p)
72
 
73
+ msg.submit(
74
+ handle_submit,
75
+ inputs=[msg, history, system_message, max_tokens, temperature, top_p],
76
+ outputs=[chatbot, history]
77
+ )
78
 
79
  if __name__ == "__main__":
80
  demo.launch()