Vertex AI Gemini API তে সার্ভার-সাইড কল করার জন্য সার্ভার-সাইড Remote Config সাথে 2nd gen Cloud Functions ব্যবহার করে কীভাবে শুরু করা যায় এই নির্দেশিকাটি বর্ণনা করে।
এই টিউটোরিয়ালে, আপনি একটি চ্যাটবট-এর মতো ফাংশনে Remote Config যোগ করবেন যা ব্যবহারকারীর প্রশ্নের উত্তর দিতে Gemini মডেল ব্যবহার করে। Remote Config Gemini API ইনপুটগুলি পরিচালনা করবে (একটি প্রম্পট সহ যা আপনি আগত ব্যবহারকারীর প্রশ্নের জন্য প্রিপেন্ড করবেন) এবং আপনি Firebase কনসোল থেকে এই ইনপুটগুলি অন-ডিমান্ড আপডেট করতে পারেন। এছাড়াও আপনি Firebase Local Emulator Suite ব্যবহার করে ফাংশনটি পরীক্ষা এবং ডিবাগ করতে পারবেন এবং তারপরে, এটি কাজ করে কিনা তা যাচাই করার পরে, আপনি এটিকে Google Cloud স্থাপন এবং পরীক্ষা করবেন।
পূর্বশর্ত
এই নির্দেশিকা অনুমান করে যে আপনি অ্যাপ্লিকেশন বিকাশ করতে জাভাস্ক্রিপ্ট ব্যবহার করার সাথে পরিচিত।
একটি ফায়ারবেস প্রকল্প সেট আপ করুন
যদি আপনার কাছে ইতিমধ্যে একটি ফায়ারবেস প্রকল্প না থাকে:
Firebase কনসোলে সাইন ইন করুন।
প্রকল্প তৈরি করুন ক্লিক করুন, এবং তারপরে নিম্নলিখিত বিকল্পগুলির মধ্যে একটি ব্যবহার করুন:
- বিকল্প 1 : "প্রকল্প তৈরি করুন" কর্মপ্রবাহের প্রথম ধাপে একটি নতুন প্রকল্পের নাম প্রবেশ করে একটি নতুন ফায়ারবেস প্রকল্প (এবং এর অন্তর্নিহিত Google Cloud প্রকল্প স্বয়ংক্রিয়ভাবে) তৈরি করুন৷
- বিকল্প 2 : "প্রকল্প তৈরি করুন" কর্মপ্রবাহের প্রথম ধাপে ড্রপ-ডাউন মেনু থেকে আপনার Google Cloud প্রকল্পের নাম নির্বাচন করে একটি বিদ্যমান Google Cloud প্রকল্পে "Firebase যোগ করুন"।
অনুরোধ করা হলে, এই সমাধানটি ব্যবহার করার জন্য আপনাকে Google Analytics সেট আপ করতে হবে না ।
আপনার প্রকল্প তৈরি করতে অন-স্ক্রীন নির্দেশাবলী অনুসরণ করা চালিয়ে যান।
আপনার যদি ইতিমধ্যে একটি ফায়ারবেস প্রকল্প থাকে:
আপনার উন্নয়ন পরিবেশ কনফিগার করতে এগিয়ে যান।
আপনার উন্নয়ন পরিবেশ কনফিগার করুন
ফাংশন লিখতে আপনার একটি Node.js পরিবেশের প্রয়োজন হবে এবং Cloud Functions রানটাইমে ফাংশন স্থাপন করতে আপনার Firebase CLI প্রয়োজন হবে।
Node.js এবং npm ইনস্টল করার জন্য, আমরা নোড সংস্করণ ম্যানেজার ব্যবহার করার পরামর্শ দিই।
আপনার পছন্দের পদ্ধতি ব্যবহার করে Firebase CLI ইনস্টল করুন । উদাহরণস্বরূপ, npm ব্যবহার করে CLI ইনস্টল করতে, এই কমান্ডটি চালান:
npm install -g firebase-tools@latest
এই কমান্ডটি বিশ্বব্যাপী-উপলব্ধ
firebase
কমান্ড ইনস্টল করে। এই কমান্ড ব্যর্থ হলে, আপনাকে npm অনুমতি পরিবর্তন করতে হতে পারে।firebase-tools
এর সর্বশেষ সংস্করণে আপডেট করতে, একই কমান্ড পুনরায় চালু করুন।firebase-functions
এবংfirebase-admin
ইনস্টল করুন এবং আপনারpackage.json
এ সেভ করতে--save
ব্যবহার করুন :npm install firebase-functions@latest firebase-admin@latest --save
আপনি এখন এই সমাধান বাস্তবায়নে এগিয়ে যেতে প্রস্তুত।
বাস্তবায়ন
Remote Config এবং Vertex AI সাথে আপনার 2nd gen Cloud Functions তৈরি করতে, পরীক্ষা করতে এবং স্থাপন করতে এই পদক্ষেপগুলি অনুসরণ করুন:
- Google Cloud কনসোলে Vertex AI প্রস্তাবিত API গুলি সক্ষম করুন ৷
- আপনার প্রকল্প শুরু করুন এবং নোড নির্ভরতা ইনস্টল করুন ।
- আপনার Admin SDK পরিষেবা অ্যাকাউন্টের জন্য IAM অনুমতিগুলি কনফিগার করুন এবং আপনার কী সংরক্ষণ করুন ৷
- ফাংশন তৈরি করুন ।
- একটি সার্ভার-নির্দিষ্ট Remote Config টেমপ্লেট তৈরি করুন ।
- আপনার ফাংশন স্থাপন করুন এবং এটি Firebase Local Emulator Suite পরীক্ষা করুন ।
- Google Cloud আপনার ফাংশন স্থাপন করুন ।
ধাপ 1: Google Cloud কনসোলে Vertex AI প্রস্তাবিত API সক্ষম করুন
- Google Cloud কনসোল খুলুন, এবং যখন অনুরোধ করা হবে, আপনার প্রকল্প নির্বাচন করুন৷
- কনসোলের শীর্ষে অনুসন্ধান ক্ষেত্রে, Vertex AI লিখুন এবং ফলাফল হিসাবে Vertex AI প্রদর্শিত হওয়ার জন্য অপেক্ষা করুন।
- Vertex AI নির্বাচন করুন। Vertex AI ড্যাশবোর্ড প্রদর্শিত হবে।
সমস্ত প্রস্তাবিত API সক্ষম করুন ক্লিক করুন৷
API সক্ষমতা সম্পূর্ণ হতে কয়েক মুহূর্ত লাগতে পারে। পৃষ্ঠাটি সক্রিয় রাখুন এবং সক্রিয়করণ শেষ না হওয়া পর্যন্ত খুলুন।
বিলিং সক্ষম না হলে, আপনাকে একটি Cloud Billing অ্যাকাউন্ট যোগ বা লিঙ্ক করতে বলা হবে। একটি বিলিং অ্যাকাউন্ট সক্রিয় করার পরে, Vertex AI ড্যাশবোর্ডে ফিরে যান এবং যাচাই করুন যে সমস্ত প্রস্তাবিত API সক্রিয় আছে৷
ধাপ 2: আপনার প্রকল্প শুরু করুন এবং নোড নির্ভরতা ইনস্টল করুন
- আপনার কম্পিউটারে একটি টার্মিনাল খুলুন এবং ডিরেক্টরিতে নেভিগেট করুন যেখানে আপনি আপনার ফাংশন তৈরি করার পরিকল্পনা করছেন।
ফায়ারবেসে লগ ইন করুন:
firebase login
Cloud Functions for Firebase শুরু করতে নিম্নলিখিত কমান্ডটি চালান:
firebase init functions
একটি বিদ্যমান প্রকল্প ব্যবহার করুন নির্বাচন করুন এবং আপনার প্রকল্প আইডি নির্দিষ্ট করুন।
ব্যবহার করার জন্য ভাষা নির্বাচন করার জন্য অনুরোধ করা হলে, Javascript নির্বাচন করুন এবং এন্টার টিপুন।
অন্য সব বিকল্পের জন্য, ডিফল্ট নির্বাচন করুন।
বর্তমান ডিরেক্টরিতে একটি
functions
ডিরেক্টরি তৈরি করা হয়। ভিতরে, আপনি একটিindex.js
ফাইল পাবেন যা আপনি আপনার ফাংশন তৈরি করতে ব্যবহার করবেন, একটিnode_modules
ডিরেক্টরি যেখানে আপনার ফাংশনের নির্ভরতা রয়েছে এবং একটিpackage.json
ফাইল যেখানে প্যাকেজ নির্ভরতা রয়েছে।নিম্নলিখিত কমান্ডগুলি চালিয়ে Admin SDK এবং Vertex AI প্যাকেজ যোগ করুন,
--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 সংস্করণ 18 হিসাবে কনফিগার করা থাকে এবং আপনি Node.js 20 ব্যবহার করছেন, তাহলে 20 ব্যবহার করতে ফাইলটি আপডেট করুন:
"engines": {
"node": "20"
},
ধাপ 3: আপনার Admin SDK পরিষেবা অ্যাকাউন্টের জন্য IAM অনুমতিগুলি কনফিগার করুন এবং আপনার কী সংরক্ষণ করুন৷
এই সমাধানে, আপনি আপনার ফাংশন চালানোর জন্য Firebase Admin SDK পরিষেবা অ্যাকাউন্ট ব্যবহার করবেন।
- Google Cloud কনসোলে, IAM এবং অ্যাডমিন পৃষ্ঠাটি খুলুন এবং Admin SDK পরিষেবা অ্যাকাউন্টটি সনাক্ত করুন (নাম
firebase-adminsdk
)৷ - অ্যাকাউন্ট নির্বাচন করুন এবং প্রধান সম্পাদনা করুন ক্লিক করুন। সম্পাদনা অ্যাক্সেস পৃষ্ঠা প্রদর্শিত হবে।
- অন্য ভূমিকা যোগ করুন ক্লিক করুন, Remote Config ভিউয়ার নির্বাচন করুন।
- অন্য ভূমিকা যোগ করুন ক্লিক করুন, এআই প্ল্যাটফর্ম বিকাশকারী নির্বাচন করুন।
- অন্য ভূমিকা যোগ করুন ক্লিক করুন, Vertex AI ব্যবহারকারী নির্বাচন করুন।
- আরেকটি ভূমিকা যোগ করুন ক্লিক করুন, ক্লাউড রান ইনভোকার নির্বাচন করুন।
- Save এ ক্লিক করুন।
এর পরে, Admin SDK পরিষেবা অ্যাকাউন্টের জন্য শংসাপত্রগুলি রপ্তানি করুন এবং সেগুলিকে আপনার GOOGLE_APPLICATION_CREDENTIALS
পরিবেশ পরিবর্তনশীলে সংরক্ষণ করুন৷
- Google Cloud কনসোলে, শংসাপত্র পৃষ্ঠাটি খুলুন।
- বিস্তারিত পৃষ্ঠা খুলতে Admin SDK পরিষেবা অ্যাকাউন্টে ক্লিক করুন।
- কী-এ ক্লিক করুন।
- কী যোগ করুন > নতুন কী তৈরি করুন ক্লিক করুন।
- নিশ্চিত করুন যে JSON কী টাইপ হিসাবে নির্বাচিত হয়েছে, তারপর তৈরি করুন ক্লিক করুন।
- আপনার কম্পিউটারে একটি নিরাপদ জায়গায় কী ডাউনলোড করুন।
আপনার টার্মিনাল থেকে, একটি পরিবেশ পরিবর্তনশীল হিসাবে কী রপ্তানি করুন:
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-key.json"
ধাপ 4: ফাংশন তৈরি করুন
এই ধাপে, আপনি একটি ফাংশন তৈরি করবেন যা ব্যবহারকারীর ইনপুট পরিচালনা করে এবং এআই-চালিত প্রতিক্রিয়া তৈরি করে। আপনি একটি বিস্তৃত ফাংশন তৈরি করতে একাধিক কোড স্নিপেট একত্রিত করবেন যা Admin SDK এবং Vertex AI Gemini API শুরু করে, Remote Config ব্যবহার করে ডিফল্ট প্যারামিটার কনফিগার করে, সর্বশেষ Remote Config প্যারামিটার আনে, ব্যবহারকারীর ইনপুট প্রক্রিয়া করে এবং ব্যবহারকারীর কাছে একটি প্রতিক্রিয়া স্ট্রিম করে।
- আপনার কোডবেসে, টেক্সট এডিটর বা IDE-এ
functions/index.js
খুলুন। বিদ্যমান বিষয়বস্তু মুছুন এবং তারপরে Admin SDK , Remote Config , এবং Vertex AI SDK যোগ করুন এবং ফাইলটিতে নিম্নলিখিত কোডটি পেস্ট করে অ্যাপটি আরম্ভ করুন:
const { onRequest } = require("firebase-functions/v2/https"); 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"); // 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 ক্লায়েন্ট দেখুন।ঐচ্ছিকভাবে, আপনি Vertex AI Gemini API (এই উদাহরণে,
vertex_enabled
নামক একটি প্যারামিটার) অ্যাক্সেস করছেন কিনা তা নিয়ন্ত্রণ করতে আপনি একটি প্যারামিটার কনফিগার করতে পারেন। আপনার ফাংশন পরীক্ষা করার সময় এই সেটআপটি কার্যকর হতে পারে। নিম্নলিখিত কোড স্নিপেটগুলিতে, এই মানটিfalse
সেট করা হয়েছে, যা আপনি মৌলিক ফাংশন স্থাপনার পরীক্ষা করার সময় Vertex AI ব্যবহার করে এড়িয়ে যাবে৷ এটিকেtrue
সেট করা হলে Vertex AI Gemini API চালু হবে।// Define default (fallback) parameter values for Remote Config. const defaultConfig = { // Default values for Vertex AI. model_name: "gemini-1.5-flash-preview-0514", 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;
Vertex AI সেট আপ করুন এবং চ্যাট এবং প্রতিক্রিয়া যুক্তি যোগ করুন:
// 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'); } });
ফাইলটি সংরক্ষণ করুন এবং বন্ধ করুন।
ধাপ 5: একটি সার্ভার-নির্দিষ্ট Remote Config টেমপ্লেট তৈরি করুন
এরপরে, একটি সার্ভার-সাইড Remote Config টেমপ্লেট তৈরি করুন এবং আপনার ফাংশনে ব্যবহার করার জন্য প্যারামিটার এবং মান কনফিগার করুন। একটি সার্ভার-নির্দিষ্ট Remote Config টেমপ্লেট তৈরি করতে:
- Firebase কনসোল খুলুন এবং, নেভিগেশন মেনু থেকে, রান প্রসারিত করুন এবং Remote Config নির্বাচন করুন।
Remote Config পৃষ্ঠার শীর্ষে ক্লায়েন্ট/সার্ভার নির্বাচক থেকে সার্ভার নির্বাচন করুন।
- আপনি যদি প্রথমবার Remote Config বা সার্ভার টেমপ্লেট ব্যবহার করেন, তাহলে কনফিগারেশন তৈরি করুন ক্লিক করুন। আপনার প্রথম সার্ভার-সাইড প্যারামিটার তৈরি করুন ফলকটি প্রদর্শিত হবে।
- যদি এটি আপনার প্রথমবার Remote Config সার্ভার টেমপ্লেট ব্যবহার না করে থাকে, প্যারামিটার যোগ করুন ক্লিক করুন।
নিম্নলিখিত Remote Config পরামিতি সংজ্ঞায়িত করুন:
পরামিতি নাম বর্ণনা টাইপ ডিফল্ট মান model_name
মডেলের নাম
আপনার কোডে ব্যবহার করার জন্য মডেল নামের আপ-টু-ডেট তালিকার জন্য, মডেল সংস্করণ এবং জীবনচক্র বা উপলব্ধ মডেল নামগুলি দেখুন।স্ট্রিং gemini-1.5-pro-preview-0514
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}]
safety_settings
Vertex AI এর জন্য নিরাপত্তা সেটিংস । JSON [{"category": "HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "HarmBlockThreshold.BLOCK_LOW_AND_ABOVE"}]
location
Vertex AI পরিষেবা এবং মডেল চালানোর জন্য অবস্থান । স্ট্রিং us-central1
is_vertex_enabled
ঐচ্ছিক পরামিতি যা নিয়ন্ত্রণ করে যে প্রশ্নগুলি Vertex AI তে পাঠানো হবে কিনা। বুলিয়ান true
যখন আপনি প্যারামিটার যোগ করা শেষ করেন, তখন আপনার প্যারামিটারগুলি দুবার চেক করুন এবং তাদের ডেটা প্রকারগুলি সঠিক কিনা, তারপর পরিবর্তনগুলি প্রকাশ করুন এ ক্লিক করুন৷
ধাপ 6: আপনার ফাংশন স্থাপন করুন এবং এটি Firebase Local Emulator Suite পরীক্ষা করুন
এখন আপনি Firebase Local Emulator Suite সাথে স্থানীয়ভাবে আপনার ফাংশন স্থাপন এবং পরীক্ষা করার জন্য প্রস্তুত।
নিশ্চিত করুন যে আপনি
GOOGLE_APPLICATION_CREDENTIALS
একটি পরিবেশ পরিবর্তনশীল হিসাবে সেট করেছেন যেমন ধাপ 3-এ বর্ণিত হয়েছে: আপনার Admin SDK পরিষেবা অ্যাকাউন্টের জন্য IAM অনুমতিগুলি কনফিগার করুন এবং আপনার কী সংরক্ষণ করুন ৷ তারপর, আপনারfunctions
ডিরেক্টরির মূল ডিরেক্টরি থেকে, আপনার ফাংশনটি ফায়ারবেস এমুলেটরে স্থাপন করুন:firebase emulators:start --project PROJECT_ID --only functions
এমুলেটরের লগ পৃষ্ঠা খুলুন। এটি দেখানো উচিত যে আপনার ফাংশন লোড হয়েছে।
নিম্নলিখিত কমান্ডটি চালিয়ে আপনার ফাংশনটি অ্যাক্সেস করুন, যেখানে PROJECT_ID হল আপনার প্রকল্প আইডি এবং LOCATION হল সেই অঞ্চল যেখানে আপনি ফাংশনটি স্থাপন করেছেন (উদাহরণস্বরূপ,
us-central1
):curl http://localhost:5001/PROJECT_ID/LOCATION/generateWithVertex
একটি প্রতিক্রিয়ার জন্য অপেক্ষা করুন, তারপর Firebase এমুলেটর লগ পৃষ্ঠা বা আপনার কনসোলে ফিরে যান এবং কোনো ত্রুটি বা সতর্কতা আছে কিনা তা পরীক্ষা করুন৷
কিছু ব্যবহারকারীর ইনপুট পাঠানোর চেষ্টা করুন, উল্লেখ্য যে যেহেতু আপনার Remote Config সার্ভার টেমপ্লেটে
is_vertex_enabled
কনফিগার করা হয়েছে, এটি Vertex AI Gemini API মাধ্যমে Gemini অ্যাক্সেস করা উচিত এবং এর জন্য চার্জ হতে পারে:curl http://localhost:5001/PROJECT_ID/LOCATION/generateWithVertex?prompt=Tell%20me%20everything%20you%20know%20about%20cats
Firebase কনসোলে আপনার Remote Config সার্ভার টেমপ্লেটে পরিবর্তন করুন, তারপর পরিবর্তনগুলি পর্যবেক্ষণ করতে আপনার ফাংশনটি পুনরায় অ্যাক্সেস করুন৷
ধাপ 7: Google Cloud আপনার ফাংশন স্থাপন করুন
আপনি আপনার ফাংশন পরীক্ষা এবং যাচাই করার পরে, আপনি Google Cloud স্থাপন করতে এবং লাইভ ফাংশন পরীক্ষা করার জন্য প্রস্তুত৷
আপনার ফাংশন স্থাপন
Firebase CLI ব্যবহার করে আপনার ফাংশন স্থাপন করুন:
firebase deploy --only functions
ফাংশনে অননুমোদিত অ্যাক্সেস ব্লক করুন
যখন ফায়ারবেস ব্যবহার করে ফাংশনগুলি স্থাপন করা হয়, আপনার সংস্থার নীতি যদি এটিকে সীমাবদ্ধ না করে তবে ডিফল্টরূপে অপ্রমাণিত আহ্বানগুলি অনুমোদিত হয়৷ পরীক্ষার সময় এবং App Check দিয়ে সুরক্ষিত করার আগে, আমরা অননুমোদিত অ্যাক্সেস ব্লক করার পরামর্শ দিই।
ফাংশনে অননুমোদিত অ্যাক্সেস ব্লক করতে:
Google Cloud কনসোলে, ক্লাউড রান খুলুন।
generateWithVertex
ক্লিক করুন, তারপর সিকিউরিটি ট্যাবে ক্লিক করুন।প্রয়োজনীয় প্রমাণীকরণ সক্ষম করুন এবং তারপর সংরক্ষণ করুন ক্লিক করুন।
Admin SDK পরিষেবা অ্যাকাউন্ট শংসাপত্রগুলি ব্যবহার করতে আপনার ব্যবহারকারী অ্যাকাউন্ট কনফিগার করুন৷
যেহেতু Admin SDK পরিষেবা অ্যাকাউন্টে ফাংশনটি চালানোর জন্য এবং Remote Config এবং Vertex AI Gemini API সাথে ইন্টারঅ্যাক্ট করার জন্য সমস্ত প্রয়োজনীয় ভূমিকা এবং অনুমতি রয়েছে, আপনি আপনার ফাংশন চালানোর জন্য এটি ব্যবহার করতে চাইবেন৷ এটি করার জন্য, আপনাকে অবশ্যই আপনার ব্যবহারকারীর অ্যাকাউন্ট থেকে অ্যাকাউন্টের জন্য টোকেন তৈরি করতে সক্ষম হতে হবে।
নিম্নলিখিত পদক্ষেপগুলি কীভাবে আপনার ব্যবহারকারীর অ্যাকাউন্ট এবং Admin SDK পরিষেবা অ্যাকাউন্টের বিশেষাধিকারগুলির সাথে চালানোর জন্য ফাংশন কনফিগার করবেন তা বর্ণনা করে৷
- Google Cloud কনসোলে, IAM পরিষেবা অ্যাকাউন্ট শংসাপত্র API সক্ষম করুন৷
- আপনার ব্যবহারকারীর অ্যাকাউন্টকে পরিষেবা অ্যাকাউন্ট টোকেন নির্মাতার ভূমিকা দিন: Google Cloud কনসোল থেকে, IAM & Admin > IAM খুলুন, আপনার ব্যবহারকারী অ্যাকাউন্ট নির্বাচন করুন এবং তারপরে প্রধান সম্পাদনা করুন > অন্য ভূমিকা যোগ করুন ক্লিক করুন।
পরিষেবা অ্যাকাউন্ট টোকেন ক্রিয়েটর নির্বাচন করুন, তারপর সংরক্ষণ করুন ক্লিক করুন।
পরিষেবা অ্যাকাউন্ট ছদ্মবেশ সম্পর্কে আরও বিশদ তথ্যের জন্য, Google Cloud ডকুমেন্টেশনে পরিষেবা অ্যাকাউন্টের ছদ্মবেশ দেখুন৷
Google Cloud কনসোল Cloud Functions পৃষ্ঠাটি খুলুন এবং ফাংশন তালিকায় জেনারেট উইথভার্টেক্স ফাংশনটিতে ক্লিক করুন।
ট্রিগার > সম্পাদনা করুন এবং রানটাইম, বিল্ড, সংযোগ এবং নিরাপত্তা সেটিংস প্রসারিত করুন নির্বাচন করুন।
রানটাইম ট্যাব থেকে, রানটাইম পরিষেবা অ্যাকাউন্টটিকে অ্যাডমিন SDK অ্যাকাউন্টে পরিবর্তন করুন।
Next এ ক্লিক করুন, তারপর Deploy এ ক্লিক করুন।
gcloud CLI সেট আপ করুন
কমান্ড লাইন থেকে আপনার ফাংশনটি নিরাপদে চালানো এবং পরীক্ষা করতে, আপনাকে Cloud Functions পরিষেবার সাথে প্রমাণীকরণ করতে হবে এবং একটি বৈধ প্রমাণীকরণ টোকেন পেতে হবে।
টোকেন জেনারেশন সক্ষম করতে, gcloud CLI ইনস্টল এবং কনফিগার করুন:
আপনার কম্পিউটারে ইতিমধ্যে ইনস্টল না থাকলে, Gcloud CLI ইনস্টল করুন যেমন gcloud CLI ইনস্টল করুন ।
আপনার Google Cloud অ্যাকাউন্টের জন্য অ্যাক্সেসের শংসাপত্রগুলি পান:
gcloud auth login
gcloud এ আপনার প্রকল্প আইডি সেট করুন:
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 সহ Vertex AI Gemini API কল করুন ।
- ফায়ারবেসের জন্য Cloud Functions সম্পর্কে আরও জানুন।
- সার্ভার পরিবেশে Remote Config ব্যবহার সম্পর্কে আরও জানুন।
Vertex AI Gemini API তে সার্ভার-সাইড কল করার জন্য সার্ভার-সাইড Remote Config সাথে 2nd gen Cloud Functions ব্যবহার করে কীভাবে শুরু করা যায় এই নির্দেশিকাটি বর্ণনা করে।
এই টিউটোরিয়ালে, আপনি একটি চ্যাটবট-এর মতো ফাংশনে Remote Config যোগ করবেন যা ব্যবহারকারীর প্রশ্নের উত্তর দিতে Gemini মডেল ব্যবহার করে। Remote Config Gemini API ইনপুটগুলি পরিচালনা করবে (একটি প্রম্পট সহ যা আপনি আগত ব্যবহারকারীর প্রশ্নের জন্য প্রিপেন্ড করবেন) এবং আপনি Firebase কনসোল থেকে এই ইনপুটগুলি অন-ডিমান্ড আপডেট করতে পারেন। এছাড়াও আপনি Firebase Local Emulator Suite ব্যবহার করে ফাংশনটি পরীক্ষা এবং ডিবাগ করতে পারবেন এবং তারপরে, এটি কাজ করে কিনা তা যাচাই করার পরে, আপনি এটিকে Google Cloud স্থাপন এবং পরীক্ষা করবেন।
পূর্বশর্ত
এই নির্দেশিকা অনুমান করে যে আপনি অ্যাপ্লিকেশন বিকাশ করতে জাভাস্ক্রিপ্ট ব্যবহার করার সাথে পরিচিত।
একটি ফায়ারবেস প্রকল্প সেট আপ করুন
যদি আপনার কাছে ইতিমধ্যে একটি ফায়ারবেস প্রকল্প না থাকে:
Firebase কনসোলে সাইন ইন করুন।
প্রকল্প তৈরি করুন ক্লিক করুন, এবং তারপরে নিম্নলিখিত বিকল্পগুলির মধ্যে একটি ব্যবহার করুন:
- বিকল্প 1 : "প্রকল্প তৈরি করুন" কর্মপ্রবাহের প্রথম ধাপে একটি নতুন প্রকল্পের নাম প্রবেশ করে একটি নতুন ফায়ারবেস প্রকল্প (এবং এর অন্তর্নিহিত Google Cloud প্রকল্প স্বয়ংক্রিয়ভাবে) তৈরি করুন৷
- বিকল্প 2 : "প্রকল্প তৈরি করুন" কর্মপ্রবাহের প্রথম ধাপে ড্রপ-ডাউন মেনু থেকে আপনার Google Cloud প্রকল্পের নাম নির্বাচন করে একটি বিদ্যমান Google Cloud প্রকল্পে "Firebase যোগ করুন"।
অনুরোধ করা হলে, এই সমাধানটি ব্যবহার করার জন্য আপনাকে Google Analytics সেট আপ করতে হবে না ।
আপনার প্রকল্প তৈরি করতে অন-স্ক্রীন নির্দেশাবলী অনুসরণ করা চালিয়ে যান।
আপনার যদি ইতিমধ্যে একটি ফায়ারবেস প্রকল্প থাকে:
আপনার উন্নয়ন পরিবেশ কনফিগার করতে এগিয়ে যান।
আপনার উন্নয়ন পরিবেশ কনফিগার করুন
ফাংশন লিখতে আপনার একটি Node.js পরিবেশের প্রয়োজন হবে এবং Cloud Functions রানটাইমে ফাংশন স্থাপন করতে আপনার Firebase CLI প্রয়োজন হবে।
Node.js এবং npm ইনস্টল করার জন্য, আমরা নোড সংস্করণ ম্যানেজার ব্যবহার করার পরামর্শ দিই।
আপনার পছন্দের পদ্ধতি ব্যবহার করে Firebase CLI ইনস্টল করুন । উদাহরণস্বরূপ, npm ব্যবহার করে CLI ইনস্টল করতে, এই কমান্ডটি চালান:
npm install -g firebase-tools@latest
এই কমান্ডটি বিশ্বব্যাপী-উপলব্ধ
firebase
কমান্ড ইনস্টল করে। এই কমান্ড ব্যর্থ হলে, আপনাকে npm অনুমতি পরিবর্তন করতে হতে পারে।firebase-tools
এর সর্বশেষ সংস্করণে আপডেট করতে, একই কমান্ড পুনরায় চালু করুন।firebase-functions
এবংfirebase-admin
ইনস্টল করুন এবং আপনারpackage.json
এ সেভ করতে--save
ব্যবহার করুন :npm install firebase-functions@latest firebase-admin@latest --save
আপনি এখন এই সমাধান বাস্তবায়নে এগিয়ে যেতে প্রস্তুত।
বাস্তবায়ন
Remote Config এবং Vertex AI সাথে আপনার 2nd gen Cloud Functions তৈরি করতে, পরীক্ষা করতে এবং স্থাপন করতে এই পদক্ষেপগুলি অনুসরণ করুন:
- Google Cloud কনসোলে Vertex AI প্রস্তাবিত API গুলি সক্ষম করুন ৷
- আপনার প্রকল্প শুরু করুন এবং নোড নির্ভরতা ইনস্টল করুন ।
- আপনার Admin SDK পরিষেবা অ্যাকাউন্টের জন্য IAM অনুমতিগুলি কনফিগার করুন এবং আপনার কী সংরক্ষণ করুন ৷
- ফাংশন তৈরি করুন ।
- একটি সার্ভার-নির্দিষ্ট Remote Config টেমপ্লেট তৈরি করুন ।
- আপনার ফাংশন স্থাপন করুন এবং এটি Firebase Local Emulator Suite পরীক্ষা করুন ।
- Google Cloud আপনার ফাংশন স্থাপন করুন ।
ধাপ 1: Google Cloud কনসোলে Vertex AI প্রস্তাবিত API সক্ষম করুন
- Google Cloud কনসোল খুলুন, এবং যখন অনুরোধ করা হবে, আপনার প্রকল্প নির্বাচন করুন৷
- কনসোলের শীর্ষে অনুসন্ধান ক্ষেত্রে, Vertex AI লিখুন এবং ফলাফল হিসাবে Vertex AI প্রদর্শিত হওয়ার জন্য অপেক্ষা করুন।
- Vertex AI নির্বাচন করুন। Vertex AI ড্যাশবোর্ড প্রদর্শিত হবে।
সমস্ত প্রস্তাবিত API সক্ষম করুন ক্লিক করুন৷
API সক্ষমতা সম্পূর্ণ হতে কয়েক মুহূর্ত লাগতে পারে। পৃষ্ঠাটি সক্রিয় রাখুন এবং সক্রিয়করণ শেষ না হওয়া পর্যন্ত খুলুন।
বিলিং সক্ষম না হলে, আপনাকে একটি Cloud Billing অ্যাকাউন্ট যোগ বা লিঙ্ক করতে বলা হবে। একটি বিলিং অ্যাকাউন্ট সক্রিয় করার পরে, Vertex AI ড্যাশবোর্ডে ফিরে যান এবং যাচাই করুন যে সমস্ত প্রস্তাবিত API সক্রিয় আছে৷
ধাপ 2: আপনার প্রকল্প শুরু করুন এবং নোড নির্ভরতা ইনস্টল করুন
- আপনার কম্পিউটারে একটি টার্মিনাল খুলুন এবং ডিরেক্টরিতে নেভিগেট করুন যেখানে আপনি আপনার ফাংশন তৈরি করার পরিকল্পনা করছেন।
ফায়ারবেসে লগ ইন করুন:
firebase login
Cloud Functions for Firebase শুরু করতে নিম্নলিখিত কমান্ডটি চালান:
firebase init functions
একটি বিদ্যমান প্রকল্প ব্যবহার করুন নির্বাচন করুন এবং আপনার প্রকল্প আইডি নির্দিষ্ট করুন।
ব্যবহার করার জন্য ভাষা নির্বাচন করার জন্য অনুরোধ করা হলে, Javascript নির্বাচন করুন এবং এন্টার টিপুন।
অন্য সব বিকল্পের জন্য, ডিফল্ট নির্বাচন করুন।
বর্তমান ডিরেক্টরিতে একটি
functions
ডিরেক্টরি তৈরি করা হয়। ভিতরে, আপনি একটিindex.js
ফাইল পাবেন যা আপনি আপনার ফাংশন তৈরি করতে ব্যবহার করবেন, একটিnode_modules
ডিরেক্টরি যেখানে আপনার ফাংশনের নির্ভরতা রয়েছে এবং একটিpackage.json
ফাইল যেখানে প্যাকেজ নির্ভরতা রয়েছে।নিম্নলিখিত কমান্ডগুলি চালিয়ে Admin SDK এবং Vertex AI প্যাকেজ যোগ করুন,
--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 সংস্করণ 18 হিসাবে কনফিগার করা থাকে এবং আপনি Node.js 20 ব্যবহার করছেন, তাহলে 20 ব্যবহার করতে ফাইলটি আপডেট করুন:
"engines": {
"node": "20"
},
ধাপ 3: আপনার Admin SDK পরিষেবা অ্যাকাউন্টের জন্য IAM অনুমতিগুলি কনফিগার করুন এবং আপনার কী সংরক্ষণ করুন৷
এই সমাধানে, আপনি আপনার ফাংশন চালানোর জন্য Firebase Admin SDK পরিষেবা অ্যাকাউন্ট ব্যবহার করবেন।
- Google Cloud কনসোলে, IAM এবং অ্যাডমিন পৃষ্ঠাটি খুলুন এবং Admin SDK পরিষেবা অ্যাকাউন্টটি সনাক্ত করুন (নাম
firebase-adminsdk
)৷ - অ্যাকাউন্ট নির্বাচন করুন এবং প্রধান সম্পাদনা করুন ক্লিক করুন। সম্পাদনা অ্যাক্সেস পৃষ্ঠা প্রদর্শিত হবে।
- অন্য ভূমিকা যোগ করুন ক্লিক করুন, Remote Config ভিউয়ার নির্বাচন করুন।
- অন্য ভূমিকা যোগ করুন ক্লিক করুন, এআই প্ল্যাটফর্ম বিকাশকারী নির্বাচন করুন।
- অন্য ভূমিকা যোগ করুন ক্লিক করুন, Vertex AI ব্যবহারকারী নির্বাচন করুন।
- আরেকটি ভূমিকা যোগ করুন ক্লিক করুন, ক্লাউড রান ইনভোকার নির্বাচন করুন।
- Save এ ক্লিক করুন।
এরপরে, Admin SDK পরিষেবা অ্যাকাউন্টের জন্য শংসাপত্রগুলি রপ্তানি করুন এবং সেগুলিকে আপনার GOOGLE_APPLICATION_CREDENTIALS
পরিবেশ ভেরিয়েবলে সংরক্ষণ করুন৷
- Google Cloud কনসোলে, শংসাপত্র পৃষ্ঠাটি খুলুন।
- বিস্তারিত পৃষ্ঠা খুলতে Admin SDK পরিষেবা অ্যাকাউন্টে ক্লিক করুন।
- কী-এ ক্লিক করুন।
- কী যোগ করুন > নতুন কী তৈরি করুন ক্লিক করুন।
- নিশ্চিত করুন যে JSON কী টাইপ হিসাবে নির্বাচিত হয়েছে, তারপর তৈরি করুন ক্লিক করুন।
- আপনার কম্পিউটারে একটি নিরাপদ জায়গায় কী ডাউনলোড করুন।
আপনার টার্মিনাল থেকে, একটি পরিবেশ পরিবর্তনশীল হিসাবে কী রপ্তানি করুন:
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-key.json"
ধাপ 4: ফাংশন তৈরি করুন
এই ধাপে, আপনি একটি ফাংশন তৈরি করবেন যা ব্যবহারকারীর ইনপুট পরিচালনা করে এবং এআই-চালিত প্রতিক্রিয়া তৈরি করে। আপনি একটি বিস্তৃত ফাংশন তৈরি করতে একাধিক কোড স্নিপেট একত্রিত করবেন যা Admin SDK এবং Vertex AI Gemini API শুরু করে, Remote Config ব্যবহার করে ডিফল্ট প্যারামিটার কনফিগার করে, সর্বশেষ Remote Config প্যারামিটার আনে, ব্যবহারকারীর ইনপুট প্রক্রিয়া করে এবং ব্যবহারকারীর কাছে একটি প্রতিক্রিয়া স্ট্রিম করে।
- আপনার কোডবেসে, টেক্সট এডিটর বা IDE-এ
functions/index.js
খুলুন। বিদ্যমান বিষয়বস্তু মুছুন এবং তারপরে Admin SDK , Remote Config , এবং Vertex AI SDK যোগ করুন এবং ফাইলটিতে নিম্নলিখিত কোডটি পেস্ট করে অ্যাপটি আরম্ভ করুন:
const { onRequest } = require("firebase-functions/v2/https"); 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"); // 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 ক্লায়েন্ট দেখুন।ঐচ্ছিকভাবে, আপনি Vertex AI Gemini API (এই উদাহরণে,
vertex_enabled
নামক একটি প্যারামিটার) অ্যাক্সেস করছেন কিনা তা নিয়ন্ত্রণ করতে আপনি একটি প্যারামিটার কনফিগার করতে পারেন। আপনার ফাংশন পরীক্ষা করার সময় এই সেটআপটি কার্যকর হতে পারে। নিম্নলিখিত কোড স্নিপেটগুলিতে, এই মানটিfalse
সেট করা হয়েছে, যা আপনি মৌলিক ফাংশন স্থাপনার পরীক্ষা করার সময় Vertex AI ব্যবহার করে এড়িয়ে যাবে৷ এটিকেtrue
সেট করা হলে Vertex AI Gemini API চালু হবে।// Define default (fallback) parameter values for Remote Config. const defaultConfig = { // Default values for Vertex AI. model_name: "gemini-1.5-flash-preview-0514", 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;
Vertex AI সেট আপ করুন এবং চ্যাট এবং প্রতিক্রিয়া যুক্তি যোগ করুন:
// 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'); } });
ফাইলটি সংরক্ষণ করুন এবং বন্ধ করুন।
ধাপ 5: একটি সার্ভার-নির্দিষ্ট Remote Config টেমপ্লেট তৈরি করুন
এরপরে, একটি সার্ভার-সাইড Remote Config টেমপ্লেট তৈরি করুন এবং আপনার ফাংশনে ব্যবহার করার জন্য প্যারামিটার এবং মান কনফিগার করুন। একটি সার্ভার-নির্দিষ্ট Remote Config টেমপ্লেট তৈরি করতে:
- Firebase কনসোল খুলুন এবং, নেভিগেশন মেনু থেকে, রান প্রসারিত করুন এবং Remote Config নির্বাচন করুন।
Remote Config পৃষ্ঠার শীর্ষে ক্লায়েন্ট/সার্ভার নির্বাচক থেকে সার্ভার নির্বাচন করুন।
- আপনি যদি প্রথমবার Remote Config বা সার্ভার টেমপ্লেট ব্যবহার করেন, তাহলে কনফিগারেশন তৈরি করুন ক্লিক করুন। আপনার প্রথম সার্ভার-সাইড প্যারামিটার তৈরি করুন ফলকটি প্রদর্শিত হবে।
- যদি এটি আপনার প্রথমবার Remote Config সার্ভার টেমপ্লেট ব্যবহার না করে থাকে, প্যারামিটার যোগ করুন ক্লিক করুন।
নিম্নলিখিত Remote Config পরামিতি সংজ্ঞায়িত করুন:
পরামিতি নাম বর্ণনা টাইপ ডিফল্ট মান model_name
মডেলের নাম
আপনার কোডে ব্যবহার করার জন্য মডেল নামের আপ-টু-ডেট তালিকার জন্য, মডেল সংস্করণ এবং জীবনচক্র বা উপলব্ধ মডেল নামগুলি দেখুন।স্ট্রিং gemini-1.5-pro-preview-0514
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}]
safety_settings
Vertex AI এর জন্য নিরাপত্তা সেটিংস । JSON [{"category": "HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "HarmBlockThreshold.BLOCK_LOW_AND_ABOVE"}]
location
Vertex AI পরিষেবা এবং মডেল চালানোর জন্য অবস্থান । স্ট্রিং us-central1
is_vertex_enabled
ঐচ্ছিক পরামিতি যা নিয়ন্ত্রণ করে যে প্রশ্নগুলি Vertex AI তে পাঠানো হবে কিনা। বুলিয়ান true
যখন আপনি প্যারামিটার যোগ করা শেষ করেন, তখন আপনার প্যারামিটারগুলি দুবার চেক করুন এবং তাদের ডেটা প্রকারগুলি সঠিক কিনা, তারপর পরিবর্তনগুলি প্রকাশ করুন এ ক্লিক করুন৷
ধাপ 6: আপনার ফাংশন স্থাপন করুন এবং এটি Firebase Local Emulator Suite পরীক্ষা করুন
এখন আপনি Firebase Local Emulator Suite সাথে স্থানীয়ভাবে আপনার ফাংশন স্থাপন এবং পরীক্ষা করার জন্য প্রস্তুত।
নিশ্চিত করুন যে আপনি
GOOGLE_APPLICATION_CREDENTIALS
একটি পরিবেশ পরিবর্তনশীল হিসাবে সেট করেছেন যেমন ধাপ 3-এ বর্ণিত হয়েছে: আপনার Admin SDK পরিষেবা অ্যাকাউন্টের জন্য IAM অনুমতিগুলি কনফিগার করুন এবং আপনার কী সংরক্ষণ করুন ৷ তারপর, আপনারfunctions
ডিরেক্টরির মূল ডিরেক্টরি থেকে, আপনার ফাংশনটি ফায়ারবেস এমুলেটরে স্থাপন করুন:firebase emulators:start --project PROJECT_ID --only functions
এমুলেটরের লগ পৃষ্ঠা খুলুন। এটি দেখানো উচিত যে আপনার ফাংশন লোড হয়েছে।
নিম্নলিখিত কমান্ডটি চালিয়ে আপনার ফাংশনটি অ্যাক্সেস করুন, যেখানে PROJECT_ID হল আপনার প্রকল্প আইডি এবং LOCATION হল সেই অঞ্চল যেখানে আপনি ফাংশনটি স্থাপন করেছেন (উদাহরণস্বরূপ,
us-central1
):curl http://localhost:5001/PROJECT_ID/LOCATION/generateWithVertex
একটি প্রতিক্রিয়ার জন্য অপেক্ষা করুন, তারপর Firebase এমুলেটর লগ পৃষ্ঠা বা আপনার কনসোলে ফিরে যান এবং কোনো ত্রুটি বা সতর্কতা আছে কিনা তা পরীক্ষা করুন৷
কিছু ব্যবহারকারীর ইনপুট পাঠানোর চেষ্টা করুন, উল্লেখ্য যে যেহেতু আপনার Remote Config সার্ভার টেমপ্লেটে
is_vertex_enabled
কনফিগার করা হয়েছে, এটি Vertex AI Gemini API মাধ্যমে Gemini অ্যাক্সেস করা উচিত এবং এর জন্য চার্জ হতে পারে:curl http://localhost:5001/PROJECT_ID/LOCATION/generateWithVertex?prompt=Tell%20me%20everything%20you%20know%20about%20cats
Firebase কনসোলে আপনার Remote Config সার্ভার টেমপ্লেটে পরিবর্তন করুন, তারপর পরিবর্তনগুলি পর্যবেক্ষণ করতে আপনার ফাংশনটি পুনরায় অ্যাক্সেস করুন৷
ধাপ 7: Google Cloud আপনার ফাংশন স্থাপন করুন
আপনি আপনার ফাংশন পরীক্ষা এবং যাচাই করার পরে, আপনি Google Cloud স্থাপন করতে এবং লাইভ ফাংশন পরীক্ষা করার জন্য প্রস্তুত৷
আপনার ফাংশন স্থাপন
Firebase CLI ব্যবহার করে আপনার ফাংশন স্থাপন করুন:
firebase deploy --only functions
ফাংশনে অননুমোদিত অ্যাক্সেস ব্লক করুন
যখন ফায়ারবেস ব্যবহার করে ফাংশনগুলি স্থাপন করা হয়, আপনার সংস্থার নীতি যদি এটিকে সীমাবদ্ধ না করে তবে ডিফল্টরূপে অপ্রমাণিত আহ্বানগুলি অনুমোদিত হয়৷ পরীক্ষার সময় এবং App Check দিয়ে সুরক্ষিত করার আগে, আমরা অননুমোদিত অ্যাক্সেস ব্লক করার পরামর্শ দিই।
ফাংশনে অননুমোদিত অ্যাক্সেস ব্লক করতে:
Google Cloud কনসোলে, ক্লাউড রান খুলুন।
generateWithVertex
ক্লিক করুন, তারপর সিকিউরিটি ট্যাবে ক্লিক করুন।প্রয়োজনীয় প্রমাণীকরণ সক্ষম করুন এবং তারপর সংরক্ষণ করুন ক্লিক করুন।
Admin SDK পরিষেবা অ্যাকাউন্ট শংসাপত্রগুলি ব্যবহার করতে আপনার ব্যবহারকারী অ্যাকাউন্ট কনফিগার করুন৷
যেহেতু Admin SDK পরিষেবা অ্যাকাউন্টে ফাংশনটি চালানোর জন্য এবং Remote Config এবং Vertex AI Gemini API সাথে ইন্টারঅ্যাক্ট করার জন্য সমস্ত প্রয়োজনীয় ভূমিকা এবং অনুমতি রয়েছে, আপনি আপনার ফাংশন চালানোর জন্য এটি ব্যবহার করতে চাইবেন৷ এটি করার জন্য, আপনাকে অবশ্যই আপনার ব্যবহারকারীর অ্যাকাউন্ট থেকে অ্যাকাউন্টের জন্য টোকেন তৈরি করতে সক্ষম হতে হবে।
নিম্নলিখিত পদক্ষেপগুলি কীভাবে আপনার ব্যবহারকারীর অ্যাকাউন্ট এবং Admin SDK পরিষেবা অ্যাকাউন্টের বিশেষাধিকারগুলির সাথে চালানোর জন্য ফাংশন কনফিগার করবেন তা বর্ণনা করে৷
- Google Cloud কনসোলে, IAM পরিষেবা অ্যাকাউন্ট শংসাপত্র API সক্ষম করুন৷
- আপনার ব্যবহারকারীর অ্যাকাউন্টকে পরিষেবা অ্যাকাউন্ট টোকেন নির্মাতার ভূমিকা দিন: Google Cloud কনসোল থেকে, IAM & Admin > IAM খুলুন, আপনার ব্যবহারকারী অ্যাকাউন্ট নির্বাচন করুন এবং তারপরে প্রধান সম্পাদনা করুন > অন্য ভূমিকা যোগ করুন ক্লিক করুন।
পরিষেবা অ্যাকাউন্ট টোকেন ক্রিয়েটর নির্বাচন করুন, তারপর সংরক্ষণ করুন ক্লিক করুন।
পরিষেবা অ্যাকাউন্ট ছদ্মবেশ সম্পর্কে আরও বিশদ তথ্যের জন্য, Google Cloud ডকুমেন্টেশনে পরিষেবা অ্যাকাউন্টের ছদ্মবেশ দেখুন৷
Google Cloud কনসোল Cloud Functions পৃষ্ঠাটি খুলুন এবং ফাংশন তালিকায় জেনারেট উইথভার্টেক্স ফাংশনটিতে ক্লিক করুন।
ট্রিগার > সম্পাদনা করুন এবং রানটাইম, বিল্ড, সংযোগ এবং নিরাপত্তা সেটিংস প্রসারিত করুন নির্বাচন করুন।
রানটাইম ট্যাব থেকে, রানটাইম পরিষেবা অ্যাকাউন্টটিকে অ্যাডমিন SDK অ্যাকাউন্টে পরিবর্তন করুন।
Next এ ক্লিক করুন, তারপর Deploy এ ক্লিক করুন।
gcloud CLI সেট আপ করুন
কমান্ড লাইন থেকে আপনার ফাংশনটি নিরাপদে চালানো এবং পরীক্ষা করতে, আপনাকে Cloud Functions পরিষেবার সাথে প্রমাণীকরণ করতে হবে এবং একটি বৈধ প্রমাণীকরণ টোকেন পেতে হবে।
টোকেন জেনারেশন সক্ষম করতে, gcloud CLI ইনস্টল এবং কনফিগার করুন:
আপনার কম্পিউটারে ইতিমধ্যে ইনস্টল না থাকলে, Gcloud CLI ইনস্টল করুন যেমন gcloud CLI ইনস্টল করুন ।
আপনার Google Cloud অ্যাকাউন্টের জন্য অ্যাক্সেসের শংসাপত্রগুলি পান:
gcloud auth login
gcloud এ আপনার প্রকল্প আইডি সেট করুন:
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 সহ Vertex AI Gemini API কল করুন ।
- ফায়ারবেসের জন্য Cloud Functions সম্পর্কে আরও জানুন।
- সার্ভার পরিবেশে Remote Config ব্যবহার সম্পর্কে আরও জানুন।
Vertex AI Gemini API তে সার্ভার-সাইড কল করার জন্য সার্ভার-সাইড Remote Config সাথে 2nd gen Cloud Functions ব্যবহার করে কীভাবে শুরু করা যায় এই নির্দেশিকাটি বর্ণনা করে।
এই টিউটোরিয়ালে, আপনি একটি চ্যাটবট-এর মতো ফাংশনে Remote Config যোগ করবেন যা ব্যবহারকারীর প্রশ্নের উত্তর দিতে Gemini মডেল ব্যবহার করে। Remote Config Gemini API ইনপুটগুলি পরিচালনা করবে (একটি প্রম্পট সহ যা আপনি আগত ব্যবহারকারীর প্রশ্নের জন্য প্রিপেন্ড করবেন) এবং আপনি Firebase কনসোল থেকে এই ইনপুটগুলি অন-ডিমান্ড আপডেট করতে পারেন। এছাড়াও আপনি Firebase Local Emulator Suite ব্যবহার করে ফাংশনটি পরীক্ষা এবং ডিবাগ করতে পারবেন এবং তারপরে, এটি কাজ করে কিনা তা যাচাই করার পরে, আপনি এটিকে Google Cloud স্থাপন এবং পরীক্ষা করবেন।
পূর্বশর্ত
এই নির্দেশিকা অনুমান করে যে আপনি অ্যাপ্লিকেশন বিকাশ করতে জাভাস্ক্রিপ্ট ব্যবহার করার সাথে পরিচিত।
একটি ফায়ারবেস প্রকল্প সেট আপ করুন
যদি আপনার কাছে ইতিমধ্যে একটি ফায়ারবেস প্রকল্প না থাকে:
Firebase কনসোলে সাইন ইন করুন।
প্রকল্প তৈরি করুন ক্লিক করুন, এবং তারপরে নিম্নলিখিত বিকল্পগুলির মধ্যে একটি ব্যবহার করুন:
- বিকল্প 1 : "প্রকল্প তৈরি করুন" কর্মপ্রবাহের প্রথম ধাপে একটি নতুন প্রকল্পের নাম প্রবেশ করে একটি নতুন ফায়ারবেস প্রকল্প (এবং এর অন্তর্নিহিত Google Cloud প্রকল্পটি স্বয়ংক্রিয়ভাবে) তৈরি করুন।
- বিকল্প 2 : "প্রকল্প তৈরি করুন" ওয়ার্কফ্লোয়ের প্রথম ধাপে ড্রপ-ডাউন মেনু থেকে আপনার Google Cloud প্রকল্পের নাম নির্বাচন করে একটি বিদ্যমান Google Cloud প্রকল্পে "ফায়ারবেস যুক্ত করুন"।
যখন অনুরোধ জানানো হয়, আপনাকে এই সমাধানটি ব্যবহার করতে Google Analytics সেট আপ করার দরকার নেই ।
আপনার প্রকল্প তৈরি করতে অন-স্ক্রিন নির্দেশাবলী অনুসরণ করা চালিয়ে যান।
আপনার যদি ইতিমধ্যে একটি ফায়ারবেস প্রকল্প থাকে:
আপনার উন্নয়ন পরিবেশ কনফিগার করতে এগিয়ে যান।
আপনার উন্নয়ন পরিবেশ কনফিগার করুন
ফাংশনগুলি লেখার জন্য আপনার একটি নোড.জেএস পরিবেশের প্রয়োজন হবে এবং Cloud Functions রানটাইমগুলিতে ফাংশন স্থাপনের জন্য আপনার Firebase সিএলআই প্রয়োজন।
নোড.জেএস এবং এনপিএম ইনস্টল করুন।
নোড.জেএস এবং এনপিএম ইনস্টল করার জন্য, আমরা নোড সংস্করণ পরিচালক ব্যবহার করার পরামর্শ দিই।
আপনার পছন্দসই পদ্ধতিটি ব্যবহার করে Firebase সিএলআই ইনস্টল করুন । উদাহরণস্বরূপ, এনপিএম ব্যবহার করে সিএলআই ইনস্টল করতে, এই কমান্ডটি চালান:
npm install -g firebase-tools@latest
এই কমান্ডটি বিশ্বব্যাপী উপলভ্য
firebase
কমান্ড ইনস্টল করে। যদি এই কমান্ডটি ব্যর্থ হয় তবে আপনার এনপিএম অনুমতি পরিবর্তন করতে হবে।firebase-tools
সর্বশেষ সংস্করণে আপডেট করতে, একই কমান্ডটি পুনরায় চালু করুন।firebase-functions
এবংfirebase-admin
ইনস্টল করুন এবং ব্যবহার করুন--save
সেগুলি আপনারpackage.json
সংরক্ষণ করার জন্য-জসন:npm install firebase-functions@latest firebase-admin@latest --save
আপনি এখন এই সমাধানটি বাস্তবায়নে এগিয়ে যেতে প্রস্তুত।
বাস্তবায়ন
Remote Config এবং Vertex AI দিয়ে আপনার দ্বিতীয় জেন Cloud Functions তৈরি, পরীক্ষা এবং স্থাপনের জন্য এই পদক্ষেপগুলি অনুসরণ করুন:
- Google Cloud কনসোলে Vertex AI প্রস্তাবিত এপিআই সক্ষম করুন ।
- আপনার প্রকল্প শুরু করুন এবং নোড নির্ভরতা ইনস্টল করুন ।
- আপনার Admin SDK পরিষেবা অ্যাকাউন্টের জন্য আইএএম অনুমতিগুলি কনফিগার করুন এবং আপনার কীটি সংরক্ষণ করুন ।
- ফাংশন তৈরি করুন ।
- একটি সার্ভার-নির্দিষ্ট Remote Config টেম্পলেট তৈরি করুন ।
- আপনার ফাংশন স্থাপন করুন এবং এটি Firebase Local Emulator Suite পরীক্ষা করুন ।
- Google Cloud আপনার ফাংশন স্থাপন করুন ।
পদক্ষেপ 1: Google Cloud কনসোলে Vertex AI প্রস্তাবিত এপিআই সক্ষম করুন
- Google Cloud কনসোলটি খুলুন এবং যখন অনুরোধ জানানো হয়, আপনার প্রকল্পটি নির্বাচন করুন।
- কনসোলের শীর্ষে অনুসন্ধান ক্ষেত্রে, Vertex AI প্রবেশ করুন এবং ফলাফল হিসাবে উপস্থিত হওয়ার জন্য Vertex AI জন্য অপেক্ষা করুন।
- Vertex AI নির্বাচন করুন। Vertex AI ড্যাশবোর্ড প্রদর্শিত হবে।
সমস্ত প্রস্তাবিত এপিআই সক্ষম করুন ক্লিক করুন।
এপিআই সক্ষমতা সম্পূর্ণ হতে কয়েক মুহুর্ত সময় নিতে পারে। সক্ষমতা শেষ না হওয়া পর্যন্ত পৃষ্ঠাটি সক্রিয় এবং খোলা রাখুন।
যদি বিলিং সক্ষম না করা হয় তবে আপনাকে Cloud Billing অ্যাকাউন্ট যুক্ত বা লিঙ্ক করার অনুরোধ জানানো হবে। একটি বিলিং অ্যাকাউন্ট সক্ষম করার পরে, Vertex AI ড্যাশবোর্ডে ফিরে আসুন এবং যাচাই করুন যে সমস্ত প্রস্তাবিত এপিআই সক্ষম রয়েছে।
পদক্ষেপ 2: আপনার প্রকল্প শুরু করুন এবং নোড নির্ভরতা ইনস্টল করুন
- আপনার কম্পিউটারে একটি টার্মিনাল খুলুন এবং যেখানে আপনি আপনার ফাংশন তৈরি করার পরিকল্পনা করছেন সেখানে ডিরেক্টরিতে নেভিগেট করুন।
ফায়ারবেসে লগ ইন করুন:
firebase login
Cloud Functions for Firebase শুরু করতে নিম্নলিখিত কমান্ডটি চালান:
firebase init functions
একটি বিদ্যমান প্রকল্প ব্যবহার করুন এবং আপনার প্রকল্প আইডি নির্দিষ্ট করুন নির্বাচন করুন।
যখন ভাষাটি ব্যবহার করার জন্য অনুরোধ করা হয়, তখন জাভাস্ক্রিপ্ট চয়ন করুন এবং এন্টার টিপুন।
অন্যান্য সমস্ত বিকল্পের জন্য, ডিফল্টগুলি নির্বাচন করুন।
বর্তমান ডিরেক্টরিতে একটি
functions
ডিরেক্টরি তৈরি করা হয়। ভিতরে, আপনি একটিindex.js
ফাইল পাবেন যা আপনি আপনার ফাংশনটি তৈরি করতে ব্যবহার করবেন, একটিnode_modules
ডিরেক্টরি যা আপনার ফাংশনের জন্য নির্ভরতা এবং একটিpackage.json
ফাইল রয়েছে যাতে প্যাকেজ নির্ভরতা রয়েছে।নিম্নলিখিত কমান্ডগুলি চালিয়ে Admin SDK এবং Vertex AI প্যাকেজগুলি যুক্ত করুন -এটি আপনার
package.json
ফাইলটিতে সংরক্ষণ করা হয়েছে তা নিশ্চিত করার জন্য--save
ব্যবহার করে: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
}
মনে রাখবেন যে আপনি যদি এসলিন্ট ব্যবহার করছেন তবে আপনি এমন একটি স্টানজা দেখতে পাবেন যা এতে অন্তর্ভুক্ত রয়েছে। তদতিরিক্ত, নোড ইঞ্জিন সংস্করণটি আপনার নোড.জেএসের ইনস্টলড সংস্করণ এবং আপনি শেষ পর্যন্ত Google Cloud যে সংস্করণটি চালাচ্ছেন তার সাথে মেলে তা নিশ্চিত করুন। উদাহরণস্বরূপ, যদি আপনার package.json
engines
স্টানজা.জসন নোড সংস্করণ 18 হিসাবে কনফিগার করা থাকে এবং আপনি নোড.জেএস 20 ব্যবহার করছেন, 20 ব্যবহার করতে ফাইলটি আপডেট করুন:
"engines": {
"node": "20"
},
পদক্ষেপ 3: আপনার Admin SDK পরিষেবা অ্যাকাউন্টের জন্য আইএএম অনুমতিগুলি কনফিগার করুন এবং আপনার কীটি সংরক্ষণ করুন
এই সমাধানে, আপনি আপনার ফাংশনটি চালানোর জন্য ফায়ারবেস Admin SDK পরিষেবা অ্যাকাউন্ট ব্যবহার করবেন।
- Google Cloud কনসোলে, আইএএম এবং অ্যাডমিন পৃষ্ঠাটি খুলুন এবং Admin SDK পরিষেবা অ্যাকাউন্ট (
firebase-adminsdk
নামকরণ) সনাক্ত করুন। - অ্যাকাউন্টটি নির্বাচন করুন এবং সম্পাদনা প্রিন্সিপাল ক্লিক করুন। সম্পাদনা অ্যাক্সেস পৃষ্ঠা প্রদর্শিত হবে।
- অন্য ভূমিকা যুক্ত করুন ক্লিক করুন, Remote Config ভিউয়ার নির্বাচন করুন।
- অন্য ভূমিকা যুক্ত করুন ক্লিক করুন, এআই প্ল্যাটফর্ম বিকাশকারী নির্বাচন করুন।
- অন্য ভূমিকা যুক্ত করুন ক্লিক করুন, Vertex AI ব্যবহারকারী নির্বাচন করুন।
- অন্য ভূমিকা যুক্ত করুন ক্লিক করুন, ক্লাউড রান ইনভোকার নির্বাচন করুন।
- Save এ ক্লিক করুন।
এরপরে, Admin SDK পরিষেবা অ্যাকাউন্টের জন্য শংসাপত্রগুলি রফতানি করুন এবং সেগুলি আপনার GOOGLE_APPLICATION_CREDENTIALS
পরিবেশের ভেরিয়েবলে সংরক্ষণ করুন।
- Google Cloud কনসোলে, শংসাপত্রগুলি পৃষ্ঠা খুলুন।
- বিশদ পৃষ্ঠাটি খুলতে Admin SDK পরিষেবা অ্যাকাউন্টে ক্লিক করুন।
- কী-এ ক্লিক করুন।
- কী যুক্ত করুন > নতুন কী তৈরি করুন ক্লিক করুন।
- নিশ্চিত করুন যে JSON কে মূল প্রকার হিসাবে নির্বাচিত হয়েছে, তারপরে তৈরি ক্লিক করুন।
- আপনার কম্পিউটারে একটি নিরাপদ জায়গায় কীটি ডাউনলোড করুন।
আপনার টার্মিনাল থেকে, পরিবেশের পরিবর্তনশীল হিসাবে কীটি রফতানি করুন:
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-key.json"
পদক্ষেপ 4: ফাংশনটি তৈরি করুন
এই পদক্ষেপে, আপনি এমন একটি ফাংশন তৈরি করবেন যা ব্যবহারকারীর ইনপুট পরিচালনা করে এবং এআই-চালিত প্রতিক্রিয়াগুলি উত্পন্ন করে। আপনি একটি বিস্তৃত ফাংশন তৈরি করতে একাধিক কোড স্নিপেটগুলি একত্রিত করবেন যা Admin SDK এবং Vertex AI Gemini API আরম্ভ করে, Remote Config ব্যবহার করে ডিফল্ট প্যারামিটারগুলি কনফিগার করে, সর্বশেষতম Remote Config প্যারামিটারগুলি নিয়ে আসে, ব্যবহারকারী ইনপুট প্রক্রিয়া করে এবং ব্যবহারকারীর কাছে প্রতিক্রিয়া প্রবাহিত করে।
- আপনার কোডবেসে, কোনও পাঠ্য সম্পাদক বা আইডিইতে
functions/index.js
খুলুন। বিদ্যমান সামগ্রীটি মুছুন এবং তারপরে Admin SDK , Remote Config এবং Vertex AI এসডিকে যুক্ত করুন এবং ফাইলটিতে নিম্নলিখিত কোডটি আটকিয়ে অ্যাপ্লিকেশনটি আরম্ভ করুন:
const { onRequest } = require("firebase-functions/v2/https"); 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"); // 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 সাথে সম্পর্কিত যা আপনি এই গাইডটিতে আরও কনফিগার করবেন তা কনফিগার করে। এই পরামিতিগুলি সম্পর্কে আরও তথ্যের জন্য, ভার্টেক্স এআই নোড.জেএস ক্লায়েন্ট দেখুন।Ally চ্ছিকভাবে, আপনি Vertex AI Gemini API অ্যাক্সেস করুন কিনা তা নিয়ন্ত্রণ করতে আপনি একটি প্যারামিটারও কনফিগার করতে পারেন (এই উদাহরণে,
vertex_enabled
নামে একটি প্যারামিটার)। আপনার ফাংশনটি পরীক্ষা করার সময় এই সেটআপটি কার্যকর হতে পারে। নিম্নলিখিত কোড স্নিপেটগুলিতে, এই মানটিfalse
হিসাবে সেট করা আছে, যা আপনি বেসিক ফাংশন স্থাপনার পরীক্ষা করার সময় Vertex AI ব্যবহার করে এড়িয়ে চলবেন। এটিকেtrue
সেট করা Vertex AI Gemini API অনুরোধ করবে।// Define default (fallback) parameter values for Remote Config. const defaultConfig = { // Default values for Vertex AI. model_name: "gemini-1.5-flash-preview-0514", 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;
Vertex AI সেট আপ করুন এবং চ্যাট এবং প্রতিক্রিয়া যুক্তি যুক্ত করুন:
// 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'); } });
ফাইলটি সংরক্ষণ করুন এবং বন্ধ করুন।
পদক্ষেপ 5: একটি সার্ভার-নির্দিষ্ট Remote Config টেম্পলেট তৈরি করুন
এরপরে, একটি সার্ভার-সাইড Remote Config টেম্পলেট তৈরি করুন এবং আপনার ফাংশনে ব্যবহারের জন্য পরামিতি এবং মানগুলি কনফিগার করুন। একটি সার্ভার-নির্দিষ্ট Remote Config টেম্পলেট তৈরি করতে:
- Firebase কনসোলটি খুলুন এবং নেভিগেশন মেনু থেকে, রান প্রসারিত করুন এবং Remote Config নির্বাচন করুন।
Remote Config পৃষ্ঠার শীর্ষে ক্লায়েন্ট/সার্ভার নির্বাচক থেকে সার্ভার নির্বাচন করুন।
- Remote Config বা সার্ভার টেম্পলেটগুলি ব্যবহার করে যদি এটি আপনার প্রথমবার হয় তবে কনফিগারেশন তৈরি করুন ক্লিক করুন। আপনার প্রথম সার্ভার-সাইড প্যারামিটার ফলকটি উপস্থিত করুন।
- Remote Config সার্ভার টেম্পলেটগুলি ব্যবহার করে যদি এটি আপনার প্রথমবার না হয় তবে প্যারামিটার যুক্ত করুন ক্লিক করুন।
নিম্নলিখিত Remote Config পরামিতিগুলি সংজ্ঞায়িত করুন:
পরামিতি নাম বর্ণনা টাইপ ডিফল্ট মান model_name
মডেলের নাম
আপনার কোডে ব্যবহারের জন্য মডেল নামগুলির আপ-টু-ডেট তালিকার জন্য, মডেল সংস্করণ এবং লাইফসাইকেল বা উপলভ্য মডেলের নামগুলি দেখুন।স্ট্রিং gemini-1.5-pro-preview-0514
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}]
safety_settings
Vertex AI জন্য সুরক্ষা সেটিংস । JSON [{"category": "HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "HarmBlockThreshold.BLOCK_LOW_AND_ABOVE"}]
location
Vertex AI পরিষেবা এবং মডেল চালানোর জন্য অবস্থান । স্ট্রিং us-central1
is_vertex_enabled
Coery চ্ছিক প্যারামিটার যা ক্যোয়ারীগুলি Vertex AI প্রেরণ করা হয় কিনা তা নিয়ন্ত্রণ করে। বুলিয়ান true
আপনি যখন পরামিতি যুক্ত করা শেষ করেছেন, আপনার পরামিতিগুলি ডাবল-চেক করুন এবং তাদের ডেটা প্রকারগুলি সঠিক, তারপরে পরিবর্তনগুলি প্রকাশ করুন ক্লিক করুন।
পদক্ষেপ 6: আপনার ফাংশন স্থাপন করুন এবং এটি Firebase Local Emulator Suite পরীক্ষা করুন
এখন আপনি Firebase Local Emulator Suite দিয়ে স্থানীয়ভাবে আপনার ফাংশনটি মোতায়েন এবং পরীক্ষা করতে প্রস্তুত।
নিশ্চিত হয়ে নিন যে আপনি
GOOGLE_APPLICATION_CREDENTIALS
পরিবেশের পরিবর্তনশীল হিসাবে সেট করেছেন 3 ধাপে বর্ণিত হিসাবে: আপনার Admin SDK পরিষেবা অ্যাকাউন্টের জন্য আইএএম অনুমতিগুলি কনফিগার করুন এবং আপনার কীটি সংরক্ষণ করুন । তারপরে, আপনারfunctions
ডিরেক্টরিটির প্যারেন্ট ডিরেক্টরি থেকে, আপনার ফাংশনটি ফায়ারবেস এমুলেটরে স্থাপন করুন:firebase emulators:start --project PROJECT_ID --only functions
এমুলেটরের লগ পৃষ্ঠা খুলুন। এটি আপনার ফাংশনটি লোড হয়েছে তা দেখানো উচিত।
নিম্নলিখিত কমান্ডটি চালিয়ে আপনার ফাংশনটি অ্যাক্সেস করুন, যেখানে PROJECT_ID হ'ল আপনার প্রকল্প আইডি এবং LOCATION এমন অঞ্চল যা আপনি ফাংশনটি স্থাপন করেছেন (উদাহরণস্বরূপ,
us-central1
):curl http://localhost:5001/PROJECT_ID/LOCATION/generateWithVertex
কোনও প্রতিক্রিয়ার জন্য অপেক্ষা করুন, তারপরে ফায়ারবেস এমুলেটর লগ পৃষ্ঠা বা আপনার কনসোলে ফিরে যান এবং কোনও ত্রুটি বা সতর্কতা পরীক্ষা করুন।
কিছু ব্যবহারকারীর ইনপুট প্রেরণের চেষ্টা করুন, উল্লেখ করে যে
is_vertex_enabled
আপনার Remote Config সার্ভার টেম্পলেটটিতে কনফিগার করা হয়েছে, এটি Vertex AI Gemini API মাধ্যমে Gemini অ্যাক্সেস করা উচিত এবং এটি চার্জ গ্রহণ করতে পারে:curl http://localhost:5001/PROJECT_ID/LOCATION/generateWithVertex?prompt=Tell%20me%20everything%20you%20know%20about%20cats
Firebase কনসোলে আপনার Remote Config সার্ভার টেম্পলেটটিতে পরিবর্তন করুন, তারপরে পরিবর্তনগুলি পর্যবেক্ষণ করতে আপনার ফাংশনটি পুনরায় অ্যাক্সেস করুন।
পদক্ষেপ 7: আপনার ফাংশন Google Cloud স্থাপন করুন
আপনি আপনার ফাংশনটি পরীক্ষা ও যাচাই করার পরে, আপনি Google Cloud মোতায়েন করতে এবং লাইভ ফাংশনটি পরীক্ষা করতে প্রস্তুত।
আপনার ফাংশন স্থাপন
Firebase সিএলআই ব্যবহার করে আপনার ফাংশন স্থাপন করুন:
firebase deploy --only functions
ফাংশনটিতে অযৌক্তিক অ্যাক্সেস ব্লক করুন
যখন ফায়ারবেস ব্যবহার করে ফাংশনগুলি মোতায়েন করা হয়, আপনার সংস্থার নীতিটি যদি এটি সীমাবদ্ধ না করে তবে ডিফল্টরূপে অযৌক্তিক আমন্ত্রণগুলির অনুমতি দেওয়া হয়। পরীক্ষার সময় এবং App Check দিয়ে সুরক্ষিত করার আগে, আমরা অযৌক্তিক অ্যাক্সেস ব্লক করার পরামর্শ দিই।
ফাংশনটিতে অযৌক্তিক অ্যাক্সেস ব্লক করতে:
Google Cloud কনসোলে, ওপেন ক্লাউড রান ।
generateWithVertex
ক্লিক করুন, তারপরে সুরক্ষা ট্যাবে ক্লিক করুন।প্রমাণীকরণের প্রয়োজন এবং তারপরে সংরক্ষণ ক্লিক করুন।
Admin SDK পরিষেবা অ্যাকাউন্টের শংসাপত্রগুলি ব্যবহার করতে আপনার ব্যবহারকারী অ্যাকাউন্টটি কনফিগার করুন
যেহেতু Admin SDK সার্ভিস অ্যাকাউন্টে ফাংশনটি চালানোর জন্য সমস্ত প্রয়োজনীয় ভূমিকা এবং অনুমতি রয়েছে এবং Remote Config এবং Vertex AI Gemini API সাথে ইন্টারঅ্যাক্ট করার জন্য, আপনি এটি আপনার ফাংশনটি চালানোর জন্য এটি ব্যবহার করতে চাইবেন। এটি করার জন্য, আপনাকে অবশ্যই আপনার ব্যবহারকারীর অ্যাকাউন্ট থেকে অ্যাকাউন্টের জন্য টোকেন তৈরি করতে সক্ষম হতে হবে।
নিম্নলিখিত পদক্ষেপগুলি কীভাবে আপনার ব্যবহারকারীর অ্যাকাউন্টটি কনফিগার করতে হবে এবং Admin SDK পরিষেবা অ্যাকাউন্টের সুবিধাগুলির সাথে চালানোর জন্য ফাংশনটি বর্ণনা করে।
- Google Cloud কনসোলে, আইএএম পরিষেবা অ্যাকাউন্টের শংসাপত্রগুলি এপিআই সক্ষম করুন।
- আপনার ব্যবহারকারীর অ্যাকাউন্টটি পরিষেবা অ্যাকাউন্টটি টোকেন স্রষ্টার ভূমিকা দিন: Google Cloud কনসোল থেকে, আইএএম এবং অ্যাডমিন > আইএএম খুলুন, আপনার ব্যবহারকারীর অ্যাকাউন্ট নির্বাচন করুন এবং তারপরে প্রিন্সিপাল সম্পাদনা ক্লিক করুন> অন্য ভূমিকা যুক্ত করুন ।
পরিষেবা অ্যাকাউন্ট টোকেন স্রষ্টা নির্বাচন করুন, তারপরে সংরক্ষণ ক্লিক করুন।
পরিষেবা অ্যাকাউন্টের ছদ্মবেশ সম্পর্কে আরও বিশদ তথ্যের জন্য, Google Cloud ডকুমেন্টেশনে পরিষেবা অ্যাকাউন্টের ছদ্মবেশটি দেখুন।
Google Cloud কনসোল Cloud Functions পৃষ্ঠাটি খুলুন এবং ফাংশন তালিকায় জেনারেট উইথভারটেক্স ফাংশনটি ক্লিক করুন।
ট্রিগার > সম্পাদনা করুন এবং রানটাইম, বিল্ড, সংযোগগুলি এবং সুরক্ষা সেটিংস নির্বাচন করুন।
রানটাইম ট্যাব থেকে, রানটাইম পরিষেবা অ্যাকাউন্টটি অ্যাডমিন এসডিকে অ্যাকাউন্টে পরিবর্তন করুন।
পরবর্তী ক্লিক করুন, তারপরে মোতায়েন ক্লিক করুন।
GCloud Cli সেট আপ করুন
কমান্ড লাইন থেকে আপনার ফাংশনটি নিরাপদে চালাতে এবং পরীক্ষা করতে, আপনাকে Cloud Functions পরিষেবা দিয়ে প্রমাণীকরণ করতে হবে এবং একটি বৈধ প্রমাণীকরণ টোকেন পেতে হবে।
টোকেন প্রজন্মকে সক্ষম করতে, GCloud সিএলআই ইনস্টল এবং কনফিগার করুন:
যদি ইতিমধ্যে আপনার কম্পিউটারে ইনস্টল না করা হয় তবে GCloud সিএলআই ইনস্টল হিসাবে বর্ণিত হিসাবে GCloud সিএলআই ইনস্টল করুন।
আপনার Google Cloud অ্যাকাউন্টের জন্য অ্যাক্সেস শংসাপত্রগুলি পান:
gcloud auth login
আপনার প্রকল্পের আইডি GCloud এ সেট করুন:
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 সার্ভার টেম্পলেটটিতে পরিবর্তন করতে পারেন, এই পরিবর্তনগুলি প্রকাশ করতে পারেন এবং বিভিন্ন বিকল্প পরীক্ষা করতে পারেন।
পরবর্তী পদক্ষেপ
- ফায়ারবেস Cloud Functions সুরক্ষিত করতে App Check ব্যবহার করার পরামর্শ দেয়। App Check দিয়ে আপনার ফাংশনটি সুরক্ষিত করার বিষয়ে আরও তথ্যের জন্য Cloud Functions জন্য App Check প্রয়োগের সক্ষম করুন দেখুন
- সার্ভার-সাইড Remote Config সহ একটি নমুনা কলযোগ্য ফাংশন ব্যবহার করে দেখুন এবং App Check Remote Config এবং App Check সহ Vertex AI Gemini API কল করুন ।
- ফায়ারবেসের জন্য Cloud Functions সম্পর্কে আরও জানুন।
- সার্ভার পরিবেশে Remote Config ব্যবহার সম্পর্কে আরও জানুন।
এই গাইডটি বর্ণনা করে যে কীভাবে সার্ভার-সাইড Remote Config সহ দ্বিতীয় জেনার Cloud Functions ব্যবহার করা শুরু করা যায় Vertex AI Gemini API সার্ভার-সাইড কলগুলি তৈরি করতে।
এই টিউটোরিয়ালে, আপনি একটি চ্যাটবোটের মতো ফাংশনে Remote Config যুক্ত করবেন যা ব্যবহারকারীর প্রশ্নের উত্তর দিতে Gemini মডেল ব্যবহার করে। Remote Config Gemini API ইনপুটগুলি পরিচালনা করবে (আপনি আগত ব্যবহারকারীর প্রশ্নের জন্য প্রম্পট সহ একটি প্রম্পট সহ) এবং আপনি Firebase কনসোল থেকে এই ইনপুটগুলি অন-ডিমান্ড আপডেট করতে পারেন। আপনি ফাংশনটি পরীক্ষা এবং ডিবাগ করতে Firebase Local Emulator Suite ব্যবহার করবেন এবং তারপরে, এটি কাজ করে তা যাচাই করার পরে, আপনি এটি Google Cloud মোতায়েন করবেন এবং পরীক্ষা করবেন।
পূর্বশর্ত
এই গাইডটি ধরে নিয়েছে যে আপনি অ্যাপ্লিকেশনগুলি বিকাশের জন্য জাভাস্ক্রিপ্ট ব্যবহারের সাথে পরিচিত।
একটি ফায়ারবেস প্রকল্প সেট আপ করুন
আপনার যদি ইতিমধ্যে একটি ফায়ারবেস প্রকল্প না থাকে:
Firebase কনসোলে সাইন ইন করুন।
প্রকল্প তৈরি করুন ক্লিক করুন এবং তারপরে নিম্নলিখিত যে কোনও একটি বিকল্প ব্যবহার করুন:
- বিকল্প 1 : "প্রকল্প তৈরি করুন" কর্মপ্রবাহের প্রথম ধাপে একটি নতুন প্রকল্পের নাম প্রবেশ করে একটি নতুন ফায়ারবেস প্রকল্প (এবং এর অন্তর্নিহিত Google Cloud প্রকল্পটি স্বয়ংক্রিয়ভাবে) তৈরি করুন।
- বিকল্প 2 : "প্রকল্প তৈরি করুন" ওয়ার্কফ্লোয়ের প্রথম ধাপে ড্রপ-ডাউন মেনু থেকে আপনার Google Cloud প্রকল্পের নাম নির্বাচন করে একটি বিদ্যমান Google Cloud প্রকল্পে "ফায়ারবেস যুক্ত করুন"।
যখন অনুরোধ জানানো হয়, আপনাকে এই সমাধানটি ব্যবহার করতে Google Analytics সেট আপ করার দরকার নেই ।
আপনার প্রকল্প তৈরি করতে অন-স্ক্রিন নির্দেশাবলী অনুসরণ করা চালিয়ে যান।
আপনার যদি ইতিমধ্যে একটি ফায়ারবেস প্রকল্প থাকে:
আপনার উন্নয়ন পরিবেশ কনফিগার করতে এগিয়ে যান।
আপনার উন্নয়ন পরিবেশ কনফিগার করুন
ফাংশনগুলি লেখার জন্য আপনার একটি নোড.জেএস পরিবেশের প্রয়োজন হবে এবং Cloud Functions রানটাইমগুলিতে ফাংশন স্থাপনের জন্য আপনার Firebase সিএলআই প্রয়োজন।
নোড.জেএস এবং এনপিএম ইনস্টল করুন।
নোড.জেএস এবং এনপিএম ইনস্টল করার জন্য, আমরা নোড সংস্করণ পরিচালক ব্যবহার করার পরামর্শ দিই।
আপনার পছন্দসই পদ্ধতিটি ব্যবহার করে Firebase সিএলআই ইনস্টল করুন । উদাহরণস্বরূপ, এনপিএম ব্যবহার করে সিএলআই ইনস্টল করতে, এই কমান্ডটি চালান:
npm install -g firebase-tools@latest
এই কমান্ডটি বিশ্বব্যাপী উপলভ্য
firebase
কমান্ড ইনস্টল করে। যদি এই কমান্ডটি ব্যর্থ হয় তবে আপনার এনপিএম অনুমতি পরিবর্তন করতে হবে।firebase-tools
সর্বশেষ সংস্করণে আপডেট করতে, একই কমান্ডটি পুনরায় চালু করুন।firebase-functions
এবংfirebase-admin
ইনস্টল করুন এবং ব্যবহার করুন--save
সেগুলি আপনারpackage.json
সংরক্ষণ করার জন্য-জসন:npm install firebase-functions@latest firebase-admin@latest --save
আপনি এখন এই সমাধানটি বাস্তবায়নে এগিয়ে যেতে প্রস্তুত।
বাস্তবায়ন
Remote Config এবং Vertex AI দিয়ে আপনার দ্বিতীয় জেন Cloud Functions তৈরি, পরীক্ষা এবং স্থাপনের জন্য এই পদক্ষেপগুলি অনুসরণ করুন:
- Google Cloud কনসোলে Vertex AI প্রস্তাবিত এপিআই সক্ষম করুন ।
- আপনার প্রকল্প শুরু করুন এবং নোড নির্ভরতা ইনস্টল করুন ।
- আপনার Admin SDK পরিষেবা অ্যাকাউন্টের জন্য আইএএম অনুমতিগুলি কনফিগার করুন এবং আপনার কীটি সংরক্ষণ করুন ।
- ফাংশন তৈরি করুন ।
- একটি সার্ভার-নির্দিষ্ট Remote Config টেম্পলেট তৈরি করুন ।
- আপনার ফাংশন স্থাপন করুন এবং এটি Firebase Local Emulator Suite পরীক্ষা করুন ।
- Google Cloud আপনার ফাংশন স্থাপন করুন ।
পদক্ষেপ 1: Google Cloud কনসোলে Vertex AI প্রস্তাবিত এপিআই সক্ষম করুন
- Google Cloud কনসোলটি খুলুন এবং যখন অনুরোধ জানানো হয়, আপনার প্রকল্পটি নির্বাচন করুন।
- কনসোলের শীর্ষে অনুসন্ধান ক্ষেত্রে, Vertex AI প্রবেশ করুন এবং ফলাফল হিসাবে উপস্থিত হওয়ার জন্য Vertex AI জন্য অপেক্ষা করুন।
- Vertex AI নির্বাচন করুন। Vertex AI ড্যাশবোর্ড প্রদর্শিত হবে।
সমস্ত প্রস্তাবিত এপিআই সক্ষম করুন ক্লিক করুন।
এপিআই সক্ষমতা সম্পূর্ণ হতে কয়েক মুহুর্ত সময় নিতে পারে। সক্ষমতা শেষ না হওয়া পর্যন্ত পৃষ্ঠাটি সক্রিয় এবং খোলা রাখুন।
যদি বিলিং সক্ষম না করা হয় তবে আপনাকে Cloud Billing অ্যাকাউন্ট যুক্ত বা লিঙ্ক করার অনুরোধ জানানো হবে। একটি বিলিং অ্যাকাউন্ট সক্ষম করার পরে, Vertex AI ড্যাশবোর্ডে ফিরে আসুন এবং যাচাই করুন যে সমস্ত প্রস্তাবিত এপিআই সক্ষম রয়েছে।
পদক্ষেপ 2: আপনার প্রকল্প শুরু করুন এবং নোড নির্ভরতা ইনস্টল করুন
- আপনার কম্পিউটারে একটি টার্মিনাল খুলুন এবং যেখানে আপনি আপনার ফাংশন তৈরি করার পরিকল্পনা করছেন সেখানে ডিরেক্টরিতে নেভিগেট করুন।
ফায়ারবেসে লগ ইন করুন:
firebase login
Cloud Functions for Firebase শুরু করতে নিম্নলিখিত কমান্ডটি চালান:
firebase init functions
একটি বিদ্যমান প্রকল্প ব্যবহার করুন এবং আপনার প্রকল্প আইডি নির্দিষ্ট করুন নির্বাচন করুন।
যখন ভাষাটি ব্যবহার করার জন্য অনুরোধ করা হয়, তখন জাভাস্ক্রিপ্ট চয়ন করুন এবং এন্টার টিপুন।
অন্যান্য সমস্ত বিকল্পের জন্য, ডিফল্টগুলি নির্বাচন করুন।
বর্তমান ডিরেক্টরিতে একটি
functions
ডিরেক্টরি তৈরি করা হয়। ভিতরে, আপনি একটিindex.js
ফাইল পাবেন যা আপনি আপনার ফাংশনটি তৈরি করতে ব্যবহার করবেন, একটিnode_modules
ডিরেক্টরি যা আপনার ফাংশনের জন্য নির্ভরতা এবং একটিpackage.json
ফাইল রয়েছে যাতে প্যাকেজ নির্ভরতা রয়েছে।নিম্নলিখিত কমান্ডগুলি চালিয়ে Admin SDK এবং Vertex AI প্যাকেজগুলি যুক্ত করুন -এটি আপনার
package.json
ফাইলটিতে সংরক্ষণ করা হয়েছে তা নিশ্চিত করার জন্য--save
ব্যবহার করে: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
}
মনে রাখবেন যে আপনি যদি এসলিন্ট ব্যবহার করছেন তবে আপনি এমন একটি স্টানজা দেখতে পাবেন যা এতে অন্তর্ভুক্ত রয়েছে। তদতিরিক্ত, নোড ইঞ্জিন সংস্করণটি আপনার নোড.জেএসের ইনস্টলড সংস্করণ এবং আপনি শেষ পর্যন্ত Google Cloud যে সংস্করণটি চালাচ্ছেন তার সাথে মেলে তা নিশ্চিত করুন। উদাহরণস্বরূপ, যদি আপনার package.json
engines
স্টানজা.জসন নোড সংস্করণ 18 হিসাবে কনফিগার করা থাকে এবং আপনি নোড.জেএস 20 ব্যবহার করছেন, 20 ব্যবহার করতে ফাইলটি আপডেট করুন:
"engines": {
"node": "20"
},
পদক্ষেপ 3: আপনার Admin SDK পরিষেবা অ্যাকাউন্টের জন্য আইএএম অনুমতিগুলি কনফিগার করুন এবং আপনার কীটি সংরক্ষণ করুন
এই সমাধানে, আপনি আপনার ফাংশনটি চালানোর জন্য ফায়ারবেস Admin SDK পরিষেবা অ্যাকাউন্ট ব্যবহার করবেন।
- Google Cloud কনসোলে, আইএএম এবং অ্যাডমিন পৃষ্ঠাটি খুলুন এবং Admin SDK পরিষেবা অ্যাকাউন্ট (
firebase-adminsdk
নামকরণ) সনাক্ত করুন। - অ্যাকাউন্টটি নির্বাচন করুন এবং সম্পাদনা প্রিন্সিপাল ক্লিক করুন। সম্পাদনা অ্যাক্সেস পৃষ্ঠা প্রদর্শিত হবে।
- অন্য ভূমিকা যুক্ত করুন ক্লিক করুন, Remote Config ভিউয়ার নির্বাচন করুন।
- অন্য ভূমিকা যুক্ত করুন ক্লিক করুন, এআই প্ল্যাটফর্ম বিকাশকারী নির্বাচন করুন।
- অন্য ভূমিকা যুক্ত করুন ক্লিক করুন, Vertex AI ব্যবহারকারী নির্বাচন করুন।
- অন্য ভূমিকা যুক্ত করুন ক্লিক করুন, ক্লাউড রান ইনভোকার নির্বাচন করুন।
- Save এ ক্লিক করুন।
এরপরে, Admin SDK পরিষেবা অ্যাকাউন্টের জন্য শংসাপত্রগুলি রফতানি করুন এবং সেগুলি আপনার GOOGLE_APPLICATION_CREDENTIALS
পরিবেশের ভেরিয়েবলে সংরক্ষণ করুন।
- Google Cloud কনসোলে, শংসাপত্রগুলি পৃষ্ঠা খুলুন।
- বিশদ পৃষ্ঠাটি খুলতে Admin SDK পরিষেবা অ্যাকাউন্টে ক্লিক করুন।
- কী-এ ক্লিক করুন।
- কী যুক্ত করুন > নতুন কী তৈরি করুন ক্লিক করুন।
- নিশ্চিত করুন যে JSON কে মূল প্রকার হিসাবে নির্বাচিত হয়েছে, তারপরে তৈরি ক্লিক করুন।
- আপনার কম্পিউটারে একটি নিরাপদ জায়গায় কীটি ডাউনলোড করুন।
আপনার টার্মিনাল থেকে, পরিবেশের পরিবর্তনশীল হিসাবে কীটি রফতানি করুন:
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-key.json"
পদক্ষেপ 4: ফাংশনটি তৈরি করুন
এই পদক্ষেপে, আপনি এমন একটি ফাংশন তৈরি করবেন যা ব্যবহারকারীর ইনপুট পরিচালনা করে এবং এআই-চালিত প্রতিক্রিয়াগুলি উত্পন্ন করে। আপনি একটি বিস্তৃত ফাংশন তৈরি করতে একাধিক কোড স্নিপেটগুলি একত্রিত করবেন যা Admin SDK এবং Vertex AI Gemini API আরম্ভ করে, Remote Config ব্যবহার করে ডিফল্ট প্যারামিটারগুলি কনফিগার করে, সর্বশেষতম Remote Config প্যারামিটারগুলি নিয়ে আসে, ব্যবহারকারী ইনপুট প্রক্রিয়া করে এবং ব্যবহারকারীর কাছে প্রতিক্রিয়া প্রবাহিত করে।
- আপনার কোডবেসে, কোনও পাঠ্য সম্পাদক বা আইডিইতে
functions/index.js
খুলুন। বিদ্যমান সামগ্রীটি মুছুন এবং তারপরে Admin SDK , Remote Config এবং Vertex AI এসডিকে যুক্ত করুন এবং ফাইলটিতে নিম্নলিখিত কোডটি আটকিয়ে অ্যাপ্লিকেশনটি আরম্ভ করুন:
const { onRequest } = require("firebase-functions/v2/https"); 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"); // 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 সাথে সম্পর্কিত যা আপনি এই গাইডটিতে আরও কনফিগার করবেন তা কনফিগার করে। এই পরামিতিগুলি সম্পর্কে আরও তথ্যের জন্য, ভার্টেক্স এআই নোড.জেএস ক্লায়েন্ট দেখুন।Ally চ্ছিকভাবে, আপনি Vertex AI Gemini API অ্যাক্সেস করুন কিনা তা নিয়ন্ত্রণ করতে আপনি একটি প্যারামিটারও কনফিগার করতে পারেন (এই উদাহরণে,
vertex_enabled
নামে একটি প্যারামিটার)। আপনার ফাংশনটি পরীক্ষা করার সময় এই সেটআপটি কার্যকর হতে পারে। নিম্নলিখিত কোড স্নিপেটগুলিতে, এই মানটিfalse
হিসাবে সেট করা আছে, যা আপনি বেসিক ফাংশন স্থাপনার পরীক্ষা করার সময় Vertex AI ব্যবহার করে এড়িয়ে চলবেন। এটিকেtrue
সেট করা Vertex AI Gemini API অনুরোধ করবে।// Define default (fallback) parameter values for Remote Config. const defaultConfig = { // Default values for Vertex AI. model_name: "gemini-1.5-flash-preview-0514", 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;
Vertex AI সেট আপ করুন এবং চ্যাট এবং প্রতিক্রিয়া যুক্তি যুক্ত করুন:
// 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'); } });
ফাইলটি সংরক্ষণ করুন এবং বন্ধ করুন।
পদক্ষেপ 5: একটি সার্ভার-নির্দিষ্ট Remote Config টেম্পলেট তৈরি করুন
এরপরে, একটি সার্ভার-সাইড Remote Config টেম্পলেট তৈরি করুন এবং আপনার ফাংশনে ব্যবহারের জন্য পরামিতি এবং মানগুলি কনফিগার করুন। একটি সার্ভার-নির্দিষ্ট Remote Config টেম্পলেট তৈরি করতে:
- Firebase কনসোলটি খুলুন এবং নেভিগেশন মেনু থেকে, রান প্রসারিত করুন এবং Remote Config নির্বাচন করুন।
Remote Config পৃষ্ঠার শীর্ষে ক্লায়েন্ট/সার্ভার নির্বাচক থেকে সার্ভার নির্বাচন করুন।
- Remote Config বা সার্ভার টেম্পলেটগুলি ব্যবহার করে যদি এটি আপনার প্রথমবার হয় তবে কনফিগারেশন তৈরি করুন ক্লিক করুন। আপনার প্রথম সার্ভার-সাইড প্যারামিটার ফলকটি উপস্থিত করুন।
- Remote Config সার্ভার টেম্পলেটগুলি ব্যবহার করে যদি এটি আপনার প্রথমবার না হয় তবে প্যারামিটার যুক্ত করুন ক্লিক করুন।
নিম্নলিখিত Remote Config পরামিতিগুলি সংজ্ঞায়িত করুন:
পরামিতি নাম বর্ণনা টাইপ ডিফল্ট মান model_name
মডেলের নাম
আপনার কোডে ব্যবহারের জন্য মডেল নামগুলির আপ-টু-ডেট তালিকার জন্য, মডেল সংস্করণ এবং লাইফসাইকেল বা উপলভ্য মডেলের নামগুলি দেখুন।স্ট্রিং gemini-1.5-pro-preview-0514
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}]
safety_settings
Vertex AI জন্য সুরক্ষা সেটিংস । JSON [{"category": "HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "HarmBlockThreshold.BLOCK_LOW_AND_ABOVE"}]
location
Vertex AI পরিষেবা এবং মডেল চালানোর জন্য অবস্থান । স্ট্রিং us-central1
is_vertex_enabled
Coery চ্ছিক প্যারামিটার যা ক্যোয়ারীগুলি Vertex AI প্রেরণ করা হয় কিনা তা নিয়ন্ত্রণ করে। বুলিয়ান true
আপনি যখন পরামিতি যুক্ত করা শেষ করেছেন, আপনার পরামিতিগুলি ডাবল-চেক করুন এবং তাদের ডেটা প্রকারগুলি সঠিক, তারপরে পরিবর্তনগুলি প্রকাশ করুন ক্লিক করুন।
পদক্ষেপ 6: আপনার ফাংশন স্থাপন করুন এবং এটি Firebase Local Emulator Suite পরীক্ষা করুন
এখন আপনি Firebase Local Emulator Suite দিয়ে স্থানীয়ভাবে আপনার ফাংশনটি মোতায়েন এবং পরীক্ষা করতে প্রস্তুত।
নিশ্চিত হয়ে নিন যে আপনি
GOOGLE_APPLICATION_CREDENTIALS
পরিবেশের পরিবর্তনশীল হিসাবে সেট করেছেন 3 ধাপে বর্ণিত হিসাবে: আপনার Admin SDK পরিষেবা অ্যাকাউন্টের জন্য আইএএম অনুমতিগুলি কনফিগার করুন এবং আপনার কীটি সংরক্ষণ করুন । তারপরে, আপনারfunctions
ডিরেক্টরিটির প্যারেন্ট ডিরেক্টরি থেকে, আপনার ফাংশনটি ফায়ারবেস এমুলেটরে স্থাপন করুন:firebase emulators:start --project PROJECT_ID --only functions
এমুলেটরের লগ পৃষ্ঠা খুলুন। এটি আপনার ফাংশনটি লোড হয়েছে তা দেখানো উচিত।
নিম্নলিখিত কমান্ডটি চালিয়ে আপনার ফাংশনটি অ্যাক্সেস করুন, যেখানে PROJECT_ID হ'ল আপনার প্রকল্প আইডি এবং LOCATION এমন অঞ্চল যা আপনি ফাংশনটি স্থাপন করেছেন (উদাহরণস্বরূপ,
us-central1
):curl http://localhost:5001/PROJECT_ID/LOCATION/generateWithVertex
কোনও প্রতিক্রিয়ার জন্য অপেক্ষা করুন, তারপরে ফায়ারবেস এমুলেটর লগ পৃষ্ঠা বা আপনার কনসোলে ফিরে যান এবং কোনও ত্রুটি বা সতর্কতা পরীক্ষা করুন।
কিছু ব্যবহারকারীর ইনপুট প্রেরণের চেষ্টা করুন, উল্লেখ করে যে
is_vertex_enabled
আপনার Remote Config সার্ভার টেম্পলেটটিতে কনফিগার করা হয়েছে, এটি Vertex AI Gemini API মাধ্যমে Gemini অ্যাক্সেস করা উচিত এবং এটি চার্জ গ্রহণ করতে পারে:curl http://localhost:5001/PROJECT_ID/LOCATION/generateWithVertex?prompt=Tell%20me%20everything%20you%20know%20about%20cats
Firebase কনসোলে আপনার Remote Config সার্ভার টেম্পলেটটিতে পরিবর্তন করুন, তারপরে পরিবর্তনগুলি পর্যবেক্ষণ করতে আপনার ফাংশনটি পুনরায় অ্যাক্সেস করুন।
পদক্ষেপ 7: আপনার ফাংশন Google Cloud স্থাপন করুন
আপনি আপনার ফাংশনটি পরীক্ষা ও যাচাই করার পরে, আপনি Google Cloud মোতায়েন করতে এবং লাইভ ফাংশনটি পরীক্ষা করতে প্রস্তুত।
আপনার ফাংশন স্থাপন
Firebase সিএলআই ব্যবহার করে আপনার ফাংশন স্থাপন করুন:
firebase deploy --only functions
ফাংশনটিতে অযৌক্তিক অ্যাক্সেস ব্লক করুন
যখন ফায়ারবেস ব্যবহার করে ফাংশনগুলি মোতায়েন করা হয়, আপনার সংস্থার নীতিটি যদি এটি সীমাবদ্ধ না করে তবে ডিফল্টরূপে অযৌক্তিক আমন্ত্রণগুলির অনুমতি দেওয়া হয়। পরীক্ষার সময় এবং App Check দিয়ে সুরক্ষিত করার আগে, আমরা অযৌক্তিক অ্যাক্সেস ব্লক করার পরামর্শ দিই।
ফাংশনটিতে অযৌক্তিক অ্যাক্সেস ব্লক করতে:
Google Cloud কনসোলে, ওপেন ক্লাউড রান ।
generateWithVertex
ক্লিক করুন, তারপরে সুরক্ষা ট্যাবে ক্লিক করুন।প্রমাণীকরণের প্রয়োজন এবং তারপরে সংরক্ষণ ক্লিক করুন।
Admin SDK পরিষেবা অ্যাকাউন্টের শংসাপত্রগুলি ব্যবহার করতে আপনার ব্যবহারকারী অ্যাকাউন্টটি কনফিগার করুন
যেহেতু Admin SDK সার্ভিস অ্যাকাউন্টে ফাংশনটি চালানোর জন্য সমস্ত প্রয়োজনীয় ভূমিকা এবং অনুমতি রয়েছে এবং Remote Config এবং Vertex AI Gemini API সাথে ইন্টারঅ্যাক্ট করার জন্য, আপনি এটি আপনার ফাংশনটি চালানোর জন্য এটি ব্যবহার করতে চাইবেন। এটি করার জন্য, আপনাকে অবশ্যই আপনার ব্যবহারকারীর অ্যাকাউন্ট থেকে অ্যাকাউন্টের জন্য টোকেন তৈরি করতে সক্ষম হতে হবে।
নিম্নলিখিত পদক্ষেপগুলি কীভাবে আপনার ব্যবহারকারীর অ্যাকাউন্টটি কনফিগার করতে হবে এবং Admin SDK পরিষেবা অ্যাকাউন্টের সুবিধাগুলির সাথে চালানোর জন্য ফাংশনটি বর্ণনা করে।
- Google Cloud কনসোলে, আইএএম পরিষেবা অ্যাকাউন্টের শংসাপত্রগুলি এপিআই সক্ষম করুন।
- আপনার ব্যবহারকারীর অ্যাকাউন্টটি পরিষেবা অ্যাকাউন্টটি টোকেন স্রষ্টার ভূমিকা দিন: Google Cloud কনসোল থেকে, আইএএম এবং অ্যাডমিন > আইএএম খুলুন, আপনার ব্যবহারকারীর অ্যাকাউন্ট নির্বাচন করুন এবং তারপরে প্রিন্সিপাল সম্পাদনা ক্লিক করুন> অন্য ভূমিকা যুক্ত করুন ।
পরিষেবা অ্যাকাউন্ট টোকেন স্রষ্টা নির্বাচন করুন, তারপরে সংরক্ষণ ক্লিক করুন।
পরিষেবা অ্যাকাউন্টের ছদ্মবেশ সম্পর্কে আরও বিশদ তথ্যের জন্য, Google Cloud ডকুমেন্টেশনে পরিষেবা অ্যাকাউন্টের ছদ্মবেশটি দেখুন।
Google Cloud কনসোল Cloud Functions পৃষ্ঠাটি খুলুন এবং ফাংশন তালিকায় জেনারেট উইথভারটেক্স ফাংশনটি ক্লিক করুন।
ট্রিগার > সম্পাদনা করুন এবং রানটাইম, বিল্ড, সংযোগগুলি এবং সুরক্ষা সেটিংস নির্বাচন করুন।
রানটাইম ট্যাব থেকে, রানটাইম পরিষেবা অ্যাকাউন্টটি অ্যাডমিন এসডিকে অ্যাকাউন্টে পরিবর্তন করুন।
পরবর্তী ক্লিক করুন, তারপরে মোতায়েন ক্লিক করুন।
GCloud Cli সেট আপ করুন
কমান্ড লাইন থেকে আপনার ফাংশনটি নিরাপদে চালাতে এবং পরীক্ষা করতে, আপনাকে Cloud Functions পরিষেবা দিয়ে প্রমাণীকরণ করতে হবে এবং একটি বৈধ প্রমাণীকরণ টোকেন পেতে হবে।
টোকেন প্রজন্মকে সক্ষম করতে, GCloud সিএলআই ইনস্টল এবং কনফিগার করুন:
যদি ইতিমধ্যে আপনার কম্পিউটারে ইনস্টল না করা হয় তবে GCloud সিএলআই ইনস্টল হিসাবে বর্ণিত হিসাবে GCloud সিএলআই ইনস্টল করুন।
আপনার Google Cloud অ্যাকাউন্টের জন্য অ্যাক্সেস শংসাপত্রগুলি পান:
gcloud auth login
আপনার প্রকল্পের আইডি GCloud এ সেট করুন:
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 সার্ভার টেম্পলেটটিতে পরিবর্তন করতে পারেন, এই পরিবর্তনগুলি প্রকাশ করতে পারেন এবং বিভিন্ন বিকল্প পরীক্ষা করতে পারেন।
পরবর্তী পদক্ষেপ
- ফায়ারবেস Cloud Functions সুরক্ষিত করতে App Check ব্যবহার করার পরামর্শ দেয়। App Check দিয়ে আপনার ফাংশনটি সুরক্ষিত করার বিষয়ে আরও তথ্যের জন্য Cloud Functions জন্য App Check প্রয়োগের সক্ষম করুন দেখুন
- সার্ভার-সাইড Remote Config সহ একটি নমুনা কলযোগ্য ফাংশন ব্যবহার করে দেখুন এবং App Check Remote Config এবং App Check সহ Vertex AI Gemini API কল করুন ।
- ফায়ারবেসের জন্য Cloud Functions সম্পর্কে আরও জানুন।
- সার্ভার পরিবেশে Remote Config ব্যবহার সম্পর্কে আরও জানুন।