Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -127,6 +127,66 @@ def chatbot(pergunta):
|
|
| 127 |
f"Modelo 2 (secundário): {resposta2}"
|
| 128 |
]
|
| 129 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 130 |
# Interface Gradio
|
| 131 |
interface = gr.Interface(
|
| 132 |
fn=chatbot,
|
|
@@ -137,8 +197,9 @@ interface = gr.Interface(
|
|
| 137 |
gr.Textbox(label="Resposta do Modelo 2")
|
| 138 |
],
|
| 139 |
title="🗺️ Especialista em Capitais (Cascata com Correção Automática)",
|
| 140 |
-
description="Sistema com três modelos em cascata. Pergunte sobre a capital de qualquer país. Exemplos: Brasil, Alemanha, França..."
|
|
|
|
| 141 |
)
|
| 142 |
|
| 143 |
if __name__ == "__main__":
|
| 144 |
-
interface.launch()
|
|
|
|
| 127 |
f"Modelo 2 (secundário): {resposta2}"
|
| 128 |
]
|
| 129 |
|
| 130 |
+
# Markdown content for the article section
|
| 131 |
+
article_markdown = """
|
| 132 |
+
Gustavo Henrique Xavier da Silva 1758309
|
| 133 |
+
Mateus Teixeira Maciel 1650601
|
| 134 |
+
Laís Aranda de Souza 1656007
|
| 135 |
+
Gustavo Queiroz Fonseca 1771365
|
| 136 |
+
|
| 137 |
+
### 1. Modelo Primário (google/flan-t5-small)
|
| 138 |
+
**Função**: Primeira linha de resposta
|
| 139 |
+
**Características**:
|
| 140 |
+
- Modelo menor e mais rápido (80M parâmetros)
|
| 141 |
+
- Responsável por gerar a resposta inicial
|
| 142 |
+
- Ideal para casos simples e óbvios (como capitais bem conhecidas)
|
| 143 |
+
|
| 144 |
+
**Fluxo no código**:
|
| 145 |
+
- Chamado primeiro através da função `gerar_resposta("primario", pergunta)`
|
| 146 |
+
- Se sua resposta for validada como confiável (`esta_confiante()` retorna `True`), o sistema retorna imediatamente sem consultar outros modelos
|
| 147 |
+
- Caso contrário, o sistema prossegue para o modelo secundário
|
| 148 |
+
|
| 149 |
+
### 2. Modelo Secundário (google/flan-t5-base)
|
| 150 |
+
**Função**: Segunda opinião para casos mais complexos
|
| 151 |
+
**Características**:
|
| 152 |
+
- Modelo médio (250M parâmetros)
|
| 153 |
+
- Maior capacidade que o primário
|
| 154 |
+
- Usado quando o primário não tem confiança suficiente
|
| 155 |
+
|
| 156 |
+
**Fluxo no código**:
|
| 157 |
+
- Chamado apenas se o primário não for confiável
|
| 158 |
+
- Se sua resposta for validada como confiável, o sistema retorna aqui
|
| 159 |
+
- Caso ambos (primário e secundário) não sejam confiáveis, o sistema chama o árbitro
|
| 160 |
+
|
| 161 |
+
### 3. Modelo Árbitro (google/flan-t5-large)
|
| 162 |
+
**Função**: Decisor final em casos de discordância
|
| 163 |
+
**Características**:
|
| 164 |
+
- Modelo maior e mais capaz (800M parâmetros)
|
| 165 |
+
- Atua como "juiz" entre as respostas do primário e secundário
|
| 166 |
+
- Só é acionado quando os dois primeiros modelos dão respostas diferentes e não confiáveis
|
| 167 |
+
|
| 168 |
+
**Fluxo no código**:
|
| 169 |
+
- Chamado através da função `arbitrar()`
|
| 170 |
+
- Recebe a pergunta original e as duas respostas corrigidas
|
| 171 |
+
- Decide qual das duas respostas é mais provavelmente correta
|
| 172 |
+
- Pode também corrigir ambas as respostas se necessário
|
| 173 |
+
|
| 174 |
+
## Sistema de Validação e Correção
|
| 175 |
+
|
| 176 |
+
Além dos modelos, o sistema possui:
|
| 177 |
+
- **Base de Conhecimento**: `BASE_CAPITAIS` com respostas corretas e erros comuns
|
| 178 |
+
- **Função `validar_corrigir()`**: Compara respostas com a base de conhecimento
|
| 179 |
+
- **Função `esta_confiante()`**: Determina se uma resposta pode ser aceita sem arbitragem
|
| 180 |
+
|
| 181 |
+
## Fluxo de Decisão
|
| 182 |
+
1. Tenta primeiro com o modelo pequeno (rápido)
|
| 183 |
+
2. Se não confiável, tenta com o modelo médio
|
| 184 |
+
3. Se ainda não resolvido, usa o modelo grande como árbitro
|
| 185 |
+
4. Sempre aplica validação/correção baseada na base de conhecimento
|
| 186 |
+
|
| 187 |
+
Essa abordagem em cascata equilibra velocidade e precisão, usando modelos maiores apenas quando necessário.
|
| 188 |
+
"""
|
| 189 |
+
|
| 190 |
# Interface Gradio
|
| 191 |
interface = gr.Interface(
|
| 192 |
fn=chatbot,
|
|
|
|
| 197 |
gr.Textbox(label="Resposta do Modelo 2")
|
| 198 |
],
|
| 199 |
title="🗺️ Especialista em Capitais (Cascata com Correção Automática)",
|
| 200 |
+
description="Sistema com três modelos em cascata. Pergunte sobre a capital de qualquer país. Exemplos: Brasil, Alemanha, França...",
|
| 201 |
+
article=article_markdown
|
| 202 |
)
|
| 203 |
|
| 204 |
if __name__ == "__main__":
|
| 205 |
+
interface.launch()
|