Function Calling (Fonksiyon Çağırma)

Function Calling (Fonksiyon Çağırma), büyük dil modelinin kullanıcı tanımlı fonksiyonları ne zaman ve hangi argümanlarla çağıracağına karar verip JSON yapısında bir çağrı nesnesi döndürdüğü mekanizmadır.

Function Calling (Fonksiyon Çağırma), büyük dil modelinin kullanıcı tanımlı fonksiyonları ne zaman ve hangi argümanlarla çağıracağına karar verip JSON yapısında bir çağrı nesnesi döndürdüğü mekanizmadır. OpenAI tarafından 2023'te tanıtılan bu özellik, LLM'lerin dış sistemlerle yapılandırılmış biçimde entegre olmasını sağlar.

code Function Calling Nasıl Çalışır?

Geliştirici, modele mevcut fonksiyonları (ad, açıklama, parametre şeması) tanımlar. Kullanıcı "İstanbul'daki hava durumunu söyle" dediğinde model, `get_weather(location="Istanbul")` çağrısını JSON olarak döndürür. Uygulama bu çağrıyı gerçek API'ye iletir, sonucu modele geri gönderir, model son yanıtı üretir.

Kullanım Alanları

storage Veritabanı Sorguları

Kullanıcının doğal dil sorusunu SQL sorgusuna dönüştürerek veritabanından veri çekme.

api API Entegrasyonu

Rezervasyon, ödeme, ürün arama gibi iş mantığı fonksiyonlarını LLM'e bağlama.

data_object Yapılandırılmış Çıktı

Formdan alınan bilgileri belirli bir JSON şemasına uygun biçimde çıkarma.

Function Calling Akışı ve Kullanım Biçimleri

  • check_circle Temel Akış: Tanımla → Çağır → Sonuç İlet: 1) Araç tanımı JSON Schema ile API'ye gönderilir: fonksiyon adı, açıklaması, parametreler. 2) Model kullanıcı mesajını değerlendirip araç çağırması gerekip gerekmediğine karar verir. 3) API tool_use içerikli yanıt döner: araç adı ve argümanlar. 4) Uygulama fonksiyonu çalıştırır ve sonucu modele geri gönderir. 5) Model sonucu yorumlayarak nihai yanıt üretir.
  • check_circle Paralel Araç Çağrısı: Model tek turda birden fazla araç çağırabilir — paralel yürütme ile gecikme azaltılır. Örnek: hava durumu ve restoran bilgisi aynı anda sorulur; iki API paralel çağrılır, sonuçlar birleştirilerek yanıt oluşturulur. Claude ve GPT-4o'da desteklenir.
  • check_circle Zorunlu Araç Kullanımı (tool_choice): tool_choice: 'auto' — model karar verir. tool_choice: 'any' — en az bir araç kullanılmalı. tool_choice: {name: 'fonksiyon_adi'} — belirli araç zorunlu. Yapılandırılmış çıktı elde etmek için JSON Schema'yı araç olarak tanımlamak güvenilir bir yöntemdir.

Function Calling ile MCP ve Tool Use

Function calling, model API düzeyinde araç çağırma mekanizmasıdır. OpenAI'da 'function calling', Anthropic'te 'tool use' olarak anılır; kavramsal olarak aynıdır. MCP (Model Context Protocol) ise araç tanımı, uygulama ve iletişim protokolünü standartlaştıran üst katman mimaridir. Pratik kullanım örnekleri: veritabanı sorgulama (kullanıcı sorusunu SQL'e çevirme), harici API çağrısı (hava durumu, borsa verisi), takvim/e-posta yönetimi, kod çalıştırma (Python sandbox). Güvenlik: araçlar yalnızca izin verilen işlemleri yapmalı; SQL injection ve komut enjeksiyonuna karşı girdi doğrulama şarttır.

quiz Sık Sorulan Sorular

  • check_circle Function calling ve tool use aynı mı?: Kavramsal olarak aynıdır. OpenAI bunu "function calling", Anthropic ise "tool use" olarak adlandırır.
  • check_circle Model fonksiyonu gerçekten çalıştırır mı?: Hayır. Model yalnızca hangi fonksiyonun hangi argümanlarla çağrılacağını belirtir; çalıştırma kodu geliştiricinin uygulamasına bırakılır.
  • check_circle Function calling nedir?: Büyük dil modellerinin, kullanıcı tarafından tanımlanmış fonksiyonları belirli argümanlarla çağırmasını sağlayan API özelliğidir. Model hangi fonksiyonun çağrılacağına ve argümanlara kendisi karar verir; uygulama fonksiyonu çalıştırır ve sonucu modele iletir.
  • check_circle Function calling ne zaman kullanılır?: Gerçek zamanlı veri gerektiğinde (hava durumu, borsa), harici sistem entegrasyonunda (CRM, veritabanı), ve modelin yapılandırılmış çıktı üretmesi gerektiğinde. Araç çağrısı olmadan model yalnızca eğitim verisiyle sınırlı kalır.
  • check_circle Claude'da tool use nasıl uygulanır?: Anthropic Python SDK ile: tools=[{name, description, input_schema}] parametresi eklenir. Model yanıtında content[].type=='tool_use' kontrolü yapılır; araç çalıştırılır ve tool_result içeriği yeni turda modele geri gönderilir.
  • check_circle Function calling ile streaming birlikte kullanılabilir mi?: Evet. OpenAI ve Anthropic API'leri streaming sırasında da tool_use/function_call event'lerini destekler. Delta event'leri dinlenerek araç argümanları parça parça alınır, akış tamamlandığında araç çağrılır ve sonuç yeni turda iletilir.