Saat memanggil Gemini API dari aplikasi menggunakan Firebase AI Logic SDK, permintaan Anda berisi sejumlah parameter yang mengontrol respons AI generatif. Hal ini biasanya mencakup nama model, konfigurasi pembuatan model (token maksimum, suhu, dll.), setelan keamanan, petunjuk sistem, dan data perintah.
Pada umumnya, Anda sebaiknya mengubahnya sesuai permintaan atau sesuai kebutuhan untuk sejumlah skenario:
- Update model AI generatif Anda tanpa merilis aplikasi baru. Anda dapat mengupgrade ke versi model yang lebih baru dan stabil sebelum versi sebelumnya dihentikan, beralih ke model dengan biaya lebih rendah atau performa lebih tinggi berdasarkan kebutuhan dan atribut pengguna, atau men-deploy model terbaru dan terbaik secara kondisional ke segmen pengguna tertentu (seperti penguji beta).
- Tetapkan lokasi tempat Anda mengakses model agar lebih dekat dengan pengguna.
- Lakukan pengujian A/B pada berbagai petunjuk dan perintah sistem, lalu luncurkan nilai eksperimen yang menang secara perlahan kepada pengguna Anda.
- Gunakan flag fitur untuk mengekspos atau menyembunyikan fitur AI generatif dengan cepat di aplikasi Anda.
Firebase Remote Config melakukan semua hal ini dan lainnya, memungkinkan Anda memperbarui parameter value sesuai kebutuhan dan secara kondisional untuk instance aplikasi yang cocok dengan karakteristik yang Anda tetapkan di Firebase console, tanpa merilis versi baru aplikasi Anda.
Panduan solusi ini memberikan kasus penggunaan tertentu yang direkomendasikan dan menjelaskan cara menambahkan Remote Config ke aplikasi AI generatif Anda.
Mengapa menggunakan Firebase Remote Config dengan aplikasi Anda?
Firebase Remote Config memungkinkan Anda menyesuaikan perilaku aplikasi secara dinamis tanpa memerlukan update aplikasi. Hal ini sangat efektif untuk aplikasi yang menggunakan AI generatif, yang memerlukan iterasi dan penyesuaian yang cepat.
Kasus penggunaan penting untuk Remote Config dengan aplikasi AI generatif
Sebaiknya gunakan Remote Config dengan Firebase AI Logic untuk kasus penggunaan penting berikut:
Upgrade ke versi model terbaru tanpa update aplikasi: Gunakan parameter Remote Config untuk mengubah nama model sesuai kebutuhan, sehingga Anda dapat mengupgrade ke versi terbaru model Gemini pilihan Anda segera setelah tersedia.
Memperbarui petunjuk sistem dan setelan keamanan tanpa update aplikasi: Simpan petunjuk sistem dan setelan keamanan di dalam parameter Remote Config untuk memastikan bahwa Anda dapat mengubahnya sesuai permintaan jika menemukan masalah setelah deployment.
Mengurangi risiko dan menerapkan keamanan AI: Gunakan peluncuran Remote Config untuk merilis perubahan AI generatif secara aman dan bertahap kepada pengguna iOS dan Android.
Kasus penggunaan lanjutan dan yang direkomendasikan untuk Remote Config dengan aplikasi AI generatif
Setelah melengkapi aplikasi dengan Remote Config dan Google Analytics, Anda dapat mempelajari kasus penggunaan lanjutan:
Menetapkan lokasi berdasarkan lokasi klien: Gunakan kondisi Remote Config untuk menetapkan lokasi tempat Anda mengakses model berdasarkan lokasi yang terdeteksi klien.
Bereksperimen dengan berbagai model: Uji dan beralih dengan cepat antara berbagai model AI generatif, atau bahkan akses berbagai model untuk segmen pengguna yang berbeda, untuk menemukan model yang paling sesuai dengan kasus penggunaan tertentu.
Mengoptimalkan performa model: Menyesuaikan parameter model, seperti perintah sistem, token output maksimum, suhu, dan setelan lainnya.
Gunakan petunjuk, perintah, dan konfigurasi model sistem yang berbeda berdasarkan atribut klien: Saat menggunakan Remote Config dengan Google Analytics, Anda dapat membuat kondisi berdasarkan atribut klien atau audiens kustom dan menetapkan parameter yang berbeda berdasarkan atribut ini.
Misalnya, jika Anda menggunakan AI generatif untuk memberikan dukungan teknis di aplikasi, sebaiknya tetapkan petunjuk sistem khusus untuk platform aplikasi guna memastikan petunjuk yang akurat diberikan kepada pengguna platform Android, iOS, dan web.
Mempersonalisasi pengalaman untuk setiap pengguna: Gunakan personalisasi Remote Config dengan aplikasi dan game seluler Anda untuk menentukan setelan AI generatif yang optimal untuk setiap pengguna secara otomatis.
Mengontrol biaya: Menyesuaikan model AI generatif mana yang dipanggil, frekuensi penggunaannya, dan mengonfigurasi nilai token output maksimum secara dinamis berdasarkan audiens pengguna untuk mengurangi biaya yang tidak perlu.
Optimalkan pengalaman dan hasil aplikasi: Gunakan A/B Testing dengan Remote Config dengan aplikasi dan game seluler untuk menguji perubahan pada parameter AI generatif di seluruh segmen pengguna yang berbeda untuk melihat pengaruhnya terhadap metrik utama seperti retensi dan pendapatan.
Dengan melengkapi aplikasi AI generatif Anda dengan Firebase Remote Config, Anda dapat mem-build aplikasi yang didukung AI yang fleksibel, aman, dan hemat biaya sekaligus menciptakan pengalaman yang menyenangkan bagi pengguna.
Menambahkan Firebase Remote Config ke aplikasi Anda
Dalam panduan solusi ini, Anda akan menggunakan Firebase Remote Config untuk mengupdate parameter secara dinamis di aplikasi Android yang menggunakan Firebase AI Logic SDK. Anda akan mempelajari cara:
- Ambil dan aktifkan parameter seperti nama model dan petunjuk sistem dari Firebase Remote Config.
- Perbarui panggilan Gemini API untuk menggunakan parameter yang diambil secara dinamis, sehingga Anda dapat beralih antarmodel atau mengubah petunjuk sistem tanpa update aplikasi.
- Mengontrol parameter dari jarak jauh, menyesuaikan perilaku dan kemampuan model sesuai kebutuhan.
Prasyarat
Panduan ini mengasumsikan bahwa Anda sudah terbiasa mengembangkan aplikasi untuk platform Anda.
Sebelum memulai, pastikan Anda melakukan hal berikut:
Selesaikan panduan memulai Firebase AI Logic, yang menjelaskan cara menyiapkan project Firebase, menghubungkan aplikasi ke Firebase, menambahkan SDK, menginisialisasi layanan backend untuk penyedia "Gemini API" yang Anda pilih, dan membuat instance model.
Aktifkan Google Analytics di project Firebase Anda dan tambahkan SDK-nya ke aplikasi Anda (diperlukan untuk penargetan bersyarat, seperti menetapkan lokasi tempat Anda mengakses model berdasarkan lokasi perangkat klien).
Langkah 1: Tetapkan parameter value di Firebase console
Buat template Remote Config klien dan konfigurasikan parameter serta nilai yang akan diambil dan digunakan di aplikasi.
- Buka project Firebase Anda di Firebase console. Kemudian, dari menu navigasi, luaskan Run, lalu pilih Remote Config.
- Pastikan Client dipilih dari pemilih Client/Server di bagian atas halaman.
- Mulai template klien dengan mengklik Create Configuration (atau Add parameter jika Anda sebelumnya telah menggunakan template klien).
Tentukan parameter yang ingin Anda kontrol dengan Remote Config. Misalnya:
Nama parameter Deskripsi Jenis Nilai default model_name
Nama model. Lihat nama model yang tersedia. String gemini-2.0-flash
system_instructions
Petunjuk sistem seperti "preamble" yang Anda tambahkan sebelum model diekspos ke petunjuk lebih lanjut dari pengguna akhir untuk memengaruhi perilaku model. String You are a helpful assistant who knows everything there is to know about Firebase!
prompt
Perintah default yang akan digunakan dengan fitur AI generatif Anda. String I am a developer who wants to know more about Firebase!
vertex_location
Hanya berlaku jika menggunakan Vertex AI Gemini API.
Mengontrol lokasi untuk mengakses model. Anda dapat menetapkan kondisi untuk mengonfigurasi opsi ini berdasarkan lokasi klien yang terdeteksi oleh Google Analytics.String us-central1
Setelah menambahkan parameter, klik Publish changes. Jika ini bukan template Remote Config baru, tinjau perubahan, lalu klik Publish changes lagi.
Langkah 2: Tambahkan dan lakukan inisialisasi Remote Config di aplikasi Anda
Tambahkan library Remote Config dan siapkan Remote Config dalam aplikasi Anda.
Swift
Sebagai bagian dari penyiapan Firebase AI Logic, Anda telah menambahkan Firebase SDK ke aplikasi, tetapi juga harus menambahkan Remote Config.
Di Xcode, dengan project terbuka, buka File > Add Package Dependencies.
Pilih firebase-ios-sdk, lalu klik Add package.
Dari Project navigator, pilih aplikasi > Targets > aplikasi Anda.
Dari tab General, scroll ke Framework, Library, dan Embedded Content.
Klik + dan pilih FirebaseRemoteConfig, lalu klik Add.
Tambahkan impor
FirebaseRemoteConfig
ke kode Anda:import FirebaseRemoteConfig
Di dalam class yang sesuai untuk aplikasi Anda, lakukan inisialisasi Firebase dan tambahkan Remote Config ke logika aplikasi utama Anda.
Di sini, Anda akan menyertakan Remote Config dan pemroses real-time Remote Config sebagai impor sehingga aplikasi dapat mengambil nilai baru secara real-time, dan menambahkan interval pengambilan minimum:
let remoteConfig = RemoteConfig.remoteConfig() let settings = RemoteConfigSettings() settings.minimumFetchInterval = 3600 remoteConfig.configSettings = settings
Di aplikasi panduan memulai, ini akan berada di dalam
VertexAISampleApp
, dalam classAppDelegate
.
Kotlin
Tambahkan dependensi Remote Config ke file Gradle modul (level aplikasi) (biasanya
app/build.gradle.kts
atauapp/build.gradle
):dependencies { implementation(platform("com.google.firebase:firebase-bom:33.14.0")) implementation("com.google.firebase:firebase-ai") implementation("com.google.firebase:firebase-config") // ... other dependencies }
Tambahkan Remote Config ke logika aplikasi utama Anda. Di sini, Anda akan melakukan inisialisasi Remote Config dan menambahkan interval pengambilan minimum:
val remoteConfig: FirebaseRemoteConfig = Firebase.remoteConfig val configSettings = remoteConfigSettings { minimumFetchIntervalInSeconds = 3600 } remoteConfig.setConfigSettingsAsync(configSettings)
Java
Tambahkan dependensi Remote Config ke file Gradle modul (level aplikasi) (biasanya
app/build.gradle.kts
atauapp/build.gradle
):dependencies { implementation(platform("com.google.firebase:firebase-bom:33.14.0")) implementation("com.google.firebase:firebase-ai") implementation("com.google.firebase:firebase-config") // ... other dependencies }
Tambahkan Remote Config ke logika aplikasi utama Anda. Di sini, Anda akan melakukan inisialisasi Remote Config dan menambahkan interval pengambilan minimum:
FirebaseRemoteConfig mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance(); FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder() .setMinimumFetchIntervalInSeconds(3600) .build(); mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);
Web
Buka kode Anda di editor teks dan impor Remote Config:
import { getRemoteConfig } from 'firebase/remote-config';
Di dalam fungsi utama dan setelah aplikasi Firebase diinisialisasi untuk Firebase AI Logic SDK, lakukan inisialisasi Remote Config:
// Initialize Remote Config and get a reference to the service const remoteConfig = getRemoteConfig(app);
Tetapkan interval pengambilan minimum:
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
Dart
Dari direktori project Flutter Anda, instal dan tambahkan Remote Config menggunakan perintah berikut:
flutter pub add firebase_remote_config
Buka
./lib/main.dart
dan tambahkan impor setelah impor lain yang Anda tambahkan untuk mendukung Firebase AI Logic:import 'package:firebase_vertexai/firebase_ai.dart'; import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_remote_config/firebase_remote_config.dart';
Tambahkan variabel
_modelName
,_systemInstructions
, dan_prompt
ke aplikasi Anda agar kita dapat menggunakannya nanti:late final String _modelName; late final String _systemInstructions; late final String _prompt;
Dapatkan instance objek Remote Config dan tetapkan interval pengambilan minimum agar refresh sering terjadi. Pastikan untuk menambahkannya setelah Firebase diinisialisasi.
final remoteConfig = FirebaseRemoteConfig.instance; await remoteConfig.setConfigSettings(RemoteConfigSettings( fetchTimeout: const Duration(seconds: 3600), minimumFetchInterval: const Duration(seconds: 3600), ));
Unity
Tambahkan Remote Config ke project Unity Anda, dengan mengikuti petunjuk ini.
Dapatkan instance objek Remote Config dan tetapkan interval pengambilan minimum agar refresh sering terjadi. Pastikan untuk menambahkannya setelah Firebase diinisialisasi.
var remoteConfig = FirebaseRemoteConfig.DefaultInstance; const int MillisecondsPerSecond = 1000; await remoteConfig.SetConfigSettingsAsync(new ConfigSettings() { FetchTimeoutInMilliseconds = 3600 * MillisecondsPerSecond, MinimumFetchIntervalInMilliseconds = 3600 * MillisecondsPerSecond });
Langkah 3: Tetapkan parameter value dalam aplikasi
Anda harus menetapkan parameter value default dalam aplikasi di objek Remote Config. Hal ini memastikan bahwa aplikasi Anda berperilaku seperti yang diharapkan meskipun tidak dapat mengambil nilai dari layanan Remote Config.
Swift
Di Firebase console, buka Remote Config.
Di tab Parameters, buka Menu, lalu pilih Download default values.
Jika diminta, aktifkan .plist for iOS, lalu klik Download file.
Simpan file di direktori aplikasi Anda.
Jika menggunakan aplikasi contoh, simpan dalam
FirebaseVertexAI/Sample/VertexAISample
.Di Xcode, klik kanan aplikasi Anda, lalu pilih Add Files
Jika menggunakan contoh, klik kanan VertexAISample, lalu pilih Add Files to "VertexAISample".
Pilih remote_config_defaults.plist, lalu klik Add.
Perbarui kode aplikasi Anda untuk mereferensikan file default:
// Set default values remoteConfig.setDefaults(fromPlist: "remote_config_defaults")
Kotlin
Dari Firebase console, buka Remote Config.
Di tab Parameters, buka Menu, lalu pilih Download default values.
Jika diminta, aktifkan .xml for Android, lalu klik Download file.
Simpan file di direktori resource XML aplikasi Anda.
Perbarui file aktivitas utama untuk menambahkan default setelah
configSettings
yang Anda tambahkan sebelumnya:// Set default values. remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)
Java
Di Firebase console, buka Remote Config.
Di tab Parameters, buka Menu, lalu pilih Download default values.
Jika diminta, aktifkan .xml for Android, lalu klik Download file.
Simpan file di direktori resource XML aplikasi Anda.
Perbarui file aktivitas utama untuk menambahkan default setelah
configSettings
yang Anda tambahkan sebelumnya:// Set default values. mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);
Web
Anda dapat menetapkan nilai default langsung dalam kode:
// 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
Anda dapat menetapkan nilai default langsung dalam kode:
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
Anda dapat menetapkan nilai default langsung dalam kode:
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" }
}
);
Langkah 4: Ambil dan aktifkan nilai
Setelah menetapkan default, tambahkan kode berikut untuk mengambil dan mengaktifkan nilai.
Swift
// Fetch and activate Remote Config values
remoteConfig.fetchAndActivate { status, error in
if let error = error {
print("Error fetching Remote Config: \(error.localizedDescription)")
}
}
Tindakan ini akan memperbarui objek Remote Config setiap kali template Remote Config baru dipublikasikan.
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
Tambahkan
getValue
danfetchAndActivate
ke impor Anda:import { getValue, fetchAndActivate } from 'firebase/remote-config';
Setelah kode yang Anda tambahkan untuk mengonfigurasi nilai Remote Config default, ambil dan aktifkan konfigurasi, lalu tetapkan nilai ke konstanta
modelName
,systemInstructions
,prompt
, danvertexLocation
.// 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();
Langkah 5: Tambahkan pemroses Remote Config real-time
Tambahkan pemroses Remote Config real-time ke aplikasi Anda untuk memastikan bahwa perubahan yang Anda buat pada template Remote Config disebarkan ke klien segera setelah diperbarui.
Kode berikut memperbarui objek Remote Config setiap kali parameter value berubah.
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
Secara opsional, Anda juga dapat mengonfigurasi tindakan di dalam
aktivasi addOnCompleteListener
:
// 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
Secara opsional, Anda juga dapat mengonfigurasi tindakan di dalam
aktivasi addOnCompleteListener
:
// 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
Pemroses Remote Config real-time tidak didukung untuk aplikasi Web.
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();
};
Langkah 6: Perbarui permintaan Gemini API untuk menggunakan nilai Remote Config
Klik penyedia Gemini API untuk melihat konten dan kode khusus penyedia di halaman ini. |
Setelah Remote Config dikonfigurasi sepenuhnya, perbarui kode Anda untuk mengganti nilai hard code dengan nilai yang bersumber dari Remote Config.
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.");
Langkah 7: Jalankan aplikasi
Bangun, jalankan, dan pastikan aplikasi berfungsi. Lakukan perubahan pada konfigurasi Anda dari halaman Remote Config di Firebase console, publikasikan perubahan, dan verifikasi hasilnya.
Langkah berikutnya
Pelajari lebih lanjut tentang Remote Config.
Tambahkan Google Analytics ke kode klien Anda untuk mengaktifkan penargetan.
Untuk aplikasi dan game seluler:
Uji berbagai setelan model dengan Remote Config dan A/B Testing.
Rilis perubahan parameter model secara bertahap menggunakan peluncuran Remote Config (khusus iOS+ dan Android).
Gunakan personalisasi Remote Config untuk menggunakan machine learning guna menentukan setelan terbaik bagi setiap pengguna (khusus iOS+, Android, dan Unity).