Firebase Remote Config est désormais compatible avec la configuration côté serveur à l'aide du SDK Node.js Firebase Admin v12.1.0 ou version ultérieure. Cette nouvelle fonctionnalité vous permet de gérer de manière dynamique le comportement et la configuration des applications côté serveur à l'aide de Remote Config. Cela inclut les implémentations sans serveur telles que Cloud Functions.
Contrairement aux SDK client Firebase, qui extraient une configuration spécifique au client dérivé du modèle Remote Config, le côté serveur Le SDK Remote Config télécharge un modèle Remote Config complet depuis Firebase. Votre serveur peut ensuite évaluer le modèle à chaque requête entrante et utilise sa propre logique pour répondre aux requêtes personnalisées une latence très faible.
Avec Remote Config côté serveur, vous pouvez:
- Définissez les paramètres de configuration des applications exécutées sur ou accessibles via votre serveur, ce qui permet des cas d'utilisation tels que la configuration des paramètres, des requêtes et d'autres intégrations du modèle d'IA, pour vous assurer Les clés API sont sécurisées.
- d'ajuster les paramètres de façon dynamique en fonction des changements dans votre environnement ou d'autres modifications de l'application, comme la mise à jour des paramètres LLM et des points de terminaison du modèle.
- Contrôlez les coûts en mettant à jour à distance les API que votre serveur appelle.
- Générez des configurations personnalisées à la volée pour les clients ayant accès à vos Google Cloud.
- Enregistrez les clients qui ont reçu une valeur de paramètre et utilisez-la dans Cloud Functions dans le cadre d'un système de vérification des droits d'accès.
Vous pouvez déployer Remote Config côté serveur sur Cloud Run, Cloud Functions, ou environnements de serveurs auto-hébergés.
Avant de commencer
Suivez les instructions de l'article Ajouter le SDK Firebase Admin à votre serveur pour créer une instance configurer un compte de service et ajouter le SDK Firebase Admin Node.js au projet votre serveur.
Étape 1: Initialiser le SDK Firebase Admin Node.js et autoriser les requêtes API
Lorsque vous initialisez le SDK Admin sans paramètre, il utilise les
Paramètre par défaut de l'application
Identifiants
et lit les options de l'environnement GOOGLE_APPLICATION_CREDENTIALS
. Par exemple, pour initialiser le SDK et ajouter Remote Config:
import { initializeApp } from "firebase-admin/app";
import { getRemoteConfig } from "firebase-admin/remote-config";
// Initialize Firebase
const firebaseApp = initializeApp();
Étape 2: Identifier les valeurs de paramètre par défaut pour votre application de serveur
Identifier les variables de votre application avec lesquelles vous souhaitez effectuer une mise à jour dynamique Remote Config Ensuite, déterminez quelles variables doivent être définies par défaut dans votre application et quelles doivent être leurs valeurs par défaut. Cela garantit que votre application s'exécute correctement, même si sa connexion au Le serveur backend Remote Config est interrompu.
Par exemple, si vous écrivez une application de serveur qui gère vous pouvez définir un nom de modèle par défaut, un préambule d'invite, et une configuration d'IA générative, comme celle-ci:
Nom du paramètre | Description | Type | Valeur par défaut |
---|---|---|---|
model_name |
Nom de l'API du modèle | Chaîne | gemini-1.5-pro |
preamble_prompt
|
Inviter à ajouter un préfixe au compte de l'utilisateur requête | Chaîne | I'm a
developer who
wants to learn
about Firebase and
you are a helpful
assistant who
knows everything
there is to know
about Firebase! |
generation_config
|
Paramètres à envoyer au modèle | JSON |
{"stopSequences":
["I hope this
helps"],
"temperature":
0.7,
"maxOutputTokens":
512, "topP": 0.1,
"topK": 20} |
Étape 3: Configurez votre application de serveur
Après avoir déterminé les paramètres à utiliser Remote Config, configurez votre application pour définir les valeurs par défaut, récupérez le modèle Remote Config propre au serveur et utiliser ses valeurs. La Les étapes suivantes décrivent comment configurer votre application Node.js.
Accédez au modèle et chargez-le.
// Initialize server-side Remote Config const rc = getRemoteConfig(firebaseApp); const template = rc.initServerTemplate(); // Load Remote Config await template.load();
Si vous utilisez Node.js dans un Cloud Functions, vous vous pouvez utiliser la commande
getServerTemplate
asynchrone pour récupérer et charger en une seule étape:// Initialize server-side Remote Config const rc = getRemoteConfig(firebaseApp); const template = await rc.getServerTemplate();
Pour vous assurer que votre application s'exécute correctement même si sa connexion au serveur backend Remote Config est interrompue, ajoutez des valeurs par défaut pour chaque paramètre à votre application. Pour ce faire, ajoutez un
defaultConfig
dans votre fonction de modèleinitServerTemplate
ougetServerTemplate
:const template = rc.initServerTemplate({ defaultConfig: { model_name: "gemini-pro", generation_config: '{"stopSequences": [], "temperature": 0.7, "maxOutputTokens": 512, "topP": 0.1, "topK": 20}', preamble_prompt: "I'm a developer who wants to learn about Firebase and you are a helpful assistant who knows everything there is to know about Firebase!" }, }); // Load Remote Config await template.load();
Une fois le modèle chargé, utilisez
template.evaluate()
pour importer les paramètres et les valeurs du modèle :// Add template parameters to config const config = template.evaluate();
Si vous définissez un pourcentage dans votre modèle Remote Config, définissez et fournissez le
randomizationId
que vous souhaitez utiliser pour évaluer vos conditionstemplate.evaluate()
.Par exemple, vous pouvez définir une installation Firebase ID comme
randomizationId
, ou ID utilisateur, pour garantir que chaque utilisateur les contacts de votre serveur sont ajoutés au groupe aléatoire approprié. La L'exemple suivant est un exemple de base, mais vous pouvez configurer votre serveur afin de générer desrandomizationIds
différents pour différents clients de requêtes, pour garantir que les utilisateurs reçoivent des valeurs cohérentes Remote Config en fonction de leur appartenance à un pourcentage groupes.Pour en savoir plus sur les conditions de pourcentage, consultez Utilisateur dans un pourcentage aléatoire.
// Set the randomizationId const randomizationId = "2ac93c28-c459-4760-963d-a3974ec26c04" // Add template parameters to `config`. Evaluates the // template and returns the parameter value assigned to // the group assigned to the {randomizationId}. const config = template.evaluate({ randomizationId });
Ensuite, extrayez les valeurs de paramètre dont vous avez besoin de la constante de configuration. Utilisez
getters
pour caster les valeurs de Remote Config dans le format attendu. Les types de valeurs suivants sont acceptés :- Booléen:
getBoolean
- Objet :
getValue
- Numéro :
getNumber
- Chaîne :
getString
Par exemple, si vous à implémenter Vertex AI sur votre serveur et que vous souhaitez modifier le modèle et ses paramètres, configurer des paramètres pour
model_name
etgenerationConfig
. Voici un exemple d'accès aux valeurs de Remote Config:// Replace defaults with values from Remote Config. const generationConfig = JSON.parse( config.getString('generation_config')); const is_ai_enabled = config.getBool('is_ai_enabled'); const model = config.getString('model_name'); // Generates a prompt comprised of the Remote Config // parameter and prepends it to the user prompt const prompt = `${config.getString('preamble_prompt')} ${req.query.prompt}`;
- Booléen:
Si votre serveur fonctionne de longue durée par opposition à un environnement sans serveur, Utilisez
setInterval
pour actualiser régulièrement le modèle afin de vous assurer que vous récupérez régulièrement le modèle le plus récent Remote Config.
Étape 4: Définissez les valeurs de paramètres spécifiques au serveur dans Remote Config
Créez ensuite un modèle Remote Config de serveur, puis configurez les paramètres et à utiliser dans votre application.
Pour créer un modèle Remote Config spécifique au serveur :
- Ouvrez les paramètres Remote Config de la console Firebase. et, à partir de la Sélectionnez Client/Serveur, puis Serveur.
- Définissez les paramètres Remote Config avec les mêmes noms et types de données que
les paramètres que vous avez définis
dans votre application et fournissent des valeurs. Ces valeurs remplaceront l'
defaultConfig
que vous avez définie dans Configurer votre application serveur lorsque vous extrayez et évaluez le modèle, puis attribuez ces valeurs à vos variables. - Vous pouvez également définir des conditions de pourcentage pour appliquer de manière persistante une valeur à un échantillon aléatoire d'instances. Pour en savoir plus sur les pourcentages consultez la section Utilisateur de manière aléatoire pourcentage.
- Une fois les paramètres ajoutés, cliquez sur Publier les modifications.
- Examinez les modifications, puis cliquez à nouveau sur Publier les modifications.
Étape 5: Effectuez le déploiement avec Cloud Functions ou Cloud Run
Si votre application serveur est légère et basée sur des événements, envisagez de déployer votre code à l'aide de Cloud Functions. Par exemple, Supposons que vous ayez une application qui inclut le dialogue des personnages grâce à l'IA générative (par exemple, Google AI ou Vertex AI). Dans ce cas, vous pourriez héberger votre logique d'inférence LLM dans une fonction que votre application appelle à la demande.
Pour trouver une solution qui utilise Cloud Functions de 2e génération avec Remote Config côté serveur, consultez Utiliser Remote Config côté serveur avec Cloud Functions et Vertex AI
Pour en savoir plus sur le déploiement de votre application avec Cloud Functions, consultez la section Obtenir vos premiers pas: écrire, tester et déployer vos fonctions.
Essayez un exemple de fonction appelable avec Remote Config côté serveur et App Check à Appelez Vertex AI Gemini API avec Remote Config et App Check.
Si votre application est conçue pour une exécution longue (par exemple, une application Web avec , vous pouvez envisager d'utiliser Cloud Run. Pour déployer votre application de serveur avec Cloud Run, suivez le guide Guide de démarrage rapide: déployer Service Node.js vers Cloud Exécuter.
Pour en savoir plus sur les meilleurs cas d'utilisation de Cloud Run et Cloud Functions, consultez Comparaison entre Cloud Functions et Cloud Run: quand l'utiliser ? un sur le autre.