Function Calling Nedir? Yapay Zekanın Araç Kullanması Nasıl Çalışır?

Function calling nedir?
Function calling, yani fonksiyon çağırma, bir yapay zeka modelinin sizin tanımladığınız fonksiyonlardan hangisini hangi argümanlarla çağırması gerektiğine karar vermesidir. Model fonksiyonu kendisi çalıştırmaz. Çağrı önerisini düzenli bir yapıda döndürür, çalıştırmayı uygulamanız yapar ve sonuç modele geri döner.
Bir restoranı düşünün. Müşteri siparişi garsona söyler, garson bunu mutfağın anlayacağı bir fişe yazar. Yemeği garson pişirmez, mutfak pişirir. Function calling içinde model garsondur ve fişi yazar. Mutfak ise sizin kodunuzdur.
Bu benzetme önemli bir noktayı da gösterir. Garson mutfağa ne yazarsa o işlenir, bu yüzden fişi kontrol eden biri olmalıdır. Aynı şekilde modelin önerisini körü körüne çalıştırmak yerine doğrulamanız gerekir.
Function calling nedir sorusunu iki cümlede toparlarsak: model ne yapılacağını söyler, kod yapar. Aradaki sınır net kaldıkça sistem güvenli ve denetlenebilir kalır.
Bu yazı yalnız bu terimi anlatır. Komşu kavramlara kısaca değiniriz, ayrıntıları için ilgili yazılarımıza bağlantı veririz. Teknik ayrıntılarda her zaman sağlayıcının resmi belgesi esastır.
Function calling nedir sorusunun teknik cevabı: akış adım adım nasıl işler?
Akış dört adımdan oluşur ve sağlayıcıların resmi belgeleri bu çerçeveyi aynı mantıkla anlatır. Ayrıntılar API'den API'ye değişir, ama iskelet sabittir.
- Önce modele kullanılabilir fonksiyonların listesini, yani adlarını, açıklamalarını ve parametrelerini gönderirsiniz.
- Model kullanıcının isteğini okur ve bir fonksiyon gerekip gerekmediğine karar verir.
- Gerekiyorsa model fonksiyon adını ve argümanları içeren bir çağrı önerisi döndürür. Uygulamanız bu fonksiyonu kendi ortamında çalıştırır.
- Son olarak sonucu modele geri gönderirsiniz ve model bu sonuçtan kullanıcıya doğal bir cevap yazar.
Yani modelle uygulamanız arasında bir tür gidiş geliş vardır. Model yalnız metin ve düzenli öneri üretir, dış dünyaya dokunan her şey sizin tarafınızda kalır.
OpenAI belgeleri her çağrıya bir kimlik numarası verir ve sonucu bu numarayla eşleştirmenizi ister. Böylece model, hangi sonucun hangi çağrıya ait olduğunu bilir. Anthropic belgeleri de aynı eşleştirmeyi kullanır.
Model fonksiyonu gerçekten kendisi mi çalıştırır?
Hayır. Google'ın Gemini belgeleri bunu açıkça söyler: model fonksiyonu çalıştırmaz, uygulamanız ad ve argümanları alıp çalıştırır. OpenAI ve Anthropic belgeleri de aynı akışı tarif eder.
Bu ayrım pratikte çok önemlidir. Çünkü yetki, günlük kaydı, hata yönetimi ve güvenlik kararları tamamen sizin kodunuzda yaşar. Model bir veritabanına doğrudan bağlanmaz, bir ödeme almaz, bir e-posta göndermez.
Ancak bir istisna vardır. Bazı sağlayıcılar kendi altyapılarında çalışan hazır araçlar sunar, örneğin web araması gibi. Bunlara sunucu tarafı araçlar denir ve çalıştırmayı sağlayıcı üstlenir. Bu yazıdaki akış, sizin tanımladığınız fonksiyonlar içindir.
Hangi tarafın neyi çalıştırdığını netleştirmek, sorumluluğu da netleştirir. Kendi fonksiyonunuzda bir hata çıkarsa sorumlu sizsiniz. Dolayısıyla test, kayıt ve izleme işini baştan planlamak gerekir.
Örneğin bir müşteri destek botunda "kargom nerede?" sorusu geldiğinde model yalnız sorgu önerisini yazar. Kargo sistemine bağlanan, kimlik kontrolü yapan ve sonucu döndüren kod sizindir. Bu sınır, olası bir hatayı da kendi tarafınızda yakalamanızı sağlar.
Bir fonksiyon tanımı hangi parçalardan oluşur?
Bir fonksiyon tanımı üç ana parçadan oluşur. Bunları ne kadar özenli yazarsanız model o kadar isabetli seçim yapar.
- Ad: kısa, anlamlı ve tek işi anlatan bir isim. Örneğin siparis_durumu_getir gibi.
- Açıklama: fonksiyonun ne işe yaradığını, ne zaman kullanılacağını ve ne zaman kullanılmayacağını anlatan düz cümleler.
- Parametre şeması: argümanların adı, türü ve hangilerinin zorunlu olduğu. Sağlayıcılar bunun için JSON şemasını kullanır.
Açıklama en çok hafife alınan parçadır. Model, fonksiyonu seçerken çoğunlukla bu metne bakar. Belirsiz bir açıklama yanlış seçime, iyi yazılmış bir açıklama doğru seçime yol açar.
Ayrıca bazı sağlayıcılar katı mod sunar. Bu modda modelin ürettiği argümanlar şemaya birebir uyar. Güncel seçenekleri ve ayar adlarını sağlayıcının resmi belgesinden kontrol edin.
Şemada serbest metin alanlarını azaltın. Mümkünse sabit seçenek listeleri tanımlayın, çünkü model sınırlı seçenekte daha az hata yapar.
Zorunlu ve isteğe bağlı alanları da bilinçli ayırın. Zorunlu alan eksikse modelin kullanıcıya soru sorması gerekir. İsteğe bağlı alan çoğaldıkça model gereksiz tahmin yürütür.
Fonksiyon açıklamasını nasıl yazarsınız ki model doğru seçim yapsın?
Açıklamayı modelin işe alım ilanı gibi düşünün. Fonksiyonun ne yaptığını, hangi durumda devreye gireceğini ve neye dokunmadığını açıkça yazın. Belirsiz bir ilan, yanlış adayı çağırır.
- İşi tek cümlede söyleyin: "Sipariş numarasına göre güncel sipariş durumunu getirir."
- Sınırı belirtin: "İade ya da değişim başlatmaz, yalnız durumu okur."
- Argümanların biçimini örnekleyin: "Sipariş numarası harf ve rakamdan oluşan kısa bir koddur."
- Benzer iki fonksiyon varsa farkı açıkça yazın, çünkü model en çok burada şaşırır.
- Gereksiz uzatmayın. Her fazladan cümle token maliyetine eklenir.
Ayrıca fonksiyon adlarında tutarlı bir düzen kullanın. Hepsi fiil ile başlasın ve işin nesnesini taşısın. Böylece hem model hem de kodu okuyan ekip arkadaşınız aradığını kolay bulur.
Model hangi fonksiyonu ne zaman çağıracağına nasıl karar verir?
Model kararını kullanıcı mesajına, konuşma geçmişine ve fonksiyon açıklamalarına bakarak verir. Anthropic belgeleri bunu şöyle özetler: istek bir aracın tarif edilen yeteneğiyle eşleşiyorsa ve cevap bağlamda yoksa model araç çağırır. Sabit bilgi, yaratıcı görev ve sohbet turlarında ise doğrudan cevap verir.
Bu davranışı üç yolla yönlendirirsiniz. Birincisi açıklamaları netleştirmektir. İkincisi sistem talimatına "bilmediğin bilgiyi araçla doğrula" gibi bir kural eklemektir. Üçüncüsü ise araç seçim modunu ayarlamaktır.
| Seçim modu | Ne yapar | Ne zaman kullanırsınız |
|---|---|---|
| Otomatik | Model çağırıp çağırmamaya kendisi karar verir. | Genel sohbet asistanlarında. |
| Zorunlu | Model mutlaka bir fonksiyon çağırır. | Her mesajın bir işleme dönüştüğü akışlarda. |
| Belirli fonksiyon | Model yalnız seçtiğiniz fonksiyonu çağırır. | Tek adımlı, öngörülebilir işlerde. |
| Kapalı | Model hiç fonksiyon çağırmaz. | Yalnız metin cevabı istediğiniz anlarda. |
Mod adları sağlayıcıya göre değişir. Bu yüzden kesin değerler için resmi belgeye bakın.
Function calling nedir ve tool use ile aynı şey midir?
Büyük ölçüde evet. Anthropic belgeleri "tool use" terimini kullanır ve bunun function calling olarak da anıldığını yazar. OpenAI ve Google ise function calling adını tercih eder. Üçü de aynı fikri anlatır.
Ancak ince bir fark var. "Tool", fonksiyondan daha geniş bir şemsiyedir. Bir tool, sizin yazdığınız bir fonksiyon olabilir. Aynı zamanda sağlayıcının çalıştırdığı bir web araması ya da kod çalıştırma aracı da olabilir.
Kısacası günlük konuşmada iki terim birbirinin yerine geçer. Ama mimari karar verirken şunu sorun: çalıştırmayı kim yapıyor, siz mi sağlayıcı mı?
Araştırma yaparken "tool calling", "tool use" ve "function calling" aramalarının büyük kısmı aynı sayfalara çıkar. Bu yüzden belge okurken üçünü de arayın.
OpenAI, Anthropic ve Google yaklaşımları nasıl karşılaştırılır?
Üç sağlayıcı da aynı çekirdek akışı kullanır, ama terimler ve ayarlar farklıdır. Aşağıdaki tablo yalnız resmi belgelerde gördüğümüz kavramsal farkları özetler. Ayar adlarını ve güncel davranışı her zaman belgeden doğrulayın.
| Konu | OpenAI | Anthropic | Google Gemini |
|---|---|---|---|
| Kullandığı ad | Function calling. | Tool use, yani function calling. | Function calling. |
| Tanım biçimi | JSON şemalı fonksiyon tanımı. | Girdi şemalı araç tanımı. | JSON şemalı fonksiyon bildirimi. |
| Sonucu geri verme | Çağrı kimliğiyle eşleşen çıktı kaydı. | Araç kullanım kimliğiyle eşleşen sonuç bloğu. | Fonksiyon yanıtı olarak geri gönderme. |
| Çağrıyı zorlama | Otomatik, zorunlu ya da belirli fonksiyon. | Otomatik, herhangi biri ya da belirli araç. | Otomatik, herhangi biri, kapalı ve doğrulamalı mod. |
| Paralel çağrı | Var, kapatılabilir. | Var, kapatılabilir. | Paralel ve birleşik çağrı var. |
Bu yüzden sağlayıcı değiştirirken fonksiyon mantığınızı taşıyabilirsiniz, ama çalıştırma katmanındaki ayrıntıları yeniden yazarsınız. İşi sağlayıcıdan bağımsız bir ara katmanda tutmak ileride size esneklik kazandırır.
Aynı anda birden çok fonksiyon çağrılabilir mi?
Evet, modeller buna izin verir. Google belgeleri iki durumu ayırır: bağımsız işlerde paralel çağrı, birbirine bağlı işlerde ardışık yani birleşik çağrı.
Örneğin bir kullanıcı "siparişimin durumu nedir ve iade koşulları neler?" diye sorsun. Sipariş sorgusu ile iade politikası aramasının birbirine ihtiyacı yoktur, dolayısıyla model ikisini aynı turda önerebilir. Bir randevu akışında ise önce uygun saatleri sorgulamanız, sonra seçilen saati kaydetmeniz gerekir. Bu çağrılar sırayla ilerler.
Paralel çağrı hız kazandırır. Ama her çağrının kendi hatası olabilir, bu yüzden hepsinin sonucunu eşleştirerek geri göndermelisiniz.
OpenAI ve Anthropic belgeleri, tek turda en fazla bir çağrıya izin veren bir ayar da sunar. Kritik işlemlerde bu ayarı açmak işinizi kolaylaştırır, çünkü her adımı tek tek denetlersiniz.
Function calling hangi iş senaryolarında işe yarar?
Model kendi başına güncel veriye ulaşamaz ve işlem yapamaz. Function calling bu iki boşluğu doldurur. Bu nedenle sohbeti bir işe bağlamak istediğiniz her yerde değerlidir.
- Sipariş ve kargo durumu sorgulama.
- Randevu oluşturma, değiştirme ve iptal etme.
- Stok ve fiyat kontrolü.
- Müşteri kaydını CRM'de bulma ve not ekleme.
- Rapor için veri çekme ve özetleme.
- Destek talebi açma ve doğru ekibe yönlendirme.
Hepsinin ortak noktası aynıdır: model niyeti anlar, kod işi yapar. Dolayısıyla ürününüzde "sohbet edebilen ama iş yapamayan" bir asistan varsa function calling eksik halkadır.
Bu yaklaşım pazarlama ve satış ekiplerinde de işe yarar. Örneğin bir form botu, müşterinin ilgisini anlayıp teklif kaydını CRM'e kendisi açabilir. Önemli olan, bu kaydı açma yetkisini dar tutmanızdır.
Randevu asistanı örneğinde akış nasıl görünür?
Bu bir örnek senaryodur. Bir danışmanlık işletmesi düşünün. Müşteri yazar: "Cuma öğleden sonra bir görüşme ayarlayabilir miyiz?"
- Model "uygun_saatleri_getir" fonksiyonunu çağırmayı önerir ve gün bilgisini argüman olarak verir.
- Uygulamanız takvim sisteminde uygun saatleri sorgular ve listeyi modele döndürür.
- Model müşteriye seçenekleri sorar. Müşteri bir saat seçer.
- Model bu kez "randevu_olustur" fonksiyonunu önerir. Eksik bilgi varsa, örneğin telefon numarası, önce müşteriye sorar.
- Uygulamanız kaydı oluşturur ve sonucu geri gönderir. Model onay mesajını yazar.
Burada dikkat edin: kayıt oluşturma adımı yazma işlemidir. Bu nedenle kullanıcıdan açık onay almak mantıklıdır. Güvenlik bölümünde buna döneceğiz.
Ayrıca ikinci adımda takvim sistemi hata verirse ne olacağını da düşünün. Uygulamanız hatayı modele açıkça bildirirse model müşteriye dürüst bir cevap verir. Sessiz kalırsa model uydurma bir saat söyleyebilir.
Son olarak konuşmanın sonunda özet isteyin. Model "Cuma günü için bir görüşme oluşturdum" dediğinde, bu cümle gerçekten başarılı bir kayda dayanmalıdır. Kayıt oluşmadıysa onay cümlesi de çıkmamalıdır.
Function calling ile yapay zeka ajanı arasındaki ilişki nedir?
Bir yapay zeka ajanı, çoğu zaman function calling'in bir döngü içinde tekrar etmesidir. Model bir fonksiyon önerir, uygulama çalıştırır, model sonuca bakıp bir sonraki adıma karar verir. Döngü, model "işim bitti" diyene kadar sürer.
Dolayısıyla function calling ajanın yapı taşıdır, ajan ise daha büyük bir kavramdır. Ajan hedef belirler, adımları planlar ve araçları sırayla kullanır. Tek bir çağrı ise ajan sayılmaz.
Döngü kurduğunuzda iki güvenlik kuralı şarttır. Birincisi adım sayısına üst sınır koymaktır. İkincisi her adımda yetki kontrolünü yinelemektir. Aksi halde model sonsuza kadar araç çağırabilir ya da kapsamı genişletebilir.
Ajan mimarisinin ayrıntıları için yazının sonundaki bağlantılara bakın. Burada yalnız aradaki bağı kuruyoruz.
Function calling ile MCP arasındaki fark nedir?
Function calling bir modelin araç çağrısı önerme yeteneğidir. MCP ise araçların modele nasıl sunulacağını standartlaştıran açık bir protokoldür. Biri yetenek, diğeri bağlantı standardıdır.
Sonuç olarak MCP kullansanız da arka planda model yine bir araç çağrısı önerir. Fark, araç tanımlarını her uygulamaya elle yazmak yerine ortak bir sunucudan almanızdır. Ayrıntılar için MCP nedir yazımıza bakabilirsiniz.
Küçük ve tek uygulamalık projelerde doğrudan function calling çoğu zaman yeterlidir. Aynı araçları birden çok uygulamada kullanacaksanız MCP düşünmeye değer.
Karar verirken şu ölçütü kullanın: araç sayınız az ve tek bir uygulamada yaşıyorsa basit tutun. Ekipler arasında paylaşılan çok sayıda araç varsa ortak standart bakım yükünü azaltır.
Üstelik ikisi birbirini dışlamaz. Önce function calling mantığını kavramak, MCP'yi anlamayı da kolaylaştırır.
Function calling ile structured output arasındaki fark nedir?
Structured output, yani şemalı çıktıda amaç, modelin cevabını belirlediğiniz şemaya uygun bir veri olarak almaktır. Function calling'de ise amaç, bir eylemi tetiklemektir. İkisi de şema kullanır, ama hedefleri farklıdır.
Örneğin bir e-postadan sipariş numarası ve tutar çıkarmak istiyorsanız structured output yeterlidir. Müşterinin siparişini sistemde sorgulamak istiyorsanız function calling gerekir. Bazen ikisini birlikte kullanırsınız: model önce fonksiyonu çağırır, sonra cevabı şemaya uygun üretir.
Konunun ayrıntısı structured output nedir yazımızda anlatılıyor. Bu yazıda onu yalnız karşılaştırma için anıyoruz.
Function calling, MCP, structured output ve RAG yan yana nasıl durur?
Bu dört kavram sık karışır. Aşağıdaki tablo her birinin asıl işini ve çalıştırmayı kimin yaptığını özetler.
| Kavram | Asıl işi | Çalıştırmayı kim yapar | Ne zaman seçersiniz |
|---|---|---|---|
| Function calling | Modelin bir eylem ya da sorgu önermesi. | Sizin uygulamanız. | Sohbeti canlı veriye ve işlemlere bağlamak için. |
| MCP | Araçları ortak bir protokolle sunmak. | MCP sunucusu ve istemci uygulama. | Aynı araçları birçok uygulamada paylaşmak için. |
| Structured output | Cevabı şemaya uygun veri olarak almak. | Yok, çıktı veridir. | Metinden alan çıkarmak ve sınıflandırmak için. |
| RAG | Cevabı belgelerden getirdiğiniz bilgiyle desteklemek. | Arama katmanınız. | Şirket belgelerinden dayanaklı cevap için. |
RAG'ı ayrıca RAG nedir yazımızda ele aldık. Pratikte bir ajan, belge aramayı da bir fonksiyon olarak çağırabilir. Yani kavramlar rakip değil, tamamlayıcıdır.
Function calling hangi güvenlik risklerini getirir?
Modele bir eylem gücü verdiğinizde risk yüzeyi büyür. Çünkü model, kullanıcı mesajından ve okuduğu içerikten etkilenir. Kötü niyetli bir metin modeli yanlış fonksiyona ya da yanlış argümana yönlendirebilir.
- Fazla yetki: fonksiyon gereğinden geniş izinle çalışırsa küçük bir hata büyük zarar verir.
- Prompt injection: bir belgeye ya da web sayfasına gizlenmiş talimat modeli saptırabilir.
- Hatalı argüman: model eksik bilgiyi tahmin edip uydurabilir.
- Veri sızıntısı: fonksiyon sonucu modele geri gittiği için hassas alanları orada da görürsünüz.
Prompt injection konusunu ayrı bir yazıda ayrıntılandırdık. Kısaca: şema doğrulaması güvenlik değildir. Şema yalnız biçimi denetler, yetkiyi denetlemez.
Ayrıca fonksiyon sonuçlarını da güvenilmez girdi sayın. Bir web sayfasından ya da e-postadan gelen metin, modele yeni bir talimat gibi görünebilir.
Onay ve yetki sınırlarını nasıl kurarsınız?
Temel ilke en az yetkidir. Her fonksiyonu, yalnız işini yapmaya yetecek izinle çalıştırın. Okuma ve yazma işlemlerini ayrı fonksiyonlara bölün.
- Okuma işlemleri (sorgulama, listeleme) için otomatik çalıştırma yeterli olabilir.
- Yazma işlemleri (kayıt, iptal, gönderim) için kullanıcıdan açık onay alın.
- Geri alınamayan işlemleri (silme, ödeme) modele hiç açmayın ya da insan onayına bağlayın.
- Kullanıcının kimliğini oturumdan alın. Kimlik bilgisini modelin argümanına bırakmayın.
- Her çağrıyı kaydedin: hangi fonksiyon, hangi argüman, kim için, hangi sonuç.
Bu yüzden yetki kontrolünü fonksiyonun içine koyun, modele güvenmeyin. Model yanlış öneri yapsa bile kodunuz "bu kullanıcı bunu yapamaz" diyebilmelidir.
Ayrıca tekrar eden çağrılara karşı da hazırlıklı olun. Ağ kesilince aynı yazma işlemi iki kez gelebilir. Aynı çağrıyı ikinci kez çalıştırmak zarar vermeyecek şekilde tasarlayın.
Model yanlış argüman üretirse ne olur?
Model bazen eksik ya da hatalı bir argüman önerir. Özellikle kullanıcı bir bilgiyi vermediğinde bazı modeller makul görünen bir değer tahmin edebilir. Anthropic belgeleri bu davranışın garanti edilmediğini açıkça belirtir.
Bu nedenle her çağrıyı çalıştırmadan önce doğrulayın. Tür, aralık, zorunluluk ve iş kuralı kontrolü yapın. Örneğin geçmiş bir tarihe randevu isteyen çağrıyı reddedin.
Reddettiğinizde hata mesajını modele geri gönderin. Model genellikle kullanıcıya doğru soruyu sorarak ya da argümanı düzelterek tekrar dener. Ancak sonsuz döngüyü önlemek için deneme sayısına bir üst sınır koyun.
Katı mod bu riski azaltır, ama ortadan kaldırmaz. Biçim doğru olsa bile değer yanlış olabilir. Yani şemaya uyan bir tarih yine de yanlış bir tarih olabilir.
Function calling maliyet ve gecikmeyi nasıl etkiler?
Her fonksiyon tanımı isteğin bir parçası olarak modele gider. Anthropic belgeleri, araç adlarının, açıklamalarının ve şemalarının giriş token'ı olarak sayıldığını belirtir. Dolayısıyla çok sayıda ve uzun tanım maliyeti artırır.
Ayrıca akış en az iki model çağrısı demektir: biri öneri için, biri sonucu yorumlamak için. Bu da yanıt süresini uzatır. Güncel fiyatları ve limitleri sağlayıcının resmi sayfasından kontrol edin.
Maliyeti düşürmek için fonksiyon sayısını gerçekten gerekenle sınırlayın ve açıklamaları kısa tutun. Token mantığını token nedir yazımızda anlattık.
Function calling nedir diye düşünürken maliyeti de hesaba katın, çünkü her ek tanım ve her ek tur bir bedel taşır. Ancak doğru kurulduğunda manuel iş yükünü azaltır.
Gecikme için de bir ipucu var: birbirinden bağımsız sorguları paralel çağırtın. Kullanıcı bekleme süresini bir kez yaşar, dört kez değil.
Function calling kullanırken sık yapılan hatalar nelerdir?
Ekiplerin ilk denemelerde en çok düştüğü tuzakları sıraladık. Hepsi önlenebilir.
- Çok fazla fonksiyon vermek. Seçenek arttıkça modelin yanlış seçme ihtimali de artar.
- Bir fonksiyona birden çok iş yüklemek. Tek işi olan fonksiyonlar daha az hata üretir.
- Kimlik ve yetkiyi argümandan almak. Kullanıcı kimliği her zaman oturumdan gelmelidir.
- Hata durumunu modele söylememek. Model sessizlikte tahmin yürütür.
- Onay adımını atlamak. Yazma işlemleri insan ya da kullanıcı onayı ister.
- Günlük kaydı tutmamak. Sorun çıktığında neyin çağrıldığını göremezsiniz.
- Sonucu olduğu gibi geri göndermek. Gereksiz ve hassas alanları ayıklayın.
Bu hataların çoğu modelden değil, çevresindeki koddan kaynaklanır. Yani başarıyı belirleyen şey, modelin zekâsı kadar sizin mühendisliğinizdir.
Function calling akışını nasıl test edersiniz?
Gerçek sistemlere bağlamadan önce sahte fonksiyonlarla başlayın. Sahte fonksiyon, sabit ve tahmin edilebilir cevaplar döndürür. Böylece yalnız modelin karar kalitesini ölçersiniz.
- Gerçek kullanıcı mesajlarından bir senaryo listesi hazırlayın. Net, belirsiz ve eksik bilgili örnekleri karıştırın.
- Her senaryo için beklenen fonksiyonu ve beklenen argümanları yazın.
- Modelin doğru fonksiyonu seçip seçmediğini ve argümanları doğru doldurup doldurmadığını kaydedin.
- Kötü niyetli girdileri ayrıca deneyin: fonksiyon dışına çıkma isteği, başkasının verisini sorma, talimat gizlenmiş metin.
- Her değişiklikten sonra aynı listeyi yeniden çalıştırın, böylece gerilemeyi yakalarsınız.
Ayrıca gerçek çağrıları günlükte izleyin. Canlıya çıktıktan sonra karşılaştığınız yeni durumları senaryo listenize ekleyin. Liste büyüdükçe kaliteniz de artar.
Function calling nedir sorusunun tersi: ne zaman gerekmez?
Her iş için function calling gerekmez. Adımları sabit ve kuralları belli bir süreç varsa, düz bir kod ya da form çoğu zaman daha ucuz, daha hızlı ve daha güvenlidir.
- Kullanıcıdan alınacak bilgi belliyse bir form modelden daha öngörülebilirdir.
- Cevap yalnız sabit bir belgeden çıkıyorsa RAG ya da basit arama yeterli olabilir.
- Hata toleransı sıfır olan işlemlerde modeli karar verici yapmayın.
- Geri alınamayan işlemleri insan onayı olmadan otomatikleştirmeyin.
Dolayısıyla kendinize şunu sorun: Bu işte niyeti anlamak gerçekten zor mu? Cevap hayırsa, klasik yazılım çözümü kazanır. Function calling, niyetin serbest dille geldiği ve işin sistemlere dokunduğu yerde anlam kazanır.
Ayrıca denemeden önce küçük bir değer hesabı yapın. Aylık kaç konuşma olacak, kaçı gerçekten bir işleme dönüşecek? Bu sayıyı kendi verinizle çıkarın, çünkü örnek hesaplar işletmeden işletmeye değişir.
Function calling nedir diye araştıran bir işletme neleri kontrol etmeli?
Projeye başlamadan önce aşağıdaki maddeleri yanıtlayın. Eksik kalan her madde ileride bir hata ya da güvenlik açığı olarak geri döner.
- Hangi işleri gerçekten fonksiyona dönüştüreceksiniz, hangileri insanda kalacak?
- Her fonksiyon tek bir iş yapıyor ve açıklaması net mi?
- Okuma ve yazma işlemleri ayrı mı?
- Yazma işlemlerinde kullanıcı onayı var mı?
- Kimlik ve yetki kontrolü kodda mı, modelde mi?
- Argüman doğrulaması ve hata geri bildirimi tanımlı mı?
- Deneme sayısına üst sınır koydunuz mu?
- Her çağrıyı kaydediyor musunuz?
- Gerçek verilerle denemeden önce sahte verili bir test ortamınız var mı?
Not: Bu liste genel bir başlangıçtır, hukuki ya da güvenlik denetimi yerine geçmez. Kişisel veri işliyorsanız ilgili mevzuat için uzmanına danışın.
Function calling projesine nereden başlamalısınız?
En küçük, en az riskli ve en çok tekrar eden işle başlayın. Örneğin yalnız okuma yapan bir sipariş sorgusu iyi bir ilk adımdır. Çalıştığını gördükten sonra yazma işlemlerini onay adımıyla ekleyin.
Sağlayıcı seçerken belgelerin akışını karşılaştırın, çünkü mantık benzer ama ayrıntılar farklıdır. API tarafında başlangıç için OpenAI API rehberimize göz atabilirsiniz. Fonksiyonları bir ajana dönüştürmek istiyorsanız yapay zeka ajanı yazımız ve kendi sunucunuzda ajan kurulumu rehberimiz sıradaki duraklardır.
Elinizdeki sistemlere bağlanan bir asistan düşünüyorsanız ekibimizle yapay zeka ajanı geliştirme hizmetimiz üzerinden konuşabilirsiniz.
Resmi kaynaklar için sağlayıcıların belgelerine bakın: OpenAI function calling kılavuzu, Anthropic tool use genel bakış ve Google Gemini function calling belgesi. Belgeler sık güncellenir, bu yüzden ayar adlarını orada doğrulayın.



