Requêtes d'IA hybrides avec la logique d'IA Firebase

Publié le 20 mai 2025

Pour répondre aux besoins de vos utilisateurs, quelle que soit la plate-forme ou le matériel qu'ils utilisent, vous pouvez configurer un repli vers le cloud avec Firebase AI Logic pour l'API Prompt intégrée.

Créer une expérience d'IA hybride

L'IA intégrée présente plusieurs avantages, dont les suivants :

  • Traitement local des données sensibles : si vous travaillez avec des données sensibles, vous pouvez proposer des fonctionnalités d'IA aux utilisateurs avec un chiffrement de bout en bout.
  • Utilisation de l'IA hors connexion : vos utilisateurs peuvent accéder aux fonctionnalités d'IA, même lorsqu'ils sont hors connexion ou que leur connexion est interrompue.

Bien que ces avantages ne s'appliquent pas aux applications cloud, vous pouvez garantir une expérience fluide aux personnes qui ne peuvent pas accéder à l'IA intégrée.

Premiers pas avec Firebase

Découvrez comment créer un projet Firebase et ajouter Firebase à votre application Web.

Les projets Firebase sont des projets Google Cloud, avec des configurations et des services spécifiques à Firebase. En savoir plus sur Google Cloud et Firebase.

Installer le SDK

Ce workflow utilise npm et nécessite des bundlers de modules ou des outils de framework JavaScript. Firebase AI Logic est optimisé pour fonctionner avec des bundlers de modules afin d'éliminer le code inutilisé et de réduire la taille du SDK.

  1. Installez le SDK Firebase JS :

    npm install firebase
    
  2. Initialisez Firebase dans votre application.

Configurer et sécuriser Firebase AI Logic

  1. Dans la console Firebase, accédez à AI Services > AI Logic.

  2. Cliquez sur Get started (Commencer) pour lancer le workflow de configuration.

  3. Lorsque vous êtes invité à choisir un "fournisseur d'API Gemini", nous vous recommandons de sélectionner l' API Gemini Developer, qui vous permet de commencer rapidement et sans frais.

    Vous pouvez toujours configurer l'API Vertex AI Gemini (et son exigence de facturation) ultérieurement.

  4. Poursuivez le workflow de la console pour configurer les API requises et les services associés pour Firebase AI Logic.

    À partir de début juillet 2026, cette étape du workflow appliquera automatiquement Firebase App Check pour AI Logic, qui est un service essentiel pour protéger l'API Gemini lorsqu'elle est directement accessible depuis votre application. Pour commencer (voir les étapes plus loin dans ce guide), vous devrez configurer le fournisseur de débogage App Check pour le développement local lorsque App Check est appliqué.

  5. Passez aux sections suivantes de ce guide pour configurer le fournisseur de débogage App Check pour le développement local, puis envoyez votre première requête à l'API Gemini.

Configurer le fournisseur de débogage App Check pour le développement local

Voici comment utiliser le fournisseur de débogage lorsque vous exécutez votre application de manière interactive à partir de localhost (par exemple, lors du développement local) :

  1. Dans votre build de débogage, activez le mode débogage en définissant self.FIREBASE_APPCHECK_DEBUG_TOKEN sur true avant d'initialiser App Check. Exemple :

    self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
    initializeAppCheck(app, { /* App Check options */ });
    
  2. Accédez à votre application Web en local et ouvrez les outils pour les développeurs du navigateur. Dans la console de débogage, vous verrez un jeton de débogage :

    AppCheck debug token: "123a4567-b89c-12d3-e456-789012345678".
    You will need to safelist it in the Firebase console for it to work.
    
  3. Enregistrez votre jeton de débogage auprès d'App Check :

    1. Dans la console Firebase, accédez à l'onglet Security > App Check > Apps (Sécurité > App Check > Applications).

    2. Recherchez votre application, cliquez sur le menu à développer (), puis sélectionnez Manage debug tokens (Gérer les jetons de débogage).

    3. Suivez les instructions à l'écran pour enregistrer votre jeton de débogage.

Pour en savoir plus sur le fournisseur de débogage (y compris comment obtenir un nouveau jeton de débogage), consultez la documentation officielle d'App Check.

Envoyer une requête à l'API Gemini

  1. Initialisez et créez une instance.

  2. Invitez le modèle avec une entrée textuelle ou multimodale. Consultez des exemples dans les sous-sections suivantes de ce guide.

Requêtes textuelles

Vous pouvez utiliser du texte brut pour vos instructions au modèle. Par exemple, vous pouvez demander au modèle de vous raconter une blague.

Vous pouvez choisir comment la requête est acheminée :

  • Utilisez l'IA intégrée par défaut lorsqu'elle est disponible en définissant le mode sur 'prefer_on_device' dans la fonction getGenerativeModel(). Si le modèle intégré n'est pas disponible, la requête basculera automatiquement vers le modèle cloud (si vous êtes en ligne).

  • Utilisez le modèle cloud par défaut lorsque vous êtes en ligne en définissant le mode sur 'prefer_in_cloud' dans la fonction getGenerativeModel(). Si vous êtes hors connexion, la requête basculera automatiquement vers l'IA intégrée lorsqu'elle est disponible.

// Initialize the Google AI service.
const googleAI = getAI(firebaseApp);

// Create a `GenerativeModel` instance with a model that supports your use case.
const model = getGenerativeModel(googleAI, { mode: 'prefer_on_device' });

const prompt = 'Tell me a joke';

const result = await model.generateContentStream(prompt);

for await (const chunk of result.stream) {
  const chunkText = chunk.text();
  console.log(chunkText);
}
console.log('Complete response', await result.response);

Requêtes multimodales

Vous pouvez également utiliser des images ou des fichiers audio en plus du texte. Vous pouvez demander au modèle de décrire le contenu d'une image ou de transcrire un fichier audio.

Les images doivent être transmises sous forme de chaîne encodée en base64 en tant qu'objet Firebase FileDataPart, ce que vous pouvez faire avec la fonction d'assistance fileToGenerativePart().

// Converts a File object to a `FileDataPart` object.
// https://firebase.google.com/docs/reference/js/vertexai.filedatapart
async function fileToGenerativePart(file) {
    const base64EncodedDataPromise = new Promise((resolve) => {
      const reader = new FileReader();
      reader.onload = () => resolve(reader.result.split(',')[1]);
      reader.readAsDataURL(file);
    });

    return {
      inlineData: { data: await base64EncodedDataPromise, mimeType: file.type },
    };
  }

  const fileInputEl = document.querySelector('input[type=file]');

  fileInputEl.addEventListener('change', async () => {
    const prompt = 'Describe the contents of this image.';

    const imagePart = await fileToGenerativePart(fileInputEl.files[0]);

    // To generate text output, call generateContent with the text and image
    const result = await model.generateContentStream([prompt, imagePart]);

    for await (const chunk of result.stream) {
      const chunkText = chunk.text();
      console.log(chunkText);
    }
    console.log(Complete response: ', await result.response);
  });

Démo

Accédez à la démo Firebase AI Logic sur différents appareils et navigateurs. Vous pouvez voir comment la réponse du modèle provient du modèle d'IA intégré ou du cloud.

Sur le matériel compatible dans Chrome, la démo utilise l'API Prompt et Gemini Nano. Seules trois requêtes sont effectuées pour le document principal, le fichier JavaScript et le fichier CSS.

Firebase AI Logic s'exécutant dans Chrome, à l'aide des API d'IA intégrées.

Dans un autre navigateur ou un système d'exploitation sans prise en charge de l'IA intégrée, une requête supplémentaire est envoyée au point de terminaison Firebase, https://firebasevertexai.googleapis.com.

Firebase AI Logic s'exécute dans Safari et envoie une requête aux serveurs Firebase.

Participer et envoyer des commentaires

Firebase AI Logic peut être une excellente option pour intégrer des fonctionnalités d'IA à vos applications Web. En fournissant un repli vers le cloud lorsque l'API Prompt n'est pas disponible, le SDK garantit une plus grande accessibilité et fiabilité des fonctionnalités d'IA.

N'oubliez pas que les applications cloud créent de nouvelles attentes en matière de confidentialité et de fonctionnalités. Il est donc important d'informer vos utilisateurs de l'endroit où leurs données sont traitées.

  • Pour envoyer des commentaires sur l'implémentation de Chrome, signalez un bug ou une demande de fonctionnalité.
  • Pour envoyer des commentaires sur Firebase AI Logic, signalez un bug.