O problema
Aqui na BRGT Engenharia lidamos todos os dias com uma grande quantidade de arquivos: propostas comerciais, projetos estruturais, planilhas de orçamento, plantas DWG, relatórios de sondagem, contratos e até scripts de automação.
O problema era simples (e comum em qualquer empresa):
a informação existia, mas encontrar rápido era difícil.
A solução que criamos foi um bot no Telegram com inteligência artificial que indexa os arquivos do servidor e responde perguntas em linguagem natural.
Exemplo real:
“Qual foi o valor do orçamento da última proposta?”
O bot busca nos arquivos, interpreta e responde.
Como o sistema funciona (arquitetura RAG)
O sistema usa uma arquitetura RAG (Retrieval-Augmented Generation) com duas etapas de LLM:
1. Extração de termos
O modelo converte a pergunta do usuário em palavras-chave otimizadas para busca.
2. Geração de resposta
Outro modelo recebe os arquivos encontrados como contexto e gera a resposta final.
A grande dúvida era:
- Qual combinação de modelos usar?
- Um modelo caro?
- Um modelo local gratuito?
- Um modelo barato na nuvem?
Para evitar achismo, rodamos 6 benchmarks sistemáticos.
Metodologia
Avaliação automatizada
Todos os testes seguiram o mesmo processo:
- 10 consultas reais simulando o uso diário
- Avaliação automática em 5 critérios:
- Precisão
- Completude
- Relevância
- Clareza
- Utilidade
- Uma resposta de referência considerada nota 10
Tudo comparado de forma objetiva.
Nota metodológica importante
Todas as notas apresentadas são relativas a uma resposta de referência avaliada automaticamente pelo modelo mais avançado disponível no dia do teste: OpenAI GPT-5.2.
Isso garante padronização, consistência e comparação objetiva entre os benchmarks.
Modelos testados
| Modelo | Tipo | Custo input (1M tokens) | Custo output (1M tokens) |
|---|---|---|---|
| GPT-5.2 | API | $1,25 | $10,00 |
| GPT-5-mini | API | $0,25 | $2,00 |
| GPT-5-nano | API | $0,05 | $0,40 |
| GPT-4o-mini | API | $0,15 | $0,60 |
| Ollama qwen2.5:7b | Local | Grátis | Grátis |
O índice continha cerca de 1.100 arquivos com busca full-text.
Benchmark 1 — Local vs Nuvem
Pergunta: modelo local compete com API?
| Modelo | Nota | Tempo médio |
|---|---|---|
| GPT-4o-mini | 5,4 | 2,0 s |
| Ollama qwen2.5:7b | 4,4 | 6,1 s |
Insight importante:
O problema não era só o modelo — era usar o mesmo modelo fraco para extrair termos e responder.
Benchmark 2 — Usando modelos diferentes para cada etapa
| Combinação (extração + resposta) | Nota | Tempo |
|---|---|---|
| 4o-mini + 5.2 | 7,3 | 7,2 s |
| Ollama + 5.2 | 6,5 | 8,0 s |
| 5.2 + 4o-mini | 6,1 | 2,4 s |
| 5.2 + Ollama | 5,9 | 7,1 s |
| 4o-mini + 4o-mini | 5,2 | 2,5 s |
| 4o-mini + Ollama | 4,6 | 7,0 s |
| Ollama + 4o-mini | 4,3 | 4,1 s |
| Ollama + Ollama | 3,9 | 8,1 s |
Insight:
O modelo de resposta impacta muito mais na qualidade final do que o de extração.
Benchmark 3 — Família GPT-5
| Combinação | Nota | Custo (10 consultas) |
|---|---|---|
| 5.2 + 5-nano | 8,0 | $0,03 |
| 5.2 + 5-mini | 7,5 | $0,08 |
| 5-nano + 5.2 | 6,6 | $0,48 |
| 5-mini + 5.2 | 6,3 | $0,48 |
| 5-nano + 5-mini | 6,2 | $0,01 |
| 5-mini + 5-nano | 6,2 | $0,01 |
| 5-mini + 5-mini | 6,1 | $0,08 |
| 5-nano + 5-nano | 5,9 | $0,01 |
Conclusão:
Modelo forte para extrair + modelo barato para responder manteve alta qualidade com custo baixíssimo.
⚠️ Descoberta Crítica:
Modelos menores e mais baratos retornaram string vazia na etapa de extração de termos em múltiplos testes.
A tarefa parece simples, mas exige capacidade de raciocínio que modelos compactos ainda não entregam com confiabilidade.
Benchmark 4 — Variação do prompt do sistema
| Prompt | Nota | Descrição |
|---|---|---|
| Especialista técnico | 7,9 | Persona de engenheiro civil sênior |
| Original | 7,3 | Genérico |
| Detalhado | 7,2 | Contexto da empresa |
| Passo-a-passo | 7,1 | Raciocínio guiado |
| Anti-alucinação | 6,0 | Regras rígidas |
Prompts muito restritivos pioraram o resultado.
Benchmark 5 — Prompt de extração
| Tipo | Nota | Observação |
|---|---|---|
| Categorizado | 7,6 | Separação por tipo |
| Original | 7,5 | Simples |
| Expansão semântica | 6,7 | Sinônimos técnicos |
| Contextualizado | 6,4 | Regras anti-genérico |
| Few-shot | 6,4 | Exemplos |
Conclusão:
Prompt simples funciona.
⚠️ Descoberta Crítica:
Prompts excessivamente restritivos (anti-alucinação) reduziram a utilidade das respostas.
Ao tentar impedir qualquer risco de erro, o modelo passou a responder de forma curta, vaga e pouco prática.
Benchmark 6 — Comparação final de modelos de resposta
| Modelo | Nota | Custo (10 consultas) | Tempo |
|---|---|---|---|
| GPT-5.2 | 8,6 | $0,318 | 5,7 s |
| GPT-5-nano | 7,7 | $0,0108 | 17,2 s |
| GPT-4o-mini | 6,6 | $0,0079 | 1,6 s |
| Ollama | 5,9 | Grátis | 10 s |
O modelo econômico entregou cerca de 90% da qualidade por 3% do custo.
Configuração final (produção)
| Etapa | Escolha |
|---|---|
| Extração | Modelo robusto (5.2) |
| Resposta | Modelo econômico (5.2 nano) |
| Prompt | Persona técnica |
| Extração | Simples e direto |
Projeção de custos
| Uso | Consultas/dia | Custo mensal |
|---|---|---|
| Leve | 5 | ~R$ 0,70 |
| Moderado | 10 | ~R$ 1,40 |
| Intenso | 50 | ~R$ 6,90 |
| Pesado | 100 | ~R$ 13,80 |
O que aprendemos
- Separe extração e resposta
- O modelo de resposta pesa mais
- Modelos baratos não extraem bem termos
- Persona técnica melhora respostas
- Anti-alucinação excessiva piora
- Prompt complexo atrapalha
- Local nem sempre compensa
Arquitetura final (resumo simples)
Usuário pergunta no Telegram →
Modelo extrai palavras-chave →
Busca nos arquivos →
Modelo gera resposta →
Resposta enviada.
Simples, rápido e barato.
Código aberto?
O sistema está em produção na BRGT Engenharia.
Os scripts de benchmark podem ser compartilhados para quem quiser implementar.
Stack:
- Python
- Telegram Bot
- OpenAI API
- SQLite
- Leitura de PDF, DWG e planilhas
Versão técnica completa
A versão completa do benchmark, com todos os dados, tabelas detalhadas e análises técnicas aprofundadas, está disponível aqui:
👉 Acessar versão técnica completa do benchmark
Gostou do conteúdo? Nos siga nas redes sociais e acompanhe nossos próximos posts.