mirror of
https://github.com/hoshikawa2/nemo_guardrails_configuration.git
synced 2026-07-09 08:54:20 +00:00
Create test_judge.py
This commit is contained in:
132
final_pkg/examples/test_judge.py
Normal file
132
final_pkg/examples/test_judge.py
Normal file
@@ -0,0 +1,132 @@
|
||||
import os
|
||||
|
||||
from company_nemo_guardrails.judges import (
|
||||
classificar_sentimento,
|
||||
avaliar_alucinacao,
|
||||
avaliar_qualidade_resposta,
|
||||
avaliar_tom_de_voz
|
||||
)
|
||||
|
||||
# ==========================================
|
||||
# CONFIGURAÇÃO
|
||||
# ==========================================
|
||||
|
||||
# MOCK = true -> usa mock local
|
||||
# MOCK = false -> usa OCI/OpenAI real
|
||||
|
||||
os.environ["USE_MOCK_LLM"] = "false"
|
||||
|
||||
# Se quiser usar o proxy real:
|
||||
#
|
||||
# os.environ["USE_MOCK_LLM"] = "false"
|
||||
# os.environ["OPENAI_BASE_URL"] = "http://localhost:8051/v1"
|
||||
# os.environ["OPENAI_API_KEY"] = "dummy"
|
||||
# os.environ["OPENAI_MODEL"] = "gpt-5"
|
||||
|
||||
|
||||
# ==========================================
|
||||
# HELPER
|
||||
# ==========================================
|
||||
|
||||
def print_result(title, result):
|
||||
|
||||
print("\n" + "=" * 80)
|
||||
print(f"🧪 TESTE: {title}")
|
||||
print("=" * 80)
|
||||
|
||||
print(f"CODE : {result.code}")
|
||||
print(f"ALLOWED : {result.allowed}")
|
||||
print(f"REASON : {result.reason}")
|
||||
print(f"MECHANISM : {result.mechanism}")
|
||||
print(f"SANITIZED_TEXT : {result.sanitized_text}")
|
||||
|
||||
print("\nDATA:")
|
||||
print(result.data)
|
||||
|
||||
print("=" * 80)
|
||||
|
||||
# ==========================================
|
||||
# TESTE CSI
|
||||
# ==========================================
|
||||
|
||||
def test_csi():
|
||||
|
||||
result = classificar_sentimento(
|
||||
"""
|
||||
Estou muito insatisfeito com o atendimento.
|
||||
Quero cancelar meu plano imediatamente.
|
||||
"""
|
||||
)
|
||||
|
||||
print_result("CSI - Sentimento Negativo", result)
|
||||
|
||||
|
||||
# ==========================================
|
||||
# TESTE ALUCINAÇÃO
|
||||
# ==========================================
|
||||
|
||||
def test_alucinacao():
|
||||
|
||||
result = avaliar_alucinacao(
|
||||
resposta="""
|
||||
O cliente pode cancelar em até 30 dias sem multa.
|
||||
""",
|
||||
|
||||
dados_reais="""
|
||||
O cliente pode cancelar em até 7 dias sem multa.
|
||||
"""
|
||||
)
|
||||
|
||||
print_result("ALUC - Alucinação Detectada", result)
|
||||
|
||||
|
||||
# ==========================================
|
||||
# TESTE QUALIDADE
|
||||
# ==========================================
|
||||
|
||||
def test_qualidade():
|
||||
|
||||
result = avaliar_qualidade_resposta(
|
||||
pergunta="""
|
||||
Como faço para cancelar meu plano?
|
||||
""",
|
||||
|
||||
resposta="""
|
||||
Para cancelar seu plano,
|
||||
acesse o portal do cliente,
|
||||
vá até a seção Financeiro
|
||||
e clique em Cancelamento.
|
||||
"""
|
||||
)
|
||||
|
||||
print_result("RQLT - Qualidade Resposta", result)
|
||||
|
||||
|
||||
# ==========================================
|
||||
# TESTE TOM DE VOZ
|
||||
# ==========================================
|
||||
|
||||
def test_tom_voz():
|
||||
|
||||
result = avaliar_tom_de_voz(
|
||||
"""
|
||||
Se vira. Não posso fazer nada por você.
|
||||
"""
|
||||
)
|
||||
|
||||
print_result("VCTN - Tom Inadequado", result)
|
||||
|
||||
|
||||
# ==========================================
|
||||
# MAIN
|
||||
# ==========================================
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
test_csi()
|
||||
|
||||
test_alucinacao()
|
||||
|
||||
test_qualidade()
|
||||
|
||||
test_tom_voz()
|
||||
Reference in New Issue
Block a user