Chatbot-cascata-fmu / README.md
SlickSlick's picture
Update README.md
b7db1c4 verified
---
title: Chatbot Cascata Fmu
emoji: 🚀
colorFrom: red
colorTo: red
sdk: gradio
sdk_version: 5.32.1
app_file: app.py
pinned: false
license: mit
short_description: 'chatbot com 2 resposta e 1 arbitro '
---
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
# 🤖 Chatbot em Cascata – Projeto Acadêmico
## 📝 Descrição
Este projeto implementa um chatbot em português baseado em arquitetura **em cascata**, onde dois modelos diferentes geram respostas a partir de um prompt do usuário, e um terceiro modelo atua como **árbitro**, escolhendo a melhor resposta com base em critérios objetivos.
O web app foi desenvolvido utilizando **Gradio** e está hospedado no **Hugging Face Spaces**.
## 🚧 Funcionamento do Sistema
1. **Usuário insere uma pergunta (prompt).**
2. **Dois modelos geradores** processam o prompt e produzem **duas respostas independentes**.
3. **Um terceiro modelo (árbitro)** analisa as duas respostas e seleciona a que melhor atende aos critérios definidos.
4. **A resposta escolhida é exibida ao usuário**, juntamente com as duas respostas e a justificativa da escolha.
## ⚙️ Modelos Utilizados
### 📤 Modelos Geradores
1. **pierreguillou/gpt2-small-portuguese**
- Baseado no GPT-2, treinado especificamente em português.
- Modelo leve (124M parâmetros), ideal para ambientes com 2vCPU e 16GB RAM.
- Utilizado para gerar texto de maneira autônoma e fluente em português.
> Ambos os geradores usam o mesmo modelo neste exemplo, mas podem ser trocados por versões distintas.
### ⚖️ Modelo Árbitro
- **neuralmind/bert-base-portuguese-cased**
- Versão do BERT treinada em português brasileiro.
- Utilizado para comparar o prompt com cada resposta, avaliando **clareza**, **relevância** e **coerência**.
## 📊 Critérios de Avaliação do Árbitro
| Critério | Definição |
|--------------|-------------------------------------------------------------------------|
| Clareza | A resposta está bem formulada e compreensível? |
| Relevância | A resposta realmente responde ao prompt do usuário? |
| Coerência | A resposta é lógica e gramaticalmente correta? |
> A avaliação é feita através da **similaridade semântica** entre o prompt e cada resposta.
## 🖥️ Requisitos de Hardware
- CPU: 2 vCPU
- RAM: 16 GB
- Armazenamento: suficiente para carregar 3 modelos pequenos
## 🌐 Tecnologias Utilizadas
- [Gradio](https://www.gradio.app/)
- [Hugging Face Transformers](https://huggingface.co/docs/transformers/index)
- [Hugging Face Spaces](https://huggingface.co/spaces)
- PyTorch
## 🚀 Executando Localmente
```bash
git clone https://huggingface.co/spaces/SlickSlick/Chatbot-cascata-fmu
cd Chatbot-cascata-fmu
pip install -r requirements.txt
python app.py
```
## 🧪 Exemplos de Uso
**Prompt:** "Qual é a capital do Brasil?"
- **Resposta 1:** "A capital do Brasil é Brasília."
- **Resposta 2:** "Rio de Janeiro é uma cidade importante do Brasil."
- **Escolhida pelo Árbitro:** Resposta 1
- **Justificativa:** Resposta 1 é mais clara, direta e responde exatamente à pergunta.
## 📬 Contato e Autoria
- **Gabriel dos Reis Rodrigues Dias – RA: 1667287**
- **Gabriela Cristinne Silveira – RA: 1789243**
- **Gustavo Dallago Ferreira – RA: 1415518**
**Curso:** Ciência da Computação
**Universidade:** Centro Universitário das Faculdades Metropolitanas Unidas – FMU
**Professor:** Renè Teixeira