Bu kılavuzda, Gemma ile işlev çağrısı kullanarak uygulama uygulamaya yönelik pratik bir yaklaşım sunulmaktadır. Bu teknik, dikkatli istem mühendisliğiyle çeşitli Gemma model sürümlerine uygulanabilir. Daha fazla bilgiyi Beyond the Chatbot: Agentic AI with Gemma (Sohbet Botunun Ötesinde: Gemma ile Etkileyici Yapay Zeka) başlıklı makalede bulabilirsiniz.
İşlev Çağrıları Hakkında Açıklama
İşlev çağrımının ortak yapısı, Gemma'nın harici araçlar veya API'lerle etkileşim kurmasına olanak tanıyacak şekilde tasarlanmış birkaç temel bileşen içerir.
Araçları açıklama
Modele kullanabileceği "araçlar" (işlevler) hakkında bilgi verirsiniz. Bunlardan bazıları:- Aracın işlevi (açıklama)
- Aracın ihtiyaç duyduğu bilgiler (parametreler)
Kullanıcı soru sorar
Modele soru sorar veya modele bir görev verirsinizGemma karar verir
Model, sorunuzu yanıtlamak için bir araca ihtiyacı olup olmadığını belirler.Gemma bir araç ister
Araca ihtiyaç duyulursa Gemma, ```tool_code``` ile sarmalanmış bir kod oluştururAraç görevini yapar
Araç (işlev), modelden bilgileri alır ve yapması gerekeni yapar.Araç sonuç döndürüyor
Gemma, sonucunu ```tool_output``` ile sarmalanmış olarak bekliyorGemma nihai yanıtı verir
Model, sizin için eksiksiz ve doğru bir yanıt oluşturmak amacıyla aracın sonuçlarını kullanır.
Faydalı İpuçları
- JSON şeması: Zorunlu olmasa da JSON şemasını parametre tanımları için kullanmak, tutarlı yapı ve otomatik doğrulama avantajları sunar.
- Açık Anlama: Modelin işlevin ne zaman kullanılacağını doğru şekilde belirlemesi için işlevin açıklamasının kalitesi önemlidir.
- Hata İşleme: İşlev çağrısının başarısız olduğu veya beklenmedik sonuçlar döndürdüğü durumları yönetmek için güçlü bir hata işleme gereklidir.
- Yinelemeli Süreç: Bazen model ile işlev çağrıları arasında birden fazla konuşma döngüsü olur.
Örnek İstemler ve Çıktılar
Bu uygulamanın kodunu Gemma Cookbook kod deposunda bulabilirsiniz.
1. ve 2. adım: Aracı açıklayın ve bir görev verin
Giriş: Bir kedinin komik resmi
Metin Giriş:
If you decide to invoke any of the function(s), it should be wrapped with ```tool_code```.
You have access to the following tools.
* `generate_meme(image, top_text, middle_text, bottom_text)`: Generate a meme with the given parameters
Make a funny meme with this. "meme.jpg"
3. Adım: Gemma karar verir ve bir araç ister
Bu istem aşağıdaki yanıtı verir:
Okay, here's a funny meme based on the image of the surprised cat: ```tool_code generate_meme(image="meme.jpg", top_text="Me when I hear a creak", middle_text="Is it safe?", bottom_text="Probably not.") ```
4. Adım: Araç işini yapar
Kod bloklarını bulup işlev bağımsız değişkenlerini ayrıştırarak ve işlevleri yürüterek modelin çıkışını işlersiniz.