Retour a tous les articles
Guides

Migration de l’API DeepSeek vers deepseek-v4-flash / deepseek-v4-pro : choisir entre les formats compatibles OpenAI et Anthropic

14 juin 2026 · 12 min de lecture · Claude / GPT / Gemini / DeepSeek

Feuille de route de migration pour développeurs sur fond beige, avec à gauche des cartes grises des anciens modèles deepseek-chat/deepseek-reasoner, une flèche vers deux cartes terracotta à droite deepseek-v4-flash et deepseek-v4-pro, puis une bifurcation en bas vers Ope

2026-06-14 En regardant l’API DeepSeek, la première chose à modifier n’est pas le prompt, mais le nom du modèle. La page tarifaire chinoise de DeepSeek est très directe : deepseek-chat et deepseek-reasoner seront dépréciés le 2026/07/24 à 23:59, heure de Pékin ; pendant la période de compatibilité, le premier correspond au mode sans raisonnement de deepseek-v4-flash, et le second au mode avec raisonnement de deepseek-v4-flash (page des tarifs DeepSeek). Si votre code de production utilise encore les anciens noms, n’attendez pas la dernière semaine.

Graphique de chronologie sur fond beige clair, avec à gauche le point de contrôle actuel 2026-06-14, à droite le point de dépréciation 2026-07-24 23:59 heure de Pékin, reliés par une flèche couleur terre cuite ; les anciens noms de modèles s’estompent en gris, les nouveaux noms de modèles sont mis en évidence en gris anthracite

Choisir d’abord le format d’interface : regardez votre écosystème, pas vos convictions

DeepSeek propose désormais deux points d’entrée compatibles : le format OpenAI https://api.deepseek.com, et le format Anthropic https://api.deepseek.com/anthropic (premier appel à l’API DeepSeek).

Ma recommandation est simple :

Votre situation actuelle Quel choix Pourquoi
Vous utilisez déjà le SDK OpenAI, LangChain, LlamaIndex, ou les Chat Completions du Vercel AI SDK Format OpenAI Le minimum de changements : base_url et model
Vous utilisez déjà le SDK Anthropic, Claude Code, ou la structure Messages API Format Anthropic Les habitudes autour de system, messages.create et max_tokens restent inchangées
Vous avez écrit votre propre wrapper HTTP Format OpenAI en priorité Plus de ressources de débogage, champs plus génériques
Vous voulez réutiliser la chaîne d’outils Claude Format Anthropic DeepSeek prend explicitement en charge l’écosystème API Anthropic (API Anthropic DeepSeek)

Un piège : au format Anthropic, DeepSeek effectue un mappage des noms de modèles. La documentation officielle indique que les noms commençant par claude-opus sont mappés vers deepseek-v4-pro, tandis que ceux commençant par claude-haiku ou claude-sonnet sont mappés vers deepseek-v4-flash. Je recommande tout de même d’écrire explicitement deepseek-v4-pro ou deepseek-v4-flash, et de ne pas confier le comportement en production à un mappage implicite.

Remplacement des noms de modèles : ne dépendez plus des alias de compatibilité

Le tableau de migration ne comporte que deux lignes :

Ancien nom de modèle Compatibilité actuelle avec Écriture recommandée
deepseek-chat Mode sans raisonnement de deepseek-v4-flash deepseek-v4-flash + désactiver thinking
deepseek-reasoner Mode avec raisonnement de deepseek-v4-flash deepseek-v4-flash ou deepseek-v4-pro + activer thinking

Si vous utilisiez auparavant deepseek-reasoner pour la revue de code, du SQL complexe ou du raisonnement sur de longs textes, vous pouvez en profiter pour évaluer deepseek-v4-pro. Pour du support client, du résumé ou de la classification, deepseek-v4-flash ressemble davantage au choix par défaut.

Schéma de migration de la famille de modèles, avec à gauche deux anciennes cartes de modèles deepseek-chat et deepseek-reasoner, à droite deux nouvelles cartes deepseek-v4-flash et deepseek-v4-pro ; différents types de lignes indiquent les modes sans raisonnement et avec raisonnement, la couleur terre cuite met en avant la recommandation

Format OpenAI : version à modification minimale

Le format OpenAI de DeepSeek passe toujours par Chat Completions. L’interface officielle d’OpenAI elle-même utilise aussi le style liste de messages de POST /v1/chat/completions (référence de l’API OpenAI), donc la plupart des SDK ne nécessitent que deux changements.

# pip install openai
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["DEEPSEEK_API_KEY"],
    base_url="https://api.deepseek.com",
)

resp = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[
        {"role": "system", "content": "你是一个严谨的代码审查助手。"},
        {"role": "user", "content": "检查这段 Python 代码的潜在 bug。"},
    ],
    extra_body={"thinking": {"type": "disabled"}},
    stream=False,
)

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

