Używaj Zdalnej konfiguracji w środowiskach serwera

Firebase Remote Config obsługuje teraz konfigurację po stronie serwera za pomocą pakietu Admin SDK Firebase dla Node.js w wersji 12.1.0 lub nowszej. Dzięki tej nowej funkcji możesz dynamicznie zarządzać zachowaniem i konfiguracją aplikacji po stronie serwera za pomocą pakietu Remote Config. Obejmuje to implementacje bezserwerowe np. Cloud Functions.

W odróżnieniu od pakietów SDK klienta Firebase, które pobierają konfigurację zależną od klienta pochodzą z szablonu Remote Config, czyli elementu znajdującego się po stronie serwera Pakiet SDK Remote Config pobiera kompletny szablon Remote Config z Firebase. Serwer może następnie ocenić szablon z każdym żądania przychodzącego i używają własnej logiki do obsługi dostosowanej odpowiedzi, bardzo małe opóźnienie.

Dzięki Remote Config po stronie serwera możesz:

  • Zdefiniuj parametry konfiguracji dla aplikacji uruchomionych lub używanych przez serwer, co pozwala na przykład na zdalne Parametry modelu AI i prompty oraz inne integracje, aby zapewnić Klucze interfejsu API są bezpieczne.
  • Dynamiczne dostosowywanie parametrów w odpowiedzi na zmiany w środowisku lub inne zmiany w aplikacji, np. aktualizowanie parametrów LLM i punktów końcowych modelu.
  • Kontroluj koszty przez zdalne aktualizowanie interfejsów API wywoływanych przez serwer.
  • Generuj na bieżąco niestandardowe konfiguracje dla klientów, którzy mają dostęp do serwera.
  • Zanotuj, którzy klienci otrzymali wartość parametru, i użyj jej w Cloud Functions w ramach systemu weryfikacji uprawnień.

Możesz wdrożyć Remote Config po stronie serwera w Cloud Run, Cloud Functions lub własne środowiska serwerowe.

Zanim zaczniesz

Wykonaj instrukcje z artykułu Dodawanie pakietu Firebase Admin SDK do , aby utworzyć Firebase. projekt, skonfigurować konto usługi i dodać pakiet SDK Firebase Admin Node.js serwera.

Krok 1. Zainicjuj pakiet SDK Firebase Admin Node.js i autoryzuj żądania do interfejsu API

Jeśli zainicjujesz pakiet Admin SDK bez parametrów, pakiet będzie używać Google Ustawienie domyślne aplikacji Dane logowania i odczytuje opcje ze środowiska GOOGLE_APPLICATION_CREDENTIALS . Aby np. zainicjować pakiet SDK i dodać do niego Remote Config:

import { initializeApp } from "firebase-admin/app";
import { getRemoteConfig } from "firebase-admin/remote-config";

// Initialize Firebase
const firebaseApp = initializeApp();

Krok 2. Określ domyślne wartości parametrów aplikacji serwera

Określ zmienne w aplikacji, które chcesz dynamicznie aktualizować Remote Config Następnie zastanów się, które zmienne należy ustawić domyślnie w Twojej aplikacji i ich wartości domyślne. Dzięki temu aplikacja działa nawet wtedy, gdy jej połączenie Serwer backendu Remote Config został przerwany.

Jeśli na przykład piszesz aplikację serwerową, która zarządza funkcji generatywnej AI, możesz ustawić domyślną nazwę modelu, wstęp i konfigurację generatywnej AI, taką jak poniżej:

Nazwa parametru Opis Typ Wartość domyślna
model_name Nazwa interfejsu Model API Ciąg znaków gemini-1.5-pro
preamble_prompt Prompt na początku w zapytanie Ciąg znaków 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 Parametry do wysłania do modelu JSON {"stopSequences": ["I hope this helps"], "temperature": 0.7, "maxOutputTokens": 512, "topP": 0.1, "topK": 20}

Krok 3. Skonfiguruj aplikację serwera

Po określeniu parametrów, których chcesz używać Remote Config, skonfiguruj aplikację, aby ustawiała wartości domyślne, pobierz używany z serwerem szablon Remote Config i używaj jego wartości. Poniższe kroki opisują konfigurowanie aplikacji Node.js.

  1. Uzyskaj dostęp do szablonu i wczytaj go.

    // Initialize server-side Remote Config
    const rc = getRemoteConfig(firebaseApp);
    const template = rc.initServerTemplate();
    
    // Load Remote Config
    await template.load();
    

    Jeśli używasz Node.js w ramach Cloud Functions, możesz użyć asynchronicznego getServerTemplate, aby pobrać i wczytać szablon w jednym kroku:

    // Initialize server-side Remote Config
    const rc = getRemoteConfig(firebaseApp);
    const template = await rc.getServerTemplate();
    
  2. Aby zapewnić prawidłowe działanie aplikacji nawet wtedy, gdy jest połączona z działanie serwera backendu Remote Config zostało przerwane, dodaj wartości domyślne dla: poszczególnych parametrów aplikacji. Aby to zrobić, dodaj defaultConfig wewnątrz Funkcja szablonu initServerTemplate lub getServerTemplate:

    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();
    
  3. Po załadowaniu szablonu użyj polecenia template.evaluate(), aby zaimportować parametry i wartości z szablonu:

    // Add template parameters to config
    const config = template.evaluate();
    
  4. Opcjonalnie, jeśli ustawisz procent warunki w szablonie Remote Config zdefiniuj i podaj randomizationId którego chcesz użyć do oceny swoich chorób w funkcji template.evaluate().

    Możesz np. ustawić instalację Firebase Identyfikator jako identyfikator randomizationId, czyli identyfikator użytkownika, kontakt z Twoim serwerem, który zostanie dodany do odpowiedniej losowej grupy. to jest podstawowy przykład, ale możesz skonfigurować serwer do generowania różnych elementów randomizationIds dla różnych klientów żądań, aby użytkownicy otrzymywali spójne wartości z Remote Config na podstawie procentu członkostwa grup.

    Więcej informacji o warunkach procentowych znajdziesz w sekcji Użytkownik losowo wartość procentową.

    // 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
    });
    
  5. Następnie wyodrębnij potrzebne wartości parametrów ze stałej konfiguracji. Użyj funkcji getters, aby zamienić wartości z elementu Remote Config na oczekiwany format. Obsługiwane są te typy:

    • Wartość logiczna: getBoolean
    • Obiekt: getValue
    • Numer: getNumber
    • Ciąg znaków: getString

    Jeśli na przykład jesteś wdrożenie Vertex AI serwer i chcesz zmienić parametry modelu i modelu, konfigurować parametry model_name i generationConfig. Oto przykład uzyskania dostępu do wartości parametru 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}`;
    
  6. Jeśli serwer działa od dawna w przeciwieństwie do środowiska bezserwerowego, używaj setInterval do okresowego ponownego ładowania szablonu, aby mieć pewność, okresowo pobierasz najnowszy szablon z Remote Config.

Krok 4. Ustaw wartości parametrów serwera w Remote Config

Następnie utwórz szablon Remote Config serwera i skonfiguruj parametry oraz wartości do wykorzystania w aplikacji.

Aby utworzyć szablon Remote Config na poziomie serwera:

  1. Otwórz parametry konsoli Firebase Remote Config. oraz W selektorze Klient/serwer wybierz Serwer.
  2. Zdefiniuj parametry Remote Config o takich samych nazwach i typach danych jak parametry zdefiniowane w aplikacji i podane w nich wartości. Te zastąpią defaultConfig ustawioną w Skonfiguruj aplikacji serwera podczas pobierania i oceniania i przypisz te wartości do zmiennych.
  3. Opcjonalnie możesz ustawić warunki procentowe, by na stałe zastosować wartość do losową próbkę instancji. Więcej informacji o wartości procentowej warunków, patrz sekcja Użytkownik losowo wartość procentową.
  4. Po dodaniu parametrów kliknij Opublikuj zmiany.
  5. Sprawdź zmiany i ponownie kliknij Opublikuj zmiany.

Krok 5. Wdróż za pomocą Cloud Functions lub Cloud Run

Jeśli Twoja aplikacja serwerowa jest prostsza i steruje zdarzeniami, wdrażania kodu za pomocą Cloud Functions Przykład: Załóżmy, że masz aplikację, która zawiera dialogi postaci generowane przez generatywną AI API (na przykład Google AI lub Vertex AI). W takim przypadku możesz hostować logikę udostępniania LLM w funkcji wywoływanej przez aplikację na żądanie.

Jeśli Twoja aplikacja ma działać długo (np. aplikacja internetowa z zasobów), rozważ zastosowanie Cloud Run. Aby wdrożyć aplikacji serwera za pomocą Cloud Run, postępuj zgodnie z instrukcjami z przewodnika Szybki start: wdrażanie Z usługi Node.js do Cloud Uruchom.

Więcej informacji o najlepszych zastosowaniach Cloud Run i Cloud Functions znajdziesz w artykule Cloud Functions a Cloud Run: kiedy używać jednego z tych rozwiązań.