1. Pengantar
Dalam retail modern, data Anda adalah ekosistem yang beragam dan luas. Anda memiliki data transaksional yang sangat solid (harga dan inventaris), katalog polimorfik yang "berantakan" (spesifikasi elektronik versus ukuran pakaian), dan log perilaku berukuran petabyte. Memaksakan semua ini ke dalam satu monolit tidak hanya menciptakan utang teknis, tetapi juga merusak pengalaman pengguna.
Dalam codelab ini, Anda akan merancang Polyglot Powerhouse yang menyelaraskan:
- AlloyDB: Backbone transaksional Anda untuk konsistensi berkecepatan tinggi dan embedding gambar.
- MongoDB Atlas di Google Cloud: Lapisan katalog Anda yang fleksibel dan agnostik skema.
- Cloud Storage: Otak analitis Anda untuk perkiraan tren real-time.
- BigQuery: Warehouse digital beresolusi tinggi.
Apa "resep rahasianya"? Anda akan menggunakan MCP Toolbox for Databases untuk mengorkestrasi dan menyatukan sumber data yang berjalan di Cloud Run secara cerdas sebagai jembatan semantik, lalu men-deploy aplikasi chat multi-agen menggunakan Agent Development Kit (ADK). Anda tidak hanya membangun kotak penelusuran, tetapi juga membangun kecerdasan retail yang memahami konteks, mematuhi batasan, dan menjembatani kesenjangan antara data mentah dan niat manusia.
Kueri Pengguna yang Mustahil
Agen e-commerce standar gagal dalam penalaran multidimensi (menggabungkan batasan negatif, kemiripan visual, dan inventaris real-time). Misalnya, saya biasanya ingin berbicara dengan situs retail seperti ini:
"Halo, saya sedang merencanakan perjalanan fotografi di dataran tinggi. Tampilkan beberapa ransel tahan cuaca yang gayanya mirip dengan 'AeroGlow Pro', tetapi tanpa komponen kulit. Selain itu, beri tahu saya apakah produk tersebut benar-benar tersedia dan apakah fotografer lain mengeluhkan daya tahan talinya dalam ulasan."
Alasan kueri ini disebut "Pembunuh Agen":
- Kemiripan Visual (AlloyDB + Penelusuran Vektor): "Mirip dengan gaya AeroGlow Pro" memerlukan perbandingan embedding gambar.
- Batasan Negatif (MongoDB): "Tanpa kulit" memerlukan pemfilteran melalui atribut bertingkat yang fleksibel dan biasanya tidak ada dalam skema SQL standar.
- Inventaris Real-Time (AlloyDB): "Benar-benar tersedia" memerlukan pemeriksaan transaksional langsung (bukan indeks penelusuran yang usang).
- Sintesis Semantik (BigQuery + Multi-Agen): Menganalisis ulasan untuk "ketahanan tali" mengharuskan agen meringkas masukan tidak terstruktur dari BigQuery secara langsung.
Sebagian besar bot retail hanya akan melihat 'Ransel' dan 'Kulit' dan menampilkan 10 ransel kulit. Bagaimana cara kami menghentikannya?
Karena kami tidak hanya mencocokkan kata kunci. Kita menggunakan MCP Toolbox untuk memungkinkan agen kita'menalar' di semua sumber ini, yaitu kebenaran transaksional di AlloyDB dan atribut fleksibel di MongoDB secara bersamaan. Mari kita buat.
Yang akan Anda lakukan
- Menyediakan cluster AlloyDB untuk data produk inti
- Mengonfigurasi MongoDB Atlas di Google Cloud untuk menyimpan detail produk semi-terstruktur
- Membuat bucket Cloud Storage untuk menyajikan gambar produk
- Men-deploy MCP Toolbox for Databases ke Cloud Run untuk akses data yang seragam
- Menjalankan proses ETL untuk mengirim data ke BigQuery untuk analisis
- Berkomunikasi dengan agen AI dalam bahasa alami.

Prasyarat
- Browser web seperti Chrome
- Project Google Cloud yang mengaktifkan penagihan
- Akun MongoDB Atlas di Google Cloud gratis
2. Sebelum memulai
Membuat Project Google Cloud
- Di Konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
- Pastikan penagihan diaktifkan untuk project Cloud Anda. Pelajari cara memeriksa apakah penagihan telah diaktifkan pada suatu project.
Mulai Cloud Shell
Cloud Shell adalah lingkungan command line yang berjalan di Google Cloud yang telah dilengkapi dengan alat yang diperlukan.
- Klik Activate Cloud Shell di bagian atas Konsol Google Cloud.
- Setelah terhubung ke Cloud Shell, verifikasi autentikasi Anda:
gcloud auth list - Konfirmasi bahwa project Anda telah dikonfigurasi:
gcloud config get project - Jika project Anda tidak ditetapkan seperti yang diharapkan, tetapkan project:
export PROJECT_ID=<YOUR_PROJECT_ID> gcloud config set project $PROJECT_ID
Menetapkan variabel
Di Cloud Shell, tetapkan variabel lingkungan untuk project ID dan nomor project Anda:
export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
Aktifkan API yang diperlukan
Jalankan perintah ini untuk mengaktifkan semua API yang diperlukan:
gcloud services enable \
alloydb.googleapis.com \
bigquery.googleapis.com \
storage.googleapis.com \
run.googleapis.com \
cloudbuild.googleapis.com \
artifactregistry.googleapis.com \
iam.googleapis.com \
secretmanager.googleapis.com \
compute.googleapis.com \
servicenetworking.googleapis.com \
aiplatform.googleapis.com
3. Menyiapkan Cloud Storage
Cloud Storage berfungsi sebagai penyimpanan besar untuk aset media tidak terstruktur, seperti gambar produk.
- Di Konsol Google Cloud, buka Cloud Storage, lalu klik Create bucket.
- Beri bucket Anda nama yang unik secara global, misalnya
.-ecommerce-images - Klik Buat.
- Untuk mengizinkan aplikasi demo mengakses gambar tanpa autentikasi, hapus centang pada opsi Enforce public access prevention on this bucket, lalu klik Confirm.
- Buka tab Izin.
- Di Permissions, klik Grant access.
- Di New principals, masukkan
allUsers. - Di Select a role, pilih Cloud Storage > Storage Object Viewer.
- Klik Save, lalu klik Allow Public Access untuk mengonfirmasi bahwa Anda membuat resource tersebut dapat diakses publik.
- Di Cloud Shell, simpan nama bucket dalam variabel:
Gantiexport BUCKET=<your-bucket-name>dengan nama bucket yang Anda buat.
Mengupload gambar placeholder
Project ini menggunakan gambar placeholder untuk pengalaman visual terbaik.
- Di Cloud Shell, clone repositori:
git clone https://github.com/AbiramiSukumaran/polyglot-persist-ecommerce.git - Buka folder
UploadImages:cd polyglot-persist-ecommerce/UploadImages - Upload gambar sampel ke bucket Anda:
gcloud storage cp *.jpg gs://$BUCKET/
4. Menyiapkan AlloyDB
AlloyDB berfungsi sebagai satu sumber tepercaya untuk data terstruktur, transaksional, dan penting seperti ID produk, nama, SKU, harga, dan inventaris. AlloyDB juga mendukung agen AI dengan kemampuan penelusuran kemiripan untuk rekomendasi dan kueri bahasa alami.
Menyediakan Cluster AlloyDB
- Di Konsol Google Cloud, buka AlloyDB untuk PostgreSQL.
- Klik Create Cluster.
- Untuk Cluster ID, masukkan
ecommerce-cluster. - Tetapkan sandi yang kuat untuk pengguna
postgres. Untuk tujuan pembelajaran, Anda dapat menggunakanalloydb. - Untuk Database Version, pertahankan setelan default.
- Untuk Region, pilih
us-central1(atau region yang Anda inginkan).
Mengonfigurasi Instance Utama
- Untuk Instance ID, masukkan
ecommerce-cluster-primary. - Di Zonal availability, pilih Single zone.
- Untuk seri mesin, pilih
N2, dan untuk jenis mesin, pilih4 vCPU, 32 GB. - Di Private IP Connectivity, pilih Private Services Access (PSA), dan pilih jaringan
default.Jika jaringan default belum ditetapkan, klik Confirm network setup untuk membuatnya. - Di Public IP Connectivity, centang kotak Enable Public IP agar MCP toolbox dapat terhubung dengan benar dalam codelab ini. Konsol akan otomatis mengaktifkan flag
password.enforce_complexity, yang diperlukan AlloyDB untuk IP publik. - Di Authorized external networks, masukkan
0.0.0.0/0. Centang kotak Saya memahami risikonya, lalu klik Simpan. - Klik Create Cluster.
Melakukan Inisialisasi Database
- Klik AlloyDB Studio dari menu navigasi sebelah kiri.
- Di drop-down Database, pilih
postgres. - Pilih Built-in authentication untuk login ke database.
- Untuk Username, gunakan pengguna
postgres. - Untuk Password, masukkan sandi yang Anda tetapkan sebelumnya.
- Klik Autentikasikan.
- Di tampilan editor, buka tab Untitled query yang baru.
- Salin DDL berikut, lalu klik Run:
CREATE TABLE products_core_table ( product_id UUID PRIMARY KEY, name VARCHAR(255) NOT NULL, sku VARCHAR(50) UNIQUE NOT NULL, price NUMERIC(10, 2) NOT NULL, stock INT NOT NULL ); - Di Cloud Shell, buka folder root project:
cd ~/polyglot-persist-ecommerce - Buka file
alloydb_insert_queries.sqldi Cloud Shell Anda, lalu salin kueri penyisipan.cat alloydb_insert_queries.sql - Di tab Untitled query yang baru, tempel hanya pernyataan
INSERTdan klik Run. - Di tab kueri baru tanpa judul, salin DDL berikut dan klik Run untuk membuat indeks pada tabel
products_core_table:CREATE INDEX idx_products_core_sku ON products_core_table(sku);
Membuat embedding gambar untuk agen AI guna mengambil produk serupa
Integrasi agen AI menggunakan embedding gambar untuk mengambil produk serupa. Embedding dibuat menggunakan model multimodalembedding@001 dan disimpan di database AlloyDB. Embedding adalah vektor dimensi 1408 dan disimpan di kolom img_embeddings.
Sebelum dapat membuat embedding, kita harus memberikan peran yang diperlukan ke akun layanan AlloyDB untuk mengakses Cloud Storage.
Memberikan peran ke akun layanan AlloyDB untuk mengakses Cloud Storage
Berikan peran yang diperlukan akun layanan AlloyDB untuk membaca gambar dari Cloud Storage dan membuat embedding Vertex AI:
for role in roles/storage.objectUser roles/storage.objectViewer roles/aiplatform.user; do
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:service-${PROJECT_NUMBER}@gcp-sa-alloydb.iam.gserviceaccount.com" \
--role=$role --condition=None
done
Mengaktifkan ekstensi
Untuk membuat aplikasi ini, kita akan menggunakan ekstensi pgvector dan google_ml_integration. Ekstensi pgvector memungkinkan Anda menyimpan dan menelusuri embedding vektor. Ekstensi google_ml_integration menyediakan fungsi yang Anda gunakan untuk mengakses endpoint prediksi Vertex AI guna mendapatkan prediksi di SQL. Aktifkan ekstensi ini dengan menjalankan DDL berikut:
- Di Konsol Google Cloud, buka AlloyDB untuk PostgreSQL.
- Klik AlloyDB Studio dari menu navigasi sebelah kiri.
- Di tampilan editor, buka tab Untitled query yang baru.
- Salin DDL berikut, lalu klik Run:
CREATE EXTENSION IF NOT EXISTS vector; CREATE EXTENSION IF NOT EXISTS google_ml_integration;
Melakukan inisialisasi database dengan embedding
- Tambahkan kolom img_embeddings ke
products_core_table.ALTER TABLE products_core_table ADD COLUMN img_embeddings vector(1408); - Cetak kueri embedding dengan nama bucket Anda yang sudah diisi:
cd ~/polyglot-persist-ecommerce sed "s/<STORAGE_BUCKET_NAME>/$BUCKET/g" alloydb_generate_embeddings.sql - Salin output, tempel ke tab kueri AlloyDB Studio baru, lalu klik Run. Proses ini memerlukan waktu sekitar satu menit. Jika waktu habis, jalankan lagi; produk yang sudah memiliki embedding akan dilewati.
5. Menyiapkan MongoDB Atlas di Google Cloud
MongoDB menyimpan detail produk semiterstruktur yang lengkap dan data perilaku pengguna yang fleksibel (seperti klik dan tampilan).
Membuat cluster MongoDB
- Login ke MongoDB Atlas (buat akun gratis jika diperlukan).
- Di Deploy your cluster, pilih Free. (Atlas memilih paket berbayar secara default; pastikan Free dipilih.)
- Untuk Provider, pilih Google Cloud, dan untuk Region, pilih Iowa (us-central1).
- Untuk Name, masukkan
ecommerce-cluster, dan hapus centang Preload sample dataset. - Klik Create Deployment.
Mengizinkan akses dan membuat pengguna database
Atlas akan membuka dialog Connect to ecommerce-cluster.
- Klik Add a Different IP Address, masukkan
0.0.0.0/0, lalu tambahkan. - Masukkan
store-useruntuk Username danstoreuseruntuk Password, lalu klik Create Database User. - Klik Choose a connection method, lalu klik Drivers and library klien.
- Di bagian Use this connection string in your application, salin string koneksi. Sepertinya
mongodb+srv://store-user:. Ganti@ecommerce-cluster.xxxxx.mongodb.net/ denganstoreuserdan simpan string; Anda akan menggunakannya ditools.yaml.
Membuat Database dan Koleksi
- Di navigasi kiri, klik Data Explorer, lalu klik Create database dan masukkan detailnya:
- Database Name:
ecommerce_db - Nama Koleksi:
product_details_collection
- Database Name:
- Klik Create database.
- Di Data Explorer, pilih Nama Koleksi.
- Klik ikon Add Data (+), lalu klik Insert document.
- Salin konten JSON dari product_details_export.json dan tempelkan ke dialog editor Insert Document.
- Atlas menampilkan banner yang menawarkan untuk mengonversi teks menjadi sintaksis shell. Klik CONVERT, lalu klik Insert. Pastikan 192 dokumen telah ditambahkan.
- Di Data Explorer, klik Create collection (+) di samping database
ecommerce_db. - Masukkan
user_interactions_collectionuntuk nama koleksi, lalu klik Create Collection. - Di Data Explorer, pilih koleksi
user_interactions_collection. - Klik ikon Add Data (+), lalu klik Insert document.
- Salin konten JSON dari user_interactions_export.json dan tempelkan ke dialog editor Insert Document.
- Atlas menampilkan banner yang menawarkan untuk mengonversi teks menjadi sintaksis shell. Klik CONVERT, lalu klik Insert. Pastikan 211 dokumen telah ditambahkan.
6. Menyiapkan BigQuery
BigQuery menggabungkan dan menganalisis perilaku pengguna historis untuk menghasilkan pelaporan dan rekomendasi yang cerdas.
Membuat Set Data
- Di Konsol Google Cloud, buka BigQuery.
- Di samping project ID Anda di panel Explorer, klik menu tiga titik, lalu pilih Create dataset.
- Masukkan
ecommerce_analyticsuntuk Dataset ID. - Untuk Data location, pilih
US (multiple regions)(konfigurasitools.yamlmemerlukan lokasiUS). - Klik Create dataset.
Membuat Tabel Analytics
- Buka kueri baru di ruang kerja BigQuery.
- Jalankan pernyataan SQL berikut untuk membuat tabel ringkasan yang menautkan pengguna ke interaksi produk:
CREATE TABLE ecommerce_analytics.user_product_interactions (
user_id STRING DEFAULT 'any user',
product_id STRING,
interaction_score INT
);
Memberikan peran ke akun layanan Compute
Berikan peran yang diperlukan MCP Toolbox dan aplikasi ke akun layanan Compute default:
for role in \
roles/bigquery.dataEditor \
roles/bigquery.jobUser \
roles/secretmanager.secretAccessor \
roles/alloydb.client \
roles/serviceusage.serviceUsageConsumer \
roles/storage.objectViewer \
roles/aiplatform.user \
roles/artifactregistry.writer; do
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:${PROJECT_NUMBER}-compute@developer.gserviceaccount.com" \
--role="$role" \
--condition=None
done
Atau, di konsol, buka IAM & Admin > IAM, klik Grant access, masukkan akun layanan, dan tambahkan peran yang sama.
7. Memahami Aplikasi secara Menyeluruh
Untuk mempelajari cara kerja setiap komponen satu sama lain, kita akan membuat aplikasi e-commerce yang menggunakan beberapa database dan layanan. Aplikasi ini dibuat dengan backend Python (Flask) dan mengintegrasikan beberapa layanan serta database Google Cloud.
Memahami struktur direktori
Di bagian berikutnya, Anda akan meng-clone repositori polyglot-persist-ecommerce dan menggunakannya untuk menjalankan aplikasi secara lokal. Setelah menguji aplikasi secara lokal, kita akan men-deploy MCP Toolbox dan aplikasi ke Cloud Run.
Pelajari file yang didownload di direktori ini. Direktori tingkat tinggi berikut tersedia:
UploadImages: menyimpan aset gambar, yang terutama digunakan untuk dokumentasi atau konten visual untuk katalog produk e-commerce.static: menyimpan aset web statis aplikasi, seperti file CSS dan JavaScript, yang digunakan untuk menata gaya dan menambahkan interaktivitas ke antarmuka pengguna ( source).templates: menyimpan template HTML (kemungkinan Jinja2 untuk Flask) yang digunakan oleh aplikasi Python untuk merender halaman web secara dinamis untuk katalog e-commerce ( sumber).
File dalam repositori ini bekerja sama untuk membangun, mengonfigurasi, dan men-deploy aplikasi e-commerce multidb. File pusat seperti app.py mengatur backend dengan mengintegrasikan berbagai sumber data yang ditentukan dalam file SQL dan JSON, sementara file konfigurasi memastikan deployment yang lancar ke lingkungan cloud:
app.py: mengorkestrasi backend Flask dan integrasi multi-database.agentengine.py: Logika inti untuk melakukan inisialisasi dan mengonfigurasi agen Vertex AI..env: menyimpan secret untuk koneksi database dan penyimpanan.tools.yaml: mengonfigurasi MCP Toolbox untuk operasi database multidb.Dockerfile: menentukan image container dan penyiapan lingkungan.requirements.txt: mencantumkan library Python yang diperlukan untuk runtime aplikasi.tools.yaml: konfigurasi untuk MCP Toolbox.Procfile: menentukan perintah eksekusi produksi untuk deployment.alloydb_insert_queries.sql: berisi kueri SQL untuk data relasional.product_details_export.jsondanuser_interactions_export.json: menyediakan contoh data JSON untuk database NoSQL.README.md: memandu penyiapan, deployment, dan pemahaman project.
Alur End-to-End Aplikasi
- Penyiapan AlloyDB: Sediakan cluster berperforma tinggi dan gunakan skrip SQL yang disediakan untuk membuat products_core_table dengan kolom vektor untuk embedding gambar.
- Penyiapan MongoDB Atlas: Deploy cluster di Google Cloud untuk menyimpan atribut produk yang fleksibel di product_details dan mencatat clickstream real-time di user_interactions.
- BigQuery Analytics: Buat set data untuk menggabungkan log interaksi, sehingga memungkinkan kueri analisis yang kompleks untuk mengidentifikasi item trending "Top 5" di jutaan peristiwa.
- Repositori Cloud Storage: Buat bucket publik untuk menyimpan gambar produk beresolusi tinggi, sehingga setiap aset dapat diakses menggunakan URL bertanda tangan atau publik untuk frontend.
- Deployment MCP Toolbox: Deploy Toolbox ke Cloud Run, menjadikannya sebagai jembatan RESTful pusat yang menerjemahkan maksud bahasa alami menjadi kueri multi-database.
- Konfigurasi Tools.yaml: Tentukan "Tools" Anda—seperti get_product_core_data atau get_top_5_views—yang memetakan operasi SQL dan NoSQL tertentu ke nama sederhana yang dapat dibaca agen.
- Logika Backend Flask: Mengimplementasikan rute app.py yang berinteraksi dengan MCP Toolbox, menangani koordinasi pengambilan data, dan berfungsi sebagai API untuk UI.
- Orkestrasi Multi-Agen: Konfigurasikan agen ADK dalam kode untuk menalar niat pengguna, memilih "Alat" yang tepat untuk menyelesaikan kueri retail yang kompleks dan berasal dari berbagai sumber.
- Integrasi Frontend: Buat antarmuka index.html yang menampilkan katalog produk dengan fitur perekaman interaksi, tab Analytics untuk memahami analisis performa produk, dan "Tab Agen" khusus yang menggunakan chat multiagen ADK untuk memberikan pengalaman belanja percakapan yang lancar.
Sekarang, mari kita implementasikan orkestrasi dan deployment.
8. Menyiapkan MCP Toolbox dan Men-deploy ke Cloud Run
MCP Toolbox mengabstraksi beberapa sumber data kita, sehingga aplikasi kita dapat mengambil dan menulis data secara seragam.
Menginstal MCP Toolbox Secara Lokal
Download program biner MCP Toolbox ke direktori utama Anda dan buat agar dapat dieksekusi:
export VERSION=1.15.0
curl -L -o ~/toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/linux/amd64/toolbox
chmod +x ~/toolbox
Mengonfigurasi tools.yaml
Anda perlu menentukan abstraksi untuk AlloyDB, MongoDB, dan BigQuery. File tools.yaml memberi tahu toolbox MCP cara berinteraksi satu sama lain.
- Repositori sudah menyertakan
tools.yaml. Buka:cd ~/polyglot-persist-ecommerce cloudshell edit tools.yaml - Ganti placeholder
*****dengan nilai Anda:Database
Kolom
Nilai Contoh
AlloyDB/BigQuery
projectYOUR_PROJECT_IDAlloyDB
regionus-central1AlloyDB
clusterecommerce-clusterAlloyDB
instanceecommerce-cluster-primaryAlloyDB
databasepostgresAlloyDB
passwordalloydbAlloyDB
ipTypepublic(tambahkan baris ini di bawahalloydb-sourcejika belum ada)MongoDB
uristring koneksi yang Anda simpan sebelumnya
- Arahkan pratinjau gambar ke bucket Anda:
sed -i "s/ecommerce-app-images/$BUCKET/g" tools.yaml
Menguji UI alat Anda
- Di terminal Cloud Shell, jalankan toolbox secara lokal untuk menyajikan UI:
~/toolbox --config tools.yaml --ui --enable-api - Di Cloud Shell, klik Web Preview > Change port, masukkan
5000, dan tambahkan/uike akhir URL yang terbuka.
UI MCP toolbox berikut akan terlihat:

Setelah selesai, tekan Ctrl+C untuk menghentikan toolbox lokal.
Men-deploy ke Cloud Run
Men-deploy MCP Toolbox ke Cloud Run agar tersedia sebagai layanan terkelola yang aman yang dapat digunakan aplikasi kita untuk mengkueri database. Kita akan menyimpan konfigurasi di Secret Manager untuk melindungi detail koneksi yang sensitif.
- Upload konfigurasi
tools.yamlke Google Secret Manager: Jika Anda mengubahgcloud secrets create tools --data-file=tools.yamltools.yamlnanti, upload versi baru dengan:gcloud secrets versions add tools --data-file=tools.yaml - Deploy menggunakan image container MCP Toolbox publik:
gcloud run deploy toolbox \ --image us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION \ --region us-central1 \ --service-account ${PROJECT_NUMBER}-compute@developer.gserviceaccount.com \ --set-secrets "/app/tools.yaml=tools:latest" \ --args="--config=/app/tools.yaml","--address=0.0.0.0","--port=8080","--ui","--enable-api" \ --allow-unauthenticated--enable-apimengaktifkan REST API yang digunakan aplikasi web. - Simpan URL toolbox:
Anda dapat membukaexport TOOLBOX_URL=$(gcloud run services describe toolbox --region us-central1 --format='value(status.url)') echo $TOOLBOX_URL$TOOLBOX_URL/uidi browser untuk melihat alat.
9. Menyiapkan aplikasi e-commerce dan men-deploy ke Cloud Run
Setelah database berjalan dan abstraksi MCP Toolbox di-deploy, kita dapat menjalankan aplikasi web Flask.
Untuk menyajikan katalog produk, aplikasi Flask memproses data dengan melakukan langkah-langkah berikut:
- Mengambil data inti: Mengambil daftar lengkap produk dari AlloyDB (
list_products_core). - Mengambil detail yang diperluas: Mengambil semua detail produk dari MongoDB (
list_all_product_details). - Gabungkan daftar: Menggabungkan dua daftar.
- Enrich with media: Menambahkan URL gambar Cloud Storage ke setiap item.
Membuat Agent Engine
- Instal dependensinya:
Catatan: Langkah ini dapat memerlukan waktu beberapa menit untuk menyelesaikan dan menginstal paket.cd ~/polyglot-persist-ecommerce pip install -r requirements.txt - Melakukan inisialisasi dan mendaftarkan agen AI menggunakan Vertex AI Reasoning Engine:
Outputnya akan mirip dengan berikut ini:export REASONING_ENGINE_LOCATION=us-central1 export APP_NAME=$(python agentengine.py) echo $APP_NAMEprojects/991742412753/locations/us-central1/reasoningEngines/4933254136889081856
Aplikasi membaca setelannya dari variabel lingkungan, yang Anda teruskan dalam perintah deploy di bawah, sehingga Anda tidak perlu mengedit .env.
Men-deploy Frontend ke Cloud Run
- Deploy aplikasi web ke Cloud Run untuk melengkapi arsitektur:
gcloud run deploy polyglot --source . \ --region us-central1 \ --allow-unauthenticated \ --set-env-vars="MCP_TOOLBOX_SERVER_URL=$TOOLBOX_URL,GCS_PRODUCT_BUCKET=$BUCKET,FALLBACK_IMAGE_URL=https://storage.googleapis.com/$BUCKET/fallback.jpg,GOOGLE_GENAI_USE_VERTEXAI=TRUE,PROJECT_ID=$PROJECT_ID,GOOGLE_CLOUD_LOCATION=global,REASONING_ENGINE_LOCATION=$REASONING_ENGINE_LOCATION,APP_NAME=$APP_NAME,MODEL=gemini-3.5-flash"
Aplikasi Anda kini sudah aktif. Buka URL layanan yang disediakan oleh Cloud Run untuk melihat katalog Multidb Ecommerce. URL akan mirip dengan https://polyglot-*********-uc.a.run.app/.
10. Menjelajahi aplikasi
- Klik Katalog Produk untuk melihat semua produk.

- Klik ikon produk untuk melihat detail produk. Anda akan melihat bahwa gambar bersumber dari Cloud Storage, detail produk diambil dari MongoDB, dan inventaris produk diambil dari AlloyDB.

- Berinteraksi dengan katalog produk untuk menghasilkan tampilan dan penulisan tiruan yang dikirim ke MongoDB.
- Klik ETL & Analytics untuk melihat analisis produk. Anda akan melihat bahwa analisis produk diambil dari BigQuery.

- Klik tab Agen AI untuk berinteraksi dengan agen AI. Ajukan pertanyaan dalam bahasa alami seperti berikut:
I'm planning a high-altitude photography trip. Show me some weather-resistant backpacks similar in style to aero glow pro but without any leather components. Also, let me know if they are actually in stock and if other photographers have complained about the strap durability in the reviews.
Anda dapat melihat bahwa penelusuran menampilkan hasil yang sesuai dengan permintaan kita, yaitu ransel tanpa komponen kulit, tersedia, dan tidak ada keluhan tentang ketahanan tali di ulasan.

11. Pembersihan
Agar tidak menimbulkan biaya berkelanjutan pada akun Google Cloud Anda, hapus resource yang dibuat selama codelab ini.
Jalankan perintah Cloud Shell berikut:
gcloud run services delete toolbox --region us-central1 --quiet
gcloud run services delete polyglot --region us-central1 --quiet
gcloud secrets delete tools --quiet
bq rm -r -f -d $PROJECT_ID:ecommerce_analytics
gcloud storage rm --recursive gs://$BUCKET
gcloud alloydb clusters delete ecommerce-cluster --region us-central1 --force --quiet
Jika perlu, hapus instance Agent Engine:
curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://us-central1-aiplatform.googleapis.com/v1/$APP_NAME?force=true"
Atau, di Konsol Google Cloud, buka Vertex AI > Agent Engine dan hapus instance.
Jika ingin, untuk menghapus seluruh project Google Cloud dan semua resource-nya, jalankan perintah berikut:
gcloud projects delete $PROJECT_ID
12. Selamat
Selamat! Anda telah berhasil membangun arsitektur Multidb lintas cloud.
Anda telah menunjukkan cara MCP Toolbox berfungsi sebagai penghubung arsitektur untuk aplikasi khusus yang modern. Dengan mencocokkan database yang tepat dengan tugas yang tepat, Anda mencapai:
- Penulisan Data yang Fleksibel: MongoDB untuk log peristiwa.
- Konsistensi Transaksional: AlloyDB untuk integritas inti.
- Analisis Performa Tinggi: BigQuery untuk business intelligence.
- Pengembangan Terpadu: Satu backend Python yang mengabstraksi semua kompleksitas menggunakan MCP Toolbox.
Dokumen referensi
Pelajari lebih lanjut produk Google Cloud terkait dan pelajari codelab berikut:
- AlloyDB AI: Mulai menggunakan Embedding Vektor dengan AlloyDB AI
- AlloyDB AI: Embedding Multimodal di AlloyDB
- MCP Toolbox: Menginstal dan Menyiapkan MCP Toolbox for Databases di AlloyDB
Untuk mengetahui informasi selengkapnya tentang produk yang digunakan dalam codelab ini, lihat: