SlickSlick commited on
Commit
227f35a
·
verified ·
1 Parent(s): d34fd29

Update app.py

Browse files

Adicionei set_seed(42) para consistência

Configurei do_sample=False para reduzir aleatoriedade

Adicionei tratamento de erros com try/except

Incluí limpeza básica das respostas

Troquei o árbitro para flan-t5-base (mais leve)

Files changed (1) hide show
  1. app.py +38 -48
app.py CHANGED
@@ -1,51 +1,41 @@
1
  import gradio as gr
2
- from transformers import pipeline
3
-
4
- # Configuração dos modelos
5
- modelo_rapido = pipeline("text-generation", model="facebook/bart-large-mnli")
6
- modelo_detalhado = pipeline("text-generation", model="microsoft/DialoGPT-medium")
7
- arbitro = pipeline("text2text-generation", model="google/flan-t5-large")
8
-
9
-
10
- def avaliar_respostas(prompt, resposta1, resposta2):
11
- instrucao = f"""
12
- Avalie qual resposta é melhor para: '{prompt}':
13
- - Resposta 1: {resposta1}
14
- - Resposta 2: {resposta2}
15
- Critique com base em: clareza, precisão e relevância. Retorne apenas '1' ou '2'.
16
- """
17
- veredito = arbitro(instrucao, max_length=10)[0]['generated_text']
18
- return resposta1 if '1' in veredito else resposta2
19
-
 
 
 
 
 
 
 
20
 
21
  def chatbot(prompt):
22
- # Gera respostas
23
- resposta_rapida = modelo_rapido(prompt, max_length=50)[0]['generated_text']
24
- resposta_detalhada = modelo_detalhado(prompt, max_length=100)[0]['generated_text']
25
-
26
- # Escolhe a melhor
27
- melhor_resposta = avaliar_respostas(prompt, resposta_rapida, resposta_detalhada)
28
-
29
- return melhor_resposta
30
-
31
-
32
- # Interface do Gradio
33
- with gr.Blocks() as interface:
34
- gr.Markdown("## 🤖 Chatbot Acadêmico (Funcionamento em Cascata)")
35
- with gr.Tab("Chat"):
36
- input_text = gr.Textbox(label="Digite sua pergunta")
37
- output_text = gr.Textbox(label="Resposta")
38
- btn = gr.Button("Enviar")
39
- btn.click(fn=chatbot, inputs=input_text, outputs=output_text)
40
-
41
- with gr.Tab("Sobre"):
42
- gr.Markdown("""
43
- **Modelos Utilizados**:
44
- - Resposta Rápida: `facebook/bart-large-mnli`
45
- - Resposta Detalhada: `microsoft/DialoGPT-medium`
46
- - Árbitro: `google/flan-t5-large`
47
-
48
- **Critérios de Avaliação**: Clareza, Precisão e Relevância.
49
- """)
50
-
51
- interface.launch()
 
1
  import gradio as gr
2
+ from transformers import pipeline, set_seed
3
+
4
+ set_seed(42) # Para reprodutibilidade
5
+
6
+ # Configuração segura dos modelos
7
+ modelo_rapido = pipeline(
8
+ "text-generation",
9
+ model="facebook/bart-large-mnli",
10
+ do_sample=False, # Desativa aleatoriedade
11
+ max_length=30
12
+ )
13
+
14
+ modelo_detalhado = pipeline(
15
+ "text-generation",
16
+ model="microsoft/DialoGPT-medium",
17
+ do_sample=False,
18
+ temperature=0.7, # Reduz criatividade
19
+ max_length=50
20
+ )
21
+
22
+ arbitro = pipeline(
23
+ "text2text-generation",
24
+ model="google/flan-t5-base", # Versão mais leve
25
+ max_length=100
26
+ )
27
 
28
  def chatbot(prompt):
29
+ try:
30
+ # Gera respostas com fallback
31
+ resposta_rapida = modelo_rapido(prompt)[0]['generated_text']
32
+ resposta_detalhada = modelo_detalhado(prompt)[0]['generated_text']
33
+
34
+ # Limpeza básica das respostas
35
+ resposta_rapida = resposta_rapida.split(".")[0] + "."
36
+ resposta_detalhada = resposta_detalhada.split("\n")[0]
37
+
38
+ return f"🔵 Resposta Rápida: {resposta_rapida}\n\n🟢 Resposta Detalhada: {resposta_detalhada}"
39
+
40
+ except Exception as e:
41
+ return f"Erro: {str(e)}"