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

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

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

পূর্বশর্ত

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

একটি Firebase প্রকল্প সেট আপ করুন

যদি আপনার কাছে ইতিমধ্যেই Firebase প্রকল্প না থাকে:

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

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

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

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

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

আপনার ডেভেলপমেন্ট এনভায়রনমেন্ট কনফিগার করতে এগিয়ে যান।

আপনার ডেভেলপমেন্ট পরিবেশ কনফিগার করুন

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

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

    Node.js এবং npm ইনস্টল করার জন্য, আমরা Node Version Manager ব্যবহার করার পরামর্শ দিচ্ছি।

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

    npm install -g firebase-tools@latest
    

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

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

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

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

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

বাস্তবায়ন

Remote Config এবং ভার্টেক্স এআই ব্যবহার করে আপনার দ্বিতীয় প্রজন্মের 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 স্থাপন করুন

ধাপ ১: Google Cloud কনসোলে ভার্টেক্স এআই-এর প্রস্তাবিত API গুলি সক্ষম করুন

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

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

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

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

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

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

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

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

  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.jsonengines স্তবকটি Node সংস্করণ 18 হিসাবে কনফিগার করা থাকে এবং আপনি Node.js 20 ব্যবহার করেন, তাহলে 20 ব্যবহার করার জন্য ফাইলটি আপডেট করুন:

  "engines": {
    "node": "20"
  },

ধাপ ৩: আপনার Admin SDK পরিষেবা অ্যাকাউন্টের জন্য IAM অনুমতি কনফিগার করুন এবং আপনার কী সংরক্ষণ করুন।

এই সমাধানে, আপনি আপনার ফাংশনটি চালানোর জন্য Firebase Admin SDK পরিষেবা অ্যাকাউন্ট ব্যবহার করবেন।

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

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

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

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

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

এই ধাপে, আপনি এমন একটি ফাংশন তৈরি করবেন যা ব্যবহারকারীর ইনপুট পরিচালনা করবে এবং AI-চালিত প্রতিক্রিয়া তৈরি করবে। আপনি একাধিক কোড স্নিপেট একত্রিত করে একটি বিস্তৃত ফাংশন তৈরি করবেন যা 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/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 client দেখুন।

    ঐচ্ছিকভাবে, আপনি 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. ফাইলটি সংরক্ষণ করুন এবং বন্ধ করুন।

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

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

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

    • যদি আপনি প্রথমবার Remote Config বা সার্ভার টেমপ্লেট ব্যবহার করেন, তাহলে Create Configuration এ ক্লিক করুন। Create your first server-side parameter প্যানেলটি প্রদর্শিত হবে।
    • যদি এটি আপনার প্রথমবার Remote Config সার্ভার টেমপ্লেট ব্যবহার না করে থাকেন, তাহলে প্যারামিটার যোগ করুন এ ক্লিক করুন।
  3. নিম্নলিখিত Remote Config প্যারামিটারগুলি সংজ্ঞায়িত করুন:

    প্যারামিটারের নাম বিবরণ আদর্শ ডিফল্ট মান
    model_name মডেলের নাম
    আপনার কোডে ব্যবহারের জন্য মডেল নামের হালনাগাদ তালিকার জন্য, মডেল সংস্করণ এবং জীবনচক্র অথবা উপলব্ধ মডেল নাম দেখুন।
    স্ট্রিং gemini-2.0-flash
    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 ভার্টেক্স এআই-এর জন্য নিরাপত্তা সেটিংস JSON সম্পর্কে [{"category": "HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "HarmBlockThreshold.BLOCK_LOW_AND_ABOVE"}]
    location ভার্টেক্স এআই পরিষেবা এবং মডেল চালানোর স্থান স্ট্রিং us-central1
    is_vertex_enabled ঐচ্ছিক প্যারামিটার যা Vertex AI- তে কোয়েরি পাঠানো হবে কিনা তা নিয়ন্ত্রণ করে। বুলিয়ান true
  4. প্যারামিটার যোগ করা শেষ হলে, আপনার প্যারামিটারগুলি দুবার পরীক্ষা করুন এবং তাদের ডেটা টাইপগুলি সঠিক কিনা, তারপর পরিবর্তনগুলি প্রকাশ করুন এ ক্লিক করুন।

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

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

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

    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 Emulator লগ পৃষ্ঠায় অথবা আপনার কনসোলে ফিরে যান এবং কোনও ত্রুটি বা সতর্কতা পরীক্ষা করুন।

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

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

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

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

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

firebase deploy --only functions

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

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

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

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

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

  3. Require authentication সক্ষম করুন এবং তারপর Save এ ক্লিক করুন।

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

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

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

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

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

  4. Google Cloud কনসোল Cloud Functions পৃষ্ঠাটি খুলুন এবং ফাংশন তালিকার generateWithVertex ফাংশনটিতে ক্লিক করুন।

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

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

  7. পরবর্তী ক্লিক করুন, তারপর স্থাপন করুন ক্লিক করুন।

gcloud CLI সেট আপ করুন

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

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

  1. যদি আপনার কম্পিউটারে ইতিমধ্যেই ইনস্টল না করা থাকে, তাহলে " Install the 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 সার্ভার টেমপ্লেটে পরিবর্তন করতে পারেন, সেই পরিবর্তনগুলি প্রকাশ করতে পারেন এবং বিভিন্ন বিকল্প পরীক্ষা করতে পারেন।

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