Spaces:
Runtime error
Runtime error
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() |