Exécutions

Une exécution est une invocation unique d'un workflow. Chaque exécution possède un execution_id unique (généré automatiquement ou spécifié par l'appelant) et passe par une succession de statuts pendant son déroulement.

Déclencher une exécution

Déclencher une exécution

Vous pouvez démarrer une exécution de workflow depuis le code client avec le SDK Mistral. Le workflow_identifier doit correspondre au name que vous avez transmis à @workflows.workflow.define(). Si vous ne fournissez pas de execution_id, la plateforme en génère un automatiquement.

from mistralai.client import Mistral

client = Mistral(api_key="your_key")

execution = client.workflows.execute_workflow(
    workflow_identifier="my_workflow",
    input={"data": "hello"},
    execution_id="my-run-2024-01-15",  # optional custom ID
)
print(execution.model_dump_json(indent=2))

L'objet execution renvoyé contient le execution_id et le status initial (généralement RUNNING). Vous pouvez également déclencher des exécutions depuis Studio, depuis Vibe Work ou via une planification.

Statuts d'exécution

Statuts d'exécution

Une exécution démarre avec le statut RUNNING, peut passer par des états transitoires et se termine dans l'un des états terminaux.

États terminaux (l'exécution est terminée et ne changera plus d'état) :

  • COMPLETED : terminée avec succès
  • FAILED : terminée en raison d'une erreur non gérée
  • CANCELED : arrêtée proprement
  • TERMINATED : arrêtée de force
  • TIMED_OUT : délai execution_timeout dépassé
  • CONTINUED_AS_NEW : historique réinitialisé via continue-as-new (un nouveau run prend le relais sous un nouveau execution_id)

État transitoire :

  • RETRYING_AFTER_ERROR : a échoué et une nouvelle tentative est planifiée ; l'exécution reste dans cet état jusqu'à ce que cette tentative aboutisse à un statut terminal
Consulter l'état d'une exécution

Consulter l'état d'une exécution

Pour examiner une exécution après l'avoir déclenchée, récupérez-la par son ID :

execution = client.workflows.executions.get_workflow_execution(execution_id="my-run-2024-01-15")
print(execution.status, execution.result)

Pour consulter le log complet des événements, utilisez l'endpoint d'historique (GET /v1/workflows/executions/{execution_id}/history). Pour suivre la progression en temps réel pendant l'exécution du workflow, consultez Streaming.

Exécutions et runs

Exécutions et runs

Une exécution est une invocation d'un workflow dotée d'un execution_id stable qui persiste pendant toute sa durée de vie. Un run est une tentative unique au sein de cette exécution. Dans la plupart des cas, une exécution ne compte qu'un seul run. Mais si un workflow est réinitialisé à un point antérieur de son historique, un nouveau run démarre sous le même execution_id.

Un seul run peut être actif à la fois. Les points de terminaison API (/cancel, /terminate, /signals, /queries, /updates) ciblent toujours le dernier run d'une exécution.