Start → Hilfe

Der JSON-Modus liefert trotzdem Text, der sich nicht parsen lässt

Der einfache JSON-Modus verspricht syntaktisch gültiges JSON nur, wenn das Modell bis zum Ende läuft. Er verspricht nicht Ihr Schema, und er kann gar nichts versprechen, wenn die Generierung wegen max_tokens früh endet.

Was Sie sehen

Warum das passiert

Wird das Output-Limit erreicht, wird das Objekt mitten im Token abgeschnitten. Das Ergebnis lässt sich nicht parsen, ohne dass der Prompt schuld wäre – prüfen Sie finish_reason, bevor Sie den Parser prüfen.

Der einfache JSON-Modus hat kein Schema. Das Modell kann gültiges JSON mit anderen Schlüsseln oder einer unerwarteten Verschachtelung liefern, und es lässt sich sauber parsen, während es Ihren Code kaputt macht.

Manche Modelle packen die Ausgabe in Markdown-Codeblöcke, wenn der Prompt so formatierte Beispiele enthält. Der Inhalt ist in Ordnung; die Verpackung lässt es scheitern.

So beheben Sie es

  1. Vor dem Parsen finish_reason prüfenEin finish_reason von length bedeutet Abschneiden. Erhöhen Sie max_tokens oder verlangen Sie ein kleineres Objekt, statt den Parser zu debuggen.
  2. Schema-erzwungene Ausgabe nutzen, wo das Modell sie unterstütztEin JSON Schema zu übergeben, statt in Worten um JSON zu bitten, ist das, was die Schlüssel tatsächlich festlegt. Prüfen Sie das Ergebnis trotzdem.
  3. Codeblock-Markierungen vorsorglich entfernenEin dreizeiliger Vorschritt, der führende und abschließende Markierungen entfernt, kostet nichts und beseitigt eine ganze Fehlerklasse.
Abgeschnittene Ausgabe ist trotzdem erzeugte Ausgabe und wird bei APICLAN abgerechnet. finish_reason zu lesen und max_tokens richtig zu dimensionieren spart die Wiederholung – und die ist der eigentliche Kostenfaktor.

Verwandte Themen

Unexpected token '<' beim Aufruf einer OpenAI-kompatiblen API401 invalid API key – wenn der Schlüssel richtig aussieht und trotzdem scheitert

Zuletzt geprüft am 2026-10-01. Geschrieben aus Problemen, die auf einem laufenden OpenAI-kompatiblen Gateway diagnostiziert wurden – nicht von anderen Seiten zusammengetragen.