Membangun aplikasi chat berbasis LLM dan RAG menggunakan database Cloud SQL dan LangChain

1. Pengantar

Dalam codelab ini, Anda akan mempelajari cara men-deploy Layanan Pengambilan Database GenAI dan membuat contoh aplikasi interaktif menggunakan lingkungan yang di-deploy.

8727a44c8c402834.pngS

Anda bisa mendapatkan informasi lebih lanjut tentang Layanan Pengambilan GenAI dan aplikasi contohnya di sini.

Prasyarat

  • Pemahaman dasar tentang Konsol Google Cloud
  • Keterampilan dasar dalam antarmuka command line dan Google Cloud shell

Yang akan Anda pelajari

  • Cara membuat instance Cloud SQL
  • Cara terhubung ke instance
  • Cara mengonfigurasi dan men-deploy Layanan Pengambilan Database GenAI
  • Cara men-deploy aplikasi contoh menggunakan layanan yang di-deploy

Yang akan Anda butuhkan

  • Akun Google Cloud dan Project Google Cloud
  • Browser web seperti Chrome

2. Penyiapan dan Persyaratan

Penyiapan lingkungan mandiri

  1. Login ke Google Cloud Console dan buat project baru atau gunakan kembali project yang sudah ada. Jika belum memiliki akun Gmail atau Google Workspace, Anda harus membuatnya.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • Project name adalah nama tampilan untuk peserta project ini. String ini adalah string karakter yang tidak digunakan oleh Google API. Anda dapat memperbaruinya kapan saja.
  • Project ID bersifat unik di semua project Google Cloud dan tidak dapat diubah (tidak dapat diubah setelah ditetapkan). Cloud Console otomatis membuat string unik; biasanya Anda tidak mementingkan kata-katanya. Di sebagian besar codelab, Anda harus merujuk Project ID-nya (umumnya diidentifikasi sebagai PROJECT_ID). Jika tidak suka dengan ID yang dibuat, Anda dapat membuat ID acak lainnya. Atau, Anda dapat mencobanya sendiri, dan lihat apakah ID tersebut tersedia. ID tidak dapat diubah setelah langkah ini dan tersedia selama durasi project.
  • Sebagai informasi, ada nilai ketiga, Project Number, yang digunakan oleh beberapa API. Pelajari lebih lanjut ketiga nilai ini di dokumentasi.
  1. Selanjutnya, Anda harus mengaktifkan penagihan di Konsol Cloud untuk menggunakan resource/API Cloud. Menjalankan operasi dalam codelab ini tidak akan memakan banyak biaya, bahkan mungkin tidak sama sekali. Guna mematikan resource agar tidak menimbulkan penagihan di luar tutorial ini, Anda dapat menghapus resource yang dibuat atau menghapus project-nya. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis senilai $300 USD.

Mulai Cloud Shell

Meskipun Google Cloud dapat dioperasikan dari jarak jauh menggunakan laptop Anda, dalam codelab ini, Anda akan menggunakan Google Cloud Shell, lingkungan command line yang berjalan di Cloud.

Dari Google Cloud Console, klik ikon Cloud Shell di toolbar kanan atas:

55efc1aaa7a4d3ad.png

Hanya perlu waktu beberapa saat untuk penyediaan dan terhubung ke lingkungan. Jika sudah selesai, Anda akan melihat tampilan seperti ini:

7ffe5cbb04455448.png

Mesin virtual ini berisi semua alat pengembangan yang Anda perlukan. Layanan ini menawarkan direktori beranda tetap sebesar 5 GB dan beroperasi di Google Cloud, sehingga sangat meningkatkan performa dan autentikasi jaringan. Semua pekerjaan Anda dalam codelab ini dapat dilakukan di browser. Anda tidak perlu menginstal apa pun.

3. Sebelum memulai

Aktifkan API

Di dalam Cloud Shell, pastikan project ID Anda sudah disiapkan:

Biasanya project ID ditampilkan dalam tanda kurung di command prompt di Cloud Shell seperti yang ditunjukkan dalam gambar:

fa6ee779963405d5.png

gcloud config set project [YOUR-PROJECT-ID]

Kemudian, tetapkan variabel lingkungan PROJECT_ID ke project ID Google Cloud Anda:

PROJECT_ID=$(gcloud config get-value project)

Aktifkan semua layanan yang diperlukan:

gcloud services enable sqladmin.googleapis.com \
                       compute.googleapis.com \
                       cloudresourcemanager.googleapis.com \
                       servicenetworking.googleapis.com \
                       vpcaccess.googleapis.com \
                       aiplatform.googleapis.com \
                       cloudbuild.googleapis.com \
                       artifactregistry.googleapis.com \
                       run.googleapis.com \
                       iam.googleapis.com

Output konsol yang diharapkan:

student@cloudshell:~ (gleb-test-short-004)$ gcloud services enable sqladmin.googleapis.com \
                       compute.googleapis.com \
                       cloudresourcemanager.googleapis.com \
                       servicenetworking.googleapis.com \
                       vpcaccess.googleapis.com \
                       aiplatform.googleapis.com \
                       cloudbuild.googleapis.com \
                       artifactregistry.googleapis.com \
                       run.googleapis.com \
                       iam.googleapis.com
Operation "operations/acf.p2-404051529011-664c71ad-cb2b-4ab4-86c1-1f3157d70ba1" finished successfully.

4. Membuat instance Cloud SQL

Membuat instance Cloud SQL dengan dukungan vektor diaktifkan.

Membuat sandi

Tentukan sandi untuk pengguna database default. Anda dapat menentukan sandi Anda sendiri atau menggunakan fungsi acak untuk membuat sandi

export CLOUDSQL_PASSWORD=`openssl rand -hex 12`

Catat nilai yang dihasilkan untuk sandi

echo $CLOUDSQL_PASSWORD

MySQL

Anda dapat mengaktifkan tanda cloudsql_vector pada saat pembuatan instance. Saat ini, dukungan vektor ditawarkan di MySQL 8.0.36 & 8.0.37.

