Firebase Remote Config Node.js (v12.1.0+), Python (v6.7.0+), Java (v9.7.0+), এবং Go (v4.17.0+)-এর জন্য Firebase Admin SDK ব্যবহার করে সার্ভার-সাইড কনফিগারেশন সমর্থন করে।
এই সক্ষমতা আপনাকে Remote Config ব্যবহার করে সার্ভার-সাইড অ্যাপ্লিকেশনগুলির আচরণ এবং কনফিগারেশন গতিশীলভাবে পরিচালনা করতে দেয়। এর মধ্যে Cloud Functions for Firebase এর মতো সার্ভারলেস ইমপ্লিমেন্টেশন এবং Cloud Run -এর কন্টেইনারাইজড পরিষেবাগুলি অন্তর্ভুক্ত রয়েছে।
ফায়ারবেস ক্লায়েন্ট SDK-গুলো Remote Config টেমপ্লেট থেকে ক্লায়েন্ট-নির্দিষ্ট কনফিগারেশন সংগ্রহ করে, কিন্তু সার্ভার-সাইড Remote Config SDK ফায়ারবেস থেকে একটি সম্পূর্ণ Remote Config টেমপ্লেট ডাউনলোড বা সংগ্রহ করে। এরপর আপনার সার্ভার প্রতিটি আগত অনুরোধের সাথে টেমপ্লেটটি মূল্যায়ন করতে পারে এবং নিজস্ব লজিক ব্যবহার করে খুব কম ল্যাটেন্সিতে একটি কাস্টমাইজড প্রতিক্রিয়া প্রদান করতে পারে। আপনি র্যান্ডম পার্সেন্টেজ এবং কাস্টম সিগন্যালে সংজ্ঞায়িত ক্লায়েন্ট অ্যাট্রিবিউটের উপর ভিত্তি করে প্রতিক্রিয়া নিয়ন্ত্রণ ও কাস্টমাইজ করতে কন্ডিশন ব্যবহার করতে পারেন।
সার্ভার-সাইড Remote Config ব্যবহার করে আপনি যা করতে পারেন:
- আপনার সার্ভারে চলমান বা এর মাধ্যমে অ্যাক্সেস করা অ্যাপ্লিকেশনগুলির জন্য কনফিগারেশন প্যারামিটার নির্ধারণ করুন, যা দূর থেকে এআই মডেলের প্যারামিটার ও প্রম্পট কনফিগার করা এবং অন্যান্য ইন্টিগ্রেশনের মতো ব্যবহারের সুযোগ দেবে, যাতে আপনার এপিআই কীগুলি সুরক্ষিত থাকে।
- আপনার পরিবেশের পরিবর্তন বা অ্যাপ্লিকেশনের অন্যান্য পরিবর্তনের প্রতিক্রিয়ায় প্যারামিটারগুলো গতিশীলভাবে সমন্বয় করুন, যেমন LLM প্যারামিটার এবং মডেল এন্ডপয়েন্ট আপডেট করা।
- আপনার সার্ভার যে API-গুলোকে কল করে, সেগুলোকে দূর থেকে আপডেট করার মাধ্যমে খরচ নিয়ন্ত্রণ করুন।
- আপনার সার্ভার অ্যাক্সেসকারী ক্লায়েন্টদের জন্য তাৎক্ষণিকভাবে কাস্টম কনফিগারেশন তৈরি করুন।
- কোন কোন ক্লায়েন্ট একটি প্যারামিটার মান পেয়েছে তা রেকর্ড করুন এবং একটি এনটাইটেলমেন্ট যাচাইকরণ সিস্টেমের অংশ হিসাবে Cloud Functions for Firebase এ এটি ব্যবহার করুন।
আপনি Cloud Run , Cloud Functions for Firebase , অথবা সেলফ-হোস্টেড সার্ভার এনভায়রনমেন্টে সার্ভার-সাইড Remote Config স্থাপন করতে পারেন।
শুরু করার আগে
একটি Firebase প্রজেক্ট তৈরি করতে, একটি সার্ভিস অ্যাকাউন্ট সেট আপ করতে এবং আপনার সার্ভারে Firebase অ্যাডমিন SDK যোগ করতে , “আপনার সার্ভারে Firebase অ্যাডমিন SDK যোগ করুন” শীর্ষক নির্দেশাবলী অনুসরণ করুন। নিশ্চিত করুন যে আপনি আপনার প্ল্যাটফর্মের জন্য অ্যাডমিন SDK-এর একটি সমর্থিত সংস্করণ ব্যবহার করছেন।
- নোড.জেএস : ফায়ারবেস অ্যাডমিন নোড.জেএস এসডিকে ভি১২.১.০+
- পাইথন : ফায়ারবেস অ্যাডমিন পাইথন SDK v6.7.0+
- জাভা : ফায়ারবেস অ্যাডমিন জাভা এসডিকে ভি৯.৭.০+
- গো : ফায়ারবেস অ্যাডমিন গো এসডিকে ভি৪.১৭.০+
ধাপ ১: Firebase অ্যাডমিন SDK চালু করুন এবং API অনুরোধগুলোকে অনুমোদন দিন
যখন আপনি কোনো প্যারামিটার ছাড়া অ্যাডমিন SDK ইনিশিয়ালাইজ করেন, তখন SDK গুগল অ্যাপ্লিকেশনের ডিফল্ট ক্রেডেনশিয়াল ব্যবহার করে এবং GOOGLE_APPLICATION_CREDENTIALS এনভায়রনমেন্ট ভেরিয়েবল থেকে অপশনগুলো পড়ে নেয়। আপনার প্ল্যাটফর্মের জন্য SDK ইনিশিয়ালাইজ করুন এবং Remote Config কনফিগার করুন:
নোড.জেএস
initializeApp এবং getRemoteConfig ইম্পোর্ট করুন, তারপর আপনার Firebase অ্যাপ্লিকেশন ইনস্ট্যান্সটি ইনিশিয়ালাইজ করুন:
import { initializeApp } from "firebase-admin/app";
import { getRemoteConfig } from "firebase-admin/remote-config";
// Initialize Firebase
const firebaseApp = initializeApp();
পাইথন
firebase_admin ইম্পোর্ট করুন (অ্যাসিঙ্ক্রোনাস টেমপ্লেট লোডিং এবং JSON পার্সিং-এর জন্য asyncio এবং json সহ), তারপর অ্যাপ্লিকেশনটি ইনিশিয়ালাইজ করুন:
import firebase_admin
import asyncio
import json
firebase_admin.initialize_app()
জাভা
FirebaseOptions এবং আপনার সার্ভিস অ্যাকাউন্টের ক্রেডেনশিয়াল ব্যবহার করে Firebase অ্যাডমিন SDK চালু করুন:
// Initialize the Firebase Admin SDK
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
.build();
FirebaseApp.initializeApp(options);
যান
Firebase অ্যাপ্লিকেশনটি চালু করুন এবং একটি RemoteConfig ক্লায়েন্ট ইনস্ট্যান্স তৈরি করুন:
ctx := context.Background()
// Initialize Firebase
app, err := firebase.NewApp(ctx, nil)
if err != nil {
log.Fatalln("Error initializing app:", err)
}
remoteConfig, err := app.RemoteConfig(ctx)
if err != nil {
log.Fatalln("Error initializing remote config client:", err)
}
ধাপ ২: আপনার সার্ভার অ্যাপ্লিকেশনের জন্য ডিফল্ট প্যারামিটার মানগুলি শনাক্ত করুন।
আপনার অ্যাপের সেই ভেরিয়েবলগুলো শনাক্ত করুন যেগুলো আপনি Remote Config ব্যবহার করে ডায়নামিকভাবে আপডেট করতে চান। এরপর, বিবেচনা করুন কোন ভেরিয়েবলগুলো আপনার অ্যাপ্লিকেশনে ডিফল্টভাবে সেট করা আবশ্যক এবং সেগুলোর ডিফল্ট মান কী হওয়া উচিত। এটি নিশ্চিত করে যে, Remote Config ব্যাকএন্ড সার্ভারের সাথে সংযোগ বিচ্ছিন্ন হয়ে গেলেও আপনার অ্যাপ্লিকেশনটি সফলভাবে চলতে থাকবে।
উদাহরণস্বরূপ, যদি আপনি এমন একটি সার্ভার অ্যাপ্লিকেশন লেখেন যা একটি জেনারেটিভ এআই ফাংশন পরিচালনা করে, তাহলে আপনি একটি ডিফল্ট মডেলের নাম, প্রম্পট প্রিম্বল এবং একটি জেনারেটিভ এআই কনফিগারেশন সেট করতে পারেন, যেমনটি নিচে দেওয়া হলো:
| প্যারামিটার নাম | বর্ণনা | প্রকার | ডিফল্ট মান |
|---|---|---|---|
model_name | মডেল এপিআই নাম | স্ট্রিং | gemini-2.0-flash |
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! |
generation_config | মডেলে পাঠানোর জন্য প্যারামিটারসমূহ | JSON | {"stopSequences": ["I hope this helps"], "temperature": 0.7, "maxOutputTokens": 512, "topP": 0.1, "topK": 20} |
ধাপ ৩: আপনার সার্ভার অ্যাপ্লিকেশনটি কনফিগার করুন
Remote Config সাথে আপনি যে প্যারামিটারগুলো ব্যবহার করতে চান তা নির্ধারণ করার পর, আপনার অ্যাপ্লিকেশনটিকে ডিফল্ট মান সেট করতে, সার্ভার-নির্দিষ্ট Remote Config টেমপ্লেটটি ফেচ করতে এবং এর মানগুলো মূল্যায়ন করতে কনফিগার করুন।
Remote Config সার্ভার টেমপ্লেটটি অ্যাক্সেস করে লোড করুন।
নোড.জেএস
initServerTemplate()ব্যবহার করে সার্ভার টেমপ্লেটটি ইনিশিয়ালাইজ করুন এবং ব্যাকএন্ড থেকে টেমপ্লেটটি আনার জন্যload()কল করুন:// Initialize server-side Remote Config const rc = getRemoteConfig(firebaseApp); const template = rc.initServerTemplate(); // Load Remote Config await template.load();আপনি যদি Cloud Functions for Firebase মধ্যে Node.js ব্যবহার করেন, তাহলে এক ধাপেই টেমপ্লেটটি ইনিশিয়ালাইজ ও লোড করার জন্য অ্যাসিঙ্ক্রোনাস
getServerTemplate()ফাংশনটি ব্যবহার করতে পারেন:// Initialize server-side Remote Config const rc = getRemoteConfig(firebaseApp); const template = await rc.getServerTemplate();পাইথন
init_server_template()ব্যবহার করে সার্ভার টেমপ্লেটটি ইনিশিয়ালাইজ করুন এবং ব্যাকএন্ড থেকে টেমপ্লেটটি আনার জন্যload()কল করুন:from firebase_admin import remote_config # Initialize server-side Remote Config template = remote_config.init_server_template() # Load the template from the backend asyncio.run(template.load())বিকল্পভাবে, যদি আপনি Cloud Functions for Firebase সাথে Python ব্যবহার করেন, তাহলে আপনি অ্যাসিঙ্ক্রোনাস
get_server_template()ফাংশনটি ব্যবহার করে এক ধাপে টেমপ্লেটটি ইনিশিয়ালাইজ এবং লোড করতে পারেন:# Initialize server-side Remote Config template = await remote_config.get_server_template()জাভা
FirebaseRemoteConfig.getInstance()ব্যবহার করে সার্ভার-সাইড Remote Config ক্লায়েন্ট চালু করুন:// Initialize server-side Remote Config client FirebaseRemoteConfig rc = FirebaseRemoteConfig.getInstance();বিকল্পভাবে, যদি আপনি Cloud Functions for Firebase সাথে জাভা ব্যবহার করেন, তাহলে আপনি
getServerTemplate()ব্যবহার করে এক ধাপেই টেমপ্লেটটি ইনিশিয়ালাইজ এবং লোড করতে পারেন:ServerTemplate template = rc.getServerTemplate();যান
InitServerTemplate()ব্যবহার করে সার্ভার টেমপ্লেটটি ইনিশিয়ালাইজ করুন এবং ব্যাকএন্ড থেকে টেমপ্লেটটি আনার জন্যLoad()কল করুন:// Initialize server-side Remote Config defaultConfig := make(map[string]any) templateDataJSON := "" template, err := remoteConfig.InitServerTemplate(defaultConfig, templateDataJSON) if err != nil { log.Fatalln("Error initializing server template:", err) } // Load Remote Config err = template.Load(ctx) if err != nil { log.Fatalln("Error fetching server template:", err) }টেমপ্লেটটি ইনিশিয়ালাইজ করার আরেকটি উপায় হলো
GetServerTemplateফাংশন ব্যবহার করে প্রয়োজনীয় সার্ভার টেমপ্লেটটি সংগ্রহ করা। আপনি এই টেমপ্লেটটিকে একটি JSON ফরম্যাটে রূপান্তর করে স্থানীয়ভাবে সংরক্ষণ করতে পারেন এবং পরবর্তীতেInitServerTemplateফাংশন ব্যবহার করে এই JSON টেমপ্লেটটি ইনিশিয়ালাইজ করতে পারেন।Remote Config ব্যাকএন্ড সার্ভারের সাথে আপনার অ্যাপ্লিকেশনের সংযোগ বিচ্ছিন্ন হলেও যেন এটি সফলভাবে চলতে পারে, তা নিশ্চিত করতে আপনার অ্যাপের প্রতিটি প্যারামিটারের জন্য ডিফল্ট মান যোগ করুন।
নোড.জেএস
আপনার
initServerTemplateবাgetServerTemplateটেমপ্লেট ফাংশনের ভিতরে একটিdefaultConfigঅবজেক্ট যোগ করুন: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();পাইথন
আপনার
init_server_templateবাget_server_templateটেমপ্লেট ফাংশনের ভিতরে একটিdefault_configডিকশনারি যোগ করুন:template = remote_config.init_server_template({ 'default_config': { '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 asyncio.run(template.load())টেমপ্লেট ইনিশিয়ালাইজ করার আরেকটি উপায় হলো
get_server_templateফাংশন ব্যবহার করে প্রয়োজনীয় সার্ভার টেমপ্লেটটি সংগ্রহ করা। আপনিtemplate.to_jsonফাংশন ব্যবহার করে এই টেমপ্লেটটিকে JSON ফরম্যাটে রূপান্তর করতে পারেন। এই JSON টেমপ্লেটটি স্থানীয়ভাবে সংরক্ষণ করা যেতে পারে এবং পরবর্তীতেinit_server_templateফাংশন ব্যবহার করে এটিকে ইনিশিয়ালাইজ করা যায়।জাভা
আপনার
getServerTemplateফাংশনের ভিতরেKeysAndValuesব্যবহার করে একটিdefaultConfigঅবজেক্ট যোগ করুন:// Initialize default config using KeysAndValues KeysAndValues defaultConfig = new KeysAndValues.Builder() .put("rc_param_1", "default value 1") .put("rc_param_2", "default value 2") .build(); ServerTemplate template = rc.getServerTemplate(defaultConfig);বিকল্পভাবে, আপনি Remote Config ইনিশিয়ালাইজ করার সময় একটি ডিফল্ট ক্যাশ করা টেমপ্লেট পাস করতে পারেন, যা Remote Config সার্ভারের সংযোগ বিচ্ছিন্ন হলেও ব্যবহার করা যাবে:
String templateDataJSON = "{}"; // add your default template as JSON ServerTemplate template = rc.serverTemplateBuilder() .defaultConfig(defaultConfig) .cachedTemplate(templateDataJSON) .build();যান
আপনার
InitServerTemplateবাGetServerTemplateটেমপ্লেট ফাংশনের ভিতরে একটিdefaultConfigম্যাপ যোগ করুন:// Initialize server-side Remote Config defaultConfig := make(map[string]any) defaultConfig["model_name"] = "gemini-2.0-flash" // Assume the type generationConfig has been defined defaultConfig["generation_config"] = &generationConfig{ StopSequences: []string{"I hope this helps"}, Temperature: 0.7, MaxOutputTokens: 512, TopP: 0.9, TopK: 30, } defaultConfig["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!" templateDataJSON := "" template, err := remoteConfig.InitServerTemplate(defaultConfig, templateDataJSON) if err != nil { log.Fatalln("Error initializing server template:", err) } // Load Remote Config err = template.Load(ctx) if err != nil { log.Fatalln("Error fetching server template:", err) }টেমপ্লেটটি লোড হওয়ার পরে, টেমপ্লেট থেকে প্যারামিটার এবং মান ইম্পোর্ট করার জন্য টেমপ্লেটটি মূল্যায়ন করুন:
নোড.জেএস
template.evaluate()ব্যবহার করুন :// Add template parameters to config const config = template.evaluate();পাইথন
template.evaluate()ব্যবহার করুন :# Add template parameters to config config = template.evaluate()জাভা
template.evaluate()ব্যবহার করুন :// Add template parameters to config ServerConfig config = template.evaluate();যান
যখন কোনো শর্ত প্রয়োগ করা হয় না, তখন একটি খালি ইভ্যালুয়েশন কনটেক্সট সহ
template.Evaluate()ব্যবহার করুন:// An empty evaluation context means no conditions are applied. evaluationContext := make(map[string]any) config, err := template.Evaluate(evaluationContext) if err != nil { log.Fatalln("Error evaluating template:", err) }ঐচ্ছিকভাবে, যদি আপনি আপনার Remote Config টেমপ্লেটে শর্তাবলী সেট করেন, তাহলে আপনার কাঙ্ক্ষিত কনটেক্সট ভ্যালুগুলো সংজ্ঞায়িত করুন এবং প্রদান করুন:
- যদি পার্সেন্টেজ কন্ডিশন ব্যবহার করেন, তাহলে টেমপ্লেট ইভ্যালুয়েশন ফাংশনের মধ্যে আপনার কন্ডিশনগুলো মূল্যায়ন করার জন্য যে র্যান্ডমাইজেশন আইডি (
randomizationId,randomization_id, বাrandomizationID) ব্যবহার করতে চান, সেটি যোগ করুন। - কাস্টম সিগন্যাল ব্যবহার করলে, অ্যাট্রিবিউট এবং তাদের মান নির্ধারণ করুন। কাস্টম সিগন্যাল Firebase Admin Node.js SDK v12.5.0+, Python SDK v6.7.0+, Java SDK v9.7.0+, এবং Go SDK v4.17.0+ এর সাথে উপলব্ধ।
উদাহরণস্বরূপ, আপনার সার্ভারের সাথে যোগাযোগকারী প্রত্যেক ব্যবহারকারীকে সঠিক র্যান্ডমাইজড গ্রুপে যুক্ত করা নিশ্চিত করতে আপনি র্যান্ডমাইজেশন আইডি হিসেবে একটি Firebase ইনস্টলেশন আইডি বা ইউজার আইডি সেট করতে পারেন; নির্দিষ্ট ক্লায়েন্ট সংস্করণকে টার্গেট করতে কাস্টম সিগন্যাল হিসেবে '
versionএবং ক্লায়েন্ট প্ল্যাটফর্মকে টার্গেট করতে কাস্টম সিগন্যাল হিসেবে 'platform' সেট করতে পারেন।শর্তাবলী সম্পর্কে আরও তথ্যের জন্য, শর্ত নিয়মের প্রকারভেদ দেখুন।
নোড.জেএস
template.evaluate()-এrandomizationIdএবং যেকোনো কাস্টম সিগন্যাল সম্বলিত একটি ইভ্যালুয়েশন কনটেক্সট অবজেক্ট পাস করুন:// 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" });পাইথন
template.evaluate()randomization_idএবং যেকোনো কাস্টম সিগন্যাল সম্বলিত একটি ডিকশনারি পাস করুন:# Add template parameters to `config`. Evaluates the # template and returns the parameter value assigned to # the group assigned to the {randomization_id} and version. config = template.evaluate({ 'randomization_id': "2ac93c28-c459-4760-963d-a3974ec26c04", 'version': "1.0", 'platform': "Android" })জাভা
randomizationIdএবং যেকোনো কাস্টম সিগন্যাল ধারণকারী একটিKeysAndValuesকনটেক্সট তৈরি করুন এবং এটিtemplate.evaluate()-এ পাস করুন:// Add custom signals and randomizationId KeysAndValues context = new KeysAndValues.Builder() .put("custom_signal_key", "99") .put("randomizationId", "2ac93c28") .build(); // Evaluate the template with signals ServerConfig config = template.evaluate(context);যান
template.Evaluate()এrandomizationIDএবং যেকোনো কাস্টম সিগন্যাল সম্বলিত একটি ইভ্যালুয়েশন কনটেক্সট ম্যাপ পাস করুন:// Add template parameters to `config`. Evaluates the // template and returns the parameter value assigned to // the group assigned to the {randomizationID}, version, and platform. evaluationContext := make(map[string]any) evaluationContext["randomizationID"] = "2ac93c28-c459-4760-963d-a3974ec26c04" evaluationContext["version"] = "1.0" evaluationContext["platform"] = "Android" config, err := template.Evaluate(evaluationContext) if err != nil { log.Fatalln("Error evaluating template:", err) }- যদি পার্সেন্টেজ কন্ডিশন ব্যবহার করেন, তাহলে টেমপ্লেট ইভ্যালুয়েশন ফাংশনের মধ্যে আপনার কন্ডিশনগুলো মূল্যায়ন করার জন্য যে র্যান্ডমাইজেশন আইডি (
এরপরে, ইভ্যালুয়েটেড কনফিগারেশন অবজেক্ট থেকে আপনার প্রয়োজনীয় প্যারামিটার ভ্যালুগুলো বের করুন। Remote Config থেকে ভ্যালুগুলোকে প্রত্যাশিত ফরম্যাটে কাস্ট করতে গেটার মেথড ব্যবহার করুন।
উদাহরণস্বরূপ, যদি আপনি আপনার সার্ভারে এজেন্ট প্ল্যাটফর্ম প্রয়োগ করেন এবং মডেল ও মডেল প্যারামিটার পরিবর্তন করতে চান, তাহলে আপনি
model_nameএবংgeneration_configজন্য প্যারামিটার কনফিগার করতে পারেন। এখানে প্রতিটি প্ল্যাটফর্মের জন্য সমর্থিত গেটার মেথড এবং Remote Config ভ্যালু অ্যাক্সেস করার একটি উদাহরণ দেওয়া হলো:নোড.জেএস
সমর্থিত গেটার মেথডসমূহ:
- বুলিয়ান:
getBoolean - বস্তু:
getValue - সংখ্যা:
getNumber - স্ট্রিং:
getString
// Replace defaults with values from Remote Config. const generationConfig = JSON.parse( config.getString('generation_config')); const is_ai_enabled = config.getBoolean('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}`;পাইথন
সমর্থিত গেটার মেথডসমূহ:
- বুলিয়ান:
get_bool - পূর্ণসংখ্যা:
get_int - ফ্লোট:
get_float - স্ট্রিং:
get_string - মানের উৎস:
get_value_source
# Replace defaults with values from Remote Config. generation_config = json.loads(config.get_string('generation_config')) is_ai_enabled = config.get_bool('is_ai_enabled') model = config.get_string('model_name') # Generates a prompt comprised of the Remote Config # parameter and prepends it to the user prompt. prompt = f"{config.get_string('preamble_prompt')}{req.args.get('prompt')}"জাভা
সমর্থিত গেটার মেথডসমূহ:
- বুলিয়ান:
getBoolean - স্ট্রিং:
getString - ডাবল:
getDouble - দীর্ঘ:
getLong - মানের উৎস:
getValueSource
// Get the model name String modelName = config.getString("model_name"); // Get the origin of value assigned to param ValueSource modelNameSource = config.getValueSource("model_name");getValueSourceমেথডটি একটিValueSourceরিটার্ন করে, যা নির্দেশ করে যে প্যারামিটারটির ভ্যালু সোর্সSTATIC,REMOTE, নাকিDEFAULT।যান
সমর্থিত গেটার মেথডসমূহ:
- বুলিয়ান:
GetBoolean - পূর্ণসংখ্যা:
GetInt - ফ্লোট:
GetFloat - স্ট্রিং:
GetString - মানের উৎস:
GetValueSource
// Replace defaults with values from Remote Config. // Assume the type generationConfig has been defined var genConfig generationConfig err = json.Unmarshal([]byte(config.GetString("generation_config")), &genConfig) if err != nil { log.Fatalln("Error unmarshaling generation config:", err) } model := config.GetString("model_name") // Parameter created on the console isAIEnabled := config.GetBoolean("is_ai_enabled") // Generates a prompt comprised of the Remote Config // parameter and prepends it to the user prompt (assume it is extracted from the request body) userPrompt := "What is Remote Config?" prompt := fmt.Sprintf("%s %s", config.GetString("preamble_prompt"), userPrompt)- বুলিয়ান:
আপনার সার্ভারটি যদি সার্ভারলেস এনভায়রনমেন্টের পরিবর্তে দীর্ঘক্ষণ ধরে চালু থাকে, তবে আপনি Remote Config সার্ভার থেকে সবচেয়ে হালনাগাদ টেমপ্লেটটিই পাচ্ছেন কিনা তা নিশ্চিত করতে পর্যায়ক্রমে টেমপ্লেটটি রিলোড করুন (উদাহরণস্বরূপ, Node.js-এ
setIntervalবা Java-তেjava.util.Timerব্যবহার করে)।
ধাপ ৪: Remote Config -এ সার্ভার-নির্দিষ্ট প্যারামিটারের মান সেট করুন।
এরপরে, একটি সার্ভার Remote Config টেমপ্লেট তৈরি করুন এবং আপনার অ্যাপে ব্যবহারের জন্য প্যারামিটার ও ভ্যালুগুলো কনফিগার করুন।
সার্ভার-নির্দিষ্ট Remote Config টেমপ্লেট তৈরি করার পদ্ধতি নিচে দেওয়া হলো:
Firebase কনসোলে, DevOps & Engagement > Remote Config > Parameters পৃষ্ঠায় যান।
পৃষ্ঠার শীর্ষে থাকা ক্লায়েন্ট/সার্ভার নির্বাচক থেকে সার্ভার নির্বাচন করুন।
আপনার অ্যাপে সংজ্ঞায়িত প্যারামিটারগুলোর মতো একই নাম এবং ডেটা টাইপ ব্যবহার করে Remote Config প্যারামিটারগুলো সংজ্ঞায়িত করুন এবং মান প্রদান করুন। যখন আপনি টেমপ্লেটটি ফেচ ও ইভ্যালুয়েট করবেন, তখন এই মানগুলো আপনার সার্ভার অ্যাপ্লিকেশন কনফিগার করার সময় সেট করা ডিফল্ট কনফিগারেশনকে (
defaultConfigবাdefault_config) ওভাররাইড করবে এবং এই মানগুলো আপনার ভেরিয়েবলগুলোতে অ্যাসাইন করবে।ঐচ্ছিকভাবে, আপনার সংজ্ঞায়িত ইনস্ট্যান্স বা কাস্টম সিগন্যালের একটি র্যান্ডম স্যাম্পলে মানগুলি স্থায়ীভাবে প্রয়োগ করার জন্য শর্ত সেট করুন। শর্ত সম্পর্কে আরও তথ্যের জন্য, 'শর্ত নিয়মের প্রকারভেদ ' দেখুন।
প্যারামিটার যোগ করা শেষ হলে, 'পরিবর্তনগুলি প্রকাশ করুন ' বোতামে ক্লিক করুন।
পরিবর্তনগুলো পর্যালোচনা করুন এবং আবার 'পরিবর্তনগুলি প্রকাশ করুন'-এ ক্লিক করুন।
ধাপ ৫: Cloud Functions for Firebase অথবা Cloud Run ব্যবহার করে ডেপ্লয় করুন
আপনার সার্ভার অ্যাপ্লিকেশনটি যদি লাইটওয়েট এবং ইভেন্ট-ড্রাইভেন হয়, তবে আপনার কোড ডেপ্লয় করার জন্য Cloud Functions for Firebase ) ব্যবহার করার কথা বিবেচনা করা উচিত। উদাহরণস্বরূপ, ধরুন আপনার এমন একটি অ্যাপ আছে যেখানে জেনারেটিভ এআই এপিআই (যেমন, গুগল এআই বা এজেন্ট প্ল্যাটফর্ম ) দ্বারা চালিত ক্যারেক্টার ডায়ালগ রয়েছে। এই ক্ষেত্রে, আপনি আপনার এলএলএম-সার্ভিং লজিকটি এমন একটি ফাংশনে হোস্ট করতে পারেন, যেটিকে আপনার অ্যাপ প্রয়োজন অনুযায়ী কল করবে।
সার্ভার-সাইড Remote Config সহ ২য় প্রজন্মের Cloud Functions for Firebase ব্যবহার করে এমন একটি সমাধান নিয়ে কাজ করতে, “ইউজ সার্ভার-সাইড Remote Config উইথ Cloud Functions for Firebase অ্যান্ড এজেন্ট প্ল্যাটফর্ম” দেখুন।
Cloud Functions for Firebase ব্যবহার করে আপনার অ্যাপ ডেপ্লয় করার বিষয়ে আরও জানতে, “Get started: write, test, and deploy your first functions ” দেখুন।
সার্ভার-সাইড Remote Config এবং App Check সহ একটি নমুনা কলযোগ্য ফাংশন ব্যবহার করে দেখুন "Call the Agent Platform Gemini API (formerly Vertex AI) with Remote Config and App Check " অংশে ।
আপনি যদি একটি সার্ভার-রেন্ডারড ওয়েব অ্যাপ তৈরি করেন, তাহলে App Hosting জনপ্রিয় ওয়েব ফ্রেমওয়ার্কগুলোর জন্য সাপোর্ট রয়েছে।
অন্যথায়, আপনি Cloud Run ব্যবহার করার কথা ভাবতে পারেন। Cloud Run ব্যবহার করে আপনার সার্ভার অ্যাপ ডেপ্লয় করতে, আপনার ভাষার জন্য দেওয়া কুইকস্টার্ট গাইডটি অনুসরণ করুন:
- কুইকস্টার্ট: Cloud Run একটি Node.js সার্ভিস ডিপ্লয় করুন
- কুইকস্টার্ট: Cloud Run একটি পাইথন সার্ভিস ডেপ্লয় করুন
- কুইকস্টার্ট: Cloud Run একটি জাভা সার্ভিস ডেপ্লয় করুন
- কুইকস্টার্ট: Cloud Run একটি গো সার্ভিস ডেপ্লয় করুন
Cloud Run এবং Cloud Functions for Firebase এর সর্বোত্তম ব্যবহার সম্পর্কে আরও তথ্যের জন্য, Cloud Functions for Firebase vs. Cloud Run : when to use one over the other দেখুন।
পরবর্তী পদক্ষেপ
- “প্যারামিটার এবং শর্তাবলী (সার্ভার-সাইড)” অংশে সার্ভার-সাইড প্যারামিটার এবং শর্তাবলী সম্পর্কে জানুন।
- একটি পূর্ণাঙ্গ সমাধান অনুসরণ করুন: Cloud Functions for Firebase এবং এজেন্ট প্ল্যাটফর্ম-এর সাথে সার্ভার-সাইড Remote Config ব্যবহার করুন ।
- Remote Config টেমপ্লেট ভার্সনগুলো কীভাবে পরিচালনা করতে হয় তা জানুন।