תכנות בשיטת Vibe Coding באמצעות AlloyDB: מ-0 עד Prod עם Antigravity

1. מבוא

השיטה של קידוד לפי תחושה שינתה את המהירות והדרך שבה אנחנו מפתחים ממשקי קצה, אבל הרבה פעמים היא נתקלת בבעיה כשהיא מגיעה למסד הנתונים. בדרך כלל, מפתחים צריכים להחליף הקשרים, לכתוב סכימות SQL מורכבות, לנהל מאגרי חיבורים ולהגדיר ידנית תוספים למסד הנתונים.

ב-Codelab הזה תתנסו בתהליך עבודה חלק ואינטראקטיבי לפיתוח מסד נתונים. באמצעות Model Context Protocol‏ (MCP) וסביבת פיתוח משולבת (IDE) מבוססת-סוכן, תוכלו להתייחס לעורך שלכם כאל מהנדס נתונים מנוסה – ולעבור מרעיון פשוט לאפליקציית מסד נתונים מחוברת, מותאמת ומבוססת-AI תוך דקות, בלי לצאת מסביבת העבודה.

מה תפַתחו

בשיעור Codelab הזה נסביר איך ליצור ולפרוס מדריך גסטרונומי מבוסס-AI – אפליקציית Next.js מודרנית שמגובה על ידי AlloyDB. האפליקציה תתמוך ב:

  • ייבוא דינמי של קטלוגים: ייבוא אוטומטי של נתוני מסעדות מקובצי CSV גולמיים וארגון שלהם.
  • חיפוש מבוסס מילות מפתח: שליחת שאילתות למסד הנתונים באופן דינמי באמצעות חיפוש טקסט מלא.
  • חיפוש סמנטי מבוסס-AI: מציאת מסעדות על ידי תיאור האווירה (למשל, "מקום נעים לדייט" או "משהו מהיר לאכול בשעות הלילה המאוחרות") באמצעות הטמעות של Agent Platform.

e74cb0eb7e17d6da.png

מה תלמדו

  • הקצאת מכונת Google Cloud AlloyDB עם כתובת IP ציבורית והגדרות של רשת VPC.
  • חיבור ישיר של Antigravity IDE ל-AlloyDB באמצעות Model Context Protocol (MCP) Toolbox.
  • חיבור קצה קדמי של Next.js למסד נתונים פעיל באמצעות משתני סביבה וחיבורי SSL מאובטחים.
  • הפעלת שילוב של פלטפורמת סוכנים בתוך מסד הנתונים כדי ליצור הטמעות וקטוריות באמצעות text-embedding-004.
  • ביצוע חיפוש דמיון וקטורי באמצעות אופרטור המרחק הקוסינוסי (<=>).
  • אופטימיזציה של ביצועי מסד הנתונים לשימוש בסביבת ייצור באמצעות יצירת אינדקס HNSW וחלוקת טבלאות – פועל כמו מנהל מסד נתונים וירטואלי.

מה תצטרכו

כדי להשלים את ה-codelab הזה, תצטרכו:

  • ה-IDE של Antigravity Desktop מותקן במחשב.
  • פרויקט ב-Google Cloud עם חיוב מופעל.
  • ‫Google Cloud CLI‏ (gcloud) ו-Git מותקנים ומאומתים במחשב המקומי.
  • דפדפן אינטרנט (מומלץ להשתמש ב-Chrome).

שיעור ה-Codelab הזה מיועד למפתחים בכל הרמות, כולל מתחילים.

‫2. לפני שמתחילים

בקטע הזה מוסבר איך לבצע את ההגדרה הראשונית שנדרשת בפרויקט ב-Google Cloud לפני שמתחילים לבנות את מדריך המסעדות של ברלין שמבוסס על AI.

יצירת פרויקט

  1. ב-Google Cloud Console, בדף לבחירת הפרויקט, בוחרים או יוצרים פרויקט ב-Google Cloud.
  2. הקפידו לוודא שהחיוב מופעל בפרויקט שלכם ב-Cloud. כך בודקים אם החיוב מופעל בפרויקט

התקנת דרישות מוקדמות מקומיות

מוודאים שהכלים הבאים מותקנים במחשב המקומי:

אימות והגדרת הפרויקט

תפעילו את כל ההוראות של שורת הפקודה ישירות בסביבת הפיתוח המשולבת.

  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. מגדירים את משתנה הסביבה 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. מאמתים את החשבון הפעיל:
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

3. יצירת מכונת AlloyDB

בקטע הזה, תריצו סקריפט אוטומטי במסוף Antigravity כדי להקצות את האשכול והמופע של AlloyDB ב-Google Cloud

בטרמינל המשולב הפעיל של Antigravity (שכבר נמצא בספריית הפרויקט vibe-coding-postgres-mcp), מריצים את סקריפט ההקצאה של AlloyDB:

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

הערה: תהליך ההקצאה נמשך כ-10 עד 15 דקות.

סקריפט ההקצאה::

  • יוצרים רשת VPC בשם default (אם היא לא קיימת בפרויקט).
  • מגדירים גישה לשירותים פרטיים ל-AlloyDB.
  • פורסים אשכול AlloyDB ומכונה ראשית עם כתובת IP פרטית וכתובת IP ציבורית.
  • נותנים לסוכן השירות של 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.
  • AlloyDB Public IP: משמש את Antigravity IDE המקומי לחיבור ישיר.
  • סיסמת מסד הנתונים: הסיסמה שנוצרה אוטומטית למשתמש postgres.

4. פריסת הקצה הקדמי

בקטע הזה תפרסו את חזית ה-Next.js הבסיסית (מצב 0) ב-Google Cloud Run באמצעות טרמינל משולב של Antigravity. הגרסה הראשונית הזו משתמשת בנתוני הדמיה ועדיין לא מתחברת למסד הנתונים.

קודם מריצים את הפקודות הבאות ישירות בטרמינל של 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

מעתיקים את כתובת ה-URL ופותחים אותה בדפדפן.

מוודאים שדף האינטרנט של מדריך המסעדות של ברלין מבוסס-AI מציג את כרטיסי המסעדות המדומים.

16d3649d19796847.png

5. חיבור Antigravity ל-Google Cloud

כדי לאפשר לסוכן ה-AI בסביבת הפיתוח המשולבת (Antigravity) שפועל באופן מקומי ליצור אינטראקציה עם מסד הנתונים, נשתמש בשרת ה-MCP הרשמי של Google Cloud AlloyDB.

מכיוון שהפעלנו כתובת IP ציבורית במכונת AlloyDB במהלך ההקצאה, סביבת הפיתוח המשולבת המקומית יכולה להתחבר אליה ישירות דרך האינטרנט. החיבור מאובטח באמצעות SSL ואימות סיסמה, ושרת ה-MCP משתמש בפרטי הכניסה המקומיים שלכם ל-Google Cloud כדי לאשר את החיבור.

הגדרת שרת ה-MCP ב-Antigravity

  1. ב-Antigravity IDE, לוחצים על סמל האפשרויות הנוספות (3 נקודות) בפינה השמאלית העליונה של חלון הצ'אט.
  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. סביבת הפיתוח המשולבת תפעיל אוטומטית את שרת ה-MCP. בחלון MCP אמורה להופיע נקודה ירוקה לצד alloydb-postgres, שמציינת שהחיבור בוצע בהצלחה.

6. Vibe Coding: Database Ingestion

עכשיו, אחרי שחיברתם את Antigravity IDE למופע AlloyDB דרך שרת ה-MCP, אתם יכולים להתחיל ליהנות מחוויית הקידוד.

בשלב הזה, תתנו לסוכן ה-AI הוראה לקרוא קובץ CSV מקומי שמכיל את קטלוג המסעדות בברלין ולטעון אותו למסד הנתונים שלכם ב-AlloyDB.

המשימה

תשתמשו ב-Agent Chat ב-Antigravity. ה-Agent יקרא את הקובץ באופן אוטונומי, ינתח את סוגי הנתונים, יתחבר למסד הנתונים, ייצור את הטבלה ויכניס את הרשומות.

ב-Antigravity, פותחים את החלונית Agent Chat (בדרך כלל בצד שמאל של העורך).

