Ringkasan
Salah satu alat terbaik untuk meningkatkan kualitas respons dari model bahasa besar (LLM) adalah retrieval-augmented generation (RAG). RAG adalah pola pengambilan data non-publik dan penggunaan data tersebut untuk mendukung perintah yang Anda kirimkan ke LLM. Dengan RAG, LLM dapat menghasilkan respons yang lebih akurat berdasarkan data yang disertakan dalam perintah.
Anda akan menggunakan AlloyDB, yakni database Google Cloud yang skalabel dan berperforma tinggi serta kompatibel dengan PostgreSQL, untuk menyimpan dan melakukan penelusuran berdasarkan jenis data vektor khusus yang disebut embedding vektor. Embedding vektor dapat diambil menggunakan penelusuran semantik, yang memungkinkan pengambilan data yang tersedia yang paling cocok dengan kueri bahasa alami pengguna. Data yang diambil kemudian diteruskan ke LLM dalam perintah.
Untuk mengambil data dari database, Anda akan menggunakan MCP Toolbox, server middleware yang mengekspos operasi database sebagai sekumpulan alat. Agen terhubung ke Toolbox untuk menjalankan alat-alat ini. Hal ini memberikan cara yang aman, skalabel, dan modular untuk mengelola interaksi database.
Anda juga akan menggunakan Vertex AI, yakni platform pengembangan AI terpadu dan terkelola sepenuhnya dari Google Cloud untuk membangun dan menggunakan AI generatif. Aplikasi Anda menggunakan Gemini Pro, yakni model dasar multimodal yang mendukung penambahan file gambar, audio, video, dan PDF dalam perintah teks atau chat serta mendukung pemahaman konteks panjang.

Yang akan Anda pelajari
Di lab ini, Anda akan mempelajari:
- Cara RAG meningkatkan kemampuan LLM dengan mengambil informasi yang relevan dari pusat informasi.
- Cara AlloyDB dapat digunakan untuk menemukan informasi yang relevan menggunakan penelusuran semantik.
- Cara menggunakan Vertex AI dan model dasar Google untuk memberikan kemampuan AI generatif yang canggih ke aplikasi.
Penyiapan dan persyaratan
Sebelum mengklik tombol Start Lab
Catatan: Baca petunjuk ini.
Lab memiliki timer dan Anda tidak dapat menjedanya. Timer yang dimulai saat Anda mengklik Start Lab akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.
Lab interaktif Qwiklabs ini dapat Anda gunakan untuk melakukan sendiri aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.
Yang Anda perlukan
Untuk menyelesaikan lab ini, Anda memerlukan:
- Akses ke browser internet standar (disarankan browser Chrome).
- Waktu untuk menyelesaikan lab.
Catatan: Jika Anda sudah memiliki akun atau project Google Cloud pribadi, jangan menggunakan akun atau project tersebut untuk lab ini.
Catatan: Jika Anda menggunakan Pixelbook, buka di jendela Samaran untuk menjalankan lab ini.
Cara memulai lab dan login ke Console
-
Klik tombol Start Lab. Jika Anda perlu membayar lab, jendela pop-up akan terbuka untuk memilih metode pembayaran.
Di sebelah kiri terdapat panel berisi kredensial sementara yang harus Anda gunakan untuk lab ini.

-
Salin nama pengguna, lalu klik Open Google Console.
Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Choose an account.
Tips: Buka tab di jendela terpisah secara berdampingan.
-
Di halaman Choose an account, klik Use Another Account. Halaman Login akan terbuka.

-
Tempel nama pengguna yang telah disalin dari panel Connection Details. Lalu, salin dan tempel sandinya.
Catatan: Anda harus menggunakan kredensial dari panel Connection Details. Jangan menggunakan kredensial Google Cloud Skills Boost. Jangan menggunakan akun Google Cloud pribadi Anda untuk lab ini agar terhindar dari tagihan.
- Klik halaman berikutnya:
- Setujui persyaratan dan ketentuan.
- Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
- Jangan daftar uji coba gratis.
Setelah beberapa saat, Konsol Cloud akan terbuka di tab ini.
Catatan: Anda dapat melihat menu berisi daftar Produk dan Layanan Google Cloud dengan mengklik Navigation menu di kiri atas.
Mengaktifkan Google Cloud Shell
Google Cloud Shell adalah virtual machine yang dilengkapi dengan berbagai fitur pengembangan. Virtual machine ini menawarkan direktori beranda persisten berkapasitas 5 GB dan berjalan di Google Cloud.
Google Cloud Shell menyediakan akses command line untuk resource Google Cloud Anda.
-
Di Cloud Console, pada toolbar di kanan atas, klik tombol Open Cloud Shell.

-
Klik Continue.
Proses menyediakan dan menghubungkan ke lingkungan memerlukan waktu beberapa saat. Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke PROJECT_ID Anda. Contoh:

gcloud adalah alat command line untuk Google Cloud. Alat ini sudah terinstal di Cloud Shell dan mendukung pelengkapan command line.
- Anda dapat menampilkan daftar nama akun yang aktif dengan perintah ini:
gcloud auth list
Output:
Akun berkredensial:
- @.com (aktif)
Contoh output:
Akun berkredensial:
- google1623327_student@qwiklabs.net
- Anda dapat menampilkan daftar project ID dengan perintah ini:
gcloud config list project
Output:
[core]
project =
Contoh output:
[core]
project = qwiklabs-gcp-44776a13dea667a6
Catatan:
Dokumentasi lengkap gcloud tersedia dalam
panduan ringkasan gcloud CLI
.
Tugas 1. Melakukan inisialisasi lingkungan
Dalam tugas ini, Anda akan menginstal Python, MCP Toolbox, dan klien PostgreSQL.
SSH ke VM aplikasi
Virtual machine (VM) telah dibuat. VM ini menghosting aplikasi dan MCP Toolbox.
-
Untuk terhubung ke VM, jalankan perintah berikut di Cloud Shell:
gcloud compute ssh app-vm --zone={{{project_0.default_zone | ZONE }}}
Jika diminta untuk memberikan otorisasi, klik Authorize.
-
Untuk tiap pertanyaan yang diajukan oleh perintah gcloud compute ssh, klik Enter atau Return untuk menentukan input default.
Setelah menunggu sebentar, Anda akan login ke VM.
Menginstal Python dan Git
-
Untuk menginstal Python dan Git, jalankan perintah berikut di VM:
sudo apt update
sudo apt install -y python3.11-venv git
python3 -m venv .venv
source ~/.venv/bin/activate
pip install --upgrade pip
Setelah penginstalan selesai, Anda akan berada di lingkungan Python virtual, dengan prompt (.venv).
Jika sesi SSH VM habis waktunya atau tab ditutup, Anda dapat melakukan SSH ke VM lagi dan menggunakan perintah source ~/.venv/bin/activate untuk memulai ulang lingkungan Python virtual.
-
Untuk mengonfirmasi versi python, jalankan perintah berikut:
python -V
Respons Anda akan terlihat seperti ini:
(.venv) student@app-vm:~$ python -V
Python 3.11.2
(.venv) student@app-vm:~$
Menginstal klien PostgreSQL
-
Untuk menginstal klien PostgreSQL, di sesi VM, jalankan perintah berikut:
sudo apt install -y postgresql-client
Catatan: Klien mungkin sudah diinstal.
Mendownload demo dan MCP Toolbox
-
Untuk meng-clone kode demo ini, jalankan perintah berikut:
cd ~
git clone https://github.com/GoogleCloudPlatform/cymbal-air-toolbox-demo.git
cd cymbal-air-toolbox-demo
-
Untuk mendownload program biner MCP Toolbox, jalankan perintah berikut:
export MCP_TOOLBOX_VERSION="{{{project_0.startup_script.gcp_mcp_toolbox_version | TOOLBOX_VERSION}}}"
curl -O https://storage.googleapis.com/genai-toolbox/v$MCP_TOOLBOX_VERSION/linux/amd64/toolbox
chmod +x toolbox
Tugas 2. Membuat database vektor
Dalam tugas ini, Anda akan menggunakan klien PostgreSQL untuk membuat database vektor.
Membuat database vektor
Instance AlloyDB telah dibuat.
-
Untuk membuat database baru, jalankan perintah berikut:
export PROJECT_ID=$(gcloud config get-value project)
export REGION={{{project_0.default_region | REGION }}}
export ADBCLUSTER={{{project_0.startup_script.gcp_alloydb_cluster_name | CLUSTER}}}
export ADBINSTANCE={{{project_0.startup_script.gcp_alloydb_primary_instance | INSTANCE}}}
export INSTANCE_IP=$(gcloud alloydb instances describe $ADBINSTANCE --cluster=$ADBCLUSTER --region=$REGION --format="value(ipAddress)")
export PGUSER={{{project_0.startup_script.gcp_alloydb_user | PG_USER}}}
export PGPASSWORD={{{project_0.startup_script.gcp_alloydb_password | PG_PASSWORD}}}
export PGDATABASE={{{project_0.startup_script.gcp_alloydb_database | DATABASE}}}
psql "host=$INSTANCE_IP user=$PGUSER dbname=postgres" -c "CREATE DATABASE $PGDATABASE"
psql akan merespons dengan CREATE DATABASE.
Agar database dapat mendukung penelusuran semantik, entity harus direpresentasikan oleh embedding vektor.
-
Untuk mengaktifkan embedding vektor di database ini, jalankan perintah berikut:
psql "host=$INSTANCE_IP user=$PGUSER dbname=$PGDATABASE" -c "CREATE EXTENSION vector"
psql akan merespons dengan CREATE EXTENSION.
Klik Check my progress untuk memverifikasi tujuan.
Membuat database AlloyDB dan mengaktifkan ekstensi vektor.
Tugas 3. Mengisi database contoh
Dalam tugas ini, Anda akan menggunakan MCP Toolbox untuk mengisi database vektor di AlloyDB dengan data sampel. Data ini digunakan untuk aplikasi chat.
Memeriksa model data
-
Untuk melihat model data, jalankan perintah berikut:
cd ~/cymbal-air-toolbox-demo
cat models/models.py
Model data Python akan ditampilkan di sini. Model ini mencakup bandara, penerbangan, fasilitas di dalam terminal, kebijakan, dan tiket.
-
Untuk melihat contoh data bandara, jalankan perintah berikut:
head -1 data/airport_dataset.csv; grep SFO data/airport_dataset.csv
Perintah ini menampilkan header CSV yang menentukan nama kolom untuk set data bandara diikuti dengan baris untuk Bandara Internasional San Francisco (SFO). Data dalam model bandara dapat diambil berdasarkan kode International Air Transport Association (IATA), atau berdasarkan negara, kota, dan nama bandara. Anda dapat menggunakan penelusuran kata kunci untuk menemukan baris dalam tabel ini, sehingga tidak ada embedding vektor untuk data ini.
-
Untuk melihat contoh data penerbangan, jalankan perintah berikut:
head -1 data/flights_dataset.csv; grep -m10 "SFO" data/flights_dataset.csv
Perintah ini menampilkan header CSV yang menentukan nama kolom untuk set data penerbangan, diikuti dengan 10 baris pertama penerbangan ke atau dari SFO. Data dalam model penerbangan dapat diambil berdasarkan maskapai dan nomor penerbangan, atau menurut kode bandara keberangkatan dan kedatangan.
-
Untuk melihat contoh data fasilitas, jalankan perintah berikut:
head -2 data/amenity_dataset.csv
Perintah ini menampilkan header CSV yang menentukan nama kolom untuk set data fasilitas, diikuti dengan fasilitas pertama.
Anda akan melihat bahwa fasilitas pertama memiliki beberapa nilai sederhana, termasuk nama, deskripsi, lokasi, terminal, kategori, dan jam operasional. Nilai berikutnya adalah content, yang berisi nama, deskripsi, dan lokasi. Nilai terakhir adalah embedding, yaitu embedding vektor untuk baris.
Embedding adalah array berisi 768 angka yang digunakan saat melakukan penelusuran semantik. Embedding ini dihitung menggunakan model AI yang disediakan oleh Vertex AI. Saat pengguna memberikan kueri, embedding vektor dapat dibuat dari kueri tersebut, dan data dengan embedding vektor yang mirip dengan embedding penelusuran dapat diambil.
Data kebijakan juga menggunakan embedding vektor dengan cara yang serupa.
Catatan: Perhitungan embedding memerlukan waktu, jadi embedding telah disediakan. Skrip run_generate_embeddings.py dapat diperiksa untuk melihat cara pembuatan embedding.
Memulai toolbox
-
Untuk mengonfigurasi variabel lingkungan yang diperlukan untuk MCP Toolbox, jalankan perintah berikut:
export ALLOYDB_POSTGRES_PROJECT=$(gcloud config get-value project)
export ALLOYDB_POSTGRES_REGION={{{project_0.default_region | REGION }}}
export ALLOYDB_POSTGRES_CLUSTER={{{project_0.startup_script.gcp_alloydb_cluster_name | CLUSTER}}}
export ALLOYDB_POSTGRES_INSTANCE={{{project_0.startup_script.gcp_alloydb_primary_instance | PRIMARY_INSTANCE}}}
export ALLOYDB_POSTGRES_DATABASE={{{project_0.startup_script.gcp_alloydb_database | DATABASE}}}
export ALLOYDB_POSTGRES_USER={{{project_0.startup_script.gcp_alloydb_user | PG_USER}}}
export ALLOYDB_POSTGRES_PASSWORD={{{project_0.startup_script.gcp_alloydb_password | PG_PASSWORD}}}
export ALLOYDB_POSTGRES_IP_TYPE=private
Variabel lingkungan MCP Toolbox ini mirip dengan yang digunakan untuk klien PostgreSQL.
Langkah berikutnya adalah menjalankan MCP Toolbox.
-
Untuk menjalankan MCP Toolbox di latar belakang untuk inisialisasi data, jalankan perintah berikut:
cd ~/cymbal-air-toolbox-demo
./toolbox --prebuilt alloydb-postgres &
Ampersand (&) menyebabkan toolbox berjalan di latar belakang, sehingga Anda dapat melakukan inisialisasi database di sesi SSH yang sama.
Mengisi database
-
Untuk menginstal dependensi Python aplikasi demo, jalankan perintah berikut:
source ~/.venv/bin/activate
pip install -r requirements.txt
-
Untuk menjalankan skrip database, jalankan perintah berikut:
export PYTHONPATH=~/cymbal-air-toolbox-demo
python data/run_database_init.py
Perintah pertama menambahkan jalur ke modul Python, dan skrip init mengisi database.
-
Untuk memverifikasi data yang diisi, jalankan perintah berikut:
psql "host=$INSTANCE_IP user=$PGUSER dbname=$PGDATABASE" -c "SELECT COUNT(*) FROM airports"
Perintah PostgreSQL menampilkan jumlah bandara dalam tabel bandara.
-
Untuk mengakhiri proses Toolbox di latar belakang, jalankan perintah berikut:
pkill toolbox
Mengisi database dengan set data sampel.
Tugas 4. Membuat akun layanan untuk MCP toolbox
Dalam tugas ini, Anda akan membuat akun layanan untuk MCP toolbox.
Untuk aplikasi chat kami, MCP toolbox bertanggung jawab untuk mengekstrak informasi yang relevan dari database. Layanan ini mengekstrak informasi yang diperlukan dari database berdasarkan permintaan dari aplikasi AI. Akun layanan ini digunakan sebagai identitas layanan MCP toolbox yang berjalan di Cloud Run.
Membuat akun layanan
Pengguna SSH tidak memiliki izin bagi instance project untuk dapat memberikan peran yang benar kepada akun layanan. Anda akan membuat akun layanan menggunakan tab Cloud Shell baru.
-
Di Cloud Shell, untuk membuka tab Cloud Shell baru, klik Open a new tab (+).
-
Untuk membuat akun layanan, jalankan perintah berikut di tab baru:
gcloud iam service-accounts create toolbox-identity
Akun layanan ini dibuat.
Catatan: Jika ditampilkan error bahwa Anda saat ini tidak memilih akun aktif, hal itu mungkin hanya penundaan dalam penerapan data. Jalankan perintah lagi.
-
Untuk memberikan hak istimewa yang diperlukan kepada akun layanan, jalankan perintah berikut:
export PROJECT_ID=$(gcloud config get-value project)
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/alloydb.client"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/serviceusage.serviceUsageConsumer"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/secretmanager.secretAccessor"
Akun layanan ini diberi peran berikut:
-
roles/alloydb.client memungkinkan toolbox mengakses database AlloyDB.
-
roles/serviceusage.serviceUsageConsumer memungkinkan toolbox menggunakan layanan.
-
roles/secretmanager.secretAccessor memungkinkan toolbox mengambil secret yang disimpan di Secret Manager.
-
Untuk menutup tab baru itu, jalankan perintah berikut:
exit
Membuat retrieval-identity akun layanan.
Tugas 5. Mendaftarkan layar izin OAuth
Dalam tugas ini, Anda akan mendaftarkan layar izin OAuth yang ditampilkan kepada pengguna yang sedang login.
Saat Anda menggunakan OAuth 2.0 untuk otorisasi, Google akan menampilkan layar izin untuk meminta izin pengguna dalam berbagi data dengan aplikasi.
-
Di Konsol Google Cloud, pilih Navigation menu (
), lalu pilih APIs & Services > OAuth consent screen.
-
Klik Get Started.
-
Untuk App name, masukkan Cymbal Air.
-
Klik User support email, lalu klik email siswa, kemudian klik Next.
-
Untuk Audience, pilih Internal, lalu klik Next.
Pengguna yang memiliki akses ke project seharusnya sudah dapat login ke aplikasi.
-
Di panel kiri petunjuk lab, salin Username.

