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é.
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
# ❌ 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
| Fonctionnalité | Description |
|---|---|
| Télémétrie | Collecte 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-of | Lorsque use_executor_credentials=True, appelle l’API Mistral en tant qu’utilisateur déclencheur plutôt qu’en tant que worker |
| Authentification automatique | Sélectionne l’identifiant approprié pour votre déploiement — clé API, fichier de token de compte de service ou clé explicite |
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é
Chaque requête HTTP sortante reçoit un en-tête JSON x-metadata contenant :
| Champ | Description |
|---|---|
execution_id | ID d’exécution du workflow |
run_id | ID du run du workflow |
task_id | ID de l’activité |
attempt | Numé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
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
get_mistral_client() gère automatiquement l’authentification. Il sélectionne les identifiants dans l’ordre suivant :
- Argument explicite
api_key— si vous passezget_mistral_client(api_key="..."), cette clé est utilisée directement. - Fichier de token de compte de service — si
MISTRAL_SA_TOKEN_PATHest défini, l'authentification par compte de service est utilisée à la place deMISTRAL_API_KEY. - 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
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.contentPour en savoir plus sur le modèle Depends() et le cycle de vie du fournisseur, consultez Injection de dépendances.