সংস্করণ নিয়ন্ত্রণ থেকে ক্লাউড রানে স্বয়ংক্রিয়ভাবে জেনারেটিভ এআই অ্যাঙ্গুলার ওয়েব অ্যাপ্লিকেশন স্থাপন করুন, সংস্করণ নিয়ন্ত্রণ থেকে ক্লাউড রানে স্বয়ংক্রিয়ভাবে জেনারেটিভ এআই অ্যাঙ্গুলার ওয়েব অ্যাপ্লিকেশন স্থাপন করুন

1. ওভারভিউ

প্রথমবারের জন্য একটি ওয়েব অ্যাপ্লিকেশন স্থাপন করা ভীতিজনক হতে পারে। এমনকি প্রথম স্থাপনার পরেও, যদি প্রক্রিয়াটি খুব বেশি কাজ করে, আপনি আপনার অ্যাপ্লিকেশনের নতুন সংস্করণ স্থাপন করা এড়াতে পারেন। ক্রমাগত স্থাপনার সাথে, আপনি স্বয়ংক্রিয়ভাবে আপনার অ্যাপ্লিকেশনের পরিবর্তনগুলি সহজেই স্থাপন করতে পারেন।

এই ল্যাবে, আপনি একটি ওয়েব অ্যাপ্লিকেশন লেখেন এবং ক্লাউড রান কনফিগার করেন যাতে আপনার অ্যাপ্লিকেশনের সোর্স কোডে কোনো পরিবর্তন করা হলে স্বয়ংক্রিয়ভাবে আপনার অ্যাপ্লিকেশন স্থাপন করা হয়। তারপর আপনি আপনার অ্যাপ্লিকেশন পরিবর্তন করুন এবং এটি আবার স্থাপন করুন.

যা শিখবেন

  • ক্লাউড শেল এডিটর দিয়ে একটি ওয়েব অ্যাপ্লিকেশন লিখুন
  • GitHub এ আপনার অ্যাপ্লিকেশন কোড সংরক্ষণ করুন
  • ক্লাউড রানে স্বয়ংক্রিয়ভাবে আপনার অ্যাপ্লিকেশন স্থাপন করুন
  • Vertex AI ব্যবহার করে আপনার অ্যাপ্লিকেশনে জেনারেটিভ এআই যোগ করুন

2. পূর্বশর্ত

  1. আপনার যদি ইতিমধ্যে একটি Google অ্যাকাউন্ট না থাকে তবে আপনাকে অবশ্যই একটি Google অ্যাকাউন্ট তৈরি করতে হবে।
    • কাজের বা স্কুল অ্যাকাউন্টের পরিবর্তে একটি ব্যক্তিগত অ্যাকাউন্ট ব্যবহার করুন। কর্মক্ষেত্র এবং স্কুল অ্যাকাউন্টগুলিতে বিধিনিষেধ থাকতে পারে যা আপনাকে এই ল্যাবের জন্য প্রয়োজনীয় APIগুলি সক্ষম করতে বাধা দেয়৷
  2. আপনার যদি ইতিমধ্যে একটি GitHub অ্যাকাউন্ট না থাকে তবে আপনাকে অবশ্যই একটি GitHub অ্যাকাউন্ট তৈরি করতে হবে

3. প্রকল্প সেটআপ

  1. Google ক্লাউড কনসোলে সাইন-ইন করুন।
  2. ক্লাউড কনসোলে বিলিং সক্ষম করুন
    • এই ল্যাবটি সম্পূর্ণ করতে ক্লাউড সংস্থানগুলিতে $1 USD-এর কম খরচ হওয়া উচিত৷
    • আপনি আরও চার্জ এড়াতে সংস্থানগুলি মুছতে এই ল্যাবের শেষে পদক্ষেপগুলি অনুসরণ করতে পারেন৷
    • নতুন ব্যবহারকারীরা $300 USD ফ্রি ট্রায়ালের জন্য যোগ্য৷
    • Devs ইভেন্টের জন্য একজন জেনারেল এআই-এ যোগ দিচ্ছেন? একটি $1 USD ক্রেডিট উপলব্ধ হতে পারে৷
  3. একটি নতুন প্রকল্প তৈরি করুন বা একটি বিদ্যমান প্রকল্প পুনরায় ব্যবহার করতে বেছে নিন।
  4. ক্লাউড বিলিং-এ আমার প্রকল্পগুলিতে বিলিং সক্ষম করা হয়েছে তা নিশ্চিত করুন৷
    • যদি আপনার নতুন প্রকল্প বলে যে Billing account কলামে Billing is disabled :
      1. Actions কলামে তিনটি বিন্দুতে ক্লিক করুন
      2. বিলিং পরিবর্তন করুন ক্লিক করুন
      3. আপনি যে বিলিং অ্যাকাউন্টটি ব্যবহার করতে চান তা নির্বাচন করুন
    • আপনি যদি Devs ইভেন্টের জন্য একটি Gen AI-তে অংশগ্রহণ করেন, তাহলে অ্যাকাউন্টটির নাম Google ক্লাউড প্ল্যাটফর্ম ট্রায়াল বিলিং অ্যাকাউন্ট হতে পারে

