Vertex AI in Firebase SDK'sını kullanarak uygulamanızdan Gemini API'ü çağırdığınızda isteğiniz, üretken yapay zeka yanıtlarını kontrol eden bir dizi parametre içerir. Bunlar genellikle model adı, model oluşturma yapılandırması (maksimum jeton, sıcaklık vb.), güvenlik ayarları, sistem talimatları ve istem verileri içerir.
Çoğu durumda, bunları isteğe bağlı olarak veya çeşitli senaryolar için gerektiği şekilde değiştirmek istersiniz:
- Yeni bir uygulama yayınlamadan üretken yapay zeka modelinizi güncelleyin. Eski sürümler kullanımdan kaldırılmadan önce daha yeni ve kararlı model sürümlerine geçebilir, kullanıcılarınızın ihtiyaçlarına ve özelliklerine göre daha düşük maliyetli veya daha yüksek performanslı modellere geçebilir ya da en yeni ve en iyi modelleri belirli kullanıcı segmentlerine (beta test kullanıcıları gibi) koşullu olarak dağıtabilirsiniz.
- Modele eriştiğiniz konumu, kullanıcılarınıza daha yakın olacak şekilde ayarlayın.
- Farklı sistem talimatlarını ve istemlerini A/B testi yapın, ardından kazanan deneme değerlerini kullanıcılarınıza yavaş yavaş sunun.
- Uygulamanızda üretken yapay zeka özelliklerini hızlıca göstermek veya gizlemek için özellik işaretlerini kullanın.
Firebase Remote Config, uygulamanızın yeni bir sürümünü yayınlamadan parametre değerlerini gerektiği gibi ve Firebase konsolunda belirlediğiniz özelliklerle eşleşen uygulama örnekleri için koşullu olarak güncellemenize olanak tanıyarak tüm bunları ve daha fazlasını yapar.
Bu çözüm kılavuzunda, önerilen belirli kullanım alanları sağlanmakta ve üretken yapay zeka uygulamanıza Remote Config'ın nasıl ekleneceği açıklanmaktadır.
Uygulamanızla neden Firebase Remote Config kullanmalısınız?
Firebase Remote Config, uygulama güncellemeleri gerektirmeden uygulamanızın davranışını dinamik olarak ayarlamanıza olanak tanır. Bu özellik, özellikle hızlı iterasyon ve hassas ayarların önemli olduğu üretken yapay zeka kullanan uygulamalar için çok güçlüdür.
Üretken yapay zeka uygulamalarıyla Remote Config için temel kullanım alanları
Aşağıdaki temel kullanım alanları için Remote Config'ü Vertex AI in Firebase ile birlikte kullanmanızı öneririz:
- Uygulama güncellemesi olmadan en son model sürümüne yükseltme: Model adını gerektiği gibi değiştirmek için Remote Config parametrelerini kullanın. Böylece, tercih ettiğiniz Gemini modelinin en son sürümüne kullanıma sunulduğu anda yükseltme yapabilirsiniz.
- Sistem talimatlarını ve güvenlik ayarlarını uygulama güncellemesi olmadan güncelleme: Sistem talimatlarını ve güvenlik ayarlarını Remote Config parametrelerinde saklayın. Böylece, dağıtım sonrasında sorun tespit ederseniz bunları istediğiniz zaman değiştirebilirsiniz.
- Riski azaltın ve yapay zeka güvenliğini zorunlu kılın: Üretken yapay zeka değişikliklerini iOS ve Android kullanıcılarınıza güvenli ve kademeli olarak sunmak için Remote ConfigDağıtım'ı kullanın.
Üretken yapay zeka uygulamalarıyla Remote Config için gelişmiş ve önerilen kullanım alanları
Uygulamanızı Remote Config ve Google Analytics ile enstrümante ettikten sonra gelişmiş kullanım alanlarını keşfedebilirsiniz:
- Konumu istemci konumuna göre ayarlama: Remote Config koşullarını kullanarak modelin konumunu istemcinin algılanan konumuna göre ayarlayın.
- Farklı modellerle denemeler yapın: Belirli kullanım alanınıza en uygun modeli bulmak için çeşitli üretken yapay zeka modellerini hızlıca test edip aralarında geçiş yapabilir veya farklı modelleri farklı kullanıcı segmentlerine dağıtabilirsiniz.
- Model performansını optimize edin: Sistem istemi, maksimum çıkış jetonu, sıcaklık ve diğer ayarlar gibi model parametrelerinde ince ayar yapın.
İstemci özelliklerine göre farklı sistem talimatları, istemler ve model yapılandırması kullanın: Remote Config'ı Google Analytics ile birlikte kullanırken istemci özelliklerine veya özel kitlelere dayalı koşullar oluşturabilir ve bu özelliklere göre farklı parametreler ayarlayabilirsiniz.
Örneğin, uygulamanızda teknik destek sağlamak için üretken yapay zeka kullanıyorsanız Android, iOS ve web platformu kullanıcılarınıza doğru talimatlar sağlandığından emin olmak için uygulama platformuna özgü sistem talimatları ayarlamak isteyebilirsiniz.
Deneyimleri her kullanıcı için kişiselleştirin: Her kullanıcı için optimum üretken yapay zeka ayarlarını otomatik olarak belirlemek üzere Remote Configkişiselleştirmeyi kullanın.
Maliyetleri kontrol edin: Hangi üretken yapay zeka modellerinin çağrılacağını ve ne sıklıkta kullanılacağını uzaktan ayarlayın. Ayrıca, gereksiz maliyetleri azaltmak için maksimum çıkış jetonu değerlerini kullanıcı kitlesine göre dinamik olarak yapılandırın.
Uygulama deneyimini ve sonuçlarını optimize edin: iOS, Android ve Flutter uygulamalarınızda A/B Testing ile Remote Config kullanarak farklı kullanıcı segmentlerinde üretken yapay zeka parametrelerinde yapılan değişiklikleri test edin. Bu değişikliklerin, elde tutma ve gelir gibi önemli metrikleri nasıl etkilediğini görün.
Üretken yapay zeka uygulamanızı Firebase Remote Config ile entegre ederek kullanıcılarınıza keyifli deneyimler sunarken esnek, güvenli ve uygun maliyetli yapay zeka destekli uygulamalar oluşturabilirsiniz.
Uygulamanıza Firebase Remote Config ekleme
Bu çözüm kılavuzunda, Android uygulamanızda Vertex AI in Firebase SDK'sını kullanan parametreleri dinamik olarak güncellemek için Firebase Remote Config'ü kullanacaksınız. Aşağıdakileri nasıl yapacağınızı öğreneceksiniz:
- Firebase Remote Config'ten model adları ve sistem talimatları gibi parametreleri getirin ve etkinleştirin.
- Gemini API çağrılarınızı, dinamik olarak alınan parametreleri kullanacak şekilde güncelleyerek farklı modeller arasında geçiş yapmanıza veya uygulama güncellemesi yapmadan sistem talimatlarını değiştirmenize olanak tanır.
- Model davranışını ve özelliklerini gerektiği gibi ayarlayarak parametreleri uzaktan kontrol edin.
Ön koşullar
Bu kılavuzda, Apple platformları (iOS gibi) için uygulama geliştirmek amacıyla Xcode'u kullanma konusunda bilgi sahibi olduğunuz varsayılmaktadır. Başlamadan önce aşağıdakileri yaptığınızdan emin olun:
Vertex AI in Firebase SDK'sı için başlangıç kılavuzunu tamamlayın. Aşağıdakilerin tümünü yaptığınızdan emin olun:
- Blaze fiyatlandırma planını kullanma ve gerekli API'leri etkinleştirme dahil olmak üzere yeni veya mevcut bir Firebase projesi oluşturun.
- Uygulamanızı kaydettirme ve Firebase yapılandırmanızı uygulamanıza ekleme dahil olmak üzere uygulamanızı Firebase'e bağlayın.
- SDK'yı ekleyin ve uygulamanızda Vertex AI hizmetini ve üretken modeli başlatın.
Projenizde Google Analytics'i etkinleştirin ve SDK'sını uygulamanıza ekleyin (hizmetin ve modelin konumunu istemci cihazın konumuna göre ayarlama gibi koşullu hedefleme için gereklidir).
1. adım: Firebase konsolunda parametre değerlerini ayarlayın
Bir istemci Remote Config şablonu oluşturun ve uygulamada getirilip kullanılacak parametreleri ve değerleri yapılandırın.
- Firebase konsolunda Firebase projenizi açın, gezinme menüsünde Çalıştır'ı genişletin ve Remote Config seçeneğini belirleyin.
- Remote Config sayfasının üst kısmındaki İstemci/Sunucu seçicisinde İstemci'nin seçili olduğundan emin olun.
- Remote Config istemci şablonlarını ilk kez kullanıyorsanız Yapılandırma Oluştur'u tıklayın. İlk parametrenizi oluşturun bölmesi görünür.
- Remote Config şablonlarını daha önce kullandıysanız Parametre ekle'yi tıklayın.
Aşağıdaki Remote Config parametrelerini tanımlayın:
Parametre adı Açıklama Tür Varsayılan değer model_name
Model adı. Kodunuzda kullanılacak model adlarının güncel listeleri için Kullanılabilir model adları bölümüne bakın. Dize gemini-2.0-flash
system_instructions
Sistem talimatları, model belirli ihtiyaçlara ve kullanım alanlarına göre model davranışını etkilemek için son kullanıcıdan başka talimatlar almadan önce eklediğiniz bir "önsöz" gibidir. Dize You are a helpful assistant who knows everything there is to know about Firebase!
prompt
Üretken yapay zeka özelliğinizle kullanılacak varsayılan istem. Dize I am a developer who wants to know more about Firebase!
vertex_location
İsteğe bağlı olarak Vertex AI hizmetini çalıştırmak ve bir modele erişmek için konum ayarını kontrol edin. Bu seçeneği Google Analytics tarafından algılanan müşteri konumuna göre yapılandırmak için koşullar belirleyebilirsiniz. Dize us-central1
Parametre ekleme işlemini tamamladığınızda Değişiklikleri yayınla'yı tıklayın. Bu yeni bir Remote Config şablonu değilse değişiklikleri inceleyin ve Değişiklikleri yayınla'yı tekrar tıklayın.
2. adım: Uygulamanıza Remote Config ekleyin ve başlatın
Remote Config bağımlılıkları ekleyin ve uygulamanızda Remote Config'yi ayarlayın. Vertex AI in Firebase Kurulum kapsamında Firebase SDK'sını uygulamanıza eklemiş olsanız da Remote Config'yi de eklemeniz gerekir.
- Xcode'da, proje açıkken Dosya > Paket Bağımlılıkları Ekle'ye gidin.
- firebase-ios-sdk'yı seçin ve ardından Paket ekle'yi tıklayın.
- Proje gezgininde uygulamanızı > Hedefler > uygulamanızı seçin.
- Genel sekmesinde Çerçeveler, Kitaplıklar ve Yerleşik İçerik'e gidin.
- + simgesini tıklayın, FirebaseRemoteConfig'i seçin ve Ekle'yi tıklayın.
FirebaseRemoteConfig
içe aktarma işlevini kodunuza ekleyin:import FirebaseRemoteConfig
Uygulamanız için uygun sınıfın içinde (örnek uygulamada bu,
AppDelegate
sınıfındakiVertexAISampleApp
içinde olur) Firebase'i başlatın ve Remote Config sınıfını ana uygulama mantığınıza ekleyin.Uygulamanın yeni değerleri gerçek zamanlı olarak alabilmesi için Remote Config ve Remote Config gerçek zamanlı dinleyicisini içe aktarma olarak ekleyin ve minimum getirme aralığı ekleyin:
let remoteConfig = RemoteConfig.remoteConfig() let settings = RemoteConfigSettings() settings.minimumFetchInterval = 3600 remoteConfig.configSettings = settings
Bu örnekte varsayılan getirme aralığı 3.600 saniyedir ancak geliştirme sırasında kodunuzda nispeten düşük bir minimum getirme aralığı ayarlamanızı öneririz.
3. Adım: Uygulama içi parametre değerlerini ayarlayın
Müşteri ağ erişimi kesintiye uğrarsa ve/veya arka uçta hiçbir değer yapılandırılmamışsa uygulamanızın Remote Config arka ucuna bağlanmadan önce işlevsel olması için Remote Config nesnesinde uygulama içi varsayılan parametre değerlerini ayarlamanız gerekir.
- Firebase konsolundan Remote Config'u açın.
- Parametreler sekmesinde Menü'yü açıp Varsayılan değerleri indir'i seçin.
- İstendiğinde iOS için.plist'i etkinleştirin ve ardından Dosyayı indir'i tıklayın.
- Dosyayı uygulama dizininize kaydedin (örnek uygulamayı kullanıyorsanız
FirebaseVertexAI/Sample/VertexAISample
içine kaydedin). - Xcode'da uygulamanızı sağ tıklayın ve Dosya Ekle'yi seçin (örnek kullanılıyorsa VertexAISample'ı sağ tıklayın ve "VertexAISample"e Dosya Ekle'yi seçin).
- remote_config_defaults.plist dosyasını seçip Ekle'yi tıklayın.
Uygulama kodunuzu, varsayılanlar dosyasına referans verecek şekilde güncelleyin:
// Set default values remoteConfig.setDefaults(fromPlist: "remote_config_defaults")
4. Adım: Değerleri getirin ve etkinleştirin
Varsayılanları ayarladıktan sonra değerleri almak ve etkinleştirmek için aşağıdakileri ekleyin:
// Fetch and activate Remote Config values
remoteConfig.fetchAndActivate { status, error in
if let error = error {
print("Error fetching Remote Config: \(error.localizedDescription)")
}
}
Bu işlem, yeni bir Remote Config şablonu yayınlandığında Remote Config nesnesini günceller.
5. Adım: Gerçek zamanlı bir Remote Config dinleyici ekleyin
Remote Config şablonunda yaptığınız değişikliklerin güncellenir güncellenmez istemciye dağıtılmasını sağlamak için bir anlık Remote Config dinleyici ekleyin.
Aşağıdaki kod, bir parametre değeri değiştiğinde Remote Config nesnesini günceller.
// Add real-time Remote Config
remoteConfig.addOnConfigUpdateListener { configUpdate, error in
guard let configUpdate = configUpdate, error == nil else {
print("Error listening for config updates: \(error?.localizedDescription ?? "No error available")")
return
}
print("Updated keys: \(configUpdate.updatedKeys)")
remoteConfig.activate { changed, error in
guard error == nil else {
print("Error activating config: \(error?.localizedDescription ?? "No error available")")
return
}
print("Activated config successfully")
}
}
Bu işlem, yeni bir Remote Config şablonu yayınlandığında Remote Config nesnesini günceller.
6. adım: Remote Config değerlerini Vertex AI değişkenlerine atayın
Remote Config tamamen yapılandırıldığında, sabit kodlanmış değerleri Remote Config kaynaklı değerlerle değiştirecek şekilde kodunuzu güncelleyin.
Modelinizi ve sistem istemi değerlerini depolamak için değerler oluşturun. Aşağıdaki kod, Remote Config kaynağından konum, model adı, sistem talimatları, kullanıcı istemi ve Vertex AI konumunun nasıl alındığını gösterir:
// Initialize the Vertex AI service
// Optionally specify a location in which to run the service and access the model
let vertexLocation = remoteConfig.configValue(forKey: "vertex_location").stringValue
let vertex = VertexAI.vertexAI(location: vertexLocation)
// Initialize the generative model with a model that supports your use case
// Specify a model that supports system instructions, like a Gemini 1.5 model
let modelName = remoteConfig.configValue(forKey: "model_name").stringValue
let systemInstructions = remoteConfig.configValue(forKey: "system_instructions").stringValue
let model = vertex.generativeModel(
modelName: modelName,
systemInstruction: ModelContent(role: "system", parts: systemInstructions)
)
// Provide a prompt that contains text
let userPrompt = remoteConfig.configValue(forKey: "prompt").stringValue
// To generate text output, call generateContent with the text input
let response = try await model.generateContent(userPrompt)
if let text = response.text {
print(text)
}
7. adım: Uygulamayı çalıştırın
Uygulamanızı derleyip çalıştırın ve çalıştığından emin olun. Firebase Console'daki Remote Config sayfasından yapılandırmanızda değişiklik yapın, değişiklikleri yayınlayın ve sonucu doğrulayın.
Sonraki adımlar
- Remote Config hakkında daha fazla bilgi edinin.
- Hedeflemeyi etkinleştirmek için müşteri kodunuza Google Analytics ekleyin.
- Remote Config ve A/B Testi ile farklı model ayarlarını test edin.
- Remote Config kullanıma sunma özelliğini kullanarak model parametresi değişikliklerini kademeli olarak yayınlayın.
- Kullanıcılar için en iyi ayarları belirlemek amacıyla makine öğreniminden yararlanmak için Remote Config kişiselleştirmeyi kullanın.