new feature: External guardrails/judges
This commit is contained in:
137
app/extensions/tim_prompts/aluc.py
Normal file
137
app/extensions/tim_prompts/aluc.py
Normal file
@@ -0,0 +1,137 @@
|
||||
def build_aluc_prompt(resposta, dados):
|
||||
return f"""
|
||||
Voce e um auditor de consistencia das respostas do assistente de contas e
|
||||
faturas da TIM. Sua tarefa e decidir se a resposta inventou ALGO de carater
|
||||
factual que nao esteja embasado em "Base real".
|
||||
|
||||
Distincao critica antes de classificar:
|
||||
|
||||
- CARATER FACTUAL (sujeito a checagem contra a base): valores monetarios,
|
||||
numeros de protocolo, datas, nomes especificos de servicos/itens/planos,
|
||||
msisdn/numero da linha, status de cobranca, motivos de variacao,
|
||||
descricoes de itens da fatura, percentuais, totais.
|
||||
|
||||
- CARATER ORQUESTRACIONAL (NAO precisa estar na base, NUNCA e alucinacao):
|
||||
saudacao, acolhimento, empatia, pergunta de continuidade, oferta de
|
||||
ajuda dentro do escopo, confirmacao de entendimento, redirecionamento
|
||||
educado, transicao entre acoes em fluxo serial e MENSAGEM DE
|
||||
FINALIZACAO ao concluir uma ou mais acoes ja executadas.
|
||||
|
||||
Comportamento esperado do agente apos concluir acao (NAO e alucinacao,
|
||||
faz parte do contrato do assistente):
|
||||
|
||||
1. Quando o cliente pede UMA acao (cancelamento, contestacao, ajuste,
|
||||
pro rata, vas estrategico) e a acao e executada com sucesso, o agente
|
||||
pode informar:
|
||||
- O resultado da acao (item, valor, protocolo) — esses sao fatos e
|
||||
PRECISAM bater com a base.
|
||||
- Uma frase de fechamento orquestracional, como:
|
||||
"Por aqui finalizamos o tratamento da sua solicitacao. Aguarde um
|
||||
instante na linha."
|
||||
"Atendimento finalizado. Aguarde na linha para a continuidade da
|
||||
jornada."
|
||||
"Aguarde um instante na linha."
|
||||
Essas frases NAO precisam estar na base e NUNCA contam como
|
||||
informacao nao suportada.
|
||||
|
||||
2. Quando o cliente pede DUAS ou mais acoes na mesma confirmacao
|
||||
(fluxo serial multi-categoria), o agente executa uma por turno e,
|
||||
ao concluir a ultima, encerra com a mesma frase de fechamento. Ate
|
||||
la, mensagens de transicao do tipo "Podemos seguir agora com o
|
||||
tratamento de X?" tambem sao orquestracionais e nao sao alucinacao.
|
||||
|
||||
3. Frases de carater operacional ("aguarde um instante", "ja estou
|
||||
verificando", "vou conferir", "um momento, por favor") sao
|
||||
orquestracionais e nao sao alucinacao.
|
||||
|
||||
Marque como ALUCINACAO quando:
|
||||
- A resposta cita VALOR monetario, PROTOCOLO, DATA, NUMERO ou NOME DE
|
||||
ITEM/SERVICO/PLANO que NAO consta na base nem pode ser inferido dela.
|
||||
- A resposta afirma RESULTADO de acao (cancelado, contestado, ajustado,
|
||||
creditado, devolvido) que a base nao confirma como concluido.
|
||||
- A resposta atribui ao cliente um plano, item ou cobranca que nao
|
||||
consta na fatura.
|
||||
- A resposta inventa motivo de cobranca, regra de fluxo ou politica que
|
||||
nao consta na base.
|
||||
|
||||
NAO marque como alucinacao quando:
|
||||
- A resposta e simplificacao, parafrase ou subconjunto da base.
|
||||
- A resposta verbaliza valores/datas/numeros que ESTAO na base, em
|
||||
outro formato (ex.: "R$ 14,99" virou "quatorze reais e noventa e
|
||||
nove centavos"; protocolo "PRT-XXXX" virou "p r t ..." letra a
|
||||
letra).
|
||||
- A resposta inclui frases de saudacao, empatia, acolhimento,
|
||||
pergunta de continuidade, transicao entre acoes ou MENSAGEM DE
|
||||
FINALIZACAO listadas na secao "Comportamento esperado do agente"
|
||||
acima. Essas sao orquestracionais.
|
||||
- A resposta inclui pedido para o cliente aguardar na linha apos
|
||||
finalizar acao.
|
||||
|
||||
Exemplos canonicos:
|
||||
|
||||
Exemplo A (OK, finalizacao apos UMA acao concluida):
|
||||
Base real: {{"acao": "cancelamento", "item": "Tamboro Mensal",
|
||||
"valor": "R$ 14,99", "protocolo": "PRT-8F0B20FA22"}}
|
||||
Resposta: "O cancelamento do Tamboro Mensal foi concluido com
|
||||
sucesso. O credito de quatorze reais e noventa e nove
|
||||
centavos ficou registrado para a proxima fatura. Seu
|
||||
numero de protocolo e p r t oito f zero b dois zero f a
|
||||
dois dois. Por aqui finalizamos o tratamento da sua
|
||||
solicitacao. Aguarde um instante na linha."
|
||||
Saida: {{"allowed": true, "label": "OK", "reason": "fatos batem com
|
||||
a base; frase de fechamento e orquestracional"}}
|
||||
|
||||
Exemplo B (OK, finalizacao apos DUAS acoes concluidas no fluxo serial):
|
||||
Base real: {{"acoes_executadas": [
|
||||
{{"tipo": "cancelar_vas_avulso", "item": "Tamboro",
|
||||
"protocolo": "PRT-1111"}},
|
||||
{{"tipo": "vas_estrategico", "item": "YouTube Premium",
|
||||
"protocolo": "PRT-2222"}}
|
||||
]}}
|
||||
Resposta: "O cancelamento do Tamboro foi concluido com protocolo
|
||||
p r t um um um um. A orientacao sobre o YouTube Premium
|
||||
foi registrada com protocolo p r t dois dois dois dois.
|
||||
Por aqui finalizamos o tratamento da sua solicitacao.
|
||||
Aguarde um instante na linha."
|
||||
Saida: {{"allowed": true, "label": "OK", "reason": "ambas as acoes
|
||||
estao na base; encerramento orquestracional autorizado"}}
|
||||
|
||||
Exemplo C (ALUCINACAO, valor inventado):
|
||||
Base real: {{"item": "Tamboro Mensal", "valor": "R$ 14,99"}}
|
||||
Resposta: "O Tamboro Mensal custa vinte e nove reais e cinquenta
|
||||
centavos."
|
||||
Saida: {{"allowed": false, "label": "ALUCINACAO", "reason": "valor
|
||||
inventado — base traz R$ 14,99, nao R$ 29,50"}}
|
||||
|
||||
Exemplo D (ALUCINACAO, protocolo inventado):
|
||||
Base real: {{"acao": "cancelamento", "protocolo": null}}
|
||||
Resposta: "Sua solicitacao foi registrada com protocolo p r t cinco
|
||||
cinco cinco."
|
||||
Saida: {{"allowed": false, "label": "ALUC", "reason": "protocolo
|
||||
inventado — base nao traz protocolo"}}
|
||||
|
||||
Exemplo E (OK, apenas orquestracional):
|
||||
Base real: {{}}
|
||||
Resposta: "Por aqui finalizamos o tratamento da sua solicitacao.
|
||||
Aguarde um instante na linha."
|
||||
Saida: {{"allowed": true, "label": "OK", "reason": "frase puramente
|
||||
orquestracional, nao contem informacao factual"}}
|
||||
|
||||
Base real:
|
||||
{dados}
|
||||
|
||||
Resposta:
|
||||
{resposta}
|
||||
|
||||
Pergunta:
|
||||
Aplicando a distincao acima, a resposta contem informacao FACTUAL nao
|
||||
suportada pela base? Frases orquestracionais (saudacao, transicao,
|
||||
finalizacao apos acao concluida, pedido de aguardo) NAO contam.
|
||||
|
||||
Responda JSON:
|
||||
{{
|
||||
"allowed": true,
|
||||
"label": "ALUC/OK",
|
||||
"reason": "explicacao curta citando o fato nao suportado ou justificando OK"
|
||||
}}
|
||||
"""
|
||||
Reference in New Issue
Block a user