Créez des applications et des fonctionnalités Web optimisées par l'IA avec l'inférence hybride à l'aide de Firebase AI Logic. L'inférence hybride permet d'exécuter l'inférence à l'aide de modèles sur l'appareil lorsqu'ils sont disponibles et de revenir de manière transparente aux modèles hébergés dans le cloud dans le cas contraire (et vice versa).
Cette page explique comment commencer à utiliser le SDK client. Une fois cette configuration standard terminée, consultez les options et fonctionnalités de configuration supplémentaires (comme la sortie structurée).
Notez que l'inférence sur l'appareil est compatible avec les applications Web exécutées sur Chrome sur ordinateur.
Cas d'utilisation recommandés et fonctionnalités compatibles
Cas d'utilisation recommandés :
L'utilisation d'un modèle sur l'appareil pour l'inférence offre les avantages suivants :
- Confidentialité renforcée
- Contexte local
- Inférence sans frais
- Fonctionnalités hors connexion
L'utilisation de fonctionnalités hybrides offre les avantages suivants :
- Touchez 100% de votre audience, quelle que soit la disponibilité du modèle sur l'appareil ou la connectivité Internet.
Fonctionnalités compatibles avec l'inférence sur l'appareil :
L'inférence sur l'appareil n'est compatible qu'avec la génération de texte à un seul tour (pas le chat), avec une sortie en streaming ou non. Elle est compatible avec les fonctionnalités de génération de texte suivantes :
Générer du texte à partir d'une entrée de texte et d'image, en particulier les types d'images d'entrée JPEG et PNG
Vous pouvez également générer une sortie structurée, y compris JSON et des énumérations.
Avant de commencer
Veuillez noter les points suivants :
L'inférence à l'aide d'un modèle sur l'appareil utilise l' API Prompt de Chrome ; tandis que l'inférence à l'aide d'un modèle hébergé dans le cloud utilise le Gemini API fournisseur de votre choix (l'Gemini Developer API ou l' Agent Platform Gemini API (formerly Vertex AI)).
Cette page explique comment commencer à développer à l'aide de localhost (en savoir plus sur l'utilisation des API sur localhost dans la documentation Chrome).
Une fois cette configuration standard terminée, consultez les options et fonctionnalités de configuration supplémentaires (comme la sortie structurée).
Premiers pas sur localhost
Ces étapes de démarrage décrivent la configuration générale requise pour toute requête de prompt compatible que vous souhaitez envoyer.
Étape 1 : Configurez Chrome et l'API Prompt pour l'inférence sur l'appareil
Assurez-vous d'utiliser une version récente de Chrome. Mettez à jour dans chrome://settings/help.
L'inférence sur l'appareil est disponible à partir de Chrome v139 et versions ultérieures.Activez le modèle multimodal sur l'appareil en définissant l'indicateur suivant sur Activé:
chrome://flags/#prompt-api-for-gemini-nano-multimodal-input
Relancez Chrome.
(Facultatif) Téléchargez le modèle sur l'appareil avant la première requête.
L'API Prompt est intégrée à Chrome. Toutefois, le modèle sur l'appareil n'est pas disponible par défaut. Si vous n'avez pas encore téléchargé le modèle avant votre première requête d'inférence sur l'appareil, la requête lancera automatiquement le téléchargement du modèle en arrière-plan.
Étape 2 : Configurez un projet Firebase et associez votre application à Firebase
Connectez-vous à la Firebase console, puis sélectionnez votre projet Firebase.
Dans la console Firebase, accédez à Services d'IA > AI Logic.
Cliquez sur Premiers pas pour lancer un workflow guidé qui vous aidera à configurer les API requises et les ressources pour votre projet.
Si vous y êtes invité, suivez les instructions à l'écran pour enregistrer votre application et ajouter votre configuration Firebase à votre application.
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 Agent Platform Gemini API (formerly Vertex AI) (et son exigence de facturation) à tout moment.
Poursuivez le workflow 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 LogicFirebase App Check pour AI Logic, qui est un service essentiel pour protéger l'Gemini API lorsqu'il est directement accessible depuis votre application. Pour commencer (voir les étapes plus loin dans ce guide), vous devrez configurer le App Check fournisseur de débogage pour le développement local lorsque App Check est appliqué.
Passez à l'étape suivante de ce guide pour ajouter les SDK requis à votre application.
Étape 3 : Ajoutez le SDK
La bibliothèque Firebase permet d'accéder aux API pour interagir avec les modèles génératifs. La bibliothèque est incluse dans le SDK JavaScript Firebase pour le Web.
Installez le SDK Firebase JS pour le Web à l'aide de npm :
npm install firebaseInitialisez Firebase dans votre application :
import { initializeApp } from "firebase/app"; import { initializeAppCheck } from "firebase/app-check"; // TODO(developer) Replace the following with your app's Firebase configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... }; // Initialize FirebaseApp const firebaseApp = initializeApp(firebaseConfig);
Étape 4 : Configurez le fournisseur de débogage App Check pour le développement local
À partir de début juillet 2026, dans le cadre du workflow de configuration guidée pour AI Logic dans la console, Firebase App Checksera automatiquement appliqué pour protéger l' Gemini API. Pour le développement local, vous devez configurer le App Check fournisseur de débogage afin de contourner l'attestation tout en maintenant l' application de App Check.
Voici comment utiliser le fournisseur de débogage lors de l'exécution interactive de votre application à partir de localhost (par exemple, lors du développement local) :
Dans votre version de débogage, activez le mode débogage en définissant
self.FIREBASE_APPCHECK_DEBUG_TOKENsurtrueavant d'initialiser App Check. Exemple :self.FIREBASE_APPCHECK_DEBUG_TOKEN = true; initializeAppCheck(firebaseApp, { /* App Check options */ });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.Enregistrez votre jeton de débogage auprès de App Check :
Dans la console Firebase, accédez à l'onglet Sécurité > App Check > Applications.
Recherchez votre application, cliquez sur le menu à développer (), puis sélectionnez Gérer les jetons de débogage.
Suivez les instructions à l'écran pour enregistrer votre jeton de débogage.
Pour en savoir plus sur le fournisseur de débogage (y compris sur la façon d'obtenir un nouveau jeton de débogage), consultez la documentation App Check officielle.
Étape 5 : Initialisez le service et créez une instance de modèle
|
Cliquez sur votre fournisseur Gemini API pour afficher le contenu spécifique au fournisseur et le code sur cette page. |
Configurez les éléments suivants avant d'envoyer une requête de prompt au modèle :
Initialisez le service pour le fournisseur d'API de votre choix.
Créez une instance
GenerativeModel. Veillez à définir lemodesur l'une des valeurs suivantes :PREFER_ON_DEVICE: utilisez le modèle sur l'appareil s'il est disponible. Sinon, revenez au modèle hébergé dans le cloud.ONLY_ON_DEVICE: utilisez le modèle sur l'appareil s'il est disponible. Sinon, générez une exception.PREFER_IN_CLOUD: utilisez le modèle hébergé dans le cloud s'il est disponible. Sinon, revenez au modèle sur l'appareil.ONLY_IN_CLOUD: utilisez le modèle hébergé dans le cloud s'il est disponible. Sinon, générez une exception.
import { initializeApp } from "firebase/app";
import { getAI, getGenerativeModel, GoogleAIBackend, InferenceMode } from "firebase/ai";
// TODO(developer) Replace the following with your app's Firebase configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
// ...
};
// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);
// Initialize the Gemini Developer API backend service
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });
// Create a `GenerativeModel` instance
// Set the mode (for example, use the on-device model if it's available)
const model = getGenerativeModel(ai, { mode: InferenceMode.PREFER_ON_DEVICE });
Étape 6 : Initialisez le modèle sur l'appareil
Vous devez appeler initializeDeviceModel() après ou sur une interaction de l'utilisateur final avec une page (comme un clic sur un bouton) et avant d'envoyer une requête de prompt au modèle. En savoir plus sur l'
exigence d'activation de l'utilisateur
dans la documentation Chrome.
import { initializeApp } from "firebase/app";
import { getAI, getGenerativeModel, GoogleAIBackend, InferenceMode } from "firebase/ai";
// TODO(developer) Replace the following with your app's Firebase configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
// ...
};
// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);
// Initialize the Gemini Developer API backend service
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });
// Create a `GenerativeModel` instance
// Set the mode (for example, use the on-device model if it's available)
const model = getGenerativeModel(ai, { mode: InferenceMode.PREFER_ON_DEVICE });
// `initializeDeviceModel` must be called:
// (1) after or on an end-user page interaction such as a button click
// and
// (2) before any queries to the model (such as `generateContent()`)
// You may want to `await` this promise if using `ONLY_ON_DEVICE` (see note below).
model.initializeDeviceModel((val) =>
// Example: "Download progress: 72.62%""
console.log(`Download progress: ${Math.round(val*10000) / 100}%`)
);
Étape 7 : Envoyez une requête de prompt à un modèle
Cette section explique comment envoyer différents types d'entrées pour générer différents types de sorties, y compris :
- Générer du texte à partir d'une entrée de texte uniquement
- Générer du texte à partir d'une entrée de texte et d'image (multimodale)
Si vous souhaitez générer une sortie structurée (comme JSON ou des énumérations), alors utilisez l'un des exemples de "génération de texte" suivants et configurez également le modèle pour qu'il réponde en fonction d'un schéma fourni.
Générer du texte à partir d'une entrée de texte uniquement
| Avant d'essayer cet exemple, assurez-vous d'avoir suivi la section Premiers pas de ce guide. |
Vous pouvez utiliser
generateContent()
pour générer du texte à partir d'un prompt contenant du texte :
// Imports + initialization of FirebaseApp and backend service + creation of model instance
// Wrap in an async function so you can use await
async function run() {
// Provide a prompt that contains text
const prompt = "Write a story about a magic backpack."
// To generate text output, call `generateContent` with the text input
const result = await model.generateContent(prompt);
const response = result.response;
const text = response.text();
console.log(text);
}
run();
Notez que Firebase AI Logic est également compatible avec le streaming des réponses textuelles à l'aide de
generateContentStream
(au lieu de generateContent).
Générer du texte à partir d'une entrée de texte et d'image (multimodale)
| Avant d'essayer cet exemple, assurez-vous d'avoir suivi la section Premiers pas de ce guide. |
Vous pouvez utiliser
generateContent()
pour générer du texte à partir d'un prompt contenant du texte et des fichiers image, en fournissant le
fichier d'entréemimeType et le fichier lui-même.
Les types d'images d'entrée compatibles pour l'inférence sur l'appareil sont PNG et JPEG.
// Imports + initialization of FirebaseApp and backend service + creation of model instance
// Converts a File object to a Part object.
async function fileToGenerativePart(file) {
const base64EncodedDataPromise = new Promise((resolve) => {
const reader = new FileReader();
reader.onloadend = () => resolve(reader.result.split(',')[1]);
reader.readAsDataURL(file);
});
return {
inlineData: { data: await base64EncodedDataPromise, mimeType: file.type },
};
}
async function run() {
// Provide a text prompt to include with the image
const prompt = "Write a poem about this picture:";
const fileInputEl = document.querySelector("input[type=file]");
const imagePart = await fileToGenerativePart(fileInputEl.files[0]);
// To generate text output, call `generateContent` with the text and image
const result = await model.generateContent([prompt, imagePart]);
const response = result.response;
const text = response.text();
console.log(text);
}
run();
Notez que Firebase AI Logic est également compatible avec le streaming des réponses textuelles à l'aide de
generateContentStream
(au lieu de generateContent).
Qu'est-ce que tu sais faire d'autre ?
Vous pouvez utiliser différentes options et fonctionnalités de configuration supplémentaires pour vos expériences hybrides :
Remplacer le modèle de remplacement par défaut hébergé dans le cloud
Utiliser la configuration du modèle pour contrôler les réponses (comme la température)
Fonctionnalités pas encore disponibles pour l'inférence sur l'appareil
Toutes les fonctionnalités du SDK Web ne sont pas disponibles pour l'inférence sur l'appareil. Les fonctionnalités suivantes ne sont pas encore compatibles avec l'inférence sur l'appareil (mais elles sont généralement disponibles pour l'inférence basée sur le cloud).
Générer du texte à partir de types de fichiers image autres que JPEG et PNG
- Peut revenir au modèle hébergé dans le cloud. Toutefois, le mode
ONLY_ON_DEVICEgénérera une erreur.
- Peut revenir au modèle hébergé dans le cloud. Toutefois, le mode
Générer du texte à partir d'entrées audio, vidéo et de documents (comme des PDF)
- Peut revenir au modèle hébergé dans le cloud. Toutefois, le mode
ONLY_ON_DEVICEgénérera une erreur.
- Peut revenir au modèle hébergé dans le cloud. Toutefois, le mode
Générer des images à l'aide des modèles Gemini ou Imagen
- Peut revenir au modèle hébergé dans le cloud. Toutefois, le mode
ONLY_ON_DEVICEgénérera une erreur.
- Peut revenir au modèle hébergé dans le cloud. Toutefois, le mode
Fournir des fichiers à l'aide d'URL dans des requêtes multimodales. Vous devez fournir des fichiers en tant que données intégrées aux modèles sur l'appareil.
Chat multitour
- Peut revenir au modèle hébergé dans le cloud. Toutefois, le mode
ONLY_ON_DEVICEgénérera une erreur.
- Peut revenir au modèle hébergé dans le cloud. Toutefois, le mode
Streaming bidirectionnel avec le Gemini Live API
Fournir au modèle des outils pour l'aider à générer sa réponse (comme l'appel de fonction, l'exécution de code, le contexte d'URL, l'ancrage avec
Google Search , et l'ancrage avecGoogle Maps )Compter les jetons
- Génère toujours une erreur. Le nombre diffère entre les modèles hébergés dans le cloud et sur l'appareil. Il n'y a donc pas de remplacement intuitif.
Surveillance de l'IA dans la Firebase console pour l'inférence sur l'appareil.
- Notez que toute inférence utilisant les modèles hébergés dans le cloud peut être surveillée comme toute autre inférence à l'aide du Firebase AI Logic client SDK pour le Web.
Envoyer des commentaires sur votre expérience avec Firebase AI Logic