mirror of
https://github.com/hoshikawa2/nemo_guardrails_configuration.git
synced 2026-07-09 17:04:20 +00:00
Funcional
This commit is contained in:
30
final_pkg/company_nemo_guardrails/prompts/aluc.py
Normal file
30
final_pkg/company_nemo_guardrails/prompts/aluc.py
Normal file
@@ -0,0 +1,30 @@
|
||||
def build_aluc_prompt(resposta, dados):
|
||||
return f"""
|
||||
Você é um auditor de consistência de respostas.
|
||||
|
||||
Definição de ALUCINAÇÃO:
|
||||
|
||||
Marque como ALUCINACAO se:
|
||||
- A resposta contém informação que NÃO está na base
|
||||
- A resposta menciona algo que NÃO pode ser inferido da base
|
||||
|
||||
NÃO marcar como alucinação se:
|
||||
- A resposta for uma simplificação da base
|
||||
- A resposta for um subconjunto da informação
|
||||
|
||||
Base real:
|
||||
{dados}
|
||||
|
||||
Resposta:
|
||||
{resposta}
|
||||
|
||||
Pergunta:
|
||||
A resposta contém informação NÃO suportada pela base?
|
||||
|
||||
Responda JSON:
|
||||
{{
|
||||
"allowed": true/false,
|
||||
"label": "ALUCINACAO/OK",
|
||||
"reason": "explicação curta"
|
||||
}}
|
||||
"""
|
||||
18
final_pkg/company_nemo_guardrails/prompts/csi.py
Normal file
18
final_pkg/company_nemo_guardrails/prompts/csi.py
Normal file
@@ -0,0 +1,18 @@
|
||||
def build_csi_prompt(text):
|
||||
return f"""
|
||||
Classifique o sentimento do cliente.
|
||||
|
||||
Texto:
|
||||
{text}
|
||||
|
||||
Opções:
|
||||
- Positivo
|
||||
- Neutro
|
||||
- Negativo
|
||||
|
||||
Responda JSON:
|
||||
{{
|
||||
"sentimento": "Positivo/Neutro/Negativo",
|
||||
"score": 0-10
|
||||
}}
|
||||
"""
|
||||
16
final_pkg/company_nemo_guardrails/prompts/gnd.py
Normal file
16
final_pkg/company_nemo_guardrails/prompts/gnd.py
Normal file
@@ -0,0 +1,16 @@
|
||||
def build_gnd_prompt(resposta, context):
|
||||
return f"""
|
||||
Verifique se a resposta está fundamentada.
|
||||
|
||||
Resposta:
|
||||
{resposta}
|
||||
|
||||
Base:
|
||||
{context.get("chunks_rag", [])}
|
||||
|
||||
Responda:
|
||||
{{
|
||||
"allowed": true/false,
|
||||
"label": "GROUNDED/UNGROUNDED"
|
||||
}}
|
||||
"""
|
||||
18
final_pkg/company_nemo_guardrails/prompts/oos.py
Normal file
18
final_pkg/company_nemo_guardrails/prompts/oos.py
Normal file
@@ -0,0 +1,18 @@
|
||||
def build_oos_prompt(text):
|
||||
return f"""
|
||||
Verifique se o texto está fora do escopo de Telecom.
|
||||
|
||||
Texto:
|
||||
{text}
|
||||
|
||||
Fora de escopo:
|
||||
- política
|
||||
- religião
|
||||
- concorrentes
|
||||
|
||||
Responda JSON:
|
||||
{{
|
||||
"allowed": true/false,
|
||||
"label": "IN_SCOPE/OUT_OF_SCOPE"
|
||||
}}
|
||||
"""
|
||||
24
final_pkg/company_nemo_guardrails/prompts/revprec.py
Normal file
24
final_pkg/company_nemo_guardrails/prompts/revprec.py
Normal file
@@ -0,0 +1,24 @@
|
||||
def build_revprec_prompt(text, context):
|
||||
return f"""
|
||||
Você é um auditor de atendimento ao cliente.
|
||||
|
||||
Regra:
|
||||
- O agente NÃO pode afirmar que executou uma ação
|
||||
- SE essa ação NÃO foi validada previamente
|
||||
|
||||
Contexto:
|
||||
ajuste_validado = {context.get("ajuste_validado")}
|
||||
|
||||
Texto do agente:
|
||||
{text}
|
||||
|
||||
Pergunta:
|
||||
O agente cometeu verbalização prematura?
|
||||
|
||||
Responda JSON:
|
||||
{{
|
||||
"allowed": true/false,
|
||||
"label": "OK" ou "PREMATURA",
|
||||
"reason": "explicação curta"
|
||||
}}
|
||||
"""
|
||||
31
final_pkg/company_nemo_guardrails/prompts/rqlt.py
Normal file
31
final_pkg/company_nemo_guardrails/prompts/rqlt.py
Normal file
@@ -0,0 +1,31 @@
|
||||
def build_rqlt_prompt(pergunta, resposta):
|
||||
return f"""
|
||||
Você é um avaliador de qualidade de respostas de atendimento.
|
||||
|
||||
Pergunta:
|
||||
{pergunta}
|
||||
|
||||
Resposta:
|
||||
{resposta}
|
||||
|
||||
Critérios:
|
||||
|
||||
1. Clareza (0-3)
|
||||
2. Completude (0-3)
|
||||
3. Utilidade (0-4)
|
||||
|
||||
Regras IMPORTANTES:
|
||||
|
||||
- Se a resposta explica corretamente o motivo → score mínimo 6
|
||||
- Se a resposta é clara e útil → score entre 7 e 9
|
||||
- Se a resposta é vaga ("não sei", "verifique") → score < 5
|
||||
- NÃO penalizar respostas curtas se estiverem corretas
|
||||
|
||||
Agora avalie.
|
||||
|
||||
Responda APENAS JSON:
|
||||
{{
|
||||
"score": 0-10,
|
||||
"reason": "explicação curta"
|
||||
}}
|
||||
"""
|
||||
21
final_pkg/company_nemo_guardrails/prompts/supervisor.py
Normal file
21
final_pkg/company_nemo_guardrails/prompts/supervisor.py
Normal file
@@ -0,0 +1,21 @@
|
||||
def build_supervisor_prompt(payload):
|
||||
return f"""
|
||||
Você é um auditor de atendimento.
|
||||
|
||||
Verifique se o cancelamento foi correto.
|
||||
|
||||
Solicitado:
|
||||
{payload.get("servico_solicitado")}
|
||||
|
||||
Cancelado:
|
||||
{payload.get("servico_cancelado")}
|
||||
|
||||
Se forem diferentes → PROBLEMA
|
||||
|
||||
Responda JSON:
|
||||
{{
|
||||
"allowed": true/false,
|
||||
"label": "CONFORME/PROBLEMA",
|
||||
"reason": "explicação"
|
||||
}}
|
||||
"""
|
||||
17
final_pkg/company_nemo_guardrails/prompts/tox.py
Normal file
17
final_pkg/company_nemo_guardrails/prompts/tox.py
Normal file
@@ -0,0 +1,17 @@
|
||||
def build_tox_prompt(text):
|
||||
return f"""
|
||||
Classifique o texto abaixo:
|
||||
|
||||
Texto:
|
||||
{text}
|
||||
|
||||
Classifique como:
|
||||
- TOXICO: Apenas se encontrar palavras ofensivas ou condenatórias
|
||||
- NORMAL
|
||||
|
||||
Responda JSON:
|
||||
{{
|
||||
"allowed": true/false,
|
||||
"label": "TOXICO/NORMAL"
|
||||
}}
|
||||
"""
|
||||
22
final_pkg/company_nemo_guardrails/prompts/vctn.py
Normal file
22
final_pkg/company_nemo_guardrails/prompts/vctn.py
Normal file
@@ -0,0 +1,22 @@
|
||||
def build_vctn_prompt(text):
|
||||
return f"""
|
||||
Avalie o tom de voz do agente.
|
||||
|
||||
Regra:
|
||||
- Deve ser educado
|
||||
- Não pode ser rude ou agressivo
|
||||
|
||||
Texto:
|
||||
{text}
|
||||
|
||||
Classifique:
|
||||
- Adequado
|
||||
- Inadequado
|
||||
|
||||
Responda JSON:
|
||||
{{
|
||||
"allowed": true/false,
|
||||
"label": "Adequado/Inadequado",
|
||||
"reason": "explicação"
|
||||
}}
|
||||
"""
|
||||
Reference in New Issue
Block a user