O que falha quando você analisa a saída de LLM em produção?
Share

In this article
Geralmente, são as suposições do seu código sobre a formatação, e não a resposta do modelo. Três erros se repetem: JSON válido envolto em blocos de código markdown que um analisador rigoroso rejeita, legendas de tokens do prompt copiadas para a saída, e validadores que tratam formatações reparáveis como fatais. Valide rigorosamente, normalize com parcimônia e mantenha a saída bruta.
Por que JSON válido de um LLM falha ao ser analisado?
Modelos frequentemente envolvem JSON em blocos de código markdown para melhor legibilidade, então um json.loads estrito no texto bruto falha mesmo que o conteúdo seja válido. Remova exatamente um bloco externo antes de analisar, mantenha o texto original para auditoria e ainda rejeite prosa ou blocos aninhados como saída genuinamente inválida.
Por que o modelo copia a legenda de tokens do meu prompt para a saída?
Se um prompt explica um espaço reservado com uma legenda, como um token seguido de um sinal de igual e uma descrição, os modelos às vezes reproduzem esse formato no resultado. Diga claramente ao modelo que os tokens devem ficar sozinhos em sua própria linha e remova rótulos com símbolos ou entre parênteses quando você inserir o conteúdo real.
Quais problemas na saída um validador deve rejeitar e quais deve reparar?
Rejeite o que torna a saída estruturalmente errada: campos obrigatórios ausentes, prosa em vez de JSON, espaços reservados remanescentes. Repare o que é cosmético e seguro: um bloco de código ao redor, espaços em branco extras, um rótulo decorativo. Decida por regra, documente e registre o que foi reparado para acompanhar mudanças no comportamento do modelo.
Por que manter a saída bruta do modelo?
A saída bruta permite distinguir um problema do modelo de um problema de análise. Quando uma resposta é rejeitada ou reparada, armazene o texto original junto ao resultado. A depuração então começa a partir de evidências em vez de suposições, e você pode reproduzi-la com um analisador corrigido sem chamar o modelo novamente.
Publicado originalmente em sakshamjain.codes/blog/llm-output-handling-bugs. Precisa disso implementado? Veja meus serviços em NexoRush ou envie uma mensagem.