İstemlerde JSON Şeması
Çıktı biçimini kısıtlama.
İstemlerde JSON Şeması, CoddyKit'te ücretsiz bir AI Prompt Engineering dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AI Prompt Engineering öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AI Prompt Engineering kursu toplamda 4 dersten oluşur.
Çıktı Sözleşmesi Olarak Şema
Bir JSON şeması, geçerli çıktının biçimini bildirimsel olarak açıklar: türleri, zorunlu anahtarları, değer kısıtlarını ve iç içeliği. Yapılandırılmış çıktı API'sine aktarıldığında katı bir sözleşmeye, isteme yerleştirildiğinde ise güçlü bir yönlendirmeye dönüşür.
Şema yazımında ustalaşmak, yapılandırılmış üretimin temel becerisidir.
Katı Mod Bayrağı Her Şeyi Değiştirir
Katı kipte sağlayıcılar, her özelliğin required içinde listelenmesini ve additionalProperties değerinin false olmasını zorunlu kılar. İsteğe bağlı alanlar, atlanarak değil, null ile birleşim oluşturularak ifade edilir.
{
'type': 'object',
'properties': {
'name': {'type': 'string'},
'nickname': {'type': ['string', 'null']}
},
'required': ['name', 'nickname'],
'additionalProperties': False
}Skaler Değerleri Kısıtlama
Doğrulamayı işlem sonrasına bırakmak yerine şemanın içine taşıyın:
- Sabit seçenekler için
enum. - Sayısal aralıklar için
minimum/maximum. - Düzenli ifadeyle doğrulanan dizeler için
pattern. date-timeveyaemailgibi biçim ipuçları içinformat.
{
'rating': {'type': 'integer', 'minimum': 1, 'maximum': 5},
'sku': {'type': 'string', 'pattern': '^[A-Z]{3}-[0-9]{4}$'},
'created': {'type': 'string', 'format': 'date-time'}
}Diziler ve Demetler
Aynı türden diziler için items kullanın ve uzunluğu sınırlamak üzere minItems/maxItems ekleyin. Konumsal demetler için prefixItems üzerinden bir şema dizisi sağlayın.
{
'tags': {
'type': 'array',
'items': {'type': 'string'},
'minItems': 1,
'maxItems': 5
}
}oneOf ile Ayırt Edici Birleşimler
Çok biçimli sonuçları, oneOf ile birlikte bir ayırt edici alan kullanarak modelleyin. Model tam olarak bir dalı seçer ve seri durumdan çıkarıcınız etikete göre seçim yapar.
{
'oneOf': [
{'type': 'object', 'properties': {
'kind': {'const': 'email'},
'address': {'type': 'string', 'format': 'email'}},
'required': ['kind', 'address']},
{'type': 'object', 'properties': {
'kind': {'const': 'phone'},
'number': {'type': 'string'}},
'required': ['kind', 'number']}
]
}Türlerden Şema Üretme
Şemaları elle yazmak hataya açıktır. Şema ile kodunuzun birbirinden hiç sapmaması için onları türü belirlenmiş modellerden türetin.
from pydantic import BaseModel
class Invoice(BaseModel):
total: float
currency: str
paid: bool
schema = Invoice.model_json_schema()
# pass schema directly to response_formatAçıklamalar da İstemdir
Şemadaki her description model tarafından okunur. Bunları yalnızca alanları belgelemek için değil, anlamı yönlendirmek için kullanın.
Örneğin, 'ISO-3166 alfa-2 ülke kodu, büyük harf' gibi bir açıklama alan doğruluğunu anlamlı ölçüde artırır. Açıklamaları sözleşmeye gömülmüş mikro istemler olarak ele alın.
{
'country': {
'type': 'string',
'description': 'ISO-3166 alpha-2 code, uppercase, e.g. US, TR, DE'
}
}Şemayı İsteme Yerleştirme
Sağlayıcının yerel desteği olmadığında şemayı isteme yerleştirin ve şemaya uygunluğu zorunlu kılın. Bunu tek bir bağlam içi örnek ve açık bir yalnızca JSON, düzyazı yok talimatıyla eşleştirin.
SYSTEM = (
'You output ONLY JSON matching this schema. No markdown, no commentary.\n'
'Schema:\n' + json.dumps(schema) + '\n'
'If a value is unknown, use null.'
)Şema Şişkinliğinden Kaçınma
Aşırı derin veya dallanmış şemalar modelin kafasını karıştırır ve belirteç maliyetini artırır. Yönergeler:
- İç içeliği sınırlı tutun; mümkün olduğunda düzleştirin.
- Serbest dizeler yerine sabit seçenekleri tercih edin.
- Dev bir şemayı birden çok amaca odaklanmış çağrıya bölün.
- Bazı sağlayıcılar iç içelik derinliğini ve toplam özellik sayısını sınırlar; sınırları kontrol edin.
Başvurular ve Yeniden Kullanım
Alt şemaları yeniden kullanmak için $defs ve $ref kullanın (örneğin, faturalama ve gönderimde kullanılan bir Address). Bazı katı kiplerin özyineleme derinliğini sınırladığını unutmayın; kendine başvuran referanslara güvenmeden önce desteği doğrulayın.
{
'$defs': {
'Address': {'type': 'object', 'properties': {
'city': {'type': 'string'}}, 'required': ['city'],
'additionalProperties': False}
},
'type': 'object',
'properties': {
'billing': {'$ref': '#/$defs/Address'},
'shipping': {'$ref': '#/$defs/Address'}
},
'required': ['billing', 'shipping'],
'additionalProperties': False
}Şemanın Kendisine validate Uygulayın
İnce bir hata sınıfı vardır: sorun çıktıda değil, şemanın hatalı olmasındadır. Şemaları CI'da JSON Şema üst şemasına göre denetleyin ve validate edin; yayına almadan önce örnek bir nesneyi doğrulayıcınızdan geçirip geri döndürün.
import jsonschema
jsonschema.Draft202012Validator.check_schema(schema)
# also: validate a known-good sample
jsonschema.validate(sample_obj, schema)Hızlı Kontrol
Bir sağlayıcının katı JSON şeması kipinde isteğe bağlı bir alan doğru biçimde nasıl ifade edilir?
Özet
Artık kesin şemalar yazabilirsiniz:
- Katı kip, tüm alanların zorunlu olmasını ve additionalProperties değerinin yanlış olmasını gerektirir.
- Skalerleri sabit seçenekler, aralık, desen ve biçim ile kısıtlayın.
- Çok biçimliliği oneOf ayırt edicileriyle modelleyin.
- Şemaları türü belirlenmiş modellerden üretin; açıklamaları mikro istemler olarak ele alın.
- Şemanın kendisini CI'da doğrulayın.
Sırada: şemaları araç ve işlev çağırmaya uygulamak var.
Yapay zeka eğitmeniyle AI Prompt Engineering öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 53
- Dersler
- 199
Sıkça Sorulan Sorular
“İstemlerde JSON Şeması” dersi ücretsiz mi?
Evet — “İstemlerde JSON Şeması” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AI Prompt Engineering kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AI Prompt Engineering kursu toplamda 4 dersten oluşur.
“İstemlerde JSON Şeması” dersinde ne öğreneceğim?
Çıktı biçimini kısıtlama. AI Prompt Engineering ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
AI Prompt Engineering öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te AI Prompt Engineering, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“İstemlerde JSON Şeması” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu AI Prompt Engineering dersinde kod yazıp çalıştırabilir miyim?
Evet. Her AI Prompt Engineering dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Yapılandırılmış Çıktı Neden Önemlidir
- İstemlerde JSON Şeması
- Araç ve İşlev Şemaları
- Onarım ve Doğrulama Döngüleri