-
Untuk Contact information, tempelkan nama pengguna yang disalin.
-
Klik Next.
-
Klik Checkbox untuk menyetujui Kebijakan Data Pengguna, lalu klik Continue, kemudian klik Create.
Layar izin kini sudah siap.
Tugas 6. Membuat client ID untuk aplikasi
Dalam tugas ini, Anda akan membuat client ID untuk aplikasi.
Aplikasi memerlukan client ID untuk menggunakan layanan OAuth Google. Anda akan mengonfigurasi origin yang diizinkan yang dapat membuat permintaan ini, dan mengonfigurasi URI pengalihan yang akan menjadi tujuan pengalihan aplikasi web setelah pengguna setuju untuk login.
-
Di Konsol Google Cloud, pilih Navigation menu (
), lalu pilih APIs & Services > Credentials.
-
Klik + Create Credentials, lalu klik OAuth client ID.
Client ID digunakan untuk mengidentifikasi aplikasi tunggal ke server OAuth Google.
-
Untuk Application type, pilih Web application.
-
Untuk Name, masukkan Cymbal Air.
Anda dapat membuat origin JavaScript dan URI pengalihan menggunakan Cloud Shell.
-
Di Cloud Shell, untuk membuka tab Cloud Shell baru, klik Open a new tab (+).
-
Untuk mendapatkan URI origin dan pengalihan, jalankan perintah berikut di tab baru:
echo "origin:"; echo "https://8080-$WEB_HOST"; echo "redirect:"; echo "https://8080-$WEB_HOST/login/google"
-
Untuk Authorized JavaScript origins, klik + Add URI.
Catatan: Pilih tombol Add URI di bagian Authorized JavaScript origins, bukan di bagian Authorized redirect URIs.
-
Salin URI origin yang dibuat oleh perintah echo, lalu tempelkan URI tersebut untuk URIs 1.
-
Untuk Authorized redirect URIs, klik + Add URI.
Catatan: Hal ini adalah tombol Add URI kedua, di bagian Authorized redirect URIs.
-
Salin URI pengalihan yang dibuat oleh perintah echo, lalu tempelkan URI tersebut untuk URIs 1.
-
Untuk membuat variabel lingkungan, beralihlah ke tab Cloud Shell SSH VM, lalu tempel perintah berikut tanpa mengklik Enter:
export CLIENT_ID=
Catatan: Pastikan Anda membuat variabel lingkungan CLIENT_ID di dalam sesi virtual machine.
-
Di jendela Credentials, klik Create.
Client ID dan rahasia klien telah dibuat. Untuk aplikasi pengujian ini, Anda hanya menggunakan client ID.
-
Klik Copy client ID (
).
Client ID disalin ke papan klip.
Catatan: Client ID juga dapat disalin dari halaman Credentials.
-
Di tab Cloud Shell SSH VM, tempel client ID, lalu klik Enter.
Hasil ekspor akan terlihat seperti ini:
export CLIENT_ID=937631684809-q7hs2r191jbks7f7dopih2uafuknb92h.apps.googleusercontent.com
Membuat client ID untuk aplikasi.
Tugas 7. Men-deploy toolbox ke Cloud Run
Dalam tugas ini, Anda akan men-deploy MCP toolbox ke Cloud Run.
Membuat file konfigurasi untuk toolbox
File tools.yaml sampel disediakan untuk toolbox, tetapi beberapa setelan perlu diubah.
-
Untuk melihat setelan konfigurasi, jalankan perintah berikut:
head -20 ~/cymbal-air-toolbox-demo/tools.yaml
File YAML ini berisi setelan konfigurasi untuk database dan untuk OAuth.
Konfigurasinya akan terlihat seperti ini:
sources:
my-pg-instance:
kind: alloydb-postgres
project: retrieval-app-testing
region: us-central1
cluster: my-alloydb-cluster
instance: my-alloydb-instance
database: assistantdemo
user: postgres
password: postgres
authServices:
my_google_service:
kind: google
clientId: 706535509072-qa5v22ur8ik8o513b0538ufo0ne9jfn5.apps.googleusercontent.com
-
Untuk memperbarui setelan agar sesuai dengan lingkungan Anda, jalankan perintah berikut:
export PROJECT="$(gcloud config get-value project)"
export REGION="{{{project_0.default_region | REGION }}}"
export CLUSTER="{{{project_0.startup_script.gcp_alloydb_cluster_name | CLUSTER}}}"
export INSTANCE="{{{project_0.startup_script.gcp_alloydb_primary_instance | PRIMARY_INSTANCE}}}"
export DATABASE="{{{project_0.startup_script.gcp_alloydb_database | DATABASE}}}"
export USER="{{{project_0.startup_script.gcp_alloydb_user | PG_USER}}}"
export PASSWORD="{{{project_0.startup_script.gcp_alloydb_password | PG_PASSWORD}}}"
export IP_TYPE="private"
sed \
-e "s/^\( *project:\).*$/\1 $PROJECT/" \
-e "s/^\( *region:\).*$/\1 $REGION/" \
-e "s/^\( *cluster:\).*$/\1 $CLUSTER/" \
-e "s/^\( *instance:\).*$/\1 $INSTANCE/" \
-e "s/^\( *database:\).*$/\1 $DATABASE/" \
-e "s/^\( *user:\).*$/\1 $USER/" \
-e "s/^\( *password:\).*$/\1 $PASSWORD\\n ipType: $IP_TYPE/" \
-e "s/^\( *clientId:\).*$/\1 $CLIENT_ID/" \
~/cymbal-air-toolbox-demo/tools.yaml > ~/tools.yaml
Perintah ini menggunakan sed untuk mengganti setelan tertentu ke dalam file tools.yaml sampel. Baris ipType juga ditambahkan di bawah baris sandi, karena jenis IP default adalah publik.
-
Untuk melihat update file, jalankan perintah berikut:
head -20 ~/tools.yaml
Bagian atas file setelan kini berisi nilai Anda.
Setelan sensitif (terutama sandi database dan client ID) harus diamankan sebagai secret.
Membuat secret untuk file tools.yaml
Daripada melakukan check-in informasi sensitif ke dalam repositori kode atau sebagai bagian dari aplikasi yang sedang berjalan, Secret Manager dapat digunakan untuk mengamankan secret Anda.
-
Untuk membuat secret, jalankan perintah berikut:
cd ~
gcloud secrets create tools --data-file=tools.yaml
-
Untuk memvalidasi bahwa secret telah disimpan, jalankan perintah berikut:
gcloud secrets describe tools
Sekarang Anda akan melihat bahwa ada secret bernama tools.
Men-deploy toolbox ke Cloud Run
-
Untuk men-deploy toolbox ke Cloud Run, jalankan perintah berikut di tab Cloud Shell SSH VM:
export REGION={{{project_0.default_region | REGION }}}
export MCP_TOOLBOX_VERSION="{{{project_0.startup_script.gcp_mcp_toolbox_version | TOOLBOX_VERSION}}}"
export IMAGE="us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$MCP_TOOLBOX_VERSION"
gcloud run deploy toolbox \
--image $IMAGE \
--service-account toolbox-identity \
--region $REGION \
--set-secrets "/app/tools.yaml=tools:latest" \
--args="--tools-file=/app/tools.yaml","--address=0.0.0.0","--port=8080" \
--network default \
--subnet default \
--no-allow-unauthenticated \
--quiet
Tunggu hingga deployment selesai.
-
Untuk memverifikasi layanan, jalankan perintah berikut:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" $(gcloud run services list --filter="(toolbox)" --format="value(URL)")
Jika Anda melihat pesan "Halo Dunia!", berarti layanan sudah aktif dan melayani permintaan.
Men-deploy layanan toolbox.
Tugas 8. Menjalankan aplikasi sampel
Dalam tugas ini, Anda akan menjalankan aplikasi chat sampel yang menggunakan layanan pengambilan.
Menjalankan aplikasi
-
Untuk kembali ke root aplikasi chat, jalankan perintah berikut di tab Cloud Shell SSH VM:
source ~/.venv/bin/activate
cd ~/cymbal-air-toolbox-demo
Sebelum memulai aplikasi, Anda perlu menyiapkan beberapa variabel lingkungan. Fungsi dasar aplikasi, termasuk membuat kueri penerbangan dan menampilkan fasilitas bandara, memerlukan variabel lingkungan bernama TOOLBOX_URL untuk menampung URL layanan toolbox yang berjalan di Cloud Run.
-
Untuk menentukan URL layanan toolbox, jalankan perintah berikut:
export TOOLBOX_URL=$(gcloud run services list --filter="(toolbox)" --format="value(URL)")
echo $TOOLBOX_URL
URL toolbox digunakan oleh aplikasi lokal untuk mengakses database melalui MCP Toolbox.
-
Untuk menjalankan aplikasi, jalankan perintah berikut:
python run_app.py
Respons Anda akan terlihat seperti ini:
(.venv) student-03-d87d6b142a95@app-vm:~/cymbal-air-toolbox-demo$ python run_app.py
INFO: Started server process [26127]
INFO: Waiting for application startup.
Loading application...
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8081 (Press CTRL+C to quit)
Aplikasi kini berjalan.
Terhubung ke VM
Anda memiliki beberapa cara untuk terhubung ke aplikasi yang sedang dijalankan di VM. Misalnya, Anda dapat membuka port 8081 di VM menggunakan aturan firewall di VPC, atau membuat load balancer dengan IP publik. Di sini, Anda akan menggunakan tunnel SSH ke VM, yang menerjemahkan port 8080 Cloud Shell ke port 8081 VM.
-
Di Cloud Shell, untuk membuka tab Cloud Shell baru, klik Open a new tab (+).
-
Untuk membuat tunnel SSH ke port VM, jalankan perintah berikut di tab baru:
gcloud compute ssh app-vm --zone={{{project_0.default_zone | ZONE }}} -- -L localhost:8080:localhost:8081
Perintah gcloud akan menghubungkan port localhost 8080 di Cloud Shell dengan port 8081 di VM. Anda dapat mengabaikan error "Cannot assign requested address".
-
Untuk menjalankan aplikasi di browser web, klik Web Preview, lalu pilih Preview on port 8080.

Tab baru akan terbuka di browser, dan aplikasi akan berjalan. Aplikasi Cymbal Air akan menampilkan pesan "Selamat datang di Cymbal Air! Ada yang bisa kami bantu?"
-
Masukkan kueri berikut:
Kapan penerbangan berikutnya ke Los Angeles?
Aplikasi akan merespons dengan penerbangan berikutnya dari SFO ke LAX, atau meminta informasi klarifikasi dari Anda.
-
Masukkan kueri berikut:
Untuk penerbangan tersebut, restoran mana yang dekat dengan gerbang keberangkatan?
Aplikasi chat mungkin meminta Anda mengklarifikasi penerbangan mana, tetapi aplikasi dapat memahami konteks dan merespons dengan mencantumkan restoran di dekat gerbang keberangkatan di SFO.
Tugas 9. Login ke aplikasi (opsional)
Dalam tugas ini, Anda akan login ke aplikasi untuk memesan penerbangan.
-
Klik Login.
Jendela pop-up akan terbuka.
-
Di jendela pop-up, pilih siswa.
-
Untuk mengizinkan Cymbal Air mengakses info tentang pengguna siswa, klik Continue.
Akun siswa akan login.
-
Masukkan kueri berikut:
Please book that flight.
Aplikasi akan menampilkan penerbangan yang sedang dibahas.
-
Klik Looks good to me. Book it.
Tiket pesawat sudah dipesan.
-
Masukkan kueri berikut:
Which flights have I booked?
Penerbangan yang baru saja Anda pesan akan ditampilkan.
Aplikasi chat ini dapat membantu menjawab pertanyaan pengguna seperti:
- Apakah ada toko barang mewah di sekitar gerbang D50?
- Di mana saya bisa mendapatkan kopi di dekat gerbang A6?
Aplikasi ini menggunakan model dasar Google terbaru untuk menghasilkan respons dan melengkapinya dengan informasi tentang penerbangan dan fasilitas dari database AlloyDB operasional. Anda dapat membaca informasi selengkapnya tentang aplikasi demo ini di halaman GitHub project.
Selamat!
Anda telah berhasil membangun aplikasi chat yang memanfaatkan model bahasa besar (LLM) dan retrieval-augmented generation (RAG) untuk menciptakan percakapan yang menarik dan informatif.
Langkah berikutnya/pelajari lebih lanjut
Mengakhiri lab Anda
Setelah Anda menyelesaikan lab, klik Akhiri Lab. Google Cloud Skills Boost menghapus resource yang telah Anda gunakan dan membersihkan akun.
Anda akan diberi kesempatan untuk menilai pengalaman menggunakan lab. Pilih jumlah bintang yang sesuai, ketik komentar, lalu klik Submit.
Makna jumlah bintang:
- 1 bintang = Sangat tidak puas
- 2 bintang = Tidak puas
- 3 bintang = Netral
- 4 bintang = Puas
- 5 bintang = Sangat puas
Anda dapat menutup kotak dialog jika tidak ingin memberikan masukan.
Untuk masukan, saran, atau koreksi, gunakan tab Support.
Manual Terakhir Diperbarui pada 13 Oktober 2025
Lab Terakhir Diuji pada 13 Oktober 2025
Hak cipta 2025 Google LLC. Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.