Firebase Remote Config Firebase Admin Node.js SDK v12.1.0+ ব্যবহার করে সার্ভার-সাইড কনফিগারেশন সমর্থন করে। এই ক্ষমতা আপনাকে Remote Config ব্যবহার করে সার্ভার-সাইড অ্যাপ্লিকেশনগুলির আচরণ এবং কনফিগারেশন গতিশীলভাবে পরিচালনা করার ক্ষমতা দেয়। এতে Cloud Functions মতো সার্ভারহীন বাস্তবায়ন অন্তর্ভুক্ত রয়েছে।
Firebase ক্লায়েন্ট SDK-এর বিপরীতে, যা Remote Config টেমপ্লেট থেকে প্রাপ্ত একটি ক্লায়েন্ট-নির্দিষ্ট কনফিগারেশন নিয়ে আসে, সার্ভার-সাইড Remote Config SDK Firebase থেকে একটি সম্পূর্ণ Remote Config টেমপ্লেট ডাউনলোড করে। আপনার সার্ভার তারপরে প্রতিটি আগত অনুরোধের সাথে টেমপ্লেটটি মূল্যায়ন করতে পারে এবং খুব কম বিলম্বের সাথে একটি কাস্টমাইজড প্রতিক্রিয়া পরিবেশন করতে তার নিজস্ব যুক্তি ব্যবহার করতে পারে। আপনি কাস্টম সংকেতগুলিতে সংজ্ঞায়িত এলোমেলো শতাংশ এবং ক্লায়েন্টের বৈশিষ্ট্যের উপর ভিত্তি করে প্রতিক্রিয়াগুলি নিয়ন্ত্রণ এবং কাস্টমাইজ করতে শর্তগুলি ব্যবহার করতে পারেন।
সার্ভার-সাইড Remote Config সহ, আপনি করতে পারেন:
- আপনার এপিআই কীগুলি সুরক্ষিত থাকতে পারে তা নিশ্চিত করতে আপনার সার্ভারের মাধ্যমে চলমান বা অ্যাক্সেসের জন্য কনফিগারেশন প্যারামিটারগুলি সংজ্ঞায়িত করুন, আপনার এপিআই কীগুলি সুরক্ষিত থাকার বিষয়টি নিশ্চিত করতে দূরবর্তীভাবে এআই মডেল প্যারামিটারগুলি এবং প্রম্পটগুলি এবং অন্যান্য সংহতকরণগুলি কনফিগার করার মতো ক্ষেত্রে ব্যবহারের অনুমতি দেয়।
- আপনার পরিবেশের পরিবর্তনের প্রতিক্রিয়া বা অন্যান্য অ্যাপ্লিকেশন পরিবর্তনের প্রতিক্রিয়া হিসাবে গতিশীলভাবে প্যারামিটারগুলি সামঞ্জস্য করুন, যেমন এলএলএম পরামিতি এবং মডেল শেষ পয়েন্টগুলি আপডেট করা।
- আপনার সার্ভার কলগুলি দূরবর্তীভাবে এপিআইগুলি আপডেট করে ব্যয় নিয়ন্ত্রণ করুন।
- আপনার সার্ভার অ্যাক্সেসকারী ক্লায়েন্টদের জন্য ফ্লাই অন-ফ্লাইতে কাস্টম কনফিগারেশন তৈরি করুন।
- কোন ক্লায়েন্টদের একটি প্যারামিটার মান পেয়েছে তা রেকর্ড করুন এবং এনটাইটেলমেন্ট যাচাইকরণ সিস্টেমের অংশ হিসাবে এটি Cloud Functions ব্যবহার করুন।
আপনি ক্লাউড রান, Cloud Functions বা স্ব-হোস্টেড সার্ভার পরিবেশে সার্ভার-সাইড Remote Config স্থাপন করতে পারেন।
আপনি শুরু করার আগে
ফায়ারবেস প্রকল্প তৈরি করতে, একটি পরিষেবা অ্যাকাউন্ট সেট আপ করতে এবং আপনার সার্ভারে ফায়ারবেস অ্যাডমিন নোড.জেএস এসডিকে যুক্ত করতে আপনার সার্ভারে ফায়ারবেস অ্যাডমিন এসডিকে যুক্ত করার নির্দেশাবলী অনুসরণ করুন।
পদক্ষেপ 1: ফায়ারবেস অ্যাডমিন নোড.জেএস এসডিকে আরম্ভ করুন এবং এপিআই অনুরোধগুলি অনুমোদিত করুন
আপনি যখন কোনও পরামিতি ছাড়াই অ্যাডমিন এসডিকে আরম্ভ করেন, তখন এসডিকে গুগল অ্যাপ্লিকেশন ডিফল্ট শংসাপত্রগুলি ব্যবহার করে এবং GOOGLE_APPLICATION_CREDENTIALS
এনভায়রনমেন্ট ভেরিয়েবল থেকে বিকল্পগুলি পড়ে। এসডিকে আরম্ভ করতে এবং Remote Config যুক্ত করতে:
import { initializeApp } from "firebase-admin/app";
import { getRemoteConfig } from "firebase-admin/remote-config";
// Initialize Firebase
const firebaseApp = initializeApp();
পদক্ষেপ 2: আপনার সার্ভার অ্যাপ্লিকেশনটির জন্য ডিফল্ট প্যারামিটার মানগুলি সনাক্ত করুন
আপনার অ্যাপ্লিকেশনটির ভেরিয়েবলগুলি সনাক্ত করুন যা আপনি 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} |
পদক্ষেপ 3: আপনার সার্ভার অ্যাপ্লিকেশনটি কনফিগার করুন
আপনি যে প্যারামিটারগুলি Remote Config দিয়ে ব্যবহার করতে চান তা নির্ধারণ করার পরে, ডিফল্ট মান নির্ধারণ করতে আপনার অ্যাপ্লিকেশনটি কনফিগার করুন, সার্ভার-নির্দিষ্ট Remote Config টেম্পলেট আনুন এবং এর মানগুলি ব্যবহার করুন। নিম্নলিখিত পদক্ষেপগুলি কীভাবে আপনার নোড.জেএস অ্যাপ্লিকেশনটি কনফিগার করবেন তা বর্ণনা করে।
টেমপ্লেট অ্যাক্সেস এবং লোড।
// Initialize server-side Remote Config const rc = getRemoteConfig(firebaseApp); const template = rc.initServerTemplate(); // Load Remote Config await template.load();
আপনি যদি Cloud Functions মধ্যে নোড.জেএস ব্যবহার করছেন তবে আপনি একক পদক্ষেপে টেমপ্লেটটি আরম্ভ করতে এবং লোড করতে অ্যাসিঙ্ক্রোনাস
getServerTemplate
ব্যবহার করতে পারেন:// Initialize server-side Remote Config const rc = getRemoteConfig(firebaseApp); const template = await rc.getServerTemplate();
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()
টেমপ্লেট লোডের পরে, টেমপ্লেট থেকে পরামিতি এবং মানগুলি আমদানি করতে
template.evaluate()
ব্যবহার করুন:// Add template parameters to config const config = template.evaluate();
Ally চ্ছিকভাবে, আপনি যদি আপনার Remote Config টেম্পলেটটিতে শর্তগুলি সেট করেন তবে আপনার পছন্দসই মানগুলি সংজ্ঞায়িত করুন এবং সরবরাহ করুন:
- যদি শতাংশ শর্ত ব্যবহার করে, আপনি
template.evaluate()
মধ্যে আপনার শর্ত (গুলি) মূল্যায়ন করতে ব্যবহার করতে চান এমনrandomizationId
যুক্ত করুন ve - যদি কাস্টম সংকেত ব্যবহার করে, বৈশিষ্ট্যগুলি এবং তাদের মানগুলি সংজ্ঞায়িত করুন। কাস্টম সিগন্যালগুলি ফায়ারবেস অ্যাডমিন নোড.জেএস এসডিকে 12.5.0 এবং উচ্চতর সহ উপলব্ধ।
উদাহরণস্বরূপ, আপনি আপনার সার্ভারের সাথে যোগাযোগকারী প্রতিটি ব্যবহারকারী যথাযথ
randomizationId
গোষ্ঠীতে যুক্ত করা হয়েছে, নির্দিষ্ট ক্লায়েন্ট সংস্করণগুলিকে লক্ষ্য করার জন্য কাস্টম সিগন্যাল হিসাবেversion
এবং ক্লায়েন্ট প্ল্যাটফর্মকে লক্ষ্য করার জন্য কাস্টম সিগন্যাল হিসাবেplatform
সাথে যুক্ত হয়েছে তা নিশ্চিত করার জন্য আপনি একটি ফায়ারবেস ইনস্টলেশন আইডি বা একটি ব্যবহারকারী আইডি সেট করতে পারেন।শর্ত সম্পর্কে আরও তথ্যের জন্য, শর্ত নিয়মের ধরণগুলি দেখুন।
// 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" });
- যদি শতাংশ শর্ত ব্যবহার করে, আপনি
এরপরে, কনফিগারেশন ধ্রুবক থেকে আপনার প্রয়োজনীয় প্যারামিটার মানগুলি বের করুন। Remote Config থেকে প্রত্যাশিত ফর্ম্যাটে মানগুলি কাস্ট করতে
getters
ব্যবহার করুন। নিম্নলিখিত প্রকারগুলি সমর্থিত:- বুলিয়ান:
getBoolean
- অবজেক্ট:
getValue
- সংখ্যা:
getNumber
- স্ট্রিং:
getString
উদাহরণস্বরূপ, আপনি যদি আপনার সার্ভারে ভার্টেক্স এআই বাস্তবায়ন করছেন এবং মডেল এবং মডেল পরামিতিগুলি পরিবর্তন করতে চান তবে আপনি
model_name
এবংgeneration_config
জন্য পরামিতিগুলি কনফিগার করতে চাইতে পারেন। আপনি কীভাবে 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}`;
- বুলিয়ান:
যদি আপনার সার্ভারটি দীর্ঘ-চলমান হয়, সার্ভারলেস পরিবেশের বিপরীতে, আপনি Remote Config সার্ভার থেকে সর্বাধিক আপ-টু-ডেট টেম্পলেট আনছেন তা নিশ্চিত করার জন্য পর্যায়ক্রমে টেমপ্লেটটি পুনরায় লোড করতে
setInterval
ব্যবহার করুন।
পদক্ষেপ 4: Remote Config সার্ভার-নির্দিষ্ট পরামিতি মানগুলি সেট করুন
এরপরে, একটি সার্ভার Remote Config টেম্পলেট তৈরি করুন এবং আপনার অ্যাপ্লিকেশনটিতে ব্যবহারের জন্য পরামিতি এবং মানগুলি কনফিগার করুন।
একটি সার্ভার-নির্দিষ্ট Remote Config টেম্পলেট তৈরি করতে:
- ফায়ারবেস কনসোল Remote Config প্যারামিটার পৃষ্ঠাটি খুলুন এবং ক্লায়েন্ট/সার্ভার নির্বাচনকারী থেকে সার্ভার নির্বাচন করুন।
- আপনি আপনার অ্যাপ্লিকেশনটিতে সংজ্ঞায়িত প্যারামিটারগুলির মতো একই নাম এবং ডেটা প্রকারের সাথে Remote Config প্যারামিটারগুলি সংজ্ঞায়িত করুন এবং মান সরবরাহ করুন। এই মানগুলি আপনি যখন টেমপ্লেটটি আনতে এবং মূল্যায়ন করেন এবং আপনার ভেরিয়েবলগুলিতে এই মানগুলি নির্ধারণ করেন তখন আপনার সার্ভার অ্যাপ্লিকেশনটি কনফিগার করতে আপনি সেট করা
defaultConfig
ওভাররাইড করবে। - Ally চ্ছিকভাবে, আপনি নির্ধারিত দৃষ্টান্ত বা কাস্টম সংকেতগুলির এলোমেলো নমুনায় অবিচ্ছিন্নভাবে মান প্রয়োগ করতে শর্তগুলি সেট করুন। শর্ত সম্পর্কে আরও তথ্যের জন্য, শর্ত নিয়মের ধরণগুলি দেখুন।
- আপনি যখন পরামিতি যুক্ত করা শেষ করেছেন, পরিবর্তনগুলি প্রকাশ করুন ক্লিক করুন।
- পরিবর্তনগুলি পর্যালোচনা করুন এবং পরিবর্তনগুলি আবার প্রকাশ করুন ক্লিক করুন।
পদক্ষেপ 5: Cloud Functions বা ক্লাউড রান সহ স্থাপন করুন
যদি আপনার সার্ভার অ্যাপ্লিকেশনটি হালকা ওজনের এবং ইভেন্ট-চালিত হয় তবে আপনার Cloud Functions ব্যবহার করে আপনার কোডটি স্থাপন করার বিষয়টি বিবেচনা করা উচিত। উদাহরণস্বরূপ, বলুন যে আপনার কাছে এমন একটি অ্যাপ্লিকেশন রয়েছে যার মধ্যে একটি জেনারেটর এআই এপিআই দ্বারা চালিত চরিত্রের কথোপকথন অন্তর্ভুক্ত রয়েছে (উদাহরণস্বরূপ, গুগল এআই বা ভার্টেক্স এআই )। এই ক্ষেত্রে, আপনি আপনার এলএলএম-সার্ভিং লজিককে এমন একটি ফাংশনে হোস্ট করতে পারেন যা আপনার অ্যাপ্লিকেশনটি অন-ডিমান্ডে কল করে।
সার্ভার-সাইড Remote Config সহ 2 য় জেন Cloud Functions ব্যবহার করে এমন একটি সমাধানের মাধ্যমে কাজ করতে, Cloud Functions এবং ভার্টেক্স এআই সহ সার্ভার-সাইড Remote Config ব্যবহার করুন।
Cloud Functions সাথে আপনার অ্যাপটি মোতায়েন সম্পর্কে আরও জানতে, শুরু করুন শুরু করুন: আপনার প্রথম ফাংশনগুলি লিখুন, পরীক্ষা করুন এবং স্থাপন করুন ।
সার্ভার-সাইড Remote Config সহ একটি নমুনা কলযোগ্য ফাংশন ব্যবহার করে দেখুন এবং App Check Remote Config এবং App Check সহ ভার্টেক্স এআই জেমিনি এপিআই কল করুন ।
আপনি যদি কোনও সার্ভার-রেন্ডারড ওয়েব অ্যাপ্লিকেশন তৈরি করছেন তবে App Hosting জনপ্রিয় ওয়েব ফ্রেমওয়ার্কগুলির জন্য সমর্থন রয়েছে।
অন্যথায়, আপনি মেঘ রান বিবেচনা করতে পারেন। ক্লাউড রান দিয়ে আপনার সার্ভার অ্যাপটি স্থাপন করতে, কুইকস্টার্টে গাইডটি অনুসরণ করুন: ক্লাউড রানের জন্য একটি নোড.জেএস পরিষেবা স্থাপন করুন ।
ক্লাউড রান এবং Cloud Functions জন্য সর্বোত্তম ব্যবহারের কেসগুলি সম্পর্কে আরও তথ্যের জন্য, Cloud Functions বনাম ক্লাউড রান দেখুন: কখন অন্যটির উপরে ব্যবহার করতে হবে ।