AlloyDB AI এর সাথে ভেক্টর এমবেডিং শুরু করা

1। পরিচিতি

এই কোডল্যাবে আপনি শিখবেন কিভাবে ভেক্টর সার্চের সাথে Vertex AI এম্বেডিংয়ের সমন্বয়ে AlloyDB AI ব্যবহার করতে হয়।

17e86406ab251142.png

পূর্বশর্ত

  • Google ক্লাউড, কনসোলের একটি প্রাথমিক ধারণা
  • কমান্ড লাইন ইন্টারফেস এবং গুগল শেলের প্রাথমিক দক্ষতা

আপনি কি শিখবেন

  • কিভাবে AlloyDB ক্লাস্টার এবং প্রাথমিক উদাহরণ স্থাপন করবেন
  • কিভাবে Google Compute Engine VM থেকে AlloyDB এর সাথে সংযোগ করবেন
  • কিভাবে ডাটাবেস তৈরি করবেন এবং AlloyDB AI সক্ষম করবেন
  • কিভাবে ডাটাবেসে ডাটা লোড করবেন
  • AlloyDB-তে ভার্টেক্স এআই এমবেডিং মডেল কীভাবে ব্যবহার করবেন
  • Vertex AI জেনারেটিভ মডেল ব্যবহার করে ফলাফলকে কিভাবে সমৃদ্ধ করা যায়

আপনি কি প্রয়োজন হবে

  • একটি Google ক্লাউড অ্যাকাউন্ট এবং Google ক্লাউড প্রকল্প
  • একটি ওয়েব ব্রাউজার যেমন ক্রোম

2. সেটআপ এবং প্রয়োজনীয়তা

স্ব-গতিসম্পন্ন পরিবেশ সেটআপ

  1. Google ক্লাউড কনসোলে সাইন-ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ আপনার যদি ইতিমধ্যেই একটি Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • প্রকল্পের নাম এই প্রকল্পের অংশগ্রহণকারীদের জন্য প্রদর্শনের নাম। এটি একটি অক্ষর স্ট্রিং যা Google API দ্বারা ব্যবহৃত হয় না। আপনি সবসময় এটি আপডেট করতে পারেন.
  • প্রোজেক্ট আইডি সমস্ত Google ক্লাউড প্রোজেক্ট জুড়ে অনন্য এবং অপরিবর্তনীয় (সেট করার পরে পরিবর্তন করা যাবে না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত আপনি এটা কি যত্ন না. বেশিরভাগ কোডল্যাবে, আপনাকে আপনার প্রকল্প আইডি উল্লেখ করতে হবে (সাধারণত PROJECT_ID হিসাবে চিহ্নিত)। আপনি যদি জেনারেট করা আইডি পছন্দ না করেন, তাহলে আপনি অন্য একটি এলোমেলো আইডি তৈরি করতে পারেন। বিকল্পভাবে, আপনি নিজের চেষ্টা করতে পারেন, এবং এটি উপলব্ধ কিনা দেখতে পারেন। এই ধাপের পরে এটি পরিবর্তন করা যাবে না এবং প্রকল্পের সময়কালের জন্য থাকে।
  • আপনার তথ্যের জন্য, একটি তৃতীয় মান আছে, একটি প্রকল্প নম্বর , যা কিছু API ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি মান সম্পর্কে আরও জানুন।
  1. এরপরে, ক্লাউড রিসোর্স/এপিআই ব্যবহার করতে আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে। এই কোডল্যাবের মাধ্যমে চালানোর জন্য খুব বেশি খরচ হবে না, যদি কিছু হয়। এই টিউটোরিয়ালের বাইরে বিলিং এড়াতে সংস্থানগুলি বন্ধ করতে, আপনি আপনার তৈরি করা সংস্থানগুলি মুছতে বা প্রকল্প মুছতে পারেন। নতুন Google ক্লাউড ব্যবহারকারীরা $300 USD বিনামূল্যের ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷

ক্লাউড শেল শুরু করুন

যদিও Google ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালিত হতে পারে, এই কোডল্যাবে আপনি Google ক্লাউড শেল ব্যবহার করবেন, একটি কমান্ড লাইন পরিবেশ যা ক্লাউডে চলছে।

Google ক্লাউড কনসোল থেকে, উপরের ডানদিকে টুলবারে ক্লাউড শেল আইকনে ক্লিক করুন:

55efc1aaa7a4d3ad.png

পরিবেশের ব্যবস্থা করতে এবং সংযোগ করতে এটি শুধুমাত্র কয়েক মুহূর্ত নিতে হবে। এটি সমাপ্ত হলে, আপনি এই মত কিছু দেখতে হবে:

7ffe5cbb04455448.png

এই ভার্চুয়াল মেশিনটি আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুল দিয়ে লোড করা হয়েছে। এটি একটি ক্রমাগত 5GB হোম ডিরেক্টরি অফার করে এবং Google ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার সমস্ত কাজ একটি ব্রাউজারে করা যেতে পারে। আপনার কিছু ইন্সটল করার দরকার নেই।

3. আপনি শুরু করার আগে

API সক্ষম করুন

আউটপুট:

ক্লাউড শেলের ভিতরে, নিশ্চিত করুন যে আপনার প্রকল্প আইডি সেটআপ করা আছে:

gcloud config set project [YOUR-PROJECT-ID]

পরিবেশ পরিবর্তনশীল PROJECT_ID সেট করুন:

PROJECT_ID=$(gcloud config get-value project)

সমস্ত প্রয়োজনীয় পরিষেবাগুলি সক্ষম করুন:

gcloud services enable alloydb.googleapis.com \
                       compute.googleapis.com \
                       cloudresourcemanager.googleapis.com \
                       servicenetworking.googleapis.com \
                       aiplatform.googleapis.com

প্রত্যাশিত আউটপুট

student@cloudshell:~ (test-project-001-402417)$ gcloud config set project test-project-001-402417
Updated property [core/project].
student@cloudshell:~ (test-project-001-402417)$ PROJECT_ID=$(gcloud config get-value project)
Your active configuration is: [cloudshell-14650]
student@cloudshell:~ (test-project-001-402417)$ 
student@cloudshell:~ (test-project-001-402417)$ gcloud services enable alloydb.googleapis.com \
                       compute.googleapis.com \
                       cloudresourcemanager.googleapis.com \
                       servicenetworking.googleapis.com \
                       aiplatform.googleapis.com
Operation "operations/acat.p2-4470404856-1f44ebd8-894e-4356-bea7-b84165a57442" finished successfully.

Vertex AI এম্বেডিং মডেল ব্যবহার করতে আপনার ডিফল্ট অঞ্চল কনফিগার করুন। Vertex AI এর জন্য উপলব্ধ অবস্থান সম্পর্কে আরও পড়ুন। উদাহরণে আমরা us-central1 অঞ্চল ব্যবহার করছি।

gcloud config set compute/region us-central1

4. AlloyDB স্থাপন করুন

একটি AlloyDB ক্লাস্টার তৈরি করার আগে আমাদের VPC-তে একটি উপলব্ধ প্রাইভেট আইপি পরিসর প্রয়োজন যাতে ভবিষ্যতে AlloyDB দৃষ্টান্ত ব্যবহার করা যায়। যদি আমাদের কাছে এটি না থাকে তবে আমাদের এটি তৈরি করতে হবে, এটিকে অভ্যন্তরীণ Google পরিষেবাগুলির দ্বারা ব্যবহার করার জন্য বরাদ্দ করতে হবে এবং তারপরে আমরা ক্লাস্টার এবং উদাহরণ তৈরি করতে সক্ষম হব।

ব্যক্তিগত আইপি পরিসীমা তৈরি করুন

AlloyDB-এর জন্য আমাদের VPC-তে আমাদের ব্যক্তিগত পরিষেবা অ্যাক্সেস কনফিগারেশন কনফিগার করতে হবে। এখানে অনুমান হল যে আমাদের প্রকল্পে "ডিফল্ট" VPC নেটওয়ার্ক আছে এবং এটি সমস্ত কর্মের জন্য ব্যবহার করা হবে।

ব্যক্তিগত আইপি পরিসীমা তৈরি করুন:

gcloud compute addresses create psa-range \
    --global \
    --purpose=VPC_PEERING \
    --prefix-length=24 \
    --description="VPC private service access" \
    --network=default

বরাদ্দকৃত আইপি পরিসর ব্যবহার করে ব্যক্তিগত সংযোগ তৈরি করুন:

gcloud services vpc-peerings connect \
    --service=servicenetworking.googleapis.com \
    --ranges=psa-range \
    --network=default

প্রত্যাশিত কনসোল আউটপুট:

student@cloudshell:~ (test-project-402417)$ gcloud compute addresses create psa-range \
    --global \
    --purpose=VPC_PEERING \
    --prefix-length=24 \
    --description="VPC private service access" \
    --network=default
Created [https://www.googleapis.com/compute/v1/projects/test-project-402417/global/addresses/psa-range].

student@cloudshell:~ (test-project-402417)$ gcloud services vpc-peerings connect \
    --service=servicenetworking.googleapis.com \
    --ranges=psa-range \
    --network=default
Operation "operations/pssn.p24-4470404856-595e209f-19b7-4669-8a71-cbd45de8ba66" finished successfully.

student@cloudshell:~ (test-project-402417)$

AlloyDB ক্লাস্টার তৈরি করুন

US-central1 অঞ্চলে একটি AlloyDB ক্লাস্টার তৈরি করুন।

পোস্টগ্রেস ব্যবহারকারীর জন্য পাসওয়ার্ড নির্ধারণ করুন। আপনি আপনার নিজের পাসওয়ার্ড সংজ্ঞায়িত করতে পারেন বা একটি তৈরি করতে একটি র্যান্ডম ফাংশন ব্যবহার করতে পারেন

export PGPASSWORD=`openssl rand -hex 12`

প্রত্যাশিত কনসোল আউটপুট:

student@cloudshell:~ (test-project-402417)$ export PGPASSWORD=`openssl rand -hex 12`

ভবিষ্যতে ব্যবহারের জন্য PostgreSQL পাসওয়ার্ড নোট করুন:

echo $PGPASSWORD

প্রত্যাশিত কনসোল আউটপুট:

student@cloudshell:~ (test-project-402417)$ echo $PGPASSWORD
bbefbfde7601985b0dee5723

অঞ্চল এবং AlloyDB ক্লাস্টার নাম সংজ্ঞায়িত করুন। আমরা একটি ক্লাস্টার নাম হিসাবে us-central1 অঞ্চল এবং alloydb-aip-01 ব্যবহার করতে যাচ্ছি:

export REGION=us-central1
export ADBCLUSTER=alloydb-aip-01

ক্লাস্টার তৈরি করতে কমান্ড চালান:

gcloud alloydb clusters create $ADBCLUSTER \
    --password=$PGPASSWORD \
    --network=default \
    --region=$REGION

প্রত্যাশিত কনসোল আউটপুট:

export REGION=us-central1
export ADBCLUSTER=alloydb-aip-01
gcloud alloydb clusters create $ADBCLUSTER \
    --password=$PGPASSWORD \
    --network=default \
    --region=$REGION
Operation ID: operation-1697655441138-6080235852277-9e7f04f5-2012fce4
Creating cluster...done.                                                                                                                                                                                                                                                           

AlloyDB প্রাথমিক উদাহরণ তৈরি করুন

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

gcloud alloydb instances create $ADBCLUSTER-pr \
    --instance-type=PRIMARY \
    --cpu-count=2 \
    --region=$REGION \
    --cluster=$ADBCLUSTER

প্রত্যাশিত কনসোল আউটপুট:

student@cloudshell:~ (test-project-402417)$ gcloud alloydb instances create $ADBCLUSTER-pr \
    --instance-type=PRIMARY \
    --cpu-count=2 \
    --region=$REGION \
    --availability-type ZONAL \
    --cluster=$ADBCLUSTER
Operation ID: operation-1697659203545-6080315c6e8ee-391805db-25852721
Creating instance...done.                                                                                                                                                                                                                                                     

5. AlloyDB এর সাথে সংযোগ করুন

AlloyDB একটি ব্যক্তিগত-শুধু সংযোগ ব্যবহার করে স্থাপন করা হয়েছে, তাই ডাটাবেসের সাথে কাজ করার জন্য আমাদের PostgreSQL ক্লায়েন্ট ইনস্টল সহ একটি VM প্রয়োজন।

GCE VM স্থাপন করুন

একই অঞ্চলে একটি GCE VM তৈরি করুন এবং AlloyDB ক্লাস্টার হিসাবে VPC তৈরি করুন৷

ক্লাউড শেল চালান:

export ZONE=us-central1-a
gcloud compute instances create instance-1 \
    --zone=$ZONE \
    --create-disk=auto-delete=yes,boot=yes,image=projects/debian-cloud/global/images/$(gcloud compute images list --filter="family=debian-12 AND family!=debian-12-arm64" --format="value(name)") \
    --scopes=https://www.googleapis.com/auth/cloud-platform

প্রত্যাশিত কনসোল আউটপুট:

student@cloudshell:~ (test-project-402417)$ export ZONE=us-central1-a
student@cloudshell:~ (test-project-402417)$ export ZONE=us-central1-a
gcloud compute instances create instance-1 \
    --zone=$ZONE \
    --create-disk=auto-delete=yes,boot=yes,image=projects/debian-cloud/global/images/$(gcloud compute images list --filter="family=debian-12 AND family!=debian-12-arm64" --format="value(name)") \
    --scopes=https://www.googleapis.com/auth/cloud-platform

Created [https://www.googleapis.com/compute/v1/projects/test-project-402417/zones/us-central1-a/instances/instance-1].
NAME: instance-1
ZONE: us-central1-a
MACHINE_TYPE: n1-standard-1
PREEMPTIBLE: 
INTERNAL_IP: 10.128.0.2
EXTERNAL_IP: 34.71.192.233
STATUS: RUNNING

পোস্টগ্রেস ক্লায়েন্ট ইনস্টল করুন

স্থাপন করা VM-এ PostgreSQL ক্লায়েন্ট সফ্টওয়্যার ইনস্টল করুন

VM এর সাথে সংযোগ করুন:

gcloud compute ssh instance-1 --zone=us-central1-a

প্রত্যাশিত কনসোল আউটপুট:

student@cloudshell:~ (test-project-402417)$ gcloud compute ssh instance-1 --zone=us-central1-a
Updating project ssh metadata...working..Updated [https://www.googleapis.com/compute/v1/projects/test-project-402417].                                                                                                                                                         
Updating project ssh metadata...done.                                                                                                                                                                                                                                              
Waiting for SSH key to propagate.
Warning: Permanently added 'compute.5110295539541121102' (ECDSA) to the list of known hosts.
Linux instance-1.us-central1-a.c.gleb-test-short-001-418811.internal 6.1.0-18-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.76-1 (2024-02-01) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
student@instance-1:~$ 

VM এর ভিতরে সফ্টওয়্যার চলমান কমান্ড ইনস্টল করুন:

sudo apt-get update
sudo apt-get install --yes postgresql-client

প্রত্যাশিত কনসোল আউটপুট:

student@instance-1:~$ sudo apt-get update
sudo apt-get install --yes postgresql-client
Get:1 https://packages.cloud.google.com/apt google-compute-engine-bullseye-stable InRelease [5146 B]
Get:2 https://packages.cloud.google.com/apt cloud-sdk-bullseye InRelease [6406 B]   
Hit:3 https://deb.debian.org/debian bullseye InRelease  
Get:4 https://deb.debian.org/debian-security bullseye-security InRelease [48.4 kB]
Get:5 https://packages.cloud.google.com/apt google-compute-engine-bullseye-stable/main amd64 Packages [1930 B]
Get:6 https://deb.debian.org/debian bullseye-updates InRelease [44.1 kB]
Get:7 https://deb.debian.org/debian bullseye-backports InRelease [49.0 kB]
...redacted...
update-alternatives: using /usr/share/postgresql/13/man/man1/psql.1.gz to provide /usr/share/man/man1/psql.1.gz (psql.1.gz) in auto mode
Setting up postgresql-client (13+225) ...
Processing triggers for man-db (2.9.4-2) ...
Processing triggers for libc-bin (2.31-13+deb11u7) ...

ইনস্ট্যান্সের সাথে সংযোগ করুন

psql ব্যবহার করে VM থেকে প্রাথমিক দৃষ্টান্তের সাথে সংযোগ করুন।

একই ক্লাউড শেল ট্যাবে আপনার ইনস্ট্যান্স-১ ভিএম-এ খোলা SSH সেশন সহ।

GCE VM থেকে AlloyDB এর সাথে সংযোগ করতে উল্লেখিত AlloyDB পাসওয়ার্ড (PGPASSWORD) মান এবং AlloyDB ক্লাস্টার আইডি ব্যবহার করুন:

export PGPASSWORD=<Noted password>
export PROJECT_ID=$(gcloud config get-value project)
export REGION=us-central1
export ADBCLUSTER=alloydb-aip-01
export INSTANCE_IP=$(gcloud alloydb instances describe $ADBCLUSTER-pr --cluster=$ADBCLUSTER --region=$REGION --format="value(ipAddress)")
psql "host=$INSTANCE_IP user=postgres sslmode=require"

প্রত্যাশিত কনসোল আউটপুট:

student@instance-1:~$ export PGPASSWORD=CQhOi5OygD4ps6ty
student@instance-1:~$ ADBCLUSTER=alloydb-aip-01
student@instance-1:~$ REGION=us-central1
student@instance-1:~$ INSTANCE_IP=$(gcloud alloydb instances describe $ADBCLUSTER-pr --cluster=$ADBCLUSTER --region=$REGION --format="value(ipAddress)")
gleb@instance-1:~$ psql "host=$INSTANCE_IP user=postgres sslmode=require"
psql (15.6 (Debian 15.6-0+deb12u1), server 15.5)
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off)
Type "help" for help.

postgres=>

psql অধিবেশন বন্ধ করুন:

exit

6. ডাটাবেস প্রস্তুত করুন

আমাদের একটি ডাটাবেস তৈরি করতে হবে, ভার্টেক্স এআই ইন্টিগ্রেশন সক্ষম করতে হবে, ডাটাবেস অবজেক্ট তৈরি করতে হবে এবং ডেটা আমদানি করতে হবে।

AlloyDB কে প্রয়োজনীয় অনুমতি দিন

AlloyDB পরিষেবা এজেন্টে Vertex AI অনুমতি যোগ করুন।

উপরের "+" চিহ্নটি ব্যবহার করে আরেকটি ক্লাউড শেল ট্যাব খুলুন।

4ca978f5142bb6ce.png

নতুন ক্লাউড শেল ট্যাবে কার্যকর করুন:

PROJECT_ID=$(gcloud config get-value project)
gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:service-$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")@gcp-sa-alloydb.iam.gserviceaccount.com" \
  --role="roles/aiplatform.user"

প্রত্যাশিত কনসোল আউটপুট:

student@cloudshell:~ (test-project-001-402417)$ PROJECT_ID=$(gcloud config get-value project)
Your active configuration is: [cloudshell-11039]
student@cloudshell:~ (test-project-001-402417)$ gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:service-$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")@gcp-sa-alloydb.iam.gserviceaccount.com" \
  --role="roles/aiplatform.user"
Updated IAM policy for project [test-project-001-402417].
bindings:
- members:
  - serviceAccount:service-4470404856@gcp-sa-alloydb.iam.gserviceaccount.com
  role: roles/aiplatform.user
- members:
...
etag: BwYIEbe_Z3U=
version: 1
 

ট্যাবে "প্রস্থান" কমান্ড দ্বারা ট্যাবটি বন্ধ করুন:

exit

ডাটাবেস তৈরি করুন

ডাটাবেস কুইকস্টার্ট তৈরি করুন।

GCE VM সেশন এক্সিকিউটে:

ডাটাবেস তৈরি করুন:

psql "host=$INSTANCE_IP user=postgres" -c "CREATE DATABASE quickstart_db"

প্রত্যাশিত কনসোল আউটপুট:

student@instance-1:~$ psql "host=$INSTANCE_IP user=postgres" -c "CREATE DATABASE quickstart_db"
CREATE DATABASE
student@instance-1:~$  

Vertex AI ইন্টিগ্রেশন সক্ষম করুন

ভার্টেক্স এআই ইন্টিগ্রেশন এবং ডাটাবেসে pgvector এক্সটেনশন সক্ষম করুন।

GCE VM এক্সিকিউটে:

psql "host=$INSTANCE_IP user=postgres dbname=quickstart_db" -c "CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE"
psql "host=$INSTANCE_IP user=postgres dbname=quickstart_db" -c "CREATE EXTENSION IF NOT EXISTS vector"

প্রত্যাশিত কনসোল আউটপুট:

student@instance-1:~$ psql "host=$INSTANCE_IP user=postgres dbname=quickstart_db" -c "CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE"
psql "host=$INSTANCE_IP user=postgres dbname=quickstart_db" -c "CREATE EXTENSION IF NOT EXISTS vector"
CREATE EXTENSION
CREATE EXTENSION
student@instance-1:~$ 

তথ্য আমদানি

প্রস্তুত ডেটা ডাউনলোড করুন এবং এটি নতুন ডাটাবেসে আমদানি করুন।

GCE VM এক্সিকিউটে:

gsutil cat gs://cloud-training/gcc/gcc-tech-004/cymbal_demo_schema.sql |psql "host=$INSTANCE_IP user=postgres dbname=quickstart_db"
gsutil cat gs://cloud-training/gcc/gcc-tech-004/cymbal_products.csv |psql "host=$INSTANCE_IP user=postgres dbname=quickstart_db" -c "\copy cymbal_products from stdin csv header"
gsutil cat gs://cloud-training/gcc/gcc-tech-004/cymbal_inventory.csv |psql "host=$INSTANCE_IP user=postgres dbname=quickstart_db" -c "\copy cymbal_inventory from stdin csv header"
gsutil cat gs://cloud-training/gcc/gcc-tech-004/cymbal_stores.csv |psql "host=$INSTANCE_IP user=postgres dbname=quickstart_db" -c "\copy cymbal_stores from stdin csv header"

প্রত্যাশিত কনসোল আউটপুট:

student@instance-1:~$ gsutil cat gs://cloud-training/gcc/gcc-tech-004/cymbal_demo_schema.sql |psql "host=$INSTANCE_IP user=postgres dbname=quickstart_db"
SET
SET
SET
SET
SET
 set_config 
------------
 
(1 row)
SET
SET
SET
SET
SET
SET
CREATE TABLE
ALTER TABLE
CREATE TABLE
ALTER TABLE
CREATE TABLE
ALTER TABLE
CREATE TABLE
ALTER TABLE
CREATE SEQUENCE
ALTER TABLE
ALTER SEQUENCE
ALTER TABLE
ALTER TABLE
ALTER TABLE
student@instance-1:~$ gsutil cat gs://cloud-training/gcc/gcc-tech-004/cymbal_products.csv |psql "host=$INSTANCE_IP user=postgres dbname=quickstart_db" -c "\copy cymbal_products from stdin csv header"
COPY 941
student@instance-1:~$ gsutil cat gs://cloud-training/gcc/gcc-tech-004/cymbal_inventory.csv |psql "host=$INSTANCE_IP user=postgres dbname=quickstart_db" -c "\copy cymbal_inventory from stdin csv header"
COPY 263861
student@instance-1:~$ gsutil cat gs://cloud-training/gcc/gcc-tech-004/cymbal_stores.csv |psql "host=$INSTANCE_IP user=postgres dbname=quickstart_db" -c "\copy cymbal_stores from stdin csv header"
COPY 4654
student@instance-1:~$

7. এম্বেডিং গণনা করুন

ডাটা ইম্পোর্ট করার পর আমরা cymbal_products টেবিলে আমাদের পণ্যের ডেটা পেয়েছি, cymbal_inventory টেবিলে প্রতিটি দোকানে উপলব্ধ পণ্যের সংখ্যা এবং cymbal_stores টেবিলে স্টোরের তালিকা দেখানো জায়। আমাদের পণ্যের বর্ণনার উপর ভিত্তি করে ভেক্টর ডেটা গণনা করতে হবে এবং আমরা এর জন্য ফাংশন এমবেডিং ব্যবহার করতে যাচ্ছি। ফাংশনটি ব্যবহার করে আমরা আমাদের পণ্যের বিবরণের উপর ভিত্তি করে ভেক্টর ডেটা গণনা করতে এবং টেবিলে যোগ করতে Vertex AI ইন্টিগ্রেশন ব্যবহার করতে যাচ্ছি। আপনি ডকুমেন্টেশনে ব্যবহৃত প্রযুক্তি সম্পর্কে আরও পড়তে পারেন।

এম্বেডিং কলাম তৈরি করুন

psql ব্যবহার করে ডাটাবেসের সাথে সংযোগ করুন এবং cymbal_products টেবিলে এমবেডিং ফাংশন ব্যবহার করে ভেক্টর ডেটা সহ একটি ভার্চুয়াল কলাম তৈরি করুন। প্রোডাক্ট_ডেসক্রিপশন কলাম থেকে সরবরাহ করা ডেটার উপর ভিত্তি করে এম্বেডিং ফাংশন Vertex AI থেকে ভেক্টর ডেটা প্রদান করে।

psql "host=$INSTANCE_IP user=postgres dbname=quickstart_db"

ডাটাবেস এক্সিকিউটের সাথে সংযোগ করার পরে psql সেশনে:

ALTER TABLE cymbal_products ADD COLUMN embedding vector GENERATED ALWAYS AS (embedding('text-embedding-004',product_description)) STORED;

কমান্ডটি ভার্চুয়াল কলাম তৈরি করবে এবং এটি ভেক্টর ডেটা দিয়ে পূরণ করবে।

প্রত্যাশিত কনসোল আউটপুট:

student@instance-1:~$ psql "host=$INSTANCE_IP user=postgres dbname=quickstart_db"
psql (13.11 (Debian 13.11-0+deb11u1), server 14.7)
WARNING: psql major version 13, server major version 14.
         Some psql features might not work.
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.

quickstart_db=> ALTER TABLE cymbal_products ADD COLUMN embedding vector GENERATED ALWAYS AS (embedding('text-embedding-004',product_description)) STORED;
ALTER TABLE
quickstart_db=> 

8. সাদৃশ্য অনুসন্ধান চালান

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

SQL ক্যোয়ারী একই psql কমান্ড লাইন ইন্টারফেস থেকে বা, বিকল্প হিসাবে, AlloyDB স্টুডিও থেকে কার্যকর করা যেতে পারে। যেকোন মাল্টিরো এবং জটিল আউটপুট AlloyDB স্টুডিওতে আরও ভাল দেখাতে পারে।

AlloyDB স্টুডিওতে সংযোগ করুন

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

ef4bfbcf0ed2ef3a.png

তারপরে বাম দিকে AlloyDB স্টুডিওতে ক্লিক করুন:

5c155cbcd7d43a1.png

Quickstart_db ডাটাবেস, ব্যবহারকারীর পোস্টগ্রেস চয়ন করুন এবং যখন আমরা ক্লাস্টার তৈরি করি তখন উল্লিখিত পাসওয়ার্ড প্রদান করুন। তারপর "প্রমাণিত করুন" বোতামে ক্লিক করুন।

432613065cac864f.png

এটি AlloyDB স্টুডিও ইন্টারফেস খুলবে। ডাটাবেসে কমান্ড চালানোর জন্য আপনি ডানদিকে "Editor 1" ট্যাবে ক্লিক করুন।

b36c28f8165119ca.png

এটি ইন্টারফেস খোলে যেখানে আপনি SQL কমান্ড চালাতে পারেন

cf43aa20f292797e.png

আপনি যদি কমান্ড লাইন psql ব্যবহার করতে পছন্দ করেন তাহলে বিকল্প রুট অনুসরণ করুন এবং আপনার VM SSH সেশন থেকে ডাটাবেসের সাথে সংযোগ করুন যেমনটি পূর্ববর্তী অধ্যায়ে বর্ণনা করা হয়েছে।

psql থেকে সাদৃশ্য অনুসন্ধান চালান

যদি আপনার ডাটাবেস সেশন সংযোগ বিচ্ছিন্ন হয়ে থাকে তাহলে psql বা AlloyDB স্টুডিও ব্যবহার করে আবার ডাটাবেসের সাথে সংযোগ করুন।

ডাটাবেসের সাথে সংযোগ করুন:

psql "host=$INSTANCE_IP user=postgres dbname=quickstart_db"

একটি ক্লায়েন্টের অনুরোধের সাথে সবচেয়ে ঘনিষ্ঠভাবে সম্পর্কিত উপলব্ধ পণ্যগুলির একটি তালিকা পেতে একটি ক্যোয়ারী চালান৷ ভেক্টর মান পেতে আমরা যে অনুরোধটি Vertex AI-তে পাঠাতে যাচ্ছি তা শোনাচ্ছে "এখানে কী ধরনের ফলের গাছ ভাল জন্মে?"

আমাদের অনুরোধের জন্য সবচেয়ে উপযুক্ত প্রথম 10টি আইটেম বেছে নেওয়ার জন্য আপনি যে প্রশ্নটি চালাতে পারেন তা এখানে রয়েছে:

SELECT
        cp.product_name,
        left(cp.product_description,80) as description,
        cp.sale_price,
        cs.zip_code,
        (cp.embedding <=> embedding('text-embedding-004','What kind of fruit trees grow well here?')::vector) as distance
FROM
        cymbal_products cp
JOIN cymbal_inventory ci on
        ci.uniq_id=cp.uniq_id
JOIN cymbal_stores cs on
        cs.store_id=ci.store_id
        AND ci.inventory>0
        AND cs.store_id = 1583
ORDER BY
        distance ASC
LIMIT 10;

এবং এখানে প্রত্যাশিত আউটপুট:

quickstart_db=> SELECT
        cp.product_name,
        left(cp.product_description,80) as description,
        cp.sale_price,
        cs.zip_code,
        (cp.embedding <=> embedding('text-embedding-004','What kind of fruit trees grow well here?')::vector) as distance
FROM
        cymbal_products cp
JOIN cymbal_inventory ci on
        ci.uniq_id=cp.uniq_id
JOIN cymbal_stores cs on
        cs.store_id=ci.store_id
        AND ci.inventory>0
        AND cs.store_id = 1583
ORDER BY
        distance ASC
LIMIT 10;
    product_name     |                                   description                                    | sale_price | zip_code |      distance       
---------------------+----------------------------------------------------------------------------------+------------+----------+---------------------
 Cherry Tree         | This is a beautiful cherry tree that will produce delicious cherries. It is an d |      75.00 |    93230 |   0.287184013172779
 Toyon               | This is a beautiful toyon tree that can grow to be over 20 feet tall. It is an e |      10.00 |    93230 | 0.30574073611569963
 Secateurs           | These secateurs are perfect for pruning small branches and vines.                |      15.00 |    93230 |  0.3264385326189635
 Trimming Shears     | These trimming shears are perfect for trimming hedges and bushes.                |      20.00 |    93230 | 0.33293036535756393
 Cypress Tree        | This is a beautiful cypress tree that will provide shade and privacy. It is an e |      75.00 |    93230 | 0.33485770716129326
 Madrone             | This is a beautiful madrona tree that can grow to be over 80 feet tall. It is an |      50.00 |    93230 |  0.3354408801293012
 California Redwood  | This is a beautiful redwood tree that can grow to be over 300 feet tall. It is a |    1000.00 |    93230 |  0.3427243109636263
 California Lilac    | This is a beautiful lilac tree that can grow to be over 10 feet tall. It is an d |       5.00 |    93230 |  0.3427628377929176
 California Sycamore | This is a beautiful sycamore tree that can grow to be over 100 feet tall. It is  |     300.00 |    93230 |  0.3430208475356905
 Maple Tree          | This is a beautiful maple tree that will produce colorful leaves in the fall. It |     100.00 |    93230 |  0.3432609589330091
(10 rows)

quickstart_db=> 

9. প্রতিক্রিয়া উন্নত করুন

আপনি কোয়েরির ফলাফল ব্যবহার করে একটি ক্লায়েন্ট অ্যাপ্লিকেশনের প্রতিক্রিয়া উন্নত করতে পারেন এবং ভার্টেক্স এআই জেনারেটিভ ফাউন্ডেশন ল্যাঙ্গুয়েজ মডেলের প্রম্পটের অংশ হিসাবে সরবরাহকৃত ক্যোয়ারী ফলাফল ব্যবহার করে একটি অর্থপূর্ণ আউটপুট প্রস্তুত করতে পারেন।

এটি অর্জন করতে আমরা ভেক্টর অনুসন্ধান থেকে আমাদের ফলাফলের সাথে একটি JSON তৈরি করার পরিকল্পনা করি, তারপর একটি অর্থপূর্ণ আউটপুট তৈরি করতে Vertex AI-তে একটি পাঠ্য LLM মডেলের জন্য একটি প্রম্পট হিসাবে জেনারেট করা JSON ব্যবহার করুন৷ প্রথম ধাপে আমরা JSON তৈরি করি, তারপর আমরা এটিকে Vertex AI স্টুডিওতে পরীক্ষা করি এবং শেষ ধাপে আমরা এটিকে একটি SQL স্টেটমেন্টে অন্তর্ভুক্ত করি যা একটি অ্যাপ্লিকেশনে ব্যবহার করা যেতে পারে।

JSON ফর্ম্যাটে আউটপুট তৈরি করুন

JSON ফর্ম্যাটে আউটপুট তৈরি করতে ক্যোয়ারী পরিবর্তন করুন এবং Vertex AI-তে পাস করার জন্য শুধুমাত্র একটি সারি ফেরত দিন

এখানে প্রশ্নের উদাহরণ হল:

WITH trees as (
SELECT
        cp.product_name,
        left(cp.product_description,80) as description,
        cp.sale_price,
        cs.zip_code,
        cp.uniq_id as product_id
FROM
        cymbal_products cp
JOIN cymbal_inventory ci on
        ci.uniq_id=cp.uniq_id
JOIN cymbal_stores cs on
        cs.store_id=ci.store_id
        AND ci.inventory>0
        AND cs.store_id = 1583
ORDER BY
        (cp.embedding <=> embedding('text-embedding-004','What kind of fruit trees grow well here?')::vector) ASC
LIMIT 1)
SELECT json_agg(trees) FROM trees;

এবং এখানে আউটপুটে প্রত্যাশিত JSON:

[{"product_name":"Cherry Tree","description":"This is a beautiful cherry tree that will produce delicious cherries. It is an d","sale_price":75.00,"zip_code":93230,"product_id":"d536e9e823296a2eba198e52dd23e712"}]

ভার্টেক্স এআই স্টুডিওতে প্রম্পট চালান

ভার্টেক্স এআই স্টুডিওতে জেনারেটিভ এআই টেক্সট মডেলের প্রম্পটের অংশ হিসেবে আমরা জেনারেট করা JSON ব্যবহার করতে পারি।

ক্লাউড কনসোলে ভার্টেক্স এআই স্টুডিও খুলুন।

e514b176aef7945e.png

54712e5ade7121f.png

এটি আপনাকে অতিরিক্ত API সক্ষম করতে বলতে পারে তবে আপনি অনুরোধটি উপেক্ষা করতে পারেন। আমাদের ল্যাব শেষ করার জন্য আমাদের কোনো অতিরিক্ত API-এর প্রয়োজন নেই।

আমরা যে প্রম্পটটি ব্যবহার করতে যাচ্ছি তা এখানে:

আপনি একজন বন্ধুত্বপূর্ণ উপদেষ্টা যিনি গ্রাহকের চাহিদার উপর ভিত্তি করে একটি পণ্য খুঁজে পেতে সাহায্য করেন।

ক্লায়েন্টের অনুরোধের ভিত্তিতে আমরা অনুসন্ধানের সাথে ঘনিষ্ঠভাবে সম্পর্কিত পণ্যগুলির একটি তালিকা লোড করেছি।

{"product_name":"name","description":"some description","sale_price":10,"zip_code": 10234, "produt_id": "02056727942aeb714dc9a23130654e" এর মতো মানগুলির তালিকা সহ JSON ফর্ম্যাটে তালিকা

এখানে পণ্য তালিকা:

[আমাদের JSON এর জন্য জায়গা]

গ্রাহক জিজ্ঞাসা করলেন, "এখানে কোন গাছ সবচেয়ে ভালো বাড়ছে?"

আপনাকে পণ্য, মূল্য এবং কিছু সম্পূরক তথ্য সম্বন্ধে প্রম্পট হিসাবে তথ্য দিতে হবে

এবং যখন আমরা আমাদের JSON মানগুলির সাথে এবং জেমিনি-1.5-ফ্ল্যাশ মডেল ব্যবহার করে প্রম্পট চালাই তখন ফলাফলটি এখানে রয়েছে:

30e5072cd2975685.png

এই উদাহরণে মডেল থেকে আমরা যে উত্তর পেয়েছি তা নিম্নরূপ। মনে রাখবেন যে সময়ের সাথে মডেল এবং পরামিতি পরিবর্তনের কারণে আপনার উত্তর ভিন্ন হতে পারে:

"আমি দেখতে পাচ্ছি আপনি এমন একটি গাছ খুঁজছেন যা আপনার এলাকায় বৃদ্ধি পায়। আপনার জিপ কোড, 93230 এর উপর ভিত্তি করে, চেরি গাছটি একটি দুর্দান্ত বিকল্প বলে মনে হচ্ছে!

এটি একটি সুন্দর গাছ হিসাবে বর্ণনা করা হয়েছে যা সুস্বাদু চেরি উত্পাদন করে। এটি বর্তমানে $75.00 এর জন্য বিক্রি হচ্ছে।

যদিও আপনার এলাকায় এর বৃদ্ধির হার সম্পর্কে আমার কাছে নির্দিষ্ট বিবরণ নেই, আমি আপনাকে বলতে পারি যে চেরি গাছগুলি সাধারণত ভাল-নিষ্কাশিত মাটি এবং পূর্ণ সূর্য পছন্দ করে।

সর্বোত্তম ফলাফল নিশ্চিত করতে, আমি একজন স্থানীয় নার্সারি বা বাগান বিশেষজ্ঞের সাথে পরামর্শ করার পরামর্শ দিই যিনি আপনার নির্দিষ্ট অবস্থান এবং মাটির অবস্থার জন্য আরও উপযোগী পরামর্শ প্রদান করতে পারেন। তারা আপনাকে আপনার প্রয়োজনের জন্য সর্বোত্তম বৈচিত্র্য চয়ন করতে এবং রোপণ এবং যত্নের পরামর্শ দিতে সহায়তা করতে পারে।"

PSQL এ প্রম্পট চালান

ডাটাবেসে সরাসরি SQL ব্যবহার করে একটি জেনারেটিভ মডেল থেকে একই প্রতিক্রিয়া পেতে আমরা Vertex AI-এর সাথে AlloyDB AI ইন্টিগ্রেশন ব্যবহার করতে পারি। কিন্তু জেমিনি-1.5-ফ্ল্যাশ মডেল ব্যবহার করতে আমাদের প্রথমে এটি নিবন্ধন করতে হবে।

সংস্করণ 1.3 এ এক্সটেনশন আপগ্রেড করুন। pSQL থেকে quickstart_db ডাটাবেসের সাথে সংযোগ করুন যেমন এটি আগে দেখানো হয়েছে (বা AlloyDB স্টুডিও ব্যবহার করুন) এবং চালান:

ALTER EXTENSION google_ml_integration UPDATE TO '1.3'

তারপরে আমাদের google_ml_integration.enable_model_support ডাটাবেস পতাকা "চালু" সেট করতে হবে। এটি সম্পাদন করতে আপনি AlloyDB ওয়েব কনসোল ইন্টারফেস ব্যবহার করতে পারেন বা নিম্নলিখিত gcloud কমান্ডটি চালাতে পারেন।

PROJECT_ID=$(gcloud config get-value project)
REGION=us-central1
ADBCLUSTER=alloydb-aip-01
gcloud beta alloydb instances update $ADBCLUSTER-pr \
  --database-flags google_ml_integration.enable_model_support=on \
  --region=$REGION \
  --cluster=$ADBCLUSTER \
  --project=$PROJECT_ID \
  --update-mode=FORCE_APPLY

কমান্ডটি ব্যাকগ্রাউন্ডে কার্যকর হতে প্রায় 3-5 মিনিট সময় নেয়। তারপর আপনি psql সেশনে বা quickstart_db ডাটাবেসের সাথে সংযুক্ত AlloyDB Studio ব্যবহার করে নতুন পতাকা যাচাই করতে পারেন।

show google_ml_integration.enable_model_support;

psql সেশন থেকে প্রত্যাশিত আউটপুট "চালু":

postgres=> show google_ml_integration.enable_model_support;
 google_ml_integration.enable_model_support 
--------------------------------------------
 on
(1 row)

তারপর আমাদের দুটি মডেল নিবন্ধন করতে হবে। প্রথমটি ইতিমধ্যে ব্যবহৃত টেক্সট-এমবেডিং-004 মডেল। যেহেতু আমরা মডেল নিবন্ধন ক্ষমতা সক্ষম করেছি তাই এটি নিবন্ধিত করা প্রয়োজন৷

মডেলটি psql বা AlloyDB স্টুডিওতে চালানোর জন্য নিম্নলিখিত কোডটি নিবন্ধন করুন:

CALL
  google_ml.create_model(
    model_id => 'text-embedding-004',
    model_provider => 'google',
    model_qualified_name => 'text-embedding-004',
    model_type => 'text_embedding',
    model_auth_type => 'alloydb_service_agent_iam',
    model_in_transform_fn => 'google_ml.vertexai_text_embedding_input_transform',
    model_out_transform_fn => 'google_ml.vertexai_text_embedding_output_transform');

এবং পরবর্তী মডেলটি আমাদের নিবন্ধন করতে হবে তা হল gemini-1.5-flash-001 যা ব্যবহারকারী-বান্ধব আউটপুট তৈরি করতে ব্যবহার করা হবে।

CALL
  google_ml.create_model(
    model_id => 'gemini-1.5-flash-001',
    model_request_url => 'https://$REGION-aiplatform.googleapis.com/v1/projects/$PROJECT_ID/locations/$REGION/publishers/google/models/gemini-1.5-flash-001:streamGenerateContent',
    model_provider => 'google',
    model_auth_type => 'alloydb_service_agent_iam');

আপনি সর্বদা google_ml.model_info_view থেকে তথ্য নির্বাচন করে নিবন্ধিত মডেলের তালিকা যাচাই করতে পারেন।

select model_id,model_type from google_ml.model_info_view;

এখানে নমুনা আউটপুট আছে

quickstart_db=> select model_id,model_type from google_ml.model_info_view;
        model_id         |   model_type   
-------------------------+----------------
 textembedding-gecko     | text_embedding
 textembedding-gecko@001 | text_embedding
 text-embedding-004      | text_embedding
 gemini-1.5-flash-001    | generic
(4 rows)

এখন আমরা এসকিউএল ব্যবহার করে জেনারেটিভ এআই টেক্সট মডেলের প্রম্পটের অংশ হিসাবে এটি সরবরাহ করতে একটি সাবকোয়েরি JSON-এ জেনারেট করা ব্যবহার করতে পারি।

psql বা AlloyDB স্টুডিও সেশনে ডাটাবেসে ক্যোয়ারী চালান

WITH trees AS (
SELECT
        cp.product_name,
        cp.product_description AS description,
        cp.sale_price,
        cs.zip_code,
        cp.uniq_id AS product_id
FROM
        cymbal_products cp
JOIN cymbal_inventory ci ON
        ci.uniq_id = cp.uniq_id
JOIN cymbal_stores cs ON
        cs.store_id = ci.store_id
        AND ci.inventory>0
        AND cs.store_id = 1583
ORDER BY
        (cp.embedding <=> embedding('text-embedding-004',
        'What kind of fruit trees grow well here?')::vector) ASC
LIMIT 1),
prompt AS (
SELECT
        'You are a friendly advisor helping to find a product based on the customer''s needs.
Based on the client request we have loaded a list of products closely related to search.
The list in JSON format with list of values like {"product_name":"name","product_description":"some description","sale_price":10}
Here is the list of products:' || json_agg(trees) || 'The customer asked "What kind of fruit trees grow well here?"
You should give information about the product, price and some supplemental information' AS prompt_text
FROM
        trees),
response AS (
SELECT
        json_array_elements(google_ml.predict_row( model_id =>'gemini-1.5-flash-001',
        request_body => json_build_object('contents',
        json_build_object('role',
        'user',
        'parts',
        json_build_object('text',
        prompt_text)))))->'candidates'->0->'content'->'parts'->0->'text' AS resp
FROM
        prompt)
SELECT
        string_agg(resp::text,
        ' ')
FROM
        response;

এবং এখানে প্রত্যাশিত আউটপুট. মডেল সংস্করণ এবং পরামিতিগুলির উপর নির্ভর করে আপনার আউটপুট ভিন্ন হতে পারে।

--------------------------------------------------------------------------------------------------------
 "I" " see you're interested in fruit trees! Based on your location, I found" " one great option:\n\n**Cherry Tree:** \n\nThis beautiful cherry tree will" " produce delicious cherries. It's a deciduous tree, meaning it loses its leaves in the fall, and can grow up to 15 feet tall. The" " leaves are a vibrant dark green in the summer, turning a beautiful red in the fall. \n\nCherry trees are known for their beauty and ability to provide shade" " and privacy. They prefer a cool, moist climate and sandy soil, making them a good fit for your area. \n\nThe Cherry Tree is currently on sale for $75.00.\n\nWould you like to know more about" " the Cherry Tree, or are you interested in exploring other fruit tree options? \n" ""
(1 row)

10. পরিবেশ পরিষ্কার করুন

আপনি ল্যাব দিয়ে সম্পন্ন হলে AlloyDB দৃষ্টান্ত এবং ক্লাস্টার ধ্বংস করুন

AlloyDB ক্লাস্টার এবং সমস্ত দৃষ্টান্ত মুছুন

ক্লাস্টারটি অপশন ফোর্স দিয়ে ধ্বংস করা হয় যা ক্লাস্টারের সাথে সম্পর্কিত সমস্ত দৃষ্টান্ত মুছে দেয়।

ক্লাউড শেলে প্রকল্প এবং পরিবেশ ভেরিয়েবলগুলি সংজ্ঞায়িত করুন যদি আপনি সংযোগ বিচ্ছিন্ন হয়ে থাকেন এবং সমস্ত পূর্ববর্তী সেটিংস হারিয়ে যায়:

gcloud config set project <your project id>
export REGION=us-central1
export ADBCLUSTER=alloydb-aip-01
export PROJECT_ID=$(gcloud config get-value project)

ক্লাস্টার মুছুন:

gcloud alloydb clusters delete $ADBCLUSTER --region=$REGION --force

প্রত্যাশিত কনসোল আউটপুট:

student@cloudshell:~ (test-project-001-402417)$ gcloud alloydb clusters delete $ADBCLUSTER --region=$REGION --force
All of the cluster data will be lost when the cluster is deleted.

Do you want to continue (Y/n)?  Y

Operation ID: operation-1697820178429-6082890a0b570-4a72f7e4-4c5df36f
Deleting cluster...done.   

AlloyDB ব্যাকআপ মুছুন

ক্লাস্টারের জন্য সমস্ত AlloyDB ব্যাকআপ মুছুন:

for i in $(gcloud alloydb backups list --filter="CLUSTER_NAME: projects/$PROJECT_ID/locations/$REGION/clusters/$ADBCLUSTER" --format="value(name)" --sort-by=~createTime) ; do gcloud alloydb backups delete $(basename $i) --region $REGION --quiet; done

প্রত্যাশিত কনসোল আউটপুট:

student@cloudshell:~ (test-project-001-402417)$ for i in $(gcloud alloydb backups list --filter="CLUSTER_NAME: projects/$PROJECT_ID/locations/$REGION/clusters/$ADBCLUSTER" --format="value(name)" --sort-by=~createTime) ; do gcloud alloydb backups delete $(basename $i) --region $REGION --quiet; done
Operation ID: operation-1697826266108-60829fb7b5258-7f99dc0b-99f3c35f
Deleting backup...done.                                                                                                                                                                                                                                                            

এখন আমরা আমাদের VM ধ্বংস করতে পারি

GCE VM মুছুন

ক্লাউড শেল চালান:

export GCEVM=instance-1
export ZONE=us-central1-a
gcloud compute instances delete $GCEVM \
    --zone=$ZONE \
    --quiet

প্রত্যাশিত কনসোল আউটপুট:

student@cloudshell:~ (test-project-001-402417)$ export GCEVM=instance-1
export ZONE=us-central1-a
gcloud compute instances delete $GCEVM \
    --zone=$ZONE \
    --quiet
Deleted 

11. অভিনন্দন

কোডল্যাব সম্পূর্ণ করার জন্য অভিনন্দন।

আমরা কভার করেছি কি

  • কিভাবে AlloyDB ক্লাস্টার এবং প্রাথমিক উদাহরণ স্থাপন করবেন
  • কিভাবে Google Compute Engine VM থেকে AlloyDB এর সাথে সংযোগ করবেন
  • কিভাবে ডাটাবেস তৈরি করবেন এবং AlloyDB AI সক্ষম করবেন
  • কিভাবে ডাটাবেসে ডাটা লোড করবেন
  • AlloyDB-তে ভার্টেক্স এআই এমবেডিং মডেল কীভাবে ব্যবহার করবেন
  • Vertex AI জেনারেটিভ মডেল ব্যবহার করে ফলাফলকে কিভাবে সমৃদ্ধ করা যায়

12. সমীক্ষা

আউটপুট:

আপনি কিভাবে এই টিউটোরিয়াল ব্যবহার করবেন?

শুধুমাত্র এটি মাধ্যমে পড়ুন এটি পড়ুন এবং ব্যায়াম সম্পূর্ণ করুন