Firebase AI Logic 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 verilerini içerir.
Çoğu durumda, bunları isteğe bağlı olarak veya çeşitli senaryolar için gerektiği şekilde değiştirmek istersiniz:
- Üretken yapay zeka modelinizi yeni bir uygulama yayınlamadan 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ş dağıtın.
- Uygulamanızda üretken yapay zeka özelliklerini hızlıca göstermek veya gizlemek için özellik işaretlerini kullanın.
Firebase Remote Config, tüm bunları ve daha fazlasını yaparak 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ır.
Bu çözüm kılavuzunda, önerilen belirli kullanım alanları sunulmakta ve üretken yapay zeka uygulamanıza Remote Config'nin 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'ü Firebase AI Logic ile birlikte kullanmanızı öneririz:
Uygulama güncellemesi olmadan en yeni 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 Geminimodelin en yeni 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 parametrelerinin içine kaydederek 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 Configyayınlama özelliğini 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 istemcinin konumuna göre ayarlama: İstemcinin algılanan konumuna göre modele eriştiğiniz konumu ayarlamak için Remote Config koşullarını kullanı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ş yapın veya farklı kullanıcı segmentleri için farklı modellere erişin.
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 kullandığınızda 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.
Her kullanıcı için deneyimleri kişiselleştirin: Her kullanıcı için optimum üretken yapay zeka ayarlarını otomatik olarak belirlemek amacıyla mobil uygulama ve oyunlarınızda Remote Configkişiselleştirme özelliğini kullanın.
Maliyetleri kontrol edin: Hangi üretken yapay zeka modellerinin çağrıldığını ve ne sıklıkta kullanıldığını uzaktan ayarlayın ve 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: Elde tutma ve gelir gibi önemli metrikleri nasıl etkilediğini görmek için farklı kullanıcı segmentlerinde üretken yapay zeka parametrelerinde yapılan değişiklikleri test etmek üzere mobil uygulama ve oyunlarınızda A/B Testing ile Remote Config'i kullanı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 Firebase AI Logic 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, platformunuz için uygulama geliştirme konusunda bilgi sahibi olduğunuz varsayılmaktadır.
Başlamadan önce aşağıdakileri yaptığınızdan emin olun:
Firebase projenizi oluşturma, uygulamanızı Firebase'e bağlama, SDK'yı ekleme, seçtiğiniz "Gemini API" sağlayıcı için arka uç hizmetini başlatma ve bir model örneği oluşturma hakkında bilgi veren Firebase AI Logic başlangıç kılavuzunu tamamlayın.
Firebase projenizde Google Analytics'i etkinleştirin ve SDK'sını uygulamanıza ekleyin (modele eriştiğiniz konumu 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. Ardından, gezinme menüsünde Çalıştır'ı genişletin ve Remote Config seçeneğini belirleyin.
- Sayfanın üst kısmındaki İstemci/Sunucu seçicisinde İstemci'nin seçili olduğundan emin olun.
- Yapılandırma oluştur'u (veya daha önce müşteri şablonları kullandıysanız Parametre ekle'yi) tıklayarak bir müşteri şablonu başlatın.
Remote Config ile kontrol etmek istediğiniz parametreleri tanımlayın. Örneğin:
Parametre adı Açıklama Tür Varsayılan değer model_name
Model adı. Kullanılabilir model adlarına bakın. Dize gemini-2.0-flash
system_instructions
Sistem talimatları, model davranışını etkilemek için son kullanıcıdan başka talimatlar gelmeden ö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
Yalnızca Vertex AI Gemini API kullanıldığında geçerlidir.
Modele erişmek için konum bilgisini 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 kitaplığını ekleyin ve uygulamanızda Remote Config'ü ayarlayın.
Swift
Firebase AI Logic kurulumu kapsamında Firebase SDK'sını uygulamanıza eklemiş olsanız da Remote Config'ı da 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ıfta Firebase'i başlatın ve Remote Config öğesini 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
Hızlı başlangıç uygulamasında bu,
AppDelegate
sınıfındakiVertexAISampleApp
içinde olur.
Kotlin
Remote Config bağımlılığını modülünüzün (uygulama düzeyi) Gradle dosyasına (genellikle
app/build.gradle.kts
veyaapp/build.gradle
) ekleyin:dependencies { implementation(platform("com.google.firebase:firebase-bom:33.13.0")) implementation("com.google.firebase:firebase-ai") implementation("com.google.firebase:firebase-config") // ... other dependencies }
Ana uygulama mantığınıza Remote Config ekleyin. Burada Remote Config değişkenini başlatır ve minimum getirme aralığı eklersiniz:
val remoteConfig: FirebaseRemoteConfig = Firebase.remoteConfig val configSettings = remoteConfigSettings { minimumFetchIntervalInSeconds = 3600 } remoteConfig.setConfigSettingsAsync(configSettings)
Java
Remote Config bağımlılığını modülünüzün (uygulama düzeyi) Gradle dosyasına (genellikle
app/build.gradle.kts
veyaapp/build.gradle
) ekleyin:dependencies { implementation(platform("com.google.firebase:firebase-bom:33.13.0")) implementation("com.google.firebase:firebase-ai") implementation("com.google.firebase:firebase-config") // ... other dependencies }
Ana uygulama mantığınıza Remote Config ekleyin. Burada Remote Config değişkenini başlatır ve minimum getirme aralığı eklersiniz:
FirebaseRemoteConfig mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance(); FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder() .setMinimumFetchIntervalInSeconds(3600) .build(); mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);
Web
Kodunuzu bir metin düzenleyicide açın ve Remote Config dosyasını içe aktarın:
import { getRemoteConfig } from 'firebase/remote-config';
Birincil işlevinizde ve Firebase uygulaması Firebase AI Logic SDK'sı için başlatıldıktan sonra Remote Config'ı başlatın:
// Initialize Remote Config and get a reference to the service const remoteConfig = getRemoteConfig(app);
Minimum getirme aralığı belirleyin:
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
Dart
Flutter proje dizininizden aşağıdaki komutu kullanarak Remote Config'yi yükleyin ve ekleyin:
flutter pub add firebase_remote_config
./lib/main.dart
'ü açın ve içe aktarma işlemini, Firebase AI Logic'yi desteklemek için eklediğiniz diğer içe aktarma işlemlerinin ardından ekleyin:import 'package:firebase_vertexai/firebase_ai.dart'; import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_remote_config/firebase_remote_config.dart';
Daha sonra kullanabilmemiz için uygulamanıza
_modelName
,_systemInstructions
ve_prompt
değişkenleri ekleyin:late final String _modelName; late final String _systemInstructions; late final String _prompt;
Remote Config nesne örneğini alın ve yenileme işleminin sık sık gerçekleşmesi için minimum getirme aralığını ayarlayın. Bu kodu Firebase başlatıldıktan sonra eklediğinizden emin olun.
final remoteConfig = FirebaseRemoteConfig.instance; await remoteConfig.setConfigSettings(RemoteConfigSettings( fetchTimeout: const Duration(seconds: 3600), minimumFetchInterval: const Duration(seconds: 3600), ));
Unity
Bu talimatları uygulayarak Remote Config'ü Unity projenize ekleyin.
Remote Config nesne örneğini alın ve yenileme işleminin sık sık gerçekleşmesi için minimum getirme aralığını ayarlayın. Bu kodu Firebase başlatıldıktan sonra eklediğinizden emin olun.
var remoteConfig = FirebaseRemoteConfig.DefaultInstance; const int MillisecondsPerSecond = 1000; await remoteConfig.SetConfigSettingsAsync(new ConfigSettings() { FetchTimeoutInMilliseconds = 3600 * MillisecondsPerSecond, MinimumFetchIntervalInMilliseconds = 3600 * MillisecondsPerSecond });
3. Adım: Uygulama içi parametre değerlerini ayarlayın
Uygulama içi varsayılan parametre değerlerini Remote Config nesnesinde ayarlamanız gerekir. Bu, uygulamanızın Remote Config hizmetinden değer alamadığı durumlarda bile beklendiği gibi davranmasını sağlar.
Swift
Firebase konsolunda 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çinde kaydedin.Xcode'da uygulamanızı sağ tıklayın ve Dosya Ekle'yi seçin.
Sana Özel'i kullanıyorsanız 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")
Kotlin
Firebase konsolundan Remote Config'u açın.
Parametreler sekmesinde Menü'yü açıp Varsayılan değerleri indir'i seçin.
İstendiğinde Android için.xml'i etkinleştirin ve ardından Dosyayı indir'i tıklayın.
Dosyayı uygulamanızın XML kaynakları dizinine kaydedin.
Ana etkinlik dosyanızı, daha önce eklediğiniz
configSettings
öğesinden sonra varsayılanları eklemek için güncelleyin:// Set default values. remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)
Java
Firebase konsolunda Remote Config'u açın.
Parametreler sekmesinde Menü'yü açıp Varsayılan değerleri indir'i seçin.
İstendiğinde Android için.xml'i etkinleştirin ve ardından Dosyayı indir'i tıklayın.
Dosyayı uygulamanızın XML kaynakları dizinine kaydedin.
Ana etkinlik dosyanızı, daha önce eklediğiniz
configSettings
öğesinden sonra varsayılanları eklemek için güncelleyin:// Set default values. mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);
Web
Varsayılan değerleri doğrudan kodunuzda ayarlayabilirsiniz:
// Set default Remote Config parameter values
remoteConfig.defaultConfig = {
model_name: 'gemini-2.0-flash',
system_instructions:
'You are a helpful assistant who knows everything there is to know about Firebase!',
prompt: 'I am a developer who wants to know more about Firebase!',
vertex_location: 'us-central1',
};
Dart
Varsayılan değerleri doğrudan kodunuzda ayarlayabilirsiniz:
remoteConfig.setDefaults(const {
"model_name": "gemini-2.0-flash",
"system_instructions": "You are a helpful assistant who knows everything there is to know about Firebase!",
"prompt": "I am a developer who wants to know more about Firebase!",
"vertex_location": "us-central1"
});
Unity
Varsayılan değerleri doğrudan kodunuzda ayarlayabilirsiniz:
await remoteConfig.SetDefaultsAsync(
new System.Collections.Generic.Dictionary<string, object>() {
{ "model_name", "gemini-2.0-flash" },
{ "system_instructions", "You are a helpful assistant who knows everything there is to know about Firebase!" },
{ "prompt", "I am a developer who wants to know more about Firebase!" },
{ "vertex_location", "us-central1" }
}
);
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.
Swift
// 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.
Kotlin
// Fetch and activate Remote Config values
remoteConfig.fetchAndActivate()
.addOnCompleteListener(this) { task ->
if (task.isSuccessful) {
val updated = task.result
Log.d(TAG, "Remote Config values fetched and activated: $updated")
} else {
Log.e(TAG, "Error fetching Remote Config", task.exception)
}
}
Java
// Fetch and activate Remote Config values
mFirebaseRemoteConfig.fetchAndActivate()
.addOnCompleteListener(this, new OnCompleteListener<Boolean>() {
@Override
public void onComplete(@NonNull Task<Boolean> task) {
if (task.isSuccessful()) {
boolean updated = task.getResult();
Log.d(TAG, "Config params updated: " + updated);
} else {
Log.e(TAG, "Error fetching Remote Config", task.exception)
}
}
});
Web
İçe aktarma işlemlerinize
getValue
vefetchAndActivate
ekleyin:import { getValue, fetchAndActivate } from 'firebase/remote-config';
Varsayılan Remote Config değerlerini yapılandırmak için eklediğiniz koddan sonra yapılandırmayı getirin ve etkinleştirin, ardından
modelName
,systemInstructions
,prompt
vevertexLocation
sabitlerine değerler atayın.// Fetch and activate Remote Config. try { await fetchAndActivate(remoteConfig); } catch(err) { console.error('Remote Config fetch failed', err); } console.log('Remote Config fetched.'); // Assign Remote Config values. const modelName = getValue(remoteConfig, 'model_name').asString(); const systemInstructions = getValue(remoteConfig, 'system_instructions').asString(); const prompt = getValue(remoteConfig, 'prompt').asString(); const vertexLocation = getValue(remoteConfig, 'vertex_location').asString();
Dart
// Fetch and activate Remote Config.
remoteConfig.fetchAndActivate();
// Assign Remote Config values.
String? _modelName = remoteConfig.getString("model_name");
String? _systemInstructions = remoteConfig.getString("system_instructions");
String? _prompt = remoteConfig.getString("prompt");
String? _vertexLocation = remoteConfig.getString("vertex_location");
Unity
// Fetch and activate Remote Config values.
await remoteConfig.FetchAndActivateAsync();
5. Adım: Gerçek zamanlı 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 uygulamanıza bir gerçek zamanlı Remote Config dinleyici ekleyin.
Aşağıdaki kod, bir parametre değeri değiştiğinde Remote Config nesnesini günceller.
Swift
// 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")
}
}
Kotlin
İsteğe bağlı olarak, addOnCompleteListener
etkinleştirme işleminin içinde bir işlem de yapılandırabilirsiniz:
// Add a real-time Remote Config listener
remoteConfig.addOnConfigUpdateListener(object : ConfigUpdateListener {
override fun onUpdate(configUpdate : ConfigUpdate) {
Log.d(ContentValues.TAG, "Updated keys: " + configUpdate.updatedKeys);
remoteConfig.activate().addOnCompleteListener {
// Optionally, add an action to perform on update here.
}
}
override fun onError(error : FirebaseRemoteConfigException) {
Log.w(ContentValues.TAG, "Config update error with code: " + error.code, error)
}
}
Java
İsteğe bağlı olarak, addOnCompleteListener
etkinleştirme işleminin içinde bir işlem de yapılandırabilirsiniz:
// Add a real-time Remote Config listener
remoteConfig.addOnConfigUpdateListener(new ConfigUpdateListener() {
@Override
public void onUpdate(ConfigUpdate configUpdate) {
Log.d(ContentValues.TAG, "Updated keys: " + configUpdate.getUpdatedKeys());
remoteConfig.activate().addOnCompleteListener(new OnCompleteListener<Boolean>() {
@Override
public void onComplete(@NonNull Task<Boolean> task) {
// Optionally, add an action to perform on update here.
}
});
}
@Override
public void onError(FirebaseRemoteConfigException error) {
Log.w(ContentValues.TAG, "Config update error with code: " + error.getCode(), error);
}
});
Web
Gerçek zamanlı Remote Config dinleyiciler web uygulamalarında desteklenmez.
Dart
// Add a real-time Remote Config listener
remoteConfig.onConfigUpdated.listen((event) async {
await remoteConfig.activate();
});
Unity
// Add a real-time Remote Config listener to automatically update whenever
// a new template is published.
// Note: the parameters can be anonymous as they are unused.
remoteConfig.OnConfigUpdateListener += (_, _) => {
remoteConfig.ActivateAsync();
};
6. Adım: Gemini API isteklerini Remote Config değerlerini kullanacak şekilde güncelleyin
Bu sayfada sağlayıcıya özgü içerikleri ve kodu görüntülemek için Gemini API sağlayıcınızı tıklayı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.
Swift
// Initialize the Gemini Developer API backend service
// The Gemini Developer API doesn't support setting the location of a model
let ai = FirebaseAI.firebaseAI(backend: .googleAI())
// Create a `GenerativeModel` and add system instructions into its config
// Both the model name and the system instructions will be sourced from Remote Config
let modelName = remoteConfig.configValue(forKey: "model_name").stringValue
let systemInstructions = remoteConfig.configValue(forKey: "system_instructions").stringValue
let model = ai.generativeModel(
modelName: modelName,
systemInstruction: ModelContent(role: "system", parts: systemInstructions)
)
// Provide a prompt that contains text
// The text in the prompt will be sourced from Remote Config
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)
}
Kotlin
// Initialize the Gemini Developer API backend service
// The Gemini Developer API doesn't support setting the location of a model
val ai = Firebase.ai(backend = GenerativeBackend.googleAI())
// Create a `GenerativeModel` and add system instructions into its config
// Both the model name and the system instructions will be sourced from Remote Config
val model = ai.generativeModel(
modelName = remoteConfig.getString("model_name"),
systemInstruction = content { text(remoteConfig.getString("system_instructions")) }
)
// To generate text output, call `generateContent` with the text input
// The text in the prompt will be sourced from Remote Config
val response = model.generateContent(remoteConfig.getString("prompt"))
print(response.text)
Java
// Initialize the Gemini Developer API backend service
// The Gemini Developer API doesn't support setting the location of a model
FirebaseAI ai = FirebaseAI.getInstance(GenerativeBackend.googleAI());
// Create a `GenerativeModel` and add system instructions into its config
// Both the model name and the system instructions will be sourced from Remote Config
GenerativeModel gm = ai.generativeModel(
/* modelName */ remoteConfig.getString("model_name"),
/* generationConfig (optional) */ null,
/* safetySettings (optional) */ null,
/* tools (optional) */ null,
/* toolsConfig (optional) */ null,
/* systemInstruction (optional) */ new Content.Builder().addText(
remoteConfig.getString("system_instructions")).build(),
/* requestOptions (optional) */ new RequestOptions()
);
GenerativeModelFutures model = GenerativeModelFutures.from(gm);
// Provide a prompt that contains text
// The text in the prompt will be sourced from Remote Config
Content userPrompt = new Content.Builder()
.addText(remoteConfig.getString("prompt"))
.build();
// To generate text output, call `generateContent` with the text input
ListenableFuture<GenerateContentResponse> response = model.generateContent(userPrompt);
Futures.addCallback(response, new FutureCallback<GenerateContentResponse>() {
@Override
public void onSuccess(GenerateContentResponse result) {
String resultText = result.getText();
System.out.println(resultText);
}
@Override
public void onFailure(Throwable t) {
t.printStackTrace();
}
}, executor);
Web
// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);
// Initialize the Gemini Developer API backend service
// The Gemini Developer API doesn't support setting the location of a model
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });
// Create a `GenerativeModel` and add system instructions into its config
// Both the model name and the system instructions will be sourced from Remote Config
const model = getGenerativeModel(ai, {
model: modelName,
systemInstruction: systemInstruction
});
// Wrap in an async function so you can use await
async function run() {
// Provide a prompt that contains text
// The text in the prompt will be sourced from Remote Config
const userPrompt = prompt;
// To generate text output, call `generateContent` with the text input
const result = await model.generateContent(userPrompt);
const response = result.response;
const text = response.text();
console.log(text);
}
Dart
// Initialize the Gemini Developer API backend service
// The Gemini Developer API doesn't support setting the location of a model
final ai = await FirebaseAI.googleAI();
// Create a `GenerativeModel` and add system instructions into its config
// Both the model name and the system instructions will be sourced from Remote Config
final model =
ai.generativeModel(
model: _modelName,
systemInstruction: Content.system(_systemInstructions),
);
// Provide a prompt that contains text
// The text in the prompt will be sourced from Remote Config
final _userPrompt = [Content.text(_prompt)];
// To generate text output, call `generateContent` with the text input
final response = await model.generateContent(_userPrompt);
print(response.text);
Unity
// Initialize the Gemini Developer API backend service
// The Gemini Developer API doesn't support setting the location of a model
var ai = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI());
// Create a `GenerativeModel` and add system instructions into its config
// Both the model name and the system instructions will be sourced from Remote Config
var modelName = remoteConfig.GetValue("model_name").StringValue;
var systemInstructions = remoteConfig.GetValue("system_instructions").StringValue;
var model = ai.GetGenerativeModel(
modelName: modelName,
systemInstruction: ModelContent.Text(systemInstructions)
);
// Provide a prompt that contains text
// The text in the prompt will be sourced from Remote Config
var userPrompt = remoteConfig.GetValue("prompt").StringValue;
// To generate text output, call `GenerateContentAsync` with the text input
var response = await model.GenerateContentAsync(userPrompt);
UnityEngine.Debug.Log(response.Text ?? "No text in response.");
7. adım: Uygulamayı çalıştırın
Uygulamayı derleyip çalıştırın ve çalıştığını doğrulayın. Firebase konsolundaki 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.
Mobil uygulamalar ve oyunlar için:
Remote Config ve A/B Testing ile farklı model ayarlarını test edin.
Remote Config kullanıma sunma (yalnızca iOS ve Android) özelliğini kullanarak model parametresi değişikliklerini kademeli olarak yayınlayın.
Kullanıcılar için en iyi ayarları belirlemek üzere makine öğrenimini kullanmak için Remote Config kişiselleştirmeyi kullanın (yalnızca iOS+, Android ve Unity).