Wednesday, May 21, 2025

Otomatik Fonksiyon Çağırma: Google Gemini API'sı ile Yapay Zeka Geliştirmede Yeni Bir Dönem

Otomatik Fonksiyon Çağırma: Google Gemini API'sı ile Yapay Zeka Geliştirmede Yeni Bir Dönem

Merhaba Murat Karakaya Akademi takipçileri! Bu blog yazısında, Google Gemini API'sindeki otomatik fonksiyon çağırma özelliğini ele alacağız. Daha önceki fonksiyon çağırma eğitimlerimizde, fonksiyonları kodlama içinde nasıl kullanabileceğinizi detaylı bir şekilde açıklamıştık. Bu eğitimleri MuratKarakaya.net blogumuzdan veya YouTube oynatma listemizden izleyebilirsiniz.

Otomatik Fonksiyon Çağırma Nedir?

Normalde, büyük dil modelleri (LLM'ler), önceden eğitildikleri veri setindeki bilgilere dayanarak cevap üretirler. Ancak, günlük hayatta ihtiyaç duyduğumuz bilgiler bu veri setlerinde her zaman bulunmaz. Hava durumu, günün tarihi, döviz kurları gibi dinamik bilgileri LLM'ler kendi başlarına elde edemezler. Bu sorunu çözmek için kullanılan tekniklere grounding (yerleştirme) diyoruz. Grounding teknikleri arasında, bilgiyi harici kaynaklardan alarak LLM'nin cevaplarını zenginleştirmeyi amaçlayan yöntemler bulunur. Bunlardan biri de fonksiyon çağırma (function calling)'dır.

Fonksiyon çağırma, LLM'nin bir soruyla ilgili fonksiyonu tespit edip, bu fonksiyonu gerekli parametrelerle çalıştırmasını ve sonucu LLM'ye geri göndermesini içerir. LLM ise bu sonucu kullanarak doğal dilde bir cevap üretir. Bu süreçte, LLM kendisi fonksiyonu çağırmaz; hangi fonksiyonun hangi parametrelerle çağırılacağını belirler ve kod geliştirici fonksiyonu çağırıp sonucu LLM'ye iletir.

Otomatik Fonksiyon Çağırmanın Avantajları ve Dezavantajları

Otomatik fonksiyon çağırma, bu süreci basitleştirerek, LLM'nin fonksiyonu seçip çalıştırdıktan sonra sonucu doğrudan modele göndermesini sağlar. Bu, geliştiricinin ek kod yazma ihtiyacını ortadan kaldırır. Ancak, otomatik fonksiyon çağırmanın bazı dezavantajları da vardır:

  • Hata olasılığı: LLM'nin yanlış fonksiyonu seçmesi veya yanlış parametreler kullanması durumunda hatalı sonuçlar alınabilir. Bu nedenle, fonksiyonların doğru çalıştığından emin olmak için doğrulama işlemleri yapılması gereklidir.
  • Maliyet: Otomatik fonksiyon çağırma, gönderilen prompt'un ve üretilen cevabın maliyetini artırabilir. Ayrıca, context window'un büyüklüğü de maliyeti etkiler.
  • Şeffaflık eksikliği: Otomatik fonksiyon çağırma, LLM'nin hangi fonksiyonları ve parametreleri kullandığını detaylı olarak göstermeyebilir. Bu, sonuçların güvenilirliğini azaltabilir.

Uygulama Örneği: Kargo Botu

Bu eğitimde, bir kargo botu örneği kullanarak otomatik fonksiyon çağırmanın nasıl uygulanabileceğini göstereceğiz. Bu bot, bir şehirden diğerine gönderilecek bir malın vergi ve nakliye ücretini hesaplayacaktır. Bu hesaplamalar için, aşağıdaki fonksiyonları tanımladık:

  • calculate_delivery_cost(distance: float) -> float: Nakliye ücretini hesaplar.
  • calculate_tax(value: float) -> float: Vergiyi hesaplar.
  • calculate_distance(city1: str, city2: str) -> float: İki şehir arasındaki mesafeyi hesaplar (bu örnekte rastgele bir sayı üretiliyor).
  • get_exchange_rate(from_currency: str, to_currency: str) -> float: Döviz kuru bilgilerini bir API'dan alır.

Bu fonksiyonları Gemini API'sine tanıtarak, botun bu fonksiyonları otomatik olarak kullanmasını sağladık. Ancak, uygulama sırasında bazı hatalar ve beklenmedik sonuçlarla karşılaştık. Bunlar, özellikle dinamik veri kaynakları kullandığımızda ve LLM'nin fonksiyon seçiminde hatalar yaptığı durumlarda ortaya çıkabilir. Bu nedenle, hata yönetimi ve sonuçların doğrulanması çok önemlidir.

Gemini API'sı ile Otomatik Fonksiyon Çağırmanın Uygulanması

Gemini API'sını kullanarak otomatik fonksiyon çağırmayı uygulamak için aşağıdaki adımları izleyebilirsiniz:

  1. Gerekli kütüphaneleri içe aktarın.
  2. Fonksiyonları tanımlayın ve bunların açıklamalarını (docstring) ekleyin. Açıklamalar, LLM'nin fonksiyonları anlamasını ve doğru kullanmasını sağlar.
  3. Sistem prompt'unu hazırlayın. Sistem prompt'u, LLM'ye fonksiyonları nasıl kullanması gerektiğini, hangi parametreleri kullanması gerektiğini, hesaplamaları açıklamasını vs. bildirir. Temperature değerini düşük tutarak (örneğin 0'a yakın) daha güvenilir sonuçlar elde edebilirsiniz.
  4. Gemini API'sini kullanarak LLM ile etkileşime geçin. tools parametresi aracılığıyla tanımladığınız fonksiyonları belirtin.
  5. LLM'nin cevabını inceleyin ve gerekirse hata yönetimi mekanizmaları ekleyin. response.function_call_history özelliğini kullanarak LLM'nin hangi fonksiyonları nasıl kullandığını inceleyebilirsiniz.

Sonuçlar ve Önemli Notlar

Otomatik fonksiyon çağırma, yapay zeka geliştirmede önemli bir kolaylık sağlasa da, güvenilirliği ve hata olasılığını göz önünde bulundurmak gerekir. Hata yönetimi ve sonuçların doğrulanması, bu tekniğin etkili bir şekilde kullanılabilmesi için şarttır. Ayrıca, LLM'nin fonksiyon seçimindeki şeffaflık eksikliğini gidermek için ek mekanizmalar geliştirmek faydalıdır.


🎥 Murat Karakaya Akademi'de Tam Videoyu İzleyin

Murat Karakaya Akademi YouTube kanalında videoyu izleyin

👉 Tam eğitimi izlemek için buraya tıklayın: YouTube'da İzleyin