bugfix: aofertas
This commit is contained in:
@@ -99,3 +99,12 @@ def test_upsell_continua_bloqueando_apos_mudanca():
|
||||
assert r.allowed is False
|
||||
assert r.code == "AOFERTA"
|
||||
assert r.data.get("label") == "OFERTA_PROATIVA_INDEVIDA"
|
||||
|
||||
|
||||
def test_prompt_aoferta_confirmacao_nao_exige_repetir_justificativa():
|
||||
prompt = build_aoferta_prompt(
|
||||
"Você confirma cancelar o TIM Music?",
|
||||
"\nHistorico da conversa:\n[user] Quero cancelar o TIM Music\n",
|
||||
)
|
||||
assert "A confirmacao NAO precisa repetir a justificativa" in prompt
|
||||
assert "o pedido transacional anterior basta" in prompt
|
||||
|
||||
@@ -359,3 +359,37 @@ def test_finalizacao_informacional_infer_tipo_de_billing_analysis_json():
|
||||
assert _infer_informational_vas_types(
|
||||
["YouTube Premium Mensal", "Aluguel de Filme 3"], json.dumps(payload, ensure_ascii=False)
|
||||
) == {"estrategico", "avulso"}
|
||||
|
||||
|
||||
def test_output_guardrail_context_inclui_pedido_atual_para_aoferta():
|
||||
from app.workflows.agent_graph import AgentWorkflow
|
||||
|
||||
ctx = AgentWorkflow._output_guardrail_context(
|
||||
{
|
||||
"context": {},
|
||||
"history": [
|
||||
{"role": "assistant", "content": "O TIM Music custa R$ 12,90."},
|
||||
],
|
||||
"user_text": "Quero cancelar o TIM Music",
|
||||
"mcp_results": [],
|
||||
}
|
||||
)
|
||||
assert ctx["conversation_history"][-1] == {
|
||||
"role": "user",
|
||||
"content": "Quero cancelar o TIM Music",
|
||||
}
|
||||
assert ctx["history_texts"][-1] == "Quero cancelar o TIM Music"
|
||||
|
||||
|
||||
def test_output_guardrail_context_nao_duplica_user_text_ja_no_historico():
|
||||
from app.workflows.agent_graph import AgentWorkflow
|
||||
|
||||
ctx = AgentWorkflow._output_guardrail_context(
|
||||
{
|
||||
"context": {},
|
||||
"history": [{"role": "user", "content": "Quero cancelar o TIM Music"}],
|
||||
"user_text": "Quero cancelar o TIM Music",
|
||||
"mcp_results": [],
|
||||
}
|
||||
)
|
||||
assert len(ctx["conversation_history"]) == 1
|
||||
|
||||
13
tests/migration/test_guardrail_context_dict_history.py
Normal file
13
tests/migration/test_guardrail_context_dict_history.py
Normal file
@@ -0,0 +1,13 @@
|
||||
from agent_framework.guardrails.calibrated.prompts._context import format_context_block
|
||||
|
||||
|
||||
def test_format_context_block_suporta_history_em_dict_do_contas():
|
||||
context = {
|
||||
"conversation_history": [
|
||||
{"role": "assistant", "content": "O TIM Music custa R$ 12,90."},
|
||||
{"role": "user", "content": "Quero cancelar o TIM Music"},
|
||||
]
|
||||
}
|
||||
block = format_context_block(context)
|
||||
assert "[assistant] O TIM Music custa R$ 12,90." in block
|
||||
assert "[user] Quero cancelar o TIM Music" in block
|
||||
Reference in New Issue
Block a user