Tutoriel

Qu’est-ce qu’une fenêtre de contexte 1M tokens ? GPT vs Claude vs Gemini

« Un million de tokens » n’est pas un synonyme de chat plus malin. C’est le budget que le modèle peut voir en une requête. Un plus grand budget peut tenir un dépôt, un manuel, un long enregistrement. Le max output, les paliers de prix et le rappel réel ne grandissent pas tout seuls avec l’étiquette.

En 2026, presque toutes les fiches de modèles phares affichent 1M Token. Les pages marketing disent « avaler le livre entier » ou « jeter tout le dépôt ». Les comités de choix, eux, coincent sur d’autres chiffres : ce que coûte l’appel, si la réponse sera tronquée, et si le modèle se souvient encore des 400K du milieu. Cet article traite 1M Token comme une limite d’ingénierie — la capacité de la fenêtre de contexte, pas un certificat de compréhension. À la fin, vous pourrez estimer combien de tokens pèsent vos matériaux, comparer GPT, Claude et Gemini sur la fenêtre, la sortie et les majorations, et décider quel JSON entre dans la fenêtre et lequel se vérifie d’abord dans le navigateur.

1M Token, c’est quoi : d’abord l’unité

Un token est la plus petite unité avec laquelle le modèle lit, écrit et facture le texte. Ce n’est ni un caractère, ni un mot. Un mot anglais courant vaut souvent un peu plus d’un token ; le chinois, le code, les clés JSON, le Base64 et l’indentation se convertissent autrement. Le même fichier OpenAPI peut compter différemment d’un fournisseur à l’autre, et d’une version de tokenizer à l’autre. Donc « 1M Token », c’est d’abord combien de cases ce modèle autorise sur cette requête — pas « un million de caractères chinois » ni « un million de mots anglais ».

Taille de fenêtre Intuition d’ordre de grandeur (pas une promesse)
1 TokenEnviron 0.7–1 mot anglais ; souvent 1–2 caractères chinois ; le code et le JSON fragmentent davantage
8K–32KUn long article, une note d’API, une courte conversation
128K–200KUne grosse part d’un livre, ou un dépôt moyen plus quelques tours d’agent
1M (environ 1.00–1.05 million)Un gros manuel + un dépôt multi-fichiers + un long historique ; les tokenizers Claude plus récents tiennent souvent moins de texte brut dans le même 1M

La fenêtre de contexte est un budget partagé pour l’entrée + la sortie + les tokens de raisonnement / thinking (quand ils sont comptés à part). Le prompt système, les Schema d’outils, les extraits récupérés, l’historique et la réponse en cours de génération puisent dans le même puits. Une fenêtre 1M ne veut pas dire que vous chargez un dépôt de 1M tokens puis émettez un rapport de 128K — la sortie compte dans la fenêtre, et chaque fournisseur fixe aussi un max output séparé.

Traitez 1M comme une capacité disque : les cases sont là ; l’accès aléatoire à une page du milieu n’est pas également fiable. Trouver une aiguille dans une botte de foin n’est pas la même chose qu’un raisonnement multi-sauts, une comparaison inter-fichiers, ou remarquer un champ manquant dans un long JSON. Demandez d’abord « que faut-il voir en même temps », puis « quelle forme stable doit sortir ».

À quoi sert vraiment une longue fenêtre de contexte

Passer de 128K à 1M change si vous devez encore découper d’abord. Ce qui exigeait une récupération ou un résumé peut maintenant entrer en un seul pack. Les cas qui paient vraiment ont souvent cette tête :

  1. Un dépôt entier ou presque : suivre une chaîne d’appels à travers les fichiers, comparer deux implémentations, voir l’interface et les fixtures dans la même requête.
  2. Longs documents et contrats : manuels de politique, dossiers d’audit, PDF à plusieurs pièces. La question a besoin des deux bouts du texte, pas d’un seul mot-clé.
  3. Gros packs multimodaux : les API de la famille Gemini peuvent compter texte, images, audio, vidéo et PDF dans une seule fenêtre. Des heures d’audio ou une longue vidéo n’ont plus à être découpées d’abord.
  4. Longues traces d’agent : définitions d’outils, nombreux tool results et retries ratés restent dans la fenêtre pour que le saut suivant voie l’observation complète. Pour la boucle elle-même, voir
  5. Comparer et extraire : deux versions OpenAPI, deux JSON d’export et un Schema dans la même requête, pour une lecture niveau diff, puis émettre les écarts structurés via Structured Output.

Ces cas partagent une propriété : la réponse dépend de voir plusieurs artefacts en même temps. Si la tâche est « trouver une phrase dans cent mille pages », la récupération est en général moins chère et plus stable. Une fenêtre 1M réduit les mauvaises coupes ; elle n’abolit pas l’architecture de l’information.

Un usage trop vanté : coller les logs du site entier, un dump brut de base, ou du JSON de production non nettoyé dans le prompt. La fenêtre est grande ; la surface de fuite et la facture aussi. Seul le matériau que vous avez déjà décidé de laisser sortir de la machine doit entrer dans la fenêtre. Effacez les secrets en local, réparez le JSON malformé, puis seulement parlez de « tout donner d’un coup ».

Fenêtre catalogue ≠ fenêtre effective : entrée, sortie, tarif

Le 1M de la page produit est un plafond d’acceptation : on dépasse, la requête est refusée ou tronquée. Ce n’est pas « la qualité à 1M égale la qualité à 8K ». Sur les evals style RULER, la longueur effective est souvent la moitié de l’étiquette ; en production, le travail inter-fichiers glisse souvent après 200K–500K et les instructions du milieu du prompt tombent. Traitez la fenêtre affichée comme un plafond dur. Traitez votre propre jeu de régression comme la fenêtre effective.

Le deuxième chiffre qu’on ignore est le max output. GPT-5.6 Sol / Terra et les fleurons Claude autorisent environ 128K sur une requête sync. Gemini 3.1 Pro documente 65,536, et le maxOutputTokens par défaut est souvent plus bas — oubliez de le monter et vous tronquez en silence. « Lisez le manuel, puis rédigez une spec de même longueur » peut tenir dans la fenêtre et quand même casser le plafond de sortie. Le budget ci-dessous traite la sortie et la marge comme des postes à part entière, pas comme le reliquat :

{
  "window": 1050000,
  "budget": {
    "system": 2400,
    "tools": 1800,
    "repoPack": 420000,
    "docs": 180000,
    "history": 80000,
    "reservedOutput": 128000,
    "headroom": 238800
  },
  "rule": "never fill to the sticker; reserve output plus 20 percent headroom"
}

Le troisième chiffre, c’est l’argent. OpenAI indique que pour GPT-5.6 Sol / Terra, dès que l’entrée dépasse environ 272K tokens, la requête entière est facturée 2× en entrée et 1.5× en sortie. Le long contexte Gemini a souvent un autre palier de majoration (les docs tracent souvent la ligne au-dessus de 128K ou 200K — vérifiez la grille en vigueur). Les docs Claude Sonnet 5 présentent 1M comme fenêtre par défaut au tarif standard, sans interrupteur « activer le long contexte » — mais un tokenizer plus fin peut transformer le même texte en plus de tokens, donc le coût effectif monte quand même. Le prompt cache aide les préfixes répétés ; il n’aide pas un pack qui change à chaque appel.

Comparatif 2026 : GPT, Claude, Gemini

Le tableau ci-dessous suit les fiches publiques de septembre 2026 pour les paliers phares. Il n’entasse pas chaque snapshot dans une case. Les chiffres bougent ; la doc en ligne fait foi. Les axes qui font vraiment bifurquer un choix sont la fenêtre, la sortie, la majoration et la modalité.

Axe GPT-5.6 Sol / Terra Claude Sonnet 5 / Opus 5 Gemini 3.1 Pro
Fenêtre de contexte 1,050,000 1,000,000 (Haiku 4.5 reste à 200K) 1,048,576
Max output 128,000 128,000 (un palier Batch plus haut existe) 65,536 (les défauts sont souvent plus bas)
Tarif long contexte Entrée >272K : requête entière 2× entrée / 1.5× sortie Docs : 1M par défaut, pas de palier de majoration séparé ; le nouveau tokenizer est plus fin Majoration fréquente au-delà de 128K ou 200K — confirmez la grille officielle
Modalités d’entrée Texte, image Texte, image (PDF via les fonctions plateforme) Texte, image, audio, vidéo, PDF
Pièges de la même famille Luna fait environ 400K — ne prenez pas l’alias pour la même capacité Le même 1M tient moins de texte brut après le changement de tokenizer ; recomptez Multimodal le plus large ; plafond de sortie plus bas — budgétez d’abord la génération
Meilleur usage Longs rapports, chaînes Responses, tâches qui exigent 128K en sortie Raisonnement sur long document, boucles d’agent, stabilité lire-puis-répondre Dépôt + audio/vidéo/PDF en une fois ; réponses courtes ou calées sur un Schema

Lisez les fiches officielles, pas seulement les tableaux tiers. La fiche GPT-5.6 Sol d’OpenAI indique la fenêtre 1,050,000, 128K en sortie et le seuil de majoration à 272K. L’aperçu Claude Sonnet 5 d’Anthropic pose 1M / 128K comme défaut. La fiche Gemini 3.1 Pro Preview de Google indique 1,048,576 en entrée et 65,536 en sortie. Prix et noms de snapshot changent ; le code d’intégration doit lire les champs usage, pas les constantes de l’an dernier.

Choisissez selon le goulot. S’il faut émettre près de 100K tokens d’une note de migration ou d’un long tableau JSON, le plafond de sortie compte plus que la fenêtre — les fleurons GPT et Claude sont plus larges. Si une seule requête doit écouter un enregistrement de réunion et voir aussi un deck de design et un dépôt, les modalités de Gemini sont une vraie différence, pas un adjectif. Si vous faites des éditions multi-sauts dans 1M et que les instructions du milieu ne peuvent pas tomber, ne croyez pas l’étiquette — mesurez le rappel effectif avec votre propre jeu « trois aiguilles, deux contradictions », pas une seule démo needle-in-a-haystack.

Les trois gèrent le tool calling et Structured Output ; les champs d’enveloppe diffèrent, et le JSON se valide encore en local. Pour la coupure Gemini entre « juste du JSON » et « les champs d’un Schema », voir le guide JSON de l’API Gemini — cet article ne reprend pas le SDK.

Quand remplir la fenêtre, quand récupérer

Une fenêtre 1M ne remplace pas RAG. Elle recule la frontière de découpage. Quatre règles suffisent :

  1. La réponse doit voir A et B ensemble (deux specs, appelant et appelé, Schema et instance) → une seule fenêtre. Ne résumez pas chaque côté à part.
  2. La réponse est « localiser un petit passage dans un énorme corpus » → récupérez d’abord, puis envoyez les extraits retenus plus les métadonnées. Ne payez pas une majoration à 272K pour éviter un pipeline de recherche.
  3. Le pack change à chaque requête (nouveau diff, nouvel export) → le long contexte est cher. Séparez les préfixes cachables (prompt système, liste d’outils, manuel stable) du pack volatile.
  4. Le matériau ne doit pas quitter le navigateur (secrets, champs utilisateur de production) → une plus grande fenêtre n’est pas une raison d’envoyer. Nettoyez, validez et échantillonnez en local, puis décidez si un modèle cloud le voit.

Les boucles d’agent remplissent une fenêtre vite : chaque tool result reste. Résumez les vieilles observations avant maxSteps ; ne traitez pas 1M comme un journal infini. Comment fonctionne la boucle : Qu’est-ce qu’un AI Agent.

Même quand vous choisissez « tout le pack », empaquetez. Ne dépensez pas 1M sur node_modules et les bundles minifiés. Un context pack explicite est auditable ; « glisser le dépôt » ne l’est pas :

{
  "pack": "context",
  "files": [
    { "path": "openapi.json", "tokens": 12000, "role": "contract" },
    { "path": "schema.ticket.json", "tokens": 400, "role": "outputShape" },
    { "path": "fixture.valid.json", "tokens": 800, "role": "example" }
  ],
  "omit": ["node_modules", "*.lock", "generated/**", "minified bundles"]
}

Le outputShape du pack doit être le Schema que vous allez réellement parser — pas les clés que le modèle invente. Comment figer la forme : AI Structured Output.

JSON en long contexte : valider d’abord en local

Une longue fenêtre agrandit le rayon de dégâts d’une mauvaise entrée. Un export tronqué, un reçu d’outil aux champs extra explosifs, deux Schema qui partagent un nom et pas un sens — après 400K tokens, vous ne les trouverez pas à l’œil. Le modèle continue d’écrire à partir du JSON cassé, et vous payez quand même. Trois étapes avant l’envoi :

  1. Parse : chaque fichier qui entrera dans la fenêtre est du vrai JSON / JSON5, pas un log qui « ressemble à » du JSON ni un export coupé.
  2. Schema : validez contre le contrat que vous voulez que le modèle tienne. Avec plusieurs fichiers, confirmez qu’ils partagent encore une même source de vérité.
  3. Diff : comparez fixtures anciennes/nouvelles, arguments du modèle vs corps aval, ou deux versions OpenAPI en local avant de demander au modèle « pourquoi » ou « comment le changer ».

Vous pouvez le faire dans le navigateur, sans l’envoyer d’abord : Formateur JSON pour le parse et la structure ; Validateur JSON Schema pour les champs et les énumérations ; JSON Diff pour deux artefacts qui partageront une fenêtre. Les fichiers qui échouent à la validation n’entrent pas dans le pack.

Le JSON long produit par le modèle peut encore être syntaxiquement cassé ou dériver en forme — voir le guide des erreurs JSON IA. Les arguments d’outil et la réponse finale sont deux contrats. Partager un budget de fenêtre n’équivaut pas à les avoir validés.

FAQ

1M Token, c’est un million de caractères chinois ?

Non. Les tokens sont des fragments de tokenizer. Chinois, anglais, code, JSON, images et audio se convertissent autrement ; un changement de tokenizer chez un fournisseur peut aussi changer combien de texte tient dans le même 1M. Comptez vos matériaux avec l’API de tokenizer de ce modèle. Ne remplacez pas ça par « pages × un coefficient ».

Si toutes les fenêtres font 1M, le fournisseur compte-t-il encore ?

Oui. Max output, majorations long contexte, modalités et rappel effectif divergent. La ligne de prix à 272K de GPT-5.6, le plafond de sortie plus bas de Gemini, et le tokenizer plus fin de Claude transforment « le même 1M » en factures différentes et en points de troncature différents. Mesurez sur votre jeu de régression, pas sur l’étiquette seule.

Faut-il encore du RAG si l’on a une fenêtre 1M ?

Oui. 1M sert au pack qui doit être visible ensemble. Quand le corpus dépasse largement la fenêtre, ou qu’un petit passage seulement est pertinent à chaque fois, la récupération est moins chère, plus facile à autoriser, et plus facile à rafraîchir. Beaucoup de systèmes de production récupèrent des candidats, puis les lisent dans une longue fenêtre — pas l’un ou l’autre.

Pourquoi le modèle lâche-t-il encore des champs après que j’ai collé tout le dépôt JSON ?

La fenêtre rend les choses visibles. Elle ne fait pas parler le modèle selon un contrat. Clés manquantes, dérive de types et clôtures markdown sont des problèmes de forme — utilisez Structured Output / Schema et validez encore en local. Si le matériau du milieu est dilué, le rappel effectif baisse aussi. Seul du JSON légal, de même origine, déjà passé au diff devrait entrer dans la fenêtre.

Conclusion et suite

1M Token est l’échelle phare de 2026 : une requête peut voir environ un million de tokens à la fois. Cela rend faisable un dépôt entier, un manuel entier, ou un pack multimodal. Cela ne veut pas dire automatiquement un raisonnement plus fort, une sortie plus longue, ou un prix unitaire plus bas. GPT, Claude et Gemini bifurquent sur les plafonds de sortie, les lignes de majoration et les modalités — pas sur une case à cocher « a 1M ».

Ensuite : comptez votre manuel et votre dépôt avec le tokenizer officiel ; réservez la sortie et la marge avec le budget ci-dessus ; confirmez les seuils de majoration sur les trois fiches. Le JSON qui entrera dans la fenêtre doit d’abord passer par parse, Schema et Diff dans JSONVue. Comment figer la forme : Structured Output. Comment empiler les échecs : le guide des erreurs JSON.