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

১. সংক্ষিপ্ত বিবরণ

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

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

আপনি যা শিখবেন

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

২. পূর্বশর্তসমূহ

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

৩. প্রজেক্ট সেটআপ

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

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

  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. অনুমোদন করতে বলা হলে, চালিয়ে যাওয়ার জন্য 'Authorize'-এ ক্লিক করুন। ক্লাউড শেল অনুমোদন করতে ক্লিক করুন
  5. আপনি এই বার্তাটি দেখতে পাবেন:
    Updated property [core/project].
    
    যদি আপনি একটি WARNING দেখতে পান এবং আপনাকে Do you want to continue (Y/N)? জিজ্ঞাসা করা হয়, তাহলে সম্ভবত আপনি প্রজেক্ট আইডি ভুলভাবে প্রবেশ করিয়েছেন। N চাপুন, Enter চাপুন এবং gcloud config set project কমান্ডটি আবার চালানোর চেষ্টা করুন।

৫. এপিআই সক্রিয় করুন

টার্মিনালে, এপিআইগুলো সক্রিয় করুন:

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

এই কমান্ডটি সম্পন্ন হতে কয়েক মিনিট সময় লাগতে পারে, কিন্তু অবশেষে এটি এইটির মতো একটি সফলতার বার্তা দেবে:

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

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

  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
    

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

জাভাতে একটি অ্যাপ্লিকেশন লিখতে:

  1. হোম ডিরেক্টরিতে যান:
    cd ~
    
  2. codelab-genai ডিরেক্টরিটি তৈরি করুন:
    mkdir codelab-genai
    
  3. codelab-genai ডিরেক্টরিতে যান:
    cd codelab-genai
    
  4. start.spring.io ব্যবহার করে একটি স্টার্টার অ্যাপ্লিকেশন তৈরি করুন:
    curl https://start.spring.io/starter.zip \
        -d dependencies=web \
        -d javaVersion=17 \
        -d type=maven-project \
        -d bootVersion=3.3.2 -o java-starter.zip
    
  5. স্টার্ট অ্যাপ্লিকেশনটি আনজিপ করুন:
    unzip java-starter.zip 
    
  6. অগোছালো অবস্থা কমাতে জিপারটি সরিয়ে ফেলুন।
    rm java-starter.zip
    
  7. একটি project.toml ফাইল যোগ করতে এই কমান্ডটি চালান, যা ক্লাউড বিল্ডপ্যাকসকে জাভা ১৭ ব্যবহার করার জন্য কনফিগার করবে।
    cat > project.toml << EOF
    [[build.env]]
        name = "GOOGLE_RUNTIME_VERSION"
        value = "17"
    EOF
    
  8. ক্লাউড শেল এডিটরে DemoApplication.java ফাইলটি খুলুন:
    cloudshell edit src/main/java/com/example/demo/DemoApplication.java
    
    এখন স্ক্রিনের উপরের অংশে একটি কাঠামোবদ্ধ Main ফাইল দেখা যাবে। এখানেই আপনি DemoApplication.java ফাইলটি সম্পাদনা করতে পারবেন। দেখান যে কোডটি স্ক্রিনের উপরের অংশে থাকবে।
  9. নিচের কোডটি কপি করে খোলা DemoApplication.java ফাইলে পেস্ট করুন:
    package com.example.demo;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.bind.annotation.GetMapping;
    
    @SpringBootApplication
    public class DemoApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(DemoApplication.class, args);
        }
    
    }
    
    @RestController
    class HelloController {
    
        @GetMapping("/")
        public String hello() {
            return "Hello world!";
        }
    
    }
    
    কয়েক সেকেন্ড পর, ক্লাউড শেল এডিটর আপনার কোড স্বয়ংক্রিয়ভাবে সংরক্ষণ করবে। এই কোডটি http অনুরোধের জবাবে আমাদের "হ্যালো ওয়ার্ল্ড!" সম্ভাষণ পাঠায়। স্প্রিং অ্যাপের জন্য একটি ফাইলে দুটি ক্লাস থাকা কিছুটা অপ্রচলিত। কোডল্যাবকে সহজ করার জন্য এই সিদ্ধান্তটি নেওয়া হয়েছে।

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

৮. একটি রিপোজিটরি তৈরি করুন

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

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

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

আপনি এই কমান্ডটি চালিয়ে প্রাপ্ত URL-টিতে গিয়ে GitHub-এ আপনার অ্যাপ্লিকেশন কোড দেখতে পারেন:

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

১০. স্বয়ংক্রিয় ডেপ্লয়মেন্ট সেট আপ করুন

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

বিল্ড শেষ হয়ে গেলে (যেটিতে কয়েক মিনিট সময় লাগবে), এই কমান্ডটি চালান এবং আপনার চলমান অ্যাপ্লিকেশনটি দেখতে প্রাপ্ত 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"

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

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

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

  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. অনুমোদন করতে বলা হলে, চালিয়ে যাওয়ার জন্য 'Authorize'-এ ক্লিক করুন। ক্লাউড শেল অনুমোদন করতে ক্লিক করুন
  5. আপনি এই বার্তাটি দেখতে পাবেন:
    Updated property [core/project].
    
    যদি আপনি একটি WARNING দেখতে পান এবং আপনাকে Do you want to continue (Y/N)? জিজ্ঞাসা করা হয়, তাহলে সম্ভবত আপনি প্রজেক্ট আইডি ভুলভাবে প্রবেশ করিয়েছেন। N চাপুন, Enter চাপুন এবং gcloud config set project কমান্ডটি আবার চালানোর চেষ্টা করুন।

আপনার অ্যাপ্লিকেশনে ভার্টেক্স এআই যোগ করুন

  1. আপনার স্ক্রিনের নীচে থাকা ক্লাউড শেল টার্মিনালে ফিরে যান।
  2. নিশ্চিত করুন যে আপনি এখনও সঠিক ডিরেক্টরিতে আছেন:
    cd ~/codelab-genai
    
  3. আপনার pom.xml ৪২ নম্বর লাইনে নিম্নলিখিতটি যোগ করে Java Vertex AI SDK ইনস্টল করুন:
    sed -i 's/<dependencies>/<dependencies>\r\n\r\n\t\t<dependency>\r\n\t\t\t<groupId>com.google.cloud<\/groupId>\r\n\t\t\t<artifactId>google-cloud-vertexai<\/artifactId>\r\n\t\t\t<version>1.7.0<\/version>\r\n\t\t<\/dependency>\r\n/g' pom.xml
    
  4. পরবর্তীতে প্রজেক্ট আইডি পুনরুদ্ধার করার জন্য গুগল ক্লাউড কোর লাইব্রেরি ইনস্টল করুন:
    sed -i 's/<dependencies>/<dependencies>\r\n\r\n\t\t<dependency>\r\n\t\t\t<groupId>com.google.cloud<\/groupId>\r\n\t\t\t<artifactId>google-cloud-core<\/artifactId>\r\n\t\t\t<version>2.42.0<\/version>\r\n\t\t<\/dependency>\r\n/g' pom.xml
    
  5. ক্লাউড শেল এডিটরে DemoApplication.java পুনরায় খুলুন।
    cloudshell edit ~/codelab-genai/src/main/java/com/example/demo/DemoApplication.java
    
  6. আপনার DemoApplication.java ফাইলের কোডটি নিম্নলিখিত কোড দিয়ে প্রতিস্থাপন করুন:
    package com.example.demo;
    
    import java.io.IOException;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.RestController;
    
    import com.google.cloud.vertexai.VertexAI;
    import com.google.cloud.vertexai.api.GenerateContentResponse;
    import com.google.cloud.vertexai.generativeai.GenerativeModel;
    import com.google.cloud.vertexai.generativeai.ResponseHandler;
    
    import com.google.cloud.ServiceOptions;
    
    @SpringBootApplication
    public class DemoApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(DemoApplication.class, args);
        }
    
    }
    
    @RestController
    class HelloController {
    
        String projectId = ServiceOptions.getDefaultProjectId();
    
        @GetMapping("/")
        public String getFacts(@RequestParam(defaultValue = "dog") String animal) throws IOException {
            String prompt = "Give me 10 fun facts about " + animal + ". Return this as html without backticks.";
    
            VertexAI vertexAI = new VertexAI(projectId, null);
            GenerativeModel model = new GenerativeModel("gemini-1.5-flash", vertexAI);
    
            GenerateContentResponse response = model.generateContent(prompt);
            return ResponseHandler.getText(response);
        }
    
    }
    

১২. পুনঃস্থাপন

  1. ক্লাউড শেলে আপনি সঠিক ডিরেক্টরিতে আছেন কিনা তা নিশ্চিত করুন:
    cd ~/codelab-genai
    
  2. আপনার অ্যাপ্লিকেশনের একটি নতুন সংস্করণ আপনার স্থানীয় গিট রিপোজিটরিতে কমিট করতে এই কমান্ডগুলো চালান:
    git add .
    git commit -m "add latest changes"
    
  3. গিটহাবে পরিবর্তনগুলো পুশ করুন:
    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

১৩. (ঐচ্ছিক) আপনার Vertex AI ব্যবহারের নিরীক্ষা করুন।

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

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

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

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

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

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

অডিট লগ ভার্টেক্স এআই এপিআই-এর ব্যবহার নথিভুক্ত করে, কিন্তু এটি আপনাকে প্রম্পট বা প্রতিক্রিয়ার বিবরণের মতো ওয়ার্কলোড সম্পর্কিত ডেটা পর্যবেক্ষণ করতে দেয় না।

১৪. (ঐচ্ছিক) আপনার এআই ওয়ার্কলোডের পর্যবেক্ষণযোগ্যতা বৃদ্ধি করুন

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

  1. ক্লাউড শেল এডিটরে DemoApplication.java পুনরায় খুলুন।
    cloudshell edit ~/codelab-genai/src/main/java/com/example/demo/DemoApplication.java
    
  2. আপনার DemoApplication.java ফাইলের কোডটি নিম্নলিখিত কোড দিয়ে প্রতিস্থাপন করুন:
    package com.example.demo;
    
    import java.io.IOException;
    import java.util.HashMap;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.RestController;
    
    import com.google.cloud.vertexai.VertexAI;
    import com.google.cloud.vertexai.api.GenerateContentResponse;
    import com.google.cloud.vertexai.generativeai.GenerativeModel;
    import com.google.cloud.vertexai.generativeai.ResponseHandler;
    
    import com.google.cloud.ServiceOptions;
    
    @SpringBootApplication
    public class DemoApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(DemoApplication.class, args);
        }
    
    }
    
    @RestController
    class HelloController {
        final Logger logger = Logger.getLogger(HelloController.class.getName());
    
        String projectId = ServiceOptions.getDefaultProjectId();
    
        @GetMapping("/")
        public String getFacts(@RequestParam(defaultValue = "dog") String animal) throws IOException {
            String prompt = "Give me 10 fun facts about " + animal + ". Return this as html without backticks.";
    
            VertexAI vertexAI = new VertexAI(projectId, null);
            GenerativeModel model = new GenerativeModel("gemini-1.5-flash", vertexAI);
    
            GenerateContentResponse response = model.generateContent(prompt);
            logger.log(Level.INFO, "Content is generated",
                    new HashMap<String, Object>() {
                        {
                            put("prompt", prompt);
                            put("response", response);
                        }
                    });
            return ResponseHandler.getText(response);
        }
    
    }
    
    এই কোডটি স্ট্রাকচার্ড লগিং ফরম্যাট ব্যবহার করে তৈরি হওয়া কন্টেন্ট সম্পর্কিত তথ্য stdout এ লেখে। ক্লাউড রানের একটি লগিং এজেন্ট stdout এ প্রিন্ট হওয়া আউটপুট গ্রহণ করে এবং এই ফরম্যাটটি ক্লাউড লগিং-এ লিখে রাখে
  3. ক্লাউড শেল পুনরায় খুলুন এবং আপনি সঠিক ডিরেক্টরিতে আছেন কিনা তা নিশ্চিত করতে নিম্নলিখিত কমান্ডটি টাইপ করুন:
    cd ~/codelab-genai
    
  4. পরিবর্তনগুলো নিশ্চিত করুন:
    git commit -am "observe generated content"
    
  5. সংশোধিত সংস্করণটির পুনঃস্থাপন শুরু করতে GitHub-এ পরিবর্তনগুলো পুশ করুন:
    git push
    

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

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

  1. Google Cloud কনসোলে, Log Explorer পৃষ্ঠায় যান:

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

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

১৫. (ঐচ্ছিক) পরিষ্কার করা

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

আপনি চাইলে প্রজেক্টটি মুছে ফেলতে পারেন:

gcloud projects delete $GOOGLE_CLOUD_PROJECT

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

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

১৬. অভিনন্দন

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

এই ল্যাবটি যদি আপনার ভালো লেগে থাকে, তবে আপনি এটি অন্য কোনো কোডিং ভাষা বা ফ্রেমওয়ার্কে আবার চেষ্টা করতে পারেন:

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

আপনার পড়াশোনা চালিয়ে যাওয়ার জন্য এখানে কিছু উপায় দেওয়া হলো: