Zdalna konfiguracja Firebase obsługuje teraz konfigurację po stronie serwera za pomocą pakietu Firebase Admin Node.js SDK w wersji 12.1.0 lub nowszej. Ta nowa funkcja aby dynamicznie zarządzać działaniem i konfiguracją stron po stronie serwera w aplikacjach za pomocą Zdalnej konfiguracji. Obejmuje to implementacje bezserwerowe takich jak Cloud Functions.
W odróżnieniu od pakietów SDK klienta Firebase, które pobierają konfigurację zależną od klienta pochodzą z szablonu Zdalnej konfiguracji, czyli elementu dostępnego po stronie serwera Pakiet SDK Zdalnej konfiguracji pobiera kompletny szablon Zdalnej konfiguracji. 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 Zdalnej konfiguracji 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.
- dynamicznie dostosowywać parametry w odpowiedzi na zmiany w środowisku lub innych zmian w aplikacjach, takich jak 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ć Zdalną konfigurację po stronie serwera w Cloud Run, Cloud Functions lub własnych środowisk serwerowych.
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 na przykład zainicjować pakiet SDK i dodać Zdalną konfigurację:
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 serwerowej
Określ zmienne w aplikacji, które chcesz dynamicznie aktualizować Zdalna konfiguracja. 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 Działanie serwera backendu Zdalnej konfiguracji zostało przerwane.
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ć Zdalna konfiguracja, skonfiguruj w swojej aplikacji wartości domyślne, pobierz z szablonu Zdalnej konfiguracji konkretnego serwera i zastosować jego wartości. z poniższych kroków dowiesz się, jak skonfigurować aplikację Node.js.
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 Cloud Functions, może używać asynchronicznego
getServerTemplate
do pobierania i wczytywania wystarczy wykonać jedną czynność:// Initialize server-side Remote Config const rc = getRemoteConfig(firebaseApp); const template = await rc.getServerTemplate();
Aby zapewnić prawidłowe działanie aplikacji nawet wtedy, gdy jest połączona z działanie serwera backendu Zdalnej konfiguracji, dodaj wartości domyślne dla poszczególnych parametrów aplikacji. Aby to zrobić, dodaj
defaultConfig
wewnątrz Funkcja szablonuinitServerTemplate
lubgetServerTemplate
: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();
Po wczytaniu szablonu użyj narzędzia
template.evaluate()
, aby zaimportować parametry i wartości z szablonu:// Add template parameters to config const config = template.evaluate();
Opcjonalnie, jeśli ustawisz procent warunki w szablonie Zdalnej konfiguracji zdefiniuj i podaj
randomizationId
którego chcesz użyć do oceny swoich chorób wtemplate.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ówrandomizationIds
dla różnych klientów żądań, aby użytkownicy otrzymywali spójne wartości z Zdalna konfiguracja 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 });
Następnie wyodrębnij potrzebne wartości parametrów ze stałej konfiguracji. Używaj
getters
w celu rzutowania wartości ze Zdalnej konfiguracji do oczekiwanego . 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
igenerationConfig
. Oto przykład dostępu do wartości Zdalnej konfiguracji:// 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}`;
- Wartość logiczna:
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 Serwer Zdalnej konfiguracji.
Krok 4. Ustaw wartości parametrów serwera w Zdalnej konfiguracji
Następnie utwórz szablon Zdalnej konfiguracji serwera i skonfiguruj parametry oraz wartości do wykorzystania w aplikacji.
Aby utworzyć szablon Zdalnej konfiguracji dla konkretnego serwera:
- Otwórz parametry Zdalnej konfiguracji konsoli Firebase. oraz W selektorze Klient/serwer kliknij Serwer.
- Zdefiniuj parametry Zdalnej konfiguracji 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. - 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ą.
- Po dodaniu parametrów kliknij Opublikuj zmiany.
- 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.
Aby skorzystać z rozwiązania, które wykorzystuje funkcje Cloud Functions 2 generacji, Zdalna konfiguracja po stronie serwera, zobacz Używaj Zdalnej konfiguracji po stronie serwera z Cloud Functions oraz Vertex AI.
Aby dowiedzieć się więcej o wdrażaniu aplikacji za pomocą Cloud Functions, zapoznaj się z artykułem rozpoczęcie: pisanie, testowanie i wdrażanie pierwszej
Wypróbuj przykładową funkcję wywoływaną za pomocą Zdalnej konfiguracji po stronie serwera Sprawdzanie aplikacji na stronie Wywoływanie interfejsu Vertex AI Gemini API za pomocą Zdalnej konfiguracji. Sprawdzanie aplikacji.
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.
Aby dowiedzieć się więcej o najlepszych przypadkach użycia Cloud Run i w Cloud Functions znajdziesz porównanie Cloud Functions, a Cloud Run: kiedy używać jeden w czasie inna.