12 büyük dil modeli (LLM) API'sini kapsayan yeni bir kıyaslama, neredeyse her servisin istenen şemaya uygun JSON döndürdüğünü ancak önemli bir azınlığın gerçek dışı değerler ürettiğini ortaya koyuyor. Aynı şema için token maliyeti birkaç düzineden yaklaşık beş bine kadar değişkenlik gösteriyor. Veri çıkarma süreçleri veya veri odaklı ajanlar inşa eden geliştiriciler, artık "şemaya uygunluğu" "doğruluk" için bir gösterge olarak kabul edemezler.
Test neden önemli
API sağlayıcıları, ayrıştırma hatalarını ortadan kaldırmak için "yapılandırılmış çıktı" (structured output) özelliğini övüp duruyor. Vaat basit: modele bir JSON şeması verin, o da sizin kırılgan bir son işlem kodu yazmanıza gerek kalmadan alanları doldursun. Uygulamada, birçok üretim sistemi çöküşleri önlemek ve veri analitiği süreçlerini temiz tutmak için halihazırda bu garantiye güveniyor. Bu garanti sadece yarı yarıya tuttuğunda, hatalar sessizce sızıyor ve token kullanımına dayalı maliyet hesaplamaları kontrolden çıkıyor.
İyi haber: şemalar artık çoğunlukla uygulanıyor
- Test setindeki çoğu model, katı bir doğrulayıcıdan (validator) geçen JSON'lar üretti.
- Kısıtlanmış kod çözme (Constrained decoding) – kod çözücüyü şemaya kilitleyen modeller rastgele karakterler yayamaz, bu nedenle hatalı yüklemeler (malformed payloads) neredeyse yok denecek kadar azdır.
- Ayrıştırma hata oranları – geliştiricilerin artık JSON sözdizimi hataları için her çağrıyı try-catch blokları içine almasına gerek kalmadı.
Kötü haber: geçerlilik ≠ doğruluk
Geçerli bir yapı, geçerli bir değer garantisi vermez. On iki modelden dördü—DeepSeek V4, Qwen ve GLM-5.2 (son ikisi raporda iki farklı isimle görünüyor)—"düşünme" (veya chain-of-thought) modu açıkken yanlış sayılar içeren, biçimi mükemmel JSON'lar üretti.
- Qwen modelinde, basit bir aritmetik çıkarma işlemi, akıl yürütme (reasoning) etkinleştirildiğinde 16 işlemde 1 doğru cevaba düşerken, akıl yürütme devre dışı bırakıldığında 8 işlemde 8 doğru cevaba çıktı.
- DeepSeek V4 Pro benzer bir dalgalanma gösterdi: model adımlarını açıklamaya çalışmayı bıraktığında çıkarma doğruluğu 1/8'den 7/8'e yükseldi.
Ek akıl yürütme adımı, kısıtlanmış kod çözücüye müdahale ederek modelin dış parantezlere sadık kalsa bile halüsinasyonlara sürüklenmesine neden oluyor.
Çirkin taraf: token maliyeti sürprizleri ve göz ardı edilen parametreler
- Claude'un yanıt formatı – OpenAI uyumlu uç noktalar (endpoints) üzerinden erişildiğinde Claude,
response_formatbayrağını tamamen görmezden gelerek %0 şemaya uygun çıktı verdi. Model yapılandırılmış çağrıları destekliyor ancak yalnızca Anthropic'in yerel araç çağırma (tool-call) arayüzü üzerinden. - Şema token enflasyonu – mütevazı bir 12 KB'lık şema DeepSeek'te 30 token maliyetine yol açarken, aynı veri Claude'da 4.959 token tüketti.
- Faturalandırma tutarsızlıkları – bazı sağlayıcılar şemayı istemin (prompt) bir parçası olarak sayıp tüketilen her token için ücret alırken, diğerleri bunu ücretsiz bir katman olarak görüyor. Ölçek büyüdüğünde, şema faturası modelin ürettiği içeriğin maliyetini aşabilir.
Geliştiriciler şimdi ne yapmalı
- Sadece yapıları değil, değerleri de doğrulayın – bir şema doğrulayıcı, beklenen tipe uysa bile yanlış bir sayısal cevabı yakalamayacaktır. Alana özgü kontroller (aralık, birim, alanlar arası tutarlılık) ekleyin.
- Güvenilir alan doldurma için DeepSeek, Qwen ve GLM'de chain-of-thought özelliğini kapatın. Ek akıl yürütme adımı isteğe bağlıdır, doğruluk için zorunlu değildir.
- Token kullanımını denetleyin – her isteğin şema kısmı dahil kaç token tükettiğini günlüğe kaydedin ve büyük ölçekli dağıtımlara geçmeden önce sağlayıcılar arasındaki faturaları karşılaştırın.
- Taşınabilirliği test edin – OpenAI'da çalışan bir şema, Gemini veya Claude'da sessizce devre dışı bırakılabilir. Kodu yayına almadan önce her hedef platformda hızlı bir mantık kontrolü (sanity check) yapın.
Sağlayıcılardan karşı görüş
Bazı sağlayıcılar, "düşünme" modunun, açıklamanın ham çıkarma doğruluğundan daha önemli olduğu görevler için geliştiricinin seçimine bırakılmış bir özellik olduğunu savunuyor. Claude, response_format bayrağını görmezden geliyor ve bunun yerine Anthropic'in yerel araç çağrılarını kullanmayı öneriyor. Bu açıklamalar teknik olarak doğru olsa da, hangi modun seçileceğini ve gizli token ücretleri için nasıl bütçe yapılacağını bilme yükünü geliştiricilerin üzerine yıkıyor.
Özetle
Bir JSON şeması artık bir güvenlik ağı değil; sadece bir yapıdır. İçindeki verilerin gerçekle eşleştiğinden emin olun, gizli token maliyetlerine dikkat edin ve bir modelin "düşünme" sürecinin en temiz görünen çıktıyı bile bozabileceğini unutmayın.
