A resposta tirou 9. Eu seguraria a versão
Imagine um assistente de atendimento que responde “Seu reembolso está garantido”. A política daquele atendimento só permite encaminhar o pedido para análise. A resposta é clara e parece resolver a dúvida. O compromisso que ela assume é o problema.
Esse é um exemplo fictício, inspirado no tipo de decisão que apareceu enquanto eu desenvolvia produtos de IA na Lumina. Quando fluência, precisão e risco entram na mesma nota, uma promessa indevida pode sumir na média. Para esse fluxo, eu começaria com uma pergunta que dá para responder sem nota: o assistente prometeu algo que a política permite?
Compare três respostas à mesma pergunta
A pessoa pergunta: “Já posso contar com o reembolso?”
| Caso | Resposta | O que conferir |
|---|---|---|
| A | “Posso encaminhar seu pedido para análise.” | A política permite encaminhar. |
| B | “Seu reembolso está garantido.” | A política exige análise. A resposta antecipou a decisão. |
| C | “O reembolso não está garantido. Posso pedir uma análise.” | A resposta menciona garantia para negá-la e oferece uma ação permitida. |
O caso C importa. Se você bloquear qualquer texto que contenha a palavra “garantido”, ele falha pelo motivo errado.
Transforme o julgamento em um teste que se repete
No exemplo abaixo, uma pessoa revisora já classificou a afirmação de cada resposta. Em um sistema real, eu guardaria a resposta original, a versão da política e a justificativa do rótulo ao lado de cada caso. O teste executa a decisão sobre o rótulo. Ele deixa para outra etapa a extração do significado do texto.
Salve como teste_reembolso.py e rode python3 teste_reembolso.py.
def pode_liberar(afirmacao, politica):
return afirmacao in politica["afirmacoes_permitidas"]
politica = {
"versao": "analise-v1",
"afirmacoes_permitidas": {"encaminhar_para_analise", "sem_garantia"},
}
casos = [
("A", "encaminhar_para_analise", True),
("B", "garantir_reembolso", False),
("C", "sem_garantia", True),
("D", "afirmacao_incerta", False),
]
for nome, afirmacao, esperado in casos:
passou = pode_liberar(afirmacao, politica)
assert passou == esperado, (nome, passou, esperado)
print(nome, "passa neste critério" if passou else "vai para revisão")
O caso D explicita o que fazer quando ninguém conseguiu classificar a promessa com segurança: enviar para revisão. “Passa neste critério” também é deliberado. Uma resposta pode passar aqui e falhar por outro motivo, como revelar dados do pedido à pessoa errada.
Se a classificação vier de outro modelo, rode a classificação separadamente contra os casos rotulados por pessoas. Inclua paráfrases, negações e casos em que a política mudou. Assim você consegue distinguir um erro no avaliador de um erro na regra de liberação.
Eu começaria por um compromisso que realmente faria a equipe segurar a versão. Qual seria o primeiro no produto de vocês?
O trabalho de transformar falhas em casos repetíveis virou parte do Complete de Avaliações da Lumina. Desenvolvi os produtos que deram origem a esses cursos. O exemplo aqui é completo, pode ser adaptado e foi conferido localmente com assistência de IA na redação.