AlloyDB দিয়ে ভাইব কোডিং: অ্যান্টিগ্র্যাভিটির সাহায্যে শূন্য থেকে প্রোডাকশন পর্যন্ত

১. ভূমিকা

ভাইব কোডিং ফ্রন্টএন্ড তৈরির গতি ও পদ্ধতিতে বৈপ্লবিক পরিবর্তন এনেছে, কিন্তু ডাটাবেসের পর্যায়ে এসে এটি প্রায়শই বাধার সম্মুখীন হয়। প্রচলিত পদ্ধতিতে, ডেভেলপারদের কনটেক্সট পরিবর্তন করতে, জটিল SQL স্কিমা লিখতে, কানেকশন পুল পরিচালনা করতে এবং ম্যানুয়ালি ডাটাবেস এক্সটেনশন কনফিগার করতে হয়।

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

আপনি যা তৈরি করবেন

এই কোডল্যাবে, আপনি একটি এআই গ্যাস্ট্রোনমি গাইড তৈরি এবং ডেপ্লয় করবেন—এটি অ্যালয়ডিবি দ্বারা সমর্থিত একটি আধুনিক নেক্সট.জেএস অ্যাপ্লিকেশন। অ্যাপ্লিকেশনটি নিম্নলিখিত বিষয়গুলো সমর্থন করবে:

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

bc2d98c88c72648e.png

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

  • পাবলিক আইপি এবং ভিপিসি নেটওয়ার্ক কনফিগারেশন ব্যবহার করে একটি গুগল ক্লাউড অ্যালয়ডিবি ইনস্ট্যান্স প্রোভিশনিং করা।
  • মডেল কনটেক্সট প্রোটোকল (MCP) টুলবক্স ব্যবহার করে Antigravity IDE-কে সরাসরি AlloyDB-এর সাথে সংযুক্ত করা।
  • এনভায়রনমেন্ট ভেরিয়েবল এবং সুরক্ষিত SSL সংযোগ ব্যবহার করে একটি Next.js ফ্রন্টএন্ডকে লাইভ ডেটাবেসের সাথে সংযুক্ত করা।
  • text-embedding-004 ব্যবহার করে ভেক্টর এমবেডিং তৈরি করার জন্য ইন-ডাটাবেস এজেন্ট প্ল্যাটফর্ম ইন্টিগ্রেশন সক্রিয় করা হচ্ছে।
  • কোসাইন দূরত্ব অপারেটর (<=>) ব্যবহার করে ভেক্টর সাদৃশ্য অনুসন্ধান সম্পাদন করা।
  • ভার্চুয়াল ডিবিএ হিসেবে কাজ করে HNSW ইনডেক্সিং এবং টেবিল পার্টিশনিং ব্যবহার করে প্রোডাকশন স্কেলের জন্য ডাটাবেসের পারফরম্যান্স অপ্টিমাইজ করা।

আপনার যা যা লাগবে

এই কোডল্যাবটি সম্পন্ন করতে আপনার প্রয়োজন হবে:

  • আপনার স্থানীয় মেশিনে অ্যান্টিগ্র্যাভিটি ইনস্টল করা আছে।
  • আপনার স্থানীয় মেশিনে গুগল ক্লাউড সিএলআই (gcloud) এবং গিট ইনস্টল ও প্রমাণীকৃত করা আছে।
  • বিলিং সক্ষম একটি গুগল ক্লাউড প্রজেক্ট।
  • একটি ওয়েব ব্রাউজার (ক্রোম ব্যবহার করার পরামর্শ দেওয়া হয়)।

এই কোডল্যাবটি নতুনদের সহ সকল স্তরের ডেভেলপারদের জন্য ডিজাইন করা হয়েছে।

২. শুরু করার আগে

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

একটি প্রকল্প তৈরি করুন

  1. গুগল ক্লাউড কনসোলের প্রজেক্ট সিলেক্টর পেজে, একটি গুগল ক্লাউড প্রজেক্ট নির্বাচন করুন বা তৈরি করুন।
  2. আপনার ক্লাউড প্রোজেক্টের জন্য বিলিং চালু আছে কিনা তা নিশ্চিত করুন। কোনো প্রোজেক্টে বিলিং চালু আছে কিনা তা কীভাবে পরীক্ষা করবেন, তা জেনে নিন।

স্থানীয় পূর্বশর্তগুলি ইনস্টল করুন

আপনার স্থানীয় মেশিনে নিম্নলিখিত টুলগুলি ইনস্টল করা আছে কিনা তা নিশ্চিত করুন:

  • অ্যান্টিগ্র্যাভিটি ২.০: অ্যান্টিগ্র্যাভিটি ইনস্টল করুন
  • গিট : গিট ডাউনলোড ও ইনস্টল করুন।
  • গুগল ক্লাউড সিএলআই: gcloud ডাউনলোড এবং ইনস্টল করুন

অ্যান্টিগ্র্যাভিটি ২.০ সেট আপ করুন

আপনি যখন প্রথমবার Antigravity 2.0 চালু করবেন, তখন আপনাকে পূর্ববর্তী ধাপ থেকে আপনার Google Cloud Project ID-টি প্রবেশ করাতে বলা হবে।

আপনার ওয়ার্কস্পেস শুরু করতে আপনার প্রজেক্ট আইডি ইনপুট করুন:

12bf4154b982f21e.png

Antigravity IDE সেট আপ করে খুলুন

আমরা আমাদের লোকাল মেশিনে Antigravity IDE ইনস্টল করে খুলব যাতে আমরা টার্মিনাল কমান্ডগুলো চালাতে পারি।

  1. Antigravity 2.0 ইন্টারফেসে, উপরের ডান কোণায় থাকা Install Antigravity IDE অপশনটি খুঁজে বের করে ক্লিক করুন।

89eb42b2f840b96d.png

  1. ডাউনলোড এবং ইনস্টলেশনের জন্য অনুরোধ এলে, ডিফল্ট সেটিংস ব্যবহার করে ইনস্টলেশন উইজার্ডটি অনুসরণ করুন।
  2. ইনস্টলেশন সম্পন্ন হলে, Antigravity IDE চালু করুন।

রিপোজিটরিটি ক্লোন করুন এবং গুগল ক্লাউডের মাধ্যমে প্রমাণীকরণ করুন।

আপনি সমস্ত কমান্ড-লাইন নির্দেশাবলী সরাসরি আপনার IDE-এর ভিতরেই কার্যকর করবেন।

  1. আপনার স্থানীয় মেশিনে Antigravity IDE খুলুন।
  2. Antigravity-র টার্মিনাল খুলুন এবং প্রজেক্ট রিপোজিটরিটি ক্লোন করুন:
git clone https://github.com/mtoscano84/vibe-coding-postgres-mcp.git
  1. প্রজেক্ট ফোল্ডারটি খুলুন:
  2. ফাইল > ফোল্ডার খুলুন (বা খুলুন...)-এ যান।
  3. নতুন ক্লোন করা vibe-coding-postgres-mcp ফোল্ডারটিতে যান এবং সেটি নির্বাচন করুন।
  4. প্রজেক্ট ফোল্ডারটি খুলে গেলে, Antigravity IDE- তে একটি নতুন ইন্টিগ্রেটেড টার্মিনাল চালু করুন। PROJECT_ID এনভায়রনমেন্ট ভেরিয়েবলটি সেট করুন এবং এটি ব্যবহার করার জন্য gcloud CLI কনফিগার করুন ([YOUR_PROJECT_ID]-এর জায়গায় আপনার আসল GCP প্রজেক্ট আইডি বসান):
export PROJECT_ID=[YOUR_PROJECT_ID]
gcloud config set project $PROJECT_ID
  1. Google Cloud CLI-তে লগ ইন করুন:
gcloud auth login
  1. অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়ালস (ADC)-এ লগ ইন করুন: ( এটি আমাদের ল্যাবের পরবর্তী অংশে AI এবং MCP ডাটাবেস কানেক্টরগুলির জন্য প্রয়োজনীয় স্থানীয় ক্রেডেনশিয়ালস ফাইলটি তৈরি করে )
gcloud auth application-default login
  1. আপনার সক্রিয় অ্যাকাউন্ট যাচাই করুন:
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 IDE ইন্টিগ্রেটেড টার্মিনালে (যা ইতিমধ্যেই 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 ব্যবহারকারীর জন্য স্বয়ংক্রিয়ভাবে তৈরি হওয়া পাসওয়ার্ড।

৪. ফ্রন্টএন্ড স্থাপন করুন

এই অংশে, আপনি Antigravity IDE-এর ইন্টিগ্রেটেড টার্মিনাল ব্যবহার করে Google Cloud Run-এ বেসলাইন Next.js ফ্রন্টএন্ড (স্টেট 0) ডেপ্লয় করবেন। এই প্রাথমিক সংস্করণটি মক ডেটা ব্যবহার করে এবং এখনও ডেটাবেসের সাথে সংযুক্ত নয়।

প্রথমে, 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-টি কপি করে আপনার ব্রাউজারে খুলুন।

নিশ্চিত করুন যে আপনি বার্লিন এআই গ্যাস্ট্রোনমি গাইড ওয়েব পেজটি দেখতে পাচ্ছেন, যেখানে নকল রেস্তোরাঁর কার্ডগুলো দেখানো হচ্ছে।

16d3649d19796847.png

৫. অ্যান্টিগ্র্যাভিটিকে গুগল ক্লাউডের সাথে সংযুক্ত করুন

আপনার IDE-তে (Antigravity) স্থানীয়ভাবে চলমান AI এজেন্টকে ডেটাবেসের সাথে যোগাযোগ করার সুযোগ দিতে, আমরা অফিসিয়াল গুগল ক্লাউড অ্যালয়ডিবি এমসিপি সার্ভার ব্যবহার করব।

যেহেতু আমরা প্রোভিশনিংয়ের সময় AlloyDB ইনস্ট্যান্সটিতে পাবলিক আইপি সক্রিয় করেছি, আপনার স্থানীয় IDE সরাসরি ইন্টারনেটের মাধ্যমে এর সাথে সংযোগ করতে পারে। এই সংযোগটি SSL এবং পাসওয়ার্ড অথেনটিকেশন দ্বারা সুরক্ষিত, এবং MCP সার্ভার সংযোগটি অনুমোদন করার জন্য আপনার স্থানীয় Google Cloud ক্রেডেনশিয়াল ব্যবহার করে।

অ্যান্টিগ্র্যাভিটিতে এমসিপি সার্ভার কনফিগার করুন

  1. Antigravity IDE-তে, চ্যাট উইন্ডোর উপরের ডান কোণায় থাকা তিনটি ডট মেনুতে (...) ক্লিক করুন।
  2. MCP সার্ভারগুলি নির্বাচন করুন, এবং তারপরে ম্যানেজড MCP সার্ভারগুলিতে ক্লিক করুন (অথবা র কনফিগারেশন দেখুন / কনফিগারেশন ফাইল সম্পাদনা করুন)।
  3. 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]"
  }
}
  1. কনফিগারেশন ফাইলটি সংরক্ষণ করুন
  2. IDE স্বয়ংক্রিয়ভাবে MCP সার্ভারটি চালু করবে। আপনি MCP প্যানেলে alloydb-postgres-এর পাশে একটি সবুজ বিন্দু দেখতে পাবেন, যা নির্দেশ করে যে এটি সফলভাবে সংযুক্ত হয়েছে।

Antigravity 2.0-এ রিপোজিটরিটি খুলুন

এই ল্যাবের বাকি অংশে আমরা অ্যান্টিগ্র্যাভিটি ২.০ ব্যবহার করে আমাদের অ্যাপ্লিকেশনটি লিখব ও তৈরি করব।

  1. Antigravity 2.0-তে ফিরে যান এবং এইমাত্র ক্লোন করা প্রজেক্ট ফোল্ডারটি খুলুন।
  2. নতুন কথোপকথন > নতুন প্রকল্প > ফোল্ডার যোগ করুন-এ ক্লিক করুন।
  3. নতুন ক্লোন করা vibe-coding-postgres-mcp ফোল্ডারটিতে যান এবং সেটি নির্বাচন করুন।
  4. এখন আপনি অ্যান্টিগ্র্যাভিটি ২.০-এর ভিতরে আপনার এজেন্ট ইন্টারফেসটি দেখতে পাবেন, যা সরাসরি আপনার ক্লোন করা ওয়ার্কস্পেসের দিকে নির্দেশ করছে এবং কোডিংয়ের জন্য প্রস্তুত!

e806fdbce47d43f0.png

৬. ভাইব কোডিং: ডাটাবেস ইনজেশন

এখন যেহেতু আপনার Antigravity, MCP সার্ভারের মাধ্যমে আপনার AlloyDB ইনস্ট্যান্সের সাথে সংযুক্ত হয়েছে, আপনি ভাইব-কোডিং অভিজ্ঞতা শুরু করতে পারেন।

এই ধাপে, আপনি এআই এজেন্টকে বার্লিন গ্যাস্ট্রোনমি ক্যাটালগ সম্বলিত একটি স্থানীয় CSV ফাইল পড়তে এবং সেটি আপনার AlloyDB ডেটাবেসে লোড করতে নির্দেশ দেবেন।

কাজটি

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

এরপর, নিচের প্রম্পটটি কপি করে চ্যাটে পেস্ট করুন এবং এন্টার চাপুন:

Read the headers of database/seed_data_berlin.csv. Connect to the database via the MCP tool, create a table named restaurants with the correct data types, and load all the records from the CSV file into it.

এজেন্টটি যখন কাজটি সম্পাদন করে তখন তাকে পর্যবেক্ষণ করে:

  • এটি উপযুক্ত স্কিমা নির্ধারণ করার জন্য প্রথমে CSV ফাইলের হেডার এবং কিছু নমুনা সারি পড়বে।
  • এটি রেস্তোরাঁ টেবিলটি তৈরি করার জন্য AlloyDB MCP টুলটিকে কল করবে।
  • এটি CSV ফাইল থেকে ১০০টি রেস্তোরাঁর রেকর্ড একসাথে ডাটাবেসে যুক্ত করবে।

যাচাইকরণ

এজেন্ট আপনাকে কাজ শেষ হওয়ার কথা জানালে, আপনি ডেটা লোড হয়েছে কিনা তা যাচাই করতে পারেন:

এজেন্ট চ্যাটে, এজেন্টকে জিজ্ঞাসা করুন:

Show me the first 5 records from the restaurants table.

এজেন্টটি ডাটাবেসে কোয়েরি করে প্রথম ৫টি রেস্তোরাঁ (যেমন পাব লিয়াস কিচেন এবং ক্যাফে ক্লারচেন্স) প্রদর্শন করবে, যা ডাটাবেসে ডেটা অন্তর্ভুক্তিকরণ সফল হয়েছে তা নিশ্চিত করবে।

৭. ভাইব কোডিং: ফ্রন্টএন্ডকে ডেটাবেসের সাথে সংযুক্ত করুন

এই অংশে, আপনি আপনার 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 '[YOUR_PASSWORD]'), 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

এজেন্টটি যখন কাজটি সম্পাদন করে তখন তাকে পর্যবেক্ষণ করে:

  • এটি pg প্যাকেজ এবং এর TypeScript টাইপগুলো (@types/pg) ইনস্টল করবে।
  • এটি একটি ডাটাবেস সংযোগ ফাইল (অথবা একটি Next.js সার্ভার অ্যাকশন) তৈরি করবে এবং সংযোগ পুলটি কনফিগার করবে।
  • এটি AGENTS.md-এর নিয়মগুলো পড়বে এবং স্বয়ংক্রিয়ভাবে নন-লোকাল হোস্টগুলোর জন্য SSL কনফিগারেশন যোগ করবে।
  • এটি ডেটাবেস থেকে ডেটা কোয়েরি করতে এবং সার্চ কোয়েরির উপর ভিত্তি করে ফলাফল ফিল্টার করার জন্য page.tsx ফাইলটিকে নতুন করে লিখবে।

যাচাইকরণ

পরিবর্তনগুলো পরীক্ষা করার জন্য, আপনাকে অবশ্যই ক্লাউড রান-এ ফ্রন্টএন্ডটি পুনরায় ডিপ্লয় করতে হবে। যেহেতু আমরা 'ক্লাউড-অনলি' ফ্লো ব্যবহার করছি, তাই নতুন কোডটি এভাবেই পাঠানো হয়।

Antigravity IDE- তে ইন্টিগ্রেটেড টার্মিনালটি খুলুন (নিশ্চিত করুন যে আপনি রুট ডিরেক্টরিতে আছেন)।

আপনার 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.

এজেন্টটি যখন কাজটি সম্পাদন করে তখন তাকে পর্যবেক্ষণ করে:

  • এটি AlloyDB-এর সাথে সংযুক্ত হবে এবং ভেক্টর (pgvector) ও google_ml_integration এক্সটেনশনগুলো সক্রিয় করবে।
  • এটি ডাটাবেসের মধ্যে এজেন্ট প্ল্যাটফর্ম এমবেডিং মডেল (টেক্সট-এমবেডিং-০০৪) নিবন্ধন করবে।
  • এটি রেস্তোরাঁ টেবিলে একটি নতুন এমবেডিং কলাম যোগ করবে।
  • এটি ১০০টি রেস্তোরাঁর বিবরণের সবগুলোর জন্য এমবেডিং তৈরি করতে ডাটাবেসের মধ্যে একটি কোয়েরি চালাবে।
  • এটি ব্যবহারকারীর সার্চ কোয়েরির জন্য একটি এমবেডিং তৈরি করতে ফ্রন্টএন্ড কোড আপডেট করবে এবং কোসাইন ডিসটেন্স অপারেটর (<=>) ব্যবহার করে একটি ভেক্টর সিমিলারিটি সার্চ সম্পাদন করবে।

যাচাইকরণ

আপডেট করা কোডটি ক্লাউড রান-এ পুনরায় ডেপ্লয় করুন।

Antigravity IDE-এর ইন্টিগ্রেটেড টার্মিনালে, ডিপ্লয়মেন্ট কমান্ডটি চালান (প্লেসহোল্ডারগুলিতে আপনার আসল মান বসান):

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 a Principal Database Architect. Our semantic search is working, but we need to optimize the database for production scale. Analyze our current schema. What are the top 2 database-schema optimizations you recommend we implement right now? Explain them to me and wait for my approval before modifying the database.

এজেন্ট ডাটাবেসটি বিশ্লেষণ করবে এবং দুটি সুপারিশসহ উত্তর দেবে:

  • HNSW ইনডেক্স : ভেক্টর সিমিলারিটি কোয়েরিগুলোকে অত্যন্ত দ্রুত করার জন্য এমবেডিং কলামের উপর একটি অ্যাপ্রক্সিমেট নিয়ারেস্ট নেইবার (ANN) ইনডেক্স।
  • টেবিল পার্টিশনিং: কোয়েরির পারফরম্যান্স এবং পরিচালনাযোগ্যতা উন্নত করার জন্য রেস্তোরাঁ টেবিলকে পার্টিশন করা (যেমন, এলাকা অনুযায়ী লিস্ট পার্টিশনিং)।

ব্যাখ্যাগুলো পর্যালোচনা করুন। প্রস্তুত হলে, চ্যাটে এজেন্টকে উত্তর দিন:

Approved, please apply these optimizations.

এজেন্টটি যখন কাজটি সম্পাদন করে তখন তাকে পর্যবেক্ষণ করে:

  • এটি এমবেডিং কলামে HNSW ইনডেক্স তৈরি করবে।
  • এটি রেস্তোরাঁ টেবিলটিকে এলাকা অনুযায়ী বিভক্ত করবে, প্রতিটি এলাকার জন্য চাইল্ড পার্টিশন টেবিল তৈরি করবে এবং বিদ্যমান ডেটা স্থানান্তর করবে।

যাচাইকরণ

অপ্টিমাইজেশনগুলো সফলভাবে প্রয়োগ করা হয়েছে কিনা তা যাচাই করতে এজেন্টকে বলুন। এজেন্ট চ্যাটে জিজ্ঞাসা করুন:

Show me the list of partitions for the restaurants table and the indexes on it.

এজেন্টটি ডাটাবেস ক্যাটালগ কোয়েরি করবে এবং নতুন পার্টিশন কাঠামো (যেমন, restaurants_mitte, restaurants_kreuzberg) ও HNSW ইনডেক্স প্রদর্শন করবে, যা নিশ্চিত করবে যে আপনার ডাটাবেস এখন প্রোডাকশনের জন্য সম্পূর্ণরূপে অপ্টিমাইজ করা হয়েছে!

১০. চ্যালেঞ্জ: রিভিউ এবং রেটিং যোগ করুন

এবার আপনার ভাইব কোডিং দক্ষতা পরীক্ষা করার পালা! এই চ্যালেঞ্জে, আপনি গ্রাহক পর্যালোচনা এবং স্টার রেটিং সমর্থন করার জন্য বার্লিন গ্যাস্ট্রোনমি গাইডটিকে প্রসারিত করবেন।

কাজটি

কপি-পেস্ট করা নির্দেশ অনুসরণ করার পরিবর্তে, নিম্নলিখিত বৈশিষ্ট্যগুলি বাস্তবায়ন করতে অ্যান্টিগ্র্যাভিটি এজেন্ট চ্যাটে আপনার নিজস্ব নির্দেশ লিখুন :

  1. ডাটাবেস স্কিমা : restaurants টেবিলের সাথে লিঙ্ক করা একটি নতুন reviews টেবিল তৈরি করুন। এতে একটি রেটিং (১ থেকে ৫ পর্যন্ত একটি পূর্ণসংখ্যা) এবং একটি সংক্ষিপ্ত মন্তব্য সংরক্ষণ করা হবে।
  2. ডেটা তৈরি : ডাটাবেসে থাকা ১০০টি রেস্তোরাঁর প্রতিটির জন্য ৩-৪টি বাস্তবসম্মত গ্রাহক রিভিউ তৈরি করুন।
  3. ফ্রন্টএন্ড ইন্টিগ্রেশন : প্রতিটি রেস্তোরাঁ কার্ডে গড় স্টার রেটিং (যেমন, ⭐⭐⭐⭐☆ ) গণনা করে প্রদর্শন করার জন্য Next.js ফ্রন্টএন্ড আপডেট করুন।
  4. ফিল্টারিং: রেটিং অনুযায়ী রেস্তোরাঁ ফিল্টার করতে পেজের উপরে একটি ড্রপডাউন ফিল্টার যোগ করুন (যেমন, "সবগুলো দেখান", "৪+ স্টার", "৩+ স্টার")।

যাচাইকরণ

এজেন্ট কাজটি সম্পন্ন করলে, Antigravity IDE-এর ইন্টিগ্রেটেড টার্মিনাল থেকে আপনার অ্যাপ্লিকেশনটি ক্লাউড রান-এ পুনরায় ডেপ্লয় করুন (প্লেসহোল্ডারগুলির জায়গায় আপনার আসল মান বসান):

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

ডেপ্লয়মেন্ট সম্পন্ন হলে, আপনার ব্রাউজার রিফ্রেশ করুন এবং কার্ডগুলিতে আপনার স্টার রেটিং যাচাই করুন।

1433b3c589f08f2a.png .

১১. ফলাফল

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

এজেন্টিক ডাটাবেস ইন্টিগ্রেশন (মডেল কনটেক্সট প্রোটোকল)

ঐতিহ্যগতভাবে, ডেটাবেস কোড লেখা একটি ম্যানুয়াল প্রক্রিয়া, যেখানে আপনাকে 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 এবং কোয়েরি ল্যাটেন্সি ব্যাপকভাবে হ্রাস করে।

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

১২. পরিষ্কার করা

এই ল্যাবে ব্যবহৃত রিসোর্সগুলির জন্য আপনার গুগল ক্লাউড অ্যাকাউন্টে চার্জ হওয়া এড়াতে, এই ধাপগুলি অনুসরণ করুন:

  1. গুগল ক্লাউড কনসোলে, 'ম্যানেজ রিসোর্সেস' পৃষ্ঠায় যান।
  2. প্রজেক্ট তালিকা থেকে আপনি যে প্রজেক্টটি মুছতে চান, সেটি নির্বাচন করে ডিলিট বাটনে ক্লিক করুন।
  3. ডায়ালগ বক্সে প্রজেক্ট আইডি টাইপ করুন এবং তারপর প্রজেক্টটি মুছে ফেলার জন্য 'শাট ডাউন'-এ ক্লিক করুন।

১৩. অভিনন্দন

আপনি ভাইব কোডিং ব্যবহার করে সফলভাবে একটি ডেটা-চালিত, এআই-পাওয়ার্ড অ্যাপ্লিকেশন তৈরি এবং স্থাপন করেছেন!

এই ল্যাবে, আপনি:

  • প্রাইভেট এবং পাবলিক উভয় আইপি অ্যাক্সেস সহ একটি AlloyDB ডেটাবেস স্থাপন করা হয়েছে।
  • মডেল কনটেক্সট প্রোটোকল (MCP) টুলবক্স ব্যবহার করে আপনার Antigravity IDE-কে সরাসরি ডেটাবেসের সাথে সংযুক্ত করুন।
  • স্বাভাবিক ভাষা ব্যবহার করে একটি CSV ক্যাটালগ গ্রহণ করা হয়েছে, একটি Next.js ফ্রন্টএন্ডকে ডেটাবেসের সাথে সংযুক্ত করা হয়েছে এবং এটিকে ক্লাউড রান-এ ডেপ্লয় করা হয়েছে।
  • ভেক্টর এমবেডিং তৈরি করতে এবং সিমান্টিক সার্চ সম্পাদনের জন্য ডেটাবেসের অভ্যন্তরে এজেন্ট প্ল্যাটফর্ম ইন্টিগ্রেশন সক্ষম করা হয়েছে।
  • HNSW ইনডেক্সিং এবং টেবিল পার্টিশনিং ব্যবহার করে আপনার ডাটাবেসকে প্রোডাকশন স্কেলের জন্য অপ্টিমাইজ করতে ভার্চুয়াল ডিবিএ হিসেবে কাজ করেছি।

আপনার এআই এজেন্টের সাথে স্বাভাবিক কথোপকথনের মাধ্যমেই এই সবকিছু সম্পন্ন করা হয়েছে, কোনো ম্যানুয়াল SQL লাইন না লিখে বা কোনো বাহ্যিক ডেটাবেস ক্লায়েন্ট না খুলেই!

আরও তথ্যের জন্য, পণ্যের ডকুমেন্টেশন দেখুন: