Migration API DeepSeek : Passage à V4.1 Flash
DeepSeek-V4 Team · 6 juin 2026 · 7 min read

Si votre application envoie encore deepseek-v4-flash, une requête réussie ne signifie plus qu'elle utilise le modèle V4 Flash d'origine. La documentation actuelle de DeepSeek achemine ce nom de compatibilité vers V4.1 Flash. Les nouvelles intégrations doivent demander deepseek-flash explicitement.
Ce guide met à jour le parcours de migration officiel de l'API au 23 septembre 2026. Il s'adresse aux développeurs maintenant un script, un serveur ou une intégration d'agent. Déplacer une conversation entre des produits de chat web est une tâche distincte ; copier l'historique du chat ne modifie pas la configuration de l'API dans votre application.
Vérifiez la signification actuelle de chaque identifiant
Le journal des modifications officiel et le tableau des modèles établissent la correspondance actuelle :
| Identifiant dans votre configuration | Statut documenté actuel | Action suggérée |
|---|---|---|
deepseek-flash |
V4.1 Flash | Utiliser pour les nouvelles intégrations Flash |
deepseek-v4-flash |
Alias de compatibilité pour V4.1 Flash | Remplacer dans les exemples et configurations maintenus |
deepseek-v4-flash-vision-exp |
Alias de compatibilité pour V4.1 Flash | Déplacer les requêtes d'image vers deepseek-flash |
deepseek-v4-pro |
V4 Pro reste disponible | Évaluer avant de modifier un flux de travail établi |
deepseek-chat / deepseek-reasoner |
Officiellement programmé pour l'arrêt le 24 juillet 2026 | Migrer plutôt que de dépendre d'une acceptation continue |
Les anciens noms de chat et de reasoner ne doivent pas être considérés comme la méthode à long terme pour choisir un comportement sans réflexion ou avec réflexion. Rendez le choix du modèle et le paramètre de réflexion explicites dans le code maintenu. Inspectez également les tâches planifiées et les workers en arrière-plan : modifier l'application interactive ne met pas à jour un nom de modèle copié dans un autre service.
Dissociez le fournisseur du modèle
Notez le point de terminaison, le nom du modèle demandé, le format de la requête et les champs de réponse que votre application consomme. Une passerelle tierce peut utiliser des alias ou des prix différents. Les correspondances ci-dessus décrivent le service officiel de DeepSeek, et non tous les services proposant un modèle DeepSeek.
Par exemple, une variable d'environnement nommée MODEL=deepseek-v4-flash ne vous indique qu'une partie de l'histoire. Vous avez également besoin de l'URL de base et du code qui traduit les messages de l'application en requêtes API. Un adaptateur peut supprimer des champs ou imposer une limite de sortie plus petite même si le modèle sous-jacent en prend en charge davantage.
Recherchez les fichiers de configuration, les variables de déploiement et les scripts d'évaluation de prompt avant de modifier. Conservez le fournisseur inchangé pour la première vérification de migration. Changer les fournisseurs, les protocoles, les prompts et les modèles en même temps rend un résultat échoué beaucoup plus difficile à diagnostiquer.
Effectuez une requête simple avec un mode explicite
L'exemple Python suivant appelle le point de terminaison officiel Chat Completions en utilisant un client compatible OpenAI. Installez le package openai dans votre environnement de test et fournissez DEEPSEEK_API_KEY via votre mécanisme de gestion des secrets habituel. Conservez la clé hors des fichiers source, du code navigateur et des journaux de requêtes.
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["DEEPSEEK_API_KEY"],
base_url="https://api.deepseek.com",
)
response = client.chat.completions.create(
model="deepseek-flash",
messages=[{
"role": "user",
"content": "Extract the order ID from: Order A-104 is ready. Return only the ID.",
}],
max_tokens=128,
extra_body={"thinking": {"type": "disabled"}},
)
print(response.choices[0].message.content)
print(response.usage)La tâche a une réponse attendue évidente, A-104. Elle vérifie l'authentification, le routage, l'analyse de la réponse et le rapport d'utilisation sans un prompt complexe. Il s'agit d'un exemple basé sur la documentation, et non d'un test API en direct enregistré. Une réponse ou une erreur inattendue est une raison d'inspecter la requête avant d'ajouter le contexte complet de votre application.
Une limite de 128 tokens est appropriée pour cette petite tâche sans réflexion. Ce n'est pas un budget recommandé pour le raisonnement ou le travail d'agent. Lors de la restauration de votre charge de travail réelle, choisissez un budget qui permet la sortie demandée et vérifiez la raison de fin de la complétion pour la troncation.
Les paramètres de réflexion peuvent modifier le comportement sans erreur
La documentation du mode réflexion indique que la réflexion est activée par défaut avec un effort élevé. Dans Chat Completions, thinking est fourni via extra_body lors de l'utilisation du client Python. Les niveaux d'effort pris en charge sont low, high et max.
Pour un essai en mode réflexion, remplacez les arguments pertinents par :
reasoning_effort="high",
extra_body={"thinking": {"type": "enabled"}},Ne supposez pas qu'une réponse HTTP réussie signifie que chaque paramètre d'échantillonnage a été appliqué. La documentation indique que temperature n'a aucun effet en mode réflexion, même s'il peut être accepté pour la compatibilité. Si une suite de tests plus ancienne comptait sur la température pour contrôler la variation, documentez cette différence avant de comparer les résultats.
L'historique des appels d'outils nécessite une attention particulière. Pour les requêtes Chat Completions portant des tools, le guide exige que le reasoning_content précédent soit renvoyé, y compris les tours sans appel d'outil. Un adaptateur qui ne conserve que le texte final de l'assistant peut donc casser un tour ultérieur. Inspectez la gestion complète des messages dans un test multi-tours, plutôt que de valider uniquement la première réponse.
Construisez le jeu de tests de régression autour des cas d'échec
Commencez par des exemples dont vous connaissez déjà les résultats attendus. Incluez une extraction avec un champ manquant, une réponse qui doit correspondre à un schéma, une entrée longue avec la réponse près de la fin, et un flux de travail d'outil qui continue après un résultat d'outil. Ajoutez un cas d'image uniquement si votre application utilise des images.
Pour chaque tâche, vérifiez si la sortie est utilisable avant de mesurer la latence. Une réponse ressemblant à du JSON nécessite toujours une analyse et une validation de schéma. Un changement de code nécessite toujours les tests pertinents. Une valeur citée doit toujours exister dans le matériel fourni. Enregistrez les catégories d'échec afin de pouvoir distinguer une régression de format de sortie d'une erreur de fournisseur.
Mesurez le travail terminé, y compris les nouvelles tentatives. Enregistrez l'entrée, la sortie et l'utilisation du cache séparément. Une réduction de prix ne garantit pas une tâche moins chère si le nouveau comportement produit des réponses plus longues ou amène votre application à réessayer. Utilisez des prompts identiques et des paramètres explicites pour la comparaison ; laissez l'optimisation des prompts pour une passe ultérieure.
La disponibilité de Pro et le retour arrière nécessitent des décisions distinctes
L'annonce du 10 septembre décrivait un plan pour acheminer les requêtes Pro vers Flash. Le journal des modifications actuel indique que le service Pro continue après le 14 septembre avec sa méthode de facturation inchangée. Ne migrez pas une intégration Pro fonctionnelle uniquement parce que vous avez lu l'ancien plan de retrait.
Pour Flash, revenir à la configuration deepseek-v4-flash ne restaure pas le modèle retiré : cet identifiant est un alias pour le nouveau modèle. Un plan de retour arrière doit nommer un service réellement disponible et tenir compte de ses capacités. Pro n'est pas un fallback direct pour une requête d'image ; le tableau des modèles officiels actuel ne répertorie pas la prise en charge de la vision pour Pro.
Déployez le changement sur une petite partie du trafic d'abord, avec une condition claire pour l'arrêt. Conservez les résultats d'évaluation et les paramètres du fournisseur avec le record de version. Une fois que la nouvelle route passe les vérifications de votre application, mettez à jour les exemples copiés et la documentation interne pour que l'ancien identifiant ne revienne pas lors de la prochaine intégration.