Guides de migration

Ces guides détaillent les modifications de code nécessaires pour passer d'un autre fournisseur à l'API Mistral. L'API Chat Completions de Mistral suit la même structure de requête qu'OpenAI, de sorte que la plupart des migrations impliquent de changer l'import du client, l'URL de base et le nom du modèle. Choisissez votre plateforme source ci-dessous pour voir les étapes exactes et un exemple de code fonctionnel.

L'API Mistral suit la même structure Chat Completions que l'API OpenAI. Pour la plupart des applications, la migration nécessite de modifier trois éléments : l'import du client, l'appel d'initialisation et le nom du modèle.

Migrer depuis OpenAI

Migrer depuis OpenAI

Mettre à jour le client

Avant (OpenAI) :

from openai import OpenAI

client = OpenAI(api_key="sk-...")
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hello"}],
)

Après (Mistral) :

from mistralai import Mistral

client = Mistral(api_key="your_mistral_api_key")
response = client.chat.complete(
    model="mistral-large-latest",
    messages=[{"role": "user", "content": "Hello"}],
)

Principales différences

OpenAIMistral
Client Pythonopenai.OpenAImistralai.Mistral
Méthode Chatclient.chat.completions.createclient.chat.complete
Méthode Streamingclient.chat.completions.create(stream=True)client.chat.stream
URL de basehttps://api.openai.com/v1https://api.mistral.ai/v1

Correspondance des noms de modèles

Modèle OpenAIÉquivalent Mistral
gpt-4omistral-large-latest
gpt-4o-minimistral-small-latest
text-embedding-3-smallmistral-embed

Utiliser l'URL de base compatible OpenAI

Si votre application utilise un client compatible OpenAI (LangChain, LlamaIndex ou toute autre bibliothèque tierce), pointez-la vers l'API Mistral en modifiant uniquement l'URL de base et le nom du modèle. Aucun changement de bibliothèque requis.

from openai import OpenAI

client = OpenAI(
    api_key="your_mistral_api_key",
    base_url="https://api.mistral.ai/v1",
)

response = client.chat.completions.create(
    model="mistral-large-latest",
    messages=[{"role": "user", "content": "Hello"}],
)
Migrer depuis Llama auto-hébergé

Migrer depuis Llama auto-hébergé

Tokenizer

Les modèles Mistral utilisent un tokenizer différent de celui de Llama. Si vous calculez manuellement le nombre de tokens ou gérez la tokenisation brute, mettez à jour vos outils.

Installez le tokenizer officiel Mistral :

pip install mistral-common

Utilisez-le pour tokeniser du texte :

from mistral_common.tokens.tokenizers.mistral import MistralTokenizer

tokenizer = MistralTokenizer.v3()
result = tokenizer.encode_chat_completion(
    messages=[{"role": "user", "content": "Hello, world!"}]
)
print(result.tokens)

Les modèles Mistral sur Hugging Face sont également compatibles avec la bibliothèque transformers. Utilisez apply_chat_template pour gérer automatiquement le formatage.

Format de prompt

Avertissement

Les modèles Mistral n'utilisent pas le format de prompt [INST] / [/INST] de Llama 2. Passer des chaînes brutes au format Llama 2 aux modèles Mistral produit une sortie dégradée. Mettez à jour vos templates de prompt avant de tester.

Utilisez apply_chat_template pour formater correctement les prompts :

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-Instruct-v0.3")
messages = [{"role": "user", "content": "Hello"}]
formatted = tokenizer.apply_chat_template(messages, tokenize=False)

Sélection du modèle

Modèle Llama auto-hébergéÉquivalent Mistral
Llama 3 8B InstructMistral 7B Instruct (open-weight)
Llama 3 70B InstructMixtral 8x22B Instruct (open-weight)
N'importe quel modèle auto-hébergéAPI : mistral-large-latest (géré)

Tous les modèles open-weight Mistral sont disponibles sur Hugging Face sous licence Mistral.

Migrer vers le SDK Python v2

Migrer vers le SDK Python v2

La version 2.0.0 du SDK Python introduit un nombre limité de changements incompatibles. Toutes les autres API (chat, streaming, embeddings, agents, function calling, batch) restent inchangées.

Mettre à jour le package

Le SDK V1 correspond à mistralai<2 et la V2 à mistralai>=2. Exécutez :

pip install "mistralai>=2"

Mettre à jour le chemin d'import

Avant (V1) :

from mistralai import Mistral

Après (V2) :

from mistralai.client import Mistral

Azure AI (si applicable)

Avant (V1) :

# pip install mistralai-azure>=1.0.0
from mistralai_azure import MistralAzure

client = MistralAzure(
    azure_endpoint=os.environ["AZUREAI_ENDPOINT"],
    azure_api_key=os.environ["AZUREAI_API_KEY"],
)

Après (V2) :

# pip install mistralai>=2.0.0
from mistralai.azure.client import MistralAzure

client = MistralAzure(
    server_url=os.environ["AZUREAI_ENDPOINT"],
    api_key=os.environ["AZUREAI_API_KEY"],
)

Google Cloud / Vertex AI (si applicable)

Avant (V1) :

# pip install mistralai[gcp]
from mistralai_gcp import MistralGoogleCloud

client = MistralGoogleCloud(
    region=os.environ["GOOGLE_CLOUD_REGION"],
    project_id=os.environ["GOOGLE_CLOUD_PROJECT_ID"],
)

Après (V2) :

# pip install mistralai>=2.0.0  (aucun package séparé nécessaire)
from mistralai.gcp.client import MistralGCP

# L'authentification est gérée automatiquement via google.auth.default()
# La région par défaut est "europe-west4" ; remplacez si nécessaire :
# client = MistralGCP(region="us-central1", project_id="my-project")
client = MistralGCP()

Résumé

DomaineV1V2
Packagemistralai<2mistralai>=2
Import principalfrom mistralai import Mistralfrom mistralai.client import Mistral
Import Azurefrom mistralai_azure import MistralAzurefrom mistralai.azure.client import MistralAzure
Constructeur Azureazure_endpoint=, azure_api_key=server_url=, api_key=
Import GCPfrom mistralai_gcp import MistralGoogleCloudfrom mistralai.gcp.client import MistralGCP
Authentification GCPVariables d'environnement GOOGLE_CLOUD_REGION + GOOGLE_CLOUD_PROJECT_IDautomatique via google.auth.default()
Toutes les autres APIinchangées
Questions fréquentes

Questions fréquentes