mirror of
https://github.com/hoshikawa2/agent_platform_oci.git
synced 2026-09-07 10:13:46 +00:00
bugfixes: transaction parameter collector, generic formatting messages, guardrails, prompts. Testing contas
This commit is contained in:
@@ -59,3 +59,54 @@ async def test_runtime_extracts_order_id_from_current_message():
|
||||
)
|
||||
assert result["order_id"] == "123"
|
||||
assert result["contract_key"] == "3000131180"
|
||||
|
||||
class _ContestExtractLLM:
|
||||
async def ainvoke(self, messages, **kwargs):
|
||||
prompt = messages[0]["content"]
|
||||
if "Campo: subject" in prompt:
|
||||
return {"content": '{"subject": "TIM CTRL Redes Sociais 8.0"}'}
|
||||
if "Campo: valor" in prompt:
|
||||
return {"content": '{"valor": null}'}
|
||||
return {"content": '{}'}
|
||||
|
||||
|
||||
class _ContestExtractRouter:
|
||||
def parameter_extract_rules(self, tool_name):
|
||||
return {
|
||||
"subject": {
|
||||
"from": "message",
|
||||
"strategy": "llm",
|
||||
"type": "string",
|
||||
"description": "Extraia o item contestado.",
|
||||
},
|
||||
"valor": {
|
||||
"from": "message",
|
||||
"strategy": "llm",
|
||||
"type": "number",
|
||||
"description": "Extraia o valor explicitamente informado.",
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
class _ContestExtractRuntime(AgentRuntimeMixin):
|
||||
def __init__(self):
|
||||
self.tool_router = _ContestExtractRouter()
|
||||
self.llm = _ContestExtractLLM()
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_new_transaction_current_message_overrides_stale_subject_from_context():
|
||||
runtime = _ContestExtractRuntime()
|
||||
result = await runtime._extract_mcp_parameters(
|
||||
"contestar_cobranca",
|
||||
{"subject": "TIM Fashion Mensal", "valor": 10.0},
|
||||
{
|
||||
"user_text": "nao contratei TIM CTRL Redes Sociais 8.0",
|
||||
"sanitized_input": "nao contratei TIM CTRL Redes Sociais 8.0",
|
||||
},
|
||||
overwrite_from_message=True,
|
||||
)
|
||||
assert result["subject"] == "TIM CTRL Redes Sociais 8.0"
|
||||
# null extraction does not destroy a pre-existing value; transaction start
|
||||
# sanitization is about explicit current-message evidence, not blind clearing.
|
||||
assert result["valor"] == 10.0
|
||||
|
||||
Reference in New Issue
Block a user