Strukturierte Ausgaben
Strukturierte Ausgaben fordern JSON an, das einem Schema folgt. Nutzen Sie sie, wenn der nächste Schritt Felder braucht und keinen Absatz: einen Produktdatensatz, ein Label oder einen Score.
Der Aufruf nutzt die Responses API. Prüfen Sie, ob Ihr Modell text. mit json_ unterstützt, bevor Sie sich darauf verlassen.
Minimales Beispiel
Abschnitt betitelt „Minimales Beispiel“Diese Anfrage extrahiert einen Produktdatensatz. Das Schema verlangt einen Namen, eine Liste von Merkmalen, eine Liste von Farben und ein Preisobjekt.
import jsonfrom openai import OpenAI
client = OpenAI()
description = """Our Premium Laptop Backpack features padded compartments that fitlaptops up to 15.6 inches. Available in navy blue, black, and gray. Price: $79.99, on sale for $64.99. """
response = client.responses.create( model="gpt-oss-120b" , input=f "Extract structured product information: {description}" , max_output_tokens =2000 , text={ "format": { "type": "json_schema" , "name": "product_details" , "schema": { "type": "object", "properties": { "product_name" : {"type": "string"}, "features": {"type": "array", "items": {"type": "string"}}, "colors": {"type": "array", "items": {"type": "string"}}, "pricing": { "type": "object", "properties": { "regular_price" : {"type": "number"}, "sale_price" : {"type": "number"}, "currency": {"type": "string"}, }, "required": ["regular_price" , "sale_price" , "currency"], "additionalProperties": False, }, }, "required": ["product_name" , "features", "colors", "pricing"], "additionalProperties": False, }, "strict": True, } },)
print(json.dumps(json.loads(response.output_text), indent=2 ))response. ist ein JSON-String. Beispielausgabe von gpt- (der Wortlaut von features wechselt von Aufruf zu Aufruf):
{ "product_name" : "Premium Laptop Backpack", "features": ["Padded compartments", "Fits laptops up to 15.6 inches" ], "colors": ["navy blue", "black", "gray"], "pricing": { "regular_price" : 79.99 , "sale_price" : 64.99 , "currency": "USD" }}Parameter
Abschnitt betitelt „Parameter“Setzen Sie model, input, max_ und text.. In text. setzen Sie type auf json_ sowie name, schema und strict.
Chat Completions akzeptieren dasselbe Schema als response_; der content der Nachricht ist dann der JSON-String. Beides ist auf gpt- bestätigt.
Modellunterstützung
Abschnitt betitelt „Modellunterstützung“Die Responses API ist für Text, Tool Calls und Streaming auf gpt- bestätigt. Einige Modelle antworten auf client. mit HTTP 400. Für diese Modelle Chat Completions verwenden.
Grenzen
Abschnitt betitelt „Grenzen“strict: True zusammen mit additionalProperties: false beschränkt die Ausgabe auf die Felder Ihres Schemas. Prüfen Sie die Werte in Ihrem Code. Für JSON-Argumente eines selbst definierten Tools verwenden Sie Function Calling.