IT18 août 2026

Notre pipeline de contenu IA fonctionne sur GPT-5.6 — et génère moins d’images qu’avant

Par Andrea Borghi
Notre pipeline de contenu IA fonctionne sur GPT-5.6 — et génère moins d’images qu’avant

Notre pipeline de contenu IA fonctionne sur GPT-5.6 — et génère moins d’images qu’avant

Chaque prompt texte dans le pipeline de contenu de Green Yoga Inc cible désormais GPT-5.6. Cette partie se résume à un changement d’une ligne par fichier. Ce qui vaut la peine d’être décrit, c’est ce qui s’est passé pour la génération d’images, que nous avons retirée du pipeline entièrement.

Où le modèle est réellement choisi

Les prompts vivent dans ai-prompts/ sous forme de fichiers texte simples avec un en-tête, jamais comme littéraux de chaîne dans le code source Lambda. Il y en a 19 aujourd’hui, plus un manifeste JSON pour des lots d’images ponctuels. Quinze portent MODEL: gpt-5.6.

Deux ne le portent pas, volontairement :

  • 21-content-translation.txt reste sur gpt-5.4-mini. Il traduit le site en huit langues, et c’est la seule charge de travail où le volume compte davantage que le dernier incrément de qualité. Une retraduction complète de tout coûte environ dix cents.
  • Les trois fichiers de prompt gptimage-* ne portent aucun en-tête MODEL: du tout, parce que plus rien dans Lambda ne les envoie à OpenAI. Plus de détails ci-dessous.

Les deux Lambdas — ai-content-engine et yoga-script — résolvent ce que l’en-tête indique via normalizeModel() :

function normalizeModel(raw?: string): string {
  if (!raw) return "gpt-5.6";
  // Legacy GPT-5.x ids -> current flagship
  if (m === "gpt-5" || m === "gpt-5.1" || ... || m === "gpt-5.5" || m === "gpt-image-1.5") {
    return "gpt-5.6";
  }
  if (m === "gpt-4o" || m === "gpt4o") return "gpt-4o";
  return m;
}

Tout identifiant hérité — de gpt-5 à gpt-5.5, ainsi que l’ancien gpt-image-1.5 — est ramené à gpt-5.6. Un fichier de prompt que personne n’a touché depuis six mois ne peut pas appeler un endpoint obsolète ; il obtient silencieusement le modèle phare actuel à la place. gpt-4o et gpt-4o-mini passent sans changement, parce qu’un chemin de code a encore délibérément besoin de gpt-4o.

Les deux Lambdas utilisent Chat Completions

La génération de texte passe par POST /v1/chat/completions depuis les deux Lambdas. Si vous avez lu notre article d’avril, c’est un retour en arrière : nous nous étions consolidés sur l’API Responses. Nous sommes revenus en arrière. Chat Completions est l’interface simple et bien comprise pour ce que ces deux fonctions font réellement : prendre un prompt système et un prompt utilisateur, puis renvoyer du texte.

La seule chose qui appelle encore POST /v1/responses est scripts/generate-pose-images.mjs, un script de développement exécuté manuellement depuis un poste de travail. Il utilise l’outil image_generation sur gpt-5.6 en 1024x1024. C’est un traitement par lot local, pas du trafic navigateur, et il appelle OpenAI directement volontairement.

Le Yoga Sequence Builder gère son propre budget temps

Le Yoga Sequence Builder génère des scripts pédagogiques via la Lambda yoga-script, pilotée par 05-yoga-script-generator.txt sur GPT-5.6. La génération de scripts est lente et variable, donc la Lambda consacre la majeure partie de sa logique à l’arithmétique plutôt qu’au prompting :

  • une seule tentative principale est plafonnée à sept minutes, afin qu’un appel lent ne puisse pas consommer toute l’invocation
  • 25 secondes sont réservées à la fin pour sérialiser et renvoyer une réponse
  • un repli gpt-4o existe, mais il ne s’exécute que s’il reste au moins deux minutes de marge

Cette dernière règle est celle qui compte. Si la tentative principale échoue tardivement et qu’il ne reste pas assez de temps, la Lambda refuse de démarrer le repli et renvoie à la place une erreur explicite — Skipping gpt-4o fallback: insufficient Lambda time remaining. Lancer un appel que l’on ne peut pas terminer transforme simplement une erreur claire en délai d’expiration, ce qui est nettement plus difficile à déboguer.

Nous avons arrêté de générer des images automatiquement

C’est le vrai changement depuis avril.

generateImage() dans ai-content-engine est désormais un stub no-op. Il prend ses arguments, les ignore et renvoie l’image de couverture de secours :

/** Kept as a no-op stub for callers that still reference it directly. */
async function generateImage(imagePrompt: string, s3Key: string): Promise<string> {
  void imagePrompt;
  void s3Key;
  return FALLBACK_COVER_IMAGE;
}

Ce qui l’a remplacé n’est pas un autre modèle. C’est une personne. generateOrReuseImage() écrit le prompt d’image dans DynamoDB avec une clé S3 vide et renvoie le fallback, et l’e-mail d’approbation transmet ce prompt à un humain. Quand la réponse revient avec une image jointe, une Lambda media-receiver distincte renseigne l’asset réel.

Le prompt est stocké sous trois champs séparés — clipL, t5xxl et negative — plutôt que dans un seul bloc, parce que la personne qui le rend n’utilise généralement pas OpenAI. Ce sont des emplacements de prompt pour modèles de diffusion, et les séparer permet à l’opérateur de coller chacun dans la bonne case au lieu de démêler une chaîne concaténée.

Pourquoi un pipeline plus lent est le bon pipeline

La génération automatique des couvertures était la fonctionnalité la plus susceptible de mettre quelque chose d’embarrassant sur le site sans que personne ne le voie d’abord. Le texte passe déjà par un e-mail d’approbation. Les images, elles, ne le faisaient pas — elles étaient générées, téléversées et publiées en une seule passe sans surveillance.

Supprimer cela a effectivement ralenti la publication. Cela signifie aussi que chaque image sur ce site a été examinée par un humain avant sa mise en ligne, ce qui est la propriété que nous voulions réellement. Le modèle est devenu meilleur et nous lui avons donné moins à faire sans supervision. Il n’y a pas de contradiction entre les deux.


Les prompts se trouvent dans ai-prompts/ ; les Lambdas se trouvent dans lambda/ai-content-engine et lambda/yoga-script. Si vous souhaitez de l’aide pour concevoir un flux d’approbation pour votre propre pipeline de contenu IA, contactez-nous.