Spaces:
Runtime error
Runtime error
File size: 1,788 Bytes
05fddb2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
import gradio as gr
from transformers import pipeline
# Configuração dos modelos
modelo_rapido = pipeline("text-generation", model="facebook/bart-large-mnli")
modelo_detalhado = pipeline("text-generation", model="microsoft/DialoGPT-medium")
arbitro = pipeline("text2text-generation", model="google/flan-t5-large")
def avaliar_respostas(prompt, resposta1, resposta2):
instrucao = f"""
Avalie qual resposta é melhor para: '{prompt}':
- Resposta 1: {resposta1}
- Resposta 2: {resposta2}
Critique com base em: clareza, precisão e relevância. Retorne apenas '1' ou '2'.
"""
veredito = arbitro(instrucao, max_length=10)[0]['generated_text']
return resposta1 if '1' in veredito else resposta2
def chatbot(prompt):
# Gera respostas
resposta_rapida = modelo_rapido(prompt, max_length=50)[0]['generated_text']
resposta_detalhada = modelo_detalhado(prompt, max_length=100)[0]['generated_text']
# Escolhe a melhor
melhor_resposta = avaliar_respostas(prompt, resposta_rapida, resposta_detalhada)
return melhor_resposta
# Interface do Gradio
with gr.Blocks() as interface:
gr.Markdown("## 🤖 Chatbot Acadêmico (Funcionamento em Cascata)")
with gr.Tab("Chat"):
input_text = gr.Textbox(label="Digite sua pergunta")
output_text = gr.Textbox(label="Resposta")
btn = gr.Button("Enviar")
btn.click(fn=chatbot, inputs=input_text, outputs=output_text)
with gr.Tab("Sobre"):
gr.Markdown("""
**Modelos Utilizados**:
- Resposta Rápida: `facebook/bart-large-mnli`
- Resposta Detalhada: `microsoft/DialoGPT-medium`
- Árbitro: `google/flan-t5-large`
**Critérios de Avaliação**: Clareza, Precisão e Relevância.
""")
interface.launch() |