Firebase Remote Config ora supporta la configurazione lato server utilizzando l'SDK Node.js Firebase Admin 12.1.0 e versioni successive. Questa nuova funzionalità ti consente di gestire dinamicamente il comportamento e la configurazione delle applicazioni lato server utilizzando Remote Config. Ciò include le implementazioni serverless come Cloud Functions.
A differenza degli SDK client Firebase, che recuperano una configurazione specifica per il client deriva dal modello Remote Config, lato server L'SDK Remote Config scarica un modello Remote Config completo da Firebase. Il server può quindi valutare il modello con ogni richiesta in arrivo e utilizzare la propria logica per fornire una risposta personalizzata con una latenza molto bassa. Puoi utilizzare la modalità condizioni per controllare e personalizzare le risposte in base a percentuali casuali e clienti attributi definiti in indicatori personalizzati.
Con la funzionalità Remote Config lato server, puoi:
- Definisci i parametri di configurazione per le applicazioni in esecuzione o a cui si accede tramite il tuo server, consentendo casi d'uso come la configurazione remota parametri del modello di IA, prompt e altre integrazioni, per garantire Le chiavi API rimangono al sicuro.
- Modifica dinamicamente i parametri in risposta alle modifiche dell'ambiente o ad altre modifiche dell'applicazione, ad esempio l'aggiornamento dei parametri LLM e degli endpoint del modello.
- Controlla i costi aggiornando da remoto le API chiamate dal server.
- Genera immediatamente configurazioni personalizzate per i clienti che accedono ai tuoi server web.
- Registra i client che hanno ricevuto un valore parametro e utilizzalo in Cloud Functions nell'ambito di un sistema di verifica dei diritti.
Puoi eseguire il deployment di Remote Config lato server su Cloud Run, Cloud Functions o ambienti server self-hosted.
Prima di iniziare
Segui le istruzioni riportate in Aggiungere l'SDK Firebase Admin al server per creare un progetto Firebase, configurare un account di servizio e aggiungere l'SDK Node.js Firebase Admin al server.
Passaggio 1: inizializza l'SDK Firebase Admin Node.js e autorizza le richieste API
Quando l'SDK Admin viene inizializzato senza parametri, l'SDK utilizza le credenziali predefinite dell'applicazione Google e legge le opzioni dalla variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS
. Ad esempio, per inizializzare l'SDK e aggiungere Remote Config:
import { initializeApp } from "firebase-admin/app";
import { getRemoteConfig } from "firebase-admin/remote-config";
// Initialize Firebase
const firebaseApp = initializeApp();
Passaggio 2: identifica i valori dei parametri predefiniti per la tua applicazione server
Identifica le variabili dell'app che vuoi aggiornare dinamicamente con Remote Config. Quindi, considera quali variabili devono essere impostate per impostazione predefinita la tua applicazione e i relativi valori predefiniti. Ciò garantisce che l'applicazione viene eseguita correttamente anche se la connessione Il server di backend Remote Config è interrotto.
Ad esempio, se scrivi un'applicazione server che gestisce una di IA generativa, puoi impostare un nome predefinito per il modello, un preambolo di prompt, e una configurazione di IA generativa, come la seguente:
Nome parametro | Descrizione | Tipo | Valore predefinito |
---|---|---|---|
model_name |
Nome API del modello | Stringa | gemini-1.5-pro |
preamble_prompt
|
Prompt da anteporre alla query dell'utente | Stringa | 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
|
Parametri da inviare al modello | JSON |
{"stopSequences":
["I hope this
helps"],
"temperature":
0.7,
"maxOutputTokens":
512, "topP": 0.1,
"topK": 20} |
Passaggio 3: configura l'applicazione server
Dopo aver determinato i parametri da utilizzare con Remote Config, configura l'applicazione per impostare valori predefiniti, recuperare il modello Remote Config specifico del server e utilizzare i suoi valori. I passaggi riportati di seguito descrivono come configurare l'applicazione Node.js.
Accedi al modello e caricalo.
// Initialize server-side Remote Config const rc = getRemoteConfig(firebaseApp); const template = rc.initServerTemplate(); // Load Remote Config await template.load();
Se utilizzi Node.js in un Cloud Functions, puoi utilizzare
getServerTemplate
asincrono per recuperare e caricare il modello in un unico passaggio:// Initialize server-side Remote Config const rc = getRemoteConfig(firebaseApp); const template = await rc.getServerTemplate();
Per assicurarti che l'applicazione venga eseguita correttamente anche se la sua connessione a il server di backend Remote Config è stato interrotto, aggiungi valori predefiniti per ogni parametro alla tua app. Per farlo, aggiungi un
defaultConfig
all'interno di Funzione modelloinitServerTemplate
ogetServerTemplate
: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()
Dopo aver caricato il modello, usa
template.evaluate()
per importare parametri e valori dal modello:// Add template parameters to config const config = template.evaluate();
Facoltativamente, se imposti condizioni nel tuo modello Remote Config, definisci e fornisci il i valori desiderati:
- Se utilizzi la percentuale
condizioni,
aggiungi il
randomizationId
che vuoi utilizzare per valutare condizioni all'interno della funzionetemplate.evaluate()
. - Se utilizzi le impostazioni personalizzate indicatori, definiscono gli attributi e i loro valori. Gli indicatori personalizzati sono disponibili con SDK Firebase Admin Node.js 12.5.0 e successivi.
Ad esempio, puoi impostare un ID installazione di Firebase come
randomizationId
o un ID utente per assicurarti che ogni utente che contatta il tuo server venga aggiunto al gruppo randomizzato appropriato,version
come indicatore personalizzato per scegliere come target versioni client specifiche eplatform
come indicatore personalizzato per scegliere come target la piattaforma client.Per ulteriori informazioni sulle condizioni, consulta Tipi di regole di condizione.
// Add template parameters to `config`. Evaluates the // template and returns the parameter value assigned to // the group assigned to the {randomizationId} and version. const config = template.evaluate({ randomizationId: "2ac93c28-c459-4760-963d-a3974ec26c04", version: "1.0", platform: "Android" });
- Se utilizzi la percentuale
condizioni,
aggiungi il
Successivamente, estrai i valori parametro di cui hai bisogno dalla costante di configurazione. Utilizza
getters
per eseguire il casting dei valori da Remote Config nel formato previsto. Sono supportati i seguenti tipi:- Booleano:
getBoolean
- Oggetto:
getValue
- Numero:
getNumber
- Stringa:
getString
Ad esempio, se di implementare Vertex AI server web e modificare il modello e i relativi parametri, è consigliabile configurare i parametri per
model_name
egenerationConfig
. Ecco un esempio di come accedere ai valori di 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}`;
- Booleano:
Se il tuo server è a lunga esecuzione, al contrario di un ambiente serverless, utilizza
setInterval
per ricaricare periodicamente il modello e assicurarti che recupera periodicamente il modello più aggiornato Server Remote Config.
Passaggio 4: imposta i valori dei parametri specifici del server in Remote Config
Poi crea un modello Remote Config del server e configura i parametri e i valori da utilizzare nella tua app.
Per creare un modello Remote Config specifico per il server:
- Apri i parametri della console Firebase Remote Config pagina di destinazione e, Selettore Client/Server, seleziona Server.
- Definisci i parametri Remote Config con gli stessi nomi e tipi di dati di
i parametri che hai definito nella tua app e forniscono i valori. Questi
i valori andranno a sostituire il valore
defaultConfig
impostato in Configura dell'applicazione server web quando recuperi e valuti i valori modello e assegna questi valori alle variabili. - Facoltativamente, imposta le condizioni per applicare in modo permanente i valori a un un campione di istanze o indicatori personalizzati che definisci. Per ulteriori informazioni sulle condizioni, consulta Regola condizione di classificazione.
- Dopo aver aggiunto i parametri, fai clic su Pubblica modifiche.
- Esamina le modifiche e fai di nuovo clic su Pubblica modifiche.
Passaggio 5: esegui il deployment con Cloud Functions o Cloud Run
Se la tua applicazione server è leggera e basata su eventi, ti consigliamo di eseguire il deployment del codice utilizzando Cloud Functions. Ad esempio: supponiamo che tu abbia un'app che include il dialogo dei personaggi basata su un'IA generativa API (ad esempio, Google AI o Vertex AI). In questo caso, potresti ospitare della logica di pubblicazione dei tuoi LLM in una funzione che la tua app chiama on demand.
Per lavorare a una soluzione che utilizza Cloud Functions di 2a generazione con Remote Config lato server, consulta Utilizza Remote Config lato server con Cloud Functions e Vertex AI
Per scoprire di più sul deployment dell'app con Cloud Functions, consulta la sezione Iniziare: scrivere, testare e eseguire il deployment delle prime funzioni.
Prova una funzione chiamabile di esempio con Remote Config e App Check lato server in Chiama Vertex AI Gemini API con Remote Config e App Check.
Se la tua applicazione è pensata per essere a lunga esecuzione (ad esempio, un'app web con asset), potresti prendere in considerazione Cloud Run. Per eseguire il deployment della tua app server con Cloud Run, segui la guida Guida rapida: esegui il deployment di un servizio Node.js su Cloud Run.
Per ulteriori informazioni sui migliori casi d'uso di Cloud Run e Cloud Functions, consulta Cloud Functions rispetto a Cloud Run: quando utilizzare l'attributo uno sopra altri.