Client Mistral

get_mistral_client() renvoie un client SDK Mistral standard, préconfiguré avec des hooks tenant compte des workflows. Il gère automatiquement l’authentification, la télémétrie et les métadonnées d’observabilité.

Avertissement

Utilisez toujours get_mistral_client() dans les activités plutôt que de construire directement Mistral(api_key=...). Un client standard ne collecte pas la télémétrie propre au workflow, n’injecte pas les métadonnées d’observabilité et ne prend pas en charge les identifiants on-behalf-of.

Démarrage rapide

Démarrage rapide

# ❌ Don't — misses telemetry, observability metadata, and proper auth
from mistralai import Mistral

client = Mistral(api_key="your_api_key")
# ✅ Do — automatically configured for workflows
from mistralai.workflows.client import get_mistral_client

client = get_mistral_client()
Ce qu’il ajoute

Ce qu’il ajoute

FonctionnalitéDescription
TélémétrieCollecte la télémétrie de l’API Mistral pour vos traces de workflow
Métadonnées d’observabilitéAjoute des métadonnées de workflow avec les ID d’exécution et d’activité pour le traçage du workflow
Identifiants on-behalf-ofLorsque use_executor_credentials=True, appelle l’API Mistral en tant qu’utilisateur déclencheur plutôt qu’en tant que worker
Authentification automatiqueSélectionne l’identifiant approprié pour votre déploiement — clé API, fichier de token de compte de service ou clé explicite
Télémétrie

Télémétrie

Lorsque le fournisseur OpenTelemetry du workflow est activé, get_mistral_client() garantit que les appels à l’API Mistral apparaissent automatiquement dans vos traces de workflow.

Si la télémétrie est désactivée dans la configuration du worker, le branchement est ignoré sans message. Consultez Observabilité pour plus de détails sur la télémétrie.

Métadonnées d’observabilité

Métadonnées d’observabilité

Chaque requête HTTP sortante reçoit un en-tête JSON x-metadata contenant :

ChampDescription
execution_idID d’exécution du workflow
run_idID du run du workflow
task_idID de l’activité
attemptNuméro de la tentative de réessai

Ces métadonnées lient chaque appel API à l’exécution exacte du workflow et à la tentative d’activité correspondante.

Identifiants on-behalf-of

Identifiants on-behalf-of

Dans les workflows on-behalf-of, vous pouvez appeler l’API Mistral en tant qu’utilisateur déclencheur plutôt qu’en tant que worker.

Authentification automatique

Authentification automatique

get_mistral_client() gère automatiquement l’authentification. Il sélectionne les identifiants dans l’ordre suivant :

  1. Argument explicite api_key — si vous passez get_mistral_client(api_key="..."), cette clé est utilisée directement.
  2. Fichier de token de compte de service — si MISTRAL_SA_TOKEN_PATH est défini, l'authentification par compte de service est utilisée à la place de MISTRAL_API_KEY.
  3. Variable d’environnement MISTRAL_API_KEY — utilisée comme clé API statique lorsqu’aucun des éléments ci-dessus n’est défini.

Dans la plupart des cas, vous pouvez appeler get_mistral_client() sans argument — le token approprié est résolu automatiquement à partir de votre environnement.

Utilisation avec l’injection de dépendances

Utilisation avec l’injection de dépendances

get_mistral_client fonctionne comme un fournisseur Depends(). Le worker l’initialise une fois au démarrage et réutilise le même client pour toutes les exécutions d’activité :

import mistralai.workflows as workflows
from mistralai.workflows.client import get_mistral_client
from mistralai.workflows import Depends

@workflows.activity()
async def summarize(text: str, client = Depends(get_mistral_client)) -> str:
    response = await client.chat.complete_async(
        model="mistral-large-latest",
        messages=[{"role": "user", "content": f"Summarize:\n\n{text}"}],
    )
    return response.choices[0].message.content

Pour en savoir plus sur le modèle Depends() et le cycle de vie du fournisseur, consultez Injection de dépendances.