AlloyDB ile Sezgisel Kodlama: Antigravity ile 0'dan Üretime

1. Giriş

Vibe coding, ön uç geliştirme hızında ve yönteminde devrim yarattı ancak veritabanına ulaştığında genellikle bir engelle karşılaşıyor. Geleneksel olarak geliştiricilerin bağlam değiştirmesi, karmaşık SQL şemaları yazması, bağlantı havuzlarını yönetmesi ve veritabanı uzantılarını manuel olarak yapılandırması gerekir.

Bu codelab'de, sorunsuz ve etkileşimli bir veritabanı geliştirme iş akışı deneyimleyeceksiniz. Model Context Protocol (MCP) ve bir agentic IDE kullanarak düzenleyicinizi deneyimli bir veri mühendisi gibi ele alacak, basit bir fikirden dakikalar içinde tamamen bağlı, optimize edilmiş ve yapay zeka destekli bir veritabanı uygulamasına geçeceksiniz. Üstelik tüm bunları çalışma alanınızdan ayrılmadan yapacaksınız.

Ne oluşturacaksınız?

Bu codelab'de, AlloyDB tarafından desteklenen modern bir Next.js uygulaması olan Yapay Zeka Gastronomi Rehberi'ni oluşturup dağıtacaksınız. Uygulama şunları destekleyecektir:

  • Dinamik Katalog Alma: Restoran verilerini ham CSV dosyalarından otomatik olarak içe aktarma ve yapılandırma.
  • Anahtar Kelimeye Dayalı Arama: Tam metin aramayı kullanarak veritabanını dinamik olarak sorgulama.
  • Yapay Zeka Destekli Anlamsal Arama: Agent Platform yerleştirmelerini kullanarak "atmosferi" (ör. "randevu için rahat bir yer" veya "gece geç saatlerde hızlı bir atıştırmalık") açıklayarak restoran bulma.

bc2d98c88c72648e.png

Neler öğreneceksiniz?

  • Herkese açık IP ve VPC ağı yapılandırmalarıyla bir Google Cloud AlloyDB örneği sağlama.
  • Model Context Protocol (MCP) Toolbox'ı kullanarak Antigravity IDE'yi doğrudan AlloyDB'ye bağlama.
  • Ortam değişkenlerini ve güvenli SSL bağlantılarını kullanarak Next.js ön ucunu canlı bir veritabanına bağlama.
  • text-embedding-004 kullanarak vektör yerleştirmeleri oluşturmak için veritabanı içi Agent Platform entegrasyonunu etkinleştirme.
  • Kosinüs uzaklığı operatörünü (<=>) kullanarak vektör benzerliği araması yapma.
  • HNSW dizine ekleme ve tablo bölümleme kullanarak üretim ölçeğinde veritabanı performansını optimize etme (sanal veritabanı yöneticisi olarak hareket etme)

Gerekenler

Bu codelab'i tamamlamak için ihtiyacınız olanlar:

  • Antigravity'nin yerel makinenize yüklenmiş olması gerekir.
  • Google Cloud KSA (gcloud) ve Git'in yerel makinenize yüklenmiş ve kimlik doğrulaması yapılmış olması gerekir.
  • Faturalandırmanın etkin olduğu bir Google Cloud projesi.
  • Web tarayıcısı (Chrome önerilir)

Bu codelab, yeni başlayanlar da dahil olmak üzere her seviyeden geliştirici için tasarlanmıştır.

2. Başlamadan önce

Bu bölümde, AI Berlin Gastronomy Guide'u oluşturmaya başlamadan önce Google Cloud projenizde yapmanız gereken ilk kurulum hakkında bilgi verilmektedir.

Proje oluşturma

  1. Google Cloud Console'daki proje seçici sayfasında bir Google Cloud projesi seçin veya oluşturun.
  2. Cloud projeniz için faturalandırmanın etkinleştirildiğinden emin olun. Bir projede faturalandırmanın etkin olup olmadığını kontrol etmeyi öğrenin .

Yerel ön koşulları yükleme

Yerel makinenizde aşağıdaki araçların yüklü olduğundan emin olun:

  • Antigravity 2.0: Antigravity'yi yükleyin.
  • Git: Git'i indirip yükleyin.
  • Google Cloud KSA: gcloud'u indirip yükleyin.

Antigravity 2.0'ı ayarlama

Antigravity 2.0'ı ilk kez başlattığınızda, önceki adımdaki Google Cloud proje kimliğinizi girmeniz istenir.

Çalışma alanınızı başlatmak için proje kimliğinizi girin:

12bf4154b982f21e.png

Antigravity IDE'yi kurma ve açma

Terminal komutlarımızı çalıştırabilmek için yerel makinemize Antigravity IDE'yi yükleyip açacağız.

  1. Antigravity 2.0 arayüzünde, Install Antigravity IDE (Antigravity IDE'yi Yükle) seçeneğini bulup tıklayın (sağ üst köşede).

89eb42b2f840b96d.png

  1. İndirme ve yükleme istemi göründüğünde varsayılan ayarları kullanarak yükleme sihirbazını takip edin.
  2. Yükleme tamamlandığında Antigravity IDE'yi başlatın.

Depoyu Klonlama ve Google Cloud ile Kimlik Doğrulama

Tüm komut satırı talimatlarını doğrudan IDE'nizde yürüteceksiniz.

  1. Yerel makinenizde Antigravity IDE'yi açın.
  2. Antigravity'nin terminalini açın ve proje deposunu klonlayın:
git clone https://github.com/mtoscano84/vibe-coding-postgres-mcp.git
  1. Proje klasörünü açın:
  2. Dosya > Klasörü Aç'a (veya Aç...) gidin.
  3. Yeni klonlanan vibe-coding-postgres-mcp klasörüne gidip bu klasörü seçin.
  4. Proje klasörü açıldıktan sonra Antigravity IDE'de yeni bir entegre terminal başlatın. PROJECT_ID ortam değişkenini ayarlayın ve gcloud CLI'yı bu değişkeni kullanacak şekilde yapılandırın ([YOUR_PROJECT_ID] yerine gerçek GCP proje kimliğinizi girin):
export PROJECT_ID=[YOUR_PROJECT_ID]
gcloud config set project $PROJECT_ID
  1. Google Cloud CLI'ye giriş yapın:
gcloud auth login
  1. Uygulama varsayılan kimlik bilgilerine (ADC) giriş yapın: (Bu işlem, laboratuvarın ilerleyen aşamalarında yapay zeka ve MCP veritabanı bağlayıcılarımız için gereken yerel kimlik bilgileri dosyasını oluşturur)
gcloud auth application-default login
  1. Etkin hesabınızı doğrulayın:
gcloud auth list

Gerekli API'leri etkinleştirme

Gerekli Google Cloud hizmetlerini etkinleştirmek için Antigravity terminalinizde aşağıdaki komutu çalıştırın:

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 örneğini oluşturma

Bu bölümde, Google Cloud'da AlloyDB kümenizi ve örneğinizi sağlamak için Antigravity terminalinizde otomatik bir komut dosyası çalıştıracaksınız.

Etkin Antigravity IDE entegre terminalinizde (vibe-coding-postgres-mcp proje dizininde bulunur) AlloyDB sağlama komut dosyasını çalıştırın:

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

Not: Temel hazırlık işlemi yaklaşık 10-15 dakika sürer.

Hazırlama komut dosyası:

  • Varsayılan adlı bir VPC ağı oluşturun (projenizde yoksa).
  • AlloyDB için özel hizmet erişimini ayarlayın.
  • Hem özel IP hem de genel IP etkinleştirilmiş bir AlloyDB kümesi ve birincil örnek dağıtın.
  • AlloyDB hizmet aracısına gerekli aracı platformu izinlerini verin.

Çıkış şuna benzer olmalıdır:

----------------------------------------
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)
----------------------------------------

Lütfen aşağıdaki bilgileri kopyalayıp kaydettiğinizden emin olun:

  • AlloyDB özel IP'si: Cloud Run uygulaması tarafından VPC içinde güvenli bir şekilde bağlanmak için kullanılır.
  • AlloyDB genel IP'si: Doğrudan bağlanmak için yerel Antigravity IDE'niz tarafından kullanılır.
  • Veritabanı Şifresi: postgres kullanıcısı için otomatik olarak oluşturulan şifre.

4. Ön ucu dağıtma

Bu bölümde, Antigravity IDE entegre terminalini kullanarak temel Next.js ön ucunu (Durum 0) Google Cloud Run'a dağıtacaksınız. Bu ilk sürümde sahte veriler kullanılır ve henüz veritabanına bağlanılmaz.

Öncelikle, gerekli IAM rollerini Compute Engine'in varsayılan hizmet hesabına vermek için aşağıdaki komutları doğrudan Antigravity terminalinizde çalıştırın:

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 terminalinizdeki vibe-coding-postgres-mcp dizininin kökünden aşağıdaki komutu çalıştırarak Next.js uygulamasını VPC ağınızda derleyip dağıtın:

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

Dağıtım tamamlandığında hizmet URL'si yazdırılır.

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'yi kopyalayıp tarayıcınızda açın.

Berlin Yapay Zeka Gastronomi Rehberi web sayfasında örnek restoran kartlarının gösterildiğini doğrulayın.

16d3649d19796847.png

5. Antigravity'yi Google Cloud'a bağlama

IDE'nizde (Antigravity) yerel olarak çalışan yapay zeka aracısının veritabanıyla etkileşime girmesine izin vermek için resmi Google Cloud AlloyDB MCP sunucusunu kullanacağız.

AlloyDB örneğinde sağlama sırasında genel IP'yi etkinleştirdiğimiz için yerel IDE'niz doğrudan internet üzerinden bağlanabilir. Bağlantı, SSL ve şifre kimlik doğrulaması kullanılarak güvenli hale getirilir. MCP sunucusu, bağlantıyı yetkilendirmek için yerel Google Cloud kimlik bilgilerinizi kullanır.

Antigravity'de MCP sunucusunu yapılandırma

  1. Antigravity IDE'de, sohbet penceresinin sağ üst köşesindeki üç nokta menüsünü (...) tıklayın.
  2. MCP sunucularını seçin ve ardından Yönetilen MCP Sunucuları'nı (veya Ham yapılandırmayı görüntüle / Yapılandırma dosyasını düzenle) tıklayın.
  3. Aşağıdaki JSON bloğunu mcpServers nesnesinin içine ekleyin. [YOUR_PROJECT_ID] ve [YOUR_ALLOYDB_PASSWORD] değerlerini gerçek proje kimliğinizle ve AlloyDB sağlama adımında kaydettiğiniz veritabanı şifresiyle değiştirdiğinizden emin olun:
"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. Yapılandırma dosyasını kaydetme
  2. IDE, MCP sunucusunu otomatik olarak başlatır. MCP panelinde alloydb-postgres'in yanında, başarıyla bağlandığını gösteren yeşil bir nokta görmeniz gerekir.

Antigravity 2.0'da Depo'yu açma

Bu laboratuvarın geri kalanında, uygulamamızı Antigravity 2.0 kullanarak yazıp oluşturacağız.

  1. Antigravity 2.0'a dönün ve yeni kopyaladığınız proje klasörünü açın.
  2. Yeni Görüşme > Yeni Proje > Klasör Ekle'yi tıklayın.
  3. Yeni klonlanan vibe-coding-postgres-mcp klasörüne gidip bu klasörü seçin.
  4. Artık Antigravity 2.0'da, klonlanmış çalışma alanınıza doğrudan yönlendiren ve kodlamaya hazır olan Agent Interface'inizi göreceksiniz.

e806fdbce47d43f0.png

6. Sezgisel Kodlama: Veritabanı Kullanımı

Antigravity'niz MCP sunucusu aracılığıyla AlloyDB örneğinize bağlandığına göre artık vibe-coding deneyimine başlayabilirsiniz.

Bu adımda, yapay zeka aracına Berlin gastronomi kataloğunu içeren yerel bir CSV dosyasını okuyup AlloyDB veritabanınıza yüklemesini söyleyeceksiniz.

Görev

Antigravity'de Agent Chat'i kullanacaksınız. Ajan, dosyayı bağımsız olarak okur, veri türlerini analiz eder, veritabanınıza bağlanır, tabloyu oluşturur ve kayıtları ekler.

Ardından, aşağıdaki istemi kopyalayıp sohbete yapıştırın ve Enter tuşuna basın:

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.

Temsilcinin görevi yürütmesini izler:

  • Önce uygun şemayı belirlemek için CSV dosyası başlıklarını ve bazı örnek satırları okur.
  • Tablo oluşturmak için AlloyDB MCP aracını çağırır.
  • CSV dosyasındaki 100 restoran kaydı, veritabanına toplu olarak eklenir.

Doğrulama

Temsilci işlemi tamamladığını bildirdikten sonra verilerin yüklendiğini doğrulayabilirsiniz:

Müşteri temsilcisiyle sohbet bölümünde temsilciye sorun:

Show me the first 5 records from the restaurants table.

Aracı, veritabanına sorgu gönderip ilk 5 restoranı (ör. Pub Lia's Kitchen ve Cafe Clärchens) göstererek veritabanı alımının başarılı olduğunu onaylar.

7. Sezgisel Kodlama: Ön Ucu Veritabanına Bağlama

Bu bölümde, Next.js ön ucunu canlı AlloyDB veritabanınıza bağlayacaksınız. Ajanı, sahte verileri canlı veritabanı sorgusuyla değiştirmesi ve anahtar kelime araması uygulaması için yönlendireceksiniz.

Görev

Aracıdan bağlantı kodunu yazmasını ve ana sayfayı güncellemesini isteyeceksiniz. .agents/AGENTS.md dosyasında veritabanı SSL kuralını işlediğimiz için aracı, isteminizde belirtmenize gerek kalmadan bağlantı havuzunu bulut bağlantıları için SSL kullanacak şekilde otomatik olarak yapılandırır.

Antigravity Agent sohbetinde aşağıdaki istemi kopyalayıp yapıştırın ve Enter tuşuna basın ([YOUR_PASSWORD] yerine gerçek veritabanı şifrenizi girin):

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

Temsilcinin görevi yürütmesini izler:

  • pg paketini ve TypeScript türlerini (@types/pg) yükler.
  • Bu işlem, bir veritabanı bağlantı dosyası (veya Next.js sunucu işlemi) oluşturur ve bağlantı havuzunu yapılandırır.
  • AGENTS.md kurallarını okur ve yerel olmayan ana makineler için SSL yapılandırmasını otomatik olarak ekler.
  • Bu işlem, veritabanına sorgu göndermek ve sonuçları arama sorgusuna göre filtrelemek için page.tsx dosyasını yeniden yazar.

Doğrulama

Değişiklikleri test etmek için ön ucu Cloud Run'a yeniden dağıtmanız gerekir. "Yalnızca Bulut" akışını kullandığımız için yeni kod bu şekilde gönderilir.

Antigravity IDE'de entegre terminali açın (kök dizinde olduğunuzdan emin olun).

AlloyDB özel IP'nizi ve şifrenizi ortam değişkenleri olarak ileterek dağıtım komutunu çalıştırın (yer tutucuları gerçek değerlerinizle değiştirin):

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

Dağıtım tamamlandıktan sonra tarayıcınızda hizmet URL'sini açın.

"Burgermeister" veya "Kebab" araması yapmayı deneyin. Veritabanından yüklenen gerçek restoranları görmeniz gerekir.

Veritabanı kayıtları, daha önce yüklediğimiz herkese açık GCS URL'lerini içerdiğinden restoran kartlarında artık gerçek GCS resimlerinin gösterildiğini fark edeceksiniz.

8. Sezgisel Kodlama: Semantik Arama'yı etkinleştirme

Bu bölümde, uygulamanızı yapay zeka destekli Semantik Vector Search'ü destekleyecek şekilde yükselteceksiniz. Kullanıcılar, yalnızca tam anahtar kelimeleri eşleştirmek yerine aradıkları "atmosferi" veya deneyimi (ör. "romantik akşam yemeği mekanı" veya "gece kulübünden sonra hızlıca bir şeyler yemek") açıklayarak arama yapabilecek.

Görev

Ajanı, restoranlar tablosunda semantik aramayı etkinleştirmesi için yönlendireceksiniz. Aracı, veritabanı uzantılarını, Agent Platform model kaydını, yerleştirme oluşturmayı ve sorgu güncellemelerini otomatik olarak işlemek için depodaki add-vector-search-alloydb özel becerisinden yararlanır.

Antigravity Agent sohbetinde aşağıdaki istemi kopyalayıp yapıştırın ve Enter tuşuna basın:

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.

Temsilcinin görevi yürütmesini izler:

  • AlloyDB'ye bağlanır ve vektör (pgvector) ile google_ml_integration uzantılarını etkinleştirir.
  • Bu işlem, Agent Platform yerleştirme modelini (text-embedding-004) veritabanına kaydeder.
  • Bu işlem, restoran tablosuna yeni bir yerleştirme sütunu ekler.
  • 100 restoran açıklamasının tümü için yerleştirmeler oluşturmak üzere veritabanı içi sorgu çalıştırır.
  • Kullanıcının arama sorgusu için yerleştirme oluşturmak üzere ön uç kodunu günceller ve kosinüs mesafesi operatörünü (<=>) kullanarak vektör benzerliği araması yapar.

Doğrulama

Güncellenen kodu Cloud Run'a yeniden dağıtın.

Antigravity IDE'deki entegre terminalde dağıtım komutunu çalıştırın (yer tutucuları gerçek değerlerinizle değiştirin):

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

Dağıtım tamamlandıktan sonra tarayıcınızda hizmet URL'sini açın.

Aşağıdaki gibi doğal dil açıklaması girerek semantik aramayı test edin:

  • "romantik bir akşam yemeği mekanı"
  • "quick bite after clubbing" (Gece kulübünden sonra hızlıca yenecek bir şeyler)

Adlarında veya açıklamalarında "romantik" ya da "gece kulübü" kelimeleri geçmese bile son derece alakalı restoranlar (ör. Cafe Clärchens veya Burgermeister) döndürdüğünü fark edebilirsiniz.

9. Sezgisel Kodlama: Veritabanı Optimizasyonu

Uygulamanız büyüdükçe veritabanının büyük hacimli verileri (100.000'den fazla satır) ve eşzamanlı yüksek arama trafiğini işleyecek şekilde optimize edilmesi gerekir. Bu son adımda, veritabanı şemanızı analiz edip optimize etmek için temsilcinizi sanal veritabanı yöneticisi (DBA) olarak ele alacaksınız.

Görev

Temsilciden Baş Veritabanı Mimarı olarak hareket etmesini, mevcut şemayı analiz etmesini ve optimizasyon önerilerinde bulunmasını isteyeceksiniz. Önerileri inceleyip onayladığınızda, aracı bunları otomatik olarak uygulamak için optimize-database-alloydb özel becerisini kullanır.

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.

Temsilci, veritabanını analiz edip iki öneriyle yanıt verir:

  • HNSW dizini: Vektör benzerliği sorgularını son derece hızlı hale getirmek için yerleştirme sütununda Yaklaşık En Yakın Komşu (ANN) dizini.
  • Tablo Bölümleme: Sorgu performansını ve yönetilebilirliği artırmak için restoranlar tablosunu bölümleme (ör. List Partitioning by neighborhood).

Açıklamaları inceleyin. Hazır olduğunuzda sohbetteki temsilciye yanıt verin:

Approved, please apply these optimizations.

Temsilcinin görevi yürütmesini izler:

  • Bu işlem, yerleştirme sütununda HNSW dizinini oluşturur.
  • Bu işlem, restoranlar tablosunu mahalleye göre bölümlendirir, her mahalle için alt bölüm tabloları oluşturur ve mevcut verileri taşır.

Doğrulama

Aracıdan optimizasyonların başarıyla uygulandığını doğrulamasını isteyin. Müşteri temsilcisiyle sohbette şunu sorun:

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

Aracı, veritabanı kataloğunu sorgular ve yeni bölüm yapısını (ör. restaurants_mitte, restaurants_kreuzberg) ve HNSW dizinini gösterir. Böylece veritabanınızın artık üretim için tamamen optimize edildiği doğrulanır.

10. Zorluk: Yorum ve puan ekleme

Şimdi Vibe Coding becerilerinizi test etme sırası sizde. Bu mücadelede, Berlin Gastronomi Rehberi'ni müşteri yorumlarını ve yıldız puanlarını destekleyecek şekilde genişleteceksiniz.

Görev

Kopyala-yapıştır istemi kullanmak yerine, aşağıdaki özellikleri uygulamak için Antigravity Agent Chat'te kendi isteminizi yazın:

  1. Veritabanı Şeması: reviews tablosuna bağlı yeni bir restaurants tablosu oluşturun. Bir puan (1 ile 5 arasında bir tam sayı) ve kısa bir metin yorumu saklamalıdır.
  2. Veri Üretimi: Veritabanındaki 100 restoranın her biri için 3-4 gerçekçi müşteri yorumu oluşturun.
  3. Ön uç entegrasyonu: Her restoran kartında ortalama yıldız derecelendirmesini (ör. ⭐⭐⭐⭐☆) hesaplayıp görüntülemek için Next.js ön ucunu güncelleyin.
  4. Filtreleme: Restoranları puanlarına göre filtrelemek için sayfanın en üstüne bir açılır filtre ekleyin (ör. "Tümünü Göster", "4 Yıldız ve Üzeri", "3 Yıldız ve Üzeri").

Doğrulama

Aracı görevini tamamladıktan sonra, entegre Antigravity IDE terminalinden uygulamanızı Cloud Run'a yeniden dağıtın (yer tutucuları gerçek değerlerinizle değiştirin):

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

Dağıtım tamamlandıktan sonra tarayıcınızı yenileyin ve kartlardaki yıldız derecelendirmesini doğrulayın.

1433b3c589f08f2a.png.

11. Sonuçlar

Adımları tamamladığınızda, Vibe Coding'i kullanarak yeni nesil, veritabanı destekli bir yapay zeka uygulamasını başarıyla oluşturup optimize etmiş olursunuz. Bu bölümde, uyguladığınız temel mimari özellikler vurgulanır:

Temsilci Tabanlı Veritabanı Entegrasyonu (Model Bağlam Protokolü)

Geleneksel olarak, veritabanı kodu yazma işlemi; IDE, dokümanlar ve veritabanı istemcileri arasında bağlam değiştirme işleminin manuel olarak yapıldığı bir süreçtir.

Bu laboratuvarda, bu boşluğu doldurmak için Model Context Protocol (MCP) Toolbox'ı kullandınız. Veritabanı şeması incelemesi ve SQL yürütme işlemlerini doğrudan yapay zeka aracısına araç olarak sunarak aracı şunları yapabildi:

  • Ham CSV verilerini inceleyin ve veritabanı şemasını tasarlayın.
  • Tablo oluşturmak için DDL'yi oluşturun ve yürütün.
  • Bağlantı havuzunu Next.js uygulamasına bağlayın.

Bu videoda, MCP'nin veritabanı geliştirmeyi nasıl etkileşimli ve hızlı bir deneyim haline getirdiği, aynı zamanda geliştiricinin IDE'de tam kontrol sahibi olmasını nasıl sağladığı gösterilmektedir.

Veritabanı İçi Yapay Zeka (Agent Platform ve Semantik Arama)

Uygulamanız, Google Cloud'un Agent Platform ile AlloyDB'nin yerel entegrasyonundan yararlanarak SQL kullanarak doğrudan veritabanında vektör yerleştirmeleri oluşturur:

  • Online Yerleştirme Oluşturma: AlloyDB, verileri harici bir Python hizmetine çekmek yerine SQL işlevleri aracılığıyla veritabanında text-embedding-004 modelini çağırır.
  • Semantik Vektör Arama: Temsilci, pgvector uzantısını ve kosinüs mesafesi operatörünü (<=>) kullanarak kullanıcının doğal dil "vibe"ını (ör. "romantik akşam yemeği") restoran kataloğundaki en yakın vektör gösterimiyle eşleştirebilir ve semantik olarak alakalı sonuçları milisaniyeler içinde döndürebilir.

Üretim düzeyinde veritabanı optimizasyonu (HNSW ve bölümleme)

Uygulamanın 100.000'den fazla satıra ölçeklenebilmesini ve yüksek trafiği işleyebilmesini sağlamak için iki gelişmiş veritabanı optimizasyonu uygulamak üzere sanal bir veritabanı yöneticisi olarak hareket ettiniz:

  • HNSW (Hierarchical Navigable Small World) dizini: Vektör sütununda bir HNSW dizini oluşturdunuz. Düz indekslerin aksine HNSW, yüksek geri çağırma oranıyla son derece hızlı yaklaşık en yakın komşu (ANN) aramalarına olanak tanıyan çok katmanlı bir grafik oluşturur.
  • Bildirim Temelli Tablo Bölümlendirme: Restoranlar tablosunu mahalleye göre bölümlendirdiniz. Bu sayede, belirli bir alanı hedefleyen sorgular tablonun tamamı yerine yalnızca ilgili bölümü tarar. Böylece disk G/Ç ve sorgu gecikmesi önemli ölçüde azalır.

Uygulama geliştiriciler olarak, uzman DBA bilgisi gerektirdiğinden karmaşık veritabanı yapılandırmalarından, vektör matematiğinden ve derin indeksleme stratejilerinden genellikle kaçınırız. Ajan tabanlı bir IDE ile Vibe Coding'i kullanarak bu boşluğu dolduruyoruz. Artık doğal dili kullanarak üretim düzeyinde veritabanı uygulamalarını güvenle tasarlayabiliyor, oluşturabiliyor ve optimize edebiliyoruz. Bu sayede geliştirme sürecimiz önemli ölçüde hızlanıyor ve en önemli şeye, yani muhteşem kullanıcı deneyimleri oluşturmaya odaklanabiliyoruz.

12. Temizleme

Bu laboratuvarda kullanılan kaynaklar için Google Cloud hesabınızın ücretlendirilmesini istemiyorsanız şu adımları uygulayın:

  1. Google Cloud Console'da Kaynakları yönetin sayfasına gidin.
  2. Proje listesinde silmek istediğiniz projeyi seçin ve Sil'i tıklayın.
  3. İletişim kutusunda proje kimliğini yazın ve projeyi silmek için Kapat'ı tıklayın.

13. Tebrikler

Vibe Coding'i kullanarak veriye dayalı ve yapay zeka destekli bir uygulamayı başarıyla oluşturup dağıttınız.

Bu laboratuvarda şunları öğreneceksiniz:

  • Hem özel hem de genel IP erişimi olan bir AlloyDB veritabanı sağlandı.
  • Antigravity IDE'nizi Model Context Protocol (MCP) Toolbox'ı kullanarak doğrudan veritabanına bağladıysanız.
  • CSV kataloğunu almak, Next.js ön ucunu veritabanına bağlamak ve Cloud Run'a dağıtmak için doğal dil kullanıldı.
  • Vektör yerleştirmeleri oluşturmak ve semantik arama yapmak için veritabanı içi Agent Platform entegrasyonu etkinleştirildi.
  • HNSW dizin oluşturma ve tablo bölümleme kullanarak veritabanınızı üretim ölçeğinde optimize etmek için sanal bir DBA olarak hareket edin.

Tüm bunlar, yapay zeka aracınızla doğal bir sohbet aracılığıyla, tek bir satır manuel SQL yazmadan veya harici veritabanı istemcileri açmadan gerçekleştirildi.

Daha fazla bilgi için ürün belgelerine bakın: