D’emblée : en septembre 2026, GPT-5.5, Claude Opus 4.8 / Sonnet 4.6 et Gemini 3.7 Flash affichent tous une fenêtre d’environ un million de tokens. « 1M tokens » n’est pas « un million de caractères chinois », et remplir la fenêtre n’équivaut pas à s’en servir. Les plafonds d’accroche sont proches. La recherche effective, la sortie maximale et les paliers de prix ne le sont pas. Si vous travaillez avec du JSON, la bonne démarche est de réduire, valider, puis décider combien fourrer — pas de coller le dump entier.
Cet article est rédigé au 5 septembre 2026. Les chiffres suivent les documents publics : l’API gpt-5.5 d’OpenAI à environ 1,050,000 tokens au total et 128K en sortie ; Opus 4.8 / Sonnet 4.6 d’Anthropic à 1M par défaut et 128K en sortie, sans majoration pour le contexte long ; gemini-3.7-flash de Google à 1,048,576 en entrée / 65,536 en sortie. Les surfaces produit (ChatGPT, Codex, claude.ai) sont souvent plus étroites. Ne prenez pas une page marketing pour la limite API.
Ce que signifie 1M tokens
Un token est le plus petit morceau qu’un modèle compte et facture — ni un caractère, ni un mot. En anglais, environ 1 token ≈ 0.75 mot, ou à peu près 4 caractères. En chinois, un token couvre souvent 1–2 caractères, selon le tokenizer et la ponctuation. Le JSON coûte plus cher : accolades, guillemets, clés répétées et indentation consomment tous du budget.
1M tokens = une fenêtre de contexte d’environ un million de tokens. Conversion approximative : ~750,000 mots anglais, ou ~500,000–800,000 caractères chinois, ou un gros livre à quelques ouvrages moyens, ou un dépôt de taille moyenne plus sa doc. Ce n’est pas « un roman d’un million de caractères » ni « un million de lignes de code ». Le même 1M contient des quantités de signal très différentes selon que l’on a de la prose, des tableaux ou du JSON minifié.
La fenêtre de contexte est le budget partagé d’une seule requête : prompt système + historique + définitions d’outils + résultats d’outils + la sortie de ce tour. Les modèles de la classe GPT-5 comptent aussi les tokens de reasoning. Une entrée de 900K tokens plus un effort de reasoning élevé déclenchera context_length_exceeded avant que le modèle « ait fini de lire ». Le budget est épuisé.
| Formule | Sens réel | Erreur fréquente |
|---|---|---|
| 1M tokens | Un plafond d’environ 1,000,000 tokens sur l’entrée + la sortie (et le reasoning, sur certains modèles) | Le modèle peut lire un million de caractères ou un million de lignes |
| Fenêtre de contexte | Budget partagé d’une requête | Mémoire à l’échelle du compte, ou rappel automatique de tous les projets passés |
| Sortie maximale | Combien de tokens ce tour peut générer | Égale à la fenêtre (les ~64K de sortie de Gemini sont très en dessous de 1M) |
| Contexte effectif | Longueur où la recherche multi-aiguille et le raisonnement sur de longs documents restent stables | Égal au chiffre de la page de tarifs |
En 2023, le courant dominant était 4K–32K. En 2024, Gemini 1.5 a fait de 1M un argument d’accroche. En 2025, 200K était devenu le défaut de milieu de gamme. En septembre 2026, les API phares ont aligné le chiffre publicitaire sur 1M. La course n’est plus « qui est plus long », mais qui retrouve encore les aiguilles au-delà de 200K, et dont le cache est assez bon marché pour un usage quotidien.
À quoi sert une fenêtre de contexte très longue
Une longue fenêtre sert à voir beaucoup de matériaux en une seule inférence. Elle ne remplace pas une base de données, et ce n’est pas une mémoire infinie gratuite. Les tâches ci-dessous exigent souvent un découpage ou du RAG à 128K. À 1M, on peut parfois transformer « récupérer, puis demander » en « charger, puis demander » — si ce que vous chargez a d’abord été filtré.
- Dépôt entier / codage multi-fichiers : garder les modules liés, les tests et les définitions d’interface dans le même tour, pour que le modèle ait moins de chances de rater un fichier. Le codage par agent bute encore sur les boucles d’outils et le retour des tests, pas sur l’accroche de la fenêtre — nous l’avons traité dans Gemini 3.8 Flash et l’AI Coding.
- Revue de longs documents : contrats, dépôts réglementaires, spécifications, plusieurs PDF côte à côte. Utile pour « trouver le conflit entre le §47 et l’annexe B ». Mauvais pour « coller un an de courrier et demander un résumé ».
- Longue entrée multimodale : Gemini compte la vidéo, l’audio, les images et le texte dans la même fenêtre. Une heure de vidéo brûle les tokens vite. 1M est un quota, pas une invitation à envoyer du non compressé.
- Agents multi-étapes : le JSON des outils, les piles d’erreurs et le dernier correctif peuvent rester un moment dans le fil. Une fenêtre plus grande n’est pas une raison de réinjecter des piles brutes — voir le flux de données JSON des agents.
- Alignement de gros JSON : OpenAPI / JSON Schema, charges utiles d’exemple et journaux d’erreurs de production dans un seul tour. C’est l’usage 1M qui devrait le plus intéresser les lecteurs de ce site, et le plus simple pour faire exploser la facture.
- Sauter une couche RAG : quand le corpus est stable, borné, et que vous devez citer le texte mot pour mot à chaque fois, tout charger peut être plus simple qu’un magasin de vecteurs. Quand le corpus change chaque jour ou que les requêtes se répètent, la recherche reste moins chère et plus à jour.
À l’inverse : le chat, la classification à une étiquette, l’extraction JSON courte. Une fenêtre 1M est du gaspillage. La latence, les prefills et la facturation au token vous pénalisent tous. Les tâches courtes reçoivent un modèle court ou un budget court.
GPT vs Claude vs Gemini
Le tableau ci-dessous est ce que l’on peut écrire dans un document au 5 septembre 2026. Les prix sont les tarifs officiels au million de tokens ; les plafonds des surfaces produit sont à part. Gemini 3.8 Flash n’est toujours pas GA à la date de cet article — gardez la production sur 3.7.
| Fournisseur / modèle | Fenêtre annoncée | Sortie max. | Entrée / sortie par 1M | Réserves sur la fenêtre |
|---|---|---|---|---|
| OpenAI GPT-5.5 API | ~1,050,000 | 128,000 | $5 / $30 | Le reasoning compte dans le total ; la surface produit Codex est à 400K |
| OpenAI GPT-5.5 Pro | ~1,050,000 | 128,000 | $30 / $180 | Même fenêtre ; vous payez la sortie et le reasoning |
| OpenAI GPT-5.4 | ~1M | 128,000 | $2.50 / $15 | Même classe 1M, prix unitaire plus bas |
| Anthropic Claude Opus 4.8 | 1M (défaut, pas d’en-tête beta) | 128,000 | $5 / $25 | Pas de majoration pour le contexte long ; prompt cache ~90% off |
| Anthropic Claude Sonnet 4.6 | 1M | 128,000 | $3 / $15 | Context awareness (il suit le budget restant) |
| Anthropic Claude Haiku 4.5 | 200K | 64,000 | $1 / $5 | Rapide et bon marché — pas une tranche 1M |
| Google Gemini 3.7 Flash | 1,048,576 | 65,536 | Intro $0.75 / $3.75 jusqu’au 2026-12-31 | Standard $1.50 / $7.50 à partir du 2027-01-01 |
| Google Gemini 3.1 Pro | 1,048,576 | 65,536 | Environ $2 / $4 (souvent un palier au-dessus de 200K) | N’écrivez pas les allégations tierces 2M / 10M dans un contrat |
Comment le lire : les trois phares peuvent ingérer environ 1M. Les écarts portent sur la marge de sortie, sur le fait que le reasoning mange la fenêtre, sur le surcoût éventuel au-delà de 200K, et sur l’intérêt du cache.
- Vous avez besoin d’un long résultat structuré en une fois (gros JSON, long correctif, diff multi-fichiers) : les 128K de sortie de GPT-5.5 et Claude 4.6/4.8 font environ 2× les ~64K de Gemini. Gemini est meilleur pour « lire beaucoup, écrire un tableau ».
- Le même prompt système + schema d’outils à chaque appel : le prompt cache de Claude, le Context Caching de Gemini et l’entrée en cache d’OpenAI battent tous le paiement de l’entrée au tarif plein à chaque fois. Le JSON
toolsd’un agent appartient au cache — voir Tool Calling et JSON Schema. - Budget serré, beaucoup de matériau, sortie courte : le tarif intro de Gemini 3.7 Flash reste la tranche 1M la moins chère des trois. Au-delà de 200K, mesurez le multi-aiguille sur vos propres données ; ne vous fiez pas au seul chiffre de fenêtre.
- Produit ≠ API : GPT-5.5 sur ChatGPT / Codex peut être à 400K ; certaines places de marché cloud servent encore Claude à 200K. Ouvrez la fiche modèle de la surface sur laquelle vous livrez avant d’écrire un SLA.
Fenêtre annoncée vs fenêtre utile
En 2026, le consensus est difficile à ignorer : annoncer 1M et utiliser 1M sont deux métiers différents. Sur la recherche multi-aiguille (style MRCR v2 : trouver plusieurs faits dispersés dans un texte énorme), la précision commence en général à chuter après 128K, se disperse entre 200K et 512K, et près de 1M seuls quelques modèles se comportent encore comme s’ils avaient lu le fichier entier.
Les évaluations publiques et compilations tierces (les protocoles ne sont pas identiques — voyez-y une tendance, pas un test d’acceptation) ressemblent à peu près à ceci :
- GPT-5.5 : un cran au-dessus des GPT-5.x précédents sur le raisonnement multi-aiguille dans la bande 512K–1M, et l’une des API le plus souvent citées quand on remplit vraiment la fenêtre. Le mono-aiguille « trouver cette phrase » convient aux trois en deçà de 128K.
- Claude Opus 4.6 : le multi-aiguille à 1M a été rapporté autour de 76 %, avec une courbe plus plate. 4.7 / 4.8 insistent davantage sur le calibrage — refuser ou marquer l’incertitude plutôt qu’inventer un emplacement. La revue de conformité de longs documents veut en général la seconde attitude.
- Gemini 3.x : toujours fort en recherche et en compréhension de longs documents en deçà de 128K ; le multi-aiguille chute plus raide au-delà de 200K. Bon pour « lire une grosse liasse, émettre un JSON court ». Mauvais pour « garantir la 8e aiguille dans 900K tokens de journaux ».
En production, servez-vous de trois tranches — pas de la grille de prix :
| Tranche | Traitez-la comme | À faire |
|---|---|---|
| ≤128K | Presque entièrement utilisable | Espace de travail par défaut chez les trois |
| 128K–256K | Mesurez sur des échantillons | Lancez du multi-aiguille sur votre JSON / dépôt ; ignorez les scores Arena |
| 256K–500K | Utilisable ; ne supposez pas que chaque fait est trouvé | Pré-extraire les champs clés avec JSONPath ; mettre en cache les préfixes répétés |
| 500K–1M | Ça rentre ; « rentrer » ≠ « compris » | Uniquement du matériau stable et de haute valeur ; verrouillez les réponses avec un Schema |
« Lost in the middle » n’a pas disparu quand les fenêtres ont atteint 1M. Placez les contraintes dures au début du prompt système et à la fin du message utilisateur ; garez les annexes au milieu. Les modèles retiennent « sortir un JSON conforme au schema » plus souvent qu’un enum enterré au token 400,000.
JSON : fourrer n’est pas valider
Une fenêtre 1M est la première fois que « tout l’OpenAPI, trois jours de journaux d’erreurs et un brouillon de schema » tiennent dans une seule requête. Elle ne rend pas légal un JSON illégal, et elle ne resserre pas un schema lâche. La fenêtre, c’est la visibilité ; le contrat, c’est la forme. Nous avons déjà appliqué cette règle dans Du prompt au Structured Output et OpenAI vs Gemini Structured Output : bloquer les tokens illégaux au décodage avec un Schema, puis valider encore après l’appel.
Fourrer un dump de production de 800K tokens échoue en général pour d’autres raisons que « la fenêtre était trop petite » : les clés répétées gaspillent le budget, les champs du milieu sont abandonnés, les longueurs de tableaux sont mal comptées, la sortie se coupe au plafond 64K/128K, et vous payez l’entrée au tarif plein. L’ordre est réduire → valider → puis alimenter.
{
"name": "longContextPack",
"description": "Paquet envoyé dans une fenêtre 1M : uniquement du JSON validé et déjà réduit",
"parameters": {
"type": "object",
"additionalProperties": false,
"properties": {
"task": { "type": "string", "enum": ["align_fields", "diff_versions", "extract_errors"] },
"schemaId": { "type": "string", "description": "Identifiant de Schema stable — ne pas coller un schema géant en ligne" },
"focusPaths": {
"type": "array",
"minItems": 1,
"maxItems": 32,
"items": { "type": "string", "description": "JSONPath, par ex. $.paths./v2/orders.post" }
},
"payload": { "type": "object", "description": "Déjà contrôlé en syntaxe et réduit en volume — pas une chaîne de logs brute" },
"tokenBudget": { "type": "integer", "minimum": 1000, "maximum": 1000000 }
},
"required": ["task", "schemaId", "focusPaths", "payload", "tokenBudget"]
}
}
Déposez ce paquet dans la boîte à outils JSON pour un contrôle de syntaxe local, extraire focusPaths avec JSONPath, et Diff deux versions de payload. Le modèle doit voir un objet réduit, pas un fichier .json de 20MB. Échangez GPT / Claude / Gemini en changeant la chaîne de modèle. Les noms de champs du paquet ne doivent pas changer.
Que faire maintenant
- Comptez les tokens avant de fourrer : estimez séparément le système, les outils, l’historique et les pièces jointes. Réservez le reasoning sur GPT-5.5 ; comptez les pages vidéo / PDF sur Gemini. Si vous dépassez le budget, coupez — ne pariez pas sur « ça devrait encore rentrer ».
- Mettez en cache les préfixes répétés : système + outils sont presque identiques à chaque appel, donc ils appartiennent au prompt cache / Context Caching. La première facture d’une fenêtre 1M est une facture d’entrée ; après les hits de cache, la longue fenêtre devient utilisable au quotidien.
- Contraignez la sortie avec Structured Output, pas avec « veuillez renvoyer du JSON » :
response_format.json_schemad’OpenAI,responseMimeType+responseJsonSchemade Gemini, outils ou prefills Claude. Une fenêtre plus longue inventera encore un champ et en omettra un requis si le prompt est lâche. - Au-delà de la tranche que vous avez mesurée, recherchez — ne forcez pas : si votre propre multi-aiguille a échoué à 256K, ne traitez pas 700K de journaux comme une compréhension plein texte. Du JSONPath sur les codes d’erreur et les horodatages coûte moins cher que de laisser le modèle nager.
- Découpez les réponses au plafond de sortie : ~64K sur Gemini, ~128K sur GPT/Claude. Un rapport JSON de 200K, ce sont des fragments plus un schema par fragment, pas une complétion héroïque.
- Faites tourner des fixtures locales avant d’appeler l’API : le même payload passe par la validation JSON et le Diff dans le navigateur. Rien n’est téléversé. C’est le même réflexe que de vérifier un contrat REST avant le lancement.
FAQ
Combien de mots font 1M tokens ?
Il n’y a pas de conversion fixe. L’anglais représente environ 750,000 mots ; le chinois environ 500,000–800,000 caractères, selon la ponctuation et le latin mélangé. Le JSON, le code et les tableaux consomment les tokens plus vite. Ne planifiez pas la capacité comme « un million de mots ». Comptez de vrais échantillons avec le tokenizer du fournisseur.
Quelle fenêtre 1M est la meilleure — GPT, Claude ou Gemini ?
Cela dépend de la tâche. Pour le raisonnement multi-aiguille à fenêtre pleine, les évaluations publiques placent souvent GPT-5.5 en tête. Si vous préférez un refus à une citation inventée, Claude 4.7/4.8 est plus stable. S’il faut lire beaucoup et émettre un court tableau JSON avec un budget serré, le tarif intro de Gemini 3.7 Flash est le moins cher des trois. Le plus grand chiffre annoncé ne gagne pas.
Ai-je encore besoin du RAG si j’ai une fenêtre 1M ?
Oui. 1M convient à un matériau stable et borné que vous devez citer mot pour mot. Quand le corpus change chaque jour, que les requêtes se répètent, ou que votre fenêtre effective mesurée est très en dessous de 1M, la recherche reste moins chère et plus simple à mettre à jour. Long contexte et RAG se complètent ; ils ne se remplacent pas.
Puis-je utiliser le 1M entier sur ChatGPT ou Claude.ai ?
Pas forcément. L’API gpt-5.5 est à environ 1.05M ; la surface produit Codex est souvent à 400K. Certaines places de marché cloud servent encore Claude à 200K. Fiez-vous à la fiche modèle du produit que vous utilisez réellement, pas à la colonne API recopiée dans une attente d’application de chat.
Gemini est-il déjà à 2M ou 10M ?
En septembre 2026, les documents publics de gemini-3.7-flash et gemini-3.1-pro indiquent 1,048,576 tokens en entrée. 2M / 10M vient en général d’anciennes tranches expérimentales, de pages agrégateurs, ou de variantes pas encore GA. Pour les contrats et les tableaux de quotas, utilisez la fiche modèle actuelle de Google, pas un titre de blog.
Si je fourre tout un fichier JSON dans une fenêtre 1M, ai-je encore besoin d’un schema ?
Oui. La fenêtre n’élargit que la visibilité ; elle ne contraint pas la forme de la sortie. L’extraction, l’alignement et les arguments d’outils d’agent ont toujours besoin d’un JSON Schema, puis d’un contrôle de syntaxe et de structure après l’appel. Vous pouvez échanger GPT contre Gemini. Les noms de champs et les listes required ne doivent pas bouger.
À retenir
1M tokens est l’accroche 2026 des API phares que GPT-5.5, Claude 4.6/4.8 et Gemini 3.7 peuvent tous imprimer sur une page de limites. C’est utile quand une inférence doit voir un dépôt, un long document ou un paquet JSON déjà réduit. Ce n’est pas une mémoire gratuite, et remplir n’est pas comprendre. Les fenêtres utiles se situent souvent entre 128K et 500K ; traitez un 1M plein comme de la capacité, pas de la compréhension. Les plafonds de sortie, le fait que le reasoning consomme la fenêtre, et le surcoût éventuel au-delà de 200K sont les vrais critères de choix.
Le travail n’est pas de courir la prochaine rumeur « 2M ». C’est d’emballer ce que vous envoyez pour qu’il survive à un contrôle de schema : JSONPath pour couper les chemins, Diff pour comparer les versions, valider, puis appeler l’API. Ce site couvre déjà Structured Output et Tool Calling ; cet article n’ajoute que la lecture côté fenêtre de contexte.