۱. مقدمه
کدنویسی Vibe سرعت و نحوه توسعه frontendها را متحول کرده است، اما اغلب وقتی به پایگاه داده میرسد، به بنبست میخورد. به طور سنتی، توسعهدهندگان باید contextها را تغییر دهند، طرحهای پیچیده SQL بنویسند، connection poolها را مدیریت کنند و افزونههای پایگاه داده را به صورت دستی پیکربندی کنند.
در این آزمایشگاه کد، شما یک گردش کار توسعه پایگاه داده بدون مشکل و محاورهای را تجربه خواهید کرد. با استفاده از پروتکل زمینه مدل (MCP) و یک IDE عاملگرا، با ویرایشگر خود مانند یک مهندس داده باتجربه رفتار خواهید کرد - از یک ایده ساده به یک برنامه پایگاه داده کاملاً متصل، بهینه شده و دارای قابلیت هوش مصنوعی در عرض چند دقیقه، بدون ترک فضای کاری خود، تبدیل خواهید شد.
آنچه خواهید ساخت
در این آزمایشگاه کد، شما یک راهنمای آشپزی هوش مصنوعی - یک برنامه مدرن Next.js که توسط AlloyDB پشتیبانی میشود - را خواهید ساخت و مستقر خواهید کرد. این برنامه از موارد زیر پشتیبانی خواهد کرد:
- دریافت پویای کاتالوگ : وارد کردن و ساختاردهی خودکار دادههای رستوران از فایلهای خام CSV.
- جستجوی مبتنی بر کلمه کلیدی : پرس و جو در پایگاه داده به صورت پویا با استفاده از جستجوی متن کامل.
- جستجوی معنایی مبتنی بر هوش مصنوعی : یافتن رستورانها با توصیف «حال و هوای» آنها (مثلاً «مکان دنج برای قرار ملاقات» یا «غذای سریع آخر شب») با استفاده از تعبیههای پلتفرم عامل.

آنچه یاد خواهید گرفت
- تأمین یک نمونه Google Cloud AlloyDB با پیکربندیهای شبکه IP عمومی و VPC.
- اتصال مستقیم Antigravity IDE به AlloyDB با استفاده از جعبه ابزار Model Context Protocol (MCP).
- اتصال یک رابط کاربری Next.js به یک پایگاه داده زنده با استفاده از متغیرهای محیطی و اتصالات SSL امن.
- فعالسازی یکپارچهسازی پلتفرم عامل درون پایگاه داده برای تولید جاسازیهای برداری با استفاده از text-embedding-004.
- انجام جستجوی تشابه برداری با استفاده از عملگر فاصله کسینوسی (<=>).
- بهینهسازی عملکرد پایگاه داده برای مقیاس تولید با استفاده از نمایهسازی HNSW و پارتیشنبندی جدول - عمل به عنوان یک DBA مجازی.
آنچه نیاز دارید
برای تکمیل این آزمایشگاه کد، به موارد زیر نیاز دارید:
- IDE دسکتاپ Antigravity روی دستگاه شما نصب شده باشد.
- یک پروژه ابری گوگل با قابلیت پرداخت صورتحساب.
- رابط خط فرمان گوگل کلود (gcloud) و گیت روی دستگاه محلی شما نصب و احراز هویت شده باشند.
- یک مرورگر وب (کروم توصیه میشود).
این codelab برای توسعهدهندگان در تمام سطوح، از جمله مبتدیان، طراحی شده است.
۲. قبل از شروع
این بخش شما را در تنظیمات اولیه مورد نیاز در پروژه گوگل کلود خود، قبل از شروع ساخت راهنمای هوش مصنوعی آشپزی برلین، راهنمایی میکند.
ایجاد یک پروژه
- در کنسول گوگل کلود ، در صفحه انتخاب پروژه، یک پروژه گوگل کلود را انتخاب یا ایجاد کنید.
- مطمئن شوید که صورتحساب برای پروژه ابری شما فعال است. یاد بگیرید که چگونه بررسی کنید که آیا صورتحساب در یک پروژه فعال است یا خیر .
نصب پیشنیازهای محلی
مطمئن شوید که ابزارهای زیر را روی دستگاه محلی خود نصب کردهاید:
- Antigravity IDE: نصب IDE دسکتاپ Antigravity
- کیت توسعه نرمافزار گوگل کلود : رابط خط فرمان گوگل کلود را دانلود و نصب کنید.
- گیت : گیت را دانلود و نصب کنید.
پروژه خود را تأیید و تنظیم کنید
شما تمام دستورالعملهای خط فرمان را مستقیماً درون IDE خود اجرا خواهید کرد.
- Antigravity IDE را روی دستگاه محلی خود باز کنید
- ترمینال Antigravity را باز کنید و مخزن پروژه را کلون کنید:
git clone https://github.com/mtoscano84/vibe-coding-postgres-mcp.git
- پوشه پروژه را باز کنید:
- به مسیر File > Open Folder (یا Open...) بروید.
- به پوشهی vibe-coding-postgres-mcp که به تازگی کلون شده است بروید و آن را انتخاب کنید.
- پس از باز شدن پوشه پروژه، یک ترمینال یکپارچه جدید در Antigravity راهاندازی کنید. متغیر محیطی PROJECT_ID را تنظیم کرده و رابط خط فرمان gcloud را برای استفاده از آن پیکربندی کنید ([YOUR_PROJECT_ID] را با شناسه پروژه GCP واقعی خود جایگزین کنید):
export PROJECT_ID=[YOUR_PROJECT_ID]
gcloud config set project $PROJECT_ID
- وارد رابط خط فرمان گوگل کلود شوید:
gcloud auth login
- حساب فعال خود را تأیید کنید:
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 خود (که از قبل در دایرکتوری پروژه 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 در 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
آدرس اینترنتی را کپی کرده و در مرورگر خود باز کنید.
مطمئن شوید که صفحه وب راهنمای آشپزی هوش مصنوعی برلین را که کارتهای رستورانهای آزمایشی را نشان میدهد، مشاهده میکنید.

۵. آنتیگراویتی را به گوگل کلود متصل کنید
برای اینکه عامل هوش مصنوعی در IDE شما (Antigravity) که به صورت محلی اجرا میشود، بتواند با پایگاه داده تعامل داشته باشد، از سرور رسمی Google Cloud AlloyDB MCP استفاده خواهیم کرد.
از آنجایی که ما در هنگام آمادهسازی، Public IP را روی نمونه AlloyDB فعال کردیم، IDE محلی شما میتواند مستقیماً از طریق اینترنت به آن متصل شود. این اتصال با استفاده از SSL و احراز هویت با رمز عبور ایمن شده است و سرور MCP از اعتبارنامههای محلی Google Cloud شما برای تأیید اتصال استفاده میکند.
پیکربندی سرور MCP در Antigravity
- در Antigravity IDE، روی منوی سه نقطه (...) در گوشه سمت راست بالای پنجره چت کلیک کنید.
- سرورهای MCP را انتخاب کنید و سپس روی سرورهای مدیریتشده MCP (یا مشاهده پیکربندی خام / ویرایش فایل پیکربندی) کلیک کنید.
- بلوک 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]"
}
}
- فایل پیکربندی را ذخیره کنید
- IDE به طور خودکار سرور MCP را اجرا میکند. شما باید یک نقطه سبز در کنار alloydb-postgres در پنل MCP ببینید که نشان میدهد اتصال با موفقیت انجام شده است.
۶. کدنویسی Vibe: جذب پایگاه داده
اکنون که Antigravity IDE شما از طریق سرور MCP به نمونه AlloyDB شما متصل شده است، میتوانید تجربه کدنویسی vibe را شروع کنید.
در این مرحله، به عامل هوش مصنوعی دستور میدهید که یک فایل CSV محلی حاوی کاتالوگ غذاهای برلین را بخواند و آن را در پایگاه داده AlloyDB شما بارگذاری کند.
وظیفه
شما از چت عامل در Antigravity استفاده خواهید کرد. عامل به طور خودکار فایل را میخواند، انواع دادهها را تجزیه و تحلیل میکند، به پایگاه داده شما متصل میشود، جدول را ایجاد میکند و رکوردها را درج میکند.
در Antigravity، پنل چت مامور (معمولاً در سمت راست ویرایشگر) را باز کنید.
سپس، عبارت زیر را کپی کرده و در چت پیست کنید و Enter را بزنید:
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 به صورت دستهای در پایگاه داده وارد کنید.
۷. کدنویسی 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 '
[رمز عبور شما]
'), 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 Server Action) ایجاد کرده و مجموعه اتصال را پیکربندی میکند.
- این دستور، قوانین AGENTS.md را میخواند و به طور خودکار پیکربندی SSL را برای میزبانهای غیر محلی اضافه میکند.
- این تابع، فایل page.tsx را بازنویسی میکند تا از پایگاه داده پرسوجو کند و نتایج را بر اساس عبارت جستجو فیلتر کند.
تأیید
برای آزمایش تغییرات، باید رابط کاربری را دوباره به Cloud Run منتقل کنید. از آنجایی که ما از جریان "فقط ابری" استفاده میکنیم، کد جدید به این صورت ارسال میشود.
ترمینال یکپارچه Antigravity را باز کنید (مطمئن شوید که در دایرکتوری ریشه هستید).
دستور استقرار را اجرا کنید و آدرس 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. Execute embedding generation quietly without printing embedding vectors or SQL progress logs to chat.
عامل را هنگام اجرای وظیفه مشاهده میکند:
- این به AlloyDB متصل میشود و افزونههای vector (pgvector) و google_ml_integration را فعال میکند.
- این مدل جاسازی پلتفرم عامل (text-embedding-004) را در داخل پایگاه داده ثبت میکند.
- این یک ستون جاسازی جدید به جدول رستورانها اضافه خواهد کرد.
- این یک کوئری درون پایگاه داده اجرا میکند تا جاسازیهایی برای هر ۱۰۰ توصیف رستوران ایجاد کند.
- این کد frontend را بهروزرسانی میکند تا یک جاسازی برای عبارت جستجوی کاربر ایجاد کند و با استفاده از عملگر فاصله کسینوسی (<=>) جستجوی شباهت برداری را انجام دهد.
تأیید
کد بهروزرسانیشده را دوباره در Cloud Run مستقر کنید.
در ترمینال یکپارچه Antigravity، دستور 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 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 (جهان کوچک قابل پیمایش سلسله مراتبی): جستجوی شباهت برداری را به ترتیب بزرگی و بدون اسکن کل جدول سرعت میبخشد.
- پارتیشنبندی لیست اعلانی: جدول رستورانها را بر اساس همسایگی برای مقیاسبندی و نگهداری کارآمد، پارتیشنبندی میکند.
در پایان، خلاصهای مختصر و سهگزینهای ارائه میشود که مزایای معماری این ارتقاءهای تولید را توضیح میدهد!
۱۰. چالش: اضافه کردن نظرات و امتیازدهی
حالا نوبت شماست که مهارتهای کدنویسی Vibe خود را محک بزنید! در این چالش، شما راهنمای آشپزی برلین را گسترش میدهید تا از نظرات مشتریان و رتبهبندی ستارهها پشتیبانی کند.
وظیفه
به جای دنبال کردن یک دستور کپی-پیست، دستور خودتان را در چت مامور ضد جاذبه بنویسید تا ویژگیهای زیر را پیادهسازی کنید:
- طرحواره پایگاه داده : یک جدول
reviewsجدید ایجاد کنید که به جدولrestaurantsلینک شده باشد. این جدول باید یک امتیاز (یک عدد صحیح از ۱ تا ۵) و یک نظر کوتاه متنی را ذخیره کند. - تولید داده : برای هر یک از ۱۰۰ رستوران موجود در پایگاه داده، ۳ تا ۴ نظر واقعی از مشتریان ایجاد کنید.
- یکپارچهسازی رابط کاربری : رابط کاربری Next.js را بهروزرسانی کنید تا میانگین امتیاز ستارهای (مثلاً
⭐⭐⭐⭐☆) را برای هر کارت رستوران محاسبه و نمایش دهد. - فیلتر کردن: یک فیلتر کشویی در بالای صفحه اضافه کنید تا رستورانها را بر اساس امتیازشان فیلتر کنید (مثلاً «نمایش همه»، «۴+ ستاره»، «۳+ ستاره»).
تأیید
پس از اتمام کار توسط عامل، برنامه خود را دوباره به 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
پس از اتمام استقرار، مرورگر خود را رفرش کنید و تأیید کنید که به کارتها ستاره میدهید.
.
۱۱. نتایج
پس از تکمیل مراحل، شما با موفقیت یک برنامه هوش مصنوعی مبتنی بر پایگاه داده نسل بعدی را با استفاده از 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 خود برای منابع مورد استفاده در این آزمایشگاه، این مراحل را دنبال کنید:
- در کنسول گوگل کلود، به صفحه مدیریت منابع بروید.
- در لیست پروژهها، پروژهای را که میخواهید حذف کنید انتخاب کنید و سپس روی حذف کلیک کنید.
- در کادر محاورهای، شناسه پروژه را تایپ کنید و سپس برای حذف پروژه، روی خاموش کردن کلیک کنید.
۱۳. تبریک
شما با موفقیت یک برنامه مبتنی بر داده و مبتنی بر هوش مصنوعی را با استفاده از Vibe Coding ساخته و مستقر کردهاید!
در این آزمایشگاه، شما:
- یک پایگاه داده AlloyDB با دسترسی IP خصوصی و عمومی ارائه شد.
- با استفاده از جعبه ابزار پروتکل زمینه مدل (MCP)، IDE ضد جاذبه خود را مستقیماً به پایگاه داده متصل کنید.
- از زبان طبیعی برای دریافت یک کاتالوگ CSV، اتصال یک رابط کاربری Next.js به پایگاه داده و استقرار آن در Cloud Run استفاده شد.
- یکپارچهسازی پلتفرم عامل درون پایگاه داده برای تولید جاسازیهای برداری و انجام جستجوی معنایی فعال شد.
- به عنوان یک مدیر پایگاه داده مجازی (Virtual DBA) عمل کرد تا پایگاه داده شما را با استفاده از نمایهسازی HNSW و پارتیشنبندی جدول، برای مقیاس تولید بهینهسازی کند.
همه این کارها از طریق مکالمه طبیعی با عامل هوش مصنوعی شما، بدون نوشتن حتی یک خط SQL دستی یا باز کردن کلاینتهای پایگاه داده خارجی، انجام شد!
برای اطلاعات بیشتر، به مستندات محصول مراجعه کنید: