Testes unitários assumem saída determinística. Saída de LLM varia por design, mesmo com temperature 0, porque cada versão de modelo muda a distribuição. Evals de LLM em CI/CD fecham essa lacuna com quatro peças: dataset golden, checagens determinísticas, juiz automatizado e gate de regressão no pipeline.
O dataset golden vem primeiro
Curadoria manual de 50 a 200 pares entrada/saída esperada, colhidos de queries reais de usuários e de incidentes de produção. Cada incidente entra com dois ou três casos novos. Sem golden set, discussão de qualidade vira briga de opinião.
Versione como fixture junto do código (evals/golden.yaml). Dataset fora do repo morre esquecido em um sprint.
Checagens determinísticas antes de juízes
Rode primeiro o que custa zero token de inferência:
- Validade de JSON e conformidade de schema com
zodoupydantic - Lista de frases proibidas (nome de concorrente, promessa legal)
- Teto de comprimento e formato obrigatório de saída
Esse filtro pega cerca de 60% das regressões de graça. Juiz entra depois, no que sobrou.
LLM-as-judge com rubrica escrita
Um modelo forte pontua cada saída contra rubrica documentada: correção factual, tom, aderência de formato, nota de 1 a 5 por critério. Custa 10x menos que revisão humana. Todo juiz tem viés; audite 5% das notas à mão para manter honestidade.
Gate de regressão no CI
A suíte roda a cada bump de prompt ou de modelo (GitHub Actions, GitLab CI, tanto faz). Queda de 2-3 pontos no score composto bloqueia merge; na prática esse patamar denuncia regressão real. Com promptfoo, promptfoo eval --config promptfooconfig.yaml vira um step do workflow, com diff de outputs no PR.
Drift de qualidade em produção
Eval no PR protege o presente; drift aparece depois. Provedores trocam pesos sem aviso. Amostre 1-2% do tráfego vivo toda noite, pontue contra baseline e acione o on-call após três dias consecutivos de queda. A suíte de evals é o fusível.
Ferramentas por tamanho de time
promptfoo cobre pipeline open-source com config YAML e comparação de outputs no pull request. Braintrust e LangSmith entregam plataforma gerenciada com tracing e datasets online. Time pequeno vai longe com fixtures de pytest e disciplina de revisão.
Comece com 30 casos golden, três checagens determinísticas e um gate de 2 pontos no merge. Uma tarde de setup compra proteção permanente contra a próxima troca de modelo que quebra tudo.
Curtiu o conteúdo?
Construo produtos web e soluções com IA do jeito certo — arquitetura sólida, código sustentável e entrega real.
Vamos conversar