Zum Hauptinhalt springen
Lektion 3 von 12 · Strukturierte JSON-Ausgaben

Nicht unterstützte Typen und Einschränkungen

Lektion 3 von 12 Aktualisiert am 30. Juli 2026 Entwickler
Auf dieser Seite
  1. Was Schemata nicht können
  2. Die drei Hauptbeschränkungen
  3. Weitere Einschränkungen, die Sie kennen müssen
  4. Die Strategie: Schema + Prompt
  5. Wichtige Erkenntnisse

Was Schemata nicht können

Das Verständnis der Grenzen strukturierter Ausgaben ist ebenso wichtig wie das Beherrschen ihrer Möglichkeiten. Die Grok-API unterstützt bestimmte JSON-Schema-Einschränkungen nicht. Der Versuch, diese zu verwenden, führt zu Fehlern oder unerwartetem Verhalten.

Die drei Hauptbeschränkungen

allOf — Zusammensetzung nicht erlaubt

Das Keyword allOf in JSON Schema kombiniert mehrere Teil-Schemata, die ein Objekt gleichzeitig erfüllen muss. Die Grok-API unterstützt diese Funktion nicht.

// FUNKTIONIERT NICHT
{
  "allOf": [
    { "properties": { "nom": { "type": "string" } } },
    { "properties": { "age": { "type": "number" } } }
  ]
}

Alternative: Verwenden Sie ein einzelnes Objekt mit allen Eigenschaften:

// FUNKTIONIERT
{
  "type": "object",
  "properties": {
    "nom": { "type": "string" },
    "age": { "type": "number" }
  }
}

minLength / maxLength — keine Längenbeschränkungen für Strings

Sie können das Modell nicht dazu zwingen, einen String mit einer minimalen oder maximalen Länge zu erzeugen.

// FUNKTIONIERT NICHT
{
  "properties": {
    "code": {
      "type": "string",
      "minLength": 3,
      "maxLength": 10
    }
  }
}

Alternative: Definieren Sie die Einschränkung im Prompt anstelle des Schemas:

messages=[{
    "role": "user",
    "content": "Generieren Sie einen Produktcode zwischen 3 und 10 Zeichen."
}]

Das Modell folgt der Anweisung in den meisten Fällen, ist aber nicht wie bei einer Schema-Einschränkung garantiert.

minItems / maxItems — keine Größenbeschränkungen für Arrays

Sie können eine minimale oder maximale Anzahl von Elementen in einem Array nicht erzwingen.

// FUNKTIONIERT NICHT
{
  "properties": {
    "tags": {
      "type": "array",
      "items": { "type": "string" },
      "minItems": 1,
      "maxItems": 5
    }
  }
}

Alternative: Verwenden Sie den Prompt, um das Modell zu führen:

messages=[{
    "role": "user",
    "content": "Listen Sie zwischen 1 und 5 relevante Tags für diesen Artikel auf."
}]

Weitere Einschränkungen, die Sie kennen müssen

Keine regulären Ausdrücke

Die API unterstützt keine pattern-Einschränkungen für Strings. Sie können ein E-Mail-Format, eine UUID oder eine Telefonnummer nicht über das Schema erzwingen.

// FUNKTIONIERT NICHT
{
  "properties": {
    "email": {
      "type": "string",
      "pattern": "^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9.-]+$"
    }
  }
}

Keine Standardwerte

Das Keyword default hat keine Wirkung. Wenn ein Feld im Schema enthalten ist, wird das Modell es immer befüllen.

Keine Konditionalen

Die JSON-Schema-Keywords if, then und else sind nicht verfügbar.

Die Strategie: Schema + Prompt

Der beste Ansatz kombiniert beides:

  1. Das Schema garantiert die Struktur: Feldnamen, Typen, Verschachtelung
  2. Der Prompt führt die Inhalte: Längen, spezifische Formate, Geschäftsregeln
class Report(BaseModel):
    title: str
    summary: str
    key_points: list[str]
    score: float
    category: str

messages=[{
    "role": "user",
    "content": """Analysieren Sie diesen Text und erstellen Sie einen Bericht.
    - Die Zusammenfassung muss 2-3 Sätze lang sein.
    - Listen Sie genau 5 Hauptpunkte auf.
    - Die Punktzahl liegt zwischen 0 und 10.
    - Kategorie aus: positiv, negativ, neutral."""
}]

Das Schema garantiert Typen und Struktur. Der Prompt steuert Werte und Inhaltseinschränkungen.

Wichtige Erkenntnisse

  • allOf, minLength, maxLength, minItems und maxItems werden nicht unterstützt
  • pattern, default und if/then/else-Einschränkungen werden ebenfalls nicht unterstützt
  • Verwenden Sie anyOf anstelle von allOf, wann immer möglich
  • Übertragen Sie Inhaltseinschränkungen an den Prompt
  • Die Kombination aus Schema (Struktur) + Prompt (Inhalt) ist die optimale Strategie