אחר כך מעתיקים את ההנחיה הבאה, מדביקים אותה בשיחה ומקישים על 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 וכמה שורות לדוגמה כדי לקבוע את הסכימה המתאימה.
  • קוראים לכלי MCP של AlloyDB כדי ליצור את הטבלה restaurants.
  • להוסיף את 100 רשומות המסעדות מקובץ ה-CSV למסד הנתונים.

7. Vibe Coding: Connect Frontend to Database

בקטע הזה, תגדירו את חזית האתר של Next.js כך שתתחבר למסד הנתונים הפעיל של AlloyDB. תתנו לסוכן הוראה להחליף את נתוני הדמה בשאילתת מסד נתונים פעילה וליישם חיפוש מילות מפתח.

המשימה

תבקשו מהסוכן לכתוב את קוד החיבור ולעדכן את דף הבית. מכיוון שהתחייבנו לכלל SSL של מסד הנתונים ב-‎ .agents/AGENTS.md, הסוכן יגדיר אוטומטית את מאגר החיבורים לשימוש ב-SSL לחיבורים בענן, בלי שתצטרכו לציין זאת בהנחיה!

בצ'אט עם 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. 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 כדי לשלוח שאילתה למסד הנתונים ולסנן את התוצאות על סמך שאילתת החיפוש.

אימות

כדי לבדוק את השינויים, צריך לפרוס מחדש את ממשק הקצה ב-Cloud Run. מכיוון שאנחנו משתמשים בתהליך 'Cloud-Only', כך הקוד החדש נשלח.

פותחים את הטרמינל המשולב ב-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 שהעלינו קודם!).

8. Vibe Coding: הפעלת חיפוש סמנטי

בקטע הזה תשדרגו את האפליקציה כדי לתמוך בחיפוש וקטורי סמנטי מבוסס-AI. במקום להתאים רק מילות מפתח מדויקות, המשתמשים יוכלו לחפש על ידי תיאור האווירה או החוויה שהם מחפשים (למשל, "מקום לארוחה רומנטית" או "משהו לאכול אחרי בילוי במועדון").

המשימה

תתנו לסוכן הוראה להפעיל חיפוש סמנטי בטבלת המסעדות. הסוכן ישתמש במיומנות המותאמת אישית 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.
  • הוא ירשום את מודל ההטמעה של Agent Platform ‏ (text-embedding-004) בתוך מסד הנתונים.
  • פעולה זו תוסיף עמודת הטמעה חדשה לטבלת המסעדות.
  • הכלי יריץ שאילתה במסד הנתונים כדי ליצור הטמעות לכל 100 תיאורי המסעדות.
  • הוא יעדכן את קוד הקצה הקדמי כדי ליצור הטמעה לשאילתת החיפוש של המשתמש ולבצע חיפוש של דמיון וקטורי באמצעות אופרטור המרחק הקוסינוסי (<=>).

אימות

פורסים מחדש את הקוד המעודכן ב-Cloud Run.

במסוף המשולב של Antigravity, מריצים את פקודת הפריסה (מחליפים את הערכים הזמניים לשמירת מקום בערכים בפועל):

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 של השירות בדפדפן.

כדי לבדוק את החיפוש הסמנטי, מזינים תיאור בשפה טבעית, למשל:

  • "a romantic dinner spot"
  • ‫"quick bite after clubbing"

שימו לב שהיא מחזירה מסעדות רלוונטיות מאוד (כמו Cafe Clärchens או Burgermeister) גם אם המילים המדויקות 'רומנטי' או 'מועדון' לא מופיעות בשם או בתיאור שלהן.

9. Vibe Coding: Database Optimization

ככל שהאפליקציה גדלה, צריך לבצע אופטימיזציה של מסד הנתונים כדי לטפל בכמויות גדולות של נתונים (100,000 שורות ומעלה) ובתנועת חיפוש גבוהה בו-זמנית. בשלב האחרון, תתייחסו לסוכן כאדמין וירטואלי של מסד נתונים (DBA) כדי לנתח ולבצע אופטימיזציה של סכימת מסד הנתונים.

המשימה

