>_toolkitbox

~/tools / Structured Output Schema Checker

Structured Output Schema Checker — Periksa JSON Schema terhadap batasan OpenAI, Anthropic, dan Gemini

Periksa JSON Schema terhadap batasan structured outputs yang didokumentasikan OpenAI, Anthropic, dan Gemini. Lihat keyword mana yang ditolak, diabaikan, atau tidak terdokumentasi sebelum schema dikirim ke API. Tidak ada data yang keluar dari browser Anda.

Aturan diperiksa terhadap dokumentasi tiap vendor pada 2026-10-23.

Tidak diperiksa: kedalaman nesting, batas untuk enum yang panjang, dan apa pun yang tidak didokumentasikan vendor. Vendor dapat mengubah aturan ini, jadi pastikan dengan dokumentasi terbaru.

Semuanya berjalan di browser Anda. Schema tidak diunggah.

API AI dapat memaksa balasan model mengikuti sebuah JSON Schema, tetapi setiap vendor hanya menerima sebagian dari JSON Schema, dan bagian yang diterima berbeda-beda. Schema yang berfungsi di satu vendor bisa ditolak vendor lain, atau diterima tetapi sebagian aturannya diam-diam dibuang. Alat ini membaca schema Anda dan memeriksanya terhadap apa yang dikatakan dokumentasi tiap vendor: aturan wajib seperti additionalProperties yang diatur ke false, keyword yang tidak didukung, keyword yang diterima tetapi tidak diberlakukan, dan batas ukuran yang dipublikasikan. Temuan dibagi menjadi tiga jenis agar Anda bisa membedakan kesalahan yang terdokumentasi dari keyword yang memang tidak tercantum dalam dokumentasi. Aturan-aturan ini diperiksa terhadap dokumentasi vendor pada tanggal yang tertera di bawah alat.

Kapan dipakai

  • Memeriksa schema sebelum mengirimnya sebagai permintaan structured output, agar Anda tidak baru tahu dari error 400
  • Mencari keyword mana yang harus dipindahkan dari schema ke kode validasi Anda sendiri
  • Membandingkan apa yang diterima OpenAI, Anthropic, dan Gemini untuk schema yang sama

Cara pakai

  1. Tempelkan JSON Schema yang akan Anda kirim, atau muat contohnya.
  2. Baca hasil untuk tiap vendor. Tidak diterima berarti dokumentasi menyatakan schema akan gagal atau harus diubah. Diabaikan berarti keyword diterima tetapi tidak diberlakukan. Tidak terdokumentasi berarti keyword tidak ada dalam daftar keyword yang didukung vendor.
  3. Perbaiki yang ditandai Tidak diterima, lalu periksa sisanya dengan menjalankan permintaan sungguhan.

Tanya jawab

Apakah hasil yang bersih berarti API akan menerima schema saya?

Tidak. Alat ini memeriksa aturan yang didokumentasikan vendor. Alat ini tidak memanggil API apa pun, dan dokumentasi tidak mencakup semuanya, sehingga schema tetap bisa ditolak. Anggap hasil yang bersih sebagai 'tidak ada masalah yang diketahui' dan ujilah dengan permintaan sungguhan.

Apa arti Tidak diterima, Diabaikan, dan Tidak terdokumentasi?

Tidak diterima: dokumentasi menyatakan keyword tidak didukung atau ada aturan yang harus dipenuhi, misalnya additionalProperties harus false. Diabaikan: dokumentasi menyatakan keyword diterima tetapi tidak diberlakukan, sehingga model bisa melanggarnya. Tidak terdokumentasi: keyword tidak ada dalam daftar keyword yang didukung vendor, sehingga bisa ditolak atau diabaikan, dan dokumentasi tidak menyebutkan yang mana.

Mengapa OpenAI mewajibkan setiap properti masuk required?

Dalam mode strict, OpenAI mewajibkan semua properti dicantumkan di required dan additionalProperties bernilai false. Untuk membuat sebuah field opsional, dokumentasi menyarankan memakai union dengan null, misalnya type berupa ["string", "null"].

Schema saya memakai minimum, maxLength, atau sejenisnya. Apa yang harus saya lakukan?

Anthropic tidak mendukung batasan numerik maupun batas panjang string, dan Gemini tidak memberlakukan batas panjang. Hapus semuanya dari schema, jelaskan batasnya di field description, lalu periksa nilainya sendiri setelah balasan tiba. Alat JSON Schema Validator dapat menjalankan pemeriksaan itu.

Apakah alat ini memeriksa rekursi?

Ya, untuk Anthropic, yang dokumentasinya mencantumkan schema rekursif sebagai tidak didukung. OpenAI dan Gemini mendokumentasikan schema rekursif, sehingga tidak ditandai.

Apa yang tidak diperiksa?

Kedalaman nesting, batas untuk enum yang panjang, dan apa pun yang tidak didokumentasikan vendor. Alat ini juga tidak mengetahui model atau fitur baru yang ditambahkan setelah tanggal pemeriksaan, jadi pastikan dengan dokumentasi terbaru jika hal itu penting.

Apakah schema saya dikirim ke server?

Tidak. Pemeriksaan berjalan di browser Anda.

Terkait