4. ক্লাউড শেল এডিটর খুলুন

  1. ক্লাউড শেল এডিটরে নেভিগেট করুন
  2. যদি টার্মিনালটি স্ক্রিনের নীচে প্রদর্শিত না হয় তবে এটি খুলুন:
    • হ্যামবার্গার মেনুতে ক্লিক করুন হ্যামবার্গার মেনু আইকন
    • টার্মিনাল ক্লিক করুন
    • নতুন টার্মিনালে ক্লিক করুন ক্লাউড শেল এডিটরে নতুন টার্মিনাল খুলুন
  3. টার্মিনালে, এই কমান্ড দিয়ে আপনার প্রকল্প সেট করুন:
    • বিন্যাস:
      gcloud config set project [PROJECT_ID]
      
    • উদাহরণ:
      gcloud config set project lab-project-id-example
      
    • আপনি যদি আপনার প্রকল্প আইডি মনে করতে না পারেন:
      • আপনি আপনার সমস্ত প্রকল্প আইডি এর সাথে তালিকাভুক্ত করতে পারেন:
        gcloud projects list | awk '/PROJECT_ID/{print $2}'
        
      ক্লাউড শেল এডিটর টার্মিনালে প্রজেক্ট আইডি সেট করুন
  4. অনুমোদন করার জন্য অনুরোধ করা হলে, চালিয়ে যেতে অনুমোদন ক্লিক করুন। ক্লাউড শেল অনুমোদন করতে ক্লিক করুন
  5. আপনার এই বার্তাটি দেখতে হবে:
    Updated property [core/project].
    
    যদি আপনি একটি WARNING দেখতে পান এবং জিজ্ঞাসা করা হয় Do you want to continue (Y/N)? , তাহলে আপনি সম্ভবত প্রজেক্ট আইডি ভুলভাবে প্রবেশ করেছেন। N টিপুন, Enter টিপুন এবং আবার gcloud config set project কমান্ড চালানোর চেষ্টা করুন।

5. API সক্রিয় করুন

টার্মিনালে, APIs সক্ষম করুন:

gcloud services enable \
  run.googleapis.com \
  cloudbuild.googleapis.com \
  aiplatform.googleapis.com

এই কমান্ডটি সম্পূর্ণ হতে কয়েক মিনিট সময় নিতে পারে, তবে এটি শেষ পর্যন্ত এটির মতো একটি সফল বার্তা তৈরি করবে:

Operation "operations/acf.p2-73d90d00-47ee-447a-b600" finished successfully.

6. গিট কনফিগার করুন

  1. আপনার গ্লোবাল গিট ব্যবহারকারী ইমেল সেট করুন:
    git config --global user.email "you@example.com"
    
  2. আপনার বিশ্বব্যাপী গিট ব্যবহারকারীর নাম সেট করুন:
    git config --global user.name "Your Name"
    
  3. আপনার গ্লোবাল গিট ডিফল্ট শাখাকে main সেট করুন:
    git config --global init.defaultBranch main
    

7. আপনার কোড লিখুন