export region=us-central1
gcloud sql instances create my-cloudsql-instance --region=$region --database-version=MYSQL_8_0_36 --database-flags=cloudsql_vector=ON --root-password=$CLOUDSQL_PASSWORD

Output konsol yang diharapkan (alamat IP disamarkan):

student@cloudshell:~ export region=us-central1
gcloud sql instances create my-cloudsql-instance --region=$region --database-version=MYSQL_8_0_36 --database-flags=cloudsql_vector=ON --root-password=$CLOUDSQL_PASSWORD
Creating Cloud SQL instance for MYSQL_8_0_36...done.                                                                                                                                 
Created [https://sqladmin.googleapis.com/sql/v1beta4/projects/test-project-402417/instances/my-cloudsql-instance].
NAME                   DATABASE_VERSION  LOCATION       TIER             PRIMARY_ADDRESS  PRIVATE_ADDRESS  STATUS
my-cloudsql-instance  MYSQL_8_0_36      us-central1-a  db-n1-standard-1  00.000.00.00   -                RUNNABLE

PostgreSQL

Ekstensi pgvector ditawarkan dalam versi >= 11.

export region=us-central1
gcloud sql instances create my-cloudsql-instance --region=$region --database-version=POSTGRES_15 --tier=db-g1-small

Output konsol yang diharapkan (alamat IP disamarkan):

student@cloudshell:~ export region=us-central1
gcloud sql instances create my-cloudsql-instance --region=$region --database-version=POSTGRES_15 --tier=db-g1-small
Creating Cloud SQL instance for POSTGRES_15...done.                                                                                                                                  
Created [https://sqladmin.googleapis.com/sql/v1beta4/projects/test-project-402417/instances/my-cloudsql-instance].
NAME                   DATABASE_VERSION  LOCATION       TIER         PRIMARY_ADDRESS  PRIVATE_ADDRESS  STATUS
my-cloudsql-instance  POSTGRES_15       us-central1-a  db-g1-small  00.000.00.00     -                RUNNABLE

Setelah membuat instance, kita perlu menentukan sandi untuk pengguna default dalam instance dan memeriksa apakah kita dapat terhubung dengan sandi. Masukkan sandi Anda di dialog jika perangkat sudah siap untuk dihubungkan.

gcloud sql users set-password postgres \
    --instance=my-cloudsql-instance \
    --password=$CLOUDSQL_PASSWORD
gcloud sql connect my-cloudsql-instance --user=postgres

Output konsol yang diharapkan:

student@cloudshell:~ (test-project-402417)$ gcloud sql users set-password postgres \
    --instance=my-cloudsql-instance \
    --password=$CLOUDSQL_PASSWORD
gcloud sql connect my-cloudsql-instance --user=postgres
Updating Cloud SQL user...done.                                                                                                                                                                                                                                            
Allowlisting your IP for incoming connection for 5 minutes...done.                                                                                                                                                                                                         
Connecting to database with SQL user [postgres].Password: 
psql (16.3 (Ubuntu 16.3-1.pgdg22.04+1), server 15.7)
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off)
Type "help" for help.

postgres=>

Keluar dari sesi psql:

exit

5. Siapkan Virtual Machine GCE

Buat Akun Layanan

Karena kita akan menggunakan VM untuk men-deploy layanan Pengambilan Database GenAI dan menghosting aplikasi contoh, langkah pertama adalah membuat Akun Layanan Google (GSA). GSA akan digunakan oleh VM GCE, dan kita perlu memberinya izin akses yang diperlukan agar dapat berfungsi dengan layanan lain.

Di Cloud Shell, jalankan:

PROJECT_ID=$(gcloud config get-value project)
gcloud iam service-accounts create compute-aip --project $PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:compute-aip@$PROJECT_ID.iam.gserviceaccount.com" \
  --role="roles/cloudbuild.builds.editor"
gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:compute-aip@$PROJECT_ID.iam.gserviceaccount.com" \
  --role="roles/artifactregistry.admin"
gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:compute-aip@$PROJECT_ID.iam.gserviceaccount.com" \
  --role="roles/storage.admin"
gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:compute-aip@$PROJECT_ID.iam.gserviceaccount.com" \
  --role="roles/run.admin"
gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:compute-aip@$PROJECT_ID.iam.gserviceaccount.com" \
  --role="roles/iam.serviceAccountUser"
gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:compute-aip@$PROJECT_ID.iam.gserviceaccount.com" \
  --role="roles/cloudsql.viewer"
gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:compute-aip@$PROJECT_ID.iam.gserviceaccount.com" \
  --role="roles/cloudsql.client"
gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:compute-aip@$PROJECT_ID.iam.gserviceaccount.com" \
  --role="roles/aiplatform.user"

Deploy VM GCE

Buat VM GCE di region dan VPC yang sama dengan instance Cloud SQL.

Di Cloud Shell, jalankan:

export ZONE=us-central1-a
gcloud compute instances create instance-1 \
    --zone=$ZONE \
    --create-disk=auto-delete=yes,boot=yes,image=projects/debian-cloud/global/images/$(gcloud compute images list --filter="family=debian-12 AND family!=debian-12-arm64" --format="value(name)") \
    --scopes=https://www.googleapis.com/auth/cloud-platform \
  --service-account=compute-aip@$PROJECT_ID.iam.gserviceaccount.com

Output konsol yang diharapkan:

student@cloudshell:~ (test-project-402417)$ export ZONE=us-central1-a
student@cloudshell:~ (test-project-402417)$ export ZONE=us-central1-a
gcloud compute instances create instance-1 \
    --zone=$ZONE \
    --create-disk=auto-delete=yes,boot=yes,image=projects/debian-cloud/global/images/$(gcloud compute images list --filter="family=debian-12 AND family!=debian-12-arm64" --format="value(name)") \
    --scopes=https://www.googleapis.com/auth/cloud-platform

Created [https://www.googleapis.com/compute/v1/projects/test-project-402417/zones/us-central1-a/instances/instance-1].
NAME: instance-1
ZONE: us-central1-a
MACHINE_TYPE: n1-standard-1
PREEMPTIBLE: 
INTERNAL_IP: 10.128.0.2
EXTERNAL_IP: 34.71.192.233
STATUS: RUNNING

Memberi otorisasi pada VM untuk terhubung ke Cloud SQL

Kita perlu menambahkan IP publik VM ke daftar jaringan yang diizinkan untuk instance Cloud SQL. Di Cloud Shell, jalankan:

VM_EXTERNAL_IP=$(gcloud compute instances describe instance-1 --zone=us-central1-a --format='get(networkInterfaces[0].accessConfigs[0].natIP)')
gcloud sql instances patch my-cloudsql-instance --authorized-networks=$VM_EXTERNAL_IP

Output konsol yang diharapkan:

student@cloudshell:~ (test-project-402417)$ export ZONE=us-central1-a
student@cloudshell:~ (test-project-402417)$ VM_EXTERNAL_IP=$(gcloud compute instances describe instance-1 --zone=us-central1-a --format='get(networkInterfaces[0].accessConfigs[0].natIP)')
gcloud sql instances patch my-cloudsql-instance --authorized-networks=$VM_EXTERNAL_IP
When adding a new IP address to authorized networks, make sure to also include any IP addresses that have already been authorized. Otherwise, they will be overwritten and de-authorized.

Do you want to continue (Y/n)?  Y

The following message will be used for the patch API method.
{"name": "my-cloudsql-instance", "project": "test-project-402417", "settings": {"ipConfiguration": {"authorizedNetworks": [{"value": "34.71.252.173"}]}}}
Patching Cloud SQL instance...done.                                                                                                                                                                                     
Updated [https://sqladmin.googleapis.com/sql/v1beta4/projects/test-project-402417/instances/my-cloudsql-instance].

Menginstal klien database

MySQL

Instal software klien MySQL pada VM yang di-deploy.

Hubungkan ke VM:

gcloud compute ssh instance-1 --zone=us-central1-a

Output konsol yang diharapkan:

student@cloudshell:~ (test-project-402417)$ gcloud compute ssh instance-1 --zone=us-central1-a
Updating project ssh metadata...working..Updated [https://www.googleapis.com/compute/v1/projects/test-project-402417].                                                                                                                                                         
Updating project ssh metadata...done.                                                                                                                                                                                                                                              
Waiting for SSH key to propagate.
Warning: Permanently added 'compute.5110295539541121102' (ECDSA) to the list of known hosts.
Linux instance-1 5.10.0-26-cloud-amd64 #1 SMP Debian 5.10.197-1 (2023-09-29) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
student@instance-1:~$ 

Instal software yang menjalankan perintah dalam VM:

sudo apt-get update
sudo apt-get install --yes default-mysql-client

Output konsol yang diharapkan:

student@instance-1:~$ sudo apt-get update
sudo apt-get install --yes mysql-client
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  libconfig-inifiles-perl libdbd-mariadb-perl libdbi-perl libgdbm-compat4 libperl5.32 libterm-readkey-perl mariadb-client-10.5 mariadb-client-core-10.5 perl perl-modules-5.32
Suggested packages:
  libclone-perl libmldbm-perl libnet-daemon-perl libsql-statement-perl perl-doc libterm-readline-gnu-perl | libterm-readline-perl-perl make libtap-harness-archive-perl
The following NEW packages will be installed:
  default-mysql-client libconfig-inifiles-perl libdbd-mariadb-perl libdbi-perl libgdbm-compat4 libperl5.32 libterm-readkey-perl mariadb-client-10.5 mariadb-client-core-10.5 perl
  Perl-modules-5.32
...redacted...
Processing triggers for libc-bin (2.31-13+deb11u10) ...

PostgreSQL

Instal software klien PostgreSQL pada VM yang di-deploy.

Hubungkan ke VM:

gcloud compute ssh instance-1 --zone=us-central1-a

Output konsol yang diharapkan:

student@cloudshell:~ (test-project-402417)$ gcloud compute ssh instance-1 --zone=us-central1-a
Updating project ssh metadata...working..Updated [https://www.googleapis.com/compute/v1/projects/test-project-402417].                                                                                                                                                         
Updating project ssh metadata...done.                                                                                                                                                                                                                                              
Waiting for SSH key to propagate.
Warning: Permanently added 'compute.5110295539541121102' (ECDSA) to the list of known hosts.
Linux instance-1 5.10.0-26-cloud-amd64 #1 SMP Debian 5.10.197-1 (2023-09-29) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
student@instance-1:~$ 

Instal software yang menjalankan perintah dalam VM:

sudo apt-get update
sudo apt-get install --yes postgresql-client

Output konsol yang diharapkan:

student@instance-1:~$ sudo apt-get update
sudo apt-get install --yes postgresql-client
Get:1 file:/etc/apt/mirrors/debian.list Mirrorlist [30 B]
Get:4 file:/etc/apt/mirrors/debian-security.list Mirrorlist [39 B]
Hit:7 https://packages.cloud.google.com/apt google-compute-engine-bookworm-stable InRelease
Get:8 https://packages.cloud.google.com/apt cloud-sdk-bookworm InRelease [1652 B]
Get:2 https://deb.debian.org/debian bookworm InRelease [151 kB]
Get:3 https://deb.debian.org/debian bookworm-updates InRelease [55.4 kB]
...redacted...
update-alternatives: using /usr/share/postgresql/15/man/man1/psql.1.gz to provide /usr/share/man/man1/psql.1.gz (psql.1.gz) in auto mode
Setting up postgresql-client (15+248) ...
Processing triggers for man-db (2.11.2-2) ...
Processing triggers for libc-bin (2.36-9+deb12u7) ...

Hubungkan ke Instance

MySQL

Hubungkan ke instance utama dari VM menggunakan MySQL.

Lanjutkan dengan sesi SSH yang dibuka ke VM Anda. Jika koneksi Anda telah terputus, hubungkan kembali menggunakan perintah yang sama seperti di atas.

Gunakan $CLOUDSQL_PASSWORD yang telah dicatat sebelumnya dan nama instance untuk terhubung ke Cloud SQL dari VM GCE:

export CLOUDSQL_PASSWORD=<Noted password>
export PROJECT_ID=$(gcloud config get-value project)
export REGION=us-central1
export INSTANCE_NAME=my-cloudsql-instance
export INSTANCE_IP=$(gcloud sql instances list --filter=name:$INSTANCE_NAME --format="value(PRIMARY_ADDRESS)")
mysql --host=$INSTANCE_IP --user=root --password=$CLOUDSQL_PASSWORD

Output konsol yang diharapkan:

student@instance-1:~$ export CLOUDSQL_PASSWORD=P9...
student@instance-1:~$ export REGION=us-central1
student@instance-1:~$ export INSTANCE_NAME=my-cloud-sql-instance
student@instance-1:~$ export INSTANCE_IP=$(gcloud sql instances list --filter=name:$INSTANCE_NAME --format="value(PRIMARY_ADDRESS)")
student@instance-1:~$ mysql  –host=$INSTANCE_IP –user=root –password=$CLOUDSQL_PASSWORD –sslmode=require 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 2824706
Server version: 8.0.36-google (Google)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]>

Keluar dari sesi MySQL dengan tetap mempertahankan koneksi SSH:

exit

Output konsol yang diharapkan:

MySQL [(none)]> exit
Bye
student@instance-1:~$ 

PostgreSQL

Hubungkan ke instance utama dari VM menggunakan psql.

Lanjutkan dengan sesi SSH yang dibuka ke VM Anda. Jika koneksi Anda telah terputus, hubungkan kembali menggunakan perintah yang sama seperti di atas.

Gunakan $CLOUDSQL_PASSWORD yang telah dicatat sebelumnya dan nama instance untuk terhubung ke PostgreSQL dari VM GCE:

export PGPASSWORD=<Noted password (CLOUDSQL_PASSWORD)>
export CLOUDSQL_PASSWORD=$PGPASSWORD
export PROJECT_ID=$(gcloud config get-value project)
export REGION=us-central1
export INSTANCE_NAME=my-cloudsql-instance
export INSTANCE_IP=$(gcloud sql instances list --filter=name:$INSTANCE_NAME --format="value(PRIMARY_ADDRESS)")
psql "host=$INSTANCE_IP user=postgres sslmode=require"

Output konsol yang diharapkan:

student@instance-1:~$ export CLOUDSQL_PASSWORD=P9...
student@instance-1:~$ export REGION=us-central1
student@instance-1:~$ export INSTANCE_IP=$(gcloud sql instances list --filter=name:$INSTANCE_NAME --format="value(PRIMARY_ADDRESS)")
student@instance-1:~$ psql "host=$INSTANCE_IP user=postgres sslmode=require"
psql (13.11 (Debian 13.11-0+deb11u1), server 14.7)
WARNING: psql major version 13, server major version 14.
         Some psql features might not work.
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.

postgres=> 

Keluar dari sesi psql dengan tetap mempertahankan koneksi SSH:

exit

Output konsol yang diharapkan:

postgres=> exit
student@instance-1:~$ 

6. Melakukan inisialisasi database

Kita akan menggunakan VM klien sebagai platform untuk mengisi database dengan data dan menghosting aplikasi. Langkah pertama adalah membuat database dan mengisinya dengan data.

Buat Database

MySQL

Buat database dengan nama "assistantdemo".

Dalam sesi VM GCE, jalankan:

mysql --host=$INSTANCE_IP  --user=root --password=$CLOUDSQL_PASSWORD -e "CREATE DATABASE assistantdemo"

Output konsol yang diharapkan (tidak ada output):

student@instance-1:~$ mysql --host=$INSTANCE_IP  --user=root --password=$CLOUDSQL_PASSWORD -e "CREATE DATABASE assistantdemo"
student@instance-1:~$  

PostgreSQL

Buat database dengan nama "assistantdemo".

Dalam sesi VM GCE, jalankan:

psql "host=$INSTANCE_IP user=postgres" -c "CREATE DATABASE assistantdemo"  

Output konsol yang diharapkan:

student@instance-1:~$ psql "host=$INSTANCE_IP user=postgres" -c "CREATE DATABASE assistantdemo"
CREATE DATABASE
student@instance-1:~$  

Aktifkan ekstensi pgvector.

psql "host=$INSTANCE_IP user=postgres dbname=assistantdemo" -c "CREATE EXTENSION vector"  

Output konsol yang diharapkan (tidak ada output):

student@instance-1:~$ psql "host=$INSTANCE_IP user=postgres dbname=assistantdemo" -c "CREATE EXTENSION vector"
CREATE EXTENSION
student@instance-1:~$

Menyiapkan Lingkungan Python

Untuk melanjutkan, kita akan menggunakan skrip Python yang sudah disiapkan dari repositori GitHub. Namun, sebelum itu, kita perlu menginstal software yang diperlukan.

Di VM GCE, jalankan:

sudo apt install -y python3.11-venv git
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip

Output konsol yang diharapkan:

student@instance-1:~$ sudo apt install -y python3.11-venv git
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  git-man liberror-perl patch python3-distutils python3-lib2to3 python3-pip-whl python3-setuptools-whl
Suggested packages:
  git-daemon-run | git-daemon-sysvinit git-doc git-email git-gui gitk gitweb git-cvs git-mediawiki git-svn ed diffutils-doc
The following NEW packages will be installed:
  git git-man liberror-perl patch python3-distutils python3-lib2to3 python3-pip-whl python3-setuptools-whl python3.11-venv
0 upgraded, 9 newly installed, 0 to remove and 2 not upgraded.
Need to get 12.4 MB of archives.
After this operation, 52.2 MB of additional disk space will be used.
Get:1 file:/etc/apt/mirrors/debian.list Mirrorlist [30 B]
...redacted...
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 23.0.1
    Uninstalling pip-23.0.1:
      Successfully uninstalled pip-23.0.1
Successfully installed pip-24.0
(.venv) student@instance-1:~$

Verifikasi versi Python.

Di VM GCE, jalankan:

python -V

Output konsol yang diharapkan:

(.venv) student@instance-1:~$ python -V
Python 3.11.2
(.venv) student@instance-1:~$ 

Menyiapkan file konfigurasi

Buat clone repositori GitHub dengan kode untuk layanan pengambilan dan aplikasi contoh.

Di VM GCE, jalankan:

git clone https://github.com/GoogleCloudPlatform/genai-databases-retrieval-app.git

Output konsol yang diharapkan:

student@instance-1:~$ git clone https://github.com/GoogleCloudPlatform/genai-databases-retrieval-app.git
Cloning into 'genai-databases-retrieval-app'...
remote: Enumerating objects: 525, done.
remote: Counting objects: 100% (336/336), done.
remote: Compressing objects: 100% (201/201), done.
remote: Total 525 (delta 224), reused 179 (delta 135), pack-reused 189
Receiving objects: 100% (525/525), 46.58 MiB | 16.16 MiB/s, done.
Resolving deltas: 100% (289/289), done.

MySQL

Di VM GCE, jalankan:

cd ~/genai-databases-retrieval-app/retrieval_service
cp example-config-cloudsql.yml config.yml
cp example-config-cloudsql.yml config.yml
sed -i s/engine/mysql/g config.yml
sed -i s/my-project/$PROJECT_ID/g config.yml
sed -i s/my-region/$REGION/g config.yml
sed -i s/my-instance/$INSTANCE_NAME/g config.yml
sed -i s/my-password//g config.yml
sed -i s/my_database/assistantdemo/g config.yml
sed -i s/my-user/root/g config.yml
cat config.yml

Output konsol yang diharapkan:

student@instance-1:~$ cd genai-databases-retrieval-app/retrieval_service
cp example-config-cloudsql.yml config.yml
sed -i s/127.0.0.1/$INSTANCE_IP/g config.yml
sed -i s/my-password/$CLOUDSQL_PASSWORD/g config.yml
sed -i s/my_database/assistantdemo/g config.yml
sed -i s/my-user/postgres/g config.yml
cat config.yml
host: 0.0.0.0
# port: 8080
datastore:
  # Example for MySQL
  kind: "cloudsql-mysql"
  host: 10.65.0.2
  # port: 5432
  database: "assistantdemo"
  user: "root"
  password: "P9..."

Postgres

Di VM GCE, jalankan:

cd ~/genai-databases-retrieval-app/retrieval_service
cp example-config-cloudsql.yml config.yml
sed -i s/engine/postgres/g config.yml
sed -i s/my-project/$PROJECT_ID/g config.yml
sed -i s/my-region/$REGION/g config.yml
sed -i s/my-instance/$INSTANCE_NAME/g config.yml
sed -i s/my-password/$PGPASSWORD/g config.yml
sed -i s/my_database/assistantdemo/g config.yml
sed -i s/my-user/postgres/g config.yml
cat config.yml

Output konsol yang diharapkan:

student@instance-1:~$ cd genai-databases-retrieval-app/retrieval_service
cp example-config-cloudsql.yml config.yml
sed -i s/engine/postgres/g config.yml
sed -i s/my-project/$PROJECT_ID/g config.yml
sed -i s/my-region/$REGION/g config.yml
sed -i s/my-instance/$INSTANCE_NAME/g config.yml
sed -i s/my-password/$CLOUDSQL_PASSWORD/g config.yml
sed -i s/my_database/assistantdemo/g config.yml
sed -i s/my-user/postgres/g config.yml
cat config.yml
host: 0.0.0.0
# port: 8080
datastore:
  # Example for Postgres
  kind: "cloudsql-postgres"
  host: 10.65.0.2
  # port: 5432
  database: "assistantdemo"
  user: "postgres"
  password: "P9..."

Isi database

Isi database dengan set data contoh. Perintah pertama adalah menambahkan semua paket yang diperlukan ke lingkungan virtual Python dan perintah kedua adalah mengisi database dengan data tersebut.

Di VM GCE, jalankan:

cd ~/genai-databases-retrieval-app/retrieval_service
pip install -r requirements.txt
python run_database_init.py

Output konsol yang diharapkan (disamarkan):

student@instance-1:~/genai-databases-retrieval-app/retrieval_service$ pip install -r requirements.txt
python run_database_init.py
Collecting asyncpg==0.28.0 (from -r requirements.txt (line 1))
  Obtaining dependency information for asyncpg==0.28.0 from https://files.pythonhosted.org/packages/77/a4/88069f7935b14c58534442a57be3299179eb46aace2d3c8716be199ff6a6/asyncpg-0.28.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
  Downloading asyncpg-0.28.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.3 kB)
Collecting fastapi==0.101.1 (from -r requirements.txt (line 2))
...
database init done.
student@instance-1:~/genai-databases-retrieval-app/retrieval_service$

7. Men-deploy Layanan Pengambilan ke Cloud Run

Sekarang kita dapat men-deploy layanan pengambilan ke Cloud Run. Layanan ini bertanggung jawab untuk bekerja dengan database dan mengekstrak informasi yang diperlukan dari database berdasarkan permintaan dari aplikasi AI.

Buat Akun Layanan

Buat akun layanan untuk layanan pengambilan dan berikan hak istimewa yang diperlukan.

Buka tab Cloud Shell lain menggunakan tanda "+" di bagian atas.

4ca978f5142bb6ce.png

Di tab Cloud Shell baru, jalankan:

export PROJECT_ID=$(gcloud config get-value project)
gcloud iam service-accounts create retrieval-identity
gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:retrieval-identity@$PROJECT_ID.iam.gserviceaccount.com" \
  --role="roles/aiplatform.user"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:retrieval-identity@$PROJECT_ID.iam.gserviceaccount.com" \
  --role="roles/cloudsql.client"

Output konsol yang diharapkan:

student@cloudshell:~ (gleb-test-short-003)$ gcloud iam service-accounts create retrieval-identity
Created service account [retrieval-identity].

Tutup tab dengan menjalankan perintah "exit" di tab:

exit

Men-deploy Layanan Pengambilan

Lanjutkan di tab pertama tempat Anda terhubung ke VM melalui SSH dengan men-deploy layanan.

Dalam sesi SSH VM, jalankan:

cd ~/genai-databases-retrieval-app
gcloud alpha run deploy retrieval-service \
    --source=./retrieval_service/\
    --no-allow-unauthenticated \
    --service-account retrieval-identity \
    --region us-central1 \
    --network=default \
    --quiet

Output konsol yang diharapkan:

student@instance-1:~/genai-databases-retrieval-app$ gcloud alpha run deploy retrieval-service \
    --source=./retrieval_service/\
    --no-allow-unauthenticated \
    --service-account retrieval-identity \
    --region us-central1 \
    --network=default
This command is equivalent to running `gcloud builds submit --tag [IMAGE] ./retrieval_service/` and `gcloud run deploy retrieval-service --image [IMAGE]`

Building using Dockerfile and deploying container to Cloud Run service [retrieval-service] in project [gleb-test-short-003] region [us-central1]
X Building and deploying... Done.
  ✓ Uploading sources...
  ✓ Building Container... Logs are available at [https://console.cloud.google.com/cloud-build/builds/6ebe74bf-3039-4221-b2e9-7ca8fa8dad8e?project=1012713954588].
  ✓ Creating Revision...
  ✓ Routing traffic...
    Setting IAM Policy...
Completed with warnings:
  Setting IAM policy failed, try "gcloud beta run services remove-iam-policy-binding --region=us-central1 --member=allUsers --role=roles/run.invoker retrieval-service"
Service [retrieval-service] revision [retrieval-service-00002-4pl] has been deployed and is serving 100 percent of traffic.
Service URL: https://retrieval-service-onme64eorq-uc.a.run.app
student@instance-1:~/genai-databases-retrieval-app$

Verifikasi Layanan

Sekarang kita dapat memeriksa apakah layanan berjalan dengan benar dan VM memiliki akses ke endpoint. Kita menggunakan utilitas gcloud untuk mendapatkan endpoint layanan pengambilan. Atau, Anda dapat memeriksanya di Konsol Cloud dan menggantinya dengan perintah curl "$(gcloud run services list –filter('retrieval-service)" berdasarkan nilai dari sana.

Dalam sesi SSH VM, jalankan:

curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" $(gcloud  run services list --filter="(retrieval-service)" --format="value(URL)")

Output konsol yang diharapkan:

student@instance-1:~/genai-databases-retrieval-app$ curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" $(gcloud  run services list --filter="(retrieval-service)" --format="value(URL)")
{"message":"Hello World"}student@instance-1:~/genai-databases-retrieval-app$

Jika kita melihat pesan "Hello World", berarti layanan kita sudah aktif dan melayani permintaan.

8. Men-deploy Aplikasi Contoh

Sekarang, saat layanan pengambilan tersedia dan berjalan, kita dapat men-deploy aplikasi contoh yang akan menggunakan layanan tersebut. Aplikasi dapat di-deploy di VM atau layanan lain seperti Cloud Run, Kubernetes, atau bahkan secara lokal di laptop. Di sini kita akan menunjukkan cara men-deploy-nya di VM.

Siapkan lingkungan

Kami terus mengerjakan VM menggunakan sesi SSH yang sama. Untuk menjalankan aplikasi, kita perlu menambahkan beberapa modul Python. Perintah akan dijalankan dari direktori aplikasi di lingkungan virtual Python yang sama.

Dalam sesi SSH VM, jalankan:

cd ~/genai-databases-retrieval-app/llm_demo
pip install -r requirements.txt

Output yang diharapkan (disamarkan):

student@instance-1:~$ cd ~/genai-databases-retrieval-app/llm_demo
pip install -r requirements.txt
Collecting fastapi==0.104.0 (from -r requirements.txt (line 1))
  Obtaining dependency information for fastapi==0.104.0 from https://files.pythonhosted.org/packages/db/30/b8d323119c37e15b7fa639e65e0eb7d81eb675ba166ac83e695aad3bd321/fastapi-0.104.0-py3-none-any.whl.metadata
  Downloading fastapi-0.104.0-py3-none-any.whl.metadata (24 kB)
...

Menyiapkan Client ID

Untuk menggunakan fungsi pemesanan aplikasi, kami perlu menyiapkan Client ID OAuth 2.0 menggunakan Konsol Cloud. Ini dilakukan saat kita login ke aplikasi karena pemesanan menggunakan kredensial klien untuk mencatat data pemesanan di database.

Di Konsol Cloud, buka APIs and Services lalu klik "OAuth consent screen" dan pilih "Internal" .

2400e5dcdb93eab8.pngS

Kemudian kirim "Create" dan lanjutkan di layar berikutnya.

6c34d235156e571f.pngS

Anda harus mengisi kolom wajib diisi seperti "Nama aplikasi" dan "Email dukungan pengguna". Anda juga dapat menambahkan domain yang ingin ditampilkan di layar izin dan terakhir "Informasi kontak developer"

2b7cd51aff915072.pngS

Kemudian, tekan "Simpan dan Lanjutkan" di bagian bawah laman dan itu akan membawa Anda ke laman berikutnya.

d90c10c88fd347f9.png

Anda tidak perlu mengubah apa pun di sana kecuali Anda ingin menentukan cakupannya. Terakhir Anda mengonfirmasinya dengan menekan tombol "Simpan dan Lanjutkan" untuk mencoba lagi perintah. Langkah ini akan menyiapkan layar izin aplikasi.

Langkah berikutnya adalah membuat client ID. Di panel kiri, klik "Credentials" yang membawa Anda ke kredensial untuk OAuth2.

7ad97432390f224c.pngS

Di sini Anda klik "Create Credentials" di bagian atas dan pilih "ClientID OAuth". Kemudian layar lain akan terbuka.

325a926431c8f16d.pngS

Pilih "Aplikasi web" dari daftar dropdown untuk jenis aplikasi, lalu tempatkan URI aplikasi Anda (dan port - secara opsional) sebagai "Authorized JavaScript origin". Dan Anda harus menambahkan ke "Authorized pengalihan URI" host aplikasi Anda dengan "/login/google" di akhir untuk dapat menggunakan layar {i>popup<i} otorisasi. Pada gambar di atas, Anda dapat melihat bahwa saya telah menggunakan http://localhost sebagai URI aplikasi dasar.

Setelah mengirim tombol "Buat" Anda mendapatkan jendela {i>popup<i} yang berisi kredensial klien Anda.

e91adf03ec31cd15.png

Kami akan memerlukan Client ID (dan secara opsional rahasia Klien) nanti untuk digunakan dengan aplikasi kami

Jalankan Aplikasi Asisten

Sebelum memulai aplikasi, kita perlu menyiapkan beberapa variabel lingkungan. Fungsi dasar aplikasi, seperti kueri penerbangan dan fasilitas bandara hanya memerlukan BASE_URL yang mengarahkan aplikasi ke layanan pengambilan. Kita bisa mendapatkannya menggunakan perintah gcloud .

Dalam sesi SSH VM, jalankan:

export BASE_URL=$(gcloud  run services list --filter="(retrieval-service)" --format="value(URL)")

Output yang diharapkan (disamarkan):

student@instance-1:~/genai-databases-retrieval-app/llm_demo$ export BASE_URL=$(gcloud  run services list --filter="(retrieval-service)" --format="value(URL)")

Untuk menggunakan kemampuan lanjutan aplikasi seperti memesan dan mengubah penerbangan, kita harus login ke aplikasi menggunakan Akun Google kita dan untuk tujuan tersebut, kita perlu menyediakan variabel lingkungan CLIENT_ID menggunakan client ID OAuth dari bab Menyiapkan Client ID:

export CLIENT_ID=215....apps.googleusercontent.com

Output yang diharapkan (disamarkan):

student@instance-1:~/genai-databases-retrieval-app/llm_demo$ export CLIENT_ID=215....apps.googleusercontent.com

Dan sekarang kita dapat menjalankan aplikasi:

python run_app.py

Output yang diharapkan:

student@instance-1:~/genai-databases-retrieval-app/llm_demo$ python main.py
INFO:     Started server process [28565]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8081 (Press CTRL+C to quit)

Hubungkan ke Aplikasi

Anda memiliki beberapa cara untuk terhubung ke aplikasi yang berjalan di VM. Misalnya, Anda dapat membuka port 8081 di VM menggunakan aturan firewall di VPC atau membuat load balancer dengan IP publik. Di sini kita akan menggunakan tunnel SSH ke VM yang menerjemahkan port lokal 8080 ke port VM 8081.

Menghubungkan Dari Mesin Lokal

Ketika kita ingin terhubung dari komputer lokal, kita perlu menjalankan tunnel SSH. Hal ini dapat dilakukan menggunakan gcloud compute ssh:

gcloud compute ssh instance-1 --zone=us-central1-a -- -L 8081:localhost:8081

Output yang diharapkan:

student-macbookpro:~ student$ gcloud compute ssh instance-1 --zone=us-central1-a -- -L 8080:localhost:8081
Warning: Permanently added 'compute.7064281075337367021' (ED25519) to the list of known hosts.
Linux instance-1.us-central1-c.c.gleb-test-001.internal 6.1.0-21-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.90-1 (2024-05-03) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
student@instance-1:~$

Sekarang kita dapat membuka browser dan menggunakan http://localhost:8081 untuk terhubung ke aplikasi. Kita akan melihat layar aplikasi.

c667b9013afac3f9.png

Menghubungkan dari Cloud Shell

Atau, kita dapat menggunakan Cloud Shell untuk terhubung. Buka tab Cloud Shell lain menggunakan tanda "+" di bagian atas.

4ca978f5142bb6ce.png

Di tab Cloud Shell yang baru, mulai tunnel ke VM dengan menjalankan perintah gcloud:

gcloud compute ssh instance-1 --zone=us-central1-a -- -L 8080:localhost:8081

Tindakan ini akan menampilkan pesan error "Cannot assign requested address" - harap abaikan.

Berikut output yang diharapkan:

student@cloudshell:~ gcloud compute ssh instance-1 --zone=us-central1-a -- -L 8080:localhost:8081
bind [::1]:8081: Cannot assign requested address
inux instance-1.us-central1-a.c.gleb-codelive-01.internal 6.1.0-21-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.90-1 (2024-05-03) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat May 25 19:15:46 2024 from 35.243.235.73
student@instance-1:~$

Tindakan ini akan membuka port 8080 pada Cloud Shell yang dapat digunakan untuk "Web preview".

Klik "Pratinjau web" di sebelah kanan atas Cloud Shell dan dari menu drop-down, lalu pilih "Preview on port 8080".

444fbf54dcd4d160.png

Alat ini akan membuka tab baru di browser web Anda dengan antarmuka aplikasi. Anda akan dapat melihat "Cymbal Air Customer Service Assistant" kami. Di kolom URL halaman, kita melihat URI ke halaman pratinjau. Kami perlu menghapus bagian "/?authuser=0&redirectedPreviously=true" di akhir

389f0ae2945beed5.pngS

Dan gunakan bagian pertama URI seperti "https://8080-cs-35704030349-default.cs-us-east1-vpcf.cloudshell.dev/" harus dibiarkan di jendela browser dan diberikan sebagai "Authorized JavaScriptorigin" dan "URI pengalihan yang sah" untuk kredensial kami yang dibuat di bagian "Menyiapkan Client ID" bab yang menggantikan atau menambahkan ke nilai http://localhost:8080 yang awalnya diberikan. Nilai yang lebih tinggi akan terlihat seperti "https://8080-cs-35704030349-default.cs-us-east1-vpcf.cloudshell.dev" dan yang lebih rendah adalah "https://8080-cs-35704030349-default.cs-us-east1-vpcf.cloudshell.dev/login/google"

2c37eeda0a7e2f80.pngS

Login ke Aplikasi

Setelah semuanya disiapkan dan aplikasi Anda terbuka, kita dapat menggunakan tombol "Login" di kanan atas layar aplikasi untuk memberikan kredensial kita. Tindakan ini bersifat opsional dan hanya diperlukan jika Anda ingin mencoba fungsi pemesanan aplikasi.

a1f571371b957129.png

Tindakan ini akan membuka jendela pop-up tempat kita dapat memilih kredensial.

Setelah login, aplikasi sudah siap dan Anda dapat mulai memposting permintaan ke kolom di bagian bawah jendela.

Demo ini menampilkan asisten layanan pelanggan Cymbal Air. Cymbal Air adalah maskapai penumpang fiktif. Asisten ini adalah chatbot AI yang membantu wisatawan mengelola penerbangan dan mencari informasi tentang hub Cymbal Air di Bandar Udara Internasional San Francisco (SFO).

Tanpa login (tanpa CLIENT_ID), Google dapat membantu menjawab pertanyaan pengguna seperti:

Kapan penerbangan berikutnya ke Denver?

Apakah ada toko mewah di sekitar gerbang C28?

Di mana saya bisa mendapatkan kopi di dekat gerbang A6?

Di mana saya bisa membeli hadiah?

Silakan pesan penerbangan ke Denver yang berangkat pukul 10:35

Saat login ke aplikasi, Anda dapat mencoba kemampuan lain seperti memesan penerbangan atau memeriksa apakah kursi yang ditetapkan untuk Anda adalah kursi di jendela atau lorong.

6e7758f707c67c3e.pngS

Aplikasi ini menggunakan model dasar Google terbaru untuk membuat respons dan melengkapinya dengan informasi tentang penerbangan dan fasilitas dari database Cloud SQL operasional. Anda dapat membaca selengkapnya tentang aplikasi demo ini di halaman GitHub project.

9. Membersihkan lingkungan

Setelah semua tugas selesai, kita dapat membersihkan lingkungan kita.

Hapus Layanan Cloud Run

Di Cloud Shell, jalankan:

gcloud run services delete retrieval-service --region us-central1

Output konsol yang diharapkan:

student@cloudshell:~ (gleb-test-short-004)$ gcloud run services delete retrieval-service --region us-central1
Service [retrieval-service] will be deleted.

Do you want to continue (Y/n)?  Y

Deleting [retrieval-service]...done.                                                                                                                                                                                                                 
Deleted service [retrieval-service].

Hapus Akun Layanan untuk layanan Cloud Run

Di Cloud Shell, jalankan:

PROJECT_ID=$(gcloud config get-value project)
gcloud iam service-accounts delete retrieval-identity@$PROJECT_ID.iam.gserviceaccount.com --quiet

Output konsol yang diharapkan:

student@cloudshell:~ (gleb-test-short-004)$ PROJECT_ID=$(gcloud config get-value project)
Your active configuration is: [cloudshell-222]
student@cloudshell:~ (gleb-test-short-004)$ gcloud iam service-accounts delete retrieval-identity@$PROJECT_ID.iam.gserviceaccount.com --quiet
deleted service account [retrieval-identity@gleb-test-short-004.iam.gserviceaccount.com]
student@cloudshell:~ (gleb-test-short-004)$

Hapus instance Cloud SQL

Musnahkan instance Cloud SQL setelah Anda selesai mengerjakan lab

Di Cloud Shell, tentukan variabel project dan lingkungan jika koneksi Anda terputus dan semua setelan sebelumnya hilang:

export INSTANCE_NAME=my-cloudsql-instance
export PROJECT_ID=$(gcloud config get-value project)

Hapus instance:

gcloud sql instances delete $INSTANCE_NAME --project=$PROJECT_ID

Output konsol yang diharapkan:

student@cloudshell:~$ gcloud sql instances delete $INSTANCE_NAME --project=$PROJECT_ID
All of the instance data will be lost when the instance is deleted.

Do you want to continue (Y/n)?  y

Deleting Cloud SQL instance...done.                                                                                                                
Deleted [https://sandbox.googleapis.com/v1beta4/projects/test-project-001-402417/instances/my-cloudsql-instance].

Sekarang kita bisa menghancurkan VM

Hapus VM GCE

Di Cloud Shell, jalankan:

export GCEVM=instance-1
export ZONE=us-central1-a
gcloud compute instances delete $GCEVM \
    --zone=$ZONE \
    --quiet

Output konsol yang diharapkan:

student@cloudshell:~ (test-project-001-402417)$ export GCEVM=instance-1
export ZONE=us-central1-a
gcloud compute instances delete $GCEVM \
    --zone=$ZONE \
    --quiet
Deleted 

Hapus Akun Layanan untuk VM GCE dan layanan Pengambilan

Di Cloud Shell, jalankan:

PROJECT_ID=$(gcloud config get-value project)
gcloud iam service-accounts delete compute-aip@$PROJECT_ID.iam.gserviceaccount.com --quiet

Output konsol yang diharapkan:

student@cloudshell:~ (gleb-test-short-004)$ PROJECT_ID=$(gcloud config get-value project)
gcloud iam service-accounts delete compute-aip@$PROJECT_ID.iam.gserviceaccount.com --quiet
Your active configuration is: [cloudshell-222]
deleted service account [compute-aip@gleb-test-short-004.iam.gserviceaccount.com]
student@cloudshell:~ (gleb-test-short-004)$ 

10. Selamat

Selamat, Anda telah menyelesaikan codelab.

Yang telah kita bahas

  • Cara membuat instance Cloud SQL
  • Cara terhubung ke instance Cloud SQL
  • Cara mengonfigurasi dan men-deploy Layanan Pengambilan Database GenAI
  • Cara men-deploy aplikasi contoh menggunakan layanan yang di-deploy

11. Survei

Bagaimana Anda akan menggunakan tutorial ini?

Hanya membacanya Membaca dan menyelesaikan latihannya