Skip to main content
El SDK oficial de Python para Aurora Workflow.te permite ejecutar flujos de trabajo programáticamente desde tus aplicaciones Python utilizando el SDK oficial de Python.
El SDK de Python es compatible con Python 3.8+ con soporte para ejecución asíncrona, limitación automática de velocidad con retroceso exponencial y seguimiento de uso.

Instalación

Instala el SDK usando pip:

Inicio rápido

Aquí tienes un ejemplo sencillo para empezar:

Referencia de la API

SimStudioClient

Constructor

Parámetros:
  • api_key (str): Tu clave API de Sim
  • base_url (str, opcional): URL base para la API de Sim

Métodos

execute_workflow()
Ejecuta un flujo de trabajo con datos de entrada opcionales.
Parámetros:
  • workflow_id (str): El ID del flujo de trabajo a ejecutar
  • input_data (dict, opcional): Datos de entrada para pasar al flujo de trabajo
  • timeout (float, opcional): Tiempo de espera en segundos (predeterminado: 30.0)
  • stream (bool, opcional): Habilitar respuestas en streaming (predeterminado: False)
  • selected_outputs (list[str], opcional): Salidas de bloque para transmitir en formato blockName.attribute (p. ej., ["agent1.content"])
  • async_execution (bool, opcional): Ejecutar de forma asíncrona (predeterminado: False)
Devuelve: WorkflowExecutionResult | AsyncExecutionResult Cuando async_execution=True, devuelve inmediatamente un ID de tarea para sondeo. De lo contrario, espera a que se complete.
get_workflow_status()
Obtener el estado de un flujo de trabajo (estado de implementación, etc.).
Parámetros:
  • workflow_id (str): El ID del flujo de trabajo
Devuelve: WorkflowStatus
validate_workflow()
Validar que un flujo de trabajo está listo para su ejecución.
Parámetros:
  • workflow_id (str): El ID del flujo de trabajo
Devuelve: bool
get_job_status()
Obtener el estado de una ejecución de trabajo asíncrono.
Parámetros:
  • task_id (str): El ID de tarea devuelto de la ejecución asíncrona
Devuelve: Dict[str, Any] Campos de respuesta:
  • success (bool): Si la solicitud fue exitosa
  • taskId (str): El ID de la tarea
  • status (str): Uno de 'queued', 'processing', 'completed', 'failed', 'cancelled'
  • metadata (dict): Contiene startedAt, completedAt, y duration
  • output (any, opcional): La salida del flujo de trabajo (cuando se completa)
  • error (any, opcional): Detalles del error (cuando falla)
  • estimatedDuration (int, opcional): Duración estimada en milisegundos (cuando está procesando/en cola)
execute_with_retry()
Ejecutar un flujo de trabajo con reintento automático en errores de límite de velocidad usando retroceso exponencial.
Parámetros:
  • workflow_id (str): El ID del flujo de trabajo a ejecutar
  • input_data (dict, opcional): Datos de entrada para pasar al flujo de trabajo
  • timeout (float, opcional): Tiempo de espera en segundos
  • stream (bool, opcional): Habilitar respuestas en streaming
  • selected_outputs (list, opcional): Salidas de bloque para transmitir
  • async_execution (bool, opcional): Ejecutar de forma asíncrona
  • max_retries (int, opcional): Número máximo de reintentos (predeterminado: 3)
  • initial_delay (float, opcional): Retraso inicial en segundos (predeterminado: 1.0)
  • max_delay (float, opcional): Retraso máximo en segundos (predeterminado: 30.0)
  • backoff_multiplier (float, opcional): Multiplicador de retroceso (predeterminado: 2.0)
Devuelve: WorkflowExecutionResult | AsyncExecutionResult La lógica de reintento utiliza retroceso exponencial (1s → 2s → 4s → 8s…) con fluctuación de ±25% para evitar el efecto de manada. Si la API proporciona un encabezado retry-after, se utilizará en su lugar.
get_rate_limit_info()
Obtiene la información actual del límite de tasa de la última respuesta de la API.
Devuelve: RateLimitInfo | None
get_usage_limits()
Obtiene los límites de uso actuales y la información de cuota para tu cuenta.
Devuelve: UsageLimits Estructura de respuesta:
set_api_key()
Actualiza la clave API.
set_base_url()
Actualiza la URL base.
close()
Cierra la sesión HTTP subyacente.

Clases de datos

WorkflowExecutionResult

AsyncExecutionResult

WorkflowStatus

RateLimitInfo

UsageLimits

SimStudioError

Códigos de error comunes:
  • UNAUTHORIZED: Clave API inválida
  • TIMEOUT: Tiempo de espera agotado
  • RATE_LIMIT_EXCEEDED: Límite de tasa excedido
  • USAGE_LIMIT_EXCEEDED: Límite de uso excedido
  • EXECUTION_ERROR: Ejecución del flujo de trabajo fallida

Ejemplos

Ejecución básica de flujo de trabajo

1

Inicializar el cliente

Configura el SimStudioClient con tu clave API.
2

Validar el flujo de trabajo

Comprueba si el flujo de trabajo está desplegado y listo para su ejecución.
3

Ejecutar el flujo de trabajo

Ejecuta el flujo de trabajo con tus datos de entrada.
4

Manejar el resultado

Procesa el resultado de la ejecución y gestiona cualquier error.

Manejo de errores

Maneja diferentes tipos de errores que pueden ocurrir durante la ejecución del flujo de trabajo:

Uso del gestor de contexto

Usa el cliente como un gestor de contexto para manejar automáticamente la limpieza de recursos:

Ejecución de flujos de trabajo por lotes

Ejecuta múltiples flujos de trabajo de manera eficiente:

Ejecución asíncrona de flujos de trabajo

Ejecuta flujos de trabajo de forma asíncrona para tareas de larga duración:

Límite de tasa y reintentos

Maneja los límites de tasa automáticamente con retroceso exponencial:

Monitoreo de uso

Monitorea el uso de tu cuenta y sus límites:

Ejecución de flujo de trabajo en streaming

Ejecuta flujos de trabajo con respuestas en tiempo real:
La respuesta en streaming sigue el formato de Server-Sent Events (SSE):
Ejemplo de streaming con Flask:

Configuración del entorno

Configura el cliente usando variables de entorno:

Obtener tu clave API

1

Inicia sesión en Sim

Navega a [Sim](https://Aurora Workflow.ai) e inicia sesión en tu cuenta.
2

Abre tu flujo de trabajo

Navega al flujo de trabajo que quieres ejecutar programáticamente.
3

Despliega tu flujo de trabajo

Haz clic en “Deploy” para desplegar tu flujo de trabajo si aún no ha sido desplegado.
4

Crea o selecciona una clave API

Durante el proceso de despliegue, selecciona o crea una clave API.
5

Copia la clave API

Copia la clave API para usarla en tu aplicación Python.

Requisitos

  • Python 3.8+
  • requests >= 2.25.0

Licencia

Apache-2.0