from motor_decision_sdk import Motor
motor = Motor(
"https://api.coupons.piixan.ai",
client_id="cred_…",
client_secret=os.environ["MOTOR_SECRET"],
respaldo=lambda ref, ctx: 0, # tu regla cuando el motor no responde
timeout_s=0.3,
)
# 1. Publicar eventos (en lotes de 1.000, idempotente)
resumen = motor.publicar_eventos(eventos) # {"aceptados", "duplicados", "rechazados"}
# 2. Decidir en línea
d = motor.decidir("c_9f1e…", canal="push", campana_id="camp-2026-11")
aplicar(d.accion)
motor.confirmar_ejecucion(d.decision_id, ejecutada=True)
# 3. Una campaña entera
motor.definir_campana("camp-2026-11", canal="email", max_envios=5000)
job = motor.pedir_lote("camp-2026-11", todos=True)
motor.esperar_lote(job)
for decision in motor.resultado_lote(job):
...