AI APIs

Akıllı Ajanlar Oluşturma: Gemini API'nin Fonksiyon Çağrısı ve Kod Çalıştırma Yeteneklerini Ustalaşma

Büyük Dil Modelleri (LLM) ile basit soru-cevap etkileşimlerinin çağı hızla evrim geçiriyor. Bugünün geliştirme ortamı; akıl yürütebilen, harekete geçebilen ve doğrulayabilen sistemler talep ediyor. Google'ın Gemini API'si bu dönüşümün öncüsünde duruyor ve geliştiricilere ajan tabanlı iş akışları oluşturmalarını sağlayan güçlü temel yapı taşlarını sunuyor. Fonksiyon Çağrısı ile Kod Çalıştırma yeteneklerini birleştirerek, geliştiriciler yalnızca planlar üreten değil, aynı zamanda karmaşık mantığı çalıştıran ve gerçek zamanlı verileri alan yapay zeka ajanları oluşturabilir.

Ajan Döngüsünü Anlama

Bir "ajan" sistemi döngü halinde çalışır: planlar, harekete geçer, sonucu gözlemler ve ardından yeniden planlar. Gemini API bağlamında bu döngü, iki ana mekanizma tarafından orkestra edilir:

  1. Fonksiyon Çağrısı: Bu özellik, modelin hangi dış fonksiyonları hangi parametrelerle çağırmak istediğini gösteren yapılandırılmış JSON verisi çıkarmasına olanak tanır. Bu, LLM'nin "düşünce süreci" ile uygulamanızın "aksiyon katmanı" arasındaki köprüdür.
  2. Kod Çalıştırma (Kumandalı Python): Gemini, güvenli bir kumanda ortamında Python kodu üretebilir ve çalıştırabilir. Bu, sayısal hassasiyet, veri manipülasyonu veya saf metin üretiminin zayıf kalabileceği çok adımlı mantıksal doğrulama gerektiren görevler için kritiktir.

1. Adım: Dış Aksiyonlar İçin Fonksiyonları Tanımlama

Bir ajanın belirli uygulamanızla veya veri kaynaklarınızla etkileşime girmesini sağlamak için fonksiyon imzalarını tanımlamanız gerekir. Hava durumunu kontrol etmesi ve optimal seyahat sürelerini hesaplaması gereken bir ajanı düşünün.

import google.generativeai as genai

# Fonksiyon imzasını tanımla
def get_weather(location: str):
    # Bu fonksiyon normalde bir dış API'yi çağırır
    return {"temp_c": 22, "condition": "Sunny"}

def calculate_optimal_time(distance_km: float, speed_kmh: float):
    # Bu fonksiyon karmaşık lojistik hesaplamalarını yapar
    return {"hours": distance_km / speed_kmh}

# Modeli kullanılabilir araçlarla yapılandır
genai.configure(api_key="YOUR_API_KEY")
model = genai.GenerativeModel(
    'gemini-1.5-pro',
    tools=[get_weather, calculate_optimal_time]
)

2. Adım: Mantıksal Akıl Yürütme İçin Kod Çalıştırmayı Etkinleştirme

Fonksiyon çağrısı dış aksiyonları ele alırken, kod çalıştırma dahili hesaplamaları ele alır. `code_execution` aracını kullanırken, Gemini, prompt'ta sağlanan matematik problemlerini çözmek veya veri tablolarını manipüle etmek için Python betikleri yazabilir.

Bunu model yapılandırmanızda nasıl etkinleştirebileceğiniz:

# Not: En son SDK'da kod çalıştırma genellikle belirli araç ayarları üzerinden
# veya bölgenizde/plandaki mevcutsa 'code_execution' yeteneğini kullanarak etkinleştirilir.

model_with_code = genai.GenerativeModel(
    'gemini-1.5-pro',
    system_instruction="You are a data analysis agent. Use code execution to verify calculations."
)

# Model artık matematiksel veya veri yoğun görevler gördüğünde kod çalıştırmaya karar verecektir
response = model_with_code.generate_content("Analyze this dataset and find the top 3 trends.")
print(response.text)

Pratik Örnek: Hibrit Ajan

Bir kullanıcının şu soruyu sorduğu bir senaryoyu hayal edin: "1.000 $ bütçem varsa Paris'e uçuş rezervasyonu için en iyi zaman ne olur ve hava durumu muhtemelen nasıl olur?"

Ajan şu şekilde çalışır:

  1. Plan: Model iki alt görevi belirler: hava durumunu kontrol etme (dış veri) ve bütçeleme (mantıksal hesaplama).
  2. Aksiyon 1: `get_weather("Paris")` fonksiyonunu tetikler.
  3. Aksiyon 2: Bağlamda sağlanan tarihsel verilere dayanarak 1.000 $'ın tipik uçuş fiyatlarını karşılayıp karşılamadığını belirlemek için bir Python betiği çalıştırır.
  4. Gözlem: Model, fonksiyondan gelen JSON'u ve Python kumandasından gelen çıktıyı alır.
  5. Son Cevap: Her iki bilgi parçasını tutarlı bir yanıtta birleştirir: "Paris'te şu anda 20°C ve güneşli. 1.000 $'lık bütçenizle, Salı günü kalkan orta segment bir bilet ayırabilirsiniz."

Sağlam Ajanlar İçin En İyi Uygulamalar

  • Açık Tanımlamalar: Fonksiyon docstring'leriniz LLM'nin birincil doğruluk kaynağıdır. Parametre türleri ve beklenen sonuçlar hakkında açık olun.
  • Hata Yönetimi: Fonksiyon geri çağırma işlemleriniz içinde her zaman istisnaları yakalayın. LLM'nin yeniden denemesine veya kullanıcıyı bilgilendirmesine olanak tanımak için yapılandırılmış bir hata mesajı döndürün.
  • Kumanda Karmaşıklığını Sınırlayın: Gemini'nin kod çalıştırma yeteneği güçlü olsa da, daha hızlı çalışma sürelerini ve daha kolay hata ayıklamayı sağlamak için üretilen kodu basit tutun.

Sonuç

Gemini API'nin fonksiyon çağrısı ve kod çalıştırma araçlarından yararlanarak, geliştiriciler statik sohbet botlarının ötesine geçerek otonom ajanların alanına adım atar. Bu ajanlar, dış API'ler aracılığıyla çevrelerini algılayabilir ve kumandalı kod aracılığıyla karmaşık problemler üzerinde akıl yürütebilir. Bu yetenekler olgunlaştıkça, bu tür çok adımlı, araç kullanan iş akışlarını orkestra etme yeteneği, kurumsal düzeyde yapay zeka uygulamaları için standart bir gereklilik haline gelecektir. Küçük başlayın, net araçlar tanımlayın ve orkestrasyonu modele bırakın.

Share: