Ausgabeformate zuverlässig erzwingen
Von der Bitte im Prompt bis zum echten JSON-Schema der API – drei Ebenen, mit denen du ein festes Ausgabeformat erzwingst.
Die einfachste Ebene: der Prompt
Der Klassiker ist eine klare Format-Anweisung im Prompt: „Antworte ausschließlich als JSON mit den Feldern name, alter, stadt" plus ein Beispiel-Output. Das funktioniert oft gut, ist aber nicht garantiert – das Modell kann trotzdem mal einen Satz voranstellen oder ein Feld vergessen.
Die zuverlässigere Ebene: API-Features
Moderne LLM-APIs bieten eigene Mechanismen, die ein Format technisch erzwingen statt nur zu empfehlen. Claude bietet dafür Structured Outputs mit JSON-Schema-Validierung; OpenAI nennt sein Feature ebenso Structured Outputs. Beide garantieren, dass die Antwort exakt dem übergebenen Schema entspricht – kein Nachbessern mehr nötig, um kaputtes JSON zu reparieren.
Wichtige Abgrenzung
Prompt-Anweisungen sind ein Pattern – eine Gewohnheit, die meistens, aber nicht garantiert funktioniert. API-Features wie Structured Outputs sind dagegen eine technische Garantie der Schnittstelle selbst. Für unkritische Formatierung reicht oft der Prompt; für Code, der das Ergebnis weiterverarbeitet, lohnt sich das API-Feature.
Validierung als drittes Sicherheitsnetz
Selbst mit garantierten Formaten bleibt Validierung sinnvoll: Prüfe die Antwort gegen dein Schema und baue bei Fehlern eine Retry-Schleife ein. Das fängt Fälle ab, die außerhalb reiner Formatfragen liegen – etwa gültiges JSON mit inhaltlich unsinnigen Werten.
BEISPIEL
Prompt-Ebene (kein Garant): „Antworte NUR mit gültigem JSON im Format {\"stadt\": string, \"land\": string}, ohne zusätzlichen Text." API-Ebene (garantiert, Pseudocode): output_config={\"format\": {\"type\": \"json_schema\", \"schema\": {\"type\": \"object\", \"properties\": {\"stadt\": {\"type\": \"string\"}, \"land\": {\"type\": \"string\"}}, \"required\": [\"stadt\", \"land\"]}}} – jede Antwort entspricht garantiert diesem Schema.
🛠️ ÜBUNG — MACH DAS BEI DIR
Erzwinge ein festes JSON-Format einmal nur per Prompt und einmal per Schema-Parameter, und vergleiche die Zuverlässigkeit.
- Bitte das Modell per Prompt-Anweisung um eine JSON-Antwort mit festen Feldern für 5 Testanfragen.
- Prüfe, ob alle 5 Antworten valides, vollständiges JSON ohne zusätzlichen Text sind.
- Wiederhole dieselben Anfragen mit einem echten JSON-Schema über ein Structured-Outputs-Feature deiner Wahl.
- Vergleiche die Fehlerquote beider Ansätze.
✅ SELBST-CHECK
- ☐ Gab es bei der reinen Prompt-Variante mindestens eine Antwort mit zusätzlichem Text oder fehlendem Feld?
- ☐ War die Schema-Variante in allen 5 Fällen tatsächlich zu 100 % konform?
KURZ-QUIZ
Was ist der zentrale Unterschied zwischen einer Format-Anweisung im Prompt und einem API-Feature wie Structured Outputs?
QUELLEN
- Claude Doku: Structured Outputs ↗ platform.claude.com
- OpenAI Doku: Structured Outputs ↗ developers.openai.com