Function Calling (Araç Kullanımı)

Function calling (fonksiyon çağırma, ayrıca "tool use"/araç kullanımı olarak da adlandırılır), bir LLM'in yalnızca metin üretmenin ötesine geçip harici sistemlerde gerçek eylemleri tetiklemesini sağlayan bir yetenektir — bir API çağırmak, bir veritabanını sorgulamak, bir hesaplama yapmak veya kod çalıştırmak — hangi fonksiyonun hangi argümanlarla çağrılacağını belirten yapılandırılmış, makine tarafından ayrıştırılabilir bir istek (tipik olarak JSON) çıktısı vererek; uygulamanız bunu gerçekten yürütür ve sonucu, akıl yürütmeye devam etmesi veya kullanıcıya yanıt vermesi için modele geri besler. Bu, bir LLM'i "metin girer, metin çıkar" bir sistemden gerçek dünyayla etkileşime girebilen bir sisteme dönüştüren mekanizmadır: function calling olmadan, "hesap bakiyem ne kadar" diye sorulan bir LLM yalnızca tahmin edebilir veya reddedebilir; function calling ile, tanımladığınız bir `get_account_balance(user_id)` fonksiyonunu çağırabilir, gerçek sayıyı geri alabilir ve doğru şekilde yanıt verebilir. Bu, SaaS geliştiricileri için son derece önemlidir çünkü sohbet etmenin ötesinde bir şey yapan her AI özelliğinin altında yatan temel ilkeldir — rezervasyon asistanları, veri sorgulama chatbot'ları, özerk kodlama ajanları ve "eylem alan herhangi bir AI", modelin akıl yürütmesi ile gerçek sistemleriniz arasındaki köprü olarak function calling'e dayanır. Mekanik: bir geliştirici, isimler, açıklamalar ve tiplendirilmiş parametrelerle bir dizi mevcut fonksiyon tanımlar (modelin nelerin mevcut olduğunu ve ne zaman kullanılacağını anlamak için kullandığı bir şema); kullanıcının isteği bu fonksiyonlardan birini gerektirdiğinde, model bunu doğrudan çağırmaz — fonksiyon adını ve argümanları belirten yapılandırılmış bir istek çıktısı verir, uygulama kodunuz gerçek fonksiyonu gerçek arka ucunuza karşı yürütür ve sonuç, nihai yanıtına bu gerçek veriyi dahil edebilmesi için modele yeni bir mesaj olarak gönderilir. Somut bir örnek: bir SaaS planlama asistanına `{"name": "check_calendar_availability", "parameters": {"date": "string", "duration_minutes": "integer"}}` şeklinde bir araç tanımı verilir. Bir kullanıcı "yarın öğleden sonra Sarah ile 30 dakika görüşebilir miyim?" diye sorar. Model, sahip olmadığı gerçek veriye ihtiyaç duyduğunu fark eder ve `{"tool_call": "check_calendar_availability", "arguments": {"date": "2026-07-03", "duration_minutes": 30}}` çıktısını verir; uygulamanız bunu gerçek takvim API'sine karşı yürütür, `{"available_slots": ["14:00", "15:30"]}` geri alır, bunu modele geri gönderir ve model kullanıcıya şöyle yanıt verir: "Evet — Sarah yarın 14:00 veya 15:30'da 30 dakikalığına müsait. Birini ayırtmamı ister misiniz?" Function calling ayrıca, araçların farklı uygulamalarda modellere nasıl sunulacağını standartlaştıran MCP'nin (Model Context Protocol) altında yatan mekanizmadır. Fonksiyon/araç tanımları, iyi belgelenmiş bir API ile aynı tasarım disiplininden fayda görür: her fonksiyonun ne yaptığına ve ne zaman kullanılacağına dair net, özel açıklamalar (yalnızca parametre türleri değil) bir modelin doğru aracı ne kadar güvenilir şekilde seçtiğini ve doğru argümanları ne kadar doldurduğunu ölçülebilir şekilde iyileştirir — kötü tanımlanmış bir `search(query)` fonksiyonu tutarsız kullanımı davet ederken, tam olarak neyi aradığına dair açık bir açıklamayla `search_customer_invoices(customer_id, date_range)`, modele çok daha az hata alanı bırakır. Geliştiriciler ayrıca, herhangi bir güvenilmeyen girdiyi doğrulayacakları gibi, modelin sağladığı araç argümanlarını gerçek sistemlere karşı yürütmeden önce doğrulamalı ve temizlemelidir; çünkü bir model, bir AI'dan geldiği için körü körüne güvenilmemesi gereken bozuk veya beklenmedik argüman değerleri üretebilir.

İlgili terimler

Daha fazla Temel Yapay Zeka terimi