תבקשו מהסוכן לפעול כאדריכל ראשי של מסד נתונים, לנתח את הסכימה הנוכחית ולהמליץ על אופטימיזציות. אחרי שתבדקו ותאשרו את ההמלצות, הסוכן ישתמש במיומנות המותאמת אישית 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): מאיץ את החיפוש של דמיון וקטורי בסדרי גודל, בלי לסרוק את כל הטבלה.
  • חלוקה למחיצות (partitioning) באמצעות הצהרה: חלוקה למחיצות של טבלת המסעדות לפי שכונה, כדי לאפשר שינוי גודל ותחזוקה יעילים.

בסיום, תקבלו סיכום תמציתי עם 3 נקודות שמסבירות את היתרונות הארכיטקטוניים של שדרוגי הייצור האלה.

10. אתגר: הוספת ביקורות ודירוג

עכשיו תורך לבחון את כישורי הקידוד שלך ב-Vibe! באתגר הזה, תרחיבו את מדריך המסעדות של ברלין כדי לתמוך בביקורות של לקוחות ובדירוגי כוכבים.

המשימה

במקום להשתמש בהנחיה מוכנה להעתקה והדבקה, כתבו הנחיה משלכם בצ'אט עם סוכן Antigravity כדי להטמיע את התכונות הבאות:

  1. סכימת מסד נתונים: יצירת טבלת reviews חדשה שמקושרת לטבלת restaurants. הוא צריך לאחסן דירוג (מספר שלם מ-1 עד 5) ותגובה קצרה.
  2. יצירת נתונים: יצירת 3-4 ביקורות ריאליסטיות של לקוחות לכל אחת מ-100 המסעדות במסד הנתונים.
  3. הטמעה בחלק הקדמי של האתר: מעדכנים את החלק הקדמי של האתר ב-Next.js כדי לחשב ולהציג את דירוג הכוכבים הממוצע (למשל, ⭐⭐⭐⭐☆) בכל כרטיס של מסעדה.
  4. סינון: מוסיפים מסנן נפתח בחלק העליון של הדף כדי לסנן מסעדות לפי הדירוג שלהן (למשל, 'הצגת הכול', '4 כוכבים ומעלה', '3 כוכבים ומעלה').

אימות

אחרי שהסוכן משלים את המשימה, פורסים מחדש את האפליקציה ב-Cloud Run (מחליפים את ה-placeholders בערכים בפועל):

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.

11. תוצאות

אחרי השלמת השלבים, יצרתם ואופטמתם בהצלחה אפליקציית AI מהדור הבא שמגובה במסד נתונים באמצעות Vibe Coding. בקטע הזה נפרט את היכולות הארכיטקטוניות העיקריות שהטמעתם:

שילוב של מסד נתונים אג'נטי (פרוטוקול הקשר של המודל)

בדרך כלל, כתיבת קוד למסד נתונים היא תהליך ידני של מעבר בין סביבת הפיתוח המשולבת (IDE), התיעוד ולקוחות מסד הנתונים.

בשיעור ה-Lab הזה השתמשתם ב-Model Context Protocol (MCP) Toolbox כדי לגשר על הפער הזה. הסוכן קיבל גישה ישירה לכלי בדיקת סכימת מסד הנתונים ולכלי להפעלת SQL, ולכן הוא הצליח:

  • בודקים את נתוני ה-CSV הגולמיים ומתכננים את סכימת מסד הנתונים.
  • ליצור ולהפעיל את ה-DDL כדי ליצור טבלאות.
  • מחברים את מאגר החיבורים באפליקציית Next.js.

הסרטון הזה מראה איך MCP הופך את פיתוח מסדי הנתונים לחוויה מהירה ואינטראקטיבית, תוך שמירה על שליטה מלאה של המפתח בסביבת הפיתוח המשולבת (IDE).

‫AI בתוך מסד נתונים (פלטפורמת סוכנים וחיפוש סמנטי)

האפליקציה שלכם ממנפת את השילוב המקורי של AlloyDB עם פלטפורמת הסוכנים של Google Cloud כדי ליצור הטמעות וקטוריות ישירות בתוך מסד הנתונים באמצעות SQL:

  • יצירת הטמעות אונליין: במקום לשלוף נתונים לשירות Python חיצוני, AlloyDB קורא למודל text-embedding-004 בתוך מסד הנתונים באמצעות פונקציות SQL.
  • חיפוש סמנטי של וקטורים: באמצעות התוסף pgvector ואופרטור המרחק הקוסינוסי (<=>), הסוכן יכול להתאים את ה"אווירה" של השפה הטבעית של המשתמש (למשל, "ארוחה רומנטית") לייצוג הווקטורי הקרוב ביותר בקטלוג המסעדות, ולהחזיר תוצאות רלוונטיות מבחינה סמנטית במילישניות.

אופטימיזציה של מסד נתונים ברמת ייצור (HNSW וחלוקה למחיצות)

כדי לוודא שהאפליקציה יכולה להתרחב ל-100,000 שורות ומעלה ולעמוד בעומס תנועה גבוה, פעלת כ-DBA וירטואלי כדי להחיל שני שיפורים מתקדמים במסד הנתונים:

  • אינדקס HNSW (Hierarchical Navigable Small World): יצרתם אינדקס HNSW בעמודת הווקטור. בניגוד לאינדקסים שטוחים, HNSW בונה גרף רב-שכבתי שמאפשר חיפושים מהירים מאוד של השכן הקרוב המשוער (ANN) עם שיעור היזכרות גבוה.
  • חלוקת טבלה למחיצות (Partitioning) באמצעות הצהרה: חילקתם את טבלת המסעדות למחיצות לפי שכונה. כך אפשר לוודא ששאילתות שמטרגטות אזור ספציפי יסרקו רק את המחיצה הרלוונטית ולא את כל הטבלה, וכך יצמצמו באופן משמעותי את קלט/פלט הדיסק ואת זמן האחזור של השאילתות.

מפתחי אפליקציות נמנעים בדרך כלל מהגדרות מסובכות של מסדי נתונים, ממתמטיקה של וקטורים ומאסטרטגיות מורכבות של יצירת אינדקסים, כי הם דורשים מומחיות מיוחדת בניהול מסדי נתונים. אנחנו מצמצמים את הפער הזה באמצעות שיטת Vibe Coding עם סביבת פיתוח משולבת (IDE) מבוססת-סוכן. עכשיו אנחנו יכולים לתכנן, ליצור ולבצע אופטימיזציה של אפליקציות מסד נתונים ברמת ייצור באמצעות שפה טבעית. כך אנחנו מקצרים משמעותית את מחזור הפיתוח ויכולים להתמקד במה שהכי חשוב: יצירת חוויות משתמש מדהימות.

12. הסרת המשאבים

כדי לא לצבור חיובים לחשבון Google Cloud על המשאבים שבהם השתמשתם במעבדה הזו:

  1. במסוף Google Cloud, עוברים לדף Manage resources.
  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete (מחיקה).
  3. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.

13. מזל טוב

יצרתם והטמעתם בהצלחה אפליקציה מבוססת-נתונים שמבוססת על AI באמצעות Vibe Coding.

בשיעור ה-Lab הזה:

  • הקצאת מסד נתונים של AlloyDB עם גישה לכתובות IP פרטיות וציבוריות.
  • חיברתם את Antigravity IDE ישירות למסד הנתונים באמצעות Model Context Protocol‏ (MCP) Toolbox.
  • השתמשתי בשפה טבעית כדי להטמיע קטלוג CSV, לקשר בין קצה קדמי של Next.js למסד הנתונים ולפרוס אותו ב-Cloud Run.
  • הפעלת שילוב של פלטפורמת סוכנים בתוך מסד הנתונים כדי ליצור הטמעות וקטוריות ולבצע חיפוש סמנטי.
  • פעל כ-DBA וירטואלי כדי לבצע אופטימיזציה של מסד הנתונים שלך עבור קנה מידה של ייצור באמצעות אינדקס HNSW וחלוקת טבלאות.

כל זה נעשה באמצעות שיחה טבעית עם סוכן ה-AI, בלי לכתוב אפילו שורה אחת של SQL באופן ידני או לפתוח לקוחות חיצוניים של מסדי נתונים.

מידע נוסף זמין במסמכי העזרה של המוצרים: