Araç Şemalarını Tanımlama (JSON Schema)
Türler, açıklamalar, enum'lar ve zorunlu alanlarla araç parametreleri için JSON Schema tanımları yazın.
Araç Şemalarını Tanımlama (JSON Schema), CoddyKit'te ücretsiz bir AI Agents 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 Agents öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AI Agents kursu toplamda 4 dersten oluşur.
Araç Şemaları JSON Schema'dır
OpenAI, Anthropic ve diğer sağlayıcıların çoğu araç parametreleri için JSON Schema kullanır.
OpenAPI / Swagger kullandıysanız bunun %90'ını zaten biliyorsunuz.
Gerekli Üç Alan
Her araç tanımında şu alanlar bulunur:
name— benzersiz tanımlayıcı (snake_case)description— aracın ne yaptığı ve ne zaman kullanılacağıparameters— girdilerin JSON Schema'sı
En Basit Şema
Bir zorunlu dize alanı içeren bir nesne:
schema = {
'name': 'search_orders',
'description': 'Find orders by customer email',
'parameters': {
'type': 'object',
'properties': {
'email': {
'type': 'string',
'description': 'Customer email address'
}
},
'required': ['email']
}
}
import json
print(json.dumps(schema, indent=2))
JSON Schema Türleri
string— metininteger,number— sayılarboolean— doğru/yanlışarray— liste (ayrıcaitemsgerektirir)object— sözlük (ayrıcapropertiesgerektirir)
Kapalı Kümeler için Enum'lar
Tam olarak N izin verilen değer olduğunda enum kullanın:
unit_param = {
'unit': {
'type': 'string',
'enum': ['C', 'F'],
'description': 'Temperature unit'
}
}
# The model will only ever output C or F
print(unit_param)
print("Allowed values:", unit_param['unit']['enum'])
Dizi Parametreleri
Liste girdileri için items değerini ayarlayın:
tags_param = {
'tags': {
'type': 'array',
'items': {'type': 'string'},
'description': 'List of tags to filter by'
}
}
print(tags_param)
İç İçe Nesneler
Nesneleri iç içe yerleştirebilirsiniz; ancak modelin güvenilirliği için şemaları sığ tutun (en fazla 2-3 düzey):
filter_param = {
'filter': {
'type': 'object',
'properties': {
'min_price': {'type': 'number'},
'in_stock': {'type': 'boolean'}
}
}
}
print(filter_param)
Açıklama Alanları Kritik Önemdedir
Model, araçları seçer ve bağımsız değişkenleri description temelinde doldurur. Açıklamaları API belgeleri gibi ele alın:
# Bad
bad = {'description': 'gets data'}
# Good
good = {'description': 'Fetch the most recent 50 orders for the given customer email. Returns order_id, status, total. Use this when the user asks about their order history or order status.'}
print("Bad description:", bad['description'])
print("Good description:", good['description'])
required Dizisi
Zorunlu alanları açıkça işaretleyin. Model bunları her zaman doldurur; isteğe bağlı alanlar yalnızca ilgili olduklarında doldurulur:
tool_params = {
'parameters': {
'properties': {
'city': {'type': 'string'},
'unit': {'type': 'string', 'enum': ['C', 'F']}
},
'required': ['city']
}
}
print(tool_params)
print("Required fields:", tool_params['parameters']['required'])
Pydantic -> JSON Schema
Şemaları Pydantic modellerinden otomatik olarak oluşturabilirsiniz:
from pydantic import BaseModel, Field
class SearchArgs(BaseModel):
email: str = Field(description='Customer email')
limit: int = Field(50, description='Max orders to return')
schema = SearchArgs.model_json_schema()Katı Mod (OpenAI Yapılandırılmış Çıktıları)
strict: true ve additionalProperties: false eklemek, model çıktısının şemayla tam olarak eşleşmesini garanti eder:
tools = [{
'type': 'function',
'function': {
'name': 'get_weather',
'strict': True,
'parameters': {
'type': 'object',
'properties': {'city': {'type': 'string'}},
'required': ['city'],
'additionalProperties': False
}
}
}]
import json
print(json.dumps(tools, indent=2))
Açıklamanın Önemi
Bir aracın description alanı neden bu kadar önemlidir?
Özet
Şemalar modeli yönlendirir. İyi açıklamalar, kapalı kümeler için enum'lar, zorunlu alan dizileri ve katı mod, güvenilirliği artıran araçlarınızdır.
Sıkça Sorulan Sorular
“Araç Şemalarını Tanımlama (JSON Schema)” dersi ücretsiz mi?
Evet — “Araç Şemalarını Tanımlama (JSON Schema)” 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 Agents kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AI Agents kursu toplamda 4 dersten oluşur.
“Araç Şemalarını Tanımlama (JSON Schema)” dersinde ne öğreneceğim?
Türler, açıklamalar, enum'lar ve zorunlu alanlarla araç parametreleri için JSON Schema tanımları yazın. AI Agents 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 Agents öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te AI Agents, 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.
“Araç Şemalarını Tanımlama (JSON Schema)” 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 Agents dersinde kod yazıp çalıştırabilir miyim?
Evet. Her AI Agents 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
- İşlev Çağırma Nasıl Çalışır
- Araç Şemalarını Tanımlama (JSON Schema)
- Çalışma Zamanında Araç Seçme
- Sonuçları Modele Döndürme