১. ভূমিকা
এই কোডল্যাবে আপনি শিখবেন কীভাবে ভেক্টর সার্চের সাথে ভার্টেক্স এআই এমবেডিংস-এর সমন্বয় ঘটিয়ে MySQL ভার্টেক্স এআই ইন্টিগ্রেশনের জন্য ক্লাউড এসকিউএল ব্যবহার করতে হয়।

পূর্বশর্ত
- গুগল ক্লাউড, কনসোল সম্পর্কে প্রাথমিক ধারণা
- কমান্ড লাইন ইন্টারফেস এবং ক্লাউড শেলে প্রাথমিক দক্ষতা
আপনি যা শিখবেন
- কীভাবে একটি Cloud SQL for PostgreSQL ইনস্ট্যান্স স্থাপন করবেন
- কীভাবে ডাটাবেস তৈরি করবেন এবং ক্লাউড এসকিউএল এআই ইন্টিগ্রেশন সক্রিয় করবেন
- ডাটাবেসে ডেটা লোড করার পদ্ধতি
- ক্লাউড এসকিউএল স্টুডিও কীভাবে ব্যবহার করবেন
- ক্লাউড SQL-এ ভার্টেক্স এআই এমবেডিং মডেল কীভাবে ব্যবহার করবেন
- ভার্টেক্স এআই স্টুডিও কীভাবে ব্যবহার করবেন
- ভার্টেক্স এআই জেনারেটিভ মডেল ব্যবহার করে ফলাফলকে কীভাবে আরও সমৃদ্ধ করা যায়
- ভেক্টর ইনডেক্স ব্যবহার করে কীভাবে পারফরম্যান্স উন্নত করা যায়
আপনার যা যা লাগবে
- একটি গুগল ক্লাউড অ্যাকাউন্ট এবং গুগল ক্লাউড প্রজেক্ট
- ক্রোমের মতো একটি ওয়েব ব্রাউজার যা গুগল ক্লাউড কনসোল এবং ক্লাউড শেল সমর্থন করে।
২. সেটআপ এবং প্রয়োজনীয়তা
প্রজেক্ট সেটআপ
- Google Cloud Console- এ সাইন-ইন করুন। যদি আপনার আগে থেকে Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তবে আপনাকে একটি তৈরি করতে হবে।
কর্মক্ষেত্র বা শিক্ষা প্রতিষ্ঠানের অ্যাকাউন্টের পরিবর্তে ব্যক্তিগত অ্যাকাউন্ট ব্যবহার করুন।
- একটি নতুন প্রজেক্ট তৈরি করুন অথবা বিদ্যমান কোনো প্রজেক্ট পুনরায় ব্যবহার করুন। গুগল ক্লাউড কনসোলে একটি নতুন প্রজেক্ট তৈরি করতে, হেডারে থাকা 'Select a project' বোতামটিতে ক্লিক করুন, যা একটি পপ-আপ উইন্ডো খুলবে।

'প্রজেক্ট নির্বাচন করুন' উইন্ডোতে 'নতুন প্রজেক্ট' বোতামটি চাপুন, যা নতুন প্রজেক্টের জন্য একটি ডায়ালগ বক্স খুলবে।

ডায়ালগ বক্সে আপনার পছন্দের প্রজেক্টের নাম দিন এবং অবস্থান নির্বাচন করুন।

- প্রজেক্টের নামটি এই প্রকল্পের অংশগ্রহণকারীদের জন্য প্রদর্শিত নাম। প্রজেক্টের নামটি গুগল এপিআই দ্বারা ব্যবহৃত হয় না এবং এটি যেকোনো সময় পরিবর্তন করা যেতে পারে।
- প্রজেক্ট আইডি সমস্ত গুগল ক্লাউড প্রজেক্ট জুড়ে অনন্য এবং অপরিবর্তনীয় (একবার সেট করার পর এটি পরিবর্তন করা যায় না)। গুগল ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য আইডি তৈরি করে, কিন্তু আপনি এটি কাস্টমাইজ করতে পারেন। তৈরি করা আইডিটি আপনার পছন্দ না হলে, আপনি এলোমেলোভাবে আরেকটি তৈরি করতে পারেন অথবা সেটির প্রাপ্যতা যাচাই করার জন্য আপনার নিজের আইডি দিতে পারেন। বেশিরভাগ কোডল্যাবে, আপনাকে আপনার প্রজেক্ট আইডি উল্লেখ করতে হবে, যা সাধারণত PROJECT_ID নামক প্লেসহোল্ডার দ্বারা চিহ্নিত করা হয়।
- আপনার অবগতির জন্য জানানো যাচ্ছে যে, তৃতীয় একটি ভ্যালু রয়েছে, যা হলো প্রজেক্ট নম্বর , এবং কিছু এপিআই এটি ব্যবহার করে থাকে। ডকুমেন্টেশনে এই তিনটি ভ্যালু সম্পর্কে আরও বিস্তারিত জানুন।
বিলিং সক্ষম করুন
বিলিং চালু করার জন্য আপনার কাছে দুটি বিকল্প আছে। আপনি হয় আপনার ব্যক্তিগত বিলিং অ্যাকাউন্ট ব্যবহার করতে পারেন অথবা নিম্নলিখিত ধাপগুলো অনুসরণ করে ক্রেডিট রিডিম করতে পারেন।
$5 গুগল ক্লাউড ক্রেডিট রিডিম করুন (ঐচ্ছিক)
এই কর্মশালাটি চালানোর জন্য আপনার একটি বিলিং অ্যাকাউন্ট প্রয়োজন, যাতে কিছু ব্যালেন্স আছে। আপনি যদি আপনার নিজস্ব বিলিং ব্যবহার করার পরিকল্পনা করেন, তবে এই ধাপটি বাদ দিতে পারেন।
- এই লিঙ্কে ক্লিক করুন এবং আপনার ব্যক্তিগত গুগল অ্যাকাউন্ট দিয়ে সাইন ইন করুন।
- আপনি এইরকম কিছু দেখতে পাবেন:

- ‘আপনার ক্রেডিট অ্যাক্সেস করতে এখানে ক্লিক করুন ’ বোতামটিতে ক্লিক করুন। এটি আপনাকে আপনার বিলিং প্রোফাইল সেট আপ করার একটি পৃষ্ঠায় নিয়ে যাবে। যদি আপনার সামনে একটি ফ্রি ট্রায়াল সাইন আপ স্ক্রিন আসে, তাহলে বাতিল করুন এবং বিলিং লিঙ্ক করতে এগিয়ে যান।

- নিশ্চিত করুন-এ ক্লিক করুন। আপনি এখন একটি গুগল ক্লাউড প্ল্যাটফর্ম ট্রায়াল বিলিং অ্যাকাউন্টের সাথে সংযুক্ত হয়েছেন।

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

বিকল্পভাবে আপনি প্রথমে G এবং তারপর S চাপতে পারেন। আপনি যদি গুগল ক্লাউড কনসোলের মধ্যে থাকেন, তাহলে এই ক্রমটি ক্লাউড শেল সক্রিয় করবে অথবা এই লিঙ্কটি ব্যবহার করুন।
পরিবেশটি প্রস্তুত করতে এবং এর সাথে সংযোগ স্থাপন করতে মাত্র কয়েক মুহূর্ত সময় লাগবে। এটি শেষ হলে, আপনি এইরকম কিছু দেখতে পাবেন:

এই ভার্চুয়াল মেশিনটিতে আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুলস লোড করা আছে। এটি একটি স্থায়ী ৫ জিবি হোম ডিরেক্টরি প্রদান করে এবং গুগল ক্লাউডে চলে, যা নেটওয়ার্ক পারফরম্যান্স ও অথেনটিকেশনকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার সমস্ত কাজ একটি ব্রাউজারের মধ্যেই করা যাবে। আপনাকে কিছুই ইনস্টল করতে হবে না।
৩. শুরু করার আগে
এপিআই সক্ষম করুন
Cloud SQL , Compute Engine , Networking services , এবং Vertex AI ব্যবহার করার জন্য, আপনাকে আপনার Google Cloud প্রজেক্টে এগুলোর নিজ নিজ API সক্রিয় করতে হবে।
ক্লাউড শেল টার্মিনালের ভিতরে, নিশ্চিত করুন যে আপনার প্রজেক্ট আইডি সেটআপ করা আছে:
gcloud config set project [YOUR-PROJECT-ID]
PROJECT_ID এনভায়রনমেন্ট ভেরিয়েবল সেট করুন:
PROJECT_ID=$(gcloud config get-value project)
সকল প্রয়োজনীয় পরিষেবা সক্রিয় করুন:
gcloud services enable sqladmin.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 sqladmin.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.
এপিআইগুলো চালু করা হচ্ছে
- ক্লাউড এসকিউএল অ্যাডমিন এপিআই (
sqladmin.googleapis.com) আপনাকে প্রোগ্রাম্যাটিকভাবে ক্লাউড এসকিউএল ইনস্ট্যান্স তৈরি, কনফিগার এবং পরিচালনা করার সুযোগ দেয়। এটি গুগলের সম্পূর্ণভাবে পরিচালিত রিলেশনাল ডেটাবেস পরিষেবার (যা MySQL, PostgreSQL, এবং SQL Server সমর্থন করে) জন্য কন্ট্রোল প্লেন প্রদান করে এবং প্রভিশনিং, ব্যাকআপ, হাই অ্যাভেইলেবিলিটি ও স্কেলিং-এর মতো কাজগুলো পরিচালনা করে। - কম্পিউট ইঞ্জিন এপিআই (
compute.googleapis.com) আপনাকে ভার্চুয়াল মেশিন (VM), পারসিস্টেন্ট ডিস্ক এবং নেটওয়ার্ক সেটিংস তৈরি ও পরিচালনা করার সুযোগ দেয়। এটি আপনার ওয়ার্কলোড চালানোর জন্য এবং অনেক পরিচালিত পরিষেবার অন্তর্নিহিত পরিকাঠামো হোস্ট করার জন্য প্রয়োজনীয় মূল ইনফ্রাস্ট্রাকচার-অ্যাজ-এ-সার্ভিস (IaaS) ভিত্তি প্রদান করে। - ক্লাউড রিসোর্স ম্যানেজার এপিআই (
cloudresourcemanager.googleapis.com) আপনাকে প্রোগ্রাম্যাটিকভাবে আপনার গুগল ক্লাউড প্রজেক্টের মেটাডেটা এবং কনফিগারেশন পরিচালনা করার সুযোগ দেয়। এটি আপনাকে রিসোর্স সংগঠিত করতে, আইডেন্টিটি অ্যান্ড অ্যাক্সেস ম্যানেজমেন্ট (IAM) পলিসি পরিচালনা করতে এবং প্রজেক্টের স্তরবিন্যাস জুড়ে অনুমতি যাচাই করতে সক্ষম করে। - সার্ভিস নেটওয়ার্কিং এপিআই (
servicenetworking.googleapis.com) আপনাকে আপনার ভার্চুয়াল প্রাইভেট ক্লাউড (VPC) নেটওয়ার্ক এবং গুগলের পরিচালিত পরিষেবাগুলির মধ্যে ব্যক্তিগত সংযোগ স্থাপন স্বয়ংক্রিয় করতে সাহায্য করে। AlloyDB-এর মতো পরিষেবাগুলির জন্য ব্যক্তিগত আইপি অ্যাক্সেস স্থাপন করতে এটি বিশেষভাবে প্রয়োজন, যাতে তারা আপনার অন্যান্য রিসোর্সগুলির সাথে নিরাপদে যোগাযোগ করতে পারে। - ভার্টেক্স এআই এপিআই (
aiplatform.googleapis.com) আপনার অ্যাপ্লিকেশনগুলোকে মেশিন লার্নিং মডেল তৈরি, স্থাপন এবং স্কেল করতে সক্ষম করে। এটি গুগল ক্লাউডের সমস্ত এআই পরিষেবার জন্য একটি সমন্বিত ইন্টারফেস প্রদান করে, যার মধ্যে জেনারেটিভ এআই মডেল (যেমন জেমিনি) এবং কাস্টম মডেল প্রশিক্ষণের সুবিধাও রয়েছে।
৪. একটি ক্লাউড এসকিউএল ইনস্ট্যান্স তৈরি করুন
Vertex AI-এর সাথে ডাটাবেস ইন্টিগ্রেশন সহ ক্লাউড SQL ইনস্ট্যান্স তৈরি করুন।
ডাটাবেস পাসওয়ার্ড তৈরি করুন
ডিফল্ট ডাটাবেস ব্যবহারকারীর জন্য পাসওয়ার্ড নির্ধারণ করুন। আপনি নিজের পাসওয়ার্ড নির্ধারণ করতে পারেন অথবা একটি র্যান্ডম ফাংশন ব্যবহার করে তা তৈরি করতে পারেন:
export CLOUDSQL_PASSWORD=`openssl rand -hex 12`
পাসওয়ার্ডের জন্য তৈরি হওয়া মানটি লক্ষ্য করুন:
echo $CLOUDSQL_PASSWORD
ক্লাউড এসকিউএল ফর মাইএসকিউএল ইনস্ট্যান্স তৈরি করুন
একটি ইনস্ট্যান্স তৈরি করার সময় cloudsql_vector ফ্ল্যাগটি সক্রিয় করা যেতে পারে। ভেক্টর সাপোর্ট বর্তমানে MySQL 8.0 R20241208.01_00 বা তার পরবর্তী সংস্করণগুলোর জন্য উপলব্ধ।
ক্লাউড শেল সেশনে নিম্নলিখিতটি সম্পাদন করুন:
gcloud sql instances create my-cloudsql-instance \
--database-version=MYSQL_8_4 \
--tier=db-custom-2-8192 \
--region=us-central1 \
--enable-google-ml-integration \
--edition=ENTERPRISE \
--root-password=$CLOUDSQL_PASSWORD
আমরা ক্লাউড শেল থেকে আমাদের সংযোগ যাচাই করতে পারি।
gcloud sql connect my-cloudsql-instance --user=root
কমান্ডটি চালান এবং সংযোগের জন্য প্রস্তুত হলে প্রম্পটে আপনার পাসওয়ার্ড দিন।
প্রত্যাশিত আউটপুট:
$gcloud sql connect my-cloudsql-instance --user=root Allowlisting your IP for incoming connection for 5 minutes...done. Connecting to database with SQL user [root].Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 71 Server version: 8.4.4-google (Google) Copyright (c) 2000, 2025, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
আপাতত mysql সেশন থেকে বের হওয়ার জন্য ctrl+d কিবোর্ড শর্টকাট ব্যবহার করুন অথবা exit কমান্ডটি চালান।
exit
ভার্টেক্স এআই ইন্টিগ্রেশন সক্ষম করুন
Vertex AI ইন্টিগ্রেশন ব্যবহার করার জন্য অভ্যন্তরীণ ক্লাউড SQL পরিষেবা অ্যাকাউন্টকে প্রয়োজনীয় বিশেষাধিকার প্রদান করুন।
ক্লাউড এসকিউএল অভ্যন্তরীণ পরিষেবা অ্যাকাউন্টের ইমেলটি খুঁজে বের করুন এবং এটিকে একটি ভেরিয়েবল হিসেবে এক্সপোর্ট করুন।
SERVICE_ACCOUNT_EMAIL=$(gcloud sql instances describe my-cloudsql-instance --format="value(serviceAccountEmailAddress)")
echo $SERVICE_ACCOUNT_EMAIL
ক্লাউড SQL পরিষেবা অ্যাকাউন্টে Vertex AI-কে অ্যাক্সেস দিন:
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$SERVICE_ACCOUNT_EMAIL" \
--role="roles/aiplatform.user"
ইনস্ট্যান্স তৈরি এবং কনফিগারেশন সম্পর্কে আরও জানতে এখানে ক্লাউড এসকিউএল ডকুমেন্টেশন পড়ুন।
৫. ডাটাবেস প্রস্তুত করুন
এখন আমাদের একটি ডাটাবেস তৈরি করতে হবে এবং ভেক্টর সাপোর্ট সক্রিয় করতে হবে।
ডাটাবেস তৈরি করুন
`quickstart_db` নামে একটি ডাটাবেস তৈরি করুন। এটি করার জন্য আমাদের কাছে বিভিন্ন বিকল্প রয়েছে, যেমন কমান্ড লাইন ডাটাবেস ক্লায়েন্ট (mySQL-এর জন্য `mysql`-এর মতো), SDK বা ক্লাউড SQL স্টুডিও। আমরা ডাটাবেস তৈরির জন্য SDK (gcloud) ব্যবহার করব।
ক্লাউড শেলে ডাটাবেস তৈরি করার জন্য কমান্ডটি চালান।
gcloud sql databases create quickstart_db --instance=my-cloudsql-instance
৬. ডেটা লোড করুন
এখন আমাদের ডাটাবেসে অবজেক্ট তৈরি করতে হবে এবং ডেটা লোড করতে হবে। আমরা কাল্পনিক সিম্বাল স্টোরের ডেটা ব্যবহার করতে যাচ্ছি। ডেটাগুলো SQL (স্কিমার জন্য) এবং CSV (ডেটার জন্য) ফরম্যাটে উপলব্ধ আছে।
ডাটাবেসের সাথে সংযোগ স্থাপন, সমস্ত অবজেক্ট তৈরি এবং ডেটা লোড করার জন্য ক্লাউড শেল হবে আমাদের প্রধান পরিবেশ।
প্রথমে আমাদের ক্লাউড SQL ইনস্ট্যান্সের জন্য অনুমোদিত নেটওয়ার্কের তালিকায় আমাদের ক্লাউড শেল পাবলিক আইপি যোগ করতে হবে। ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud sql instances patch my-cloudsql-instance --authorized-networks=$(curl ifconfig.me)
যদি আপনার সেশন হারিয়ে যায়, রিসেট হয়ে যায় অথবা আপনি অন্য কোনো টুল থেকে কাজ করেন, তাহলে আপনার CLOUDSQL_PASSWORD ভেরিয়েবলটি আবার এক্সপোর্ট করুন:
export CLOUDSQL_PASSWORD=...your password defined for the instance...
এখন আমরা আমাদের ডাটাবেসে সমস্ত প্রয়োজনীয় অবজেক্ট তৈরি করতে পারি। এটি করার জন্য আমরা MySQL-এর mysql ইউটিলিটি এবং curl ইউটিলিটি একত্রে ব্যবহার করব, যা পাবলিক সোর্স থেকে ডেটা সংগ্রহ করে।
ক্লাউড শেলে নিম্নলিখিতটি চালান:
export INSTANCE_IP=$(gcloud sql instances describe my-cloudsql-instance --format="value(ipAddresses.ipAddress)")
curl -LJ https://raw.githubusercontent.com/GoogleCloudPlatform/devrel-demos/main/infrastructure/cymbal-store-embeddings/cymbal_mysql_schema.sql | mysql --host=$INSTANCE_IP --user=root --password=$CLOUDSQL_PASSWORD quickstart_db
আগের কমান্ডে আমরা ঠিক কী করেছিলাম? আমরা আমাদের ডাটাবেসের সাথে সংযোগ স্থাপন করে ডাউনলোড করা SQL কোডটি এক্সিকিউট করেছিলাম, যা টেবিল, ইনডেক্স এবং সিকোয়েন্স তৈরি করেছিল।
পরবর্তী ধাপ হলো cymbal_products ডেটা লোড করা। এর জন্য আমরা একই curl এবং mysql ইউটিলিটিগুলো ব্যবহার করি।
curl -LJ https://raw.githubusercontent.com/GoogleCloudPlatform/devrel-demos/main/infrastructure/cymbal-store-embeddings/cymbal_products.csv | mysql --enable-local-infile --host=$INSTANCE_IP --user=root --password=$CLOUDSQL_PASSWORD quickstart_db -e "LOAD DATA LOCAL INFILE '/dev/stdin' INTO TABLE cymbal_products FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n' IGNORE 1 LINES;"
তারপর আমরা cymbal_stores নিয়ে আলোচনা চালিয়ে যাব।
curl -LJ https://raw.githubusercontent.com/GoogleCloudPlatform/devrel-demos/main/infrastructure/cymbal-store-embeddings/cymbal_stores.csv | mysql --enable-local-infile --host=$INSTANCE_IP --user=root --password=$CLOUDSQL_PASSWORD quickstart_db -e "LOAD DATA LOCAL INFILE '/dev/stdin' INTO TABLE cymbal_stores FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n' IGNORE 1 LINES;"
এবং এর সাথে রয়েছে সিম্বাল ইনভেন্টরি, যেখানে প্রতিটি দোকানে থাকা প্রতিটি পণ্যের সংখ্যা উল্লেখ থাকে।
curl -LJ https://raw.githubusercontent.com/GoogleCloudPlatform/devrel-demos/main/infrastructure/cymbal-store-embeddings/cymbal_inventory.csv | mysql --enable-local-infile --host=$INSTANCE_IP --user=root --password=$CLOUDSQL_PASSWORD quickstart_db -e "LOAD DATA LOCAL INFILE '/dev/stdin' INTO TABLE cymbal_inventory FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n' IGNORE 1 LINES;"
আপনার কাছে যদি ক্লাউড কনসোলে উপলব্ধ ক্লাউড এসকিউএল ইম্পোর্ট টুলের সাথে সামঞ্জস্যপূর্ণ নিজস্ব নমুনা ডেটা এবং সিএসভি ফাইল থাকে, তাহলে আপনি উপস্থাপিত পদ্ধতির পরিবর্তে সেটি ব্যবহার করতে পারেন।
৭. এমবেডিং তৈরি করুন
পরবর্তী পদক্ষেপ হলো গুগল ভার্টেক্স এআই-এর টেক্সটএম্বেডিং-০০৫ মডেল ব্যবহার করে আমাদের পণ্যের বিবরণের জন্য এম্বেডিং তৈরি করা এবং সেগুলোকে cymbal_products টেবিলের নতুন কলামে সংরক্ষণ করা।
ভেক্টর ডেটা সংরক্ষণ করার জন্য আমাদের ক্লাউড এসকিউএল ইনস্ট্যান্সে ভেক্টর কার্যকারিতা সক্রিয় করতে হবে। ক্লাউড শেলে এটি চালান:
gcloud sql instances patch my-cloudsql-instance \
--database-flags=cloudsql_vector=on
ডাটাবেসে সংযোগ করুন:
mysql --host=$INSTANCE_IP --user=root --password=$CLOUDSQL_PASSWORD quickstart_db
এবং এমবেডিং ফাংশন ব্যবহার করে আমাদের cymbal_products টেবিলে একটি নতুন এমবেডিং কলাম তৈরি করুন। ঐ নতুন কলামটি product_description কলামের টেক্সটের উপর ভিত্তি করে ভেক্টর এমবেডিংগুলো ধারণ করবে।
ALTER TABLE cymbal_products ADD COLUMN embedding vector(768) using varbinary;
UPDATE cymbal_products SET embedding = mysql.ml_embedding('text-embedding-005', product_description);
২০০০টি সারির জন্য ভেক্টর এমবেডিং তৈরি করতে সাধারণত ৫ মিনিটেরও কম সময় লাগে, তবে কখনও কখনও কিছুটা বেশি সময় লাগতে পারে এবং প্রায়শই এটি আরও দ্রুত শেষ হয়।
৮. সাদৃশ্য অনুসন্ধান চালান
এখন আমরা একই এমবেডিং মডেল ব্যবহার করে বর্ণনাগুলোর জন্য গণনা করা ভেক্টর মান এবং আমাদের অনুরোধের জন্য তৈরি করা ভেক্টর মানের উপর ভিত্তি করে সাদৃশ্য অনুসন্ধানের মাধ্যমে আমাদের সার্চটি চালাতে পারি।
SQL কোয়েরিটি একই কমান্ড লাইন ইন্টারফেস থেকে অথবা বিকল্প হিসেবে ক্লাউড SQL স্টুডিও থেকে চালানো যেতে পারে। যেকোনো একাধিক সারি এবং জটিল কোয়েরি ক্লাউড SQL স্টুডিওতে পরিচালনা করা শ্রেয়।
একজন ব্যবহারকারী তৈরি করুন
আমাদের এমন একজন নতুন ব্যবহারকারী প্রয়োজন যিনি ক্লাউড এসকিউএল স্টুডিও ব্যবহার করতে পারবেন। আমরা রুট ব্যবহারকারীর জন্য ব্যবহৃত পাসওয়ার্ডটি ব্যবহার করে 'স্টুডেন্ট' নামে একটি বিল্ট-ইন টাইপের ব্যবহারকারী তৈরি করতে যাচ্ছি।
ক্লাউড শেলে নিম্নলিখিতটি চালান:
gcloud sql users create student --instance=my-cloudsql-instance --password=$CLOUDSQL_PASSWORD --host=%
ক্লাউড এসকিউএল স্টুডিও শুরু করুন
কনসোলে আমরা আগে তৈরি করা ক্লাউড এসকিউএল ইনস্ট্যান্সটিতে ক্লিক করুন।

যখন এটি খুলবে, ডান প্যানেলে আমরা ক্লাউড এসকিউএল স্টুডিও দেখতে পাব। সেটিতে ক্লিক করুন।

এটি একটি ডায়ালগ বক্স খুলবে যেখানে আপনাকে ডেটাবেসের নাম এবং আপনার পরিচয়পত্র প্রদান করতে হবে:
- ডাটাবেস: quickstart_db
- ব্যবহারকারী: শিক্ষার্থী
- পাসওয়ার্ড: ব্যবহারকারীর জন্য আপনার লিখে রাখা পাসওয়ার্ড।
এবং "AUTHENTICATE" বোতামটিতে ক্লিক করুন।

এটি পরবর্তী উইন্ডোটি খুলবে, যেখানে আপনি SQL এডিটর খোলার জন্য ডানদিকের "এডিটর" ট্যাবে ক্লিক করবেন।

এখন আমরা আমাদের কোয়েরিগুলো চালানোর জন্য প্রস্তুত।
কোয়েরি চালান
ক্লায়েন্টের অনুরোধের সাথে সবচেয়ে ঘনিষ্ঠভাবে সম্পর্কিত উপলব্ধ পণ্যগুলির একটি তালিকা পেতে একটি কোয়েরি চালান। ভেক্টর মানটি পাওয়ার জন্য আমরা ভার্টেক্স এআই-কে যে অনুরোধটি পাঠাবো তা শুনতে এইরকম: "এখানে কোন ধরণের ফলের গাছ ভালো জন্মায়?"
KNN (সঠিক) ভেক্টর অনুসন্ধানের জন্য cosine_distance সহ কোয়েরি চালান
cosine_distance ফাংশন ব্যবহার করে আমাদের অনুরোধের জন্য সবচেয়ে উপযুক্ত প্রথম ৫টি আইটেম বেছে নিতে আপনি এই কোয়েরিটি চালাতে পারেন:
SELECT mysql.ML_EMBEDDING('text-embedding-005','What kind of fruit trees grow well here?') into @query_vector;
SELECT
cp.product_name,
left(cp.product_description,80) as description,
cp.sale_price,
cs.zip_code,
cosine_distance(cp.embedding ,@query_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 5;
কোয়েরিটি কপি করে ক্লাউড এসকিউএল স্টুডিও এডিটরে পেস্ট করুন এবং "RUN" বোতামটি চাপুন, অথবা quickstart_db ডেটাবেসে সংযোগকারী আপনার কমান্ড লাইন সেশনে এটি পেস্ট করুন।

এবং এখানে অনুসন্ধানের সাথে মিলে যাওয়া নির্বাচিত পণ্যগুলির একটি তালিকা রয়েছে।
+-----------------+----------------------------------------------------------------------------------+------------+----------+---------------------+
| product_name | description | sale_price | zip_code | distance |
+-----------------+----------------------------------------------------------------------------------+------------+----------+---------------------+
| Malus Domestica | Malus Domestica, the classic apple tree, brings beauty and delicious fruit to yo | 100.00 | 93230 | 0.37740096545831603 |
| Cerasus | Cerasus: A beautiful cherry tree that brings delicious fruit and vibrant color t | 75.00 | 93230 | 0.405704177142419 |
| Persica | Persica: Enjoy homegrown, delicious peaches with this beautiful peach tree. Reac | 150.00 | 93230 | 0.41031799106722877 |
| Meyer Lemon | Grow your own juicy Meyer Lemons with this semi-dwarf tree, California's favorit | 34.00 | 93230 | 0.42823360959352186 |
| Acer | Acer, the classic maple. Known for vibrant fall foliage in reds, oranges, and ye | 100.00 | 93230 | 0.42953897057301615 |
+-----------------+----------------------------------------------------------------------------------+------------+----------+---------------------+
5 rows in set (0.13 sec)
cosine_distance ফাংশন ব্যবহার করে কোয়েরিটি সম্পন্ন হতে ০.১৩ সেকেন্ড সময় লেগেছে।
KNN (সঠিক) ভেক্টর অনুসন্ধানের জন্য আনুমানিক দূরত্ব সহ কোয়েরি চালান।
এখন আমরা একই কোয়েরিটি চালাব, কিন্তু approx_distance ফাংশন ব্যবহার করে KNN সার্চের মাধ্যমে। যদি আমাদের এমবেডিংগুলোর জন্য কোনো ANN ইনডেক্স না থাকে, তবে এটি নেপথ্যে স্বয়ংক্রিয়ভাবে এক্সাক্ট সার্চে ফিরে যায়:
SELECT mysql.ML_EMBEDDING('text-embedding-005','What kind of fruit trees grow well here?') into @query_vector;
SELECT
cp.product_name,
left(cp.product_description,80) as description,
cp.sale_price,
cs.zip_code,
approx_distance(cp.embedding ,@query_vector, 'distance_measure=cosine') 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 5;
এবং এখানে কোয়েরি দ্বারা প্রাপ্ত পণ্যগুলির তালিকা দেওয়া হল।
+-----------------+----------------------------------------------------------------------------------+------------+----------+---------------------+
| product_name | description | sale_price | zip_code | distance |
+-----------------+----------------------------------------------------------------------------------+------------+----------+---------------------+
| Malus Domestica | Malus Domestica, the classic apple tree, brings beauty and delicious fruit to yo | 100.00 | 93230 | 0.37740096545831603 |
| Cerasus | Cerasus: A beautiful cherry tree that brings delicious fruit and vibrant color t | 75.00 | 93230 | 0.405704177142419 |
| Persica | Persica: Enjoy homegrown, delicious peaches with this beautiful peach tree. Reac | 150.00 | 93230 | 0.41031799106722877 |
| Meyer Lemon | Grow your own juicy Meyer Lemons with this semi-dwarf tree, California's favorit | 34.00 | 93230 | 0.42823360959352186 |
| Acer | Acer, the classic maple. Known for vibrant fall foliage in reds, oranges, and ye | 100.00 | 93230 | 0.42953897057301615 |
+-----------------+----------------------------------------------------------------------------------+------------+----------+---------------------+
5 rows in set, 1 warning (0.12 sec)
কোয়েরিটি সম্পাদন হতে মাত্র ০.১২ সেকেন্ড সময় লেগেছে। আমরা cosine_distance ফাংশনের মতোই একই ফলাফল পেয়েছি।
৯. সংগৃহীত ডেটা ব্যবহার করে এলএলএম প্রতিক্রিয়া উন্নত করুন
আমরা সম্পাদিত কোয়েরির ফলাফল ব্যবহার করে একটি ক্লায়েন্ট অ্যাপ্লিকেশনের জন্য Gen AI LLM-এর প্রতিক্রিয়া উন্নত করতে পারি এবং Vertex AI জেনারেটিভ ফাউন্ডেশন ল্যাঙ্গুয়েজ মডেলের প্রম্পটের অংশ হিসেবে সরবরাহকৃত কোয়েরির ফলাফল ব্যবহার করে একটি অর্থপূর্ণ আউটপুট প্রস্তুত করতে পারি।
এটি অর্জন করতে, আমাদের ভেক্টর সার্চের ফলাফল দিয়ে একটি JSON তৈরি করতে হবে এবং তারপর একটি অর্থপূর্ণ আউটপুট তৈরির জন্য Vertex AI-তে একটি LLM মডেলের প্রম্পটের সাথে সেই তৈরি করা JSON-টি ব্যবহার করতে হবে। প্রথম ধাপে আমরা JSON তৈরি করি, তারপর Vertex AI Studio-তে এটি পরীক্ষা করি এবং শেষ ধাপে এটিকে একটি SQL স্টেটমেন্টে অন্তর্ভুক্ত করি যা কোনো অ্যাপ্লিকেশনে ব্যবহার করা যেতে পারে।
আউটপুট JSON ফরম্যাটে তৈরি করুন
আউটপুট JSON ফরম্যাটে তৈরি করতে এবং Vertex AI-তে পাঠানোর জন্য শুধুমাত্র একটি সারি ফেরত দিতে কোয়েরিটি পরিবর্তন করুন।
এএনএন সার্চ ব্যবহার করে করা কোয়েরির একটি উদাহরণ নিচে দেওয়া হলো:
SELECT mysql.ML_EMBEDDING('text-embedding-005','What kind of fruit trees grow well here?') into @query_vector;
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
(approx_distance(cp.embedding ,@query_vector, 'distance_measure=cosine')) ASC
LIMIT 1)
SELECT json_arrayagg(json_object('product_name',product_name,'description',description,'sale_price',sale_price,'zip_code',zip_code,'product_id',product_id)) FROM trees;
এবং আউটপুটে প্রত্যাশিত JSON নিচে দেওয়া হলো:
[{"zip_code": 93230, "product_id": "23e41a71d63d8bbc9bdfa1d118cfddc5", "sale_price": 100.00, "description": "Malus Domestica, the classic apple tree, brings beauty and delicious fruit to yo", "product_name": "Malus Domestica"}]
Vertex AI Studio-তে প্রম্পটটি চালান।
আমরা তৈরি করা JSON-টি Vertex AI Studio-তে থাকা জেনারেটিভ AI টেক্সট মডেলের প্রম্পটের অংশ হিসেবে সরবরাহ করতে পারি।
ক্লাউড কনসোলে Vertex AI Studio প্রম্পটটি খুলুন।

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

আমরা এই নির্দেশিকাটি ব্যবহার করতে যাচ্ছি:
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","description":"some description","sale_price":10,"zip_code": 10234, "produt_id": "02056727942aeb714dc9a2313654e1b0"}
Here is the list of products:
[place your JSON here]
The customer asked "What tree is growing the best here?"
You should give information about the product, price and some supplemental information.
Do not ask any additional questions and assume location based on the zip code provided in the list of products.
এবং কোয়েরি থেকে প্রাপ্ত প্রতিক্রিয়া দ্বারা JSON প্লেসহোল্ডারটি প্রতিস্থাপন করলে এটি দেখতে এইরকম হয়:
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","description":"some description","sale_price":10,"zip_code": 10234, "produt_id": "02056727942aeb714dc9a2313654e1b0"}
Here is the list of products:
{"zip_code": 93230, "product_id": "23e41a71d63d8bbc9bdfa1d118cfddc5", "sale_price": 100.00, "description": "Malus Domestica, the classic apple tree, brings beauty and delicious fruit to yo", "product_name": "Malus Domestica"}
The customer asked "What tree is growing the best here?"
You should give information about the product, price and some supplemental information.
Do not ask any additional questions and assume location based on the zip code provided in the list of products.
এবং আমাদের JSON মানগুলো ও gemini-2.5-flash মডেলটি ব্যবহার করে প্রম্পটটি চালানোর পর এই ফলাফলটি পাওয়া যায়:

এই উদাহরণে মডেল থেকে আমরা যে উত্তরটি পেয়েছি, তা সিমান্টিক সার্চের ফলাফল এবং উল্লিখিত জিপ কোডে উপলব্ধ সেরা মিলে যাওয়া পণ্যটি ব্যবহার করে তৈরি করা হয়েছে।
SQL-এ প্রম্পটটি চালান
আমরা ভার্টেক্স এআই-এর সাথে ক্লাউড এসকিউএল এআই ইন্টিগ্রেশন ব্যবহার করে সরাসরি ডেটাবেসে এসকিউএল ব্যবহার করে একটি জেনারেটিভ মডেল থেকে অনুরূপ প্রতিক্রিয়া পেতে পারি।
এখন আমরা SQL ব্যবহার করে JSON ফলাফলের সাথে একটি সাবকোয়েরিতে তৈরি করা ডেটা ব্যবহার করে, সেটিকে জেনারেটিভ এআই টেক্সট মডেলের প্রম্পটের অংশ হিসেবে সরবরাহ করতে পারি।
mysql বা Cloud SQL Studio সেশনে ডাটাবেসে কোয়েরিটি চালান।
SELECT mysql.ML_EMBEDDING('text-embedding-005','What kind of fruit trees grow well here?') into @query_vector;
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
(approx_distance(cp.embedding ,@query_vector, 'distance_measure=cosine')) ASC
LIMIT 1),
prompt AS (
SELECT
CONCAT( '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_arrayagg(json_object('product_name',trees.product_name,'description',trees.description,'sale_price',trees.sale_price,'zip_code',trees.zip_code,'product_id',trees.product_id)) , '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
mysql.ML_PREDICT_ROW('publishers/google/models/gemini-2.0-flash-001:generateContent',
json_object('contents',
json_object('role',
'user',
'parts',
json_array(
json_object('text',
prompt_text))))) AS resp
FROM
prompt)
SELECT
JSON_EXTRACT(resp, '$.candidates[0].content.parts[0].text')
FROM
response;
এবং এখানে নমুনা আউটপুট দেওয়া হলো। মডেল সংস্করণ এবং প্যারামিটারের উপর নির্ভর করে আপনার আউটপুট ভিন্ন হতে পারে।
"Okay, I see you're looking for fruit trees that grow well in your area. Based on the available product, the **Malus Domestica** (Apple Tree) is a great option to consider!\n\n* **Product:** Malus Domestica (Apple Tree)\n* **Description:** This classic apple tree grows to about 30 feet tall and provides beautiful seasonal color with green leaves in summer and fiery colors in the fall. It's known for its strength and provides good shade. Most importantly, it produces delicious apples!\n* **Price:** \\$100.00\n* **Growing Zones:** This particular apple tree is well-suited for USDA zones 4-8. Since your zip code is 93230, you are likely in USDA zone 9a or 9b. While this specific tree is rated for zones 4-8, with proper care and variety selection, apple trees can still thrive in slightly warmer climates. You may need to provide extra care during heat waves.\n\n**Recommendation:** I would recommend investigating varieties of Malus Domestica suited to slightly warmer climates or contacting a local nursery/arborist to verify if it is a good fit for your local climate conditions.\n"
আউটপুটটি মার্কডাউন ফরম্যাটে প্রদান করা হয়।
১০. একটি নিকটতম-প্রতিবেশী সূচক তৈরি করুন।
আমাদের ডেটাসেট তুলনামূলকভাবে ছোট এবং রেসপন্স টাইম মূলত এআই মডেলের সাথে ইন্টারঅ্যাকশনের উপর নির্ভর করে। কিন্তু যখন লক্ষ লক্ষ ভেক্টর থাকে, তখন ভেক্টর সার্চ আমাদের রেসপন্স টাইমের একটি উল্লেখযোগ্য অংশ নিয়ে নিতে পারে এবং সিস্টেমের উপর প্রচণ্ড চাপ সৃষ্টি করতে পারে। এর উন্নতি করতে আমরা আমাদের ভেক্টরগুলোর উপর একটি ইনডেক্স তৈরি করতে পারি।
ScANN সূচক তৈরি করুন
আমরা আমাদের পরীক্ষার জন্য ScANN ইনডেক্স টাইপটি ব্যবহার করে দেখব।
আমাদের এমবেডিং কলামের জন্য ইনডেক্স তৈরি করতে, এমবেডিং কলামটির জন্য দূরত্বের পরিমাপ নির্ধারণ করতে হবে। আপনি ডকুমেন্টেশনে প্যারামিটারগুলো সম্পর্কে বিস্তারিতভাবে পড়তে পারেন।
CREATE VECTOR INDEX cymbal_products_embedding_idx ON cymbal_products(embedding) USING SCANN DISTANCE_MEASURE=COSINE;
প্রতিক্রিয়ার তুলনা করুন
এখন আমরা ভেক্টর সার্চ কোয়েরিটি আবার চালিয়ে ফলাফল দেখতে পারি।
SELECT mysql.ML_EMBEDDING('text-embedding-005','What kind of fruit trees grow well here?') into @query_vector;
SELECT
cp.product_name,
left(cp.product_description,80) as description,
cp.sale_price,
cs.zip_code,
approx_distance(cp.embedding ,@query_vector, 'distance_measure=cosine') 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 5;
প্রত্যাশিত আউটপুট:
+-----------------+----------------------------------------------------------------------------------+------------+----------+---------------------+ | product_name | description | sale_price | zip_code | distance | +-----------------+----------------------------------------------------------------------------------+------------+----------+---------------------+ | Malus Domestica | Malus Domestica, the classic apple tree, brings beauty and delicious fruit to yo | 100.00 | 93230 | 0.37740096545831603 | | Cerasus | Cerasus: A beautiful cherry tree that brings delicious fruit and vibrant color t | 75.00 | 93230 | 0.405704177142419 | | Persica | Persica: Enjoy homegrown, delicious peaches with this beautiful peach tree. Reac | 150.00 | 93230 | 0.41031799106722877 | | Meyer Lemon | Grow your own juicy Meyer Lemons with this semi-dwarf tree, California's favorit | 34.00 | 93230 | 0.42823360959352186 | | Acer | Acer, the classic maple. Known for vibrant fall foliage in reds, oranges, and ye | 100.00 | 93230 | 0.42953897057301615 | +-----------------+----------------------------------------------------------------------------------+------------+----------+---------------------+ 5 rows in set (0.08 sec)
আমরা দেখতে পাচ্ছি যে এক্সিকিউশন টাইম সামান্যই আলাদা ছিল, কিন্তু এত ছোট ডেটাসেটের জন্য এটাই প্রত্যাশিত। লক্ষ লক্ষ ভেক্টরযুক্ত বড় ডেটাসেটের ক্ষেত্রে এটি আরও অনেক বেশি লক্ষণীয় হওয়া উচিত।
এবং আমরা EXPLAIN কমান্ড ব্যবহার করে এক্সিকিউশন প্ল্যানটি দেখতে পারি:
SELECT mysql.ML_EMBEDDING('text-embedding-005','What kind of fruit trees grow well here?') into @query_vector;
EXPLAIN ANALYZE SELECT
cp.product_name,
left(cp.product_description,80) as description,
cp.sale_price,
cs.zip_code,
approx_distance(cp.embedding ,@query_vector, 'distance_measure=cosine') 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 5;
বাস্তবায়ন পরিকল্পনা (উদ্ধৃতাংশ):
...
-> Nested loop inner join (cost=443 rows=5) (actual time=1.14..1.18 rows=5 loops=1)
-> Vector index scan on cp (cost=441 rows=5) (actual time=1.1..1.1 rows=5 loops=1)
-> Single-row index lookup on cp using PRIMARY (uniq_id=cp.uniq_id) (cost=0.25 rows=1) (actual time=0.0152..0.0152 rows=1 loops=5)
...
আমরা দেখতে পাচ্ছি যে এটি cp (cymbal_products টেবিলের উপনাম)-এর উপর ভেক্টর ইনডেক্স স্ক্যান ব্যবহার করছিল।
MySQL-এ সিমান্টিক সার্চ কীভাবে কাজ করে তা দেখতে আপনি আপনার নিজের ডেটা নিয়ে পরীক্ষা করতে পারেন অথবা বিভিন্ন সার্চ কোয়েরি পরীক্ষা করে দেখতে পারেন।
১১. পরিবেশ পরিষ্কার করা
ক্লাউড SQL ইনস্ট্যান্সটি মুছে ফেলুন
ল্যাবের কাজ শেষ হলে ক্লাউড SQL ইনস্ট্যান্সটি ধ্বংস করে দিন।
যদি আপনার সংযোগ বিচ্ছিন্ন হয়ে যায় এবং পূর্বের সমস্ত সেটিংস হারিয়ে যায়, তাহলে ক্লাউড শেলে প্রজেক্ট এবং এনভায়রনমেন্ট ভেরিয়েবলগুলো নির্ধারণ করুন:
export INSTANCE_NAME=my-cloudsql-instance
export PROJECT_ID=$(gcloud config get-value project)
ইনস্ট্যান্সটি মুছে ফেলুন:
gcloud sql instances delete $INSTANCE_NAME --project=$PROJECT_ID
প্রত্যাশিত কনসোল আউটপুট:
student@cloudshell:~$ gcloud sql instances delete $INSTANCE_NAME --project=$PROJECT_ID All of the instance data will be lost when the instance is deleted. Do you want to continue (Y/n)? y Deleting Cloud SQL instance...done. Deleted [https://sandbox.googleapis.com/v1beta4/projects/test-project-001-402417/instances/my-cloudsql-instance].
১২. অভিনন্দন
কোডল্যাবটি সম্পন্ন করার জন্য অভিনন্দন।
গুগল ক্লাউড লার্নিং পাথ
এই ল্যাবটি ‘প্রোডাকশন-রেডি এআই উইথ গুগল ক্লাউড’ লার্নিং পাথের একটি অংশ।
- প্রোটোটাইপ থেকে উৎপাদনে উত্তরণের ব্যবধান পূরণ করতে সম্পূর্ণ পাঠ্যক্রমটি অন্বেষণ করুন ।
-
#ProductionReadyAIহ্যাশট্যাগটি ব্যবহার করে আপনার অগ্রগতি শেয়ার করুন।
আমরা যা আলোচনা করেছি
- কীভাবে একটি Cloud SQL for PostgreSQL ইনস্ট্যান্স স্থাপন করবেন
- কীভাবে ডাটাবেস তৈরি করবেন এবং ক্লাউড এসকিউএল এআই ইন্টিগ্রেশন সক্রিয় করবেন
- ডাটাবেসে ডেটা লোড করার পদ্ধতি
- ক্লাউড এসকিউএল স্টুডিও কীভাবে ব্যবহার করবেন
- ক্লাউড SQL-এ ভার্টেক্স এআই এমবেডিং মডেল কীভাবে ব্যবহার করবেন
- ভার্টেক্স এআই স্টুডিও কীভাবে ব্যবহার করবেন
- ভার্টেক্স এআই জেনারেটিভ মডেল ব্যবহার করে ফলাফলকে কীভাবে আরও সমৃদ্ধ করা যায়
- ভেক্টর ইনডেক্স ব্যবহার করে কীভাবে পারফরম্যান্স উন্নত করা যায়
AlloyDB-এর জন্য অনুরূপ কোডল্যাব অথবা Cloud SQL for Postgres-এর কোনো কোডল্যাব চেষ্টা করে দেখুন।
১৩. জরিপ
আউটপুট: