При вызове API Gemini из вашего приложения с использованием SDK Firebase AI Logic ваш запрос содержит ряд параметров, которые управляют ответами генеративного ИИ. Обычно это имя модели, конфигурация генерации модели (максимальное количество токенов, температура и т. д.), параметры безопасности, системные инструкции и данные подсказки.
В большинстве случаев вам потребуется изменять эти параметры по мере необходимости или в зависимости от ряда сценариев:
- Обновите свою модель генеративного ИИ без выпуска нового приложения. Вы можете перейти на более новые, стабильные версии модели до того, как предыдущие версии будут сняты с поддержки, перейти на более дешевые или более производительные модели в зависимости от потребностей и характеристик ваших пользователей, или же развертывать новейшие и лучшие модели для определенных сегментов пользователей (например, для бета-тестеров).
- Укажите место, откуда вы получаете доступ к модели, так, чтобы оно было ближе к вашим пользователям.
- Проведите 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 SDK. Вы узнаете, как:
- Получайте и активируйте параметры, такие как названия моделей и системные инструкции, из Firebase Remote Config .
- Обновите вызовы API Gemini , чтобы использовать динамически получаемые параметры, что позволит вам переключаться между различными моделями или изменять системные инструкции без обновления приложения.
- Управляйте параметрами дистанционно, корректируя поведение и возможности модели по мере необходимости.
Предварительные требования
В этом руководстве предполагается, что вы знакомы с разработкой приложений для вашей платформы.
Прежде чем начать, убедитесь, что вы выполнили следующие действия:
Пройдите руководство по началу работы с Firebase AI Logic , в котором описано, как настроить проект Firebase, подключить приложение к Firebase, добавить SDK, инициализировать бэкэнд-сервис для выбранного вами поставщика " Gemini API " и создать экземпляр модели.
Включите Google Analytics в своем проекте Firebase и добавьте его SDK в приложение (это необходимо для условного таргетинга, например, для установки местоположения, из которого вы получаете доступ к модели, в зависимости от местоположения устройства клиента).
Шаг 1 : Задайте значения параметров в консоли Firebase
Создайте шаблон клиента Remote Config и настройте параметры и значения для получения и использования в приложении.
Откройте свой проект Firebase в консоли Firebase . Затем в меню навигации разверните раздел «Выполнить» и выберите Remote Config .
Убедитесь, что в верхней части страницы в поле выбора "Клиент/Сервер" выбран параметр "Клиент" .
Чтобы создать шаблон клиента, нажмите кнопку «Создать конфигурацию» (или «Добавить параметр», если вы уже использовали шаблоны клиентов).
Определите параметры, которыми вы хотите управлять с помощью Remote Config . Например:
Имя параметра Описание Тип Значение по умолчанию model_nameНазвание модели. См. доступные названия моделей . Нить gemini-2.5-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!vertex_locationПрименимо только при использовании API Vertex AI Gemini .
Управляйте местоположением для доступа к модели. Вы можете установить условия для настройки этой опции в зависимости от местоположения клиента, определяемого Google Analytics .Нить globalПосле добавления всех параметров нажмите кнопку «Опубликовать изменения» . Если это не новый шаблон Remote Config , просмотрите изменения и снова нажмите кнопку «Опубликовать изменения» .
Шаг 2 : Добавьте и инициализируйте Remote Config в вашем приложении.
Добавьте библиотеку Remote Config и настройте Remote Config в своем приложении.
Быстрый
В рамках настройки Firebase AI Logic вы уже добавили Firebase SDK в свое приложение, но вам также потребуется добавить 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В быстром стартовом приложении это будет находиться внутри класса
AppDelegateв классеVertexAISampleApp.
Kotlin
Добавьте зависимость Remote Config в файл Gradle вашего модуля (на уровне приложения) (обычно
app/build.gradle.ktsилиapp/build.gradle):dependencies { implementation(platform("com.google.firebase:firebase-bom:34.7.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:34.7.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 SDK, выполните инициализацию 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_vertexai/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), ));
Единство
Добавьте 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 });
Шаг 3 : Установите значения параметров в приложении.
В объекте Remote Config следует задать значения параметров по умолчанию для всего приложения. Это гарантирует корректную работу приложения, даже если оно не сможет получить значения из службы Remote Config .
Быстрый
В консоли Firebase откройте Remote Config .
На вкладке «Параметры» откройте меню и выберите «Загрузить значения по умолчанию» .
При появлении запроса включите поддержку файлов .plist для iOS , затем нажмите «Загрузить файл» .
Сохраните файл в каталоге вашего приложения.
Если вы используете пример приложения, сохраните его в папке
FirebaseVertexAI/Sample/VertexAISample.В Xcode щелкните правой кнопкой мыши по своему приложению и выберите «Добавить файлы».
Если вы используете пример, щелкните правой кнопкой мыши на VertexAISample и выберите «Добавить файлы в "VertexAISample" .
Выберите файл remote_config_defaults.plist , затем нажмите «Добавить» .
Обновите код вашего приложения, чтобы он ссылался на файл настроек по умолчанию:
// Set default values for Remote Config parameters. remoteConfig.setDefaults(fromPlist: "remote_config_defaults")
Kotlin
В консоли Firebase откройте Remote Config .
На вкладке «Параметры» откройте меню и выберите «Загрузить значения по умолчанию» .
При появлении запроса включите поддержку .xml для Android , затем нажмите «Скачать файл» .
Сохраните файл в каталоге XML-ресурсов вашего приложения.
Обновите основной файл активности, добавив значения по умолчанию после ранее добавленных
configSettings:// Set default values for Remote Config parameters. remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)
Java
В консоли Firebase откройте Remote Config .
На вкладке «Параметры» откройте меню и выберите «Загрузить значения по умолчанию» .
При появлении запроса включите поддержку .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-2.5-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: 'global',
};
Dart
Вы можете задать значения по умолчанию непосредственно в своем коде:
// Set default values for Remote Config parameters.
remoteConfig.setDefaults(const {
"model_name": "gemini-2.5-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": "global"
});
Единство
Вы можете задать значения по умолчанию непосредственно в своем коде:
// Set default values for Remote Config parameters.
await remoteConfig.SetDefaultsAsync(
new System.Collections.Generic.Dictionary<string, object>() {
{ "model_name", "gemini-2.5-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", "global" }
}
);
Шаг 4 : Получение и активация значений
После установки значений по умолчанию добавьте следующее, чтобы получить и активировать значения.
Быстрый
// 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иvertexLocation.// 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");
Единство
// Fetch and activate Remote Config values.
await remoteConfig.FetchAndActivateAsync();
Шаг 5 : Добавьте прослушиватель Remote Config в реальном времени.
Добавьте в приложение обработчик Remote Config в реальном времени, чтобы гарантировать, что изменения, внесенные в шаблон Remote Config будут передаваться клиенту сразу после их обновления.
Приведенный ниже код обновляет объект Remote Config всякий раз, когда изменяется значение параметра.
Быстрый
// 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
Для веб-приложений не поддерживаются обработчики Remote Config в реальном времени .
Dart
// Add a real-time Remote Config listener
remoteConfig.onConfigUpdated.listen((event) async {
await remoteConfig.activate();
});
Единство
// 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 : Обновите запросы к API Gemini , чтобы использовать значения Remote Config
Чтобы просмотреть контент и код, относящиеся к вашему поставщику API Gemini , нажмите на него. |
Теперь, когда Remote Config полностью настроен, обновите свой код, заменив жестко заданные значения значениями, полученными из Remote Config .
Быстрый
// 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);
Единство
// 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 : Запустите приложение
Соберите и запустите приложение и убедитесь, что оно работает. Внесите изменения в конфигурацию на странице Remote Config в консоли Firebase , опубликуйте изменения и проверьте результат.
Следующие шаги
Узнайте больше о Remote Config .
Добавьте Google Analytics в клиентский код, чтобы включить таргетинг.
Для мобильных приложений и игр:
Протестируйте различные настройки модели с помощью Remote Config и A/B Testing .
Постепенно внедряйте изменения параметров модели с помощью развертывания Remote Config (только для iOS+ и Android).
Используйте персонализацию Remote Config , чтобы с помощью машинного обучения определить оптимальные настройки для отдельных пользователей (только для iOS+, Android и Unity).