Premiers pas avec les déploiements gérés
Ce guide déploie l'application de démarrage Workflows en déploiement géré : vous poussez le projet généré sur GitHub, et Mistral Cloud construit et exécute le worker pour vous. Aucun serveur à gérer, et aucune clé API dans le dépôt — le worker s'authentifie avec un token de compte de service injecté par la plateforme.
Si vous débutez avec Workflows, lisez d'abord Votre premier workflow. Il explique les concepts sur lesquels ce guide s'appuie.
Prérequis
- Un compte Mistral avec le paiement à l’usage activé, ou un plan Entreprise. Le plan gratuit ne peut pas exécuter de déploiements gérés, et les plans payants Pro ou Team seuls ne suffisent pas : le paiement à l’usage doit être activé sur l’organisation. Voir Quotas.
- Python 3.12 ou version ultérieure, et uv installé (
uvxest livré avecuv). - Un compte GitHub, avec le droit de créer un dépôt dans une organisation ou sur votre compte personnel.
Étape 1 : générer l'application de démarrage
Exécutez le CLI Workflows pour générer un projet prêt à l'emploi :
uvx mistralai-workflows-cli@latest setupLa commande génère un projet Python avec le SDK Workflows, un workflow d'exemple hello-world, et un Dockerfile prêt pour les déploiements gérés. Pour une visite du code généré, voir Votre premier workflow — Générer votre projet.
Vérifiez que le worker s'exécute avant de déployer. Depuis le répertoire du projet :
make start-workerUne fois que le worker a enregistré ses workflows, arrêtez-le avec Ctrl+C. L'application de démarrage garde votre clé API hors du dépôt, mais vérifiez avant de pousser : votre clé locale doit rester dans un fichier ignoré, jamais dans un fichier versionné.
Étape 2 : pousser le projet sur GitHub
Les déploiements gérés construisent depuis un dépôt GitHub. Initialisez-en un depuis le répertoire du projet :
Seul GitHub public (github.com) est pris en charge pour le moment. GitLab et GitHub Enterprise seront pris en charge à l'avenir.
cd <votre-nom-de-depot>
git init
git add .
git commit -m "Scaffold workflows starter app"Créez un dépôt vide sur GitHub, puis poussez :
git remote add origin https://github.com/<votre-org>/<votre-nom-de-depot>.git
git branch -M main
git push -u origin mainLe dépôt peut être public ou privé : Mistral Cloud le clone via l'application GitHub de Mistral, pas via HTTPS public.
Étape 3 : installer l'application GitHub de Mistral
Les déploiements gérés clonent votre code via l'application GitHub de Mistral, et deux éléments doivent être en place avant de déployer :
- Installez l'application GitHub de Mistral sur les dépôts depuis lesquels vous souhaitez déployer. Accédez à github.com/apps/mistralai, cliquez sur Configurer, sélectionnez votre organisation et choisissez les dépôts.
- Connectez GitHub dans la console. Ouvrez Studio›les paramètres de l'application GitHub ↗ et ajoutez des identifiants.
Si votre dépôt apparaît déjà dans la boîte de dialogue de création de déploiement de l'étape suivante, l'application est installée et vous pouvez passer à la suite. Pour un dépôt d'organisation que vous n'administrez pas, demandez à un propriétaire de l'organisation d'installer l'application.
La liste des dépôts affichée lors de la création d'un déploiement contient uniquement les dépôts où l'application est installée et auxquels votre compte peut accéder. Si un dépôt n'apparaît pas dans la liste, c'est que l'application n'y est pas installée.
Étape 4 : créer le déploiement
Choisissez un nom de déploiement unique. Deux déploiements portant le même nom se volent leurs exécutions.
# /// script
# dependencies = [
# "mistralai>=3.0",
# ]
# ///
import os
from mistralai.client import Mistral
client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])
deployment = client.workflows.deployments.create_deployment(
name="<votre-nom-de-deploiement>",
spec={
"github_url": "https://github.com/<votre-org>/<votre-nom-de-depot>",
"revision": "main",
},
)
print(deployment.name)L'appel renvoie le déploiement créé. Mistral Cloud clone ensuite le dépôt, construit l'image et démarre le worker.
Étape 5 : vérifier et exécuter un workflow
Attendez que le déploiement passe à l'état Actif. Cela signifie que le worker a enregistré ses workflows, qui sont listés sur la page du déploiement. Si le build échoue, ouvrez les détails du déploiement pour consulter l'erreur — la plupart des échecs sont des problèmes de build Docker ou de démarrage que vous pouvez reproduire avec Tester l'image en local.
Exécutez le workflow hello-world comme n'importe quel workflow :
# /// script
# dependencies = [
# "mistralai>=3.0",
# ]
# ///
import os
from mistralai.client import Mistral
client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])
execution = client.workflows.execute_workflow(
workflow_identifier="hello-world",
input={"name": "World"},
)
print(execution.execution_id)Pour attendre la fin du workflow et lire son résultat, appelez client.workflows.execute_workflow_and_wait avec les mêmes arguments.
L'exécution arrive sur votre worker géré et renvoie le message de bienvenue de l'application de démarrage.
Étape 6 : publier une nouvelle version
Poussez vos modifications sur la branche déployée, puis redéployez. Mistral Cloud résout la branche sur son commit le plus récent, reconstruit l'image et redémarre le worker.
# /// script
# dependencies = [
# "mistralai>=3.0",
# ]
# ///
import os
from mistralai.client import Mistral
client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])
deployment = client.workflows.deployments.restart_deployment(
name="<votre-nom-de-deploiement>",
)
print(deployment.name)Étapes suivantes
- Pour donner au worker des identifiants pour des services externes, voir Secrets.
- Pour utiliser votre propre
Dockerfileou un worker dans un sous-répertoire, voir Comment ça marche. - En cas de problème, voir Résolution des problèmes.