Node.js এ একটি আবেদন লিখতে:

  1. হোম ডিরেক্টরিতে নেভিগেট করুন:
    cd ~
    
  2. নতুন codelab-genai কৌণিক অ্যাপ্লিকেশন তৈরি করুন:
    npx @angular/cli new codelab-genai \
        --minimal \
        --inline-template \
        --inline-style \
        --ssr \
        --defaults
    
  3. যদি @angular/cli ইনস্টল করতে বলা হয়, তাহলে এগিয়ে যেতে Enter টিপুন:
    Need to install the following packages:
    @angular/cli@18.2.4
    Ok to proceed? (y)
    
  4. codelab-genai ডিরেক্টরিতে নেভিগেট করুন:
    cd codelab-genai
    
  5. ক্লাউড শেল এডিটরে app.component.ts ফাইলটি খুলুন:
    cloudshell edit src/app/app.component.ts
    
    একটি খালি ফাইল এখন পর্দার উপরের অংশে উপস্থিত হওয়া উচিত। এখানে আপনি এই app.component.ts ফাইলটি সম্পাদনা করতে পারেন। দেখান যে কোডটি স্ক্রিনের উপরের বিভাগে যায়
  6. নিম্নলিখিত কোডটি অনুলিপি করুন এবং খোলা app.component.ts ফাইলে পেস্ট করুন:
    import { Component } from '@angular/core';
    import { RouterOutlet } from '@angular/router';
    
    @Component({
        selector: 'app-root',
        standalone: true,
        imports: [RouterOutlet],
        template: `
            <h1>Hello world!</h1>
    
            <router-outlet />
        `,
        styles: [],
    })
    export class AppComponent { }
    
    কয়েক সেকেন্ড পরে, ক্লাউড শেল এডিটর আপনার কোড স্বয়ংক্রিয়ভাবে সংরক্ষণ করবে। এই কোড আমাদের "হ্যালো ওয়ার্ল্ড!" অভিবাদন

আপনার অ্যাপ্লিকেশনের জন্য আপনার প্রাথমিক কোড শেষ হয়েছে এবং সংস্করণ নিয়ন্ত্রণে সংরক্ষণ করার জন্য প্রস্তুত৷

8. একটি সংগ্রহস্থল তৈরি করুন

  1. আপনার স্ক্রিনের নীচে ক্লাউড শেল টার্মিনালে ফিরে যান।
  2. নিশ্চিত করুন যে আপনি এখনও সঠিক ডিরেক্টরিতে আছেন:
    cd ~/codelab-genai
    
  3. আপনার গিট সংগ্রহস্থল শুরু করুন
    git init -b main
    
  4. GitHub CLI-তে লগ ইন করুন
    gh auth login
    
    ডিফল্ট বিকল্পগুলি গ্রহণ করতে Enter টিপুন এবং GitHub CLI টুলের নির্দেশাবলী অনুসরণ করুন সহ:
    1. আপনি কি অ্যাকাউন্টে লগ ইন করতে চান? GitHub.com
    2. এই হোস্টে গিট অপারেশনের জন্য আপনার পছন্দের প্রোটোকল কী? HTTPS
    3. আপনার GitHub শংসাপত্রের সাথে গিটকে প্রমাণীকরণ করবেন? Y (এটি প্রদর্শিত না হলে এড়িয়ে যান।)
    4. আপনি কিভাবে GitHub CLI প্রমাণীকরণ করতে চান? Login with a web browser
    5. আপনার এককালীন কোড কপি করুন
    6. https://github.com/login/device খুলুন
    7. আপনার এককালীন কোড পেস্ট করুন
    8. গিথুব অনুমোদন করুন ক্লিক করুন
    9. আপনার লগইন সম্পূর্ণ করুন
  5. আপনি লগ ইন করেছেন তা নিশ্চিত করুন:
    gh api user -q ".login"
    
    আপনি যদি সফলভাবে লগ ইন করে থাকেন তবে এটি আপনার GitHub ব্যবহারকারীর নাম আউটপুট করবে।
  6. একটি GITHUB_USERNAME ভেরিয়েবল তৈরি করুন
    GITHUB_USERNAME=$(gh api user -q ".login")
    
  7. আপনি পরিবেশ পরিবর্তনশীল তৈরি করেছেন তা নিশ্চিত করুন:
    echo ${GITHUB_USERNAME}
    
    আপনি যদি সফলভাবে ভেরিয়েবল তৈরি করে থাকেন, তাহলে এটি আপনার GitHub ব্যবহারকারীর নাম আউটপুট করবে।
  8. codelab-genai নামে একটি খালি গিটহাব সংগ্রহস্থল তৈরি করুন:
    gh repo create codelab-genai --private
    
    আপনি যদি ত্রুটিটি পান:
    GraphQL: Name already exists on this account (createRepository)
    
    তারপরে আপনার ইতিমধ্যে codelab-genai নামে একটি সংগ্রহস্থল রয়েছে। এই টিউটোরিয়ালটি অনুসরণ করার জন্য আপনার কাছে দুটি বিকল্প রয়েছে:
  9. দূরবর্তী origin হিসাবে codelab-genai সংগ্রহস্থল যোগ করুন:
    git remote add origin https://github.com/${GITHUB_USERNAME}/codelab-genai
    

