Büyük Dil Modelleri (LLM'ler) dikkat çekici üretken yeteneklere sahiptir ancak doğaları gereği statiktirler. Canlı envanteri kontrol edemez, anlık hava durumunu çekemez veya kurumsal veritabanlarını sorgulayamazlar. Bu sınırlamada İşlev Çağırma (veya Araç Kullanımı) hayati önem kazanır. Orta ve ileri düzey geliştiriciler için, basit sohbet arayüzlerinin ötesine geçip dünyayla etkileşime giren ajanlar oluşturmaya geçmek, AI uygulama geliştirme sürecindeki bir sonraki kritik adımdır.
Neden Araç Kullanımı Üretim Uygulamaları İçin Kritik Öneme Sahiptir
Yalnızca modelin eğitim verilerine güvenmek, özellikle hassasiyet gerektiğinde halüsinasyonlara yol açar. Belirli araçları (bir REST API uç noktası, bir SQL sorgu oluşturucu veya bir hesap makinesi gibi) ortaya çıkararak modelin çıktı uzayını kısıtlarsınız. Bu durum doğruluğu artırmakla kalmaz, aynı zamanda güvenlik ve kontrol katmanı da ekler. Model, bilmediği gerçekleri tahmin etmeye çalışmak yerine, kullanıcı niyetine dayanarak ne zaman ve hangi aracı kullanacağına karar veren bir yönlendirici gibi davranır.
Doğru Araç Şemasını Seçmek
API'leri LLM'lerle entegre etmedeki en yaygın hatalardan biri, kötü tanımlanmış şemalardır. Bir LLM için bir araç tanımladığınızda, aslında modelin kendisi için bir prompt (istem) yazmış olursunuz. Şemanız belirsizse, model argümanları doğru şekilde ayrıştıramayabilir veya yanlış uç noktayı çağırabilir.
En iyi uygulamalar şunları içerir:
- Açık Tipler: Tüm parametreler için sıkı JSON şema tanımları kullanın. İnteger veya boolean beklenen yerlerde gevşek tipli stringlerden kaçının.
- Açıklayıcı İsimler: Araç isimleri fiil-nesne çiftleri olmalıdır (örneğin, sadece
weatheryerineget_weather_forecast). - Kısa Açıklamalar: Açıklama alanı, LLM'in aracı kullanıp kullanmama kararını verirken okuduğu kısımdır. Net ve eylem odaklı tutun.
Araç Yürütme Uygulaması: Python Örneği
Python ve hayali bir hava durumu API'si kullanarak pratik bir uygulamaya bakalım. Aracı tanımlayacağız, LLM'e geçirecek ve işlev çağrısı yanıtını işleyeceğiz.
import openai
import json
# Aracı şemasını tanımla
tools = [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Belirli bir konumdaki mevcut hava durumunu al",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "Şehir ve eyalet, örn. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"],
},
}
}
]
# Kullanıcı girdisini simüle et
user_message = "Bugün Tokyo'da hava durumu Celsius cinsinden nedir?"
# 1. Araçlarla birlikte LLM'ye istek gönder
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": user_message}],
tools=tools
)
# 2. Modelin bir aracı çağırmak isteyip istemediğini kontrol et
message = response.choices[0].message
if hasattr(message, 'tool_calls') and message.tool_calls:
# 3. Gerçek Python işlevini yürüt
tool_call = message.tool_calls[0]
args = json.loads(tool_call.function.arguments)
# Gerçek bir uygulamada bu bir HTTP isteği olurdu
def get_current_weather(location, unit='fahrenheit'):
return {"temperature": 22, "unit": unit}
result = get_current_weather(args['location'], args.get('unit', 'celsius'))
# 4. Doğal dil yanıtı oluşturmak için sonucu LLM'e geri gönder
messages = [
{"role": "user", "content": user_message},
message, # Arac çağrısı içeren modelin ilk yanıtı
{
"role": "tool",
"tool_call_id": tool_call.id,
"content": str(result) # İşlevin çıktısı
}
]
final_response = openai.ChatCompletion.create(
model="gpt-4",
messages=messages
)
print(final_response.choices[0].message.content)
Hataları ve Kenar Durumlarını Yönetmek
Üretim ortamında API çağrıları başarısız olabilir. Ağ zaman aşımı, hız sınırlamaları ve geçersiz kimlik doğrulama belirteçleri kaçınılmazdır. Sağlam bir ajan mimarisi bu hataları yakalamalı ve onları LLM'e geri beslemelidir. Hata mesajını araç yanıtının content alanı olarak sağlayarak, modelin farklı parametrelerle yeniden deneme yapması, kullanıcıdan açıklama istemesi veya hatayı son kullanıcıya açıklamaya karar vermesini sağlarsınız.
Sonuç
Harici API'lerin entegrasyonu, LLM'leri sohbet ortaklarından işlevsel asistanlara dönüştürür. Araç şemalarını dikkatli bir şekilde tasarlayarak, yanıtları sistematik olarak işleyerek ve sağlam hata yönetimi uygulayarak geliştiriciler, yalnızca zeki değil, aynı zamanda güvenilir ve gerçek dünya verilerine dayalı uygulamalar oluşturabilir. Ekosistem gelişmeye devam ederken, bu deseni ustalaşmak her AI mühendisi için temel bir beceri olacaktır.