
Por que recusamos um chat de IA duas vezes mais rápido: latência do RAG versus precisão
No início de outubro, eu tinha em mãos duas maneiras de tornar o Attlas quase duas vezes mais rápido. A primeira cabia em uma linha de código. A segunda consistia em trocar de modelo de IA. Não ativei nenhuma das duas.
A primeira cortava o tempo de reflexão que o modelo se dá antes de escrever. A primeira palavra da resposta chegava em pouco mais de meio segundo. Depois, li as respostas. Um visitante perguntava qual fórmula escolher para uma festa de 80 convidados. A versão rápida recomendava a fórmula “até 75 pessoas”.
A segunda, o Claude Haiku 5.5, respondia 35% mais rápido que nosso modelo atual, a um custo cerca de quatro vezes menor por resposta. Mas em parte das perguntas, em vez de responder, devolvia a pergunta ao visitante, perguntando qual assunto lhe interessava...

Explico aqui o motivo dessas duas recusas, e os dez dias de medições que as antecederam:
- 13 frentes abertas
- 4 mudanças em produção
- 7 ideias abandonadas
Os abandonos são a parte de que mais me orgulho
A regra do jogo: medir antes de mexer
Um chat de IA nunca responde duas vezes exatamente da mesma forma. Se a gente muda uma configuração e testa três perguntas manualmente, acaba vendo o que quer ver. Por isso, defini três regras antes de modificar qualquer coisa.
- Nenhuma mudança sem medição inicial. Cada ideia começa com um número de referência, medido na versão on-line.
- A nota de aprovação é escrita antes do teste. Por exemplo: “mantemos se a precisão não cair mais de um ponto”. Se o resultado ficar logo abaixo, não adotamos. Não repetimos o teste para ver se passa na segunda vez.
- Testamos com perguntas reais, em paralelo à produção. Montei um conjunto de 120 perguntas reais de visitantes, tiradas de 26 chats de clientes. Elas ficam fora do código-fonte e não saem do meu computador.
Para avaliar a pertinência das respostas em grande escala, uso uma IA “juíza”. Não confiei nela de imediato. Verifiquei-a em casos cuja nota correta eu conhecia e depois a comparei com um segundo juiz de outra família de modelos. Os dois concordaram em 95% dos casos.
Última restrição, bem concreta: o Attlas é autofinanciado, e seu banco de dados opera com um limite mensal de transferência. Cada teste precisava continuar leve. Essa restrição me obrigou a fazer o próprio banco de dados calcular, em vez de trazer os dados para cá, o que deixou os testes mais limpos.
O que a medição revelou primeiro
Antes de ganhar um único milissegundo, medir me fez encontrar bugs que ninguém via. Nem eu, nem os usuários.
As correções não eram prioritárias. Elas viravam uma passagem comum, entre outras. Mas uma funcionalidade prometida não fazia o que dizia. Já foi corrigido.
As duplicatas empurravam as respostas certas para fora. Para cada pergunta, o Attlas recebe um número limitado de trechos para ler, como um orçamento de leitura. Quando duplicatas ocupam o espaço, o trecho que contém a resposta pode ficar fora do orçamento. Depois da limpeza, a proporção de perguntas em que o trecho certo chega até a IA passou de 96,4% para 98,8%.
O que foi para produção
Duas otimizações de velocidade passaram no teste, além das correções descritas acima. Nenhuma afeta a qualidade das respostas.
A primeira mensagem não espera mais pelo banco de dados
Para encontrar os trechos certos, o Attlas compara a pergunta do visitante com perguntas preparadas com antecedência. Cada uma é armazenada na forma de um embedding, uma longa sequência de números que representa seu significado: 1.536 números por pergunta.
No total, essas fichas pesavam bastante... Era mais do que a memória rápida do servidor, que também precisa conter todo o resto. Resultado: quando um chat não era usado havia um tempo, sua primeira busca ia procurar as fichas no disco. O visitante podia esperar de 2 a 5 segundos antes que o Attlas pudesse começar a “trabalhar”.
Os modelos de embedding da OpenAI que usamos guardam o essencial do significado nos primeiros números. Verifiquei que, mantendo apenas os 512 primeiros, obtemos exatamente o que a API retornaria na versão curta. As fichas passam de 223 para 30 MB e cabem na memória.
Imagine uma caixa de ferramentas que a gente era obrigado a carregar para todo lado, até o dia em que descobre o canivete suíço: ele faz o mesmo trabalho e cabe no bolso.
- Precisão: inalterada, até ligeiramente melhor nas nossas 120 perguntas.
- Primeiro acesso a um chat: 95% das buscas duram menos de 40 ms, contra 205 ms antes, ou seja, 5x mais rápido.
- Pior caso medido nos maiores chats: de 2,6 para 0,33 s.
A mesma ideia deveria se aplicar às sugestões de perguntas que aparecem abaixo de cada resposta.
Os cliques nos botões não recalculam mais nada
Em uma página do Attlas, o visitante pode digitar sua pergunta ou clicar em uma pergunta sugerida pelo proprietário. Esses cliques representam metade das mensagens. Antes, cada clique disparava uma chamada à OpenAI para transformar o texto em embeddings, cerca de 400 ms a cada vez, embora o texto do botão não mude.
Agora, o cálculo é feito no primeiro clique e o Attlas o guarda. Os cliques seguintes não fazem mais nenhuma chamada. Nas nossas medições, a resposta começa cerca de 190 ms mais cedo no caso típico.
O que abandonamos, e por que isso é uma boa notícia
7 ideias entre 13 não passaram no teste. Cada uma parecia óbvia no papel.
| Ideia | O que esperávamos | O que medimos |
|---|---|---|
| Cortar a reflexão do modelo | Uma resposta duas vezes mais rápida | Duas vezes mais rápida, sim. Mas em 80 confrontos de respostas, a versão rápida perde 39 e vence só 23. Ela também esquece de consultar a documentação quando necessário. |
| Mudar para o Claude Haiku 5.5 | Mais rápido e mais barato | 35% mais rápido, mas 19 confrontos perdidos para 11 vencidos. Muitas vezes, ele devolve a pergunta ao visitante em vez de responder. |
| Uma busca por palavras-chave mais flexível | 3 pontos a mais de precisão | 2 pontos no máximo, com uma piora nos cliques de botões. |
| Colocar as instruções do chat em cache na OpenAI | Uma primeira palavra mais rápida | O cache funciona, mas a primeira palavra não chega mais cedo. |
| Reordenar as etapas do servidor | Pelo menos 50 ms ganhos | 35 ms. Não o suficiente para complicar o código. |
| Manter na memória as sugestões clicadas | Uma chamada a menos por clique | Nenhum clique em uma sugestão em 90 dias. Nada a ganhar. |
A primeira linha conta como dois testes: primeiro tentamos cortar a reflexão em todos os lugares, depois só nos chats sem ferramentas. Nos dois casos, a qualidade caía. Os erros não eram questões de estilo. Eram verdadeiros erros de raciocínio, como a fórmula para 75 pessoas oferecida a 80 convidados. Manter a reflexão custa cerca de meio segundo. Ela evita esse tipo de erro, e prefiro pagar esse meio segundo.
Cada abandono também é menos código. Uma otimização que não traz nada fica no produto para sempre, para manter, para entender, para depurar. Não adicioná-la já é um ganho.
E alguns fracassos ensinam alguma coisa. Ao aprofundar a busca por palavras-chave, examinei de perto as perguntas para as quais o chat não encontrava nada. Quase todas tratavam de informações ausentes da base do cliente. O problema não era a busca, era o conteúdo. A resposta certa, portanto, não é buscar mais forte, mas sinalizar essas lacunas ao proprietário do chat. É a próxima frente que quero investigar.

O que isso muda para você
Se você tem um chat no Attlas, veja o que mudou:
- A primeira mensagem de um visitante não fica mais travada por vários segundos, mesmo em um chat grande
- Os cliques nas suas perguntas sugeridas são enviados mais rápido
- Suas correções finalmente prevalecem sobre o resto da base, como prometido
- Uma precisão de 98,8% revelada pelos testes.
- O Attlas sempre toma tempo para refletir antes de responder. É uma escolha, com números.
Há muitas demonstrações de IA impressionantes. Muito menos produtos de IA sobre os quais sabemos dizer, com números na mão, se respondem certo. A diferença entre os dois é a medição: uma referência antes de mexer, uma nota de aprovação escrita com antecedência e a honestidade de dizer não quando o resultado não acompanha. Mesmo quando a frente é sedutora, e mesmo quando ela faz ganhar meio segundo.

Fundador da Attlas. Ele combina pensamento de produto, ferramentas low-code e design para permitir que qualquer pessoa crie chats com IA a partir de seus próprios dados.