9. আপনার কোড শেয়ার করুন

  1. আপনি সঠিক ডিরেক্টরিতে আছেন তা নিশ্চিত করুন:
    cd ~/codelab-genai
    
  2. এই প্রতিশ্রুতিতে বর্তমান ডিরেক্টরিতে সমস্ত ফাইল যুক্ত করুন:
    git add .
    
  3. প্রথম প্রতিশ্রুতি তৈরি করুন:
    git commit -m "add http server"
    
  4. origin সংগ্রহস্থলের main শাখায় আপনার প্রতিশ্রুতি ঠেলে দিন:
    git push -u origin main
    

আপনি এই কমান্ডটি চালাতে পারেন এবং GitHub-এ আপনার অ্যাপ্লিকেশন কোড দেখতে ফলস্বরূপ URL-এ যেতে পারেন:

echo -e "\n\nTo see your code, visit this URL:\n \
    https://github.com/${GITHUB_USERNAME}/codelab-genai/blob/main/src/app/app.component.ts \n\n"

10. স্বয়ংক্রিয় স্থাপনা সেট আপ করুন

  1. ক্লাউড শেল এডিটর ট্যাবটি খোলা রেখে দিন। আমরা পরে এই ট্যাবে ফিরে আসব।
  2. একটি নতুন ট্যাবে, ক্লাউড রান পৃষ্ঠাতে যান
  3. কনসোলে সঠিক Google ক্লাউড প্রকল্প নির্বাচন করুন গুগল ক্লাউড কনসোল প্রকল্প ড্রপডাউন
  4. Connect REPO এ ক্লিক করুন
  5. ক্লাউড বিল্ডের সাথে সেট আপ করুন ক্লিক করুন
    1. রিপোজিটরি প্রদানকারী হিসাবে GitHub নির্বাচন করুন
      • আপনি যদি ব্রাউজারে আপনার GitHub অ্যাকাউন্টে লগ ইন না করে থাকেন তবে আপনার শংসাপত্র দিয়ে লগ ইন করুন।
    2. প্রমাণীকরণ ক্লিক করুন এবং তারপরে অবিরত ক্লিক করুন।
    3. লগ ইন করার পরে, আপনি ক্লাউড রান পৃষ্ঠায় একটি বার্তা দেখতে পাবেন যেখানে বলা হয়েছে যে গিটহাব অ্যাপটি আপনার কোনো সংগ্রহস্থলে ইনস্টল করা নেই।
    4. ইন্সটল GOOGLE ক্লাউড বিল্ড বোতামে ক্লিক করুন।
      • ইনস্টলেশন সেটআপ পৃষ্ঠায়, শুধুমাত্র সংগ্রহস্থল নির্বাচন করুন এবং CLI-এর মাধ্যমে আপনি তৈরি করা কোডল্যাব-জেনাই সংগ্রহস্থল নির্বাচন করুন।
      • Install এ ক্লিক করুন
      • দ্রষ্টব্য: আপনার যদি প্রচুর GitHub সংগ্রহস্থল থাকে তবে এটি লোড হতে কয়েক মিনিট সময় নিতে পারে।
    5. সংগ্রহস্থল হিসাবে your-user-name/codelab-genai নির্বাচন করুন
      • সংগ্রহস্থল উপস্থিত না থাকলে, সংযুক্ত সংগ্রহস্থল পরিচালনা লিঙ্কে ক্লিক করুন।
    6. ^main$ হিসাবে শাখা ছেড়ে দিন
    7. Google ক্লাউডের বিল্ডপ্যাকগুলির মাধ্যমে Go, Node.js, Python, Java, .NET Core, Ruby বা PHP-এ ক্লিক করুন
      • অন্যান্য ক্ষেত্রগুলি ( Build context directory , Entrypoint এবং Function target ) যেমন আছে সেগুলি ছেড়ে দিন।
    8. Save এ ক্লিক করুন
  6. প্রমাণীকরণে নিচে স্ক্রোল করুন
  7. অননুমোদিত আহ্বানের অনুমতি দিন ক্লিক করুন
  8. CREATE এ ক্লিক করুন

একবার বিল্ড শেষ হয়ে গেলে (যা বেশ কয়েক মিনিট সময় নেবে), এই কমান্ডটি চালান এবং আপনার চলমান অ্যাপ্লিকেশনটি দেখতে ফলস্বরূপ URL এ যান:

echo -e "\n\nOnce the build finishes, visit your live application:\n \
    "$( \
        gcloud run services list | \
        grep codelab-genai | \
        awk '/URL/{print $2}' | \
        head -1 \
    )" \n\n"

11. আপনার কোড পরিবর্তন করুন

ক্লাউড শেল এডিটরে ফিরে যান

আপনার যদি এখনও ক্লাউড শেল এডিটর খোলা থাকে তবে আপনি এই পদক্ষেপগুলি এড়িয়ে যেতে পারেন।

  1. ক্লাউড শেল এডিটরে নেভিগেট করুন
  2. যদি টার্মিনালটি স্ক্রিনের নীচে প্রদর্শিত না হয় তবে এটি খুলুন:
    • হ্যামবার্গার মেনুতে ক্লিক করুন হ্যামবার্গার মেনু আইকন
    • টার্মিনাল ক্লিক করুন
    • নতুন টার্মিনালে ক্লিক করুন ক্লাউড শেল এডিটরে নতুন টার্মিনাল খুলুন
  3. টার্মিনালে, এই কমান্ড দিয়ে আপনার প্রকল্প সেট করুন:
    • বিন্যাস:
      gcloud config set project [PROJECT_ID]
      
    • উদাহরণ:
      gcloud config set project lab-project-id-example
      
    • আপনি যদি আপনার প্রকল্প আইডি মনে করতে না পারেন:
      • আপনি আপনার সমস্ত প্রকল্প আইডি এর সাথে তালিকাভুক্ত করতে পারেন:
        gcloud projects list | awk '/PROJECT_ID/{print $2}'
        
      ক্লাউড শেল এডিটর টার্মিনালে প্রজেক্ট আইডি সেট করুন
  4. অনুমোদন করার জন্য অনুরোধ করা হলে, চালিয়ে যেতে অনুমোদন ক্লিক করুন। ক্লাউড শেল অনুমোদন করতে ক্লিক করুন
  5. আপনার এই বার্তাটি দেখতে হবে:
    Updated property [core/project].
    
    যদি আপনি একটি WARNING দেখতে পান এবং জিজ্ঞাসা করা হয় Do you want to continue (Y/N)? , তাহলে আপনি সম্ভবত প্রজেক্ট আইডি ভুলভাবে প্রবেশ করেছেন। N টিপুন, Enter টিপুন এবং আবার gcloud config set project কমান্ড চালানোর চেষ্টা করুন।

