JSON Schema (JSON Şema)

JSON Schema, JSON belgelerinin yapısını, veri türlerini ve kısıtlamalarını tanımlamak için kullanılan bir bildirim standardıdır.

JSON Schema, JSON belgelerinin yapısını, veri türlerini ve kısıtlamalarını tanımlamak için kullanılan bir bildirim standardıdır. Bir JSON belgesinin hangi alanları içermesi gerektiğini, her alanın türünü ve geçerli değer aralığını belirtir; bu sayede veri doğrulama ve belgeler arası anlaşma sağlanır.

data_object JSON Schema AI'da Nasıl Kullanılır?

LLM'lere yapılandırılmış çıktı ürettirmek için JSON Schema standart yöntem hâline gelmiştir. OpenAI, Anthropic ve Gemini API'leri "structured output" veya "response_format" parametresi ile JSON Schema kabul eder; model, şemaya uymayan çıktı üretemez. Bu, hallucination nedeniyle bozuk JSON alınma riskini önemli ölçüde azaltır.

Temel JSON Schema Anahtar Kelimeleri

category type

Veri türü: string, number, integer, boolean, array, object.

list properties

Object türündeki alanları ve her alanın alt şemasını tanımlar.

check_circle required

Zorunlu alanlar listesi; eksikse doğrulama başarısız olur.

rule enum / const

İzin verilen değerlerin sabit listesi; LLM çıktısını sınırlandırır.

JSON Schema Temel Anahtar Kelimeleri

  • check_circle Tip ve Kısıtlama Anahtar Kelimeleri: type: string, number, integer, boolean, array, object, null. String kısıtlamaları: minLength, maxLength, pattern (regex), format (email, uri, date). Sayı kısıtlamaları: minimum, maximum, exclusiveMinimum, multipleOf. Dizi kısıtlamaları: items (eleman şeması), minItems, maxItems, uniqueItems.
  • check_circle Nesne Kısıtlamaları: properties: her özelliğin şemasını tanımlar. required: zorunlu özellik listesi. additionalProperties: false — tanımsız özellikleri reddeder. patternProperties: regex ile eşleşen özellik adlarına şema uygular. dependentRequired: bir özellik varsa başka özellik de zorunlu.
  • check_circle Bileşim Anahtar Kelimeleri: allOf: tüm alt şemaları karşılamalı (AND). anyOf: en az birini karşılamalı (OR). oneOf: tam olarak birini karşılamalı (XOR). not: belirtilen şemayı karşılamamalı. $ref ve $defs: şema yeniden kullanımı ve modülerite.

JSON Schema ve AI: Yapılandırılmış Çıktı

JSON Schema, modern AI uygulama geliştirmede kritik rol üstlenir. LLM yapılandırılmış çıktı: Claude ve GPT-4o gibi modeller JSON Schema alarak garantili şemaya uygun JSON çıktısı üretir — bu özelliğe 'structured output' veya 'constrained generation' denir. Pydantic entegrasyonu: Python BaseModel → JSON Schema otomatik dönüşümü; LLM çıktısı doğrudan Pydantic modeline parse edilir. OpenAI function calling ve tool use: araç parametreleri JSON Schema ile tanımlanır. API validation: REST API istek/yanıt şemalarını tanımlamak için OpenAPI içinde kullanılır. Araçlar: ajv (JavaScript), jsonschema (Python), json-schema.org/tools sayfasında tam liste.

quiz Sık Sorulan Sorular

  • check_circle JSON Schema ve OpenAPI ilişkisi nedir?: OpenAPI 3.x, istek ve yanıt gövdelerini tanımlamak için JSON Schema'nın bir alt kümesini kullanır.
  • check_circle Pydantic ile JSON Schema aynı mı?: Hayır. Pydantic Python nesnesidir; ancak `.model_json_schema()` metodu ile JSON Schema dışa aktarılabilir.
  • check_circle JSON Schema nedir?: JSON veri yapılarının şemasını ve doğrulama kurallarını tanımlamak için kullanılan JSON tabanlı standarttır. Bir API'nin hangi verileri kabul ettiğini hem insanlar hem makineler için belgelemek, doğrulamak ve belgeler oluşturmak için kullanılır.
  • check_circle JSON Schema nasıl kullanılır?: JavaScript'te ajv kütüphanesiyle: validate(schema, data) → geçerli/geçersiz. Python'da jsonschema.validate(instance, schema). AI uygulamalarında: response_format parametresine schema vererek LLM'den garantili JSON çıktısı alınır.
  • check_circle JSON Schema ile TypeScript arasındaki fark nedir?: TypeScript: derleme zamanı tür kontrolü; çalışma zamanında etki yok. JSON Schema: çalışma zamanında harici veriyi (API yanıtı, kullanıcı girdisi) doğrular. İkisi tamamlayıcı: TypeScript iç kod güvenliği, JSON Schema sınır doğrulaması sağlar.
  • check_circle LLM'den garantili JSON çıktısı nasıl alınır?: OpenAI API'de response_format: {type: 'json_schema', json_schema: {...}} parametresi kullanılır. Anthropic API'de tools parametresine JSON Schema tanımı eklenip tool_choice zorunlu yapılır. Pydantic AI veya Instructor kütüphaneleri bu süreci otomatize ederek doğrudan Pydantic modellerine parse eder.