J'ai passé tout un samedi après-midi à brancher les deux modèles stars du moment sur la même interface, avec un roman de 600 000 caractères, pour voir lequel encaisse vraiment 100 000 tokens sans perdre le fil. Ce que je raconte ici, ce sont les chiffres exacts que j'ai lus sur mon écran, pas ceux des brochures marketing.
Pourquoi j'ai voulu tester Grok 4.1 face à GPT-5.5 sur du long texte
Quand on doit résumer un contrat de 200 pages, retrouver une clause perdue dans un PDF juridique, ou suivre un personnage sur 800 pages de roman, le modèle que vous choisissez change tout au Résultat. Entre Grok 4.1 (la nouvelle fenêtre longue de xAI) et GPT-5.5 (la dernière itération d'OpenAI), les promesses commerciales sont belles, mais les chiffres du terrain racontent souvent une autre histoire. Comme je suis totalement débutant en API, j'ai tout documenté étape par étape pour que vous puissiez reproduire ce benchmark sans rien connaître au code. Pas de jargon, pas de raccourci obscur, vous copiez-collez et vous obtenez vos propres mesures.
Prérequis : ce qu'il vous faut avant de commencer
- Un ordinateur (Windows 10/11, Mac ou Linux, peu importe)
- Python 3.10 ou plus installé (téléchargeable gratuitement sur python.org)
- Une connexion Internet stable (fibre ou 4G+, le test consomme environ 5 Mo)
- Une clé API HolySheep AI : ouvrez un compte gratuit sur la page d'inscription officielle. Capture à prévoir : le bouton « S'inscrire » en haut à droite, le formulaire email + mot de passe + captcha, puis le tableau de bord où votre clé apparaît dans la rubrique « Mes clés API ».
- Un solde d'au moins 2 $ de crédits pour payer les requêtes (les nouveaux comptes reçoivent des crédits offerts, largement suffisants)
Étape 1 : préparer l'environnement en 5 minutes
Ouvrez un terminal (Mac : Applications > Terminal ; Windows : tapez « PowerShell » dans le menu Démarrer ; Linux : votre terminal habituel). Tapez ensuite les commandes ci-dessous, une par une, en appuyant sur Entrée après chacune.
python -m venv mon_test_llm
source mon_test_llm/bin/activate # Sur Windows : mon_test_llm\Scripts\activate
pip install --upgrade openai pandas
Capture à garder : la fenêtre du terminal affichant la dernière ligne « Successfully installed openai-X.X.X pandas-X.X.X ».
Étape 2 : récupérer un long texte de référence
Pour comparer honnêtement, j'ai pris Les Misérables de Victor Hugo en version française (téléchargement gratuit sur le site du Projet Gutenberg, format .txt). Le fichier pèse environ 600 000 caractères, soit environ 160 000 tokens. Placez-le dans le même dossier que votre futur script Python, et renommez-le miserables.txt.
Capture à garder : votre explorateur de fichiers ouvert sur le dossier, montrant miserables.txt et sa taille (clic droit > Propriétés > Taille, par exemple 1,2 Mo).
Étape 3 : le code complet du benchmark (copiez-collez tel quel)
Dans le même dossier, créez un fichier benchmark.py (clic droit > Nouveau > Document texte, renommez-le en benchmark.py). Ouvrez-le avec le Bloc-notes, VS Code, ou n'importe quel éditeur, et collez ce contenu :
import os
import time
import json
from openai import OpenAI
1) Configuration : on se branche sur HolySheep AI
client = OpenAI(
api_key=os.getenv("HOLYSHEEP_KEY", "YOUR_HOLYSHEEP_API_KEY"),
base_url="https://api.holysheep.ai/v1" # OBLIGATOIRE : ne jamais laisser la valeur par défaut
)
2) Chargement du long texte
with open("miserables.txt", "r", encoding="utf-8") as f:
texte = f.read()[:100000] # on garde 100 000 caractères (≈ 25 000 tokens)
question = """Liste les 10 personnages principaux du roman.
Pour chacun, donne : nom, rôle social, et UNE phrase de description (15 mots max)."""
3) Fonction de test, réutilisable pour les deux modèles
def tester(modele, label):
print(f"\n========== {label} ==========")
debut = time.perf_counter()
try:
response = client.chat.completions.create(
model=modele,
messages=[
{"role": "system", "content": "Tu es un assistant expert en littérature française du XIXe siècle."},
{"role": "user", "content": f"Texte :\n\n{texte}\n\n{question}"}
],
temperature=0.0, # zéro créativité pour comparer honnêtement
max_tokens=600
)
latence_ms = round((time.perf_counter() - debut) * 1000)
contenu = response.choices[0].message.content
usage = response.usage
print(f"Latence mesurée : {latence_ms} ms")
print(f"Tokens envoyés : {usage.prompt_tokens}")
print(f"Tokens recus : {usage.completion_tokens}")
print("Aperçu réponse :")
print(contenu[:400])
return {"modele": label, "latence_ms": latence_ms,
"tokens_in": usage.prompt_tokens,
"tokens_out": usage.completion_tokens,
"reponse": contenu}
except Exception as e:
print(f"ERREUR : {type(e).__name__} -> {e}")
return None
4) Lancement du test comparatif
resultats = []
for m in [("grok-4.1", "Grok 4.1"), ("gpt-5.5", "GPT-5.5")]:
r = tester(*m)
if r: resultats.append(r)
5) Sauvegarde au format JSON
with open("resultats.json", "w", encoding="utf-8") as f:
json.dump(result