Unsere KI-Content-Pipeline läuft mit GPT-6 Sol — und erzeugt weniger Bilder als früher
Aktualisiert am 24. September 2026: In diesem Beitrag wurde ursprünglich die Pipeline mit GPT-5.6 beschrieben. Sie läuft jetzt mit GPT-6 Sol, die Übersetzung mit GPT-6 Luna; die Modellnamen und der folgende Code spiegeln das wider.
Jeder Prompt zur Content-Generierung in der Pipeline von Green Yoga Inc ist jetzt auf GPT-6 Sol ausgerichtet. Das ist pro Datei eine Änderung in einer Zeile. Worüber es sich zu schreiben lohnt, ist, was mit der Bildgenerierung passiert ist, die wir vollständig aus der Pipeline entfernt haben.
Wo das Modell tatsächlich ausgewählt wird
Die Prompts liegen in ai-prompts/ als einfache Textdateien mit einem Header, niemals als String-Literale im Lambda-Quellcode. Aktuell gibt es 23 davon sowie ein JSON-Manifest für einmalige Bild-Batches. Sechzehn enthalten MODEL: gpt-6-sol.
Die übrigen tun das absichtlich nicht:
21-content-translation.txtläuft mitgpt-6-luna, dem kleineren GPT-6-Modell. Es übersetzt die Website in acht Sprachen. Bei dieser Arbeitslast ist das Volumen wichtiger als der letzte Qualitätszuwachs.- Die drei
gptimage-*-Promptdateien, die die Lambda noch einliest, enthalten überhaupt keinenMODEL:-Header, denn die Lambda sendet sie nicht mehr an OpenAI. Dazu weiter unten mehr. - Bei den übrigen drei handelt es sich um zwei Kontextfragmente, die in andere Prompts eingefügt werden, und einen Bild-zu-Video-Prompt, der auf einen anderen Anbieter ausgerichtet ist.
Beide Lambdas — ai-content-engine und yoga-script — ermitteln das im Header angegebene Modell über normalizeModel():
function normalizeModel(raw?: string): string {
if (!raw) return "gpt-6-sol";
// Legacy GPT-5.x ids -> current model
if (m === "gpt-5" || m === "gpt-5.1" || ... || m === "gpt-5.6" || m === "gpt-image-1.5") {
return "gpt-6-sol";
}
if (m === "gpt-4o" || m === "gpt4o") return "gpt-4o";
return m;
}
Jede veraltete ID — von gpt-5 bis gpt-5.6 sowie das alte gpt-image-1.5 — wird zu gpt-6-sol. Eine Promptdatei, die seit sechs Monaten niemand angefasst hat, kann kein ausgemustertes Modell aufrufen; stattdessen wird ihr stillschweigend das aktuelle Modell zugewiesen. gpt-4o und gpt-4o-mini bleiben unverändert, weil ein Codepfad gpt-4o weiterhin bewusst benötigt.
Beide Lambdas verwenden Chat Completions
Die Textgenerierung läuft bei beiden Lambdas über POST /v1/chat/completions. Wenn du unseren Beitrag vom April gelesen hast, ist das eine Kehrtwende: Wir hatten auf die Responses API umgestellt. Wir sind wieder zurückgewechselt. Chat Completions ist die unkomplizierte, gut verstandene Schnittstelle für das, was diese beiden Funktionen tatsächlich tun: einen System-Prompt und einen Benutzer-Prompt entgegennehmen und einen Text zurückgeben.
Die einzigen Aufrufe von POST /v1/responses stammen noch aus Entwicklerskripten, die manuell auf einem Arbeitsplatzrechner ausgeführt werden. scripts/generate-pose-images.mjs verwendet das Tool image_generation mit gpt-6-sol bei 1024x1024; zwei weitere einmalige Bildskripte machen dasselbe bei 1536x1024. Das sind lokale Batch-Jobs, kein Browser-Traffic, und sie rufen OpenAI ganz bewusst direkt auf.
Der Yoga Sequence Builder teilt sich seine Zeit selbst ein
Der Yoga Sequence Builder erstellt Unterrichtsskripte über die yoga-script-Lambda, die von 05-yoga-script-generator.txt mit GPT-6 Sol gesteuert wird. Die Skripterstellung ist langsam und ihre Dauer schwankt. Deshalb besteht der Großteil der Logik der Lambda eher aus Zeitberechnungen als aus Prompting:
- Ein einzelner Hauptversuch ist auf sieben Minuten begrenzt, damit ein langsamer Aufruf nicht die gesamte Ausführungszeit beansprucht.
- Für die Serialisierung und Rückgabe einer Antwort sind am Ende 25 Sekunden reserviert.
- Es gibt einen
gpt-4o-Fallback, der jedoch nur ausgeführt wird, wenn mindestens zwei Minuten Puffer bleiben.
Diese letzte Regel ist entscheidend. Schlägt der Hauptversuch spät fehl und bleibt nicht genügend Zeit, startet die Lambda den Fallback nicht und gibt stattdessen einen ausdrücklichen Fehler zurück — Skipping gpt-4o fallback: insufficient Lambda time remaining. Einen Aufruf zu starten, den man nicht abschließen kann, verwandelt einen klaren Fehler lediglich in einen Timeout, der deutlich schwieriger zu debuggen ist.
Wir haben die automatische Bildgenerierung eingestellt
Das ist die eigentliche Änderung seit April.
generateImage() in ai-content-engine ist jetzt ein No-op-Stub. Er nimmt seine Argumente entgegen, ignoriert sie und gibt das Fallback-Titelbild zurück:
/** 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;
}
Ersetzt wurde die Funktion nicht durch ein anderes Modell, sondern durch einen Menschen. generateOrReuseImage() schreibt den Bild-Prompt mit einem leeren S3-Schlüssel in DynamoDB und gibt das Fallback zurück. In der Freigabe-E-Mail wird der Prompt an einen Menschen weitergeleitet. Kommt die Antwort mit einem Bild im Anhang zurück, fügt eine separate media-receiver-Lambda das eigentliche Asset ein.
Der Prompt wird in drei separaten Feldern gespeichert — clipL, t5xxl und negative — statt als ein einziger Block, weil die Person, die das Bild erstellt, in der Regel nicht OpenAI verwendet. Das sind Prompt-Felder für Diffusionsmodelle. Durch die Trennung kann die zuständige Person jeden Teil in das passende Feld einfügen, statt einen zusammengefügten String erst auseinandernehmen zu müssen.
Warum eine langsamere Pipeline die richtige Pipeline ist
Die automatische Erstellung von Titelbildern war die Funktion, bei der am ehesten etwas Peinliches auf der Website landen konnte, ohne dass es vorher jemand gesehen hatte. Texte durchlaufen ohnehin bereits eine Freigabe per E-Mail. Bei Bildern war das nicht der Fall — sie wurden in einem einzigen unbeaufsichtigten Durchlauf generiert, hochgeladen und veröffentlicht.
Das Entfernen dieser Funktion hat die Veröffentlichung tatsächlich verlangsamt. Es bedeutet aber auch, dass ein Mensch jedes Bild auf dieser Website angesehen hat, bevor es veröffentlicht wurde — genau das wollten wir erreichen. Das Modell wurde besser, und wir haben ihm weniger unbeaufsichtigte Arbeit überlassen. Das widerspricht sich nicht.
Die Prompts liegen in ai-prompts/; die Lambdas befinden sich in lambda/ai-content-engine und lambda/yoga-script. Wenn du Hilfe beim Entwerfen eines Freigabeprozesses für deine eigene KI-Content-Pipeline möchtest, melde dich bei uns.
