Que fait firebase-ai-logic-basics ?
Compétence officielle pour intégrer Firebase AI Logic (API Gemini) dans les applications web. Couvre la configuration, l'inférence multimodale, la sortie structurée et la sécurité.
Introduction
Firebase AI Logic permet d'utiliser les modèles Gemini de Google directement depuis vos applications web via le SDK Firebase. Cette compétence vous guide pas à pas pour configurer et exploiter ces fonctionnalités.
Prérequis
- Un projet Firebase avec le plan Blaze (pay-as-you-go) activé
- Node.js 18+ ou un environnement navigateur moderne
- Une clé API Gemini (disponible dans Google Cloud Console)
Configuration
1. Initialiser Firebase dans votre projet
npm install firebase
import { initializeApp } from 'firebase/app';
import { getVertexAI } from 'firebase/vertexai';
const firebaseConfig = {
apiKey: 'VOTRE_CLÉ_API',
authDomain: 'votre-projet.firebaseapp.com',
projectId: 'votre-projet',
};
const app = initializeApp(firebaseConfig);
const vertexAI = getVertexAI(app);
2. Effectuer une inférence de base
import { getGenerativeModel } from 'firebase/vertexai';
const model = getGenerativeModel(vertexAI, { model: 'gemini-1.5-pro' });
const result = await model.generateContent('Expliquer le cycle de l\'eau en bref.');
console.log(result.response.text());
Inférence multimodale
Gemini peut traiter du texte, des images, de l'audio et de la vidéo.
import { getGenerativeModel } from 'firebase/vertexai';
const model = getGenerativeModel(vertexAI, { model: 'gemini-1.5-pro' });
const imagePart = {
inlineData: {
mimeType: 'image/png',
data: base64EncodedImage,
},
};
const result = await model.generateContent([
'Décrivez cette image en détail.',
imagePart,
]);
console.log(result.response.text());
Sortie structurée (JSON)
Demandez à Gemini de générer du JSON structuré.
const schema = {
type: 'object',
properties: {
nom: { type: 'string' },
age: { type: 'number' },
hobbies: { type: 'array', items: { type: 'string' } },
},
};
const result = await model.generateContent({
contents: [{ role: 'user', parts: [{ text: 'Générez une fiche pour un personnage de fiction.' }] }],
generationConfig: {
responseMimeType: 'application/json',
responseSchema: schema,
},
});
const data = JSON.parse(result.response.text());
console.log(data);
Sécurité et règles Firebase
Protégez vos appels API avec Firebase Security Rules.
// Exemple de règle de sécurité pour limiter l'accès
// Dans Firebase Console -> Firestore Database -> Règles
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
Bonnes pratiques
- Utilisez des variables d'environnement pour stocker les clés API (
process.env.FIREBASE_API_KEY) - Limitez le nombre de tokens (maxOutputTokens) pour contrôler les coûts
- Gérez les erreurs avec
try/catch - Utilisez des timeouts pour éviter les blocages
Dépannage
- Erreur 403 : Vérifiez que le plan Blaze est activé
- Erreur 429 : Trop de requêtes, implémentez un délai
- Réponse vide : Assurez-vous que le modèle supporte le type d'entrée