

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Dapatkan hasil JSON yang divalidasi dari model
<a name="structured-output"></a>

Output terstruktur adalah kemampuan di Amazon Bedrock yang memastikan respons model sesuai dengan skema JSON dan definisi alat yang ditentukan pengguna, mengurangi kebutuhan akan mekanisme penguraian dan validasi khusus dalam penerapan AI produksi.

## Manfaat
<a name="structured-output-benefits"></a>

Output terstruktur mengatasi tantangan kritis dalam aplikasi AI produksi:
+ **Memastikan kepatuhan skema** - Menghilangkan tingkat kesalahan dan coba ulang loop dari pendekatan berbasis prompt
+ **Mengurangi kompleksitas pengembangan** - Menghapus kebutuhan untuk parsing kustom dan logika validasi
+ **Biaya operasional yang lebih rendah** — Mengurangi permintaan dan percobaan ulang yang gagal
+ **Keandalan produksi** - Memungkinkan penerapan aplikasi AI yang percaya diri yang membutuhkan output yang dapat diprediksi dan dapat dibaca mesin

## Cara kerjanya
<a name="structured-output-how-it-works"></a>

Output terstruktur membatasi respons model untuk mengikuti skema tertentu, memastikan output yang valid dan dapat diurai untuk pemrosesan hilir. Anda dapat menggunakan output terstruktur melalui dua mekanisme pelengkap:

### Format keluaran Skema JSON
<a name="structured-output-json-schema"></a>

Untuk InvokeModel API dengan model Anthropic Claude, gunakan bidang permintaan. `output_config.format` Dengan model bobot terbuka, gunakan bidang `response_format` permintaan. Untuk Converse APIs, gunakan bidang `outputConfig.textFormat` permintaan. Respons model akan sesuai dengan skema JSON yang ditentukan.

### Penggunaan alat yang ketat
<a name="structured-output-strict-tool-use"></a>

Tambahkan `strict: true` bendera ke definisi alat untuk mengaktifkan validasi skema pada nama dan input alat. Panggilan alat model kemudian akan mengikuti skema input alat yang ditentukan.

Mekanisme ini dapat digunakan secara independen atau bersama-sama dalam permintaan yang sama. Lihat [dokumentasi API Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/welcome.html) untuk detail selengkapnya.

### Minta alur kerja
<a name="structured-output-request-workflow"></a>

Berikut ini menjelaskan bagaimana Amazon Bedrock memproses permintaan dengan output terstruktur:

1. **Permintaan awal** - Anda menyertakan skema JSON melalui`outputConfig.textFormat`,`output_config.format`, atau `response_format` parameter atau definisi alat dengan `strict: true` tanda dalam permintaan inferensi Anda.

1. **Validasi skema** - Amazon Bedrock memvalidasi format skema JSON terhadap subset JSON Schema Draft 2020-12 yang didukung. Jika skema berisi fitur yang tidak didukung, Amazon Bedrock segera mengembalikan kesalahan 400.

1. **Kompilasi pertama kali** — Untuk skema baru, Amazon Bedrock mengkompilasi tata bahasa, yang mungkin memakan waktu hingga beberapa menit.

1. **Caching** - Tata bahasa yang berhasil dikompilasi di-cache selama 24 jam dari akses pertama. Tata bahasa cache dienkripsi dengan kunci yang dikelola AWS.

1. **Permintaan berikutnya** — Skema identik dari akun yang sama menggunakan tata bahasa yang di-cache, menghasilkan latensi inferensi yang sebanding dengan permintaan standar dengan overhead minimal.

1. **Respons** - Anda menerima tanggapan inferensi standar dengan kepatuhan skema yang ketat.

## Didukung APIs atau fitur
<a name="structured-output-supported-apis"></a>

Anda dapat menggunakan output terstruktur di seluruh fitur Amazon Bedrock berikut:

**Converse dan ConverseStream APIs** — Gunakan output terstruktur dengan Converse dan ConverseStream APIs untuk inferensi percakapan.

**InvokeModel dan InvokeModelWithResponseStream APIs** — Gunakan output terstruktur dengan InvokeModel dan InvokeModelWithResponseStream APIs untuk inferensi putaran tunggal.

**Inferensi Lintas Wilayah — Gunakan output terstruktur dalam inferensi** lintas wilayah tanpa pengaturan tambahan apa pun.

**Inferensi Batch** — Gunakan output terstruktur dalam inferensi batch tanpa pengaturan tambahan.

**catatan**  
Output terstruktur tidak kompatibel dengan kutipan untuk model Antropik. Jika Anda mengaktifkan kutipan saat menggunakan output terstruktur, model akan mengembalikan kesalahan 400.

## Model yang didukung
<a name="structured-output-supported-models"></a>

