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

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. ক্লাউড শেল এডিটর খুলুন

  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. আপনার কোড লিখুন

Go এ একটি আবেদন লিখতে:

  1. হোম ডিরেক্টরিতে নেভিগেট করুন:
    cd ~
    
  2. codelab-genai ডিরেক্টরি তৈরি করুন:
    mkdir codelab-genai
    
  3. codelab-genai ডিরেক্টরিতে নেভিগেট করুন:
    cd codelab-genai
    
  4. আমাদের মডিউল ঘোষণা করতে একটি go.mod ফাইল শুরু করুন:
    go mod init codelab-genai
    
  5. একটি main.go ফাইল তৈরি করুন:
    touch main.go
    
  6. ক্লাউড শেল এডিটরে main.go ফাইলটি খুলুন:
    cloudshell edit main.go
    
    একটি খালি ফাইল এখন পর্দার উপরের অংশে উপস্থিত হওয়া উচিত। এখানে আপনি এই main.go ফাইলটি সম্পাদনা করতে পারেন। দেখান যে কোডটি স্ক্রিনের উপরের বিভাগে যায়
  7. main.go সম্পাদনা করুন এবং এতে নিম্নলিখিত কোড পেস্ট করুন:
    package main
    
    import (
        "fmt"
        "log"
        "net/http"
        "os"
    )
    
    func main() {
        http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
            fmt.Fprintln(w, "Hello, world!")
        })
    
        port := os.Getenv("PORT")
    
        if port == "" {
            port = "8080"
        }
        if err := http.ListenAndServe(":"+port, nil); err != nil {
            log.Fatal(err)
        }
    }
    
    কয়েক সেকেন্ড পরে, ক্লাউড শেল এডিটর আপনার কোড স্বয়ংক্রিয়ভাবে সংরক্ষণ করবে। এই কোড আমাদের "হ্যালো ওয়ার্ল্ড!" অভিবাদন

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

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/main.go \n\n"

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

  1. ক্লাউড শেল এডিটর ট্যাবটি খোলা রেখে দিন। আমরা পরে এই ট্যাবে ফিরে আসব।
  2. একটি নতুন ট্যাবে, ক্লাউড রান পৃষ্ঠাতে যান
  3. কনসোলে সঠিক Google ক্লাউড প্রকল্প নির্বাচন করুন গুগল ক্লাউড কনসোল প্রকল্প ড্রপডাউন
  4. Connect REPO এ ক্লিক করুন
  5. ক্লাউড বিল্ডের সাথে সেট আপ করুন ক্লিক করুন
    1. রিপোজিটরি প্রদানকারী হিসাবে GitHub নির্বাচন করুন
      • আপনি যদি ব্রাউজারে আপনার GitHub অ্যাকাউন্টে লগ ইন না করে থাকেন তবে আপনার শংসাপত্র দিয়ে লগ ইন করুন।
    2. প্রমাণীকরণ ক্লিক করুন এবং তারপরে অবিরত ক্লিক করুন।
    3. লগ ইন করার পরে, আপনি ক্লাউড রান পৃষ্ঠায় একটি বার্তা দেখতে পাবেন যেখানে বলা হয়েছে যে গিটহাব অ্যাপটি আপনার কোনো সংগ্রহস্থলে ইনস্টল করা নেই।
    4. ইন্সটল GOOGLE ক্লাউড বিল্ড বোতামে ক্লিক করুন।
      • ইনস্টলেশন সেটআপ পৃষ্ঠায়, শুধুমাত্র সংগ্রহস্থল নির্বাচন করুন এবং সিএলআই-এর মাধ্যমে আপনি তৈরি করা কোডল্যাব-জেনাই সংগ্রহস্থল নির্বাচন করুন।
      • 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. নিশ্চিত করুন যে আপনি এখনও সঠিক ডিরেক্টরিতে আছেন:
    cd ~/codelab-genai
    
  3. ক্লাউড শেল এডিটরে main.go পুনরায় খুলুন
    cloudshell edit main.go
    
  4. Go এর জন্য Vertex AI SDK ইনস্টল করুন:
    go get cloud.google.com/go/vertexai/genai
    
  5. বর্তমান প্রকল্প আইডি পেতে Go এর জন্য মেটাডেটা লাইব্রেরি ইনস্টল করুন:
    go get cloud.google.com/go/compute/metadata
    
  6. আপনার main.go ফাইলে কোড প্রতিস্থাপন করুন:
    package main
    
    import (
        "context"
        "fmt"
        "log"
        "net/http"
        "os"
    
        "cloud.google.com/go/compute/metadata"
        "cloud.google.com/go/vertexai/genai"
    )
    
    func main() {
        ctx := context.Background()
        var projectId string
        var err error
        projectId = os.Getenv("GOOGLE_CLOUD_PROJECT")
        if projectId == "" {
            projectId, err = metadata.ProjectIDWithContext(ctx)
            if err != nil {
                return
            }
        }
        var client *genai.Client
        client, err = genai.NewClient(ctx, projectId, "us-central1")
        if err != nil {
            return
        }
        defer client.Close()
    
        model := client.GenerativeModel("gemini-1.5-flash-001")
    
        http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
            animal := r.URL.Query().Get("animal")
            if animal == "" {
                animal = "dog"
            }
    
            resp, err := model.GenerateContent(
                ctx,
                genai.Text(
                    fmt.Sprintf("Give me 10 fun facts about %s. Return the results as HTML without markdown backticks.", animal)),
            )
    
            if err != nil {
                w.WriteHeader(http.StatusServiceUnavailable)
                return
            }
    
            if len(resp.Candidates) > 0 && len(resp.Candidates[0].Content.Parts) > 0 {
                htmlContent := resp.Candidates[0].Content.Parts[0]
                w.Header().Set("Content-Type", "text/html; charset=utf-8")
                fmt.Fprint(w, htmlContent)
            }
        })
    
        port := os.Getenv("PORT")
    
        if port == "" {
            port = "8080"
        }
        if err := http.ListenAndServe(":"+port, nil); err != nil {
            log.Fatal(err)
        }
    }
    

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 কাজের চাপের পর্যবেক্ষণযোগ্যতা বৃদ্ধি করুন

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

  1. ক্লাউড শেল এডিটরে main.go পুনরায় খুলুন
    cloudshell edit ~/codelab-genai/main.go
    
  2. Go এর কাঠামোগত লগিং এবং JSON লাইব্রেরি অন্তর্ভুক্ত করতে আপনার আমদানি ব্লক পরিবর্তন করুন:
    import (
        "context"
        "encoding/json"
        "fmt"
        "log"
        "log/slog"
        "net/http"
        "os"
    
        "cloud.google.com/go/compute/metadata"
        "cloud.google.com/go/vertexai/genai"
    )
    
  3. আপনার ভার্টেক্স ক্লায়েন্ট (লাইন 33) শুরু করার পরে, Google ক্লাউড লগিংয়ের জন্য সঠিক ক্ষেত্রগুলি ব্যবহার করে এমন একটি স্ট্রাকচার্ড লগার শুরু করতে নিম্নলিখিত লাইনগুলি যুক্ত করুন:
    opts := &slog.HandlerOptions{
    	Level: slog.LevelDebug,
    	ReplaceAttr: func(group []string, a slog.Attr) slog.Attr {
            if a.Key == slog.LevelKey {
                return slog.Attr{Key: "severity", Value: a.Value}
            }
            if a.Key == slog.MessageKey {
                return slog.Attr{Key: "message", Value: a.Value}
            }
            return slog.Attr{Key: a.Key, Value: a.Value}
    	},
    }
    
    jsonHandler := slog.NewJSONHandler(os.Stdout, opts)
    slog.SetDefault(slog.New(jsonHandler))
    
  4. GenerateContent (লাইন 69) এর প্রতিক্রিয়া পরীক্ষা করার পরে if ব্লকের ভিতরে নিম্নলিখিত লাইনগুলি যুক্ত করুন:
    jsonBytes, err := json.Marshal(resp)
    if err != nil {
        slog.Error("Failed to marshal response to JSON", "error", err)
    } else {
        jsonString := string(jsonBytes)
        slog.Debug("Complete response content", "json_response", jsonString)
    }
    
    এই কোডটি স্ট্রাকচার্ড লগিং ফর্ম্যাট ব্যবহার করে জেনারেট করা বিষয়বস্তু সম্পর্কে stdout তথ্য লেখে। ক্লাউড রানের একটি লগিং এজেন্ট stdout এ প্রিন্ট করা আউটপুট ক্যাপচার করে এবং এই ফরম্যাটটিকে ক্লাউড লগিং-এ লেখে
  5. ক্লাউড শেল পুনরায় খুলুন এবং আপনি সঠিক ডিরেক্টরিতে আছেন তা নিশ্চিত করতে নিম্নলিখিত কমান্ডটি টাইপ করুন:
    cd ~/codelab-genai
    
  6. পরিবর্তনগুলি কমিট করুন:
    git commit -am "Observe generated content"
    
  7. পরিবর্তিত সংস্করণের পুনঃনিয়োগ ট্রিগার করতে 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. আপনার আর প্রয়োজন নাও হতে পারে এমন কোনো গো প্যাকেজ পরিষ্কার করুন:
    cd ~
    go clean -modcache
    
  3. সতর্কতা ! এই ক্রিয়াটি পূর্বাবস্থায় ফেরানো যাবে না! আপনি যদি স্থান খালি করতে আপনার ক্লাউড শেলের সবকিছু মুছতে চান, তাহলে আপনি আপনার পুরো হোম ডিরেক্টরি মুছে ফেলতে পারেন। সতর্ক থাকুন যে আপনি যা কিছু রাখতে চান তা অন্য কোথাও সংরক্ষণ করা হয়।
    sudo rm -rf $HOME
    

16. অভিনন্দন

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

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

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

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