Fonksiyon Çağırma (Function Calling / Tool Use) Nedir?
Fonksiyon çağırma, yani function calling ve tool use nedir, dil modeli bir aracı nasıl çağırır, akış adımları ve örnek senaryo ile anlatılıyor.
Fonksiyon çağırma nedir?
Fonksiyon çağırma, İngilizcede function calling ya da tool use olarak geçer. Bir dil modelinin metin üretmenin ötesine geçip, dışarıdaki bir aracı kullanma isteğini yapılandırılmış biçimde ifade etmesini sağlayan yetenektir. Örneğin hava durumu sorgulayan bir fonksiyon, bir veritabanı araması ya da bir e-posta gönderme işlemi araç olabilir.
Önemli bir ayrıntı: model fonksiyonu kendisi çalıştırmaz. Hangi aracı, hangi parametrelerle çağırmak istediğini belirten yapılandırılmış bir çıktı üretir. Çağrıyı gerçekten yürüten ve sonucu modele geri veren, uygulamanın kendi kodudur.
Neden gerekli?
Dil modeli yalnızca eğitildiği bilgiye ve konuşmadaki metne erişir. Güncel bir kur bilgisini, şirketin stok durumunu ya da bir müşterinin sipariş kaydını bilemez. Fonksiyon çağırma bu boşluğu kapatır: model, bilgiyi ya da eylemi sağlayan araca yönlendirme yapar.
İkinci fayda güvenilirliktir. Serbest metinden çıkarım yapmaya çalışmak yerine, model önceden tanımlı bir şemaya uygun çıktı üretir. Böylece uygulama kodu, parametreleri doğrudan okuyup işleyebilir.
Nasıl çalışır? Akış adımları
- Geliştirici, kullanılabilecek araçları ad, açıklama ve parametre şemasıyla modele tanımlar.
- Kullanıcı bir istek yazar. Model, isteği yanıtlamak için araç gerekip gerekmediğine karar verir.
- Araç gerekiyorsa model, araç adı ve parametreleri içeren yapılandırılmış bir çağrı isteği üretir.
- Uygulama bu isteği alır, ilgili fonksiyonu çalıştırır ve sonucu modele geri iletir.
- Model, sonucu kullanarak kullanıcıya nihai yanıtı yazar.
Gerekirse bu döngü birkaç kez tekrarlanır: model bir aracın sonucunu görüp başka bir aracı çağırabilir. Araç tanımlarının açıklamaları, modelin doğru aracı seçmesinde belirleyicidir.
Örnek: sipariş durumu sorgulama
Örneğin bir müşteri hizmetleri asistanına araç olarak sipariş durumunu getiren bir fonksiyon tanımlandı. Fonksiyon sipariş numarasını parametre olarak alıyor.
Müşteri, kendi sipariş numarasını yazıp kargosunun nerede olduğunu soruyor. Model bu isteği görünce serbest yanıt vermek yerine sipariş durumu fonksiyonunu o numarayla çağırmak istediğini bildirir. Uygulama fonksiyonu çalıştırır, kargo bilgisini modele geri verir; model de bunu müşteriye doğal bir cümleyle aktarır. Sipariş numarası eksik olsaydı, model önce numarayı sorardı.
İyi bir araç tasarımı nasıl olur?
Araç adı eylemi açıkça anlatmalı, açıklama aracın ne zaman kullanılması gerektiğini ve ne zaman kullanılmaması gerektiğini söylemelidir. Parametreler tipleri ve zorunlu olup olmadıklarıyla tanımlanır; belirsiz parametre adları modelin yanlış değer üretmesine yol açar.
Sınırlı ve net araç seti, çok sayıda benzer aracı birlikte sunmaktan daha güvenilirdir. Hata durumunda aracın anlamlı bir hata mesajı döndürmesi, modelin durumu toparlamasını sağlar.
MCP ile ilişkisi ve güvenlik
Fonksiyon çağırma, modelin aracı çağırma mekanizmasıdır. Model Context Protocol (MCP) ise araçların ve veri kaynaklarının uygulamaya nasıl sunulacağını tanımlayan ortak protokoldür; ikisi çoğu zaman birlikte kullanılır.
Güvenlikte temel ilke şudur: modelin ürettiği parametrelere körü körüne güvenilmez. Uygulama girdiyi doğrular, yetki sınırını uygular ve geri alınamayan işlemler, örneğin ödeme ya da silme, kullanıcı onayına bağlanır. Aracın sonucunda gelen metin de modele talimat gibi görünebileceğinden, güvenilmeyen içerik ayrı ele alınır.
Bu konuyu Mindset programlarında nerede çalışırsınız?
Mindset kataloğundaki Tool Use ve Function Calling eğitiminin modülleri arasında Function Calling Temelleri, Araç Tasarımı ve Belgeleme, API ve Veri Kaynaklarına Bağlanma, Güvenlik ve Güvenilirlik ile Gelişmiş Desenler ve Optimizasyon bulunur. Model Context Protocol (MCP) ile Araç Entegrasyonu eğitimi MCP Sunucusu Geliştirme ve İstemci Tarafı Entegrasyon modüllerini içerir.
İlgili Mindset programı
Tool Use ve Function Calling
Sık sorulan sorular
Model fonksiyonu gerçekten çalıştırır mı?
Hayır. Model yalnızca hangi fonksiyonu hangi parametrelerle çağırmak istediğini bildirir. Çalıştırmayı uygulama yapar ve sonucu modele geri verir; böylece yürütme ve yetki kontrolü geliştiricinin elinde kalır ve riskli işlemler model kararına bırakılmaz.
Function calling ile tool use aynı şey mi?
Pratikte aynı yeteneği anlatan iki ifadedir ve çoğu zaman birbirinin yerine kullanılır. Bazı sağlayıcılar function calling, bazıları tool use ya da tool calling der. Mantık aynıdır: model, tanımlı bir aracı çağırma isteğini yapılandırılmış biçimde üretir ve uygulama bu isteği işler.
Her araç çağrısı doğru parametreyle mi gelir?
Her zaman değil. Model bazen eksik ya da hatalı parametre üretebilir. Bu yüzden uygulama girdiyi doğrulamalı, gerektiğinde modele anlaşılır bir hata mesajı döndürerek parametreyi düzeltme fırsatı vermelidir.
Hangi tür araçlar tanımlanabilir?
Bir API çağrısı, veritabanı sorgusu, hesaplama, dosya okuma ya da e-posta gönderme gibi kodla ifade edilebilen her işlem araç olabilir; yeter ki girdisi ve çıktısı net tanımlansın. Seçerken ödeme ya da silme gibi geri alınamayan eylemlerin kullanıcı onayı gerektirmesine dikkat edilir.