Design
Sprache
·3 Min. Lesezeit

JSON-Modus und strukturierte Ausgaben: Welche Modelle was unterstützen

Eine Matrix nach Modell zum JSON-Modus in der GetVibe API, zum Unterschied zwischen json_object und json_schema sowie zu einem Fallback, der bei jedem Modell funktioniert: erzwungene Tool-Aufrufe.

JSON-Modus und strukturierte Ausgaben: Welche Modelle was unterstützen

Wenn Ihr Code die Antwort des Modells parst, benötigen Sie JSON, das bei jedem Aufruf geparst werden kann. Auf der GetVibe API gibt es dafür drei Möglichkeiten: den json_object-Modus, den strikten json_schema-Modus und erzwungene Tool-Aufrufe. Die Modelle unterscheiden sich darin, welche dieser Möglichkeiten sie unterstützen. Dieser Artikel stellt die Matrix unseres Katalogs vor und zeigt, welcher Ansatz sich wo eignet.

Die drei Ansätze

  • response_format: {"type": "json_object"}: Das Modell gibt gültiges JSON zurück. Sie beschreiben die Felder im Prompt.
  • response_format: {"type": "json_schema", ...} mit strict: true: Das Modell füllt exakt das von Ihnen übergebene Schema aus. Unterstützt von GPT-5.x und kompatiblen Modellen.
  • Erzwungener Tool-Aufruf (tools plus tool_choice, wobei eine Funktion angegeben wird): Das Modell gibt die Funktionsargumente als JSON zurück, das dem Parameterschema der Funktion entspricht. Jedes Textmodell in unserem Katalog unterstützt Tool-Aufrufe, daher ist dies die portable Option.

Die Matrix

Die Spalte für den JSON-Modus enthält caps.jsonMode aus https://getvibeapi.com/api/catalog, abgerufen am 25. September 2026.

ModellJSON-ModusTool-AufrufePreis
GPT-6 Lunajaja$0.0055 Eingabe · $0.0274 Ausgabe pro 1 Mio. Tokens
GPT-6 Soljaja$0.1096 Eingabe · $0.548 Ausgabe pro 1 Mio. Tokens
GPT-6 Astraneinja$0.548 Eingabe · $2.7398 Ausgabe pro 1 Mio. Tokens
GPT-5.6 Sol (auch Luna, Terra)jaja$0.0667 Eingabe · $0.40 Ausgabe pro 1 Mio. Tokens
Claude Opus 5.5jaja$0.1067 Eingabe · $0.5334 Ausgabe pro 1 Mio. Tokens
Claude Sonnet 5jaja$0.3334 Eingabe · $1.6667 Ausgabe pro 1 Mio. Tokens
Gemini 3.1 Projaja$0.2515 Eingabe · $1.5086 Ausgabe pro 1 Mio. Tokens
Gemini 3.8 Flash (auch 3.7 Flash)neinja$0.0097 Eingabe · $0.0483 Ausgabe pro 1 Mio. Tokens
DeepSeek V4.1 Flashjaja$0.0112 Eingabe · $0.0445 Ausgabe pro 1 Mio. Tokens
Qwen3.8 Max (auch 3.8 Flash)jaja$0.1543 Eingabe · $0.4629 Ausgabe pro 1 Mio. Tokens
Kimi K3jaja$0.1715 Eingabe · $0.8572 Ausgabe pro 1 Mio. Tokens
MiniMax M3jaja$0.0148 Eingabe · $0.0591 Ausgabe pro 1 Mio. Tokens
Tencent Hy4 Previewjaja$0.0334 Eingabe · $0.1001 Ausgabe pro 1 Mio. Tokens
GLM-5.3 (auch 5.3 Flash, 5.2)neinja$0.10 Eingabe · $0.3143 Ausgabe pro 1 Mio. Tokens

Verwenden Sie bei Modellen mit der Kennzeichnung „nein“ einen erzwungenen Tool-Aufruf oder beschreiben Sie das JSON im Prompt und validieren Sie es auf Ihrer Seite.

Was der strikte Modus auf unserer Seite bewirkt

Bei strict: true in einer json_schema-Anfrage leitet das Gateway die Anfrage nur an Modellvarianten weiter, die das Schema tatsächlich einhalten. Dies geschieht bei jedem Versuch, einschließlich eines Wechsels zu einem Backup. Wenn keine geeignete Variante verfügbar ist, erhalten Sie den ausdrücklichen Fehler structured_output_unsupported statt Klartext, wenn JSON erwartet wurde. Diese Absicherung basiert auf unseren Messungen und deckt nur die von uns gemessenen Varianten ab.

Ein bekannter Fall: Die eigene API von DeepSeek verfügt über keinen json_schema-Modus. Verwenden Sie bei DeepSeek-Modellen json_object oder einen erzwungenen Tool-Aufruf, wenn Sie exakt eine bestimmte Struktur benötigen.

Beispiele

Striktes Schema:

from openai import OpenAI
import json

client = OpenAI(base_url="https://getvibeapi.com/v1", api_key="sk-pv-...")
schema = {
    "type": "object",
    "properties": {"name": {"type": "string"}, "score": {"type": "number"}},
    "required": ["name", "score"],
    "additionalProperties": False,
}
resp = client.chat.completions.create(
    model="gpt-6-luna",
    response_format={"type": "json_schema",
                     "json_schema": {"name": "review", "strict": True, "schema": schema}},
    messages=[{"role": "user", "content": "Bewerten Sie dieses Produkt: schnelle Lieferung, sorgfältige Verpackung"}],
)
print(json.loads(resp.choices[0].message.content))

Erzwungener Tool-Aufruf, der auch bei Modellen ohne JSON-Modus funktioniert:

resp = client.chat.completions.create(
    model="gemini-3.8-flash",
    tools=[{"type": "function", "function": {"name": "save_review", "parameters": schema}}],
    tool_choice={"type": "function", "function": {"name": "save_review"}},
    messages=[{"role": "user", "content": "Bewerten Sie dieses Produkt: schnelle Lieferung, sorgfältige Verpackung"}],
)
args = json.loads(resp.choices[0].message.tool_calls[0].function.arguments)

Immer validieren

Prüfen Sie auch bei aktiviertem JSON-Modus das geparste Objekt anhand Ihres Schemas, bevor Sie es verwenden, und wiederholen Sie den Aufruf bei einem Fehler. Das ist besonders bei langen Ausgaben wichtig, da eine bei max_tokens abgeschnittene Antwort zu abgeschnittenem JSON führt. Prüfen Sie finish_reason: length bedeutet, dass die Antwort vorzeitig beendet wurde.

Nächste Schritte

Lesen Sie die Dokumentation zu strukturierten Ausgaben und den Leitfaden zu Tool-Aufrufen oder finden Sie ein kostengünstiges JSON-fähiges Modell in unserer Liste der günstigsten LLM-APIs.

JSON-Modusstrukturierte Ausgabenresponse_format json_schemaJSON-Ausgabe von LLMsjson_object vs json_schemaJSON-Funktionsaufrufe

GetVibe API kostenlos testen

GPT, Claude, Gemini und mehr über eine einzige OpenAI-kompatible API. Bezahle in USD per Karte oder Kryptowährung.

Ähnliche Artikel

JSON-Modus und strukturierte Ausgaben: Welche Modelle was unterstützen | GetVibe API