Sunucu ortamlarında Remote Config'i kullanın

Firebase Remote Config artık Firebase Yöneticisi Node.js SDK'sı v12.1.0+. Bu yeni özellik sayesinde sunucu tarafı yapılandırmasının davranış ve yapılandırmasını dinamik olarak veya uzaktan yapılandırmalarını kullanabilirsiniz. Buna, sunucusuz uygulamalar dahildir örneğin Cloud Functions.

İstemciye özel yapılandırma getiren Firebase istemci SDK'larından farklı olarak Remote Config şablonundan türetilir, Remote Config SDK, eksiksiz bir Remote Config şablonu indirir Firebase'den geliyor. Daha sonra sunucunuz şablonu her bir ve özel bir yanıt sunmak için kendi mantığını kullanarak gecikme olabilir.

Sunucu tarafı Remote Config ile şunları yapabilirsiniz:

  • üzerinde çalışan veya erişilen uygulamalar için yapılandırma parametrelerini tanımlayın uzaktan yapılandırma gibi kullanım alanlarına, Yapay zeka modeli parametreleri, istemler ve diğer entegrasyonlar sayesinde, API anahtarları güvende kalır.
  • Parametreleri ortamınızdaki değişikliklere göre dinamik olarak ayarlayın veya LLM parametrelerini ve model uç noktalarını güncelleme gibi diğer uygulama değişiklikleri hakkında bilgi edinebilirsiniz.
  • Sunucunuzun çağırdığı API'leri uzaktan güncelleyerek maliyetleri kontrol edin.
  • Hesabınıza erişen istemciler için anında özel yapılandırmalar oluşturun. sunucu.
  • Hangi müşterilerin parametre değeri aldığını kaydedin ve bunu Cloud Functions, yararlanma hakkı doğrulama sisteminin bir parçası olarak sunulur.

Cloud Run'da sunucu tarafı Remote Config'i dağıtabilir, Cloud Functions ya da kendi kendine barındırılan sunucu ortamlarında çalışır.

Başlamadan önce

Firebase Admin SDK'sını sunucu oluşturun bir hizmet hesabı oluşturun, ardından Firebase Admin Node.js SDK'sını .

1. adım: Firebase Admin Node.js SDK'sını başlatın ve API isteklerini yetkilendirin

Admin SDK'yı herhangi bir parametre olmadan başlattığınızda SDK Google Uygulama Varsayılanı Kimlik bilgileri ve GOOGLE_APPLICATION_CREDENTIALS ortamındaki seçenekleri okur değişkenine eklenmelidir. Örneğin, SDK'yı başlatmak ve Remote Config'i eklemek için:

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

// Initialize Firebase
const firebaseApp = initializeApp();

2. Adım: Sunucu uygulamanız için varsayılan parametre değerlerini tanımlayın

Uygulamanızda dinamik olarak güncellemek istediğiniz değişkenleri belirleyin Remote Config. Daha sonra, ve varsayılan değerlerinin ne olması gerektiği. Böylece proje daha ile bağlantısı olsa bile başarılı bir şekilde çalışır. Remote Config arka uç sunucusu kesintiye uğradı.

Örneğin, Search Console'da çalışan bir üretken yapay zeka işlevi için varsayılan bir model adı, istem önsözü veya ve aşağıdaki gibi bir üretken yapay zeka yapılandırması içerir:

Parametre adı Açıklama Tür Varsayılan değer
model_name Model API adı Dize gemini-1.5-pro
preamble_prompt Başa ekleme istemi kullanıcının sorgu Dize 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 Gönderilecek parametreler açıklamaya JSON {"stopSequences": ["I hope this helps"], "temperature": 0.7, "maxOutputTokens": 512, "topP": 0.1, "topK": 20}

3. Adım: Sunucu uygulamanızı yapılandırın

Birlikte kullanmak istediğiniz parametreleri belirledikten sonra Remote Config, uygulamanızı varsayılan değerleri ayarlayacak, getirilecek sunucuya özgü Remote Config şablonu ve değerlerini kullanın. İlgili içeriği oluşturmak için kullanılan Aşağıdaki adımlar Node.js uygulamanızı nasıl yapılandıracağınızı açıklar.

  1. Şablona erişip yükleyin.

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

    Node.js'yi bir Cloud Functions'da kullanıyorsanız öğesini getirmek ve yüklemek için eşzamansız getServerTemplate kullanabilirsiniz oluşturabilirsiniz:

    // Initialize server-side Remote Config
    const rc = getRemoteConfig(firebaseApp);
    const template = await rc.getServerTemplate();
    
  2. ile bağlantısı olsa bile uygulamanızın başarılı bir şekilde çalıştığından emin olmak için Remote Config arka uç sunucusu kesintiye uğradıysa her parametreyi uygulamanıza ekleyebilirsiniz. Bunu yapmak içindefaultConfig initServerTemplate veya getServerTemplate şablon işlevi:

    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. Şablon yüklendikten sonra template.evaluate() öğesini kullanarak parametreleri ve değerleri girin:

    // Add template parameters to config
    const config = template.evaluate();
    
  4. İsteğe bağlı olarak, yüzde olarak koşullar Remote Config şablonunuzda randomizationId öğesini tanımlayın ve sağlayın koşullarınızı değerlendirmek için kullanmak istediğiniz template.evaluate() işlevi.

    Örneğin, bir Firebase kurulumu Kimlik kullanıcı kimliği yerine randomizationId veya User-ID olarak Sunucunuzun uygun rastgele gruba eklendiğinden emin olun. İlgili içeriği oluşturmak için kullanılan aşağıdaki örnek temel bir örnektir, ancak farklı bir istemci için farklı randomizationIds oluşturmak üzere sunucuya kullanıcılara sağlandığından emin olmak için Yüzde durumundaki üyeliklerine göre Remote Config gruplar.

    Yüzde koşulları hakkında daha fazla bilgi için "Rastgele kullanıcı" bölümüne bakın yüzde oranı.

    // 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. Ardından, yapılandırma sabit değerinden ihtiyacınız olan parametre değerlerini çıkarın. Tekliflerinizi otomatikleştirmek ve optimize etmek için Remote Config'deki değerleri beklenen değere yayınlamak için getters biçimindedir. Şu türler desteklenir:

    • Boole: getBoolean
    • Nesne: getValue
    • Sayı: getNumber
    • Dize: getString

    Örneğin projenin zamanlamasıyla ilgili Vertex AI'ı kullanarak sunucu ve model ve model parametrelerini değiştirmek istiyorsanız, model_name ve generationConfig parametrelerini yapılandır. Bir Remote Config'in değerlerine nasıl erişebileceğinizi gösteren bir örnek:

    // 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. Sunucunuz sunucusuz ortam yerine uzun süreliyse şablonu düzenli aralıklarla yeniden yüklemek için setInterval kullanın: Google Ads'deki en güncel şablonu düzenli olarak Remote Config sunucusu.

4. Adım: Remote Config'de sunucuya özgü parametre değerlerini ayarlayın

Ardından bir sunucu Remote Config şablonu oluşturup parametreleri ve değerleri ifade eder.

Sunucuya özgü Remote Config şablonu oluşturmak için:

  1. Firebase konsolunun Remote Config parametrelerini açın. sayfasında ve İstemci/Sunucu seçicisi, Sunucu'yu seçin.
  2. Remote Config parametrelerini uygulamanızda tanımladığınız ve değer sağlayan parametreler. Bu değerleri, defaultConfig sunucu uygulamasını döndürdüğünüzde ve değerlendirdiğinizde şablonu oluşturup bu değerleri değişkenlerinize atayın.
  3. İsteğe bağlı olarak, rastgele örneğidir. Yüzde hakkında daha fazla bilgi için görmek için Rastgele kullanıcı yüzde oranı.
  4. Parametre eklemeyi tamamladığınızda Değişiklikleri yayınla'yı tıklayın.
  5. Değişiklikleri gözden geçirin ve Değişiklikleri yayınla'yı tekrar tıklayın.

5. Adım: Cloud Functions veya Cloud Run ile dağıtın

Sunucu uygulamanız hafifse ve etkinliğe dayalıysa, kodunuzu Cloud Functions. Örneğin, üretken yapay zeka ile desteklenen karakter diyalogları içeren bir uygulamanız olduğunu varsayalım API (ör. Google AI veya Vertex AI). Bu örnekte, müşterilerinize LLM sunma mantığınızı, uygulamanızın isteğe bağlı olarak çağırdığı bir işleve yerleştirin.

Uygulamanızın uzun süre çalışması amaçlanıyorsa (örneğin, öğeler) Cloud Run'ı kullanmayı düşünebilirsiniz. Dağıtmak için Cloud Run ile uyumlu hale getirmek için Hızlı başlangıç kılavuzu: Node.js hizmetinden Cloud'a Çalıştırın.

Cloud Run ve diğer platformlara yönelik en iyi kullanım alanları hakkında daha fazla bilgi Cloud Functions için Cloud Functions ve Cloud Run: ne zaman kullanılır? bir üstünde diğer.