১. ভূমিকা
ভাইব কোডিং ফ্রন্টএন্ড তৈরির গতি ও পদ্ধতিতে বৈপ্লবিক পরিবর্তন এনেছে, কিন্তু ডাটাবেসের পর্যায়ে এসে এটি প্রায়শই বাধার সম্মুখীন হয়। প্রচলিত পদ্ধতিতে, ডেভেলপারদের কনটেক্সট পরিবর্তন করতে, জটিল SQL স্কিমা লিখতে, কানেকশন পুল পরিচালনা করতে এবং ম্যানুয়ালি ডাটাবেস এক্সটেনশন কনফিগার করতে হয়।
এই কোডল্যাবে, আপনি একটি বাধাহীন, কথোপকথনমূলক ডাটাবেস ডেভেলপমেন্ট ওয়ার্কফ্লোর অভিজ্ঞতা লাভ করবেন। মডেল কনটেক্সট প্রোটোকল (MCP) এবং একটি এজেন্টিক IDE ব্যবহার করে, আপনি আপনার এডিটরকে একজন অভিজ্ঞ ডেটা ইঞ্জিনিয়ারের মতো ব্যবহার করবেন—এবং আপনার ওয়ার্কস্পেস না ছেড়েই, মিনিটের মধ্যে একটি সাধারণ ধারণা থেকে একটি সম্পূর্ণ সংযুক্ত, অপ্টিমাইজড এবং AI-সক্ষম ডাটাবেস অ্যাপ্লিকেশন তৈরি করে ফেলবেন।
আপনি যা তৈরি করবেন
এই কোডল্যাবে, আপনি একটি এআই গ্যাস্ট্রোনমি গাইড তৈরি এবং ডেপ্লয় করবেন—এটি অ্যালয়ডিবি দ্বারা সমর্থিত একটি আধুনিক নেক্সট.জেএস অ্যাপ্লিকেশন। অ্যাপ্লিকেশনটি নিম্নলিখিত বিষয়গুলো সমর্থন করবে:
- ডাইনামিক ক্যাটালগ ইনজেশন : কাঁচা CSV ফাইল থেকে রেস্তোরাঁর ডেটা স্বয়ংক্রিয়ভাবে আমদানি এবং কাঠামোবদ্ধ করা।
- কীওয়ার্ড-ভিত্তিক অনুসন্ধান : পূর্ণ-পাঠ্য অনুসন্ধান ব্যবহার করে ডাটাবেসে গতিশীলভাবে তথ্য জিজ্ঞাসা করা।
- এআই-চালিত সিমান্টিক সার্চ : এজেন্ট প্ল্যাটফর্ম এমবেডিং ব্যবহার করে রেস্তোরাঁর 'ভাইব' (যেমন, 'ডেটের জন্য আরামদায়ক জায়গা' বা 'গভীর রাতে দ্রুত কিছু খাওয়ার জায়গা') বর্ণনা করে রেস্তোরাঁ খুঁজে বের করা।

আপনি যা শিখবেন
- পাবলিক আইপি এবং ভিপিসি নেটওয়ার্ক কনফিগারেশন ব্যবহার করে একটি গুগল ক্লাউড অ্যালয়ডিবি ইনস্ট্যান্স প্রোভিশনিং করা।
- মডেল কনটেক্সট প্রোটোকল (MCP) টুলবক্স ব্যবহার করে Antigravity IDE-কে সরাসরি AlloyDB-এর সাথে সংযুক্ত করা।
- এনভায়রনমেন্ট ভেরিয়েবল এবং সুরক্ষিত SSL সংযোগ ব্যবহার করে একটি Next.js ফ্রন্টএন্ডকে লাইভ ডেটাবেসের সাথে সংযুক্ত করা।
- text-embedding-004 ব্যবহার করে ভেক্টর এমবেডিং তৈরি করার জন্য ইন-ডাটাবেস এজেন্ট প্ল্যাটফর্ম ইন্টিগ্রেশন সক্রিয় করা হচ্ছে।
- কোসাইন দূরত্ব অপারেটর (<=>) ব্যবহার করে ভেক্টর সাদৃশ্য অনুসন্ধান সম্পাদন করা।
- ভার্চুয়াল ডিবিএ হিসেবে কাজ করে HNSW ইনডেক্সিং এবং টেবিল পার্টিশনিং ব্যবহার করে প্রোডাকশন স্কেলের জন্য ডাটাবেসের পারফরম্যান্স অপ্টিমাইজ করা।
আপনার যা যা লাগবে
এই কোডল্যাবটি সম্পন্ন করতে আপনার প্রয়োজন হবে:
- আপনার মেশিনে Antigravity Desktop IDE ইনস্টল করা আছে।
- বিলিং সক্ষম একটি গুগল ক্লাউড প্রজেক্ট।
- আপনার স্থানীয় মেশিনে গুগল ক্লাউড সিএলআই (gcloud) এবং গিট ইনস্টল ও প্রমাণীকৃত করা আছে।
- একটি ওয়েব ব্রাউজার (ক্রোম ব্যবহার করার পরামর্শ দেওয়া হয়)।
এই কোডল্যাবটি নতুনদের সহ সকল স্তরের ডেভেলপারদের জন্য ডিজাইন করা হয়েছে।
২. শুরু করার আগে
এআই বার্লিন গ্যাস্ট্রোনমি গাইড তৈরি শুরু করার আগে, এই বিভাগটি আপনার গুগল ক্লাউড প্রজেক্টে প্রয়োজনীয় প্রাথমিক সেটআপ সম্পর্কে আপনাকে নির্দেশনা দেবে।
একটি প্রকল্প তৈরি করুন
- গুগল ক্লাউড কনসোলের প্রজেক্ট সিলেক্টর পেজে, একটি গুগল ক্লাউড প্রজেক্ট নির্বাচন করুন বা তৈরি করুন।
- আপনার ক্লাউড প্রোজেক্টের জন্য বিলিং চালু আছে কিনা তা নিশ্চিত করুন। কোনো প্রোজেক্টে বিলিং চালু আছে কিনা তা কীভাবে পরীক্ষা করবেন, তা জেনে নিন।
স্থানীয় পূর্বশর্তগুলি ইনস্টল করুন
আপনার স্থানীয় মেশিনে নিম্নলিখিত টুলগুলি ইনস্টল করা আছে কিনা তা নিশ্চিত করুন:
- অ্যান্টিগ্র্যাভিটি আইডিই: অ্যান্টিগ্র্যাভিটি ডেস্কটপ আইডিই ইনস্টল করুন।
- গুগল ক্লাউড এসডিকে : গুগল ক্লাউড সিএলআই ডাউনলোড ও ইনস্টল করুন।
- গিট : গিট ডাউনলোড ও ইনস্টল করুন।
আপনার প্রজেক্ট প্রমাণীকরণ ও সেট করুন
আপনি সমস্ত কমান্ড-লাইন নির্দেশাবলী সরাসরি আপনার IDE-এর ভিতরেই কার্যকর করবেন।
- আপনার স্থানীয় মেশিনে Antigravity IDE খুলুন।
- Antigravity-র টার্মিনাল খুলুন এবং প্রজেক্ট রিপোজিটরিটি ক্লোন করুন:
git clone https://github.com/mtoscano84/vibe-coding-postgres-mcp.git
- প্রজেক্ট ফোল্ডারটি খুলুন:
- ফাইল > ফোল্ডার খুলুন (বা খুলুন...)-এ যান।
- নতুন ক্লোন করা vibe-coding-postgres-mcp ফোল্ডারটিতে যান এবং সেটি নির্বাচন করুন।
- প্রজেক্ট ফোল্ডারটি খোলার পর, Antigravity-তে একটি নতুন ইন্টিগ্রেটেড টার্মিনাল চালু করুন। PROJECT_ID এনভায়রনমেন্ট ভেরিয়েবলটি সেট করুন এবং এটি ব্যবহার করার জন্য gcloud CLI কনফিগার করুন ([YOUR_PROJECT_ID]-এর জায়গায় আপনার আসল GCP প্রজেক্ট আইডি বসান):
export PROJECT_ID=[YOUR_PROJECT_ID]
gcloud config set project $PROJECT_ID
- Google Cloud CLI-তে লগ ইন করুন:
gcloud auth login
- আপনার সক্রিয় অ্যাকাউন্ট যাচাই করুন:
gcloud auth list
প্রয়োজনীয় এপিআইগুলি সক্রিয় করুন
প্রয়োজনীয় গুগল ক্লাউড পরিষেবাগুলি সক্রিয় করতে আপনার অ্যান্টিগ্র্যাভিটি টার্মিনালে নিম্নলিখিত কমান্ডটি চালান:
gcloud services enable alloydb.googleapis.com \
compute.googleapis.com \
servicenetworking.googleapis.com \
aiplatform.googleapis.com \
run.googleapis.com \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com
৩. AlloyDB ইনস্ট্যান্স তৈরি করুন
এই অংশে, আপনি আপনার অ্যান্টিগ্র্যাভিটি টার্মিনালে একটি স্বয়ংক্রিয় স্ক্রিপ্ট চালাবেন গুগল ক্লাউডে আপনার অ্যালয়ডিবি ক্লাস্টার এবং ইনস্ট্যান্স প্রোভিশন করার জন্য।
আপনার সক্রিয় Antigravity ইন্টিগ্রেটেড টার্মিনালে (যা ইতিমধ্যেই vibe-coding-postgres-mcp প্রজেক্ট ডিরেক্টরির ভিতরে রয়েছে), AlloyDB প্রোভিশনিং স্ক্রিপ্টটি চালান:
source database/deploy_alloydb.sh --region us-central1 --public-ip
দ্রষ্টব্য: প্রোভিশনিং প্রক্রিয়াটিতে প্রায় ১০-১৫ মিনিট সময় লাগে।
বিধান স্ক্রিপ্টটি করবে::
- আপনার প্রজেক্টে default নামে একটি VPC নেটওয়ার্ক তৈরি করুন (যদি এটি আগে থেকে না থাকে)।
- AlloyDB-এর জন্য ব্যক্তিগত পরিষেবা অ্যাক্সেস সেট আপ করুন।
- প্রাইভেট আইপি এবং পাবলিক আইপি উভয়ই সক্রিয় রেখে একটি AlloyDB ক্লাস্টার এবং একটি প্রাইমারি ইনস্ট্যান্স স্থাপন করুন।
- AlloyDB সার্ভিস এজেন্টকে প্রয়োজনীয় এজেন্ট প্ল্যাটফর্ম অনুমতি প্রদান করুন।
আউটপুটটি নিম্নরূপ হওয়া উচিত:
----------------------------------------
Deployment Process Completed
Cluster: alloydb-aip-01 (STANDARD)
Instance: alloydb-aip-01-pr
Region: us-central1
Private IP: XX.XX.XX.XX
Public IP: XX.XX.XX.XX
Initial Password: XXXXXXXXXX (if new cluster)
----------------------------------------
অনুগ্রহ করে, এই বিবরণগুলো কপি করে সংরক্ষণ করুন:
- AlloyDB প্রাইভেট আইপি : VPC-এর মধ্যে নিরাপদে সংযোগ স্থাপনের জন্য Cloud Run অ্যাপ্লিকেশনটি এটি ব্যবহার করে।
- AlloyDB পাবলিক আইপি : আপনার স্থানীয় Antigravity IDE সরাসরি সংযোগ করার জন্য এটি ব্যবহার করে।
- ডাটাবেস পাসওয়ার্ড : postgres ব্যবহারকারীর জন্য স্বয়ংক্রিয়ভাবে তৈরি হওয়া পাসওয়ার্ড।
৪. ফ্রন্টএন্ড স্থাপন করুন
এই অংশে, আপনি অ্যান্টিগ্র্যাভিটির ইন্টিগ্রেটেড টার্মিনাল ব্যবহার করে গুগল ক্লাউড রান-এ বেসলাইন নেক্সট.জেএস ফ্রন্টএন্ড (স্টেট ০) ডেপ্লয় করবেন। এই প্রাথমিক সংস্করণটি মক ডেটা ব্যবহার করে এবং এখনও ডেটাবেসের সাথে সংযুক্ত নয়।
প্রথমে, Compute Engine ডিফল্ট সার্ভিস অ্যাকাউন্টকে প্রয়োজনীয় IAM রোলগুলো প্রদান করার জন্য আপনার Antigravity টার্মিনালে সরাসরি নিম্নলিখিত কমান্ডগুলো চালান:
PROJECT_NUMBER=$(gcloud projects describe $(gcloud config get-value project) --format="value(projectNumber)")
# Grant Storage Object Viewer (to read source code)
gcloud projects add-iam-policy-binding $(gcloud config get-value project) \
--member="serviceAccount:${PROJECT_NUMBER}-compute@developer.gserviceaccount.com" \
--role="roles/storage.objectViewer"
# Grant Log Writer (to write build logs)
gcloud projects add-iam-policy-binding $(gcloud config get-value project) \
--member="serviceAccount:${PROJECT_NUMBER}-compute@developer.gserviceaccount.com" \
--role="roles/logging.logWriter"
# Grant Artifact Registry Writer (to push container images)
gcloud projects add-iam-policy-binding $(gcloud config get-value project) \
--member="serviceAccount:${PROJECT_NUMBER}-compute@developer.gserviceaccount.com" \
--role="roles/artifactregistry.writer"
আপনার Antigravity টার্মিনালে vibe-coding-postgres-mcp ডিরেক্টরির রুট থেকে, Next.js অ্যাপ্লিকেশনটি কম্পাইল করে আপনার VPC নেটওয়ার্কে ডেপ্লয় করতে নিম্নলিখিত কমান্ডটি চালান:
gcloud run deploy berlin-gastronomy-guide \
--source frontend/ \
--network=default \
--subnet=default \
--allow-unauthenticated \
--region=us-central1
ডেপ্লয়মেন্ট সম্পন্ন হলে, এটি সার্ভিস ইউআরএলটি প্রিন্ট করবে।
Building using Dockerfile and deploying container to Cloud Run service [berlin-gastronomy-guide] in project [vibe-coding-postgres-mcp] region [us-central1]
Building and deploying...
Validating configuration...done
Uploading sources...done
Building Container... Logs are available at [ https://console.cloud.google.com/cloud-build/builds;region=us-central1/46a6e834-d5e9-4dfd-885e-d39e2790f72d?project=734791203988 ]....done
Setting IAM Policy...done
Creating Revision...done
Routing traffic...done
Done.
Service [berlin-gastronomy-guide] revision [berlin-gastronomy-guide-00002-n6k] has been deployed and is serving 100 percent of traffic.
Service URL: https://berlin-gastronomy-guide-[YOUR_PROJECT_NUMBER].us-central1.run.app
URL-টি কপি করে আপনার ব্রাউজারে খুলুন।
নিশ্চিত করুন যে আপনি বার্লিন এআই গ্যাস্ট্রোনমি গাইড ওয়েব পেজটি দেখতে পাচ্ছেন, যেখানে নকল রেস্তোরাঁর কার্ডগুলো দেখানো হচ্ছে।

৫. অ্যান্টিগ্র্যাভিটিকে গুগল ক্লাউডের সাথে সংযুক্ত করুন
আপনার IDE-তে (Antigravity) স্থানীয়ভাবে চলমান AI এজেন্টকে ডেটাবেসের সাথে যোগাযোগ করার সুযোগ দিতে, আমরা অফিসিয়াল গুগল ক্লাউড অ্যালয়ডিবি এমসিপি সার্ভার ব্যবহার করব।
যেহেতু আমরা প্রোভিশনিংয়ের সময় AlloyDB ইনস্ট্যান্সটিতে পাবলিক আইপি সক্রিয় করেছি, আপনার স্থানীয় IDE সরাসরি ইন্টারনেটের মাধ্যমে এর সাথে সংযোগ করতে পারে। এই সংযোগটি SSL এবং পাসওয়ার্ড অথেনটিকেশন দ্বারা সুরক্ষিত, এবং MCP সার্ভার সংযোগটি অনুমোদন করার জন্য আপনার স্থানীয় Google Cloud ক্রেডেনশিয়াল ব্যবহার করে।
অ্যান্টিগ্র্যাভিটিতে এমসিপি সার্ভার কনফিগার করুন
- Antigravity IDE-তে, চ্যাট উইন্ডোর উপরের ডান কোণায় থাকা তিনটি ডট মেনুতে (...) ক্লিক করুন।
- MCP সার্ভারগুলি নির্বাচন করুন, এবং তারপরে ম্যানেজড MCP সার্ভারগুলিতে ক্লিক করুন (অথবা র কনফিগারেশন দেখুন / কনফিগারেশন ফাইল সম্পাদনা করুন)।
- mcpServers অবজেক্টের ভিতরে নিম্নলিখিত JSON ব্লকটি যোগ করুন। নিশ্চিত করুন যে আপনি [YOUR_PROJECT_ID] এবং [YOUR_ALLOYDB_PASSWORD]-কে আপনার আসল প্রজেক্ট আইডি এবং AlloyDB প্রোভিশনিং ধাপ থেকে সংরক্ষণ করা ডাটাবেস পাসওয়ার্ড দিয়ে প্রতিস্থাপন করেছেন:
"alloydb-postgres": {
"command": "npx",
"args": [
"-y",
"@toolbox-sdk/server@latest",
"--prebuilt",
"alloydb-postgres",
"--stdio"
],
"env": {
"ALLOYDB_POSTGRES_PROJECT": "[YOUR_PROJECT_ID]",
"ALLOYDB_POSTGRES_REGION": "us-central1",
"ALLOYDB_POSTGRES_CLUSTER": "alloydb-aip-01",
"ALLOYDB_POSTGRES_INSTANCE": "alloydb-aip-01-pr",
"ALLOYDB_POSTGRES_DATABASE": "postgres",
"ALLOYDB_POSTGRES_USER": "postgres",
"ALLOYDB_POSTGRES_PASSWORD": "[YOUR_ALLOYDB_PASSWORD]"
}
}
- কনফিগারেশন ফাইলটি সংরক্ষণ করুন
- IDE স্বয়ংক্রিয়ভাবে MCP সার্ভারটি চালু করবে। আপনি MCP প্যানেলে alloydb-postgres-এর পাশে একটি সবুজ বিন্দু দেখতে পাবেন, যা নির্দেশ করে যে এটি সফলভাবে সংযুক্ত হয়েছে।
৬. ভাইব কোডিং: ডাটাবেস ইনজেশন
এখন যেহেতু আপনার Antigravity IDE, MCP সার্ভারের মাধ্যমে আপনার AlloyDB ইনস্ট্যান্সের সাথে সংযুক্ত হয়েছে, আপনি ভাইব-কোডিং অভিজ্ঞতা শুরু করতে পারেন।
এই ধাপে, আপনি এআই এজেন্টকে বার্লিন গ্যাস্ট্রোনমি ক্যাটালগ সম্বলিত একটি স্থানীয় CSV ফাইল পড়তে এবং সেটি আপনার AlloyDB ডেটাবেসে লোড করতে নির্দেশ দেবেন।
কাজটি
আপনি অ্যান্টিগ্র্যাভিটিতে এজেন্ট চ্যাট ব্যবহার করবেন। এজেন্টটি স্বয়ংক্রিয়ভাবে ফাইলটি পড়বে, ডেটার ধরন বিশ্লেষণ করবে, আপনার ডাটাবেসের সাথে সংযোগ স্থাপন করবে, টেবিল তৈরি করবে এবং রেকর্ডগুলো সন্নিবেশ করবে।
Antigravity-তে, এজেন্ট চ্যাট প্যানেলটি খুলুন (সাধারণত এডিটরের ডানদিকে থাকে)।
এরপর, নিচের প্রম্পটটি কপি করে চ্যাটে পেস্ট করুন এবং এন্টার চাপুন:
Read the headers of database/seed_data_berlin.csv to determine column data types and create the restaurants table using the MCP tool execute_sql. Then, read the CSV rows locally and insert all 100 records into remote AlloyDB using a single batched multi-row INSERT INTO ... VALUES (...), (...), ...; statement via execute_sql. Do not print the CSV contents, row payloads, or SQL statements to the chat transcript.
যাচাইকরণ
এজেন্ট যা করবে:
- উপযুক্ত স্কিমা নির্ধারণ করতে CSV ফাইলের হেডার এবং কিছু নমুনা সারি পড়ুন।
- রেস্তোরাঁ টেবিলটি তৈরি করতে AlloyDB MCP টুলটি কল করুন।
- CSV ফাইল থেকে ১০০টি রেস্তোরাঁর রেকর্ড একসাথে ডেটাবেসে যুক্ত করুন।
৭. ভাইব কোডিং: ফ্রন্টএন্ডকে ডেটাবেসের সাথে সংযুক্ত করুন
এই অংশে, আপনি আপনার Next.js ফ্রন্টএন্ডকে লাইভ AlloyDB ডেটাবেসের সাথে সংযুক্ত করবেন। আপনি এজেন্টকে মক ডেটা একটি লাইভ ডেটাবেস কোয়েরি দিয়ে প্রতিস্থাপন করতে এবং কীওয়ার্ড সার্চ বাস্তবায়ন করতে নির্দেশ দেবেন।
কাজটি
আপনি এজেন্টকে কানেকশন কোড লিখতে এবং হোমপেজ আপডেট করতে নির্দেশ দেবেন। যেহেতু আমরা .agents/AGENTS.md ফাইলে ডাটাবেস SSL রুলটি কমিট করেছি, তাই আপনার প্রম্পটে এটি উল্লেখ করার প্রয়োজন ছাড়াই এজেন্ট স্বয়ংক্রিয়ভাবে ক্লাউড কানেকশনের জন্য SSL ব্যবহার করতে কানেকশন পুলটি কনফিগার করে নেবে!
Antigravity Agent চ্যাটে, নিচের প্রম্পটটি কপি করে পেস্ট করুন এবং এন্টার চাপুন ( [YOUR_PASSWORD] এর জায়গায় আপনার আসল ডাটাবেস পাসওয়ার্ডটি বসান):
Connect our Next.js frontend to the restaurants table in the database using the pg library. Use a connection pool configured with environment variables: DB_HOST, DB_USER (postgres), DB_PASS (password is '
[আপনার পাসওয়ার্ড]
'), and DB_NAME (postgres). Replace the mock data in page.tsx with a live query, and implement keyword search on the name, category, and description. When testing or verifying queries, always use LIMIT 3 and suppress quiet npm/build logs.
এজেন্টটি যখন কাজটি সম্পাদন করে তখন তাকে পর্যবেক্ষণ করে:
- এটি pg প্যাকেজ এবং এর TypeScript টাইপগুলো (@types/pg) ইনস্টল করবে।
- এটি একটি ডাটাবেস সংযোগ ফাইল (অথবা একটি Next.js সার্ভার অ্যাকশন) তৈরি করবে এবং সংযোগ পুলটি কনফিগার করবে।
- এটি AGENTS.md-এর নিয়মগুলো পড়বে এবং স্বয়ংক্রিয়ভাবে নন-লোকাল হোস্টগুলোর জন্য SSL কনফিগারেশন যোগ করবে।
- এটি ডেটাবেস থেকে ডেটা কোয়েরি করতে এবং সার্চ কোয়েরির উপর ভিত্তি করে ফলাফল ফিল্টার করার জন্য page.tsx ফাইলটিকে নতুন করে লিখবে।
যাচাইকরণ
পরিবর্তনগুলো পরীক্ষা করার জন্য, আপনাকে অবশ্যই ক্লাউড রান-এ ফ্রন্টএন্ডটি পুনরায় ডিপ্লয় করতে হবে। যেহেতু আমরা 'ক্লাউড-অনলি' ফ্লো ব্যবহার করছি, তাই নতুন কোডটি এভাবেই পাঠানো হয়।
Antigravity-তে ইন্টিগ্রেটেড টার্মিনালটি খুলুন (নিশ্চিত করুন যে আপনি রুট ডিরেক্টরিতে আছেন)।
আপনার AlloyDB প্রাইভেট আইপি এবং পাসওয়ার্ড এনভায়রনমেন্ট ভেরিয়েবল হিসেবে পাস করে ডিপ্লয়মেন্ট কমান্ডটি চালান (প্লেসহোল্ডারগুলিতে আপনার আসল মান বসান):
gcloud run deploy berlin-gastronomy-guide \
--source frontend/ \
--network=default \
--subnet=default \
--set-env-vars="DB_HOST=[YOUR_ALLOYDB_PRIVATE_IP],DB_USER=postgres,DB_PASS=[YOUR_PASSWORD],DB_NAME=postgres" \
--allow-unauthenticated \
--region=us-central1
ডেপ্লয়মেন্ট সম্পন্ন হলে, আপনার ব্রাউজারে সার্ভিস ইউআরএলটি খুলুন।
'বার্গারমেইস্টার' বা 'কাবাব' লিখে সার্চ করে দেখুন। আপনি ডাটাবেস থেকে লোড হওয়া আসল রেস্তোরাঁগুলোর তালিকা দেখতে পাবেন!
লক্ষ্য করুন যে রেস্তোরাঁর কার্ডগুলিতে এখন তাদের আসল GCS ছবি দেখা যাচ্ছে (কারণ ডেটাবেস রেকর্ডগুলিতে আমাদের আগে আপলোড করা পাবলিক GCS URL-গুলি রয়েছে!)।
৮. ভাইব কোডিং: সিমান্টিক সার্চ সক্রিয় করুন
এই অংশে, আপনি আপনার অ্যাপ্লিকেশনটিকে এআই-চালিত সিমান্টিক ভেক্টর সার্চ সমর্থন করার জন্য আপগ্রেড করবেন। শুধু হুবহু কীওয়ার্ড মেলানোর পরিবর্তে, ব্যবহারকারীরা তাদের কাঙ্ক্ষিত 'ভাইব' বা অভিজ্ঞতার বর্ণনা দিয়েও অনুসন্ধান করতে পারবেন (যেমন: "রোমান্টিক ডিনারের জায়গা" বা "ক্লাবের পর চটজলদি কিছু খাওয়া")।
কাজটি
আপনি এজেন্টকে রেস্টুরেন্ট টেবিলে সিমান্টিক সার্চ চালু করার নির্দেশ দেবেন। এজেন্টটি রিপোজিটরিতে থাকা add-vector-search-alloydb কাস্টম স্কিলটি ব্যবহার করে স্বয়ংক্রিয়ভাবে ডাটাবেস এক্সটেনশন, এজেন্ট প্ল্যাটফর্ম মডেল রেজিস্ট্রেশন, এমবেডিং জেনারেশন এবং কোয়েরি আপডেটগুলো পরিচালনা করবে।
অ্যান্টিগ্র্যাভিটি এজেন্ট চ্যাটে, নিম্নলিখিত প্রম্পটটি কপি করে পেস্ট করুন এবং এন্টার চাপুন:
Upgrade our database to support Semantic Vector Search on the restaurants table based on the description column. Then, update our frontend search query to use vector similarity search. Execute embedding generation quietly without printing embedding vectors or SQL progress logs to chat.
এজেন্টটি যখন কাজটি সম্পাদন করে তখন তাকে পর্যবেক্ষণ করে:
- এটি AlloyDB-এর সাথে সংযুক্ত হবে এবং ভেক্টর (pgvector) ও google_ml_integration এক্সটেনশনগুলো সক্রিয় করবে।
- এটি ডাটাবেসের মধ্যে এজেন্ট প্ল্যাটফর্ম এমবেডিং মডেল (টেক্সট-এমবেডিং-০০৪) নিবন্ধন করবে।
- এটি রেস্তোরাঁ টেবিলে একটি নতুন এমবেডিং কলাম যোগ করবে।
- এটি ১০০টি রেস্তোরাঁর বিবরণের সবগুলোর জন্য এমবেডিং তৈরি করতে ডাটাবেসের মধ্যে একটি কোয়েরি চালাবে।
- এটি ব্যবহারকারীর সার্চ কোয়েরির জন্য একটি এমবেডিং তৈরি করতে ফ্রন্টএন্ড কোড আপডেট করবে এবং কোসাইন ডিসটেন্স অপারেটর (<=>) ব্যবহার করে একটি ভেক্টর সিমিলারিটি সার্চ সম্পাদন করবে।
যাচাইকরণ
আপডেট করা কোডটি ক্লাউড রান-এ পুনরায় ডেপ্লয় করুন।
অ্যান্টিগ্র্যাভিটি ইন্টিগ্রেটেড টার্মিনালে, ডিপ্লয়মেন্ট কমান্ডটি চালান (প্লেসহোল্ডারগুলিতে আপনার আসল মানগুলি বসান):
gcloud run deploy berlin-gastronomy-guide \
--source frontend/ \
--network=default \
--subnet=default \
--set-env-vars="DB_HOST=[YOUR_ALLOYDB_PRIVATE_IP],DB_USER=postgres,DB_PASS=[YOUR_PASSWORD],DB_NAME=postgres" \
--allow-unauthenticated \
--region=us-central1
ডেপ্লয়মেন্ট সম্পন্ন হলে, আপনার ব্রাউজারে সার্ভিস ইউআরএলটি খুলুন।
একটি স্বাভাবিক ভাষার বিবরণ প্রবেশ করিয়ে শব্দার্থিক অনুসন্ধান পরীক্ষা করুন, যেমন:
- "একটি রোমান্টিক ডিনারের জায়গা"
- "ক্লাব করার পর চটজলদি কিছু খাওয়া"
লক্ষ্য করুন যে, তাদের নাম বা বিবরণে 'রোমান্টিক' বা 'ক্লাবিং' এর মতো সঠিক শব্দগুলি উপস্থিত না থাকলেও এটি অত্যন্ত প্রাসঙ্গিক রেস্তোরাঁগুলি (যেমন ক্যাফে ক্লারচেন্স বা বার্গারমেইস্টার) খুঁজে বের করে!
৯. ভাইব কোডিং: ডাটাবেস অপ্টিমাইজেশন
আপনার অ্যাপ্লিকেশন যত বড় হবে, বিপুল পরিমাণ ডেটা (১০০ হাজারেরও বেশি সারি) এবং একই সাথে উচ্চ হারে সার্চ ট্র্যাফিক সামলানোর জন্য ডেটাবেসকে অপ্টিমাইজ করতে হবে। এই চূড়ান্ত ধাপে, আপনি আপনার এজেন্টকে একজন ভার্চুয়াল ডেটাবেস অ্যাডমিনিস্ট্রেটর (ডিবিএ) হিসেবে ব্যবহার করে আপনার ডেটাবেস স্কিমা বিশ্লেষণ ও অপ্টিমাইজ করবেন।
কাজটি
আপনি এজেন্টকে প্রিন্সিপাল ডেটাবেস আর্কিটেক্ট হিসেবে কাজ করতে, বর্তমান স্কিমা বিশ্লেষণ করতে এবং অপটিমাইজেশনের সুপারিশ করতে বলবেন। আপনি সুপারিশগুলো পর্যালোচনা করে অনুমোদন করার পর, এজেন্ট তার optimize-database-alloydb কাস্টম স্কিল ব্যবহার করে সেগুলো স্বয়ংক্রিয়ভাবে প্রয়োগ করবে।
Act as my Principal Database Architect! Our semantic search is feeling great, but let's level up our backend to effortlessly scale to 100K+ rows and handle high concurrent traffic. Inspect our restaurants schema quietly, and work your magic by immediately applying your top 2 production optimizations—an HNSW vector index and list partitioning by neighborhood—right now in this turn. No need to wait for approval! Keep the SQL logs clean and hit me with a crisp 3-bullet summary of how we just supercharged our database.
যাচাইকরণ
এজেন্টটি স্বয়ংক্রিয়ভাবে আপনার ডাটাবেস স্কিমা বিশ্লেষণ করবে এবং দুটি গুরুত্বপূর্ণ প্রোডাকশন অপটিমাইজেশন প্রয়োগ করবে:
- HNSW (Hierarchical Navigable Small World) ইনডেক্স: সম্পূর্ণ টেবিলটি স্ক্যান না করেই ভেক্টর সাদৃশ্য অনুসন্ধানের গতি বহুগুণে বাড়িয়ে দেয়।
- ডিক্লারেটিভ লিস্ট পার্টিশনিং : কার্যকর স্কেলিং এবং রক্ষণাবেক্ষণের জন্য রেস্তোরাঁ টেবিলটিকে এলাকা অনুযায়ী পার্টিশন করে।
এই প্রোডাকশন আপগ্রেডগুলোর স্থাপত্যগত সুবিধাগুলো ব্যাখ্যা করে একটি সংক্ষিপ্ত ৩-বুলেট সারাংশ প্রদানের মাধ্যমে এটি শেষ হবে!
১০. চ্যালেঞ্জ: রিভিউ এবং রেটিং যোগ করুন
এবার আপনার ভাইব কোডিং দক্ষতা পরীক্ষা করার পালা! এই চ্যালেঞ্জে, আপনি গ্রাহক পর্যালোচনা এবং স্টার রেটিং সমর্থন করার জন্য বার্লিন গ্যাস্ট্রোনমি গাইডটিকে প্রসারিত করবেন।
কাজটি
কপি-পেস্ট করা নির্দেশ অনুসরণ করার পরিবর্তে, নিম্নলিখিত বৈশিষ্ট্যগুলি বাস্তবায়ন করতে অ্যান্টিগ্র্যাভিটি এজেন্ট চ্যাটে আপনার নিজস্ব নির্দেশ লিখুন :
- ডাটাবেস স্কিমা :
restaurantsটেবিলের সাথে লিঙ্ক করা একটি নতুনreviewsটেবিল তৈরি করুন। এতে একটি রেটিং (১ থেকে ৫ পর্যন্ত একটি পূর্ণসংখ্যা) এবং একটি সংক্ষিপ্ত মন্তব্য সংরক্ষণ করা হবে। - ডেটা তৈরি : ডাটাবেসে থাকা ১০০টি রেস্তোরাঁর প্রতিটির জন্য ৩-৪টি বাস্তবসম্মত গ্রাহক রিভিউ তৈরি করুন।
- ফ্রন্টএন্ড ইন্টিগ্রেশন : প্রতিটি রেস্তোরাঁ কার্ডে গড় স্টার রেটিং (যেমন,
⭐⭐⭐⭐☆) গণনা করে প্রদর্শন করার জন্য Next.js ফ্রন্টএন্ড আপডেট করুন। - ফিল্টারিং: রেটিং অনুযায়ী রেস্তোরাঁ ফিল্টার করতে পেজের উপরে একটি ড্রপডাউন ফিল্টার যোগ করুন (যেমন, "সবগুলো দেখান", "৪+ স্টার", "৩+ স্টার")।
যাচাইকরণ
এজেন্ট কাজটি সম্পন্ন করলে, আপনার অ্যাপ্লিকেশনটি ক্লাউড রান-এ পুনরায় ডেপ্লয় করুন (প্লেসহোল্ডারগুলি আপনার আসল মান দিয়ে প্রতিস্থাপন করুন):
gcloud run deploy berlin-gastronomy-guide \
--source frontend/ \
--network=default \
--subnet=default \
--set-env-vars="DB_HOST=[YOUR_ALLOYDB_PRIVATE_IP],DB_USER=postgres,DB_PASS=[YOUR_PASSWORD],DB_NAME=postgres" \
--allow-unauthenticated \
--region=us-central1
ডেপ্লয়মেন্ট সম্পন্ন হলে, আপনার ব্রাউজার রিফ্রেশ করুন এবং কার্ডগুলিতে আপনার স্টার রেটিং যাচাই করুন।
.
১১. ফলাফল
ধাপগুলো সম্পন্ন করার মাধ্যমে, আপনি ভাইব কোডিং ব্যবহার করে সফলভাবে একটি পরবর্তী প্রজন্মের ডাটাবেস-সমর্থিত এআই অ্যাপ্লিকেশন তৈরি এবং অপ্টিমাইজ করেছেন। এই বিভাগে আপনার বাস্তবায়িত মূল স্থাপত্যগত সক্ষমতাগুলো তুলে ধরা হয়েছে:
এজেন্টিক ডাটাবেস ইন্টিগ্রেশন (মডেল কনটেক্সট প্রোটোকল)
ঐতিহ্যগতভাবে, ডেটাবেস কোড লেখা একটি ম্যানুয়াল প্রক্রিয়া, যেখানে আপনাকে IDE, ডকুমেন্টেশন এবং ডেটাবেস ক্লায়েন্টের মধ্যে বারবার কাজ পরিবর্তন করতে হয়।
এই ল্যাবে, আপনি এই ব্যবধানটি পূরণ করতে মডেল কনটেক্সট প্রোটোকল (MCP) টুলবক্স ব্যবহার করেছেন। ডাটাবেস স্কিমা পরিদর্শন এবং SQL এক্সিকিউশনকে সরাসরি AI এজেন্টের কাছে টুল হিসেবে উন্মুক্ত করার মাধ্যমে, এজেন্টটি নিম্নলিখিত কাজগুলো করতে সক্ষম হয়েছিল:
- কাঁচা CSV ডেটা পরিদর্শন করুন এবং ডেটাবেস স্কিমা ডিজাইন করুন।
- টেবিল তৈরি করার জন্য ডিডিএল (DDL) তৈরি ও কার্যকর করুন।
- Next.js অ্যাপ্লিকেশনে কানেকশন পুলটি সংযুক্ত করুন।
এটি দেখায় যে কীভাবে MCP ডাটাবেস ডেভেলপমেন্টকে একটি কথোপকথনমূলক ও দ্রুতগতির অভিজ্ঞতায় পরিণত করে এবং একই সাথে IDE-এর মধ্যে ডেভেলপারকে সম্পূর্ণ নিয়ন্ত্রণে রাখে।
ইন-ডাটাবেস এআই (এজেন্ট প্ল্যাটফর্ম এবং সিমান্টিক সার্চ)
আপনার অ্যাপ্লিকেশনটি SQL ব্যবহার করে সরাসরি ডেটাবেসের ভিতরে ভেক্টর এমবেডিং তৈরি করতে Google Cloud-এর এজেন্ট প্ল্যাটফর্মের সাথে AlloyDB-এর নেটিভ ইন্টিগ্রেশনকে কাজে লাগায়:
- অনলাইন এমবেডিং জেনারেশন : কোনো বাহ্যিক পাইথন সার্ভিসে ডেটা নিয়ে আসার পরিবর্তে, AlloyDB ডেটাবেসের মধ্যেই SQL ফাংশনের মাধ্যমে text-embedding-004 মডেলটিকে কল করে।
- সিমান্টিক ভেক্টর সার্চ : pgvector এক্সটেনশন এবং কোসাইন ডিসটেন্স অপারেটর (<=>) ব্যবহার করে, এজেন্ট ব্যবহারকারীর স্বাভাবিক ভাষার 'ভাইব' (যেমন "রোমান্টিক ডিনার")-কে রেস্তোরাঁ ক্যাটালগে থাকা নিকটতম ভেক্টর উপস্থাপনার সাথে মেলাতে পারে এবং মিলিসেকেন্ডের মধ্যে অর্থগতভাবে প্রাসঙ্গিক ফলাফল প্রদান করে।
প্রোডাকশন-গ্রেড ডেটাবেস অপ্টিমাইজেশন (HNSW ও পার্টিশনিং)
অ্যাপ্লিকেশনটি যাতে ১ লক্ষেরও বেশি সারি পর্যন্ত স্কেল করতে পারে এবং উচ্চ ট্র্যাফিক সামলাতে পারে, তা নিশ্চিত করার জন্য আপনি একজন ভার্চুয়াল ডিবিএ হিসেবে দুটি উন্নত ডাটাবেস অপটিমাইজেশন প্রয়োগ করেছেন:
- HNSW (Hierarchical Navigable Small World) ইনডেক্স : আপনি ভেক্টর কলামের উপর একটি HNSW ইনডেক্স তৈরি করেছেন। ফ্ল্যাট ইনডেক্সের বিপরীতে, HNSW একটি বহুস্তরীয় গ্রাফ তৈরি করে যা উচ্চ রিকল সহ অত্যন্ত দ্রুত অ্যাপ্রক্সিমেট নিয়ারেস্ট নেইবার (ANN) সার্চ করতে সাহায্য করে।
- ডিক্লারেটিভ টেবিল পার্টিশনিং : আপনি রেস্তোরাঁ টেবিলটিকে এলাকা অনুযায়ী পার্টিশন করেছেন। এটি নিশ্চিত করে যে, কোনো নির্দিষ্ট এলাকাকে লক্ষ্য করে করা কোয়েরিগুলো পুরো টেবিলের পরিবর্তে শুধুমাত্র প্রাসঙ্গিক পার্টিশনটি স্ক্যান করবে, যা ডিস্ক I/O এবং কোয়েরি ল্যাটেন্সি ব্যাপকভাবে হ্রাস করে।
অ্যাপ্লিকেশন ডেভেলপার হিসেবে, আমরা প্রায়শই জটিল ডাটাবেস কনফিগারেশন, ভেক্টর গণিত এবং গভীর ইনডেক্সিং কৌশল থেকে দূরে থাকি, কারণ এগুলোর জন্য বিশেষায়িত ডিবিএ দক্ষতার প্রয়োজন হয়। একটি এজেন্টিক আইডিই-এর সাথে ভাইব কোডিং ব্যবহার করে আমরা এই ব্যবধানটি পূরণ করি। আমরা এখন আত্মবিশ্বাসের সাথে স্বাভাবিক ভাষা ব্যবহার করে প্রোডাকশন-গ্রেড ডাটাবেস অ্যাপ্লিকেশন ডিজাইন, বিল্ড এবং অপ্টিমাইজ করতে পারি—যা আমাদের ডেভেলপমেন্ট চক্রকে উল্লেখযোগ্যভাবে ত্বরান্বিত করে এবং আমাদেরকে সবচেয়ে গুরুত্বপূর্ণ বিষয়টিতে মনোযোগ দিতে সাহায্য করে: চমৎকার ইউজার এক্সপেরিয়েন্স তৈরি করা।
১২. পরিষ্কার করা
এই ল্যাবে ব্যবহৃত রিসোর্সগুলির জন্য আপনার গুগল ক্লাউড অ্যাকাউন্টে চার্জ হওয়া এড়াতে, এই ধাপগুলি অনুসরণ করুন:
- গুগল ক্লাউড কনসোলে, রিসোর্স পরিচালনা (Manage resources) পৃষ্ঠায় যান।
- প্রজেক্ট তালিকা থেকে আপনি যে প্রজেক্টটি মুছতে চান, সেটি নির্বাচন করে ডিলিট বাটনে ক্লিক করুন।
- ডায়ালগ বক্সে প্রজেক্ট আইডি টাইপ করুন এবং তারপর প্রজেক্টটি মুছে ফেলার জন্য 'শাট ডাউন'-এ ক্লিক করুন।
১৩. অভিনন্দন
আপনি ভাইব কোডিং ব্যবহার করে সফলভাবে একটি ডেটা-চালিত, এআই-পাওয়ার্ড অ্যাপ্লিকেশন তৈরি এবং স্থাপন করেছেন!
এই ল্যাবে, আপনি:
- প্রাইভেট এবং পাবলিক উভয় আইপি অ্যাক্সেস সহ একটি AlloyDB ডেটাবেস স্থাপন করা হয়েছে।
- মডেল কনটেক্সট প্রোটোকল (MCP) টুলবক্স ব্যবহার করে আপনার Antigravity IDE-কে সরাসরি ডেটাবেসের সাথে সংযুক্ত করুন।
- স্বাভাবিক ভাষা ব্যবহার করে একটি CSV ক্যাটালগ গ্রহণ করা হয়েছে, একটি Next.js ফ্রন্টএন্ডকে ডেটাবেসের সাথে সংযুক্ত করা হয়েছে এবং এটিকে ক্লাউড রান-এ ডেপ্লয় করা হয়েছে।
- ভেক্টর এমবেডিং তৈরি করতে এবং সিমান্টিক সার্চ সম্পাদনের জন্য ডেটাবেসের অভ্যন্তরে এজেন্ট প্ল্যাটফর্ম ইন্টিগ্রেশন সক্ষম করা হয়েছে।
- HNSW ইনডেক্সিং এবং টেবিল পার্টিশনিং ব্যবহার করে আপনার ডাটাবেসকে প্রোডাকশন স্কেলের জন্য অপ্টিমাইজ করতে ভার্চুয়াল ডিবিএ হিসেবে কাজ করেছি।
আপনার এআই এজেন্টের সাথে স্বাভাবিক কথোপকথনের মাধ্যমেই এই সবকিছু সম্পন্ন করা হয়েছে, কোনো ম্যানুয়াল SQL লাইন না লিখে বা কোনো বাহ্যিক ডেটাবেস ক্লায়েন্ট না খুলেই!
আরও তথ্যের জন্য, পণ্যের ডকুমেন্টেশন দেখুন: