Skip to content

Escrever suites & checks

Estrutura da suite

{
  "name": "A minha suite",
  "cases": [
    { "name": "case-id", "prompt": "o prompt", "checks": [ /* um ou mais checks */ ] }
  ]
}

Cada caso corre contra todos os modelos; cada check contribui com um pass/fail para a pontuação desse modelo.

Tipos de check

Tipo Campos Passa quando
contains value, ignoreCase? o output inclui a substring
notContains value, ignoreCase? o output não a inclui
regex value, flags? o padrão dá match no output
equals value, trim? o output é igual ao valor (opcionalmente trimmed)
jsonValid o output faz parse como JSON
minLength value comprimento do output ≥ value
maxLatencyMs value a geração demorou ≤ value ms

Dicas

  • Mantém os prompts determinísticos e restritos ("responde numa palavra", "só JSON") para os checks fazerem sentido.
  • Combina um check de correção com maxLatencyMs para equilibrar qualidade e velocidade.
  • Usa notContains para guardas de recusa/formato (ex.: sem "I cannot").
  • Agrupa casos relacionados numa suite por capacidade (raciocínio, JSON, extração…).

Checks programáticos

Para algo além dos embutidos, corre a suite e inspeciona report.results[].output tu mesmo — cada output em bruto está incluído para poderes acrescentar scoring próprio.