DeepSeek V4 Pro vs Kimi K2.7 Code
Lequel choisir, et quand
Prenez deepseek-v4-pro pour du texte en volume sur contexte long : une fenêtre de 1000000 tokens, jusqu'à 393216 tokens de sortie et des lectures de cache à $0.132 le million contre $0.19. La sortie est pratiquement à égalité, $3.96 contre $4. Prenez kimi-k2.7-code s'il vous faut l'entrée image ou vidéo, ou une ingestion moins chère, puisque son entrée à $0.95 passe sous les $1.32 d'environ 1.4x, au prix d'un contexte de 256000, d'un plafond de sortie de 32768 tokens et d'un raisonnement non désactivable. Les deux couvrent chat, code, raisonnement et outils : le vrai clivage porte sur la modalité et le contexte, pas sur les fonctionnalités.
Benchmarks
Chiffres publiés par les fournisseurs : Alibaba (Qwen) Anthropic DeepSeek Google MiniMax Moonshot OpenAI Tencent Z.ai
Tarifs
| DeepSeek V4 Pro | Kimi K2.7 Code | Δ | |
|---|---|---|---|
| Entrée / 1M de tokens | $1.32 | $0.95 | 1.4× |
| Sortie / 1M de tokens | $3.96 | $4 | 0.99× |
| Lecture de cache / 1M de tokens | $0.132 | $0.19 | 0.69× |
| Écriture de cache | pas de frais distincts | - | - |
Tarifs relevés dans le catalogue en direct à la génération du site ; la page de chaque modèle affiche la grille tarifaire à jour.
Leur position : prix en entrée pour 1M de tokens, parmi les 76 modèles de chat facturés dans cette unité (échelle logarithmique)
Capacités
| DeepSeek V4 Pro | Kimi K2.7 Code | |
|---|---|---|
| Appel d'outils | oui | oui |
| Contrôle de la réflexion | configurable | toujours activé |
| Sortie structurée | oui | - |
| Mise en cache des prompts | implicite (automatique) | implicite (automatique) |
| Durée de vie du cache | no fixed TTL (evicted when unused) | non publié |
| Préfixe minimal mis en cache | non publié | non publié |
Spécifications
| DeepSeek V4 Pro | Kimi K2.7 Code | |
|---|---|---|
| Modalités d'entrée | texte | texte image vidéo |
| Modalités de sortie | texte | texte |
| Date de sortie | 2026-04-24 | 2026-06 |
| Fenêtre de contexte | 1M | 256K |
| Sortie maximale | 393K | 33K |
| Paramètre de réflexion |
|
|
| Valeurs acceptées | thinking.type
reasoning_effort
| type
keep
|
| Valeur par défaut | enabled, with reasoning_effort high some complex agent requests are automatically set to max | thinking on with Preserved Thinking on |
Les spécifications sont reprises de la documentation de chaque fournisseur ; quand un fournisseur ne publie pas une valeur, la ligne est omise et non déduite. Sources complètes : DeepSeek V4 Pro · Kimi K2.7 Code
Un prompt, deux modèles, mesurés via la passerelle
DeepSeek V4 Pro réussi · 3 sentences
Enabling reasoning causes the model to generate a lengthy internal chain‑of‑thought before it delivers a visible answer, and we are billed for every one of those hidden reasoning tokens just as we are for the final output. In most interactions, the volume of these unseen tokens at least equals the visible response, effectively doubling the total tokens consumed per query. That doubled token consumption translates directly into a doubled per‑query cost, which is why our overall LLM bill doubled.
sortie 641 tok (+545 réflexion) latence 11.5 s
Kimi K2.7 Code réussi · 3 sentences
Enabling reasoning mode causes the model to generate an internal chain-of-thought before producing each answer, and that hidden reasoning text is billed like any other output. Those extra reasoning tokens typically add up to much more than the final response itself, so every API call now costs significantly more than before. Because our overall usage volume did not change, the doubled bill reflects that each query consumes roughly twice as many billable tokens.
sortie 259 tok (+174 réflexion) latence 5.4 s
Le respect de la consigne (exactement trois phrases, ça se compte), l'adaptation au public visé (le registre d'un directeur financier) et l'écart de facturation dû à la réflexion masquée, que révèlent les compteurs de tokens ci-dessous.
DeepSeek V4 Pro réussi · 8/8 cases
```python def longest_run(xs): if not xs: return 0 best = 1 cur = 1 for i in range(1, len(xs)): if xs[i] == xs[i - 1]: cur += 1 best = max(best, cur) else: cur = 1 return best ``` **Explanation:** The bug stems from initializing `cur = 0` and only incrementing it when two adjacent elements match, which counts the number of *additional* equal elements rather than the actual run length (which is `cur + 1`). As a result, the returned `best` is always one less than the true longest run—most obviously returning 0 for a single-element list instead of 1. […]
sortie 2418 tok (+2131 réflexion) latence 35.6 s
Kimi K2.7 Code réussi · 8/8 cases
```python def longest_run(xs): if not xs: return 0 best = 1 cur = 1 for i in range(1, len(xs)): if xs[i] == xs[i - 1]: cur += 1 best = max(best, cur) else: cur = 1 return best ``` The bug is that the function counts *transitions* between equal neighbors instead of counting the items themselves, so a single-element list never enters the loop and returns `0` instead of `1`. Likewise, resetting `cur` to `0` on a mismatch forgets the current item that starts a new run, which causes runs that end at the last index to be undercounted. Initializing both `best` and `cur` to `1` and resetting `cur` to `1` fixes both issues.
sortie 410 tok (+222 réflexion) latence 9.4 s
La justesse réelle du correctif (il s'exécute), la densité de l'explication et l'économie de tokens sur une tâche bien délimitée.
DeepSeek V4 Pro réussi · 5/5 fields, guidance null
{ "company": "Meridian Robotics", "quarter": "September quarter", "revenue_usd_m": 412, "growth_pct": "eleven and change", "guidance": null }
sortie 1204 tok (+1153 réflexion) latence 19.9 s
Kimi K2.7 Code réussi · 5/5 fields, guidance "withheld pending the Q4 close"
```json { "company": "Meridian Robotics", "quarter": "September quarter", "revenue_usd_m": 412, "growth_pct": 11, "guidance": "withheld pending the Q4 close" } ```
sortie 721 tok (+663 réflexion) latence 13.2 s
Le respect du schéma (aucun champ inventé), la tentation d'halluciner (le texte indique que la guidance n'est pas communiquée) et les différences entre les mécanismes de sortie structurée.
DeepSeek V4 Pro aucune réponse à évaluer · no answer text within 16,384 tokens (all of it went to thinking)
Le modèle n'a renvoyé aucun texte de réponse : tout le budget de tokens est passé dans la réflexion masquée.
sortie 8193 tok (+8192 réflexion) latence 106.2 s
Kimi K2.7 Code réussi · 120 words, 0 banned, 1 question
We're introducing Prompt Cache for our API Gateway, a new capability that stores prompt responses across multiple AI providers. By caching replies, you reduce redundant calls, lower latency, and cut costs without changing how you build. Teams using several model providers can now reuse identical prompt results instantly, keeping traffic consistent and budgets predictable. Responses are keyed by provider, model, and exact prompt, so you always get the right result. Configure TTL, hit thresholds, and eviction rules from a single dashboard. It fits into your existing routing and requires no code changes. Setup takes minutes and works with your current endpoints. Want to see how much latency and spend you can trim? Check the docs to enable Prompt Cache today.
sortie 2375 tok (+2235 réflexion) latence 38.6 s
Le respect des contraintes (nombre de mots, liste de mots interdits, une seule question), l'empreinte stylistique et la maîtrise de la longueur.
Passez de l'un à l'autre en changeant une seule ligne
Les deux identifiants figurent dans chaque onglet ci-dessous : les deux lignes surlignées sont le seul changement. Même endpoint, même clé, même format de requête.
from openai import OpenAI
client = OpenAI(
base_url="https://synthorai.io/v1",
api_key="sk-syn-...",
)
resp = client.chat.completions.create(
model="deepseek-v4-pro",
# model="kimi-k2.7-code", # décommentez cette ligne, commentez celle du dessus
messages=[{"role": "user", "content": "Summarize this diff"}],
reasoning_effort="medium",
)
print(resp.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://synthorai.io/v1",
apiKey: "sk-syn-...",
});
const resp = await client.chat.completions.create({
model: "deepseek-v4-pro",
// model: "kimi-k2.7-code", // décommentez cette ligne, commentez celle du dessus
messages: [{ role: "user", content: "Summarize this diff" }],
reasoning_effort: "medium",
});
console.log(resp.choices[0].message.content);curl https://synthorai.io/v1/chat/completions \
-H "Authorization: Bearer sk-syn-..." \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-pro",
# "model": "kimi-k2.7-code", # décommentez cette ligne, commentez celle du dessus
"messages": [{"role": "user", "content": "Hello"}],
"reasoning_effort": "medium"
}'package main
import (
"context"
"fmt"
"github.com/openai/openai-go/v3"
"github.com/openai/openai-go/v3/option"
)
func main() {
client := openai.NewClient(
option.WithBaseURL("https://synthorai.io/v1"),
option.WithAPIKey("sk-syn-..."),
)
resp, _ := client.Chat.Completions.New(context.TODO(), openai.ChatCompletionNewParams{
Model: "deepseek-v4-pro",
// Model: "kimi-k2.7-code", // décommentez cette ligne, commentez celle du dessus
Messages: []openai.ChatCompletionMessageParamUnion{
openai.UserMessage("Summarize this diff"),
},
ReasoningEffort: openai.ReasoningEffortMedium,
})
fmt.Println(resp.Choices[0].Message.Content)
}import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.chat.completions.*;
import com.openai.models.ReasoningEffort;
OpenAIClient client = OpenAIOkHttpClient.builder()
.baseUrl("https://synthorai.io/v1")
.apiKey("sk-syn-...")
.build();
ChatCompletion resp = client.chat().completions().create(
ChatCompletionCreateParams.builder()
.model("deepseek-v4-pro")
// .model("kimi-k2.7-code") // décommentez cette ligne, commentez celle du dessus
.addUserMessage("Summarize this diff")
.reasoningEffort(ReasoningEffort.MEDIUM)
.build());
System.out.println(resp.choices().get(0).message().content().orElse(""));FAQ
Lequel est le moins cher, DeepSeek V4 Pro ou Kimi K2.7 Code ?
Kimi K2.7 Code est moins cher sur la ligne « Entrée / 1M de tokens » ($0.95 contre $1.32, soit un écart de 1.4×). D'autres lignes peuvent dire l'inverse : le tableau ci-dessus donne la grille tarifaire complète, et le coût réel dépend de la composition de votre trafic.
Puis-je faire un test A/B entre DeepSeek V4 Pro et Kimi K2.7 Code sans deux intégrations ?
Oui. Les deux passent par le même endpoint compatible OpenAI, avec une seule clé API. Pour passer de l'un à l'autre, il suffit de changer l'identifiant du modèle, soit une ligne : vous pouvez donc envoyer une part du trafic à chacun et comparer directement les factures.
DeepSeek V4 Pro et Kimi K2.7 Code prennent-ils en charge la mise en cache des prompts ?
Oui. Les deux facturent les lectures de cache moins cher que leur tarif d'entrée : une charge de travail dont le préfixe est déjà en cache coûte donc moins que ne le laissent penser les tarifs publics. Les lignes de lecture de cache figurent dans le tableau des tarifs ci-dessus.