Aller au contenu principal

Les modèles GPT-5.6 : Sol, Terra, Luna — quand utiliser lequel

Mis à jour le 29 juillet 2026

Les modèles : choisir le bon pour chaque tâche

Depuis le 9 juillet 2026, la famille GPT-5.6 est en disponibilité générale : trois modèles, chacun optimisé pour un cas d’usage différent, et un niveau de raisonnement réglable par requête. Choisir la bonne combinaison modèle + raisonnement est la décision la plus impactante sur la qualité et le coût de votre application — un facteur vingt-cinq sépare le modèle le plus cher du plus économique, et un facteur comparable sépare les réglages de raisonnement extrêmes.

ModèleIdentifiant APIForcePrix ($/MTok entrée / sortie)Cas d’usage
GPT-5.6 Solgpt-5.6-sol (alias gpt-5.6)Phare, le plus capable5 $ / 30 $Tâches complexes, raisonnement poussé, qualité maximale
GPT-5.6 Terragpt-5.6-terraÉquilibré2 $ / 12 $Usage général, chatbots, génération de contenu
GPT-5.6 Lunagpt-5.6-lunaVolume, rapide, économique0,20 $ / 1,20 $Tâches simples, classification, extraction

Les trois modèles acceptent le texte et les images en entrée, sont multilingues et s’utilisent via la Responses API. Pour les caractéristiques détaillées (fenêtres de contexte, limites), consultez la page officielle des modèles sur platform.openai.com.

Terra, votre point de départ par défaut

Terra est le modèle que vous utiliserez le plus souvent, parce qu’il offre le meilleur rapport qualité/prix sur la majorité des tâches : chatbots, génération de contenu, résumés, traduction, questions-réponses générales. La bonne méthode consiste à commencer par lui, à mesurer la qualité obtenue, puis à monter vers Sol seulement si le résultat ne convient pas — et non l’inverse.

from openai import OpenAI
client = OpenAI()

# Usage général — Terra est parfait
response = client.responses.create(
    model="gpt-5.6-terra",
    input="Rédigez un email professionnel pour demander un rendez-vous."
)
print(response.output_text)

Sol quand l’erreur coûte cher

Sol est le modèle le plus performant de la famille. Réservez-le aux situations où la qualité maximale est indispensable : l’analyse d’un document à fort enjeu, les tâches qui bénéficient d’un raisonnement poussé, tout ce qu’un humain devrait relire ligne à ligne si le modèle se trompait. L’analyse d’un rapport annuel pour en extraire les risques principaux entre exactement dans cette catégorie — une omission ici a un coût sans commune mesure avec les quelques centimes économisés sur l’appel.

# Analyse exigeante d'un document
with open("rapport_annuel.txt", "r") as f:
    document = f.read()

response = client.responses.create(
    model="gpt-5.6-sol",
    input=f"Analysez ce rapport annuel et identifiez les 5 risques "
          f"principaux :\n\n{document}"
)
print(response.output_text)

Luna pour le volume

Luna est optimisé pour la vitesse et le coût, ce qui le destine aux traitements répétitifs à grande échelle : classification, extraction de données, reformulation, prototypage rapide. Le raisonnement d’un modèle phare n’apporte rien pour décider si un avis client est positif ou négatif ; en revanche, sur cent mille avis, l’écart de prix devient la seule variable qui compte.

# Classification rapide de textes
textes = [
    "Ce produit est fantastique, je le recommande !",
    "Livraison en retard, service client inexistant.",
    "Correct, rien de spécial.",
]

for texte in textes:
    response = client.responses.create(
        model="gpt-5.6-luna",
        input=f"Classifiez le sentiment (positif/négatif/neutre) : {texte}",
    )
    print(f"{texte[:50]}... → {response.output_text}")

# Résultat :
# Ce produit est fantastique, je le recommande !... → Positif
# Livraison en retard, service client inexistant.... → Négatif
# Correct, rien de spécial.... → Neutre

Le raisonnement : un paramètre, et non plus un modèle

Avec la génération précédente (o3, o3-pro, o4-mini), le raisonnement était incarné par des modèles dédiés : vous changiez de modèle pour obtenir de la réflexion. Ce n’est plus le cas. Chaque modèle GPT-5.6 accepte un paramètre reasoning par requête, avec six niveaux d’effort — none, low, medium, high, xhigh, max.

# Problème de raisonnement complexe : Sol + effort élevé
response = client.responses.create(
    model="gpt-5.6-sol",
    input="Un escargot est au fond d'un puits de 30 mètres. "
          "Chaque jour, il monte de 3 mètres mais glisse de 2 mètres "
          "pendant la nuit. Combien de jours lui faut-il pour sortir ? "
          "Expliquez votre raisonnement étape par étape.",
    reasoning={"effort": "high"}  # none, low, medium, high, xhigh, max
)
print(response.output_text)
# Résultat détaillé avec raisonnement structuré :
# Jour 1 à 27 : progression nette de 1m/jour → 27m
# Jour 28 : monte de 3m depuis 27m → atteint 30m et sort
# Réponse : 28 jours

Le niveau none désactive purement et simplement le raisonnement : la réponse est immédiate et le coût minimal, ce qui convient aux tâches mécaniques comme la classification ci-dessus. Les niveaux medium et high couvrent la plupart des tâches techniques. Gardez xhigh et max pour les problèmes réellement difficiles, en sachant que le raisonnement interne consomme des tokens facturés en sortie : sur l’énigme de l’escargot, la réflexion invisible peut peser plus lourd que la réponse affichée. Un réglage supplémentaire, ultra, coordonne 4 agents en parallèle par défaut, jusqu’à 16 sur certaines évaluations, pour les tâches les plus lourdes — avec une consommation de tokens nettement supérieure.

Si vous migrez du code écrit pour la génération précédente (GPT-5.3, GPT-5.4, o3, o3-pro, o4-mini), les équivalences sont les suivantes :

  • o3 / o3-progpt-5.6-sol avec reasoning en high, xhigh ou max
  • o4-minigpt-5.6-terra avec reasoning en medium
  • gpt-5.3 / gpt-5.4 (usage courant) → gpt-5.6-terra
  • Tâches à haut volume → gpt-5.6-luna

Router dynamiquement en production

En production, vous n’aurez pas un seul type de requête mais plusieurs, et figer un modèle unique dans votre code revient soit à surpayer les tâches simples, soit à bâcler les tâches difficiles. Le pattern du routeur consiste à centraliser la décision dans une fonction, appelée avant chaque requête, qui renvoie la configuration adaptée. Vous pouvez ensuite l’ajuster sans toucher au reste de l’application.

def choisir_config(tache: str, complexite: str, budget: str) -> dict:
    """Sélectionne le modèle et l'effort de raisonnement optimaux."""
    if complexite == "haute" and tache in ["math", "code", "logique"]:
        return {"model": "gpt-5.6-sol", "reasoning": {"effort": "high"}}
    elif budget == "minimal" or complexite == "basse":
        return {"model": "gpt-5.6-luna", "reasoning": {"effort": "none"}}
    elif tache in ["diagnostic", "classification_fine"]:
        return {"model": "gpt-5.6-terra", "reasoning": {"effort": "medium"}}
    else:
        return {"model": "gpt-5.6-terra", "reasoning": {"effort": "low"}}

# Utilisation
config = choisir_config(tache="chatbot", complexite="moyenne", budget="standard")
response = client.responses.create(
    input="Votre question ici",
    **config
)

Tarifs relevés le 5 août 2026 — les prix évoluent régulièrement : avant tout calcul de budget, vérifiez la grille en vigueur sur la tarification officielle OpenAI.

Points clés à retenir

  • Terra est le choix par défaut pour la plupart des tâches (2 $ / 12 $ par MTok)
  • Sol pour la qualité maximale et le raisonnement poussé (5 $ / 30 $) ; Luna pour le volume (0,20 $ / 1,20 $)
  • Le raisonnement est un paramètre par requête (nonemax, plus ultra), pas un modèle séparé
  • Équivalences migration : o3/o3-pro → Sol high/xhigh/max ; o4-mini → Terra medium ; GPT-5.3/5.4 → Terra
  • En production, routez dynamiquement vers la bonne combinaison modèle + effort selon le contexte