Muitos tutoriais de "RAG em 10 minutos" seguem o mesmo formato: carregar uns documentos, dividir em chunks, gerar embeddings, jogar num vector store e escrever um template de prompt. Funciona bem o suficiente como demonstração. Tende a desmoronar no momento em que usuários reais fazem perguntas reais.
O modelo é a parte fácil
No momento em que o contexto recuperado chega ao LLM, a maioria das decisões que determinam a qualidade já foi tomada:
- Estratégia de chunking. Chunks de tamanho fixo são fáceis de implementar e frequentemente errados — separam uma tabela do seu cabeçalho, ou cortam um procedimento na metade, bem antes do passo que importa.
- Escolha do embedding e adequação ao domínio. Um modelo de embedding genérico vai ter desempenho silenciosamente pior em terminologia específica de domínio (contratos jurídicos, prontuários médicos, código interno) comparado a um ajustado ou escolhido para aquele domínio.
- Estratégia de recuperação. Busca por similaridade vetorial pura perde casos de correspondência exata — códigos de produto, mensagens de erro, nomes específicos — que uma busca por palavra-chave ou híbrida pegaria instantaneamente.
- Re-ranking. Os top-k resultados de uma busca vetorial são uma lista de candidatos "provavelmente relevantes", não uma lista de candidatos "de fato relevantes". Pular o re-ranking significa alimentar o modelo com ruído junto do sinal e esperar que ele resolva isso por conta própria.
Nada disso é um problema de prompt. Você pode escrever o prompt mais cuidadosamente projetado do mundo e ele não vai compensar a recuperação dos três parágrafos errados.
Trate como um pipeline de dados, porque é um
Os times que conseguem bons resultados com RAG tendem a tratá-lo como tratariam qualquer outro pipeline de dados: com monitoramento, com conjuntos de avaliação, e com a premissa de que qualquer etapa pode degradar silenciosamente. Na prática, isso significa:
- Construir um conjunto pequeno e rotulado manualmente de perguntas realistas e os trechos-fonte esperados, antes de escrever um único prompt.
- Medir a qualidade da recuperação (precisão/recall contra esse conjunto) separadamente da qualidade da geração. Um sistema pode recuperar perfeitamente e ainda gerar uma resposta ruim, ou recuperar mal e ainda ter sorte — você quer saber qual falha está vendo.
- Reavaliar o pipeline sempre que os documentos subjacentes, o modelo de embedding ou a lógica de chunking mudarem — a mesma disciplina que você aplicaria a uma migração de schema.
A conclusão
Se seu sistema de RAG não está performando bem, o primeiro lugar a olhar não é o system prompt. São as quatro etapas que acontecem antes do modelo ser chamado. Conserte a recuperação, e um prompt mediano vai frequentemente produzir uma boa resposta. Conserte só o prompt, e uma camada de recuperação quebrada ainda vai entregar a informação errada ao modelo — só que formulada de um jeito mais educado.
Vamos conversar?
Tem um projeto, uma vaga ou só quer trocar uma ideia sobre o assunto? Envie uma mensagem.
Entrar em contato