0Pricing
AI Prompt Engineering · Ders

Araç ve İşlev Şemaları

İşlev çağrıları için şemalar.

Araç ve İşlev Şemaları, CoddyKit'te ücretsiz bir AI Prompt Engineering dersidir. Bu, 4 dersinin 3. 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.

Araçlar Şema ve Niyetten İbarettir

İşlev çağırma, modelin kodunuzdan bir eylem gerçekleştirmesini istemesini sağlar. Her araç bir ad, bir açıklama (ne zaman kullanılacağı) ve parametreleri için bir JSON şemasıyla bildirilir.

Model hiçbir zaman kod çalıştırmaz; çalışma zamanınızın dispatch ettiği yapılandırılmış bir çağrı isteği üretir. Bağımsız değişkenleri ayrıştırılabilir kılan şemadır.

Araç Tanımının Anatomisi

Araç tanımı, şemayla sarılmış bir yetenek bildirimidir.

{
  'type': 'function',
  'function': {
    'name': 'get_weather',
    'description': 'Get current weather for a city. Use when the user asks about weather.',
    'parameters': {
      'type': 'object',
      'properties': {
        'city': {'type': 'string'},
        'units': {'type': 'string', 'enum': ['celsius', 'fahrenheit']}
      },
      'required': ['city', 'units'],
      'additionalProperties': False
    }
  }
}

Açıklama Seçimi Yönlendirir

Birçok araç kullanılabilir olduğunda model seçimini öncelikle açıklamaya göre yapar. Açıklamaları karar kuralları gibi yazın:

  • Ne zaman kullanılacağını ve ne zaman kullanılmayacağını belirtin.
  • Benzer araçlardan ayrımını netleştirin.
  • Gerekli ön koşullardan bahsedin.

Kötü açıklamalar, kötü şemaların bağımsız değişken hatalarına yol açmasından daha sık yanlış araç seçimine neden olur.

Çağırma-Çalıştırma-Döndürme Döngüsü

İşlev çağırma çok turludur. Model bir çağrı üretir, siz çalıştırırsınız, sonucu append edersiniz ve model devam eder.

resp = client.chat.completions.create(model='gpt-4o', messages=msgs, tools=tools)
call = resp.choices[0].message.tool_calls[0]
args = json.loads(call.function.arguments)
result = dispatch(call.function.name, args)
msgs.append(resp.choices[0].message)
msgs.append({'role': 'tool', 'tool_call_id': call.id,
             'content': json.dumps(result)})
# call the model again to continue with the tool result

Paralel Araç Çağrıları

Modern modeller, eylemler birbirinden bağımsız olduğunda tek turda birden çok araç çağrısı isteyebilir. Çalışma zamanınız tüm tool_calls değerleri üzerinde döngü kurmalı, bunları (ideal olarak eşzamanlı) çalıştırmalı ve her tool_call_id için bir araç iletisi döndürmelidir.

Tek bir çağrı olduğunu asla varsaymayın; her zaman döngü kullanın.

for call in resp.choices[0].message.tool_calls:
    args = json.loads(call.function.arguments)
    result = dispatch(call.function.name, args)
    msgs.append({'role': 'tool', 'tool_call_id': call.id,
                 'content': json.dumps(result)})

Araç Kullanımını Zorunlu Kılma ve Sınırlama

Seçimi tool_choice ile denetleyin:

  • auto — model karar verir.
  • required — bir araç çağırmak zorundadır.
  • {name: ...} — belirli bir aracı zorunlu kılar.
  • none — bu tur için araçları devre dışı bırakır.

Belirli bir aracı zorunlu kılmak, işlev çağırmayı saf yapılandırılmış ayıklamaya dönüştürür.

client.chat.completions.create(
    model='gpt-4o', messages=msgs, tools=tools,
    tool_choice={'type': 'function', 'function': {'name': 'get_weather'}}
)

Çalıştırmadan Önce Bağımsız Değişkenleri validate Edin

Katı şemalar kullanılsa bile araç bağımsız değişkenlerini güvenilmeyen girdi olarak ele alın. Gerçek sistemlere dokunmadan önce (DB'ler, ödemeler, dosya silmeleri) bunları şemaya göre yeniden validate edin ve iş kurallarını uygulayın.

def dispatch(name, args):
    schema = TOOLS[name]['function']['parameters']
    jsonschema.validate(args, schema)   # defense in depth
    if name == 'refund' and args['amount'] > MAX_AUTO_REFUND:
        return {'error': 'requires human approval'}
    return HANDLERS[name](**args)

Araç Hataları Protokolün Bir Parçasıdır

Bir araç başarısız olduğunda istisna fırlatmak yerine araç sonucu olarak yapılandırılmış bir hata döndürün. Böylece model özür dileyebilir, düzeltilmiş bağımsız değişkenlerle yeniden deneyebilir veya farklı bir araç seçebilir.

Hataları eyleme dönüştürülebilir hâle getirin: bir neden ve güvenliyse kurtarma için bir ipucu ekleyin.

{'status': 'error',
 'code': 'CITY_NOT_FOUND',
 'message': 'No city named Xyz. Ask the user to clarify the city.'}

Araç Kümesini Küçük Tutun

Onlarca araç seçim doğruluğunu düşürür ve belirteç maliyetini artırır (her şema her turda bağlamda bulunur). Çözüm yolları:

  • İlgili eylemleri action sabit seçenekleri içeren tek bir aracın arkasında gruplayın.
  • Yalnızca mevcut durumla ilgili araçları dinamik olarak kullanıma açın.
  • Benzer araçlar arasındaki karışıklığı azaltmak için ad alanı kullanın.

Yan Etkiler İçin Şemayı Sağlamlaştırma

Yıkıcı işlemler için güvenliği doğrudan şemanın içine yerleştirin: açık bir onay alanını zorunlu kılın, aralıkları sınırlandırın ve serbest metinli tanımlayıcılar yerine sabit seçenekler veya doğrulanmış kalıplar kullanın.

{
  'name': 'delete_records',
  'parameters': {
    'type': 'object',
    'properties': {
      'table': {'type': 'string', 'enum': ['logs', 'temp_cache']},
      'confirm': {'type': 'boolean'},
      'max_rows': {'type': 'integer', 'minimum': 1, 'maximum': 1000}
    },
    'required': ['table', 'confirm', 'max_rows'],
    'additionalProperties': False
  }
}

Araç Tanımlarını Test Etme

Araç seçimini ölçülebilir bir davranış olarak ele alın. İstemleri beklenen araç ve bağımsız değişkenlerle eşleyen bir değerlendirme kümesi oluşturun, ardından modelin doğru seçimi yaptığını doğrulayın. Açıklamaları yeniden yazdığınızda veya yeni araçlar eklediğinizde oluşan gerilemeyi izleyin.

cases = [
  {'prompt': 'Whats it like in Paris?', 'expect_tool': 'get_weather'},
  {'prompt': 'Convert 10 USD to EUR', 'expect_tool': 'fx_convert'}
]
for c in cases:
    assert run(c['prompt']).tool_name == c['expect_tool']

Hızlı Kontrol

Bir model, tek bir asistan turunda iki bağımsız araç çağrısı üretir. Çalışma zamanınız ne yapmalıdır?

Özet

Araç/işlev şemaları uygulamada:

  • Açıklamalar seçimi yönlendirir; şemalar ayrıştırılabilir bağımsız değişkenleri belirler.
  • Tüm araç çağrıları üzerinde döngü kurun; paralel yürütmeyi destekleyin.
  • Araç seçimiyle davranışı denetleyin; yalnızca veri çıkarma için bir aracı zorunlu kılın.
  • Bağımsız değişkenleri yeniden doğrulayın; yapılandırılmış hatalar döndürün.
  • Araç yüzeyini küçük tutun ve yıkıcı işlemleri güçlendirin.

Sırada, çıktı hâlâ yanlış olduğunda kullanılacak onarım ve doğrulama döngüleri var.

Sıkça Sorulan Sorular

“Araç ve İşlev Şemaları” dersi ücretsiz mi?

Evet — “Araç ve İşlev Şemaları” 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.

“Araç ve İşlev Şemaları” dersinde ne öğreneceğim?

İşlev çağrıları için şemalar. 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 3. dersidir.

“Araç ve İşlev Şemaları” 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

  1. Yapılandırılmış Çıktı Neden Önemlidir
  2. İstemlerde JSON Şeması
  3. Araç ve İşlev Şemaları
  4. Onarım ve Doğrulama Döngüleri
← AI Prompt Engineering Sayfasına Dön