আপনার অ্যাপ্লিকেশনে Vertex AI যোগ করুন

  1. আপনার স্ক্রিনের নীচে ক্লাউড শেল টার্মিনালে ফিরে যান।
  2. নিশ্চিত করুন যে আপনি এখনও সঠিক ডিরেক্টরিতে আছেন:
    cd ~/codelab-genai
    
  3. Node.js Vertex AI SDK ইনস্টল করুন:
    npm install @google-cloud/vertexai
    
  4. Node.js Google Auth SDK ইনস্টল করুন:
    npm install google-auth-library
    
  5. ক্লাউড শেল এডিটরে server.ts পুনরায় খুলুন
    cloudshell edit server.ts
    
  6. আপনার server.ts ফাইলের কোডটি এর সাথে প্রতিস্থাপন করুন:
    // server.ts
    import { APP_BASE_HREF } from '@angular/common';
    import { CommonEngine } from '@angular/ssr';
    import express from 'express';
    import { fileURLToPath } from 'node:url';
    import { dirname, join, resolve } from 'node:path';
    import bootstrap from './src/main.server';
    
    import { VertexAI } from '@google-cloud/vertexai';
    import { GoogleAuth } from 'google-auth-library';
    
    
    // The Express app is exported so that it can be used by serverless Functions.
    export function app(): express.Express {
        const server = express();
        const serverDistFolder = dirname(fileURLToPath(import.meta.url));
        const browserDistFolder = resolve(serverDistFolder, '../browser');
        const indexHtml = join(serverDistFolder, 'index.server.html');
        const commonEngine = new CommonEngine();
    
        const auth = new GoogleAuth();
    
        server.set('view engine', 'html');
        server.set('views', browserDistFolder);
    
        // Example Express Rest API endpoints
        server.get('/api/facts', async (req, res) => {
            const project = await auth.getProjectId();
    
            const vertex = new VertexAI({ project: project });
            const generativeModel = vertex.getGenerativeModel({
                model: 'gemini-1.5-flash',
                generationConfig: { responseMimeType: 'application/json' }
            });
    
            const animal = req.query['animal'] || 'dog';
            const prompt = `Give me 10 fun facts about ${animal}. 
                            Return as json as an array in the format ['fact 1', 'fact 2']
                            Remove backticks and other markdown formatting.`;
    
            const resp = await generativeModel.generateContent(prompt);
            let factArray = '';
    
            if (resp.response.candidates) {
                factArray = JSON.parse(resp.response.candidates[0].content.parts[0].text || '');
            }
            res.send(factArray);
        });
    
        // Serve static files from /browser
        server.get('**', express.static(browserDistFolder, {
            maxAge: '1y',
            index: 'index.html',
        }));
    
        // All regular routes use the Angular engine
        server.get('**', (req, res, next) => {
            const { protocol, originalUrl, baseUrl, headers } = req;
    
            commonEngine
                .render({
                    bootstrap,
                    documentFilePath: indexHtml,
                    url: `${protocol}://${headers.host}${originalUrl}`,
                    publicPath: browserDistFolder,
                    providers: [{ provide: APP_BASE_HREF, useValue: baseUrl }],
                })
                .then((html) => res.send(html))
                .catch((err) => next(err));
        });
    
        return server;
    }
    
    function run(): void {
        const port = process.env['PORT'] || 4000;
    
        // Start up the Node server
        const server = app();
        server.listen(port, () => {
            console.log(`Node Express server listening on http://localhost:${port}`);
        });
    }
    
    run();
    
  7. ক্লাউড শেল এডিটরে app.component.ts খুলুন
    cloudshell edit src/app/app.component.ts
    
  8. আপনার app.components.ts ফাইলের কোডটি এর সাথে প্রতিস্থাপন করুন:
    // app.component.ts
    import { Component, signal } from '@angular/core';
    import { FormsModule } from '@angular/forms';
    import { RouterOutlet } from '@angular/router';
    
    @Component({
        selector: 'app-root',
        standalone: true,
        imports: [RouterOutlet, FormsModule],
        template: `
            <section>
                <input
                    type="text"
                    placeholder="dog"
                    [(ngModel)]="animal"
                    class="text-black border-2 p-2 m-2 rounded"
                />
                <button
                    (click)="getNewFunFacts()"
                >
                    Get New Fun Facts
                </button>
                <ol>
                    @for(fact of facts(); track fact) {
                        <li>{{fact}}</li>  
                    } @empty {
                        <li>No facts are available</li>
                    }
                </ol>
            </section>
        `,
        styles: '',
    })
    export class AppComponent {
        animal = '';
        facts = signal<string[]>([]);
    
        getNewFunFacts() {
            fetch(`/api/facts?animal=${this.animal}`).then(response => response.json()).then(facts => {
                this.facts.set(facts);
            });
        }
    }
    

12. পুনঃনিয়োগ করুন

  1. নিশ্চিত করুন যে আপনি এখনও ক্লাউড শেলের সঠিক ডিরেক্টরিতে আছেন:
    cd ~/codelab-genai
    
  2. আপনার স্থানীয় গিট সংগ্রহস্থলে আপনার অ্যাপ্লিকেশনটির একটি নতুন সংস্করণ কমিট করতে এই কমান্ডগুলি চালান:
    git add .
    git commit -m "add latest changes"
    
  3. GitHub এ পরিবর্তনগুলি পুশ করুন:
    git push
    
  4. একবার বিল্ড শেষ হলে, এই কমান্ডটি চালান এবং আপনার স্থাপন করা অ্যাপ্লিকেশনটি দেখুন:
    echo -e "\n\nOnce the build finishes, visit your live application:\n \
        "$( \
            gcloud run services list | \
            grep codelab-genai | \
            awk '/URL/{print $2}' | \
            head -1 \
        )" \n\n"
    

আপনি আপনার পরিবর্তনগুলি দেখতে পাওয়ার আগে বিল্ডটি শেষ হতে কয়েক মিনিট সময় লাগতে পারে৷

আপনি এখানে সমস্ত সংশোধনের ইতিহাস দেখতে পারেন: https://console.cloud.google.com/run/detail/us-central1/codelab-genai/revisions

13. (ঐচ্ছিক) আপনার Vertex AI ব্যবহার অডিট করুন

অন্যান্য Google ক্লাউড পরিষেবাগুলির মতো আপনি Vertex AI অপারেশনগুলি অডিট করতে পারেন৷ অডিট লগ আপনাকে প্রশ্নের উত্তর দিতে সাহায্য করে, "কে কি করেছে, কোথায় এবং কখন?"। Vertex AI-এর জন্য প্রশাসনিক নিরীক্ষা লগগুলি ডিফল্টরূপে সক্রিয় করা হয়। বিষয়বস্তু তৈরি করার অনুরোধগুলি নিরীক্ষণ করতে আপনাকে ডেটা অ্যাক্সেস অডিট লগগুলি সক্ষম করতে হবে:

  1. Google ক্লাউড কনসোলে, অডিট লগ পৃষ্ঠায় যান:

    আপনি যদি এই পৃষ্ঠাটি খুঁজে পেতে অনুসন্ধান বার ব্যবহার করেন, তাহলে ফলাফলটি নির্বাচন করুন যার উপশিরোনাম হল IAM & Admin
  2. নিশ্চিত করুন যে বিদ্যমান Google ক্লাউড প্রজেক্টটি সেই একটি যেখানে আপনি আপনার ক্লাউড রান অ্যাপ্লিকেশন তৈরি করেন৷
  3. ডেটা অ্যাক্সেস অডিট লগ কনফিগারেশন টেবিলে, পরিষেবা কলাম থেকে Vertex AI API নির্বাচন করুন।
  4. লগ টাইপস ট্যাবে, ডেটা অ্যাক্সেস অডিট লগের ধরন Admin read এবং Data read নির্বাচন করুন।
  5. Save এ ক্লিক করুন।

এটি সক্ষম করার পরে আপনি অ্যাপ্লিকেশনটির প্রতিটি আহ্বানের জন্য নিরীক্ষা লগ দেখতে সক্ষম হবেন৷ আমন্ত্রণ বিবরণ সহ অডিট লগগুলি দেখতে নিম্নলিখিতগুলি করুন:

  1. আপনার স্থাপন করা অ্যাপ্লিকেশনে ফিরে যান এবং লগটি ট্রিগার করতে পৃষ্ঠাটি রিফ্রেশ করুন৷
  2. Google ক্লাউড কনসোলে, লগ এক্সপ্লোরার পৃষ্ঠায় যান:

  3. ক্যোয়ারী উইন্ডোতে টাইপ করুন:
    LOG_ID("cloudaudit.googleapis.com%2Fdata_access")
    protoPayload.serviceName="aiplatform.googleapis.com"
    
  4. রান ক্যোয়ারী ক্লিক করুন.

অডিট লগগুলি Vertex AI API-এর ব্যবহার ক্যাপচার করে কিন্তু তারা আপনাকে কাজের চাপ সম্পর্কিত ডেটা যেমন প্রম্পট বা প্রতিক্রিয়া বিবরণ পর্যবেক্ষণ করতে দেয় না।

14. (ঐচ্ছিক) আপনার AI কাজের চাপের পর্যবেক্ষণযোগ্যতা বৃদ্ধি করুন

অডিট লগগুলি কাজের চাপ সম্পর্কিত তথ্য ক্যাপচার করে না। আপনার কাজের চাপের পর্যবেক্ষণযোগ্যতা বাড়ানোর জন্য আপনাকে এই তথ্যটি স্পষ্টভাবে লগ করতে হবে। আপনি এটি করতে আপনার প্রিয় লগিং ফ্রেমওয়ার্ক ব্যবহার করতে পারেন। নিম্নলিখিত ধাপগুলি দেখায় কিভাবে নেটিভ Node.js লগিং মেকানিজম ব্যবহার করে এটি করতে হয়।

  1. ক্লাউড শেল এডিটরে server.ts পুনরায় খুলুন
    cloudshell edit ~/codelab-genai/server.ts
    
  2. await generativeModel.generateContent(prompt) জন্য কলের পরে নিম্নলিখিত লাইনটি যোগ করুন:
    console.log(JSON.stringify({
        severity: 'DEBUG',
        message: 'Content is generated',
        prompt: prompt,
        response: resp.response,
    }));
    
    এই কোডটি স্ট্রাকচার্ড লগিং ফর্ম্যাট ব্যবহার করে জেনারেট করা বিষয়বস্তু সম্পর্কে stdout তথ্য লেখে। ক্লাউড রানের একটি লগিং এজেন্ট stdout এ প্রিন্ট করা আউটপুট ক্যাপচার করে এবং এই ফরম্যাটটিকে ক্লাউড লগিং-এ লেখে
  3. ক্লাউড শেল পুনরায় খুলুন এবং আপনি সঠিক ডিরেক্টরিতে আছেন তা নিশ্চিত করতে নিম্নলিখিত কমান্ডটি টাইপ করুন:
    cd ~/codelab-genai
    
  4. পরিবর্তনগুলি কমিট করুন:
    git commit -am "observe generated content"
    
  5. পরিবর্তিত সংস্করণের পুনঃনিয়োগ ট্রিগার করতে GitHub-এ পরিবর্তনগুলি পুশ করুন:
    git push
    

