Um novo assistente RAG (retrieval-augmented generation) baseado em WhatsApp parou de alucinar ao exigir que cada resposta fosse respaldada por uma citação codificada em JSON. Quando o modelo não conseguia apontar para um chunk específico, ele retornava “Não tenho informações suficientes para responder a isso”, transformando um mentiroso confiante em um sistema confiável de “Eu não sei”.
Por que a confiança é importante no RAG
A maioria dos tutoriais sobre RAG foca obsessivamente na recuperação — escolhendo embeddings, dividindo documentos em chunks, reordenando resultados. Eles ignoram o que acontece depois que o texto relevante é encontrado. Os usuários perdem a fé quando o assistente oferece uma resposta definitiva que o contexto recuperado não suporta de fato.
O abismo de confiança
Em um protótipo construído com PostgreSQL e a extensão pgvector, o pipeline de recuperação era direto. O verdadeiro desafio surgiu em produção: o modelo de linguagem parecia seguro mesmo quando o trecho recuperado carecia da informação necessária. Uma demonstração poderia esconder o problema, mas usuários reais expuseram a lacuna entre parecer confiante e estar correto.
Impondo citações com JSON
Em vez de tentar convencer o modelo com prompts como “responda apenas se você tiver contexto”, o autor alterou o formato de saída. O sistema agora exige um objeto JSON onde cada afirmação inclui uma referência ao chunk exato que a sustenta. Se o modelo não conseguir anexar uma citação, a resposta é rejeitada e o usuário vê uma mensagem clara de “Eu não sei”.
A imposição passou de instruções em linguagem natural para validação de esquema. O modelo ainda gera texto, mas o código ao redor verifica se o JSON corresponde à estrutura exigida antes de chegar ao usuário.
O que mudou
- O chunking tornou-se conservador. Chunks vagos ou excessivamente amplos agora geram afirmações sem citações, acionando o fallback de “Eu não sei”.
- O prompt do sistema encolheu. O prompt autoritário que tentava policiar o comportamento do modelo foi substituído por um conjunto curto de instruções, deixando o trabalho pesado para o esquema.
- As falhas são visíveis. Quando a recuperação retorna material irrelevante, o assistente não mascara mais o erro com uma resposta confiante, porém errada; ele admite abertamente a incerteza.
Conclusão: Para assistentes RAG, garantir que cada afirmação seja rastreável a uma fonte recuperada constrói a confiança do usuário de forma mais confiável do que apenas polir a etapa de recuperação. Ao transformar citações ausentes em um “Eu não sei” visível, os desenvolvedores permitem que o sistema admita seus limites em vez de fabricar respostas.
