هنگام فراخوانی Gemini API از برنامهتان بااستفاده از Firebase AI Logic SDK، درخواست شما حاوی تعدادی پارامتر است که پاسخهای هوش مصنوعی زایا را کنترل میکنند. این اطلاعات معمولاً شامل نام مدل، پیکربندی تولید مدل (مانند حداکثر کدهای خروجی)، تنظیمات ایمنی، دستورالعملهای سیستم، و دادههای پیامواره است.
در بیشتر موارد، میخواهید این موارد را بهصورت درخواستی یا درصورت نیاز برای تعدادی از سناریوها تغییر دهید:
- مدل هوش مصنوعی زایای خود را بدون انتشار برنامه جدید بهروز کنید. میتوانید قبلاز خاموش شدن نسخههای قبلی، به نسخههای مدل جدیدتر و پایدارتر ارتقا دهید، براساس نیازها و ویژگیهای کاربران خود به مدلهای کمهزینهتر یا با عملکرد بالاتر تغییر دهید، یا بهصورت مشروط جدیدترین و بهترین مدلها را برای بخشهای خاصی از کاربران (مانند آزمایشکنندگان بتا) مستقر کنید.
- مکان دسترسی به مدل را تنظیم کنید تا به کاربران شما نزدیکتر باشد.
- دستورالعملها و پیاموارههای مختلف سیستم را آزمایش A/B کنید، سپس بهتدریج مقادیر آزمایش برنده را برای کاربران عرضه کنید.
- از پرچمهای ویژگی برای نمایش یا پنهان کردن سریع ویژگیهای هوش مصنوعی زایا در برنامهتان استفاده کنید.
Firebase Remote Config همه این کارها و کارهای بیشتری را انجام میدهد و به شما امکان میدهد مقادیر پارامتر را درصورت نیاز و بهصورت شرطی برای نمونههای برنامهای که با مشخصات تعیینشده در کنسول Firebase مطابقت دارند بهروز کنید، بدون اینکه نسخه جدیدی از برنامهتان منتشر کنید.
این راهنمای راهحل موارد استفاده پیشنهادی خاصی را ارائه میدهد و نحوه افزودن Remote Config به برنامه هوش مصنوعی زایای خود را شرح میدهد.
چرا باید از Firebase Remote Config در برنامهتان استفاده کنید؟
Firebase Remote Config به شما امکان میدهد رفتار برنامهتان را بهطور پویا بدون نیاز به بهروزرسانی برنامه تنظیم کنید. این امر بهویژه برای برنامههایی که از هوش مصنوعی زایا استفاده میکنند بسیار قدرتمند است، جایی که تکرار سریع و تنظیم دقیق بسیار مهم است.
موارد استفاده ضروری برای Remote Config با برنامههای هوش مصنوعی زایا
توصیه میکنیم از Remote Config با Firebase AI Logic برای موارد استفاده ضروری زیر استفاده کنید:
ارتقا دادن به جدیدترین نسخه مدل بدون بهروزرسانی برنامه: از پارامترهای Remote Config برای تغییر نام مدل درصورت نیاز استفاده کنید تا بتوانید بهمحض دردسترس قرار گرفتن جدیدترین نسخه مدل Gemini ترجیحیتان، به آن ارتقا دهید.
بهروزرسانی دستورالعملهای سیستم و تنظیمات ایمنی بدون بهروزرسانی برنامه: دستورالعملهای سیستم و تنظیمات ایمنی را در پارامترهای Remote Config ذخیره کنید تا مطمئن شوید که درصورت کشف مشکلات پساز استقرار، میتوانید آنها را بهصورت درخواستی تغییر دهید.
کاهش خطر و اجرای ایمنی هوش مصنوعی: از Remote Config عرضه برای انتشار ایمن و تدریجی تغییرات هوش مصنوعی زایا برای کاربران iOS و Android استفاده کنید.
موارد استفاده پیشرفته و توصیهشده برای Remote Config با برنامههای هوش مصنوعی زایا
پساز ابزارگذاری برنامهتان با Remote Config و Google Analytics، میتوانید موارد استفاده پیشرفته را کاوش کنید:
تنظیم مکان براساس مکان کارخواه: از Remote Config شرط برای تنظیم مکان دسترسی به مدل براساس مکان شناساییشده کارخواه استفاده کنید.
مدلهای مختلف را آزمایش کنید: بهسرعت بین مدلهای مختلف هوش مصنوعی زایا آزمایش کنید و جابهجا شوید، یا حتی برای بخشهای مختلف کاربر به مدلهای مختلف دسترسی پیدا کنید تا بهترین مدل را برای مورد استفاده خاص خود پیدا کنید.
بهینهسازی عملکرد مدل: پارامترهای مدل را تنظیم دقیق کنید، مانند پیامواره سیستم، حداکثر دادهواحدهای خروجی، دما، و تنظیمات دیگر.
استفاده از دستورالعملهای سیستم، پیاموارهها، و پیکربندی مدل مختلف براساس مشخصههای مشتری: وقتی از Remote Config با Google Analytics استفاده میکنید، میتوانید براساس مشخصههای مشتری یا مخاطبان سفارشی شرایطی ایجاد کنید و براساس این مشخصهها پارامترهای مختلفی تنظیم کنید.
برای مثال، اگر از هوش مصنوعی زایا برای ارائه پشتیبانی فنی در برنامهتان استفاده میکنید، ممکن است بخواهید دستورالعملهای سیستم را بهطور خاص برای پلاتفرم برنامه تنظیم کنید تا مطمئن شوید دستورالعملهای دقیقی به کاربران پلاتفرم Android، iOS، و وب ارائه میشود.
شخصیسازی تجربهها برای هر کاربر: از Remote Config شخصیسازی با برنامهها و بازیهای تلفن همراهتان استفاده کنید تا بهطور خودکار تنظیمات بهینه هوش مصنوعی زایا را برای هر کاربر تعیین کنید.
کنترل هزینهها: از راه دور تنظیم کنید که کدام مدلهای هوش مصنوعی زایا فراخوانی شوند، چند وقت یکبار استفاده شوند، و بهطور پویا مقادیر بیشینه توکن خروجی را براساس مخاطب کاربر پیکربندی کنید تا هزینههای غیرضروری کاهش یابد.
بهینهسازی تجربه و نتایج برنامه: از A/B Testing با Remote Config با برنامهها و بازیهای تلفن همراهتان استفاده کنید تا تغییرات پارامترهای هوش مصنوعی زایا را در بخشهای مختلف کاربر آزمایش کنید و ببینید چگونه بر سنجههای کلیدی مثل ماندگاری و درآمد تأثیر میگذارند.
با مجهز کردن برنامه هوش مصنوعی زایا به Firebase Remote Config، میتوانید برنامههای انعطافپذیر، ایمن، و مقرونبهصرفه با بهرهگیری از هوش مصنوعی بسازید و درعینحال تجربههای لذتبخشی برای کاربران خود ایجاد کنید.
افزودن Firebase Remote Config به برنامه
در این راهنمای راهحل، از Firebase Remote Config برای بهروزرسانی پویای پارامترها در برنامهتان که از کیت توسعه نرمافزار Firebase AI Logic استفاده میکند بهره خواهید برد. با روش انجام این کارها آشنا خواهید شد:
- پارامترهایی مثل نام مدل و دستورالعملهای سیستم را از Firebase Remote Config واکشی و فعال میکند.
- تماسهای Gemini API را بهروز کنید تا از پارامترهای بازیابیشده پویا استفاده کنید، که به شما امکان میدهد بدون بهروزرسانی برنامه بین مدلهای مختلف جابهجا شوید یا دستورالعملهای سیستم را تغییر دهید.
- پارامترها را از راه دور کنترل کنید و رفتار و قابلیتهای مدل را درصورت نیاز تنظیم کنید.
پیشنیازها
این راهنما فرض میکند که شما با توسعه برنامهها برای پلاتفرم خود آشنا هستید.
قبلاز شروع، مطمئن شوید که کارهای زیر را انجام میدهید:
Firebase AI Logic راهنمای شروع به کار را تکمیل کنید، که نحوه راهاندازی پروژه Firebase، متصل کردن برنامه به Firebase، افزودن کیت توسعه نرمافزار، مقداردهی اولیه سرویس پسبخش برای ارائهدهنده «Gemini API» انتخابی، و ایجاد نمونه مدل را شرح میدهد.
Google Analytics را در پروژه Firebase خود فعال کنید و کیت توسعه نرمافزار آن را به برنامه خود اضافه کنید (برای هدفیابی شرطی، مانند تنظیم مکان دسترسی به مدل براساس مکان دستگاه مشتری، الزامی است).
مرحله ۱: تنظیم مقادیر پارامتر در کنسول Firebase
الگوی کارخواه Remote Config ایجاد کنید و پارامترها و مقادیر را برای واکشی و استفاده در برنامه پیکربندی کنید.
در کنسول Firebase، به DevOps و تعامل > پیکربندی از راه دور بروید.
از انتخابگر کارخواه/سرور در بالای صفحه، کارخواه را انتخاب کنید.
با کلیک کردن روی ایجاد پیکربندی، الگوی کارخواه را شروع کنید (یا اگر قبلاً از الگوهای کارخواه استفاده کردهاید، روی افزودن پارامتر کلیک کنید).
پارامترهایی را که میخواهید با Remote Config کنترل کنید تعریف کنید. برای مثال:
نام پارامتر شرح نوع مقدار پیشفرض model_nameنام مدل. نام مدلهای دردسترس را ببینید. تار gemini-3.8-flashsystem_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!agent_platform_locationفقط درصورت استفاده از Agent Platform Gemini API (formerly Vertex AI) قابلاعمال است.
مکان را برای دسترسی به مدل کنترل کنید. میتوانید شرایطی را برای پیکربندی این گزینه براساس مکان مشتری که Google Analytics تشخیص داده است تنظیم کنید.تار globalوقتی افزودن پارامترها تمام شد، روی انتشار تغییرات کلیک کنید. اگر این الگوی Remote Config جدیدی نیست، تغییرات را مرور کنید و دوباره روی انتشار تغییرات کلیک کنید.
مرحله ۲: افزودن و مقداردهی اولیه Remote Config در برنامه
کتابخانه Remote Config را اضافه کنید و Remote Config را در برنامهتان راهاندازی کنید.
Swift
بهعنوان بخشی از راهاندازی Firebase AI Logic، قبلاً کیت توسعه نرمافزار Firebase را به برنامهتان اضافه کردهاید، اما باید Remote Config را نیز اضافه کنید.
در Xcode، با باز بودن پروژه، به File > Add Package Dependencies پیمایش کنید.
firebase-ios-sdk را انتخاب کنید و سپس روی افزودن بسته کلیک کنید.
از «پیمایشگر پروژه»، برنامه > هدفها > برنامه را انتخاب کنید.
از برگه عمومی، به چارچوبها، کتابخانهها، و محتوای جاسازیشده پیمایش کنید.
روی + کلیک کنید و FirebaseRemoteConfig را انتخاب کنید، سپس روی افزودن کلیک کنید.
وارد کردن
FirebaseRemoteConfigرا به کدتان اضافه کنید:import FirebaseRemoteConfigدر کلاس مناسب برای برنامهتان، Firebase را مقداردهی اولیه کنید و Remote Config را به منطق اصلی برنامهتان اضافه کنید.
در اینجا، Remote Config و شنونده همزمان Remote Config را بهعنوان واردات اضافه میکنید تا برنامه بتواند مقادیر جدید را بهصورت همزمان واکشی کند، و یک حداقل فاصله زمانی واکشی اضافه کنید:
let remoteConfig = RemoteConfig.remoteConfig() let settings = RemoteConfigSettings() settings.minimumFetchInterval = 3600 remoteConfig.configSettings = settings
Kotlin
وابستگی Remote Config را به فایل Gradle واحد (سطح برنامه) خود (معمولاً
app/build.gradle.ktsیاapp/build.gradle) اضافه کنید:dependencies { implementation(platform("com.google.firebase:firebase-bom:35.0.0")) implementation("com.google.firebase:firebase-ai") implementation("com.google.firebase:firebase-config") // ... other dependencies }Remote Config را به منطق برنامه اصلیتان اضافه کنید. در اینجا، Remote Config را مقداردهی اولیه میکنید و حداقل فاصله واکشی را اضافه میکنید:
val remoteConfig: FirebaseRemoteConfig = Firebase.remoteConfig val configSettings = remoteConfigSettings { minimumFetchIntervalInSeconds = 3600 } remoteConfig.setConfigSettingsAsync(configSettings)
Java
وابستگی Remote Config را به فایل Gradle واحد (سطح برنامه) خود (معمولاً
app/build.gradle.ktsیاapp/build.gradle) اضافه کنید:dependencies { implementation(platform("com.google.firebase:firebase-bom:35.0.0")) implementation("com.google.firebase:firebase-ai") implementation("com.google.firebase:firebase-config") // ... other dependencies }Remote Config را به منطق برنامه اصلیتان اضافه کنید. در اینجا، Remote Config را مقداردهی اولیه میکنید و حداقل فاصله واکشی را اضافه میکنید:
FirebaseRemoteConfig mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance(); FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder() .setMinimumFetchIntervalInSeconds(3600) .build(); mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);
Web
کدتان را در ویرایشگر نوشتار باز کنید و Remote Config را وارد کنید:
import { getRemoteConfig } from 'firebase/remote-config';در تابع اصلی و پساز مقداردهی اولیه برنامه Firebase برای کیت توسعه نرمافزار Firebase AI Logic، Remote Config را مقداردهی اولیه کنید:
// Initialize Remote Config and get a reference to the service const remoteConfig = getRemoteConfig(app);حداقل فاصله واکشی را تنظیم کنید:
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
Dart
از فهرست راهنمای پروژه Flutter، Remote Config را بااستفاده از فرمان زیر نصب و اضافه کنید:
flutter pub add firebase_remote_config./lib/main.dartرا باز کنید و واردات را بعداز واردات دیگری که برای پشتیبانی از Firebase AI Logic اضافه کردید اضافه کنید:import 'package:firebase_ai/firebase_ai.dart'; import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_remote_config/firebase_remote_config.dart';متغیرهای
_modelName،_systemInstructions، و_promptرا به برنامهتان اضافه کنید تا بتوانید بعداً از آنها استفاده کنید:late final String _modelName; late final String _systemInstructions; late final String _prompt;نمونه شیء Remote Config را دریافت کنید و حداقل واکشی فاصله را تنظیم کنید تا امکان بازآوری مکرر فراهم شود. حتماً این را بعداز مقداردهی اولیه Firebase اضافه کنید.
final remoteConfig = FirebaseRemoteConfig.instance; await remoteConfig.setConfigSettings(RemoteConfigSettings( fetchTimeout: const Duration(seconds: 3600), minimumFetchInterval: const Duration(seconds: 3600), ));
Unity
با دنبال کردن این دستورالعملها، Remote Config را به پروژه Unity خود اضافه کنید.
نمونه شیء Remote Config را دریافت کنید و حداقل فاصله واکشی را تنظیم کنید تا امکان بازآوریهای مکرر فراهم شود. حتماً این را پساز مقداردهی اولیه Firebase اضافه کنید.
var remoteConfig = FirebaseRemoteConfig.DefaultInstance; const int MillisecondsPerSecond = 1000; await remoteConfig.SetConfigSettingsAsync(new ConfigSettings() { FetchTimeoutInMilliseconds = 3600 * MillisecondsPerSecond, MinimumFetchIntervalInMilliseconds = 3600 * MillisecondsPerSecond });
مرحله ۳: تنظیم مقادیر پارامتر درونبرنامهای
باید مقادیر پارامتر پیشفرض درونبرنامهای را در Remote Config شیء تنظیم کنید. این کار تضمین میکند که برنامه شما حتی اگر نتواند مقادیر را از سرویس Remote Config واکشی کند، طبق انتظار عمل کند.
Swift
در کنسول Firebase، به DevOps و تعامل > پیکربندی از راه دور > صفحه پارامترها بروید.
منو را باز کنید و بارگیری مقادیر پیشفرض را انتخاب کنید.وقتی درخواست شد، plist.برای iOS را فعال کنید، سپس روی بارگیری فایل کلیک کنید.
فایل را در پوشه برنامه ذخیره کنید.
در Xcode، روی برنامهتان کلیک راست کنید و افزودن فایل را انتخاب کنید
remote_config_defaults.plist را انتخاب کنید، سپس روی افزودن کلیک کنید.
کد برنامهتان را بهروز کنید تا به فایل پیشفرض ارجاع دهد:
// Set default values for Remote Config parameters. remoteConfig.setDefaults(fromPlist: "remote_config_defaults")
Kotlin
در کنسول Firebase، به DevOps و تعامل > پیکربندی از دور > صفحه پارامترها بروید.
منو را باز کنید و بارگیری مقادیر پیشفرض را انتخاب کنید.وقتی درخواست شد، xml.برای Android را فعال کنید، سپس روی بارگیری فایل کلیک کنید.
فایل را در فهرست راهنمای منابع XML برنامهتان ذخیره کنید.
فایل فعالیت اصلیتان را بهروز کنید تا پیشفرضها را بعداز
configSettingsکه قبلاً اضافه کردهاید اضافه کنید:// Set default values for Remote Config parameters. remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)
Java
در کنسول Firebase، به DevOps و تعامل > پیکربندی از راه دور > صفحه پارامترها بروید.
منو را باز کنید و بارگیری مقادیر پیشفرض را انتخاب کنید.وقتی درخواست شد، xml.برای Android را فعال کنید، سپس روی بارگیری فایل کلیک کنید.
فایل را در فهرست راهنمای منابع XML برنامهتان ذخیره کنید.
فایل فعالیت اصلیتان را بهروز کنید تا پیشفرضها را بعداز
configSettingsکه قبلاً اضافه کردهاید اضافه کنید:// Set default values for Remote Config parameters. mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);
Web
میتوانید مقادیر پیشفرض را مستقیماً در کد خود تنظیم کنید:
// Set default values for Remote Config parameters.
remoteConfig.defaultConfig = {
model_name: 'gemini-3.8-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!',
agent_platform_location: 'global',
};
Dart
میتوانید مقادیر پیشفرض را مستقیماً در کد خود تنظیم کنید:
// Set default values for Remote Config parameters.
remoteConfig.setDefaults(const {
"model_name": "gemini-3.8-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!",
"agent_platform_location": "global"
});
Unity
میتوانید مقادیر پیشفرض را مستقیماً در کدتان تنظیم کنید:
// Set default values for Remote Config parameters.
await remoteConfig.SetDefaultsAsync(
new System.Collections.Generic.Dictionary<string, object>() {
{ "model_name", "gemini-3.8-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!" },
{ "agent_platform_location", "global" }
}
);
مرحله ۴: واکشی و فعال کردن مقادیر
پساز تنظیم پیشفرضها، موارد زیر را برای واکشی و فعال کردن مقادیر اضافه کنید.
Swift
// Fetch and activate Remote Config values
remoteConfig.fetchAndActivate { status, error in
if let error = error {
print("Error fetching Remote Config: \(error.localizedDescription)")
}
}
هرگاه الگوی جدیدی از Remote Config منتشر شد، این باید شیء Remote Config را بهروز کند.
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
getValueوfetchAndActivateرا به واردات خود اضافه کنید:import { getValue, fetchAndActivate } from 'firebase/remote-config';کدی را که در آن مقادیر پیشفرض Remote Config را مشخص میکنید پیدا کنید. بلافاصله بعداز آن بلوک کد، کد زیر را برای واکشی و فعال کردن پیکربندی و اختصاص دادن مقادیر به ثابتهای
modelName،systemInstructions،prompt، وagentPlatformLocationاضافه کنید.// 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 agentPlatformLocation = getValue(remoteConfig, 'agent_platform_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? _agentPlatformLocation = remoteConfig.getString("agent_platform_location");
Unity
// Fetch and activate Remote Config values.
await remoteConfig.FetchAndActivateAsync();
مرحله ۵: افزودن شنونده همزمان Remote Config
یک شنونده بیدرنگ Remote Config به برنامهتان اضافه کنید تا مطمئن شوید تغییراتی که در الگوی Remote Config ایجاد میکنید بهمحض بهروزرسانی به کارخواه منتشر میشوند.
کد زیر هروقت مقدار پارامتری تغییر میکند، شیء Remote Config را بهروز میکند.
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
بهصورت اختیاری، میتوانید کنشی را نیز در فعالسازی
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
بهصورت اختیاری، میتوانید کنشی را نیز در
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
// Add a real-time Remote Config listener
onConfigUpdate(remoteConfig, {
next: (configUpdate) => {
console.log("Updated keys:", configUpdate.getUpdatedKeys());
if (configUpdate.getUpdatedKeys().has("welcome_message")) {
activate(remoteConfig).then(() => {
showWelcomeMessage();
});
}
},
error: (error) => {
console.log("Config update error:", error);
},
complete: () => {
console.log("Listening stopped.");
}
});
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();
};
مرحله ۶: بهروزرسانی درخواستهای Gemini API برای استفاده از مقادیر Remote Config
|
روی ارائهدهنده Gemini API کلیک کنید تا محتوا و کد مختص ارائهدهنده را در این صفحه ببینید. |
اکنون که Remote Config کاملاً پیکربندی شده است، کدتان را بهروز کنید تا مقادیر کدنویسیشده را با مقادیر برگرفته از 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.");
مرحله ۷: برنامه را اجرا کنید
برنامه را بسازید و اجرا کنید و درستیسنجی کنید که کار میکند. از صفحه Remote Config در کنسول Firebase، تغییراتی در پیکربندیتان ایجاد کنید، تغییرات را منتشر کنید، و نتیجه را درستیسنجی کنید.
مراحل بعدی
درباره Remote Config بیشتر بدانید.
برای فعال کردن هدفیابی، Google Analytics را به کد مشتریتان اضافه کنید.
برای برنامهها و بازیهای تلفن همراه:
تنظیمات مختلف مدل را با Remote Config و A/B Testing آزمایش کنید.
تغییرات پارامتر مدل را بهتدریج بااستفاده از Remote Config عرضه (فقط iOS+ و Android) منتشر کنید.
از Remote Config شخصیسازی برای استفاده از یادگیری ماشین برای تعیین بهترین تنظیمات برای کاربران فردی استفاده کنید (فقط iOS، Android، و Unity).