নতুন সংস্করণ স্থাপন করার পরে আপনি Vertex AI-তে কল সম্পর্কে ডিবাগ তথ্য পর্যবেক্ষণ করতে পারেন।

আপনার অ্যাপ্লিকেশন লগগুলি দেখতে নিম্নলিখিতগুলি করুন:

  1. Google ক্লাউড কনসোলে, লগ এক্সপ্লোরার পৃষ্ঠায় যান:

  2. ক্যোয়ারী উইন্ডোতে টাইপ করুন:
    LOG_ID("run.googleapis.com%2Fstdout")
    severity=DEBUG
    
  3. রান ক্যোয়ারী ক্লিক করুন.

প্রশ্নের ফলাফল প্রম্পট এবং ভার্টেক্স এআই প্রতিক্রিয়া সহ লগগুলি দেখায় "নিরাপত্তা রেটিং" সহ যা নিরাপত্তা অনুশীলনগুলি পর্যবেক্ষণের জন্য ব্যবহার করা যেতে পারে

15. (ঐচ্ছিক) পরিষ্কার করুন

পরিষেবাটি ব্যবহার না হলে ক্লাউড রান চার্জ না করলেও, আর্টিফ্যাক্ট রেজিস্ট্রিতে কন্টেইনার ইমেজ সংরক্ষণ করার জন্য আপনাকে চার্জ করা হতে পারে। চার্জ এড়াতে আপনি আপনার ক্লাউড প্রকল্প মুছে ফেলতে পারেন। আপনার ক্লাউড প্রকল্প মুছে ফেলা সেই প্রকল্পের মধ্যে ব্যবহৃত সমস্ত সংস্থানের জন্য বিলিং বন্ধ করে দেয়।

আপনি যদি চান, প্রকল্প মুছে ফেলুন:

gcloud projects delete $GOOGLE_CLOUD_PROJECT

আপনি আপনার ক্লাউডশেল ডিস্ক থেকে অপ্রয়োজনীয় সংস্থানগুলি মুছতেও চাইতে পারেন। আপনি করতে পারেন:

  1. কোডল্যাব প্রকল্প ডিরেক্টরি মুছুন:
    rm -rf ~/codelab-genai
    
  2. সতর্কতা ! এই ক্রিয়াটি পূর্বাবস্থায় ফেরানো যাবে না! আপনি যদি স্থান খালি করতে আপনার ক্লাউড শেলের সবকিছু মুছতে চান, তাহলে আপনি আপনার পুরো হোম ডিরেক্টরি মুছে ফেলতে পারেন। সতর্ক থাকুন যে আপনি যা কিছু রাখতে চান তা অন্য কোথাও সংরক্ষণ করা হয়।
    sudo rm -rf $HOME
    

16. অভিনন্দন

এই ল্যাবে, আপনি একটি ওয়েব অ্যাপ্লিকেশন লিখেছেন এবং আপনার অ্যাপ্লিকেশনের সোর্স কোডে একটি পরিবর্তন করা হলে স্বয়ংক্রিয়ভাবে আপনার অ্যাপ্লিকেশন স্থাপন করতে ক্লাউড রান কনফিগার করেছেন৷ তারপরে আপনি আপনার অ্যাপ্লিকেশনটি সংশোধন করেছেন এবং এটি আবার স্থাপন করেছেন।

আপনি যদি এই ল্যাবটি উপভোগ করেন তবে আপনি এটি অন্য কোডিং ভাষা বা কাঠামোতে আবার চেষ্টা করতে পারেন:

আপনি যদি আজকে যে পণ্যগুলির সাথে কাজ করেছেন তার উন্নতির জন্য ব্যবহারকারীর অভিজ্ঞতা (UX) গবেষণা গবেষণায় অন্তর্ভুক্ত হতে আগ্রহী হন, এখানে নিবন্ধন করুন

আপনার শেখা চালিয়ে যাওয়ার জন্য এখানে কিছু বিকল্প রয়েছে: