Firebase Remote Config unterstützt jetzt die serverseitige Konfiguration mit dem Firebase Admin Node.js SDK ab Version 12.1.0 Diese neue Funktion ermöglicht um das Verhalten und die Konfiguration der serverseitigen Anwendungen, die Remote Config verwenden. Dazu gehören auch serverlose Implementierungen wie Cloud Functions.
Im Gegensatz zu Firebase-Client-SDKs, die eine clientspezifische Konfiguration abrufen aus der Vorlage Remote Config abgeleitet, wird die serverseitige Remote Config SDK lädt eine vollständige Remote Config-Vorlage herunter von Firebase. Ihr Server kann die Vorlage dann mit jedem Anforderung und nutzen ihre eigene Logik, um eine benutzerdefinierte Antwort mit sehr niedrige Latenz.
Mit dem serverseitigen Remote Config können Sie Folgendes tun:
- Konfigurationsparameter für Anwendungen definieren, die ausgeführt werden oder auf die zugegriffen wird über Ihren Server, was Anwendungsfälle wie die Remote-Konfiguration Parameter und Prompts des KI-Modells sowie andere Integrationen, um sicherzustellen, API-Schlüssel bleiben sicher.
- Parameter als Reaktion auf Änderungen in Ihrer Umgebung oder andere Anwendungsänderungen wie das Aktualisieren von LLM-Parametern und Modellendpunkten.
- Kontrollieren Sie die Kosten, indem Sie die APIs, die Ihr Server aufruft, remote aktualisieren.
- Sie können benutzerdefinierte Konfigurationen für Clients generieren, die auf Ihren Server zugreifen.
- Notieren Sie sich, welche Clients einen Parameterwert erhalten haben, und verwenden Sie diesen in Cloud Functions als Teil eines Berechtigungsüberprüfungssystems.
Sie können das serverseitige Remote Config in Cloud Run bereitstellen, Cloud Functions oder selbst gehostete Serverumgebungen.
Hinweis
Folgen Sie der Anleitung unter Firebase Admin SDK zu Ihrem Server, um ein Firebase-Projekt zu erstellen, Projekt erstellen, ein Dienstkonto einrichten und das Firebase Admin Node.js SDK zum auf Ihrem Server.
Schritt 1: Firebase Admin Node.js SDK initialisieren und API-Anfragen autorisieren
Wenn Sie das Admin SDK ohne Parameter initialisieren, verwendet das SDK Google
Anwendungsstandard
Anmeldedaten
und liest Optionen aus der GOOGLE_APPLICATION_CREDENTIALS
-Umgebung
. So initialisieren Sie beispielsweise das SDK und fügen Remote Config hinzu:
import { initializeApp } from "firebase-admin/app";
import { getRemoteConfig } from "firebase-admin/remote-config";
// Initialize Firebase
const firebaseApp = initializeApp();
Schritt 2: Standardparameterwerte für die Serveranwendung ermitteln
Identifizieren Sie die Variablen in Ihrer App, die dynamisch aktualisiert werden sollen. Remote Config Überlegen Sie dann, welche Variablen standardmäßig in Ihre Anwendung und ihre Standardwerte. Dadurch wird sichergestellt, wird Ihre Anwendung auch dann erfolgreich ausgeführt, Back-End-Server Remote Config ist unterbrochen.
Wenn Sie z. B. eine Serveranwendung schreiben, die eine können Sie einen Standardmodellnamen, die Präambel des Prompts und einer generativen KI-Konfiguration wie die folgende:
Parametername | Beschreibung | Typ | Standardwert |
---|---|---|---|
model_name |
Modell-API-Name | String | gemini-1.5-pro |
preamble_prompt
|
Voranstellen auffordern für die Nutzenden Suchanfrage | String | 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
|
Zu sendende Parameter auf das Modell | JSON |
{"stopSequences":
["I hope this
helps"],
"temperature":
0.7,
"maxOutputTokens":
512, "topP": 0.1,
"topK": 20} |
Schritt 3: Serveranwendung konfigurieren
Nachdem Sie die Parameter festgelegt haben, die Sie mit Remote Config, konfigurieren Sie Ihre Anwendung so, dass Standardwerte festgelegt werden, rufen Sie sie ab. die serverspezifische Vorlage Remote Config und verwenden Sie deren Werte. Die In den folgenden Schritten wird beschrieben, wie Sie Ihre Node.js-Anwendung konfigurieren.
Rufen Sie die Vorlage auf und laden Sie sie.
// Initialize server-side Remote Config const rc = getRemoteConfig(firebaseApp); const template = rc.initServerTemplate(); // Load Remote Config await template.load();
Wenn du Node.js in einer Cloud Functions verwendest, kannst du die asynchrone
getServerTemplate
verwenden, um die Vorlage in einem einzigen Schritt abzurufen und zu laden:// Initialize server-side Remote Config const rc = getRemoteConfig(firebaseApp); const template = await rc.getServerTemplate();
Um sicherzustellen, dass Ihre Anwendung auch dann erfolgreich ausgeführt wird, wenn ihre Verbindung zu der Remote Config-Backend-Server unterbrochen ist, fügen Sie Standardwerte hinzu für auf Ihre App übertragen. Fügen Sie dazu ein
defaultConfig
in Ihr VorlagenfunktioninitServerTemplate
odergetServerTemplate
: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();
Nachdem die Vorlage geladen wurde, verwenden Sie
template.evaluate()
, um Parameter und aus der Vorlage:// Add template parameters to config const config = template.evaluate();
Optional: Wenn Sie in Ihrer Remote Config-Vorlage Prozentsatzbedingungen festlegen, definieren und geben Sie den
randomizationId
an, mit dem Sie die Bedingungen in dertemplate.evaluate()
-Funktion bewerten möchten.Beispielsweise können Sie eine Firebase-Installation ID als
randomizationId
oder eine User-ID, um sicherzustellen, wird Ihr Server der richtigen zufällig ausgewählten Gruppe hinzugefügt. Die ist das folgende Beispiel ein einfaches Beispiel. Sie können jedoch Ihren Server, um verschiedenerandomizationIds
für unterschiedlichen Client zu generieren um sicherzustellen, dass den Nutzern konsistente Werte von der Remote Config auf Grundlage ihrer Zugehörigkeit in Prozentbedingung Gruppen.Weitere Informationen zu Prozentsatzbedingungen finden Sie unter Nutzer in zufälligen Prozentsatz.
// 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 });
Als Nächstes extrahieren Sie die benötigten Parameterwerte aus der Konfigurationskonstante. Verwenden Sie
getters
, um die Werte aus Remote Config in das erwartete Format umzuwandeln Format. Die folgenden Typen werden unterstützt:- Boolesch:
getBoolean
- Objekt:
getValue
- Nummer:
getNumber
- String:
getString
Wenn Sie zum Beispiel die Implementierung von Vertex AI auf Ihrem Server und die Modell- und Modellparameter ändern möchten, können Sie Parameter für
model_name
undgenerationConfig
konfigurieren. Hier ist ein Beispiel für den Zugriff auf die Werte von 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}`;
- Boolesch:
Wenn Ihr Server im Gegensatz zu einer serverlosen Umgebung lange läuft, verwenden Sie
setInterval
, um die Vorlage regelmäßig neu zu laden, damit Sie regelmäßig die aktuellste Vorlage vom Remote Config-Server abrufen.
Schritt 4: Serverspezifische Parameterwerte in Remote Config festlegen
Erstellen Sie als Nächstes eine Remote Config-Servervorlage, konfigurieren Sie Parameter und Werte, die Sie in Ihrer App verwenden können.
So erstellen Sie eine serverspezifische Remote Config-Vorlage:
- Öffnen Sie die Seite Remote Config Parameter der Firebase Console und wählen Sie in der Auswahl Client/Server die Option Server aus.
- Definieren Sie Remote Config-Parameter mit denselben Namen und Datentypen wie
Parameter, die Sie in Ihrer App definiert haben,
und stellen Werte bereit. Diese
überschreiben die
defaultConfig
, die Sie unter Konfigurieren des Serveranwendung ausgeführt, wenn Sie die und weisen Sie diese Werte Ihren Variablen zu. - Legen Sie optional Prozentbedingungen fest, um einen Wert dauerhaft auf einen Zufallsstichprobe von Instanzen. Weitere Informationen zum Prozentsatz siehe Nutzer in zufälligen Prozentsatz.
- Wenn Sie mit dem Hinzufügen der Parameter fertig sind, klicken Sie auf Änderungen veröffentlichen.
- Prüfen Sie die Änderungen und klicken Sie noch einmal auf Änderungen veröffentlichen.
Schritt 5: Mit Cloud Functions oder Cloud Run bereitstellen
Wenn Ihre Serveranwendung unkompliziert und ereignisgesteuert ist, sollten Sie wie Sie Ihren Code mithilfe Cloud Functions Angenommen, Sie haben eine App mit Charakterdialogen, die von einer generativen KI-API (z. B. Google AI oder Vertex AI) unterstützt werden. In diesem Fall können Sie die Logik für die LLM-Auslieferung in einer Funktion hosten, die von Ihrer App bei Bedarf aufgerufen wird.
Eine Lösung, bei der Cloud Functions der 2. Generation mit serverseitigem Remote Config verwendet wird, finden Sie unter Serverseitiges Remote Config mit Cloud Functions und Vertex AI verwenden.
Weitere Informationen zum Bereitstellen Ihrer Anwendung mit Cloud Functions finden Sie unter Getränke gestartet: Schreiben, Testen und Bereitstellen der ersten Funktionen.
Beispiel für eine aufrufbare Funktion mit dem serverseitigen Remote Config und App Check mit Vertex AI Gemini API mit Remote Config anrufen und App Check.
Wenn Ihre Anwendung für eine lange Laufzeit angelegt ist (z. B. eine Webanwendung mit Assets) können Sie sich für Cloud Run entscheiden. Zum Bereitstellen Ihre Serveranwendung mit Cloud Run ausführen, folgen Sie der Anleitung unter Kurzanleitung: Node.js-Dienst zu Cloud Ausführen.
Weitere Informationen zu den besten Anwendungsfällen für Cloud Run und Cloud Functions, siehe Cloud Functions vs. Cloud Run: Verwendung eine über die Sonstiges.