Votre premier workflow

Ce guide vous explique comment créer un workflow qui exécute une seule activité.

Prérequis

Prérequis

Pour suivre ce guide de démarrage, il vous faut :

  1. Un compte Mistral.
  2. Python 3.12 ou version ultérieure installé sur votre machine.
  3. uv installé dans votre environnement (uvx est inclus avec uv).

Initialisez votre projet

Initialisez votre projet

Lancez la commande uvx suivante dans votre terminal :

uvx mistralai-workflows-cli setup

Cela crée la structure d’un projet Python prêt à l’emploi, avec le SDK Workflows déjà configuré, un exemple minimal de workflow et des commandes utilitaires pour lancer votre worker et démarrer des exécutions.

La commande vous invite à générer une clé API Mistral dans la Console Mistral. Suivez les instructions pour générer la clé API, puis fournissez-la à la commande quand demandé. Les clés API ne sont accessibles qu’une seule fois.

Ouvrez le répertoire du projet dans votre IDE préféré. Le nom par défaut est my-workflow, mais il correspond à ce que vous avez renseigné lors de l’étape de configuration.

Étape 1 : Définissez votre workflow et votre worker

Étape 1 : Définissez votre workflow et votre worker

Accédez à src/workflows/hello.py pour voir un exemple de workflow. Ce fichier contient le code suivant :

"""Exemple minimal de workflow — modifiez ce fichier ou créez-en de nouveaux."""

from pydantic import BaseModel

import mistralai.workflows as workflows


class HelloInput(BaseModel):
    name: str = "World"


@workflows.activity()
async def greet(name: str) -> str:
    """Une activité simple qui renvoie un message de bienvenue."""
    return f"Hello, {name}! Welcome to Mistral Workflows."


@workflows.workflow.define(
    name="hello-world",
    workflow_display_name="Hello World",
    workflow_description="A minimal hello-world workflow.",
)
class HelloWorkflow:
    @workflows.workflow.entrypoint
    async def run(self, input: HelloInput) -> str:
        return await greet(input.name)

Ce code définit un workflow Mistral qui reçoit un name en entrée et renvoie un message de bienvenue.

Ouvrez src/discover.py. Concentrez-vous sur l’extrait suivant :

await workflows.run_worker(discovered)

Ce code découvre automatiquement tous les workflows dans le dossier src/workflows, puis les surveille grâce à la fonction run_worker de Mistral Workflows.

Étape 2 : Démarrez votre worker avec le workflow hello-world

Étape 2 : Démarrez votre worker avec le workflow hello-world

Depuis la racine de votre projet, lancez la commande suivante dans votre terminal pour démarrer le worker :

make start-worker

Cette commande démarre le worker, se connecte à l’API Mistral et enregistre votre workflow pour qu’il puisse attendre des tâches. Pour plus d’informations sur cette commande, consultez le Makefile. Pour voir le workflow en cours d’exécution, vous devez déclencher l’exécution via l’une des méthodes décrites à l’étape suivante.

Étape 3 : Déclenchez l’exécution de votre workflow

Étape 3 : Déclenchez l’exécution de votre workflow

Vous pouvez déclencher votre workflow via la Console Mistral, le SDK Python Mistral ou l’API Mistral. Le projet my-workflow inclut également une commande Makefile pour déclencher facilement l’exécution de workflows.

  1. Ouvrez la Console Mistral et rendez-vous dans l’espace de travail où vous avez créé votre clé API.
  2. Cliquez sur Workflows dans la barre latérale.
  3. Sélectionnez hello-world.
  4. Lancez le workflow avec le bouton Start Workflow et l’entrée {"name": <your_name>}.
  5. Retrouvez votre exécution dans l’onglet Executions.
  6. Vérifiez la sortie du workflow :
{
  "result": "Hello, <your_name>! Welcome to Mistral Workflows."
}

Une fois vos tests terminés, appuyez sur Ctrl+C pour arrêter le worker.

Prochaines étapes

Prochaines étapes

Vous avez créé et exécuté votre premier workflow. Pour explorer des modèles complets de bout en bout, consultez les Exemples Cookbook. Pour approfondir les concepts de workflow, lisez Concepts fondamentaux – Workflows. Pour les schémas d’évolution et l’exécution simultanée de plusieurs workers, consultez Concepts fondamentaux – Monter en charge avec plusieurs workers.