Tema
Bahasa

Structured outputs

Paksa output JSON dengan response_format. Dua mode: json_object (JSON valid apa pun) dan json_schema (kepatuhan skema yang ketat). Contoh dalam curl dan Python.

Parameter response_format memaksa model mengembalikan JSON yang valid. Dua mode didukung.

json_object mode

Model menjamin output berupa JSON yang valid. Anda menentukan strukturnya di system prompt.

curl https://getvibeapi.com/v1/chat/completions \
  -H "Authorization: Bearer $GETVIBE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-6.1-sol",
    "response_format": { "type": "json_object" },
    "messages": [
      {"role": "system", "content": "Reply with JSON with fields: name (string), score (number)."},
      {"role": "user", "content": "Rate this answer: very good"}
    ]
  }'

json_schema mode

Kepatuhan JSON Schema yang ketat — model mengisi persis field yang ditentukan. Didukung oleh GPT-5.x dan model yang kompatibel.

curl https://getvibeapi.com/v1/chat/completions \
  -H "Authorization: Bearer $GETVIBE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-6.1-sol",
    "response_format": {
      "type": "json_schema",
      "json_schema": {
        "name": "review",
        "strict": true,
        "schema": {
          "type": "object",
          "properties": {
            "name": { "type": "string" },
            "score": { "type": "number", "minimum": 1, "maximum": 10 },
            "summary": { "type": "string" }
          },
          "required": ["name", "score", "summary"],
          "additionalProperties": false
        }
      }
    },
    "messages": [
      {"role": "user", "content": "Rate this product: fast delivery, careful packaging"}
    ]
  }'
Dengan strict: true gateway merutekan permintaan hanya ke varian model yang benar-benar mematuhi schema, dan melakukannya pada setiap percobaan — termasuk saat beralih ke supplier cadangan. Jika tidak ada varian yang cocok saat itu, Anda mendapat error structured_output_unsupported yang eksplisit alih-alih teks biasa saat JSON diminta. Penjagaan itu dibangun dari hasil pengukuran dan hanya mencakup varian yang telah kami ukur: pada varian yang belum diukur, supplier masih dapat mengabaikan schema secara diam-diam.
Model berbeda dalam seberapa baik mereka mempertahankan JSON — periksa milik Anda. Diukur 2026-09-12 pada deepseek-v4-flash-0731, 10 panggilan per sel: json_object berhasil parse 10/10 pada varian :cxa dan :cxbc serta 8/10 pada :network, sementara json_schema yang ketat berhasil parse 0/10 pada kedua varian (:cxa menjawab 400, :cxbc menjawab 200 dengan teks biasa) dan 3/10 pada :network. API DeepSeek sendiri tidak memiliki mode json_schema — gunakan json_object, dan ketika Anda membutuhkan tepat satu bentuk, forced function call (tools + tool_choice) mengembalikan argumen yang dapat di-parse 10/10 pada setiap varian. Angka per varian ada di field structuredOutput pada GET /v1/model-capabilities. Semuanya adalah pembacaan satu kali yang dicap dengan tanggalnya (measurement: "point-in-time"), bukan janji: pemasok di balik suatu varian bisa berubah, dan kami tidak mengukur ulang sesuai jadwal.

Contoh respons

{
  "id": "chatcmpl-...",
  "choices": [{
    "message": {
      "role": "assistant",
      "content": "{\"name\":\"product X\",\"score\":9,\"summary\":\"Fast and convenient\"}"
    },
    "finish_reason": "stop"
  }],
  "usage": { "prompt_tokens": 42, "completion_tokens": 18, "total_tokens": 60 }
}
Structured output GetVibe API — JSON Schema, json_object, Python | GetVibe API