Mettre à jour dynamiquement votre application Vertex AI in Firebase avec Firebase Remote Config

Lorsque vous appelez Gemini API à partir de votre application à l'aide d'un SDK Vertex AI in Firebase, votre requête contient un certain nombre de paramètres qui contrôlent les réponses de l'IA générative. Il s'agit généralement du nom du modèle, de la configuration de génération du modèle (jetons maximum, température, etc.), des paramètres de sécurité, des instructions système et des données d'invite.

Dans la plupart des cas, vous devrez modifier ces paramètres à la demande ou selon les besoins pour un certain nombre de scénarios:

  • Mettez à jour votre modèle d'IA générative sans publier de nouvelle application. Vous pouvez passer à des versions de modèle plus récentes et stables avant que les versions précédentes ne soient mises hors service, passer à des modèles moins coûteux ou plus performants en fonction des besoins et des attributs de vos utilisateurs, ou déployer de manière conditionnelle les derniers modèles sur des segments d'utilisateurs spécifiques (comme les testeurs bêta).
  • Définissez l'emplacement où vous accédez au modèle afin qu'il soit plus proche de vos utilisateurs.
  • Effectuez des tests A/B sur différentes instructions et invites du système, puis déployez progressivement les valeurs de test gagnantes auprès de vos utilisateurs.
  • Utilisez des indicateurs de fonctionnalité pour exposer ou masquer rapidement les fonctionnalités d'IA générative dans votre application.

Firebase Remote Config effectue toutes ces opérations et bien d'autres, vous permettant de mettre à jour les valeurs de paramètre selon les besoins et sous conditions pour les instances d'application qui correspondent aux caractéristiques que vous avez définies dans la console Firebase, sans publier de nouvelle version de votre application.

Ce guide de solution fournit des cas d'utilisation recommandés spécifiques et explique comment ajouter Remote Config à votre application d'IA générative.

Accéder à l'implémentation du code

Pourquoi utiliser Firebase Remote Config avec votre application ?

Firebase Remote Config vous permet d'ajuster de manière dynamique le comportement de votre application sans avoir à la mettre à jour. Cela est particulièrement utile pour les applications qui utilisent l'IA générative, où l'itération rapide et l'ajustement sont cruciaux.

Cas d'utilisation essentiels pour Remote Config avec des applications d'IA générative

Nous vous recommandons d'utiliser Remote Config avec Vertex AI in Firebase pour les cas d'utilisation essentiels suivants:

  • Passer à la dernière version du modèle sans mise à jour de l'application:utilisez les paramètres Remote Config pour modifier le nom du modèle si nécessaire, afin de pouvoir passer à la dernière version de votre modèle Gemini préféré dès qu'il est disponible.
  • Mettre à jour les instructions système et les paramètres de sécurité sans mise à jour de l'application : stockez les instructions système et les paramètres de sécurité dans les paramètres Remote Config pour vous assurer de pouvoir les modifier à la demande si vous découvrez des problèmes après le déploiement.
  • Réduire les risques et appliquer la sécurité de l'IA : utilisez les déploiements Remote Config pour déployer progressivement et de manière sécurisée les modifications apportées à l'IA générative auprès de vos utilisateurs iOS et Android.

Cas d'utilisation avancés et recommandés pour Remote Config avec des applications d'IA générative

Après avoir instrumenté votre application avec Remote Config et Google Analytics, vous pouvez explorer des cas d'utilisation avancés:

  • Définir l'emplacement en fonction de l'emplacement du client:utilisez des conditions Remote Config pour définir l'emplacement du modèle en fonction de l'emplacement détecté du client.
  • Testez différents modèles : testez et passez rapidement d'un modèle d'IA générative à un autre, ou même déployez différents modèles dans différents segments d'utilisateurs, afin de trouver celui qui convient le mieux à votre cas d'utilisation spécifique.
  • Optimiser les performances du modèle: affinez les paramètres du modèle, tels que l'invite système, le nombre maximal de jetons de sortie, la température et d'autres paramètres.
  • Utiliser différentes instructions système, invites et configurations de modèle en fonction des attributs client : lorsque vous utilisez Remote Config avec Google Analytics, vous pouvez créer des conditions en fonction des attributs client ou des audiences personnalisées, et définir différents paramètres en fonction de ces attributs.

    Par exemple, si vous utilisez l'IA générative pour fournir une assistance technique dans votre application, vous pouvez définir des instructions système spécifiques à la plate-forme de l'application pour vous assurer que des instructions précises sont fournies aux utilisateurs de votre plate-forme Android, iOS et Web.

  • Personnalisez l'expérience de chaque utilisateur:utilisez la personnalisation Remote Config pour déterminer automatiquement les paramètres d'IA générative optimaux pour chaque utilisateur.

  • Contrôler les coûts : ajustez à distance les modèles d'IA générative appelés, leur fréquence d'utilisation et configurez dynamiquement les valeurs de jeton de sortie maximales en fonction de l'audience des utilisateurs pour réduire les coûts inutiles.

  • Optimisez l'expérience et les résultats de l'application : utilisez A/B Testing avec Remote Config dans vos applications iOS, Android et Flutter pour tester les modifications apportées aux paramètres d'IA générative dans différents segments d'utilisateurs afin de voir comment elles affectent les métriques clés telles que la fidélisation et les revenus.

En instrumentant votre application d'IA générative avec Firebase Remote Config, vous pouvez créer des applications flexibles, sécurisées et économiques basées sur l'IA, tout en créant des expériences agréables pour vos utilisateurs.

Ajouter Firebase Remote Config à votre application

Dans ce guide de solution, vous allez utiliser Firebase Remote Config pour mettre à jour dynamiquement les paramètres de votre application Android qui utilisent le SDK Vertex AI in Firebase. Vous allez apprendre à effectuer les tâches suivantes :

  • Extrayez et activez des paramètres tels que les noms de modèle et les instructions système à partir de Firebase Remote Config.
  • Mettez à jour vos appels Gemini API pour utiliser les paramètres récupérés de manière dynamique, ce qui vous permet de passer d'un modèle à un autre ou de modifier les instructions système sans mettre à jour l'application.
  • Contrôlez les paramètres à distance, en ajustant le comportement et les fonctionnalités du modèle si nécessaire.

Prérequis

Dans ce guide, nous partons du principe que vous maîtrisez JavaScript pour développer des applications Web. Ce guide est indépendant du framework. Avant de commencer, assurez-vous d'avoir effectué les actions suivantes:

  • Suivez le guide de démarrage du SDK Vertex AI in Firebase. Assurez-vous d'avoir effectué les opérations suivantes :

    1. Configurez un projet Firebase nouveau ou existant, y compris en utilisant le forfait Blaze et en activant les API requises.
    2. Connectez votre application à Firebase, y compris en l'enregistrant et en ajoutant votre configuration Firebase.
    3. Ajoutez le SDK, puis initialisez le service Vertex AI et le modèle génératif dans votre application.
  • Activez Google Analytics dans votre projet et ajoutez son SDK à votre application (requis pour le ciblage conditionnel, comme le paramétrage de l'emplacement du service et du modèle en fonction de l'emplacement de l'appareil client).

Étape 1: Définissez les valeurs de paramètre dans la console Firebase

Créez un modèle de client Remote Config, puis configurez les paramètres et les valeurs à récupérer et à utiliser dans l'application.

  1. Ouvrez la console Firebase. Dans le menu de navigation, développez Exécuter, puis sélectionnez Remote Config.
  2. Assurez-vous que Client est sélectionné dans le sélecteur Client/Serveur en haut de la page Remote Config.
    • Si vous utilisez des modèles de client Remote Config pour la première fois, cliquez sur Créer une configuration. Le volet Créer votre premier paramètre s'affiche.
    • Si ce n'est pas la première fois que vous utilisez des modèles Remote Config, cliquez sur Ajouter un paramètre.
  3. Définissez les paramètres Remote Config suivants:

    Nom du paramètre Description Type Valeur par défaut
    model_name Nom du modèle. Pour obtenir des listes à jour des noms de modèles à utiliser dans votre code, consultez Noms de modèles disponibles. Chaîne gemini-1.5-flash
    system_instructions Les instructions système sont comme un "préambule" que vous ajoutez avant que le modèle ne soit exposé à d'autres instructions de l'utilisateur final pour influencer son comportement, en fonction de besoins et de cas d'utilisation spécifiques. Chaîne You are a helpful assistant who knows everything there is to know about Firebase!
    prompt Requête par défaut à utiliser avec votre fonctionnalité d'IA générative. Chaîne I am a developer who wants to know more about Firebase!
    vertex_location Vous pouvez éventuellement contrôler l'emplacement pour exécuter le service Vertex AI et accéder à un modèle. Vous pouvez définir des conditions pour configurer cette option en fonction de l'emplacement du client détecté par Google Analytics. Chaîne us-central1
  4. Lorsque vous avez terminé d'ajouter des paramètres, cliquez sur Publier les modifications. S'il ne s'agit pas d'un nouveau modèle Remote Config, examinez les modifications et cliquez à nouveau sur Publier les modifications.

Étape 2: Ajoutez et initialisez le SDK Remote Config

Ajoutez et initialisez le SDK Remote Config:

  1. Ouvrez votre code dans un éditeur de texte et importez Remote Config :

    import { getRemoteConfig } from 'firebase/remote-config';
    
  2. Dans votre fonction principale et une fois l'application Firebase initialisée pour le SDK Vertex AI in Firebase, initialisez Remote Config:

      // Initialize Remote Config and get a reference to the service
      const remoteConfig = getRemoteConfig(app);
    
  3. Définissez un intervalle de récupération minimal. Dans cet exemple, l'intervalle de récupération par défaut est de 3 600 secondes, mais nous vous recommandons de définir un intervalle de récupération minimal relativement faible dans votre code pendant le développement.

    remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
    

Étape 3 : Définir les valeurs des paramètres dans l'application

Vous devez définir des valeurs de paramètre par défaut dans l'objet Remote Config afin que votre application fonctionne avant de se connecter au backend Remote Config, si l'accès au réseau du client est interrompu et/ou si aucune valeur n'est configurée sur le backend.

Dans cet exemple, vous définissez manuellement les valeurs par défaut pour le nom du modèle, les instructions système, l'invite utilisateur et l'emplacement 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',
};

Étape 4: Extrayez et activez les valeurs

  1. Ajoutez getValue et fetchAndActivate à vos importations :

    import { getValue, fetchAndActivate } from 'firebase/remote-config';
    
  2. Après le code que vous avez ajouté pour configurer les valeurs Remote Config par défaut, récupérez et activez la configuration, puis attribuez des valeurs aux constantes modelName, systemInstructions, prompt et 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();
    

Étape 5: Mettez à jour les appels Vertex AI pour utiliser les valeurs Remote Config

Maintenant que Remote Config est entièrement configuré, mettez à jour votre code pour remplacer les valeurs codées en dur par des valeurs provenant de Remote Config. Par exemple, si vous utilisez l'exemple utilisé dans la section Premiers pas avec l'API Gemini à l'aide de Vertex AI dans les SDK Firebase, mettez-le à jour comme suit:

// 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);
}

Étape 6: Exécuter l'application

Exécutez l'application et vérifiez qu'elle fonctionne. Modifiez votre configuration à partir de la page Remote Config de la console Firebase, publiez les modifications et vérifiez le résultat.

Étapes suivantes