Pour activer le mode raisonnement, remplacez le dernier bloc par :

reasoning_effort="high",
extra_body={"thinking": {"type": "enabled"}}

Le mode raisonnement de DeepSeek est activé par défaut ; dans le SDK OpenAI, thinking doit être placé dans extra_body ; l’intensité du raisonnement prend en charge high et max (mode raisonnement DeepSeek). Si votre chaîne d’appels d’outils renvoie les messages assistant, retenez une règle stricte : pour les tours en mode raisonnement impliquant un tool call, les requêtes ultérieures doivent renvoyer intégralement reasoning_content, sinon vous obtiendrez une erreur 400.

Format Anthropic : garder une porte de sortie pour la chaîne d’outils Claude

Si vous avez déjà écrit vos prompts système, max_tokens et client.messages.create() autour de l’API Anthropic Messages, changez simplement la Base URL :

# pip install anthropic
import os
import anthropic

client = anthropic.Anthropic(
    api_key=os.environ["DEEPSEEK_API_KEY"],
    base_url="https://api.deepseek.com/anthropic",
)

msg = client.messages.create(
    model="deepseek-v4-pro",
    max_tokens=1000,
    system="你是一个资深后端工程师。",
    messages=[{"role": "user", "content": "给我一个 Redis 缓存穿透的修复方案。"}],
    thinking={"type": "enabled"},
    output_config={"effort": "high"},
)

print(msg.content)

L’API officielle Anthropic Messages utilise elle aussi cette structure messages.create, avec des champs clés comme model, max_tokens, system et messages (API Anthropic Messages). La vraie raison de choisir le format Anthropic n’est donc pas qu’il serait « plus avancé », mais qu’il nécessite moins de changements dans le code de l’écosystème Claude.

Estimation des coûts : commencez par calculer sans cache hit

La page tarifaire chinoise de DeepSeek facture au million de tokens : pour deepseek-v4-flash, 0,02 yuan en entrée avec cache hit, 1 yuan en entrée sans cache hit, et 2 yuans en sortie ; pour deepseek-v4-pro, 0,025 yuan en entrée avec cache hit, 3 yuans en entrée sans cache hit, et 6 yuans en sortie (page des tarifs DeepSeek).

Un calcul approximatif : 200 M de tokens d’entrée et 50 M de tokens de sortie par mois, en supposant d’abord que tout est sans cache hit.

Modèle Coût d’entrée Coût de sortie Total
deepseek-v4-flash 200 yuans 100 yuans 300 yuans
deepseek-v4-pro 600 yuans 300 yuans 900 yuans

La facture réelle dépendra du taux de cache hit. Pour du RAG, des agents ou de longs prompts système, placez les préfixes stables au début : une fois le taux de cache hit amélioré, le coût d’entrée baissera nettement. Ne basez pas votre budget du premier jour de migration sur les chiffres de cache les plus optimistes.

Utilisateurs d’interfaces relais : pour simplifier, vous pouvez passer par onehop

Si votre objectif n’est pas seulement de vous connecter à DeepSeek, mais de basculer entre Claude, GPT et Gemini dans le même code, onehop est une voie qui fait gagner du temps : compatible OpenAI/Anthropic, Base URL à remplacer par https://api.onehop.ai/v1, 10 $ offerts aux nouveaux comptes, prix inférieurs aux tarifs officiels, sans carte bancaire requise.

Exemple avec le SDK OpenAI :

from openai import OpenAI
import os

client = OpenAI(
    api_key=os.environ["ONEHOP_API_KEY"],
    base_url="https://api.onehop.ai/v1",
)

resp = client.chat.completions.create(
    model="claude-sonnet-4-5",
    messages=[{"role": "user", "content": "用三点解释这个 API 迁移计划。"}],
)
print(resp.choices[0].message.content)

Le SDK Anthropic peut lui aussi pointer vers la même Base URL :

import anthropic, os

client = anthropic.Anthropic(
    api_key=os.environ["ONEHOP_API_KEY"],
    base_url="https://api.onehop.ai/v1",
)

Pour une migration en production, je planifierais ainsi : aujourd’hui, remplacer les anciens noms de modèles ; cette semaine, faire passer les smoke tests sur les deux chemins OpenAI/Anthropic ; avant la fin du mois, compléter la logique de renvoi pour le mode raisonnement et les tool calls ; avant la mi-juillet, supprimer tous les deepseek-chat et deepseek-reasoner. Si vous voulez maintenir moins de configurations fournisseurs, vous pouvez essayer directement : appeler Claude et d’autres modèles sur onehop, ou commencer par récupérer le crédit pour valider la chaîne : 10 $ de crédit d’essai offerts à l’inscription.