Aller au contenu principal

Google Vertex AI

Mistral sur Google Cloud

Google Cloud Vertex AI intègre les modèles Mistral dans sa plateforme ML unifiée. L’accès se fait via le client dédié MistralGCP, avec une authentification native Google Cloud. Cette leçon couvre la configuration, le code Python et les fonctionnalités spécifiques à Vertex AI, dont le FIM (Fill-in-the-Middle) avec Codestral.

Modèles disponibles sur Vertex AI

En avril 2026, les modèles suivants sont accessibles via Vertex AI :

  • Mistral Medium 3 (25.05) — modèle polyvalent performant
  • Codestral 2 (25.08) — spécialisé code, supporte le FIM
  • Mistral OCR (25.05) — reconnaissance optique de caractères
  • Mistral Small (25.03) — léger et rapide

Prérequis

Avant de commencer, vous devez configurer votre environnement Google Cloud :

  1. Un projet Google Cloud avec l’API Vertex AI activée
  2. Les rôles IAM suivants sur votre compte de service :
    • Vertex AI User — pour appeler les modèles
    • Consumer Procurement Entitlement Manager — pour activer les modèles Mistral
  3. Le CLI gcloud installé et configuré
# Installer gcloud CLI
curl https://sdk.cloud.google.com | bash

# Se connecter
gcloud auth application-default login

# Configurer le projet
gcloud config set project mon-projet-gcp

Activer les modèles Mistral

Les modèles Mistral doivent être activés dans le Model Garden de Vertex AI avant utilisation. Accédez au portail Vertex AI, naviguez vers Model Garden, recherchez Mistral et activez les modèles souhaités.

Le client MistralGCP

Installation

pip install mistralai[gcp]

Initialisation

from mistralai.gcp import MistralGCP

# Authentification automatique via google.auth.default()
client = MistralGCP()

Le client utilise l’authentification par défaut de Google Cloud (ADC). Si vous avez exécuté gcloud auth application-default login, aucune configuration supplémentaire n’est nécessaire.

Spécifier une région

Par défaut, le client utilise la région europe-west4. Vous pouvez la modifier :

client = MistralGCP(region="us-central1")

Choisissez une région proche de vos utilisateurs pour minimiser la latence.

Chat Completions

from mistralai.gcp import MistralGCP

client = MistralGCP()

response = client.chat.complete(
    model="mistral-large-2407",
    messages=[
        {"role": "system", "content": "Vous êtes un expert en architecture cloud."},
        {"role": "user", "content": "Quels sont les avantages de Vertex AI par rapport à un déploiement self-hosted ?"}
    ],
    temperature=0.3,
    max_tokens=500
)

print(response.choices[0].message.content)

FIM avec Codestral

Le Fill-in-the-Middle (FIM) est une fonctionnalité unique de Codestral. Au lieu de générer du texte à la suite d’un prompt, le modèle remplit un espace entre un début (prompt) et une fin (suffix).

C’est particulièrement utile pour :

  • L’autocomplétion de code dans un IDE
  • La génération de corps de fonctions
  • Le remplissage de blocs manquants dans du code existant
from mistralai.gcp import MistralGCP

client = MistralGCP()

response = client.fim.complete(
    model="codestral-2405",
    prompt="def count_words(file_path: str) -> int:",
    suffix="return n_words"
)

print(response.choices[0].message.content)
# Génère le corps de la fonction entre le prompt et le suffix

Exemple concret : compléter une classe Python

response = client.fim.complete(
    model="codestral-2405",
    prompt="""class DatabaseConnection:
    def __init__(self, host: str, port: int, database: str):
        self.host = host
        self.port = port
        self.database = database
        self.connection = None

    def connect(self):""",
    suffix="""
    def disconnect(self):
        if self.connection:
            self.connection.close()
            self.connection = None
"""
)
print(response.choices[0].message.content)

Le modèle génère le corps de la méthode connect() en tenant compte de la structure existante de la classe.

Streaming sur Vertex AI

stream = client.chat.stream(
    model="mistral-large-2407",
    messages=[
        {"role": "user", "content": "Génère un script Terraform pour un cluster GKE."}
    ]
)

for chunk in stream:
    content = chunk.data.choices[0].delta.content
    if content:
        print(content, end="", flush=True)

Différences avec l’API Mistral directe

AspectAPI MistralVertex AI
ClientMistral()MistralGCP()
AuthClé APIGoogle ADC
RégionAutomatiqueConfigurable
FIMOuiOui (Codestral)
FacturationMistralGoogle Cloud

Points clés à retenir

  • Le client MistralGCP utilise l’authentification Google Cloud native (pas de clé API Mistral)
  • La région par défaut est europe-west4 — adaptez-la à votre cas d’usage
  • Codestral sur Vertex AI supporte le FIM pour l’autocomplétion de code
  • Activez les modèles dans le Model Garden avant de les utiliser
  • La facturation passe par votre compte Google Cloud, pas par Mistral