Objetivo: ao final, o consultor monta um conjunto de casos que representa a distribuição real do trabalho, inclui deliberadamente os casos difíceis e de borda, e versiona o dataset junto do prompt.
Não há número mágico, mas há ordens de grandeza úteis:
| Tipo de tarefa | Casos | Por quê |
|---|---|---|
| Classificação com rótulo exato | 200–1000 | A nota é barata (comparação de string), então volume é quase de graça |
| Extração de campo estruturado | 100–300 | Nota automática por campo, com tolerância definida |
| Resumo ou redação | 50–200 | Nota mais cara (modelo juiz); o volume cai, o custo por caso sobe |
| Consistência (mesma pergunta, formas diferentes) | ~50 grupos | Cada grupo tem a mesma pergunta reescrita de várias formas |
A regra por trás da tabela: quanto mais barata a nota, mais casos você deve ter. Se a nota é saida == esperado, não há motivo para parar em cinquenta.
| Tipo | Exemplo no AMS do Meridiano | O que ele descobre |
|---|---|---|
| Entrada vazia ou inútil | "não funciona", sem mais nada | Se o prompt inventa um rótulo em vez de assumir baixa confiança |
| Entrada longa demais | Thread com dez e-mails colados, 8 mil tokens | Se o prompt classifica pelo último trecho em vez do todo |
| Entrada ambígua | "Não consigo faturar o pedido bloqueado por crédito" — SD, FI ou MM? | Se o prompt escolhe arbitrariamente em vez de sinalizar |
| Caso em que humanos discordam | Qualquer chamado que rodou entre duas filas antes de fechar | Onde a própria tarefa está mal definida — e isso é achado, não defeito |
A última linha merece atenção. Quando dois analistas experientes discordam de um caso, o problema não é do prompt. É de definição de tarefa, e nenhum ajuste de prompt resolve. Encontrar esses casos cedo é uma das coisas mais valiosas que a montagem do dataset produz.
# dataset_triagem_v3.jsonl — uma linha por caso
{"id": "T-0001", "ticket": "Não consigo liberar o pedido 4500012345...", "esperado": "MM", "tipo": "tipico"}
{"id": "T-0002", "ticket": "não funciona", "esperado": "OUTRO", "tipo": "borda_vazio"}
{"id": "T-0003", "ticket": "Não consigo faturar o pedido bloqueado...", "esperado": "SD", "tipo": "borda_ambiguo"}
O campo tipo não entra na nota — ele existe para você conseguir ler o resultado por fatia. É o que permite dizer "acerta 91% nos típicos e 43% nos ambíguos" em vez de só "acerta 78%".
import json
def carregar(caminho):
with open(caminho, encoding="utf-8") as f:
return [json.loads(linha) for linha in f if linha.strip()]
casos = carregar("dataset_triagem_v3.jsonl")
print(f"{len(casos)} casos")
for tipo in sorted({c['tipo'] for c in casos}):
print(f" {tipo}: {sum(1 for c in casos if c['tipo'] == tipo)}")
Antes da anonimização, uma decisão que vem primeiro — de onde o dataset sai. São dois casos, e eles têm regras diferentes:
| Uso do dataset | Fonte | Regra |
|---|---|---|
| Exercício, treinamento, aprender a montar o ciclo | Instância SAP da Wayon (dados fictícios) | Livre. Sem anonimização, sem limite de titulares, sem pedido |
| Validar prompt que vai para produto ou automação de cliente | Histórico real do cliente | Anonimização obrigatória, abaixo |
Para praticar o que esta aula ensina, use a instância. Ela existe para isso, e o problema de governança desaparece.
Mas há uma ressalva metodológica que você precisa carregar, e ela é o motivo de a segunda linha existir: dado de simulação é, por construção, mais limpo que a realidade. Chamado de AMS real é escrito com pressa, tem informação faltando, mistura dois assuntos, contradiz o título. É justamente essa bagunça que faz a avaliação valer — foi ela que produziu a fatia "ambíguos" da aula 3.6.5, onde o prompt acertava 31%.
Um prompt que acerta 95% num dataset fictício pode acertar 60% em chamado real, e a avaliação não teria avisado. Por isso: aprenda na instância, valide no real.
Isto vale para a segunda linha da tabela acima: dataset construído a partir de histórico de cliente.
Chamado de AMS carrega nome, e-mail corporativo, às vezes valor de pedido e nome de fornecedor. Um dataset é, por definição, esse conteúdo guardado e reutilizado, o que o coloca direto dentro da política de dados da aula 1.1.4.
| O que | O que fazer |
|---|---|
| Nome de pessoa, e-mail, telefone | Substituir por marcador estável (USUARIO_01) — estável para o caso continuar coerente |
| Nome de fornecedor e cliente final | Substituir, salvo se for irrelevante para a tarefa |
| Número de pedido, documento, nota | Manter — costuma ser o que a tarefa precisa reconhecer |
| Valor financeiro | Manter só se a tarefa depender dele |
O marcador precisa ser estável dentro do caso: se o mesmo usuário aparece três vezes no chamado, as três viram USUARIO_01. Trocar por marcadores diferentes destrói a coerência do texto e altera a tarefa.
Regra Wayon Dataset de exercício sai da instância SAP da Wayon — dado fictício, uso livre. É o caminho padrão para praticar. Dataset construído a partir de dado de cliente é anonimizado antes de ser gravado, nunca depois, e respeita o limite de 5 titulares reais da política de dados (aula 1.1.4). Ele vive no repositório do projeto, versionado, e não sai dele — não vai para notebook pessoal, não vai para pasta compartilhada fora do projeto, não vai anexo de e-mail. E o inverso também é regra: dado de cliente não entra na instância de simulação para "testar com dado de verdade" (aula 3.9.3).
📖 Criar avaliações empíricas · Política de dados — aula 1.1.4
Cuidadoso, mas 25 casos não distinguem prompts próximos — e para classificação a nota automática é praticamente de graça.
Correto. Volume acima de refinamento, especialmente quando a nota é barata.
Com 25 casos você não sabe se o resultado é ruim — é o problema que a aula 3.6.2 demonstrou.
Correto. O dataset representa o trabalho, não uma versão idealizada dele.
Balanceamento artificial mede um problema que não é o do cliente.
A frequência real é o que define o impacto do erro; "fácil" não é critério de proporção.
Correto. Nenhum ajuste de prompt resolve tarefa ambígua — descobrir isso cedo é um dos maiores ganhos da montagem.
Excluir esconde o problema real e infla artificialmente a nota.
Isso transforma ambiguidade real em critério pessoal, e o prompt será medido contra uma preferência.
Não existe essa exigência; a razão é metodológica, não formal.
É um benefício lateral, não o motivo — o dataset serve a modelos diferentes com ou sem versão.
Correto. Datasets afrouxam sozinhos quando alguém "arruma" o caso que incomodava.