Exécutions

Une exécution est un appel unique à un workflow. Chaque exécution possède un identifiant execution_id unique (généré automatiquement ou spécifié par l'appelant) et progresse à travers une série de statuts au cours de son exécution.

Déclencher une exécution

Déclencher une exécution

Vous pouvez démarrer une exécution de workflow depuis votre code client à l'aide du SDK Mistral. L'identifiant workflow_identifier doit correspondre au name que vous avez passé à @workflows.workflow.define(). Si vous ne fournissez pas d'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 retourné contient l'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 commence avec le statut RUNNING, peut passer par des états transitoires et se termine par l'un des états finaux.

États finaux (l'exécution est terminée et ne changera plus de statut) :

  • COMPLETED : terminée avec succès
  • FAILED : terminée avec une erreur non gérée
  • CANCELED : arrêtée proprement
  • TERMINATED : arrêtée de force
  • TIMED_OUT : délai d'exécution dépassé
  • CONTINUED_AS_NEW : historique réinitialisé via continue-as-new (une nouvelle exécution reprend sous un nouvel execution_id)

État transitoire :

  • RETRYING_AFTER_ERROR : échouée et planifiée pour une nouvelle tentative ; l'exécution reste dans cet état jusqu'à ce que la nouvelle tentative aboutisse à un état final
Lire l'état d'une exécution

Lire l'état d'une exécution

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

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

Pour consulter le journal complet des événements, utilisez l'endpoint d'historique (GET /v1/workflows/executions/{execution_id}/history). Pour un suivi en temps réel pendant l'exécution du workflow, voir streaming.

Exécutions et runs

Exécutions et runs

Une exécution est un appel à un workflow avec 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 compte exactement un run. Mais si le workflow est réinitialisé à un point antérieur dans son historique, un nouveau run commence sous le même execution_id.

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