SlickSlick commited on
Commit
05fddb2
·
verified ·
1 Parent(s): 9314971

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +51 -0
app.py ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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()