Output terstruktur umumnya tersedia di semua wilayah AWS komersial untuk model tanpa server Amazon Bedrock tertentu. Untuk daftar model yang didukung, lihat Dukungan model berdasarkan fitur.

### Lihat semua model yang didukung
<a name="w2aac13c32c35c11b5b1"></a>

Antropik  
+ Claude Haiku 4.5 () `anthropic.claude-haiku-4-5-20251001-v1:0`
+ Claude Soneta 4.5 () `anthropic.claude-sonnet-4-5-20250929-v1:0`
+ Claude Opus 4.5 () `anthropic.claude-opus-4-5-20251101-v1:0`
+ Claude Opus 4.6 () `anthropic.claude-opus-4-6-v1`

Qwen  
+ Qwen3 235B A22B 2507 () `qwen.qwen3-235b-a22b-2507-v1:0`
+ Qwen3 32B (padat) () `qwen.qwen3-32b-v1:0`
+ Qwen3-Coder-30B-A3B-Instruksi () `qwen.qwen3-coder-30b-a3b-v1:0`
+ Qwen3 Coder 480B A35B Instruksi () `qwen.qwen3-coder-480b-a35b-v1:0`
+ Qwen3 Berikutnya 80B A3B () `qwen.qwen3-next-80b-a3b`
+ Qwen3 VL 235B A22B () `qwen.qwen3-vl-235b-a22b`

OpenAI  
+ gpt-oss-120b () `openai.gpt-oss-120b-1:0`
+ gpt-oss-20b () `openai.gpt-oss-20b-1:0`
+ GPT OSS Safeguard 120B () `openai.gpt-oss-safeguard-120b`
+ GPT OSS Safeguard 20B () `openai.gpt-oss-safeguard-20b`

DeepSeek  
+ DeepSeek-V3.1 () `deepseek.v3-v1:0`

Google  
+ Gemma 3 12B IT () `google.gemma-3-12b-it`
+ Gemma 3 27B PT () `google.gemma-3-27b-it`

MiniMax  
+ MiniMax M2 (`minimax.minimax-m2`)

Mistral AI  
+ Magistral Kecil 2509 () `mistral.magistral-small-2509`
+ Ministro 3B () `mistral.ministral-3-3b-instruct`
+ Kementerian 3 8B () `mistral.ministral-3-8b-instruct`
+ Kementerian 14B 3.0 () `mistral.ministral-3-14b-instruct`
+ Mistral Besar 3 () `mistral.mistral-large-3-675b-instruct`
+ Voxtral Mini 3B 2507 () `mistral.voxtral-mini-3b-2507`
+ Voxtral Kecil 24B 2507 () `mistral.voxtral-small-24b-2507`

Moonshot AI  
+ Kimi K2 Berpikir () `moonshot.kimi-k2-thinking`

NVIDIA  
+ NVIDIA Nemotron Nano 12B v2 VL () BF16 `nvidia.nemotron-nano-12b-v2`
+ NVIDIA Nemotron Nano 9B v2 () `nvidia.nemotron-nano-9b-v2`

## Contoh permintaan
<a name="structured-output-examples"></a>

### Format keluaran Skema JSON
<a name="structured-output-json-schema-examples"></a>

Contoh berikut menunjukkan bagaimana menggunakan format output Skema JSON dengan output terstruktur.

#### API Converse
<a name="json-schema-converse"></a>

##### Lihat contoh
<a name="w2aac13c32c35c13b3b5b3b1"></a>

```
{
  "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 (Antropik Claude)
<a name="json-schema-invokemodel-claude"></a>

##### Lihat contoh
<a name="w2aac13c32c35c13b3b7b3b1"></a>

```
{
  "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 (Model berat terbuka)
<a name="json-schema-invokemodel-openweight"></a>

##### Lihat contoh
<a name="w2aac13c32c35c13b3b9b3b1"></a>

```
{
  "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"
  }
}
```

### Penggunaan alat yang ketat
<a name="structured-output-strict-tool-examples"></a>

Contoh berikut menunjukkan cara menggunakan bidang ketat dengan penggunaan alat.

#### API Converse
<a name="strict-tool-converse"></a>

##### Lihat contoh
<a name="w2aac13c32c35c13b5b5b3b1"></a>

```
{
  "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 (Antropik Claude)
<a name="strict-tool-invokemodel-claude"></a>

##### Lihat contoh
<a name="w2aac13c32c35c13b5b7b3b1"></a>

```
{
  "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 (Model berat terbuka)
<a name="strict-tool-invokemodel-openweight"></a>

##### Lihat contoh
<a name="w2aac13c32c35c13b5b9b3b1"></a>

```
{
  "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
}
```