کدنویسی Vibe با AlloyDB: از صفر تا تولید با ضد جاذبه

۱. مقدمه

کدنویسی Vibe سرعت و نحوه توسعه frontendها را متحول کرده است، اما اغلب وقتی به پایگاه داده می‌رسد، به بن‌بست می‌خورد. به طور سنتی، توسعه‌دهندگان باید contextها را تغییر دهند، طرح‌های پیچیده SQL بنویسند، connection poolها را مدیریت کنند و افزونه‌های پایگاه داده را به صورت دستی پیکربندی کنند.

در این آزمایشگاه کد، شما یک گردش کار توسعه پایگاه داده بدون مشکل و محاوره‌ای را تجربه خواهید کرد. با استفاده از پروتکل زمینه مدل (MCP) و یک IDE عامل‌گرا، با ویرایشگر خود مانند یک مهندس داده باتجربه رفتار خواهید کرد - از یک ایده ساده به یک برنامه پایگاه داده کاملاً متصل، بهینه شده و دارای قابلیت هوش مصنوعی در عرض چند دقیقه، بدون ترک فضای کاری خود، تبدیل خواهید شد.

آنچه خواهید ساخت

در این آزمایشگاه کد، شما یک راهنمای آشپزی هوش مصنوعی - یک برنامه مدرن Next.js که توسط AlloyDB پشتیبانی می‌شود - را خواهید ساخت و مستقر خواهید کرد. این برنامه از موارد زیر پشتیبانی خواهد کرد:

  • دریافت پویای کاتالوگ : وارد کردن و ساختاردهی خودکار داده‌های رستوران از فایل‌های خام CSV.
  • جستجوی مبتنی بر کلمه کلیدی : پرس و جو در پایگاه داده به صورت پویا با استفاده از جستجوی متن کامل.
  • جستجوی معنایی مبتنی بر هوش مصنوعی : یافتن رستوران‌ها با توصیف «حال و هوای» آنها (مثلاً «مکان دنج برای قرار ملاقات» یا «غذای سریع آخر شب») با استفاده از تعبیه‌های پلتفرم عامل.

bc2d98c88c72648e.png

آنچه یاد خواهید گرفت

  • تأمین یک نمونه Google Cloud AlloyDB با پیکربندی‌های شبکه IP عمومی و VPC.
  • اتصال مستقیم Antigravity IDE به AlloyDB با استفاده از جعبه ابزار Model Context Protocol (MCP).
  • اتصال یک رابط کاربری Next.js به یک پایگاه داده زنده با استفاده از متغیرهای محیطی و اتصالات SSL امن.
  • فعال‌سازی یکپارچه‌سازی پلتفرم عامل درون پایگاه داده برای تولید جاسازی‌های برداری با استفاده از text-embedding-004.
  • انجام جستجوی تشابه برداری با استفاده از عملگر فاصله کسینوسی (<=>).
  • بهینه‌سازی عملکرد پایگاه داده برای مقیاس تولید با استفاده از نمایه‌سازی HNSW و پارتیشن‌بندی جدول - عمل به عنوان یک DBA مجازی.

آنچه نیاز دارید

برای تکمیل این آزمایشگاه کد، به موارد زیر نیاز دارید:

  • آنتی‌گراویتی روی دستگاه محلی شما نصب شده است.
  • رابط خط فرمان گوگل کلود (gcloud) و گیت روی دستگاه محلی شما نصب و احراز هویت شده باشند.
  • یک پروژه ابری گوگل با قابلیت پرداخت صورتحساب.
  • یک مرورگر وب (کروم توصیه می‌شود).

این codelab برای توسعه‌دهندگان در تمام سطوح، از جمله مبتدیان، طراحی شده است.

۲. قبل از شروع

این بخش شما را در تنظیمات اولیه مورد نیاز در پروژه گوگل کلود خود، قبل از شروع ساخت راهنمای هوش مصنوعی آشپزی برلین، راهنمایی می‌کند.

ایجاد یک پروژه

  1. در کنسول گوگل کلود ، در صفحه انتخاب پروژه، یک پروژه گوگل کلود را انتخاب یا ایجاد کنید.
  2. مطمئن شوید که صورتحساب برای پروژه ابری شما فعال است. یاد بگیرید که چگونه بررسی کنید که آیا صورتحساب در یک پروژه فعال است یا خیر .

نصب پیش‌نیازهای محلی

مطمئن شوید که ابزارهای زیر را روی دستگاه محلی خود نصب کرده‌اید:

راه‌اندازی آنتی‌گراویتی ۲.۰

اولین باری که Antigravity 2.0 را اجرا می‌کنید، از شما خواسته می‌شود شناسه پروژه Google Cloud خود را که در مرحله قبل ایجاد کرده‌اید، وارد کنید.

شناسه پروژه خود را برای مقداردهی اولیه فضای کاری وارد کنید:

۱۲bf4154b982f21e.png

راه‌اندازی و باز کردن Antigravity IDE

ما Antigravity IDE را روی دستگاه محلی خود نصب و باز خواهیم کرد تا بتوانیم دستورات ترمینال خود را اجرا کنیم.

  1. در رابط کاربری Antigravity 2.0 ، گزینه نصب Antigravity IDE (در گوشه بالا سمت راست) را پیدا کرده و روی آن کلیک کنید.

89eb42b2f840b96d.png

  1. پس از نمایش اعلان دانلود و نصب، با استفاده از تنظیمات پیش‌فرض، مراحل نصب را دنبال کنید.
  2. پس از اتمام نصب، Antigravity IDE را اجرا کنید.

مخزن را کلون کنید و با Google Cloud احراز هویت کنید

شما تمام دستورالعمل‌های خط فرمان را مستقیماً درون IDE خود اجرا خواهید کرد.

  1. Antigravity IDE را روی دستگاه محلی خود باز کنید
  2. ترمینال Antigravity را باز کنید و مخزن پروژه را کلون کنید:
git clone https://github.com/mtoscano84/vibe-coding-postgres-mcp.git
  1. پوشه پروژه را باز کنید:
  2. به مسیر File > Open Folder (یا Open...) بروید.
  3. به پوشه‌ی vibe-coding-postgres-mcp که به تازگی کلون شده است بروید و آن را انتخاب کنید.
  4. پس از باز شدن پوشه پروژه، یک ترمینال یکپارچه جدید در Antigravity IDE راه‌اندازی کنید. متغیر محیطی PROJECT_ID را تنظیم کرده و رابط خط فرمان gcloud را برای استفاده از آن پیکربندی کنید ([YOUR_PROJECT_ID] را با شناسه پروژه GCP واقعی خود جایگزین کنید):
export PROJECT_ID=[YOUR_PROJECT_ID]
gcloud config set project $PROJECT_ID
  1. وارد رابط خط فرمان گوگل کلود شوید:
gcloud auth login
  1. وارد بخش اعتبارنامه‌های پیش‌فرض برنامه (ADC) شوید: ( این فایل اعتبارنامه‌های محلی مورد نیاز رابط‌های پایگاه داده هوش مصنوعی و MCP ما را در ادامه آزمایش ایجاد می‌کند .)
gcloud auth application-default login
  1. حساب فعال خود را تأیید کنید:
gcloud auth list

فعال کردن API های مورد نیاز

دستور زیر را در ترمینال Antigravity خود اجرا کنید تا سرویس‌های لازم Google Cloud فعال شوند:

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 خود اجرا خواهید کرد تا کلاستر AlloyDB و نمونه آن را در Google Cloud آماده‌سازی کنید.

در ترمینال فعال Antigravity IDE (که از قبل در دایرکتوری پروژه vibe-coding-postgres-mcp قرار دارد)، اسکریپت تأمین AlloyDB را اجرا کنید:

source database/deploy_alloydb.sh --region us-central1 --public-ip

توجه: فرآیند آماده‌سازی تقریباً ۱۰ تا ۱۵ دقیقه طول می‌کشد

اسکریپت ارائه::

  • یک شبکه VPC با نام default ایجاد کنید (اگر در پروژه شما وجود ندارد).
  • دسترسی به سرویس‌های خصوصی را برای AlloyDB تنظیم کنید.
  • یک کلاستر AlloyDB و یک نمونه اصلی با IP خصوصی و IP عمومی فعال، مستقر کنید.
  • مجوزهای لازم Agent Platform را به عامل سرویس 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)
----------------------------------------

لطفاً، حتماً این جزئیات را کپی و ذخیره کنید:

  • آدرس IP خصوصی AlloyDB : توسط برنامه Cloud Run برای اتصال ایمن در VPC استفاده می‌شود.
  • آدرس IP عمومی AlloyDB : توسط Antigravity IDE محلی شما برای اتصال مستقیم استفاده می‌شود.
  • رمز عبور پایگاه داده : رمز عبوری که به صورت خودکار برای کاربر postgres ایجاد می‌شود.

۴. استقرار فرانت‌اند

در این بخش، شما رابط کاربری اولیه Next.js (وضعیت 0) را با استفاده از ترمینال یکپارچه Antigravity IDE در Google Cloud Run مستقر خواهید کرد. این نسخه اولیه از داده‌های ساختگی استفاده می‌کند و هنوز به پایگاه داده متصل نمی‌شود.

ابتدا، دستورات زیر را مستقیماً در ترمینال Antigravity خود اجرا کنید تا نقش‌های IAM لازم را به حساب سرویس پیش‌فرض Compute Engine اعطا کنید:

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"

از ریشه دایرکتوری vibe-coding-postgres-mcp در ترمینال Antigravity خود، دستور زیر را برای کامپایل و استقرار برنامه Next.js در شبکه VPC خود اجرا کنید:

gcloud run deploy berlin-gastronomy-guide \
  --source frontend/ \
  --network=default \
  --subnet=default \
  --allow-unauthenticated \
  --region=us-central1

پس از اتمام استقرار، URL سرویس را چاپ می‌کند.

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

آدرس اینترنتی را کپی کرده و در مرورگر خود باز کنید.

مطمئن شوید که صفحه وب راهنمای آشپزی هوش مصنوعی برلین را که کارت‌های رستوران‌های آزمایشی را نشان می‌دهد، مشاهده می‌کنید.

۱۶d۳۶۴۹d۱۹۷۹۶۸۴۷.png

۵. آنتی‌گراویتی را به گوگل کلود متصل کنید

برای اینکه عامل هوش مصنوعی در IDE شما (Antigravity) که به صورت محلی اجرا می‌شود، بتواند با پایگاه داده تعامل داشته باشد، از سرور رسمی Google Cloud AlloyDB MCP استفاده خواهیم کرد.

از آنجایی که ما در هنگام آماده‌سازی، Public IP را روی نمونه AlloyDB فعال کردیم، IDE محلی شما می‌تواند مستقیماً از طریق اینترنت به آن متصل شود. این اتصال با استفاده از SSL و احراز هویت با رمز عبور ایمن شده است و سرور MCP از اعتبارنامه‌های محلی Google Cloud شما برای تأیید اتصال استفاده می‌کند.

پیکربندی سرور MCP در Antigravity

  1. در Antigravity IDE، روی منوی سه نقطه (...) در گوشه سمت راست بالای پنجره چت کلیک کنید.
  2. سرورهای MCP را انتخاب کنید و سپس روی سرورهای مدیریت‌شده MCP (یا مشاهده پیکربندی خام / ویرایش فایل پیکربندی) کلیک کنید.
  3. بلوک JSON زیر را درون شیء mcpServers اضافه کنید. مطمئن شوید که [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 را اجرا می‌کند. شما باید یک نقطه سبز در کنار alloydb-postgres در پنل MCP ببینید که نشان می‌دهد اتصال با موفقیت انجام شده است.

مخزن را در Antigravity 2.0 باز کنید

در ادامه‌ی این آزمایش، ما برنامه‌ی خود را با استفاده از Antigravity 2.0 خواهیم نوشت و خواهیم ساخت.

  1. به Antigravity 2.0 برگردید و پوشه پروژه‌ای که کپی کرده‌اید را باز کنید.
  2. روی گفتگوی جدید > پروژه جدید > افزودن پوشه کلیک کنید.
  3. به پوشه‌ی vibe-coding-postgres-mcp که به تازگی کلون شده است بروید و آن را انتخاب کنید.
  4. اکنون رابط عامل خود را در Antigravity 2.0 مشاهده خواهید کرد که مستقیماً به فضای کاری کلون شده شما اشاره می‌کند و آماده کدنویسی است!

e806fdbce47d43f0.png

۶. کدنویسی Vibe: جذب پایگاه داده

اکنون که Antigravity شما از طریق سرور MCP به نمونه AlloyDB شما متصل شده است، می‌توانید تجربه کدنویسی vibe را شروع کنید.

در این مرحله، به عامل هوش مصنوعی دستور می‌دهید که یک فایل CSV محلی حاوی کاتالوگ غذاهای برلین را بخواند و آن را در پایگاه داده AlloyDB شما بارگذاری کند.

وظیفه

شما از چت عامل در Antigravity استفاده خواهید کرد. عامل به طور خودکار فایل را می‌خواند، انواع داده‌ها را تجزیه و تحلیل می‌کند، به پایگاه داده شما متصل می‌شود، جدول را ایجاد می‌کند و رکوردها را درج می‌کند.

سپس، عبارت زیر را کپی کرده و در چت پیست کنید و Enter را بزنید:

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.

عامل از پایگاه داده پرس و جو می‌کند و ۵ رستوران اول (مانند Pub Lia's Kitchen و Cafe Clärchens) را نمایش می‌دهد و تأیید می‌کند که ورود به پایگاه داده موفقیت‌آمیز بوده است.

۷. کدنویسی Vibe: اتصال فرانت‌اند به پایگاه داده

در این بخش، شما رابط کاربری Next.js را به پایگاه داده زنده AlloyDB خود متصل خواهید کرد. به عامل دستور می‌دهید که داده‌های ساختگی را با یک پرس‌وجوی پایگاه داده زنده جایگزین کند و جستجوی کلمات کلیدی را پیاده‌سازی کند.

وظیفه

شما از agent می‌خواهید که کد اتصال را بنویسد و صفحه اصلی را به‌روزرسانی کند. از آنجایی که ما قانون SSL پایگاه داده را در .agents/AGENTS.md اعمال کرده‌ایم، agent به طور خودکار connection pool را برای استفاده از SSL برای اتصالات ابری پیکربندی می‌کند، بدون اینکه نیازی به مشخص کردن آن در prompt شما باشد!

در چت Antigravity Agent، عبارت زیر را کپی و پیست کنید و Enter را بزنید (به جای [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 Server Action) ایجاد کرده و مجموعه اتصال را پیکربندی می‌کند.
  • این دستور، قوانین AGENTS.md را می‌خواند و به طور خودکار پیکربندی SSL را برای میزبان‌های غیر محلی اضافه می‌کند.
  • این تابع، فایل page.tsx را بازنویسی می‌کند تا از پایگاه داده پرس‌وجو کند و نتایج را بر اساس عبارت جستجو فیلتر کند.

تأیید

برای آزمایش تغییرات، باید رابط کاربری را دوباره به Cloud Run منتقل کنید. از آنجایی که ما از جریان "فقط ابری" استفاده می‌کنیم، کد جدید به این صورت ارسال می‌شود.

ترمینال یکپارچه را در Antigravity IDE باز کنید (مطمئن شوید که در دایرکتوری ریشه هستید).

دستور استقرار را اجرا کنید و آدرس IP خصوصی و رمز عبور 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

پس از اتمام استقرار، URL سرویس را در مرورگر خود باز کنید.

سعی کنید «Burgermeister» یا «Kebab» را جستجو کنید. باید رستوران‌های واقعی را که از پایگاه داده بارگذاری شده‌اند، ببینید!

توجه داشته باشید که کارت‌های رستوران اکنون تصاویر GCS واقعی خود را نمایش می‌دهند (زیرا رکوردهای پایگاه داده حاوی URLهای عمومی GCS هستند که قبلاً بارگذاری کرده‌ایم!).

۸. کدنویسی Vibe: جستجوی معنایی را فعال کنید

در این بخش، شما برنامه خود را برای پشتیبانی از جستجوی برداری معنایی مبتنی بر هوش مصنوعی ارتقا خواهید داد. به جای تطبیق دقیق کلمات کلیدی، کاربران می‌توانند با توصیف «حال و هوا» یا تجربه‌ای که به دنبال آن هستند (مثلاً «محل شام رمانتیک» یا «غذای فوری بعد از کلوب») جستجو کنند.

وظیفه

شما به عامل دستور می‌دهید که جستجوی معنایی را در جدول رستوران‌ها فعال کند. عامل از مهارت سفارشی add-vector-search-alloydb در مخزن استفاده می‌کند تا به طور خودکار افزونه‌های پایگاه داده، ثبت مدل پلتفرم عامل، تولید جاسازی و به‌روزرسانی‌های پرس‌وجو را مدیریت کند.

در چت Antigravity Agent، عبارت زیر را کپی و پیست کنید و Enter را بزنید:

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 متصل می‌شود و افزونه‌های vector (pgvector) و google_ml_integration را فعال می‌کند.
  • این مدل جاسازی پلتفرم عامل (text-embedding-004) را در داخل پایگاه داده ثبت می‌کند.
  • این یک ستون جاسازی جدید به جدول رستوران‌ها اضافه خواهد کرد.
  • این یک کوئری درون پایگاه داده اجرا می‌کند تا جاسازی‌هایی برای هر ۱۰۰ توصیف رستوران ایجاد کند.
  • این کد frontend را به‌روزرسانی می‌کند تا یک جاسازی برای عبارت جستجوی کاربر ایجاد کند و با استفاده از عملگر فاصله کسینوسی (<=>) جستجوی شباهت برداری را انجام دهد.

تأیید

کد به‌روزرسانی‌شده را دوباره در Cloud Run مستقر کنید.

در ترمینال یکپارچه Antigravity IDE ، دستور deployment را اجرا کنید (جایگزین‌های متغیر را با مقادیر واقعی خود جایگزین کنید):

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

پس از اتمام استقرار، URL سرویس را در مرورگر خود باز کنید.

جستجوی معنایی را با وارد کردن یک توضیح به زبان طبیعی، مانند موارد زیر، آزمایش کنید:

  • «یک مکان شام رمانتیک»
  • "گاز گرفتن سریع بعد از چماق زدن"

توجه داشته باشید که این برنامه رستوران‌های بسیار مرتبط (مانند Cafe Clärchens یا Burgermeister) را حتی اگر کلمات دقیق "romantic" یا "clubbing" در نام یا توضیحات آنها وجود نداشته باشد، نمایش می‌دهد!

۹. کدنویسی Vibe: بهینه‌سازی پایگاه داده

همزمان با رشد برنامه شما، پایگاه داده باید برای مدیریت حجم زیادی از داده‌ها (بیش از ۱۰۰ هزار سطر) و ترافیک جستجوی همزمان بالا بهینه شود. در این مرحله آخر، شما با عامل خود به عنوان یک مدیر پایگاه داده مجازی (DBA) رفتار خواهید کرد تا طرحواره پایگاه داده شما را تجزیه و تحلیل و بهینه کند.

وظیفه

شما از عامل (Agent) خواهید خواست که به عنوان معمار اصلی پایگاه داده (Principal Database Architect) عمل کند، طرحواره فعلی را تجزیه و تحلیل کند و بهینه‌سازی‌هایی را پیشنهاد دهد. پس از بررسی و تأیید توصیه‌ها توسط شما، عامل از مهارت سفارشی 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.

عامل، کاتالوگ پایگاه داده را بررسی کرده و ساختار پارتیشن جدید (مثلاً restaurant_mitte، restaurant_kreuzberg) و اندیس HNSW را نمایش می‌دهد و تأیید می‌کند که پایگاه داده شما اکنون کاملاً برای تولید بهینه شده است!

۱۰. چالش: اضافه کردن نظرات و امتیازدهی

حالا نوبت شماست که مهارت‌های کدنویسی Vibe خود را محک بزنید! در این چالش، شما راهنمای آشپزی برلین را گسترش می‌دهید تا از نظرات مشتریان و رتبه‌بندی ستاره‌ها پشتیبانی کند.

وظیفه

به جای دنبال کردن یک دستور کپی-پیست، دستور خودتان را در چت مامور ضد جاذبه بنویسید تا ویژگی‌های زیر را پیاده‌سازی کنید:

  1. طرحواره پایگاه داده : یک جدول reviews جدید ایجاد کنید که به جدول restaurants لینک شده باشد. این جدول باید یک امتیاز (یک عدد صحیح از ۱ تا ۵) و یک نظر کوتاه متنی را ذخیره کند.
  2. تولید داده : برای هر یک از ۱۰۰ رستوران موجود در پایگاه داده، ۳ تا ۴ نظر واقعی از مشتریان ایجاد کنید.
  3. یکپارچه‌سازی رابط کاربری : رابط کاربری Next.js را به‌روزرسانی کنید تا میانگین امتیاز ستاره‌ای (مثلاً ⭐⭐⭐⭐☆ ) را برای هر کارت رستوران محاسبه و نمایش دهد.
  4. فیلتر کردن: یک فیلتر کشویی در بالای صفحه اضافه کنید تا رستوران‌ها را بر اساس امتیازشان فیلتر کنید (مثلاً «نمایش همه»، «۴+ ستاره»، «۳+ ستاره»).

تأیید

پس از اتمام کار توسط عامل، برنامه خود را از ترمینال یکپارچه Antigravity IDE به Cloud Run منتقل کنید (متغیرها را با مقادیر واقعی خود جایگزین کنید):

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

پس از اتمام استقرار، مرورگر خود را رفرش کنید و تأیید کنید که به کارت‌ها ستاره می‌دهید.

۱۴۳۳b3c589f08f2a.png .

۱۱. نتایج

پس از تکمیل مراحل، شما با موفقیت یک برنامه هوش مصنوعی مبتنی بر پایگاه داده نسل بعدی را با استفاده از Vibe Coding ساخته و بهینه کرده‌اید. این بخش قابلیت‌های اصلی معماری که پیاده‌سازی کرده‌اید را برجسته می‌کند:

یکپارچه‌سازی پایگاه داده عامل (پروتکل زمینه مدل)

به طور سنتی، نوشتن کد پایگاه داده یک فرآیند دستی برای تغییر زمینه بین IDE، مستندات و کلاینت‌های پایگاه داده است.

در این آزمایش، شما از جعبه ابزار پروتکل زمینه مدل (MCP) برای پر کردن این شکاف استفاده کردید. با ارائه بازرسی طرحواره پایگاه داده و اجرای SQL به عنوان ابزارهایی که مستقیماً در اختیار عامل هوش مصنوعی قرار می‌گیرند، عامل توانست:

  • داده‌های خام CSV را بررسی کرده و طرح پایگاه داده را طراحی کنید.
  • DDL را برای ایجاد جداول تولید و اجرا کنید.
  • اتصال را در برنامه Next.js برقرار کنید.

این نشان می‌دهد که چگونه MCP توسعه پایگاه داده را به یک تجربه محاوره‌ای و پرسرعت تبدیل می‌کند و در عین حال توسعه‌دهنده را در کنترل کامل IDE نگه می‌دارد.

هوش مصنوعی درون پایگاه داده (پلتفرم عامل و جستجوی معنایی)

برنامه شما از ادغام بومی AlloyDB با پلتفرم Agent گوگل کلود برای تولید جاسازی‌های برداری مستقیماً درون پایگاه داده با استفاده از SQL استفاده می‌کند:

  • تولید جاسازی آنلاین : به جای دریافت داده‌ها به یک سرویس پایتون خارجی، AlloyDB مدل text-embedding-004 را از طریق توابع SQL در پایگاه داده فراخوانی می‌کند.
  • جستجوی برداری معنایی : با استفاده از افزونه pgvector و عملگر فاصله کسینوسی (<=>)، عامل می‌تواند «حس و حال» زبان طبیعی کاربر (مثلاً «شام رمانتیک») را با نزدیکترین نمایش برداری در کاتالوگ رستوران مطابقت دهد و نتایج مرتبط از نظر معنایی را در میلی‌ثانیه بازگرداند.

بهینه‌سازی پایگاه داده در سطح تولید (HNSW و پارتیشن‌بندی)

برای اطمینان از اینکه برنامه می‌تواند تا ۱۰۰ هزار سطر یا بیشتر مقیاس‌پذیر باشد و ترافیک بالا را مدیریت کند، شما به عنوان یک مدیر پایگاه داده مجازی (Virtual DBA) دو بهینه‌سازی پیشرفته پایگاه داده را اعمال کردید:

  • شاخص HNSW (جهان کوچک قابل پیمایش سلسله مراتبی) : شما یک شاخص HNSW روی ستون برداری ایجاد کردید. برخلاف شاخص‌های مسطح، HNSW یک گراف چند لایه ایجاد می‌کند که امکان جستجوهای بسیار سریع نزدیکترین همسایه تقریبی (ANN) را با فراخوانی بالا فراهم می‌کند.
  • پارتیشن‌بندی اعلانی جدول : شما جدول رستوران‌ها را بر اساس همسایگی پارتیشن‌بندی کردید. این تضمین می‌کند که پرس‌وجوهایی که یک ناحیه خاص را هدف قرار می‌دهند، فقط پارتیشن مربوطه را به جای کل جدول اسکن می‌کنند و به طور چشمگیری ورودی/خروجی دیسک و تأخیر پرس‌وجو را کاهش می‌دهند.

به عنوان توسعه‌دهندگان برنامه، ما اغلب از پیکربندی‌های پیچیده پایگاه داده، ریاضیات برداری و استراتژی‌های نمایه‌سازی عمیق دوری می‌کنیم زیرا آنها به تخصص تخصصی DBA نیاز دارند. با بهره‌گیری از Vibe Coding با یک IDE agentic، این شکاف را پر می‌کنیم. اکنون می‌توانیم با اطمینان برنامه‌های پایگاه داده در سطح تولید را با استفاده از زبان طبیعی طراحی، ساخت و بهینه‌سازی کنیم - که به طور قابل توجهی چرخه توسعه ما را تسریع می‌کند و به ما اجازه می‌دهد تا روی آنچه که بیشترین اهمیت را دارد تمرکز کنیم: ایجاد تجربیات کاربری شگفت‌انگیز.

۱۲. تمیز کردن

برای جلوگیری از تحمیل هزینه به حساب Google Cloud خود برای منابع مورد استفاده در این آزمایشگاه، این مراحل را دنبال کنید:

  1. در کنسول گوگل کلود، به صفحه مدیریت منابع بروید.
  2. در لیست پروژه‌ها، پروژه‌ای را که می‌خواهید حذف کنید انتخاب کنید و سپس روی حذف کلیک کنید.
  3. در کادر محاوره‌ای، شناسه پروژه را تایپ کنید و سپس برای حذف پروژه، روی خاموش کردن کلیک کنید.

۱۳. تبریک

شما با موفقیت یک برنامه مبتنی بر داده و مبتنی بر هوش مصنوعی را با استفاده از Vibe Coding ساخته و مستقر کرده‌اید!

در این آزمایشگاه، شما:

  • یک پایگاه داده AlloyDB با دسترسی IP خصوصی و عمومی ارائه شد.
  • با استفاده از جعبه ابزار پروتکل زمینه مدل (MCP)، IDE ضد جاذبه خود را مستقیماً به پایگاه داده متصل کنید.
  • از زبان طبیعی برای دریافت یک کاتالوگ CSV، اتصال یک رابط کاربری Next.js به پایگاه داده و استقرار آن در Cloud Run استفاده شد.
  • یکپارچه‌سازی پلتفرم عامل درون پایگاه داده برای تولید جاسازی‌های برداری و انجام جستجوی معنایی فعال شد.
  • به عنوان یک مدیر پایگاه داده مجازی (Virtual DBA) عمل کرد تا پایگاه داده شما را با استفاده از نمایه‌سازی HNSW و پارتیشن‌بندی جدول، برای مقیاس تولید بهینه‌سازی کند.

همه این کارها از طریق مکالمه طبیعی با عامل هوش مصنوعی شما، بدون نوشتن حتی یک خط SQL دستی یا باز کردن کلاینت‌های پایگاه داده خارجی، انجام شد!

برای اطلاعات بیشتر، به مستندات محصول مراجعه کنید: