Docs
Funktionen

Strukturierte Ausgabe

Antworten mit response_format auf der OpenAI-Oberfläche auf JSON einschränken

Verwenden Sie response_format bei /v1/chat/completions, damit das Modell JSON statt Freitext zurückgibt.

from openai import OpenAI
import json

client = OpenAI(
    base_url="https://api.ablatic.ai/v1",
    api_key="sk-ablatic-...",
)

resp = client.chat.completions.create(
    model="talos",
    messages=[{"role": "user", "content": "Extract the city and country from: Linz, Austria"}],
    response_format={
        "type": "json_schema",
        "json_schema": {
            "name": "location",
            "schema": {
                "type": "object",
                "properties": {
                    "city": {"type": "string"},
                    "country": {"type": "string"},
                },
                "required": ["city", "country"],
            },
        },
    },
)
data = json.loads(resp.choices[0].message.content)
print(data["city"], data["country"])

Modi

response_format akzeptiert drei Werte:

  • text gibt reinen Text zurück. Das ist der Standard.
  • json_object gibt ein JSON-Objekt ohne Schema-Einschränkung zurück.
  • json_schema gibt JSON zurück, das dem von Ihnen angegebenen Schema folgt.

Nicht auf der Anthropic-Oberfläche verfügbar

response_format funktioniert nur auf der OpenAI-Oberfläche. Bei /v1/messages wird das Feld nicht berücksichtigt, daher sind strukturierte Ausgaben dort nicht verfügbar. Um die Ausgabeform mit dem Anthropic SDK einzuschränken, verwenden Sie ein Tool mit einem input_schema und lesen Sie das tool_use.input-Objekt.

response_format hat bei /v1/messages keine Wirkung. Verwenden Sie die OpenAI-Oberfläche für strukturierte JSON-Ausgabe.

Nächste Schritte