tag JSONSchema

Bu sayfada JSONSchema etiketi ile işaretlenmiş 2 yapay zeka kavramını bulabilirsiniz.

JSON Schema, JSON verilerinin yapısını, türlerini ve kısıtlamalarını tanımlayan bir spesifikasyon standardıdır. Bir JSON belgesinin nasıl görüneceğini önceden tanımlamaya, veriyi doğrulamaya (validation) ve otomatik olarak belgelemeye olanak tanır. JSON Schema, JSON verisinin "blueprint"i (şablonu) olarak düşünülebilir. Bir JSON Schema belgesi, hangi alanların zorunlu olduğunu, her alanın türünü (string, number, boolean, array, object) ve geçerli değer aralığını tanımlar. Örneğin bir kullanıcı nesnesi için "name" alanı string ve zorunlu, "age" 0 ile 150 arasında integer, "email" regex ile doğrulanmış string olarak tanımlanabilir. Tip denetiminin yanı sıra minimum, maximum, minLength, maxLength, pattern ve enum anahtar kelimeleriyle çok katmanlı kısıtlamalar ifade edilebilir. JSON Schema, API dokümantasyonu ve doğrulamasında kritik bir rol oynamaktadır. OpenAPI Specification (Swagger), REST API'lerini tanımlarken JSON Schema'yı temel alır. Bu sayede API tanımlamasından otomatik olarak istemci SDK'ları, sunucu stub'ları ve dokümantasyon sayfaları üretilmesi mümkün olmaktadır. Kod üreteci araçlar ise OpenAPI tanımlamasından TypeScript tiplemeleri, Python Pydantic modelleri veya Java DTO sınıfları üretebilir; bu yaklaşım API'yi tek kaynak of truth olarak konumlandırır. Yapay zeka uygulamalarında JSON Schema, büyük dil modellerinin (LLM) yapılandırılmış çıktı üretmesi için zorunlu hale gelmiştir. OpenAI ve Anthropic'in function calling/tool use özelliklerinde her araç, parametrelerini JSON Schema ile tanımlar. Claude ve GPT-4'ün "structured outputs" modu da tamamen JSON Schema üzerine kuruludur; model yalnızca şemada tanımlanan alanlara sahip yanıtlar döndürür. Pydantic (Python) ve Zod (TypeScript) gibi kütüphaneler, JSON Schema doğrulamasını uygulama düzeyinde kolaylaştıran popüler araçlar arasındadır. TypeScript ekosisteminde Zod kütüphanesi, tip güvenli şema tanımını çalışma zamanı doğrulamasıyla birleştirir ve .toJSONSchema() yöntemiyle doğrudan JSON Schema çıktısı üretir. @sinclair/typebox ise TypeScript tiplerini JSON Schema olarak ifade ederek derleme ve çalışma zamanı arasındaki uyumu garantiler. Node.js tarafında AJV (Another JSON Schema Validator), JIT derleme kullanarak nanosaniye düzeyinde doğrulama performansı sunar. Sürüm tarihi açısından JSON Schema 2009'da taslak olarak başlamış; bugün Draft 2020-12 en kararlı sürüm konumundadır. Tekrar kullanılabilir alt şema tanımları ($defs), diğer şema referansları ($ref) ve şema birleşimi (allOf, anyOf, oneOf) bu standardın ileri özellikleri arasında yer alır.

data_object

JSON Schema (JSON Şema)

JSON Schema, JSON verilerinin yapısını, türlerini ve kısıtlamalarını tanımlayan bir spesifikasyon standardıdır. Bir JSON belgesinin nasıl görüneceğini önceden tanımlamaya, veriyi doğrulamaya (validation) ve otomatik olarak belgelemeye olanak tanır. JSON Schema, JSON verisinin "blueprint"i (şablonu) olarak düşünülebilir. Bir JSON Schema belgesi, hangi alanların zorunlu olduğunu, her alanın türünü (string, number, boolean, array, object) ve geçerli değer aralığını tanımlar. Örneğin bir kullanıcı nesnesi için "name" alanı string ve zorunlu, "age" 0 ile 150 arasında integer, "email" regex ile doğrulanmış string olarak tanımlanabilir. Tip denetiminin yanı sıra minimum, maximum, minLength, maxLength, pattern ve enum anahtar kelimeleriyle çok katmanlı kısıtlamalar ifade edilebilir. JSON Schema, API dokümantasyonu ve doğrulamasında kritik bir rol oynamaktadır. OpenAPI Specification (Swagger), REST API'lerini tanımlarken JSON Schema'yı temel alır. Bu sayede API tanımlamasından otomatik olarak istemci SDK'ları, sunucu stub'ları ve dokümantasyon sayfaları üretilmesi mümkün olmaktadır. Kod üreteci araçlar ise OpenAPI tanımlamasından TypeScript tiplemeleri, Python Pydantic modelleri veya Java DTO sınıfları üretebilir; bu yaklaşım API'yi tek kaynak of truth olarak konumlandırır. Yapay zeka uygulamalarında JSON Schema, büyük dil modellerinin (LLM) yapılandırılmış çıktı üretmesi için zorunlu hale gelmiştir. OpenAI ve Anthropic'in function calling/tool use özelliklerinde her araç, parametrelerini JSON Schema ile tanımlar. Claude ve GPT-4'ün "structured outputs" modu da tamamen JSON Schema üzerine kuruludur; model yalnızca şemada tanımlanan alanlara sahip yanıtlar döndürür. Pydantic (Python) ve Zod (TypeScript) gibi kütüphaneler, JSON Schema doğrulamasını uygulama düzeyinde kolaylaştıran popüler araçlar arasındadır. TypeScript ekosisteminde Zod kütüphanesi, tip güvenli şema tanımını çalışma zamanı doğrulamasıyla birleştirir ve .toJSONSchema() yöntemiyle doğrudan JSON Schema çıktısı üretir. @sinclair/typebox ise TypeScript tiplerini JSON Schema olarak ifade ederek derleme ve çalışma zamanı arasındaki uyumu garantiler. Node.js tarafında AJV (Another JSON Schema Validator), JIT derleme kullanarak nanosaniye düzeyinde doğrulama performansı sunar. Sürüm tarihi açısından JSON Schema 2009'da taslak olarak başlamış; bugün Draft 2020-12 en kararlı sürüm konumundadır. Tekrar kullanılabilir alt şema tanımları ($defs), diğer şema referansları ($ref) ve şema birleşimi (allOf, anyOf, oneOf) bu standardın ileri özellikleri arasında yer alır.

arrow_forward
verified

Pydantic (Pydantic)

Pydantic, Python'da veri doğrulama ve yapılandırma yönetimi için kullanılan açık kaynak bir kütüphanedir. Python tip ipuçlarını (type hints) kullanarak çalışma zamanında (runtime) otomatik veri doğrulama sağlar; hatalı veya uyumsuz veri geldiğinde net ve anlaşılır hata mesajları üretir. Samuel Colvin tarafından geliştirilen Pydantic, Python ekosisteminin en çok indirilen kütüphanelerinden biri konumuna gelmiştir. Pydantic'te veri yapıları, BaseModel sınıfı miras alınarak tanımlanır. Her alan, tip annotasyonuyla belirtilir; kütüphane bu tiplere göre otomatik doğrulama yapar. Gelen veriyi gerektiğinde dönüştürür: string'i integer'a, ISO tarih dizesini datetime nesnesine otomatik çevirebilir (coercion). Field() fonksiyonu ile minimum/maksimum değer, desen eşleştirmesi ve varsayılan değer gibi ek kısıtlamalar tanımlanabilir. Pydantic v2, Rust ile yeniden yazılmış çekirdek doğrulama motoruyla v1'e kıyasla 5–50 kat daha hızlıdır. model_validator ve field_validator dekoratörleriyle modele özgül kısıtlamalar ve çapraz alan doğrulamaları eklenebilir. Mevcut v1 projeleri pydantic-v1-compat paketi yardımıyla kademeli olarak taşınabilir. Yapay zeka ekosistemindeki önemi giderek artmaktadır. LangChain ve LlamaIndex, Pydantic modellerini yapılandırılmış çıktı için kullanır. OpenAI API'si Pydantic modelini doğrudan kabul ederek yapılandırılmış JSON doğrulama gerçekleştirir. Instructor kütüphanesi, herhangi bir LLM'den Pydantic model doğrulamasıyla yapılandırılmış çıktı almayı kolaylaştırır. FastAPI ise Pydantic'i HTTP istek ve yanıt doğrulaması için temel altyapı olarak kullanır. pydantic-settings paketi, çevre değişkenlerini ve .env dosyalarındaki yapılandırmayı Pydantic modeli olarak yönetmeyi sağlar; tip-güvenli yapılandırma yönetiminin fiili standardı hâline gelmiştir. Her Pydantic modeli, model_json_schema() metoduyla tam bir JSON Schema'ya dönüştürülebilir; bu özellik OpenAI function calling ve yapılandırılmış çıktı (structured output) desteği için kritik öneme sahiptir. Pydantic'in yaygınlığı yalnızca bireysel projelerle sınırlı değildir: Hugging Face, Azure SDK, AWS CDK ve Databricks gibi kurumsal projeler de veri katmanlarında Pydantic'ten yararlanmaktadır.

arrow_forward