En bref
- Démarrez avec l'API de Mistral en moins de 5 minutes en utilisant le SDK Python
- Choisissez entre
mistral-small(économique) etmistral-large-2(raisonnement avancé) en fonction de votre cas d'usage Source : Fiches des Modèles - Utilisez l'appel de fonctions pour l'intégration d'outils (par exemple, bases de données, recherche web)
- Affinez les modèles via l'API pour des tâches spécifiques à un domaine comme les applications juridiques ou médicales Source : Aperçu des Fonctionnalités
- Surveillez l'utilisation et les coûts avec les outils intégrés de Mistral Source : Page Tarification
1. Premiers Pas avec l'API de Mistral
La Plateforme de Mistral AI offre une API conviviale pour les développeurs, permettant d'intégrer des grands modèles de langage dans les applications d'entreprise. Voici comment commencer :
Générer une Clé API
- Inscrivez-vous sur le portail de documentation officielle de Mistral
- Accédez à la section Clés API dans le tableau de bord
- Créez une nouvelle clé et copiez-la immédiatement (les clés ne sont affichées qu'une seule fois)
Définissez la clé en tant que variable d'environnement :
export MISTRAL_API_KEY="votre-clé-api-ici"
Pour Windows (PowerShell) :
$env:MISTRAL_API_KEY="votre-clé-api-ici"
Important : Le niveau gratuit inclut des limites de débit (par exemple, 10 requêtes/minute). Pour les charges de travail en production, passez à un plan payant avec des limites plus élevées Source : Limites de Débit.
2. Utilisation du SDK Python
Mistral propose un SDK Python officiel pour une intégration fluide. Installez-le avec :
pip install mistralai --upgrade
Exemple de Chat Basique
from mistralai.client import MistralClient
from mistralai.models.chat_completion import ChatMessage
client = MistralClient()
response = client.chat(
model="mistral-small",
messages=[ChatMessage(role="user", content="Expliquez Mistral AI en 2026.")]
)
print(response.choices[0].message.content)
Sortie attendue :
Mistral AI est un laboratoire d'IA européen de premier plan, axé sur le développement de modèles de langage avancés...
Réponses en Streaming
Pour les applications en temps réel, utilisez le streaming :
for chunk in client.chat_stream(
model="mistral-small",
messages=[ChatMessage(role="user", content="Écrivez un haïku sur l'IA.")]
):
print(chunk.choices[0].delta.content, end="")
Sortie attendue :
Réseaux neuronaux grandissent,
Esprits silencieux en circuits,
L'avenir commence à briller.
3. Guide de Sélection des Modèles
Mistral propose quatre modèles principaux, chacun optimisé pour différents cas d'usage Source : Fiches des Modèles :
| Modèle | Cas d'Usage | Fenêtre de Contexte | Tarification Entrée/Sortie (par 1M tokens) Source : Page Tarification |
|---|---|---|---|
mistral-tiny | Tâches simples, tests | 8K tokens | Gratuit (limité) |
mistral-small | Production sensible aux coûts | 32K tokens | 0,50 $ / 1,50 $ |
mistral-medium | Performance équilibrée | 64K tokens | 2,00 $ / 6,00 $ |
mistral-large-2 | Raisonnement complexe, utilisation d'outils | 128K tokens | 8,00 $ / 24,00 $ |
Recommandations :
- Commencez avec
mistral-smallpour la plupart des tâches (par exemple, résumé, classification) - Utilisez
mistral-large-2pour :- Le raisonnement en plusieurs étapes
- L'appel de fonctions
- Les tâches à long contexte (>32K tokens) Source : Fiches des Modèles
4. Appel de Fonctions pour l'Intégration d'Outils
Mistral prend en charge l'appel de fonctions, permettant aux modèles d'interagir avec des outils externes comme des bases de données ou des API Source : Aperçu des Fonctionnalités.
Exemple : Intégration de la Recherche Web
tools = [
{
"type": "function",
"function": {
"name": "web_search",
"description": "Rechercher sur le web des informations récentes",
"parameters": {
"type": "object",
"properties": {
"query": {"type": "string"},
"max_results": {"type": "integer", "default": 3}
},
"required": ["query"]
}
}
}
]
response = client.chat(
model="mistral-large-2",
messages=[ChatMessage(role="user", content="Quelles sont les dernières actualités concernant Mistral AI en 2026 ?")],
tools=tools
)
# Extraire l'appel de l'outil
tool_call = response.choices[0].message.tool_calls[0]
print(f"Outil : {tool_call.function.name}, Requête : {tool_call.function.arguments}")
Sortie attendue :
Outil : web_search, Requête : {"query": "Mistral AI dernières actualités 2026", "max_results": 3}
Implémentation de l'Outil
def web_search(query, max_results=3):
# Remplacer par une véritable API de recherche (par exemple, SerpAPI, Brave Search)
return [
{"title": "Mistral AI étend ses offres pour les entreprises", "url": "https://example.com/news1"},
{"title": "Nouveaux benchmarks pour les modèles multilingues", "url": "https://example.com/news2"}
]
# Exécuter l'outil et poursuivre la conversation
search_results = web_search(**eval(tool_call.function.arguments))
response = client.chat(
model="mistral-large-2",
messages=[
ChatMessage(role="user", content="Quelles sont les dernières actualités concernant Mistral AI en 2026 ?"),
response.choices[0].message,
ChatMessage(role="tool", content=str(search_results), tool_call_id=tool_call.id)
]
)
print(response.choices[0].message.content)
5. Affinage pour des Tâches Spécifiques à un Domaine
L'affinage vous permet d'adapter les modèles de Mistral à votre secteur (par exemple, juridique, médical ou support client) Source : Aperçu des Fonctionnalités.
Préparer Votre Jeu de Données
Créez un fichier JSONL (dataset.jsonl) avec des exemples d'entraînement :
{"messages": [{"role": "user", "content": "Quelle est votre politique de retour ?"}, {"role": "assistant", "content": "Notre politique de retour permet les retours sous 30 jours avec le reçu original."}]}
{"messages": [{"role": "user", "content": "Comment puis-je suivre ma commande ?"}, {"role": "assistant", "content": "Vous pouvez suivre votre commande en utilisant le lien dans votre email de confirmation."}]}
Téléchargement et Entraînement
from mistralai.fine_tuning import MistralFineTuningClient
ft_client = MistralFineTuningClient()
job = ft_client.create_job(
model="mistral-small", # Modèle de base
training_files=["dataset.jsonl"],
hyperparameters={
"training_steps": 1000,
"learning_rate": 1.0e-5
}
)
print(f"[Affinage](https://hyperion-consulting.io/services/production-ai-systems) de modèle créé : {job.id}")
Utiliser Votre Modèle Affiné
response = client.chat(
model="ft:mistral-small:your-job-id", # Remplacez par votre identifiant de tâche
messages=[ChatMessage(role="user", content="Quelle est votre politique de retour ?")]
)
print(response.choices[0].message.content)
6. API Agents pour les Workflows Multi-Étapes
L'API Agents de Mistral (introduite fin 2025) permet des workflows persistants et multi-étapes avec mémoire Source : Référence API.
Créer un Agent
from mistralai.agents import MistralAgentClient
agent_client = MistralAgentClient()
agent = agent_client.create_agent(
name="Agent de Support Client",
model="mistral-large-2",
instructions="Vous êtes un agent de support client utile pour une boutique en ligne. Utilisez les outils pour répondre aux questions sur les commandes, les retours et les produits.",
tools=tools # Réutilisation des outils de la Section 4
)
print(f"Agent créé : {agent.id}")
Exécuter l'Agent
response = agent_client.run(
agent_id=agent.id,
messages=[{"role": "user", "content": "J'ai commandé une chemise bleue mais j'ai reçu une rouge. Que faire ?"}]
)
print(response.messages[-1]["content"])
Fonctionnalités clés :
- Mémoire persistante entre les conversations
- Utilisation d'outils en plusieurs étapes
- Instructions personnalisables Source : Référence API
7. Stratégies d'Optimisation des Coûts
-
Sélection du Modèle :
- Utilisez
mistral-smallpour des tâches simples (par exemple, classification, résumé) - Réservez
mistral-large-2pour le raisonnement complexe ou l'utilisation d'outils Source : Fiches des Modèles
- Utilisez
-
Mise en Cache :
- Mettez en cache les requêtes fréquentes en utilisant Redis ou un système similaire :
import redis r = redis.Redis() def cached_chat(model, messages): cache_key = f"mistral:{model}:{hash(str(messages))}" if r.exists(cache_key): return r.get(cache_key) response = client.chat(model=model, messages=messages) r.setex(cache_key, 3600, response.choices[0].message.content) # Cache pour 1 heure return response.choices[0].message.content -
Traitement par Lots :
- Pour les embeddings, regroupez les requêtes pour réduire les appels API :
embeddings = client.embeddings( model="mistral-embed", input=["texte1", "texte2", "texte3"] # Regroupez jusqu'à 100 textes ) -
Surveillance de l'Utilisation :
- Suivez vos dépenses via la page de tarification de Mistral
- Configurez des alertes pour les activités inhabituelles Source : Page Tarification
8. Comparaison avec les Alternatives
| Fonctionnalité | Mistral AI | OpenAI (GPT-4o) | Anthropic (Claude 3.5) |
|---|---|---|---|
| Coût (Entrée) | 8,00 $/1M tokens Source : Page Tarification | 10,00 $/1M tokens Source : Tarification OpenAI | 15,00 $/1M tokens |
| Hébergement UE | ✅ (France) Source : Protection des Données | ❌ | ❌ |
| Appel de Fonctions | ✅ Source : Aperçu des Fonctionnalités | ✅ | ✅ |
| Affinage | ✅ Source : Aperçu des Fonctionnalités | ✅ | ❌ |
| Sur Site | ✅ (Entreprise) Source : Mistral vs. Alternatives | ❌ | ❌ |
| Points Forts | Rentable, conformité RGPD UE Source : Mistral vs. Alternatives | Écosystème large | Axé sur la sécurité |
Quand choisir Mistral :
- Vous avez besoin de modèles rentables avec de bonnes performances Source : Page Tarification
- Vous exigez une résidence des données dans l'UE pour la conformité Source : Protection des Données
- Vous souhaitez affiner les modèles pour des tâches spécifiques à un domaine Source : Aperçu des Fonctionnalités
9. Erreurs Courantes et Solutions
| Erreur | Cause | Solution |
|---|---|---|
AuthenticationError | Clé API invalide | Régénérez votre clé API dans le tableau de bord |
RateLimitError | Trop de requêtes | Passez à un plan supérieur ou implémentez un backoff exponentiel Source : Limites de Débit |
InvalidRequestError | Entrée mal formée (par exemple, JSON invalide) | Validez votre entrée avant envoi |
ModelOverloadedError | Forte demande | Réessayez après un délai ou passez à un modèle moins sollicité |
ContextWindowExceededError | Entrée dépassant la fenêtre de contexte du modèle | Tronquez ou résumez votre entrée Source : Fiches des Modèles |
10. Prochaines Étapes pour les Équipes d'Entreprise
- Construire un Pipeline RAG :
- Combinez les embeddings de Mistral (
mistral-embed) avec une base de données vectorielle comme Weaviate ou Pinecone pour
- Combinez les embeddings de Mistral (
