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 Remote Config kullanan uygulamalar. Buna, sunucusuz uygulamalar dahildir Cloud Functions gibi.
İstemciye özel yapılandırma getiren Firebase istemci SDK'larından farklı olarak Remote Config şablonundan, sunucu tarafında türetilir Remote Config SDK, eksiksiz Remote Config şablonunu indiriyor Firebase'den geliyor. Sunucunuz daha sonra gelen her istekle şablonu değerlendirebilir ve çok düşük gecikmeli özelleştirilmiş bir yanıt sunmak için kendi mantığını kullanabilir.
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.
- Sunucunuza erişen istemciler için anında özel yapılandırmalar oluşturun.
- Hangi istemcilerin bir parametre değeri aldığını kaydedin ve bu bilgiyi, bir uygunluk doğrulama sistemi kapsamında Cloud Functions'te kullanın.
Sunucu tarafı Remote Config'ü Cloud Run, Cloud Functions veya kendi bünyesinde barındırılan sunucu ortamlarına dağıtabilirsiniz.
Başlamadan önce
Firebase Admin SDK'sını sunucunuza ekleme başlıklı makaledeki talimatları uygulayarak bir Firebase projesi oluşturun, bir hizmet hesabı oluşturun ve Firebase Admin Node.js SDK'sını sunucunuza ekleyin.
1. adım: Firebase Admin Node.js SDK'sını başlatın ve API isteklerini yetkilendirin
Yönetici SDK'sını parametre olmadan başlattığınızda SDK, Google Uygulama Varsayılan Kimlik Bilgileri'ni kullanır ve seçenekleri GOOGLE_APPLICATION_CREDENTIALS
ortam değişkeninden okur. Örneğin, SDK'yı başlatmak ve Remote Config 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
Remote Config ile kullanmak istediğiniz parametreleri belirledikten sonra uygulamanızı varsayılan değerleri ayarlayacak, sunucuya özgü Remote Config şablonunu alacak ve değerlerini kullanacak şekilde yapılandırı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.
Şablona erişip yükleyin.
// Initialize server-side Remote Config const rc = getRemoteConfig(firebaseApp); const template = rc.initServerTemplate(); // Load Remote Config await template.load();
Cloud Functions içinde Node.js kullanıyorsanız öğesini getirmek ve yüklemek için eşzamansız
getServerTemplate
kullanabilir oluşturabilirsiniz:// Initialize server-side Remote Config const rc = getRemoteConfig(firebaseApp); const template = await rc.getServerTemplate();
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ı, her parametreyi uygulamanıza ekleyebilirsiniz. Bunu yapmak için
defaultConfig
initServerTemplate
veyagetServerTemplate
ş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();
Şablon yüklendikten sonra
template.evaluate()
öğesini kullanarak parametreleri ve değerleri girin:// Add template parameters to config const config = template.evaluate();
İsteğe bağlı olarak, yüzde koşullar Remote Config şablonunuzda
randomizationId
değerini tanımlayın ve sağlayın koşullarınızı değerlendirmek için kullanmak istediğiniztemplate.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 üyelik durumuna göre Remote Config gruplar.Yüzde koşulları hakkında daha fazla bilgi için Analizler'de rastgele yüzdeye göre kullanıcı başlıklı makaleyi inceleyin.
// 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 });
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 değerlerinden beklenen değerleri 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
vegenerationConfig
parametrelerini yapılandır. Bir Remote Config 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}`;
- Boole:
Sunucunuz sunucusuz bir ortam yerine uzun süredir çalışıyorsa Remote Config sunucusundan düzenli olarak en güncel şablonu getirdiğinizden emin olmak için şablonu düzenli olarak yeniden yüklemek üzere
setInterval
kullanın.
4. Adım: Remote Config içinde sunucuya özel parametre değerlerini ayarlayın
Ardından, bir sunucu Remote Config şablonu oluşturun ve uygulamanızda kullanılacak parametreleri ve değerleri yapılandırın.
Sunucuya özel bir Remote Config şablonu oluşturmak için:
- Firebase konsolu Remote Config parametrelerini açın ve İstemci/Sunucu seçicisi, Sunucu'yu seçin.
- Remote Config parametrelerini aşağıdakilerle aynı adlara ve veri türlerine sahip olarak tanımlayın:
uygulamanızda tanımladığınız ve değer sağlayan parametreler. Şablonu getirip değerlendirdiğinizde ve bu değerleri değişkenlerinize atadığınızda bu değerler, Sunucu uygulamanızı yapılandırın bölümünde ayarladığınız
defaultConfig
değerini geçersiz kılar. - İ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ı.
- Parametre eklemeyi tamamladığınızda Değişiklikleri yayınla'yı tıklayın.
- 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 (örneğin, 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.
2. nesil Cloud Functions kullanan bir çözüm üzerinde çalışmak için sunucu tarafı Remote Config, bkz. Sunucu tarafı Remote Config öğesini Cloud Functions ve Vertex AI.
Uygulamanızı Cloud Functions ile dağıtma hakkında daha fazla bilgi için başlama: İlk uygulamanızı yazın, test edin ve dağıtın işlevleriyle ilgili daha fazla bilgi edinin.
Sunucu tarafı Remote Config ile örnek bir çağrılabilir işlevi deneyin ve Yer: App Check Vertex AI Gemini API numaralı telefonu Remote Config ile arayın ve App Check.
Uygulamanızın uzun süre çalıştırılması gerekiyorsa (ör. öğeleri olan bir web uygulaması) Cloud Run'u kullanabilirsiniz. Sunucu uygulamanızı Cloud Run ile dağıtmak için Hızlı başlangıç: Node.js hizmetini Cloud Run'a dağıtma başlıklı makaledeki kılavuzu uygulayı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 - Cloud Run: ne zaman kullanılmalı? bölümünü inceleyin. bir üzerinde diğer.