Ein JSON Schema in anbieterfertige strukturierte Ausgabe umwandeln

Fügen Sie ein JSON Schema ein, wählen Sie das Ziel und erzeugen Sie das Snippet lokal. Die Seite nennt weggelassene Schlüsselwörter, prüft, ob der Strict-Modus von OpenAI möglich ist, und sendet nichts an einen Anbieter.

Läuft lokal in deinem Browser
Dieses Werkzeug verarbeitet alle Daten lokal in deinem Browser.
JSON SchemaFügen Sie das JSON Schema für das Objekt ein, das ein LLM zurückgeben soll. Das Werkzeug wandelt nur das Schema um; Prompt, Schema und API-Schlüssel bleiben lokal.
Integrations-Snippet

Ein JSON Schema in ein LLM-Ausgabe-Snippet umwandeln

Die Seite liest ein JSON Schema und schreibt die Konfiguration, die jeder Anbieter für strukturierte Ausgaben erwartet: ein OpenAI response_format, eine Anthropic-Werkzeugdefinition, eine Gemini generationConfig oder ein TypeScript-Interface. Die Umwandlung ist ein lokaler Durchlauf durch den Schema-Baum, daher wird kein Anbieter kontaktiert und kein API-Schlüssel verwendet.

Weil die vier Ziele nicht dieselben Schlüsselwörter akzeptieren, nennt die Statuszeile jedes Schlüsselwort, das das gewählte Ziel nicht übernehmen kann, und das Snippet wird ohne es geschrieben. Lesen Sie die Zeile, bevor Sie das Snippet in eine Anfrage einfügen: ein weggelassenes $ref oder default ändert, was das Modell zurückgeben darf.

  1. Fügen Sie das JSON Schema in den linken Bereich ein oder laden Sie mit Beispiel laden ein Schema mit Objekt, Enum und verschachteltem Array.
  2. Wählen Sie das Ziel: OpenAI Structured Outputs, Anthropic Tool-Input-Schema, Gemini-Response-Schema oder TypeScript-Interface.
  3. Passen Sie den Schema-Namen an, wenn er einem Werkzeug- oder Interfacenamen in Ihrem Code entsprechen soll.
  4. Klicken Sie auf Snippet erzeugen und lesen Sie die Statuszeile: sie wiederholt, was weggelassen wurde, ob der Strict-Modus von OpenAI möglich war und ob der Name angepasst werden musste.
  5. Kopieren oder laden Sie das Ergebnis herunter und leeren Sie die Seite, bevor Sie das nächste Schema bearbeiten.

Was die einzelnen Ziele erhalten und was dieser Konverter nicht übernimmt

Was die einzelnen Ziele erhalten

OpenAI erhält ein response_format-Objekt mit einem json_schema-Block; strict wird nur dann als true geschrieben, wenn jedes Objekt im Schema additionalProperties auf false setzt und alle seine Eigenschaften in required auflistet, denn nur diese Form akzeptiert OpenAI im Strict-Modus. Sonst trägt das Snippet strict: false und ein Kommentar erklärt warum.

Anthropic erhält ein tool-Objekt, dessen input_schema das umgewandelte Schema ist, bereit für das tools-Array. Gemini erhält ein responseSchema mit Großbuchstaben-Typen, const als Enum mit einem Wert und eine nullable-Union als nullable. TypeScript erhält ein Interface, dessen Eigenschaftsnamen exakt den JSON-Schlüsseln entsprechen: Schlüssel, die keine gültigen Bezeichner sind, stehen in Anführungszeichen, Unions wie type: ["string","null"] bleiben erhalten, und eine Wurzel, die kein Objekt ist, wird zu einem export type-Alias.

Welche Schlüsselwörter weggelassen werden

Kompositions- und Referenz-Schlüsselwörter brauchen einen Resolver; $ref, $defs, anyOf, oneOf, allOf, not, if/then/else, patternProperties und prefixItems werden daher in kein Ziel übernommen. Die Einschränkungen, die OpenAI- und Anthropic-Ausgaben behalten, etwa pattern, format, minimum oder maxLength, werden für Gemini gemeldet, das ein engeres Schema akzeptiert.

Verschachtelung wird acht Ebenen unter der Wurzel verfolgt; Tieferes wird durch ein leeres Schema ersetzt und die Statuszeile sagt es. In TypeScript gibt es außerdem keinen Platz für Einschränkungen wie minLength oder pattern: ein Typ beschreibt die Form, er validiert nicht, deshalb gehören sie nicht zum Interface.

Namen, Fehlerfälle und Datenschutz

Der Schema-Name wird auf Buchstaben, Ziffern, Bindestriche und Unterstriche reduziert; ein leeres Feld wird zu structured_response, Namen über 64 Zeichen werden für die Anbieter-Ziele gekürzt, und ein TypeScript-Interface erhält zusätzlich einen gültigen Bezeichner, eine führende Ziffer wird also zu _123report. Musste der Text geändert werden, zeigt die Statuszeile den tatsächlich verwendeten Namen.

Kann ein Durchlauf kein Snippet erzeugen - leere Eingabe, fehlerhaftes JSON, ein Array oder ein Objekt ohne type und properties - wird der Grund genannt, bei JSON-Fehlern mit Zeile und Spalte, und der Ausgabebereich geleert, damit ein älteres Snippet nie für das aktuelle gehalten wird. Nichts wird hochgeladen: Schema, erzeugter Code und Name bleiben im Browser.

Zuletzt verwendet: