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
maxLatencyMspara equilibrar qualidade e velocidade. - Usa
notContainspara 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.