Динамически обновляйте свой Vertex AI в приложении Firebase с помощью Firebase Remote Config.

При вызове Gemini API из вашего приложения с использованием Vertex AI in Firebase SDK ваш запрос содержит ряд параметров, которые управляют генеративными ответами ИИ. Обычно они включают название модели, конфигурацию генерации модели (максимальное количество жетонов, температуру и т. д.), настройки безопасности, системные инструкции и подсказки.

В большинстве случаев вы захотите изменить их по требованию или по мере необходимости в ряде сценариев:

  • Обновите свою генеративную модель искусственного интеллекта, не выпуская новое приложение. Вы можете перейти на более новые и стабильные версии модели до того, как более ранние версии будут выведены из эксплуатации, перейти на модели с более низкой стоимостью или более высокой производительностью в зависимости от потребностей и характеристик ваших пользователей или условно развернуть новейшие и лучшие модели для определенных сегментов пользователей (например, бета-тестеров). .
  • Укажите местоположение доступа к модели, чтобы она была ближе к вашим пользователям.
  • A/B-тестирование различных системных инструкций и подсказок, а затем постепенно доводите до пользователей выигрышные результаты эксперимента.
  • Используйте флаги функций, чтобы быстро раскрыть или скрыть генеративные функции ИИ в вашем приложении.

Firebase Remote Config делает все это и многое другое, позволяя вам обновлять значения параметров по мере необходимости и при определенных условиях для экземпляров приложения, соответствующих характеристикам, которые вы установили в консоли Firebase , без выпуска новой версии вашего приложения.

В этом руководстве по решению представлены конкретные рекомендуемые варианты использования и описано, как добавить Remote Config в ваше генеративное приложение ИИ.

Перейти к реализации кода

Зачем использовать Firebase Remote Config со своим приложением?

Firebase Remote Config позволяет вам динамически настраивать поведение вашего приложения, не требуя его обновлений. Это особенно полезно для приложений, использующих генеративный искусственный интеллект, где решающее значение имеют быстрая итерация и точная настройка.

Основные варианты использования Remote Config с генеративными приложениями искусственного интеллекта

Мы рекомендуем использовать Remote Config с Vertex AI in Firebase для следующих важных случаев:

  • Обновите модель до последней версии без обновления приложения. Используйте параметры 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 с вашими приложениями iOS, Android и Flutter, чтобы протестировать изменения параметров генеративного ИИ в различных сегментах пользователей и увидеть, как они влияют на ключевые показатели, такие как удержание и доход.

Оснастив свое генеративное приложение ИИ с помощью Firebase Remote Config , вы сможете создавать гибкие, безопасные и экономичные приложения на базе ИИ, одновременно создавая восхитительные впечатления для своих пользователей.

Добавьте Firebase Remote Config в свое приложение.

В этом руководстве по решению вы будете использовать Firebase Remote Config для динамического обновления параметров в вашем приложении Android, которое использует Vertex AI in Firebase SDK. Вы узнаете, как:

  • Получите и активируйте такие параметры, как названия моделей и системные инструкции, из Firebase Remote Config .
  • Обновите вызовы Gemini API , чтобы использовать динамически извлекаемые параметры, что позволит вам переключаться между различными моделями или изменять системные инструкции без обновления приложения.
  • Управляйте параметрами удаленно, корректируя поведение и возможности модели по мере необходимости.

Предварительные условия

В этом руководстве предполагается, что вы знакомы с использованием JavaScript для разработки веб-приложений. Это руководство не зависит от платформы. Прежде чем начать, убедитесь, что вы сделали следующее:

  • Завершите руководство по началу работы с Vertex AI in Firebase SDK . Убедитесь, что вы выполнили все следующее:

    1. Настройте новый или существующий проект Firebase, включая использование тарифного плана Blaze и включение необходимых API.
    2. Подключите свое приложение к Firebase, включая регистрацию вашего приложения и добавление конфигурации Firebase в ваше приложение.
    3. Добавьте SDK и инициализируйте службу Vertex AI и генеративную модель в своем приложении.
  • Включите Google Analytics в своем проекте и добавьте его SDK в свое приложение (необходимо для условного таргетинга, например для настройки местоположения службы и модели на основе местоположения клиентского устройства).

Шаг 1. Установите значения параметров в консоли Firebase.

Создайте клиентский шаблон Remote Config и настройте параметры и значения для извлечения и использования в приложении.

  1. Откройте консоль Firebase и в меню навигации разверните «Выполнить» и выберите Remote Config .
  2. Убедитесь, что в списке «Клиент/сервер» в верхней части страницы Remote Config выбран «Клиент» .
    • Если вы впервые используете шаблоны клиентов Remote Config , нажмите «Создать конфигурацию» . Появится панель «Создайте свой первый параметр» .
    • Если вы не впервые используете шаблоны Remote Config , нажмите «Добавить параметр» .
  3. Определите следующие параметры Remote Config :

    Имя параметра Описание Тип Значение по умолчанию
    model_name Название модели. Актуальные списки названий моделей, которые можно использовать в коде, см. в разделе Доступные имена моделей . Нить gemini-1.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 При желании можно указать местоположение для запуска службы Vertex AI и доступа к модели. Вы можете установить условия для настройки этой опции на основе местоположения клиента, определенного Google Analytics . Нить us-central1
  4. Завершив добавление параметров, нажмите «Опубликовать изменения» . Если это не новый шаблон Remote Config , просмотрите изменения и снова нажмите «Опубликовать изменения» .

Шаг 2. Добавьте и инициализируйте SDK Remote Config

Добавьте и инициализируйте SDK Remote Config :

  1. Откройте свой код в текстовом редакторе и импортируйте Remote Config :

    import { getRemoteConfig } from 'firebase/remote-config';
    
  2. Внутри вашей основной функции и после инициализации приложения Firebase для Vertex AI in Firebase SDK инициализируйте Remote Config :

      // Initialize Remote Config and get a reference to the service
      const remoteConfig = getRemoteConfig(app);
    
  3. Установите минимальный интервал выборки. В этом примере интервал выборки по умолчанию составляет 3600 секунд, но мы рекомендуем вам установить относительно небольшой минимальный интервал выборки внутри вашего кода во время разработки.

    remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
    

Шаг 3. Установите значения параметров в приложении.

Вам следует установить значения параметров по умолчанию в приложении в объекте Remote Config , чтобы ваше приложение работало до того, как оно подключится к серверной части Remote Config , если доступ к клиентской сети прерывается и/или если на серверной части не настроены никакие значения.

В этом примере вы вручную устанавливаете значения по умолчанию для имени модели, системных инструкций, приглашения пользователя и местоположения Vertex AI :

// Set default Remote Config parameter values
remoteConfig.defaultConfig = {
  model_name: 'gemini-1.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: 'us-central1',
};

Шаг 4. Получите и активируйте значения.

  1. Добавьте getValue и fetchAndActivate к вашему импорту:

    import { getValue, fetchAndActivate } from 'firebase/remote-config';
    
  2. После добавления кода для настройки значений 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();
    

Шаг 5. Обновите вызовы Vertex AI , чтобы использовать значения Remote Config

Теперь, когда Remote Config полностью настроен, обновите свой код, чтобы заменить жестко запрограммированные значения значениями, полученными из Remote Config . Например, если вы использовали пример, приведенный в разделе Начало работы с API Gemini с использованием Vertex AI в Firebase SDK , вы должны обновить его следующим образом:

// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);

// Initialize the Vertex AI service
// Optionally specify a location in which to run the service and access the model
const vertexAI = getVertexAI(firebaseApp, { location: vertexLocation });

// Initialize the generative model with a model that supports your use case
// Gemini 1.5 models are versatile and can be used with all API capabilities
const model = getGenerativeModel(vertexAI, {
  model: modelName,
  systemInstruction: systemInstruction
});

// Wrap in an async function so you can use await
async function run() {
  // Provide a prompt that contains text
  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);
}

Шаг 6. Запустите приложение.

Запустите приложение и убедитесь, что оно работает. Внесите изменения в свою конфигурацию на странице Remote Config в консоли Firebase, опубликуйте изменения и проверьте результат.

Следующие шаги

  • Узнайте больше об Remote Config .
  • Добавьте Google Analytics в свой код, чтобы включить таргетинг.