Prompt Engineering

Araç Kullanımını Ustalaşmak: LLM'leri Gerçek Dünya ile Bağlamak

Büyük Dil Modelleri (LLM'ler) güçlü metin üreticileri olsa da eğitim verileriyle temelde sınırlıdır. Harici yardımsız canlı web'i tarayamaz, iç veritabanlarınıza sorgu gönderemez veya güvenli bir kum havuzunda kod çalıştıramaz. İşte bu noktada Araç Kullanımı (genellikle fonksiyon çağrısı olarak adlandırılır) kritik hale gelir. Modellerin harici sistemlerden belirli eylemleri nasıl isteyeceklerini öğreterek, onları pasif sohbet robotlarından karmaşık, çok adımlı sorunları çözebilecek aktif ajanlara dönüştürürsünüz.

Araç Kullanımı Nedir?

Temelinde araç kullanımı, bir LLM'in harici API'lerle veya betiklerle iletişim kurmasının yapılandırılmış bir yoludur. Model, son doğal dil yanıtını üretmek yerine, hangi aracı çağırmak istediğini ve hangi argümanlarla çağırmak istediğini gösteren yapılandırılmış bir veri nesnesi (genellikle JSON) üretir. Uygulama geliştiricisi bu isteği yakalar, gerçek kodu çalıştırır ve son yanıtı oluşturmak için sonucu modele geri besler.

Araçları Tanımlama: Sözleşme

Araç kullanımının çalışması için, model ile uygulamanız arasındaki "sözleşmeyi" tanımlamanız gerekir. Bu, aracın adını, amacını ve beklenen girdi parametrelerini açıklayan bir şema aracılığıyla yapılır. Burada netlik en önemli unsurdur; belirsiz açıklamalar uydurma argümanlara yol açar.

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_current_weather",
            "description": "Get the current weather in a given location",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "City and state, e.g. San Francisco, CA"
                    },
                    "unit": {
                        "type": "string",
                        "enum": ["celsius", "fahrenheit"]
                    }
                },
                "required": ["location"]
            }
        }
    }
]

Çalıştırma Döngüsü

Etkileşim belirli bir döngüyü izler. Öncelikle kullanıcı bir soru sorar. İkinci olarak, model hava durumu verisi alması gerektiğine karar verir ve bir `function_call` nesnesi döndürür. Üçüncü olarak, arka ucunuz `get_current_weather` mantığını çalıştırır. Son olarak, sonucu mesaj geçmişine eklersiniz ve modelden son yanıtı üretmesini istersiniz.

# Pseudocode for the Agent Loop
messages = [user_query]
while True:
    response = llm.chat(messages, tools=tools)
    
    if response.tool_calls:
        for tool_call in response.tool_calls:
            # Execute the function
            result = execute_tool(tool_call)
            # Append result to history
            messages.append({"role": "tool", "content": result})
    else:
        # No tools needed, return final answer
        return response.content

Güvenilir Araç Kullanımı İçin En İyi Uygulamalar

  1. Açıklamaları Atomik Tutun: Bir araç tek bir şey yapmalıdır. "her_seyi_yap" API'si oluşturmaktan kaçının. İnce taneli araçlar, modelin iş akışlarını daha etkili bir şekilde birleştirmesini sağlar.
  2. Sayımlar (Enumeration) Kullanın: Mümkün olan her durumda, `enum` türlerini kullanarak dize girdilerini kısıtlayın. Bu, modelin geçersiz parametre değerleri uydurma olasılığını büyük ölçüde azaltır.
  3. Hataları Zarifçe Yönetin: Bir araç çağrısı başarısız olursa (ör. ağ zaman aşımı), LLM'e net bir hata mesajı döndürün. Model, ilk denemenin neden başarısız olduğunu biliyorsa genellikle yeniden denemeyi veya alternatif bir yol önermeyi başaracak kadar akıllıdır.
  4. Çıktıları Temizleyin: LLM'in ürettiği argümanlara körü körüne güvenmeyin. Gerçek dünya kodunu çalıştırmadan önce tüm girdileri şemanıza karşı doğrulayın.

Sonuç

Araç kullanımı, yapay zeka ile pratik fayda arasındaki köprüdür. Sağlam fonksiyon çağrısı uygulayarak, iş akışlarını otomatikleştirme, gerçek zamanlı veri alma ve eski sistemlerle etkileşime geçme yeteneğini açığa çıkarırsınız. Bir veya iki iyi tanımlanmış araçla küçük başlayın, modelin şemalarınızı nasıl yorumladığını izleyin ve yineleyin. Promptlarınızı ve hata yönetiminizi iyileştirdikçe, LLM uygulamalarınız statik metin tamamlamalarından dinamik, otonom ajanlara evrilecektir.

Share: