96 lines
2.6 KiB
Python
96 lines
2.6 KiB
Python
import json
|
|
import os
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
import requests
|
|
|
|
|
|
BASE_URL = os.getenv("CLIENTFLOW_BASE_URL", "http://127.0.0.1:8000")
|
|
|
|
|
|
CASES = [
|
|
{
|
|
"conversation_id": "case-send-invoice",
|
|
"message": "Recebemos o equipamento. Agradecemos o envio da factura.",
|
|
},
|
|
{
|
|
"conversation_id": "case-payment",
|
|
"message": "Segue comprovativo de pagamento em anexo.",
|
|
},
|
|
{
|
|
"conversation_id": "case-info",
|
|
"message": "Bom dia, podem enviar mais informações sobre carregadores monofásicos?",
|
|
},
|
|
{
|
|
"conversation_id": "case-shipment",
|
|
"message": "Boa tarde, gostava de saber se já enviaram o carregador.",
|
|
},
|
|
]
|
|
|
|
|
|
def main() -> int:
|
|
out_dir = Path("resultados-action-core")
|
|
out_dir.mkdir(exist_ok=True)
|
|
|
|
rows = []
|
|
|
|
for case in CASES:
|
|
payload = {
|
|
"last_customer_message": case["message"],
|
|
"previous_context": "Teste Action Core.",
|
|
"source": "manual_test",
|
|
"conversation_id": case["conversation_id"],
|
|
"contact_id": "test-contact",
|
|
}
|
|
|
|
response = requests.post(
|
|
f"{BASE_URL}/analyze",
|
|
headers={"Content-Type": "application/json"},
|
|
json=payload,
|
|
timeout=90,
|
|
)
|
|
|
|
response.raise_for_status()
|
|
data = response.json()
|
|
|
|
action_decision = data.get("action_decision") or {}
|
|
action_result = data.get("action_result") or {}
|
|
|
|
row = {
|
|
"conversation_id": case["conversation_id"],
|
|
"action_code": action_decision.get("action_code"),
|
|
"route": action_result.get("route"),
|
|
"action": action_result.get("action"),
|
|
"safe_to_post": action_result.get("safe_to_post"),
|
|
"task_id": data.get("task_id"),
|
|
"needs_review": data.get("needs_review"),
|
|
}
|
|
|
|
rows.append(row)
|
|
|
|
print("=" * 80)
|
|
print(case["conversation_id"])
|
|
print("action_code:", row["action_code"])
|
|
print("route:", row["route"])
|
|
print("action:", row["action"])
|
|
print("safe_to_post:", row["safe_to_post"])
|
|
print("task_id:", row["task_id"])
|
|
|
|
(out_dir / f"{case['conversation_id']}.json").write_text(
|
|
json.dumps(data, ensure_ascii=False, indent=2),
|
|
encoding="utf-8",
|
|
)
|
|
|
|
(out_dir / "summary.json").write_text(
|
|
json.dumps(rows, ensure_ascii=False, indent=2),
|
|
encoding="utf-8",
|
|
)
|
|
|
|
print("\nResumo:", out_dir / "summary.json")
|
|
return 0
|
|
|
|
|
|
if __name__ == "__main__":
|
|
raise SystemExit(main())
|