Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Holen Sie sich validierte JSON-Ergebnisse aus Modellen
Strukturierte Ausgaben sind eine Funktion in Amazon Bedrock, die sicherstellt, dass Modellantworten benutzerdefinierten JSON-Schemas und Tooldefinitionen entsprechen, wodurch der Bedarf an benutzerdefinierten Analyse- und Validierungsmechanismen in KI-Produktionsbereitstellungen reduziert wird.
Vorteile
Strukturierte Ausgaben adressieren kritische Herausforderungen bei KI-Produktionsanwendungen:
-
Sorgt für Schemakonformität — Eliminiert Fehlerquoten und Wiederholungsschleifen, die bei promptbasierten Ansätzen entstehen
-
Geringere Komplexität bei der Entwicklung — macht eine benutzerdefinierte Analyse- und Validierungslogik überflüssig
-
Niedrigere Betriebskosten — Weniger fehlgeschlagene Anfragen und Wiederholungsversuche
-
Produktionssicherheit — Ermöglicht den sicheren Einsatz von KI-Anwendungen, die vorhersehbare, maschinenlesbare Ergebnisse erfordern
Funktionsweise
Strukturierte Ausgaben beschränken die Modellantworten darauf, einem bestimmten Schema zu folgen, wodurch eine valide, analysierbare Ausgabe für die nachfolgende Verarbeitung gewährleistet wird. Sie können strukturierte Ausgaben über zwei sich ergänzende Mechanismen verwenden:
Ausgabeformat des JSON-Schemas
Verwenden Sie für InvokeModel APIs mit Anthropic Claude-Modellen das output_config.format Anforderungsfeld. Verwenden Sie bei Modellen mit offenem Gewicht das response_format Anforderungsfeld. Verwenden Sie für Converse APIs das outputConfig.textFormat Anforderungsfeld. Die Antwort des Modells entspricht dem angegebenen JSON-Schema.
Strikte Verwendung des Tools
Fügen Sie das strict: true Kennzeichen zu den Werkzeugdefinitionen hinzu, um die Schemavalidierung für Werkzeugnamen und -eingaben zu aktivieren. Die Werkzeugaufrufen des Modells folgen dann dem definierten Werkzeugeingabeschema.
Diese Mechanismen können unabhängig voneinander oder zusammen in derselben Anfrage verwendet werden. Weitere Informationen finden Sie in der Bedrock API-Dokumentation.
Workflow anfordern
Im Folgenden wird beschrieben, wie Amazon Bedrock Anfragen mit strukturierten Ausgaben verarbeitet:
-
Erste Anfrage — Sie fügen entweder ein JSON-Schema über den
response_formatParameteroutputConfig.textFormatoutput_config.format, oder oder eine Tooldefinition mit demstrict: trueFlag in Ihre Inferenzanforderung ein. -
Schemavalidierung — Amazon Bedrock validiert das JSON-Schemaformat anhand der unterstützten Teilmenge JSON-Schemadraft 2020-12. Wenn das Schema Funktionen enthält, die nicht unterstützt werden, gibt Amazon Bedrock sofort einen 400-Fehler zurück.
-
Erstmalige Kompilierung — Bei neuen Schemas kompiliert Amazon Bedrock die Grammatik, was einige Minuten dauern kann.
-
Caching — Erfolgreich kompilierte Grammatiken werden ab dem ersten Zugriff für 24 Stunden zwischengespeichert. Im Cache gespeicherte Grammatiken werden mit AWS-verwalteten Schlüsseln verschlüsselt.
-
Nachfolgende Anfragen — Identische Schemas aus demselben Konto verwenden zwischengespeicherte Grammatiken, was zu einer mit Standardanfragen vergleichbaren Inferenzlatenz bei minimalem Overhead führt.
-
Antwort — Sie erhalten standardmäßige Inferenzantworten mit strikter Schemakonformität.
Unterstützte APIs Funktionen
Sie können strukturierte Ausgaben für die folgenden Amazon Bedrock-Funktionen verwenden:
Converse und ConverseStream APIs — Verwenden Sie strukturierte Ausgaben mit dem Converse und ConverseStream APIs für Konversationsinferenzen.
InvokeModel und InvokeModelWithResponseStream APIs — Verwenden Sie strukturierte Ausgaben zusammen mit und für InvokeModel Singleturn-Inferenzen InvokeModelWithResponseStream APIs .
Regionsübergreifende Inferenz — Verwenden Sie strukturierte Ausgaben innerhalb der regionsübergreifenden Inferenz ohne zusätzliche Einrichtung.
Batch-Inferenz — Verwenden Sie strukturierte Ausgaben innerhalb der Batch-Inferenz ohne zusätzliche Einrichtung.
Anmerkung
Strukturierte Ausgaben sind nicht mit Zitaten für anthropische Modelle kompatibel. Wenn Sie Zitate aktivieren, während Sie strukturierte Ausgaben verwenden, gibt das Modell einen 400-Fehler zurück.
Unterstützte Modelle
Structured Outputs ist generell in allen kommerziellen AWS-Regionen für die ausgewählten serverlosen Amazon Bedrock-Modelle verfügbar. Eine Liste der unterstützten Modelle finden Sie unter Modellunterstützung nach Funktionen.
- Anthropic
-
Claude Haiku 4.5 ()
anthropic.claude-haiku-4-5-20251001-v1:0Claude Sonett 4.5 ()
anthropic.claude-sonnet-4-5-20250929-v1:0Claude Opus 4.5 ()
anthropic.claude-opus-4-5-20251101-v1:0Claude Opus 4.6 ()
anthropic.claude-opus-4-6-v1
- Königin
-
Qwen3 235B A22B 2507 ()
qwen.qwen3-235b-a22b-2507-v1:0Qwen3 32B (dicht) ()
qwen.qwen3-32b-v1:0Qwen3-Coder-30B-A3B-Anweisung ()
qwen.qwen3-coder-30b-a3b-v1:0Qwen3 Coder 480B A35B anweisen ()
qwen.qwen3-coder-480b-a35b-v1:0Qwen3 Next 80B A3B
qwen.qwen3-next-80b-a3b()Qwen3 VL 235B A22B ()
qwen.qwen3-vl-235b-a22b
- OpenAI
-
openai.gpt-oss-120b-1:0gpt-oss-120b ()gpt-oss-20b ()
openai.gpt-oss-20b-1:0GPT OSS Safeguard 120 B ()
openai.gpt-oss-safeguard-120bGPT OSS Safeguard 20B ()
openai.gpt-oss-safeguard-20b
- DeepSeek
-
DeepSeek-V 3.1 ()
deepseek.v3-v1:0
-
Gemma 3 12B IT ()
google.gemma-3-12b-itGemma 3 27B PT ()
google.gemma-3-27b-it
- MiniMax
-
MiniMax M 2 ()
minimax.minimax-m2
- Mistral AI
-
Magistral Klein 2509 ()
mistral.magistral-small-2509Ministerial 3B ()
mistral.ministral-3-3b-instructMinister 3 (8B)
mistral.ministral-3-8b-instructMinisterial 14B 3.0 ()
mistral.ministral-3-14b-instructMistral Large (3)
mistral.mistral-large-3-675b-instructVoxtral Mini 3B 2507 ()
mistral.voxtral-mini-3b-2507Voxtral Small 24V 2507 ()
mistral.voxtral-small-24b-2507
- Moonshot (KI)
-
Kimi K2 denkt ()
moonshot.kimi-k2-thinking
- NVIDIA
-
NVIDIA Nemotron Nano 12B v2 VL () BF16
nvidia.nemotron-nano-12b-v2NVIDIA Nemotron Nano 9B v2 ()
nvidia.nemotron-nano-9b-v2
Beispielanfragen
Ausgabeformat des JSON-Schemas
Die folgenden Beispiele zeigen, wie das JSON-Schema-Ausgabeformat mit strukturierten Ausgaben verwendet wird.
Converse-API
{ "messages": [ { "role": "user", "content": [ { "text": "Given the following unstructured data, extract it into the provided structure." }, { "text": "..." } ] } ], "outputConfig": { "textFormat": { "type": "json_schema", "structure": { "jsonSchema": { "schema": "{\"type\": \"object\", \"properties\": {\"title\": {\"type\": \"string\", \"description\": \"title\"}, \"summary\": {\"type\": \"string\", \"description\": \"summary\"}, \"next_steps\": {\"type\": \"string\", \"description\": \"next steps\"}}, \"required\": [\"title\", \"summary\", \"next_steps\"], \"additionalProperties\": false}", "name": "data_extraction", "description": "Extract structured data from unstructured text" } } } } }
InvokeModel (Anthropischer Claude)
{ "anthropic_version": "bedrock-2023-05-31", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Given the following unstructured data, extract it into the provided structure." }, { "type": "text", "text": "..." } ] } ], "max_tokens": 3000, "temperature": 1.0, "output_config": { "format": { "type": "json_schema", "schema": { "type": "object", "properties": { "title": { "type": "string", "description": "title" }, "summary": { "type": "string", "description": "summary" }, "next_steps": { "type": "string", "description": "next steps" } }, "required": [ "title", "summary", "next_steps" ], "additionalProperties": false } } } }
InvokeModel (Modelle mit offenem Gewicht)
{ "messages": [ { "role": "user", "content": "Given the following unstructured data, extract it into the provided structure." }, { "role": "user", "content": "..." } ], "inferenceConfig": { "maxTokens": 3000, "temperature": 1.0 }, "response_format": { "json_schema": { "name": "summarizer", "schema": { "type": "object", "properties": { "title": { "type": "string", "description": "title" }, "summary": { "type": "string", "description": "summary" }, "next_steps": { "type": "string", "description": "next steps" } }, "required": [ "title", "summary", "next_steps" ], "additionalProperties": false } }, "type": "json_schema" } }
Strikte Verwendung von Tools
Die folgenden Beispiele zeigen, wie das Feld Strict bei der Verwendung von Tools verwendet wird.
Converse-API
{ "messages": [ { "role": "user", "content": [ { "text": "What's the weather like in New York?" } ] } ], "toolConfig": { "tools": [ { "toolSpec": { "name": "get_weather", "description": "Get the current weather for a specified location", "strict": true, "inputSchema": { "json": { "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA" }, "unit": { "type": "string", "enum": [ "fahrenheit", "celsius" ], "description": "The temperature unit to use" } }, "required": [ "location", "unit" ] } } } } ] } }
InvokeModel (Anthropischer Claude)
{ "anthropic_version": "bedrock-2023-05-31", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "What's the weather like in San Francisco?" } ] } ], "max_tokens": 3000, "temperature": 1.0, "tools": [ { "name": "get_weather", "description": "Get the current weather for a specified location", "strict": true, "input_schema": { "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA" }, "unit": { "type": "string", "enum": [ "fahrenheit", "celsius" ], "description": "The temperature unit to use" } }, "required": [ "location", "unit" ], "additionalProperties": false } } ] }
InvokeModel (Modelle mit offenem Gewicht)
{ "messages": [ { "role": "user", "content": "What's the weather like in San Francisco?" } ], "tools": [ { "type": "function", "function": { "name": "get_weather", "description": "Get the current weather for a specified location", "strict": true, "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA" }, "unit": { "type": "string", "enum": [ "fahrenheit", "celsius" ], "description": "The temperature unit to use" } }, "required": [ "location", "unit" ] } } } ], "tool_choice": "auto", "max_tokens": 2000, "temperature": 1.0 }