এই নির্দেশিকা থেকে জানতে পারবেন যে কীভাবে সার্ভার-সাইড Remote Config-এর সাথে ২য় জেনারেশন Cloud Functions ব্যবহার শুরু করবেন যাতে Agent Platform Gemini API (formerly Vertex AI)-এ সার্ভার-সাইড কল করা যায়।
এই টিউটোরিয়ালে, আপনি চ্যাটবটের মতো ফাংশনে Remote Config যোগ করবেন যা ব্যবহারকারীর প্রশ্নের উত্তর দিতে Gemini মডেল ব্যবহার করে। Remote Config Gemini API ইনপুট ম্যানেজ করবে (এর মধ্যে এমন একটি প্রম্পটও রয়েছে যা আপনি ইনকামিং ব্যবহারকারীর কোয়েরিতে প্রিপেন্ড করবেন) এবং আপনি Firebase কনসোল থেকে চাহিদা অনুযায়ী এইসব ইনপুট আপডেট করতে পারবেন। এছাড়াও, আপনি ফাংশনটি পরীক্ষা এবং ডিবাগ করতে Firebase Local Emulator Suite ব্যবহার করবেন এবং তারপরে, এটি কাজ করছে কিনা তা যাচাই করার পরে, আপনি এটি Google Cloud-এ ডিপ্লয় এবং পরীক্ষা করবেন।
পূর্বশর্ত
এই নির্দেশিকা ধরে নেয় যে আপনি অ্যাপ্লিকেশন ডেভেলপ করার জন্য জাভাস্ক্রিপ্ট ব্যবহার করার সাথে পরিচিত।
Firebase প্রোজেক্ট সেট-আপ করা
আপনার আগে থেকে কোনও Firebase প্রোজেক্ট না থাকলে:
Firebase কনসোল-এ সাইন-ইন করুন।
প্রোজেক্ট তৈরি করুন বিকল্পে ক্লিক করুন এবং তারপরে নিম্নলিখিত বিকল্পগুলির মধ্যে যেকোনও একটি ব্যবহার করুন:
- বিকল্প ১: "প্রোজেক্ট তৈরি করুন" ওয়ার্কফ্লোর প্রথম ধাপে নতুন প্রোজেক্টের নাম লিখে নতুন Firebase প্রোজেক্ট (এবং এর সাথে সম্পর্কিত Google Cloud প্রোজেক্ট অটোমেটিক) তৈরি করুন।
- বিকল্প ২: "প্রোজেক্ট তৈরি করুন" ওয়ার্কফ্লোর প্রথম ধাপে ড্রপ-ডাউন মেনু থেকে আপনার Google Cloud প্রোজেক্টের নাম বেছে নিয়ে আগে থেকে থাকা Google Cloud প্রোজেক্টে "Firebase যোগ করুন"।
প্রম্পট করা হলে, এই সমাধান ব্যবহার করার জন্য আপনাকে Google Analytics সেট-আপ করতে হবে না।
আপনার প্রোজেক্ট তৈরি করতে অন-স্ক্রিন নির্দেশাবলী অনুসরণ করা চালিয়ে যান।
আপনার আগে থেকেই Firebase প্রোজেক্ট থাকলে:
আপনার ডেভেলপমেন্ট এনভায়রনমেন্ট কনফিগার করুন বিকল্পে যান।
আপনার ডেভেলপমেন্ট এনভায়রনমেন্ট কনফিগার করুন
ফাংশন লেখার জন্য আপনার Node.js এনভায়রনমেন্টের প্রয়োজন হবে এবং Cloud Functions রানটাইমে ফাংশন ডিপ্লয় করার জন্য আপনার Firebase CLI-এর প্রয়োজন হবে।
-
Node.js এবং npm ইনস্টল করার জন্য, আমরা Node Version Manager ব্যবহার করার সাজেশন দিই।
আপনার পছন্দের পদ্ধতি ব্যবহার করে Firebase CLI ইনস্টল করুন। যেমন, npm ব্যবহার করে CLI ইনস্টল করতে, এই কমান্ড রান করুন:
npm install -g firebase-tools@latestএই কমান্ড বিশ্বব্যাপী উপলভ্য
firebaseকমান্ড ইনস্টল করে। এই কমান্ড কাজ না করলে, আপনাকে npm-এর অনুমতি পরিবর্তন করতে হতে পারে।firebase-tools-এর লেটেস্ট ভার্সনে আপডেট করতে, একই কমান্ড আবার রান করুন।firebase-functionsএবংfirebase-adminইনস্টল করুন এবং--saveব্যবহার করে সেগুলি আপনারpackage.json-এ সেভ করুন:npm install firebase-functions@latest firebase-admin@latest --save
আপনি এখন এই সমাধানের প্রয়োগ করার জন্য প্রস্তুত।
প্রয়োগ
আপনার ২য় জেনারেশন Cloud Functions, Remote Config ও Agent Platform-এর সাথে তৈরি, পরীক্ষা ও ডিপ্লয় করতে এইসব ধাপ অনুসরণ করুন:
- Google Cloud কনসোলে Agent Platformটি সাজেস্ট করা API চালু করুন।
- আপনার প্রোজেক্ট শুরু করুন এবং Node ডিপেন্ডেন্সি ইনস্টল করুন।
- আপনার Admin SDK পরিষেবা অ্যাকাউন্টের জন্য IAM অনুমতি কনফিগার করুন এবং আপনার 'কী' সেভ করুন।
- ফাংশন তৈরি করুন।
- সার্ভার-নির্দিষ্ট Remote Config টেমপ্লেট তৈরি করুন।
- আপনার ফাংশন ডিপ্লয় করুন এবং Firebase Local Emulator Suite-এ এটি টেস্ট করুন।
- আপনার ফাংশন Google Cloud-এ ডেপ্লয় করুন।
ধাপ ১: Google Cloud কনসোলে Agent Platformটি সাজেস্ট করা API চালু করুন
- Google Cloud কনসোল খুলুন এবং প্রম্পট করা হলে, আপনার প্রোজেক্ট বেছে নিন।
- কনসোলের একদম উপরে সার্চ ফিল্ডে, Agent Platform লিখুন এবং ফলাফল হিসেবে Agent Platform দেখানো পর্যন্ত অপেক্ষা করুন।
- Agent Platform বেছে নিন। Agent Platform ড্যাশবোর্ড দেখা যাবে।
সাজেস্ট করা সব API চালু করুন বিকল্পে ক্লিক করুন।
API চালু করার প্রক্রিয়া সম্পূর্ণ হতে কয়েক মুহূর্ত সময় লাগতে পারে। চালু করার প্রসেস সম্পূর্ণ না হওয়া পর্যন্ত পৃষ্ঠাটি অ্যাক্টিভ ও খোলা রাখুন।
বিলিং চালু করা না থাকলে, আপনাকে একটি Cloud Billing অ্যাকাউন্ট যোগ বা লিঙ্ক করতে বলা হবে। বিলিং অ্যাকাউন্ট চালু করার পরে, Agent Platform ড্যাশবোর্ডে ফিরে যান এবং যাচাই করুন যে সব সাজেস্ট করা API চালু করা আছে কিনা।
ধাপ ২: আপনার প্রোজেক্ট শুরু করুন এবং Node ডিপেন্ডেন্সি ইনস্টল করুন
- আপনার কম্পিউটারে একটি টার্মিনাল খুলুন এবং আপনি যেখানে ফাংশন তৈরি করার পরিকল্পনা করছেন সেই ডিরেক্টরিতে নেভিগেট করুন।
Firebase-এ লগ-ইন করুন:
firebase loginCloud Functions for Firebase শুরু করতে এই কমান্ড রান করুন:
firebase init functionsআগে থেকে থাকা প্রোজেক্ট ব্যবহার করুন বিকল্প বেছে নিন এবং আপনার প্রোজেক্ট আইডি উল্লেখ করুন।
ব্যবহার করার জন্য ভাষা বেছে নেওয়ার প্রম্পট দেখানো হলে, Javascript বেছে নিয়ে Enter প্রেস করুন।
অন্য সব বিকল্পের জন্য, ডিফল্ট বেছে নিন।
বর্তমান ডিরেক্টরিতে একটি
functionsডিরেক্টরি তৈরি করা হয়েছে। এর মধ্যে, আপনি একটিindex.jsফাইল পাবেন যা আপনি আপনার ফাংশন তৈরি করতে ব্যবহার করবেন, একটিnode_modulesডিরেক্টরি যাতে আপনার ফাংশনের জন্য ডিপেন্ডেন্সি রয়েছে, এবং একটিpackage.jsonফাইল যাতে প্যাকেজ ডিপেন্ডেন্সি রয়েছে।Admin SDK এবং Agent Platform প্যাকেজ যোগ করতে, নিম্নলিখিত কমান্ডগুলি চালান,
--saveব্যবহার করে নিশ্চিত করুন যে এটি আপনারpackage.jsonফাইলে সেভ করা হয়েছে:cd functions npm install firebase-admin@latest @google-cloud/vertexai --save
আপনার functions/package.json ফাইলটি এখন নিম্নলিখিতটির মতো দেখতে হবে, যেখানে লেটেস্ট ভার্সন
উল্লেখ করা আছে:
{
"name": "functions",
"description": "Cloud Functions for Firebase",
"scripts": {
"serve": "firebase emulators:start --only functions",
"shell": "firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"engines": {
"node": "20"
},
"main": "index.js",
"dependencies": {
"@google-cloud/vertexai": "^1.1.0",
"firebase-admin": "^12.1.0",
"firebase-functions": "^5.0.0"
},
"devDependencies": {
"firebase-functions-test": "^3.1.0"
},
"private": true
}
মনে রাখবেন, আপনি ESLint ব্যবহার করলে, আপনি একটি স্ট্যানজা দেখতে পাবেন যাতে এটি অন্তর্ভুক্ত থাকে। এছাড়াও,
নিশ্চিত করুন যে Node.js-এর ইনস্টল করা ভার্সন এবং Google Cloud-এ শেষ পর্যন্ত যে ভার্সনটি রান করবেন,
সেটির সাথে নোড ইঞ্জিন ভার্সন মিলছে। যেমন, আপনার package.json-এ engines স্ট্যানজা Node ভার্সন ১৮ হিসেবে কনফিগার করা থাকলে এবং আপনি Node.js ২০ ব্যবহার করলে, ২০ ব্যবহার করার জন্য ফাইলটি আপডেট করুন:
"engines": {
"node": "20"
},
ধাপ ৩: আপনার Admin SDK পরিষেবা অ্যাকাউন্টের জন্য IAM অনুমতি কনফিগার করুন এবং আপনার 'কী' সেভ করুন
এই সমাধানে, আপনার ফাংশন চালানোর জন্য Firebase Admin SDK পরিষেবা অ্যাকাউন্ট ব্যবহার করবেন।
- Google Cloud কনসোলে, IAM ও অ্যাডমিন পৃষ্ঠা খুলুন,
এবং Admin SDK পরিষেবা অ্যাকাউন্ট (নাম
firebase-adminsdk) খুঁজুন। - অ্যাকাউন্ট বেছে নিয়ে প্রিন্সিপাল এডিট করুন বিকল্পে ক্লিক করুন। 'অ্যাক্সেস এডিট করুন' পৃষ্ঠা দেখা যাবে।
- অন্য ভূমিকা যোগ করুন বিকল্পে ক্লিক করে Remote Config দর্শক বেছে নিন।
- অন্য ভূমিকা যোগ করুন বিকল্পে ক্লিক করে AI প্ল্যাটফর্ম ডেভেলপার বেছে নিন।
- অন্য ভূমিকা যোগ করুন বিকল্পে ক্লিক করে Agent Platform ব্যবহারকারী বেছে নিন।
- অন্য ভূমিকা যোগ করুন বিকল্পে ক্লিক করে Cloud Run Invoker বেছে নিন।
- সেভ করুন বিকল্পে ক্লিক করুন।
এরপর, Admin SDK পরিষেবা অ্যাকাউন্টের ক্রেডেনশিয়াল এক্সপোর্ট করুন এবং আপনার GOOGLE_APPLICATION_CREDENTIALS এনভায়রনমেন্ট ভেরিয়েবলে
সেভ করুন।
- Google Cloud কনসোলে, ক্রেডেনশিয়াল পৃষ্ঠা খুলুন।
- বিবরণ পৃষ্ঠা খুলতে Admin SDK পরিষেবা অ্যাকাউন্টে ক্লিক করুন।
- কী বিকল্পে ক্লিক করুন।
- কী যোগ করুন > নতুন কী তৈরি করুন বিকল্পে ক্লিক করুন।
- কী-এর ধরন হিসেবে JSON বেছে নেওয়া হয়েছে কিনা তা নিশ্চিত করুন, তারপর তৈরি করুন বিকল্পে ক্লিক করুন।
- আপনার কম্পিউটারের কোনও নিরাপদ জায়গায় 'কী' ডাউনলোড করুন।
আপনার টার্মিনাল থেকে, এনভায়রনমেন্ট ভেরিয়েবেল হিসেবে 'কী' এক্সপোর্ট করুন:
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-key.json"
ধাপ ৪: ফাংশন তৈরি করুন
এই ধাপে, আপনি এমন একটি ফাংশন তৈরি করবেন যা ব্যবহারকারীর ইনপুট ম্যানেজ করে এবং AI-এর মাধ্যমে পরিচালিত উত্তর জেনারেট করে। আপনি একাধিক কোড স্নিপেট একত্রিত করে একটি বিস্তৃত ফাংশন তৈরি করবেন যা Admin SDK এবং Agent Platform Gemini API (formerly Vertex AI) শুরু করে, Remote Config ব্যবহার করে ডিফল্ট প্যারামিটার কনফিগার করে, লেটেস্ট Remote Config প্যারামিটার নিয়ে আসে, ব্যবহারকারীর ইনপুট প্রসেস করে এবং ব্যবহারকারীকে একটি উত্তর স্ট্রিম করে।
- আপনার কোডবেসে, টেক্সট এডিটর বা IDE-তে
functions/index.jsখুলুন। আগে থেকে থাকা কন্টেন্ট মুছে দিন এবং তারপরে Admin SDK, Remote Config ও Agent Platform SDK যোগ করুন এবং ফাইলে নিম্নলিখিত কোড পেস্ট করে অ্যাপ শুরু করুন:
const { onRequest } = require("firebase-functions/https"); const { requiresRole, requiresAPI } = require("firebase-functions"); const logger = require("firebase-functions/logger"); const { initializeApp } = require("firebase-admin/app"); const { VertexAI } = require('@google-cloud/vertexai'); const { getRemoteConfig } = require("firebase-admin/remote-config"); requiresRole("roles/aiplatform.user"); requiresRole("roles/cloudconfig.viewer"); requiresAPI("aiplatform.googleapis.com", "Needed to query Vertex AI Gemini models"); requiresAPI("firebaseremoteconfig.googleapis.com", "Needed to fetch server-side Remote Config templates"); // Set and check environment variables. const project = process.env.GCLOUD_PROJECT; // Initialize Firebase. const app = initializeApp();Remote Config সার্ভারের সাথে কানেক্ট করতে না পারলে, আপনার ফাংশন যে ডিফল্ট ভ্যালু ব্যবহার করবে তা কনফিগার করুন। এই সমাধান
textModel,generationConfig,safetySettings,textPromptএবংlocation-কে Remote Config প্যারামিটার হিসেবে কনফিগার করে যা Remote Config প্যারামিটারের সাথে সামঞ্জস্যপূর্ণ, যা আপনি এই গাইডে আরও কনফিগার করবেন। এইসব প্যারামিটার সম্পর্কে আরও তথ্য পেতে, Vertex AI Node.js ক্লায়েন্ট দেখুন।বিকল্প হিসেবে, আপনি Agent Platform Gemini API (formerly Vertex AI) অ্যাক্সেস করতে পারবেন কিনা তা নিয়ন্ত্রণ করার জন্য একটি প্যারামিটার কনফিগার করতে পারবেন (এই উদাহরণে,
vertex_enabledনামের একটি প্যারামিটার)। আপনার ফাংশন পরীক্ষা করার সময় এই সেট-আপ উপযোগী হতে পারে। নিম্নলিখিত কোড স্নিপেটে, এই ভ্যালুfalseহিসেবে সেট করা হয়েছে, যা আপনি বেসিক ফাংশন ডিপ্লয়মেন্ট টেস্ট করার সময় Agent Platform ব্যবহার করা এড়িয়ে যাবে। এটিtrue-এ সেট করলে Agent Platform Gemini API (formerly Vertex AI) চালু হবে।// Define default (fallback) parameter values for Remote Config. const defaultConfig = { // Default values for Vertex AI. model_name: "gemini-1.5-flash-002", generation_config: [{ "stopSequences": [], "temperature": 0.7, "maxOutputTokens": 64, "topP": 0.1, "topK": 20 }], 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!", safety_settings: [{ "category": "HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE" }], location: 'us-central1', // Disable Vertex AI Gemini API access for testing. vertex_enabled: false };ফাংশন তৈরি করে সার্ভার-সাইড Remote Config সেট-আপ করুন:
// Export the function. exports.generateWithVertex = onRequest(async (request, response) => { try { // Set up Remote Config. const rc = getRemoteConfig(app); // Get the Remote Config template and assign default values. const template = await rc.getServerTemplate({ defaultConfig: defaultConfig }); // Add the template evaluation to a constant. const config = template.evaluate(); // Obtain values from Remote Config. const textModel = config.getString("model_name") || defaultConfig.model_name; const textPrompt = config.getString("prompt") || defaultConfig.prompt; const generationConfig = config.getString("generation_config") || defaultConfig.generation_config; const safetySettings = config.getString("safety_settings") || defaultConfig.safety_settings; const location = config.getString("location") || defaultConfig.location; const vertexEnabled = config.getBoolean("is_vertex_enabled") || defaultConfig.vertex_enabled;Agent Platform সেট-আপ করুন এবং চ্যাট ও উত্তর দেওয়ার লজিক যোগ করুন:
// Allow user input. const userInput = request.query.prompt || ''; // Instantiate Vertex AI. const vertex_ai = new VertexAI({ project: project, location: location }); const generativeModel = vertex_ai.getGenerativeModel({ model: textModel, safety_settings: safetySettings, generation_config: generationConfig, }); // Combine prompt from Remote Config with optional user input. const chatInput = textPrompt + " " + userInput; if (!chatInput) { return res.status(400).send('Missing text prompt'); } // If vertexEnabled isn't true, do not send queries to Vertex AI. if (vertexEnabled !== true) { response.status(200).send({ message: "Vertex AI call skipped. Vertex is not enabled." }); return; } logger.log("\nRunning with model ", textModel, ", prompt: ", textPrompt, ", generationConfig: ", generationConfig, ", safetySettings: ", safetySettings, " in ", location, "\n"); const result = await generativeModel.generateContentStream(chatInput); response.writeHead(200, { 'Content-Type': 'text/plain' }); for await (const item of result.stream) { const chunk = item.candidates[0].content.parts[0].text; logger.log("Received chunk:", chunk); response.write(chunk); } response.end(); } catch (error) { logger.error(error); response.status(500).send('Internal server error'); } });ফাইল সেভ করে বন্ধ করুন।
ধাপ ৫: সার্ভার-নির্দিষ্ট Remote Config টেমপ্লেট তৈরি করুন
এরপর, আপনার ফাংশনে ব্যবহার করার জন্য সার্ভার-সাইড Remote Config টেমপ্লেট তৈরি করুন এবং প্যারামিটার ও ভ্যালু কনফিগার করুন। সার্ভার-নির্দিষ্ট Remote Config টেমপ্লেট তৈরি করতে:
Firebase কনসোলে, DevOps ও এনগেজমেন্ট > রিমোট কনফিগ বিকল্পে যান।
পৃষ্ঠার সবচেয়ে উপরে ক্লায়েন্ট/সার্ভার বাছাইকারী থেকে, সার্ভার বেছে নিন।
- আপনি প্রথমবার Remote Config বা সার্ভার টেমপ্লেট ব্যবহার করলে, কনফিগারেশন তৈরি করুন বিকল্পে ক্লিক করুন। আপনার প্রথম সার্ভার-সাইড প্যারামিটার তৈরি করুন প্যানেলটি দেখা যাবে।
- আপনি যদি আগে Remote Config সার্ভার টেমপ্লেট ব্যবহার করে থাকেন, তাহলে প্যারামিটার যোগ করুন বিকল্পে ক্লিক করুন।
নিম্নলিখিত Remote Config প্যারামিটারগুলি সংজ্ঞায়িত করুন:
প্যারামিটারের নাম বিবরণ ধরন ডিফল্ট ভ্যালু model_nameমডেলের নাম
আপনার কোডে ব্যবহার করার জন্য মডেলের নামের আপ-টু-ডেট তালিকা দেখতে, মডেলের ভার্সন ও লাইফসাইকেল অথবা উপলভ্য মডেলের নাম দেখুন।স্ট্রিং gemini-2.0-flashpromptব্যবহারকারীর কোয়েরির আগে প্রিপেন্ড করার প্রম্পট। স্ট্রিং 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}]safety_settingsAgent Platform-এর জন্য নিরাপত্তা সেটিংস JSON [{"category": "HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "HarmBlockThreshold.BLOCK_LOW_AND_ABOVE"}]locationAgent Platform পরিষেবা ও মডেল রান করার লোকেশন স্ট্রিং globalis_vertex_enabledঐচ্ছিক প্যারামিটার যা কোয়েরি Agent Platform-এ পাঠানো হবে কিনা তা নিয়ন্ত্রণ করে। Boolean trueপ্যারামিটার যোগ করা হয়ে গেলে, আপনার প্যারামিটার এবং সেগুলির ডেটার ধরন সঠিক কিনা তা ডবল-চেক করুন, তারপর পরিবর্তন প্রকাশ করুন বিকল্পে ক্লিক করুন।
ধাপ ৬: আপনার ফাংশন ডিপ্লয় করুন এবং Firebase Local Emulator Suite-এ এটি পরীক্ষা করুন
এখন আপনি Firebase Local Emulator Suite-এর মাধ্যমে লোকালি আপনার ফাংশন ডিপ্লয় ও টেস্ট করার জন্য রেডি।
GOOGLE_APPLICATION_CREDENTIALS-কে এনভায়রনমেন্ট ভেরিয়েবল হিসেবে সেট করেছেন কিনা তা ভাল করে দেখে নিন, যেমনটি ধাপ ৩: আপনার Admin SDK পরিষেবা অ্যাকাউন্টের জন্য IAM অনুমতি কনফিগার করুন এবং আপনার কী সেভ করুন-এ বর্ণনা করা হয়েছে। তারপর, আপনারfunctionsডিরেক্টরির পেরেন্ট ডিরেক্টরি থেকে, Firebase এমুলেটরে আপনার ফাংশন ডিপ্লয় করুন:firebase emulators:start --project PROJECT_ID --only functionsএমুলেটরের লগ পৃষ্ঠা খুলুন। এটি আপনার ফাংশন লোড হয়েছে বলে দেখাবে।
নিম্নলিখিত কমান্ড রান করে আপনার ফাংশন অ্যাক্সেস করুন, যেখানে PROJECT_ID হল আপনার প্রোজেক্ট আইডি এবং LOCATION হল সেই অঞ্চল যেখানে আপনি ফাংশনটি ডিপ্লয় করেছেন (যেমন,
us-central1):curl http://localhost:5001/PROJECT_ID/LOCATION/generateWithVertexউত্তরের জন্য অপেক্ষা করুন, তারপর Firebase এমুলেটর লগ পৃষ্ঠা বা আপনার কনসোলে ফিরে যান এবং কোনও সমস্যা বা সতর্কতা আছে কিনা তা চেক করুন।
কিছু ব্যবহারকারীর ইনপুট পাঠানোর চেষ্টা করুন, মনে রাখবেন যে
is_vertex_enabledআপনার Remote Config সার্ভার টেমপ্লেটে কনফিগার করা হয়েছে, এটি Agent Platform Gemini API (formerly Vertex AI)-এর মাধ্যমে Gemini মডেল অ্যাক্সেস করবে এবং এর জন্য চার্জ লাগতে পারে:curl http://localhost:5001/PROJECT_ID/LOCATION/generateWithVertex?prompt=Tell%20me%20everything%20you%20know%20about%20catsFirebase কনসোলে আপনার Remote Config সার্ভার টেমপ্লেটে পরিবর্তন করুন, তারপর পরিবর্তনগুলি লক্ষ্য করতে আপনার ফাংশন আবার অ্যাক্সেস করুন।
ধাপ ৭: Google Cloud-এ আপনার ফাংশন ডিপ্লয় করুন
আপনার ফাংশন পরীক্ষা ও যাচাই করার পরে, আপনি Google Cloud-এ ডিপ্লয় করতে এবং লাইভ ফাংশন পরীক্ষা করতে পারবেন।
আপনার ফাংশন ডিপ্লয় করুন
Firebase CLI ব্যবহার করে আপনার ফাংশন ডিপ্লয় করুন:
firebase deploy --only functions
ফাংশনে অননুমোদিত অ্যাক্সেস ব্লক করুন
Firebase ব্যবহার করে ফাংশন ডিপ্লয় করা হলে, আপনার সংস্থার নীতিতে বিধিনিষেধ না থাকলে, ডিফল্ট হিসেবে যাচাই না করা ইনভোকেশন অনুমোদিত হয়। টেস্টিং চলাকালীন এবং App Check-এর মাধ্যমে সুরক্ষিত করার আগে, আমরা সাজেস্ট করি যে যাচাই না করা অ্যাক্সেস ব্লক করুন।
ফাংশনে যাচাই না করা অ্যাক্সেস ব্লক করতে:
Google Cloud কনসোলে, Cloud Run খুলুন।
generateWithVertex-এ ক্লিক করুন, তারপর নিরাপত্তা ট্যাবে ক্লিক করুন।যাচাইকরণ প্রয়োজন বিকল্প চালু করে সেভ করুন বিকল্পে ক্লিক করুন।
Admin SDK পরিষেবা অ্যাকাউন্টের ক্রেডেনশিয়াল ব্যবহার করার জন্য আপনার ব্যবহারকারীর অ্যাকাউন্ট কনফিগার করুন
যেহেতু Admin SDK পরিষেবা অ্যাকাউন্টে ফাংশন রান করা এবং Remote Config ও Agent Platform Gemini API (formerly Vertex AI)-এর সাথে ইন্টার্যাক্ট করার জন্য প্রয়োজনীয় সব ভূমিকা ও অনুমতি আছে, তাই আপনি নিজের ফাংশন রান করার জন্য এটি ব্যবহার করতে চাইবেন। এটি করতে, আপনার ব্যবহারকারীর অ্যাকাউন্ট থেকে অ্যাকাউন্টের জন্য টোকেন তৈরি করতে হবে।
Admin SDK পরিষেবা অ্যাকাউন্টের বিশেষ অধিকার সহ আপনার ব্যবহারকারীর অ্যাকাউন্ট এবং ফাংশন কীভাবে কনফিগার করবেন তা নিম্নলিখিত ধাপগুলিতে বর্ণনা করা হয়েছে।
- Google Cloud কনসোলে, IAM Service Account Credentials API চালু করুন।
- আপনার ব্যবহারকারীর অ্যাকাউন্টকে পরিষেবা অ্যাকাউন্ট টোকেন ক্রিয়েটর ভূমিকা দিন: Google Cloud কনসোল থেকে, IAM ও অ্যাডমিন > IAM খুলুন, আপনার ব্যবহারকারীর অ্যাকাউন্ট বেছে নিন এবং তারপর প্রিন্সিপাল এডিট করুন > অন্য ভূমিকা যোগ করুন বিকল্পে ক্লিক করুন।
পরিষেবা অ্যাকাউন্ট টোকেন ক্রিয়েটর বেছে নিন, তারপর সেভ করুন বিকল্পে ক্লিক করুন।
সার্ভিস অ্যাকাউন্ট ইমপার্সোনেশন সম্পর্কে আরও বিস্তারিত তথ্যের জন্য, Google Cloud ডকুমেন্টেশনে সার্ভিস অ্যাকাউন্ট ইমপার্সোনেশন দেখুন।
Google Cloud কনসোল Cloud Functions পৃষ্ঠা খুলুন এবং ফাংশন তালিকায় generateWithVertex ফাংশনে ক্লিক করুন।
ট্রিগার > এডিট করুন বিকল্প বেছে নিন এবং রানটাইম, বিল্ড, কানেকশন ও সুরক্ষা সেটিংস বড় করুন।
রানটাইম ট্যাব থেকে, রানটাইম পরিষেবা অ্যাকাউন্ট পরিবর্তন করে অ্যাডমিন SDK অ্যাকাউন্ট করুন।
পরবর্তী বিকল্পে ক্লিক করুন, তারপর ডিপ্লয় করুন বিকল্পে ক্লিক করুন।
gcloud CLI সেট-আপ করা
কমান্ড লাইন থেকে আপনার ফাংশন নিরাপদে চালাতে এবং পরীক্ষা করতে, আপনাকে Cloud Functions পরিষেবার মাধ্যমে যাচাই করতে হবে এবং একটি বৈধ যাচাইকরণ টোকেন পেতে হবে।
টোকেন জেনারেশন চালু করতে, gcloud CLI ইনস্টল ও কনফিগার করুন:
আপনার কম্পিউটারে gcloud CLI ইনস্টল করা না থাকলে, gcloud CLI ইনস্টল করুন লিঙ্কে যেভাবে বলা আছে সেইভাবে ইনস্টল করুন।
আপনার Google Cloud অ্যাকাউন্টের জন্য অ্যাক্সেস ক্রেডেনশিয়াল পান:
gcloud auth logingcloud-এ আপনার প্রোজেক্ট আইডি সেট করুন:
gcloud config set project PROJECT_ID
আপনার ফাংশন পরীক্ষা করুন
আপনি এখন Google Cloud-এ আপনার ফাংশন পরীক্ষা করার জন্য প্রস্তুত। ফাংশনটি পরীক্ষা করতে, নিম্নলিখিত কমান্ডটি রান করুন:
curl -X POST https://LOCATION-PROJECT_ID.cloudfunctions.net/generateWithVertex \
-H "Authorization: bearer $(gcloud auth print-identity-token)" \
-H "Content-Type: application/json"
ব্যবহারকারীর দেওয়া ডেটা দিয়ে আবার চেষ্টা করুন:
curl -X POST https://LOCATION-PROJECT_ID.cloudfunctions.net/generateWithVertex?prompt=Tell%20me%20everything%20you%20know%20about%20dogs \
-H "Authorization: bearer $(gcloud auth print-identity-token)" \
-H "Content-Type: application/json"
আপনি এখন আপনার Remote Config সার্ভার টেমপ্লেটে পরিবর্তন করতে, সেই পরিবর্তনগুলি প্রকাশ করতে এবং বিভিন্ন বিকল্প পরীক্ষা করতে পারবেন।
পরবর্তী ধাপ
- Firebase Cloud Functions সুরক্ষিত করতে App Check ব্যবহার করার সাজেশন দেয়। App Check-এর মাধ্যমে আপনার ফাংশন সুরক্ষিত করার বিষয়ে আরও তথ্যের জন্য Cloud Functions-এর জন্য App Check এনফোর্সমেন্ট চালু করুন দেখুন
- সার্ভার-সাইড Remote Config ও App Check-এর সাথে কল করা যায় এমন স্যাম্পেল ফাংশন ব্যবহার করে দেখুন Remote Config ও App Check-এর সাথে Agent Platform Gemini API (formerly Vertex AI) কল করুন।
- Cloud Functions for Firebase সম্পর্কে আরও জানুন।
- সার্ভার এনভায়রনমেন্টে Remote Config ব্যবহার করা সম্পর্কে আরও জানুন।