ক্লাউড ফাংশন এবং ভার্টেক্সের সাথে সার্ভার-সাইড রিমোট কনফিগ ব্যবহার করুন AI,ক্লাউড ফাংশন এবং ভার্টেক্সের সাথে সার্ভার-সাইড রিমোট কনফিগ ব্যবহার করুন AI

Vertex AI Gemini API তে সার্ভার-সাইড কল করার জন্য সার্ভার-সাইড Remote Config সাথে 2nd gen Cloud Functions ব্যবহার করে কীভাবে শুরু করা যায় এই নির্দেশিকাটি বর্ণনা করে।

এই টিউটোরিয়ালে, আপনি একটি চ্যাটবট-এর মতো ফাংশনে Remote Config যোগ করবেন যা ব্যবহারকারীর প্রশ্নের উত্তর দিতে Gemini মডেল ব্যবহার করে। Remote Config Gemini API ইনপুটগুলি পরিচালনা করবে (একটি প্রম্পট সহ যা আপনি আগত ব্যবহারকারীর প্রশ্নের জন্য প্রিপেন্ড করবেন) এবং আপনি Firebase কনসোল থেকে এই ইনপুটগুলি অন-ডিমান্ড আপডেট করতে পারেন। এছাড়াও আপনি Firebase Local Emulator Suite ব্যবহার করে ফাংশনটি পরীক্ষা এবং ডিবাগ করতে পারবেন এবং তারপরে, এটি কাজ করে কিনা তা যাচাই করার পরে, আপনি এটিকে Google Cloud স্থাপন এবং পরীক্ষা করবেন।

পূর্বশর্ত

এই নির্দেশিকা অনুমান করে যে আপনি অ্যাপ্লিকেশন বিকাশ করতে জাভাস্ক্রিপ্ট ব্যবহার করার সাথে পরিচিত।

একটি ফায়ারবেস প্রকল্প সেট আপ করুন

যদি আপনার কাছে ইতিমধ্যে একটি ফায়ারবেস প্রকল্প না থাকে:

  1. Firebase কনসোলে সাইন ইন করুন।

  2. প্রকল্প তৈরি করুন ক্লিক করুন, এবং তারপরে নিম্নলিখিত বিকল্পগুলির মধ্যে একটি ব্যবহার করুন:

    • বিকল্প 1 : "প্রকল্প তৈরি করুন" কর্মপ্রবাহের প্রথম ধাপে একটি নতুন প্রকল্পের নাম প্রবেশ করে একটি নতুন ফায়ারবেস প্রকল্প (এবং এর অন্তর্নিহিত Google Cloud প্রকল্প স্বয়ংক্রিয়ভাবে) তৈরি করুন৷
    • বিকল্প 2 : "প্রকল্প তৈরি করুন" কর্মপ্রবাহের প্রথম ধাপে ড্রপ-ডাউন মেনু থেকে আপনার Google Cloud প্রকল্পের নাম নির্বাচন করে একটি বিদ্যমান Google Cloud প্রকল্পে "Firebase যোগ করুন"।
  3. অনুরোধ করা হলে, এই সমাধানটি ব্যবহার করার জন্য আপনাকে Google Analytics সেট আপ করতে হবে না

  4. আপনার প্রকল্প তৈরি করতে অন-স্ক্রীন নির্দেশাবলী অনুসরণ করা চালিয়ে যান।

আপনার যদি ইতিমধ্যে একটি ফায়ারবেস প্রকল্প থাকে:

আপনার উন্নয়ন পরিবেশ কনফিগার করতে এগিয়ে যান।

আপনার উন্নয়ন পরিবেশ কনফিগার করুন

ফাংশন লিখতে আপনার একটি Node.js পরিবেশের প্রয়োজন হবে এবং Cloud Functions রানটাইমে ফাংশন স্থাপন করতে আপনার Firebase CLI প্রয়োজন হবে।

  1. Node.js এবং npm ইনস্টল করুন।

    Node.js এবং npm ইনস্টল করার জন্য, আমরা নোড সংস্করণ ম্যানেজার ব্যবহার করার পরামর্শ দিই।

  2. আপনার পছন্দের পদ্ধতি ব্যবহার করে Firebase CLI ইনস্টল করুন । উদাহরণস্বরূপ, npm ব্যবহার করে CLI ইনস্টল করতে, এই কমান্ডটি চালান:

    npm install -g firebase-tools@latest
    

    এই কমান্ডটি বিশ্বব্যাপী-উপলব্ধ firebase কমান্ড ইনস্টল করে। এই কমান্ড ব্যর্থ হলে, আপনাকে npm অনুমতি পরিবর্তন করতে হতে পারে।

    firebase-tools এর সর্বশেষ সংস্করণে আপডেট করতে, একই কমান্ড পুনরায় চালু করুন।

  3. firebase-functions এবং firebase-admin ইনস্টল করুন এবং আপনার package.json এ সেভ করতে --save ব্যবহার করুন :

    npm install firebase-functions@latest firebase-admin@latest --save
    

আপনি এখন এই সমাধান বাস্তবায়নে এগিয়ে যেতে প্রস্তুত।

বাস্তবায়ন

Remote Config এবং Vertex AI সাথে আপনার 2nd gen Cloud Functions তৈরি করতে, পরীক্ষা করতে এবং স্থাপন করতে এই পদক্ষেপগুলি অনুসরণ করুন:

  1. Google Cloud কনসোলে Vertex AI প্রস্তাবিত API গুলি সক্ষম করুন
  2. আপনার প্রকল্প শুরু করুন এবং নোড নির্ভরতা ইনস্টল করুন
  3. আপনার Admin SDK পরিষেবা অ্যাকাউন্টের জন্য IAM অনুমতিগুলি কনফিগার করুন এবং আপনার কী সংরক্ষণ করুন
  4. ফাংশন তৈরি করুন
  5. একটি সার্ভার-নির্দিষ্ট Remote Config টেমপ্লেট তৈরি করুন
  6. আপনার ফাংশন স্থাপন করুন এবং এটি Firebase Local Emulator Suite পরীক্ষা করুন
  7. Google Cloud আপনার ফাংশন স্থাপন করুন

ধাপ 1: Google Cloud কনসোলে Vertex AI প্রস্তাবিত API সক্ষম করুন

  1. Google Cloud কনসোল খুলুন, এবং যখন অনুরোধ করা হবে, আপনার প্রকল্প নির্বাচন করুন৷
  2. কনসোলের শীর্ষে অনুসন্ধান ক্ষেত্রে, Vertex AI লিখুন এবং ফলাফল হিসাবে Vertex AI প্রদর্শিত হওয়ার জন্য অপেক্ষা করুন।
  3. Vertex AI নির্বাচন করুন। Vertex AI ড্যাশবোর্ড প্রদর্শিত হবে।
  4. সমস্ত প্রস্তাবিত API সক্ষম করুন ক্লিক করুন৷

    API সক্ষমতা সম্পূর্ণ হতে কয়েক মুহূর্ত লাগতে পারে। পৃষ্ঠাটি সক্রিয় রাখুন এবং সক্রিয়করণ শেষ না হওয়া পর্যন্ত খুলুন।

  5. বিলিং সক্ষম না হলে, আপনাকে একটি Cloud Billing অ্যাকাউন্ট যোগ বা লিঙ্ক করতে বলা হবে। একটি বিলিং অ্যাকাউন্ট সক্রিয় করার পরে, Vertex AI ড্যাশবোর্ডে ফিরে যান এবং যাচাই করুন যে সমস্ত প্রস্তাবিত API সক্রিয় আছে৷

ধাপ 2: আপনার প্রকল্প শুরু করুন এবং নোড নির্ভরতা ইনস্টল করুন

  1. আপনার কম্পিউটারে একটি টার্মিনাল খুলুন এবং ডিরেক্টরিতে নেভিগেট করুন যেখানে আপনি আপনার ফাংশন তৈরি করার পরিকল্পনা করছেন।
  2. ফায়ারবেসে লগ ইন করুন:

    firebase login
    
  3. Cloud Functions for Firebase শুরু করতে নিম্নলিখিত কমান্ডটি চালান:

    firebase init functions
    
  4. একটি বিদ্যমান প্রকল্প ব্যবহার করুন নির্বাচন করুন এবং আপনার প্রকল্প আইডি নির্দিষ্ট করুন।

  5. ব্যবহার করার জন্য ভাষা নির্বাচন করার জন্য অনুরোধ করা হলে, Javascript নির্বাচন করুন এবং এন্টার টিপুন।

  6. অন্য সব বিকল্পের জন্য, ডিফল্ট নির্বাচন করুন।

    বর্তমান ডিরেক্টরিতে একটি functions ডিরেক্টরি তৈরি করা হয়। ভিতরে, আপনি একটি index.js ফাইল পাবেন যা আপনি আপনার ফাংশন তৈরি করতে ব্যবহার করবেন, একটি node_modules ডিরেক্টরি যেখানে আপনার ফাংশনের নির্ভরতা রয়েছে এবং একটি package.json ফাইল যেখানে প্যাকেজ নির্ভরতা রয়েছে।

  7. নিম্নলিখিত কমান্ডগুলি চালিয়ে 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 পরিষেবা অ্যাকাউন্ট ব্যবহার করবেন।

  1. Google Cloud কনসোলে, IAM এবং অ্যাডমিন পৃষ্ঠাটি খুলুন এবং Admin SDK পরিষেবা অ্যাকাউন্টটি সনাক্ত করুন (নাম firebase-adminsdk )৷
  2. অ্যাকাউন্ট নির্বাচন করুন এবং প্রধান সম্পাদনা করুন ক্লিক করুন। সম্পাদনা অ্যাক্সেস পৃষ্ঠা প্রদর্শিত হবে।
  3. অন্য ভূমিকা যোগ করুন ক্লিক করুন, Remote Config ভিউয়ার নির্বাচন করুন।
  4. অন্য ভূমিকা যোগ করুন ক্লিক করুন, এআই প্ল্যাটফর্ম বিকাশকারী নির্বাচন করুন।
  5. অন্য ভূমিকা যোগ করুন ক্লিক করুন, Vertex AI ব্যবহারকারী নির্বাচন করুন।
  6. আরেকটি ভূমিকা যোগ করুন ক্লিক করুন, ক্লাউড রান ইনভোকার নির্বাচন করুন।
  7. Save এ ক্লিক করুন।

এর পরে, Admin SDK পরিষেবা অ্যাকাউন্টের জন্য শংসাপত্রগুলি রপ্তানি করুন এবং সেগুলিকে আপনার GOOGLE_APPLICATION_CREDENTIALS পরিবেশ পরিবর্তনশীলে সংরক্ষণ করুন৷

  1. Google Cloud কনসোলে, শংসাপত্র পৃষ্ঠাটি খুলুন।
  2. বিস্তারিত পৃষ্ঠা খুলতে Admin SDK পরিষেবা অ্যাকাউন্টে ক্লিক করুন।
  3. কী-এ ক্লিক করুন।
  4. কী যোগ করুন > নতুন কী তৈরি করুন ক্লিক করুন।
  5. নিশ্চিত করুন যে JSON কী টাইপ হিসাবে নির্বাচিত হয়েছে, তারপর তৈরি করুন ক্লিক করুন।
  6. আপনার কম্পিউটারে একটি নিরাপদ জায়গায় কী ডাউনলোড করুন।
  7. আপনার টার্মিনাল থেকে, একটি পরিবেশ পরিবর্তনশীল হিসাবে কী রপ্তানি করুন:

    export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-key.json"
    

ধাপ 4: ফাংশন তৈরি করুন

এই ধাপে, আপনি একটি ফাংশন তৈরি করবেন যা ব্যবহারকারীর ইনপুট পরিচালনা করে এবং এআই-চালিত প্রতিক্রিয়া তৈরি করে। আপনি একটি বিস্তৃত ফাংশন তৈরি করতে একাধিক কোড স্নিপেট একত্রিত করবেন যা Admin SDK এবং Vertex AI Gemini API শুরু করে, Remote Config ব্যবহার করে ডিফল্ট প্যারামিটার কনফিগার করে, সর্বশেষ Remote Config প্যারামিটার আনে, ব্যবহারকারীর ইনপুট প্রক্রিয়া করে এবং ব্যবহারকারীর কাছে একটি প্রতিক্রিয়া স্ট্রিম করে।

  1. আপনার কোডবেসে, টেক্সট এডিটর বা IDE-এ functions/index.js খুলুন।
  2. বিদ্যমান বিষয়বস্তু মুছুন এবং তারপরে 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();
    
  3. ডিফল্ট মানগুলি কনফিগার করুন যা আপনার ফাংশনটি ব্যবহার করবে যদি এটি 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-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
    };
    
  4. ফাংশন তৈরি করুন এবং সার্ভার-সাইড 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;
    
  5. 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');
      }
    });
    
  6. ফাইলটি সংরক্ষণ করুন এবং বন্ধ করুন।

ধাপ 5: একটি সার্ভার-নির্দিষ্ট Remote Config টেমপ্লেট তৈরি করুন

এরপরে, একটি সার্ভার-সাইড Remote Config টেমপ্লেট তৈরি করুন এবং আপনার ফাংশনে ব্যবহার করার জন্য প্যারামিটার এবং মান কনফিগার করুন। একটি সার্ভার-নির্দিষ্ট Remote Config টেমপ্লেট তৈরি করতে:

  1. Firebase কনসোল খুলুন এবং, নেভিগেশন মেনু থেকে, রান প্রসারিত করুন এবং Remote Config নির্বাচন করুন।
  2. Remote Config পৃষ্ঠার শীর্ষে ক্লায়েন্ট/সার্ভার নির্বাচক থেকে সার্ভার নির্বাচন করুন।

    • আপনি যদি প্রথমবার Remote Config বা সার্ভার টেমপ্লেট ব্যবহার করেন, তাহলে কনফিগারেশন তৈরি করুন ক্লিক করুন। আপনার প্রথম সার্ভার-সাইড প্যারামিটার তৈরি করুন ফলকটি প্রদর্শিত হবে।
    • যদি এটি আপনার প্রথমবার Remote Config সার্ভার টেমপ্লেট ব্যবহার না করে থাকে, প্যারামিটার যোগ করুন ক্লিক করুন।
  3. নিম্নলিখিত Remote Config পরামিতি সংজ্ঞায়িত করুন:

    পরামিতি নাম বর্ণনা টাইপ ডিফল্ট মান
    model_name মডেলের নাম
    আপনার কোডে ব্যবহার করার জন্য মডেল নামের আপ-টু-ডেট তালিকার জন্য, মডেল সংস্করণ এবং জীবনচক্র বা উপলব্ধ মডেল নামগুলি দেখুন।
    স্ট্রিং gemini-1.5-flash-002
    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
  4. যখন আপনি প্যারামিটার যোগ করা শেষ করেন, তখন আপনার প্যারামিটারগুলি দুবার চেক করুন এবং তাদের ডেটা প্রকারগুলি সঠিক কিনা, তারপর পরিবর্তনগুলি প্রকাশ করুন এ ক্লিক করুন৷

ধাপ 6: আপনার ফাংশন স্থাপন করুন এবং এটি Firebase Local Emulator Suite পরীক্ষা করুন

এখন আপনি Firebase Local Emulator Suite সাথে স্থানীয়ভাবে আপনার ফাংশন স্থাপন এবং পরীক্ষা করার জন্য প্রস্তুত।

  1. নিশ্চিত করুন যে আপনি GOOGLE_APPLICATION_CREDENTIALS একটি পরিবেশ পরিবর্তনশীল হিসাবে সেট করেছেন যেমন ধাপ 3-এ বর্ণিত হয়েছে: আপনার Admin SDK পরিষেবা অ্যাকাউন্টের জন্য IAM অনুমতিগুলি কনফিগার করুন এবং আপনার কী সংরক্ষণ করুন ৷ তারপর, আপনার functions ডিরেক্টরির মূল ডিরেক্টরি থেকে, আপনার ফাংশনটি ফায়ারবেস এমুলেটরে স্থাপন করুন:

    firebase emulators:start --project PROJECT_ID --only functions
    
  2. এমুলেটরের লগ পৃষ্ঠা খুলুন। এটি দেখানো উচিত যে আপনার ফাংশন লোড হয়েছে।

  3. নিম্নলিখিত কমান্ডটি চালিয়ে আপনার ফাংশনটি অ্যাক্সেস করুন, যেখানে PROJECT_ID হল আপনার প্রকল্প আইডি এবং LOCATION হল সেই অঞ্চল যেখানে আপনি ফাংশনটি স্থাপন করেছেন (উদাহরণস্বরূপ, us-central1 ):

    curl http://localhost:5001/PROJECT_ID/LOCATION/generateWithVertex
    
  4. একটি প্রতিক্রিয়ার জন্য অপেক্ষা করুন, তারপর Firebase এমুলেটর লগ পৃষ্ঠা বা আপনার কনসোলে ফিরে যান এবং কোনো ত্রুটি বা সতর্কতা আছে কিনা তা পরীক্ষা করুন৷

  5. কিছু ব্যবহারকারীর ইনপুট পাঠানোর চেষ্টা করুন, উল্লেখ্য যে যেহেতু আপনার 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
    
  6. Firebase কনসোলে আপনার Remote Config সার্ভার টেমপ্লেটে পরিবর্তন করুন, তারপর পরিবর্তনগুলি পর্যবেক্ষণ করতে আপনার ফাংশনটি পুনরায় অ্যাক্সেস করুন৷

ধাপ 7: Google Cloud আপনার ফাংশন স্থাপন করুন

আপনি আপনার ফাংশন পরীক্ষা এবং যাচাই করার পরে, আপনি Google Cloud স্থাপন করতে এবং লাইভ ফাংশন পরীক্ষা করার জন্য প্রস্তুত৷

আপনার ফাংশন স্থাপন

Firebase CLI ব্যবহার করে আপনার ফাংশন স্থাপন করুন:

firebase deploy --only functions

ফাংশনে অননুমোদিত অ্যাক্সেস ব্লক করুন

যখন ফায়ারবেস ব্যবহার করে ফাংশনগুলি স্থাপন করা হয়, আপনার সংস্থার নীতি যদি এটিকে সীমাবদ্ধ না করে তবে ডিফল্টরূপে অপ্রমাণিত আহ্বানগুলি অনুমোদিত হয়৷ পরীক্ষার সময় এবং App Check দিয়ে সুরক্ষিত করার আগে, আমরা অননুমোদিত অ্যাক্সেস ব্লক করার পরামর্শ দিই।

ফাংশনে অননুমোদিত অ্যাক্সেস ব্লক করতে:

  1. Google Cloud কনসোলে, ক্লাউড রান খুলুন।

  2. generateWithVertex ক্লিক করুন, তারপর সিকিউরিটি ট্যাবে ক্লিক করুন।

  3. প্রয়োজনীয় প্রমাণীকরণ সক্ষম করুন এবং তারপর সংরক্ষণ করুন ক্লিক করুন।

Admin SDK পরিষেবা অ্যাকাউন্ট শংসাপত্রগুলি ব্যবহার করতে আপনার ব্যবহারকারী অ্যাকাউন্ট কনফিগার করুন৷

যেহেতু Admin SDK পরিষেবা অ্যাকাউন্টে ফাংশনটি চালানোর জন্য এবং Remote Config এবং Vertex AI Gemini API সাথে ইন্টারঅ্যাক্ট করার জন্য সমস্ত প্রয়োজনীয় ভূমিকা এবং অনুমতি রয়েছে, আপনি আপনার ফাংশন চালানোর জন্য এটি ব্যবহার করতে চাইবেন৷ এটি করার জন্য, আপনাকে অবশ্যই আপনার ব্যবহারকারীর অ্যাকাউন্ট থেকে অ্যাকাউন্টের জন্য টোকেন তৈরি করতে সক্ষম হতে হবে।

নিম্নলিখিত পদক্ষেপগুলি কীভাবে আপনার ব্যবহারকারীর অ্যাকাউন্ট এবং Admin SDK পরিষেবা অ্যাকাউন্টের বিশেষাধিকারগুলির সাথে চালানোর জন্য ফাংশন কনফিগার করবেন তা বর্ণনা করে৷

  1. Google Cloud কনসোলে, IAM পরিষেবা অ্যাকাউন্ট শংসাপত্র API সক্ষম করুন৷
  2. আপনার ব্যবহারকারীর অ্যাকাউন্টকে পরিষেবা অ্যাকাউন্ট টোকেন নির্মাতার ভূমিকা দিন: Google Cloud কনসোল থেকে, IAM & Admin > IAM খুলুন, আপনার ব্যবহারকারী অ্যাকাউন্ট নির্বাচন করুন এবং তারপরে প্রধান সম্পাদনা করুন > অন্য ভূমিকা যোগ করুন ক্লিক করুন।
  3. পরিষেবা অ্যাকাউন্ট টোকেন ক্রিয়েটর নির্বাচন করুন, তারপর সংরক্ষণ করুন ক্লিক করুন।

    পরিষেবা অ্যাকাউন্ট ছদ্মবেশ সম্পর্কে আরও বিশদ তথ্যের জন্য, Google Cloud ডকুমেন্টেশনে পরিষেবা অ্যাকাউন্টের ছদ্মবেশ দেখুন৷

  4. Google Cloud কনসোল Cloud Functions পৃষ্ঠাটি খুলুন এবং ফাংশন তালিকায় জেনারেট উইথভার্টেক্স ফাংশনটিতে ক্লিক করুন।

  5. ট্রিগার > সম্পাদনা করুন এবং রানটাইম, বিল্ড, সংযোগ এবং নিরাপত্তা সেটিংস প্রসারিত করুন নির্বাচন করুন।

  6. রানটাইম ট্যাব থেকে, রানটাইম পরিষেবা অ্যাকাউন্টটিকে অ্যাডমিন SDK অ্যাকাউন্টে পরিবর্তন করুন।

  7. Next এ ক্লিক করুন, তারপর Deploy এ ক্লিক করুন।

gcloud CLI সেট আপ করুন

কমান্ড লাইন থেকে আপনার ফাংশনটি নিরাপদে চালানো এবং পরীক্ষা করতে, আপনাকে Cloud Functions পরিষেবার সাথে প্রমাণীকরণ করতে হবে এবং একটি বৈধ প্রমাণীকরণ টোকেন পেতে হবে।

টোকেন জেনারেশন সক্ষম করতে, gcloud CLI ইনস্টল এবং কনফিগার করুন:

  1. আপনার কম্পিউটারে ইতিমধ্যে ইনস্টল না থাকলে, Gcloud CLI ইনস্টল করুন যেমন gcloud CLI ইনস্টল করুন

  2. আপনার Google Cloud অ্যাকাউন্টের জন্য অ্যাক্সেসের শংসাপত্রগুলি পান:

    gcloud auth login
    
  3. 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 সার্ভার টেমপ্লেটে পরিবর্তন করতে পারেন, সেই পরিবর্তনগুলি প্রকাশ করতে পারেন এবং বিভিন্ন বিকল্প পরীক্ষা করতে পারেন।

পরবর্তী পদক্ষেপ