1. Ringkasan
Vertex AI API dapat diakses melalui internet, tetapi di perusahaan Anda, Anda mungkin ingin mengakses Vertex AI API secara pribadi tanpa melalui internet. Di lab ini, Anda akan terlebih dahulu mengakses Vertex Gemini chat API melalui python sdk yang berjalan di instance VM melalui internet publik.
Kemudian, Anda akan membuat endpoint Private Service Connect ke Google API, dan mengubah alur traffic untuk menggunakan endpoint pribadi guna terhubung ke API chat Gemini. Konfigurasi akan berupa kombinasi Terraform, gcloud, dan konsol.
Dalam lab ini, Anda akan membuat pola berikut.
Gambar 1.
2. Tujuan
Di lab ini, Anda akan mempelajari cara melakukan tugas berikut:
- Menyiapkan instance VM untuk menggunakan python sdk
- Menghubungkan ke Gemini Chat melalui skrip python
- Mengonfigurasi endpoint PSC untuk terhubung ke Googleapis
- Memverifikasi jalur konektivitas ke Googleais
- Mengonfigurasi entri DNS manual
Penyiapan lingkungan mandiri
- 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.
- 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.
- 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:
Hanya perlu waktu beberapa saat untuk penyediaan dan terhubung ke lingkungan. Jika sudah selesai, Anda akan melihat tampilan seperti ini:
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. Tugas 1. Menyiapkan Lingkungan dengan terraform
Kita akan membuat VPC kustom dengan aturan Firewall dan subnet. Buka konsol cloud dan pilih project yang akan Anda gunakan.
- Buka Cloud Shell yang terletak di bagian atas konsol di sebelah kanan, pastikan Anda melihat project ID yang benar di Cloud Shell, konfirmasi perintah apa pun untuk mengizinkan akses.
- Buat folder bernama terraform-build dan pindahkan ke folder
mkdir terraform-build && cd terraform-build
- Buat file main.tf dan variable.tf.
touch main.tf variable.tf
- Beralihlah ke tampilan Cloud Shell editor. Pilih editor, pastikan Anda mengizinkan perintah yang diperlukan agar antarmuka dapat dimuat.
- Setelah dimuat, buka File > Open Folder, lalu buka /home/your-user-name/terraform-build dan pilih Ok untuk membuka folder di editor.
- Pilih file variable.tf dan tambahkan kode berikut. Ganti teks
your-project-id-here
dengan project ID Anda yang sebenarnya dalam tanda petik
variable "project_id" { type = string default = "your-project-id-here" } variable "network_id" { type = string default = "python-net" }
- Selanjutnya, buka file main.tf. Kita akan menambahkan beberapa kode terraform untuk melakukan berbagai tindakan seperti yang dijelaskan di bawah.
Mengaktifkan API |
|
Membuat VPC bernama python-net |
|
Tambahkan subnet |
|
Menambahkan dua aturan Firewall |
|
- Salin dan tempel kode berikut ke dalam file .tf utama.
resource "google_project_service" "default" { for_each = toset([ "dns.googleapis.com", "aiplatform.googleapis.com", "servicedirectory.googleapis.com" ]) service = each.value disable_on_destroy = false } resource "google_compute_network" "default" { project = var.project_id name = var.network_id auto_create_subnetworks = false mtu = 1460 routing_mode = "GLOBAL" } resource "google_compute_subnetwork" "default" { name = "vm1-subnet" ip_cidr_range = "10.0.11.0/24" region = "us-east1" stack_type = "IPV4_ONLY" network = google_compute_network.default.id } resource "google_compute_firewall" "allow_icmp" { name = "allow-icmp-${google_compute_network.default.name}" network = google_compute_network.default.id project = var.project_id allow { protocol = "icmp" } source_ranges = ["0.0.0.0/0"] target_tags = ["allow-icmp"] } resource "google_compute_firewall" "allow_ssh" { name = "allow-ssh-${google_compute_network.default.name}" network = google_compute_network.default.id project = var.project_id allow { protocol = "tcp" ports = ["22"] } source_ranges = ["0.0.0.0/0"] target_tags = ["allow-ssh"] }
- Beralih kembali ke terminal Cloud Shell, pastikan Anda berada di direktori terraform-build
cd terraform-build
dan jalankan perintah berikut
terraform init
Menginisialisasi direktori kerja. Langkah ini mendownload penyedia yang diperlukan untuk konfigurasi yang diberikan.
terraform plan
Membuat rencana eksekusi, yang menunjukkan tindakan yang akan dilakukan Terraform untuk men-deploy infrastruktur Anda.
- Sekarang, untuk membuat resource, jalankan perintah
terraform apply
dan ketikyes
untuk dijalankan.
4. Tugas 2. Membuat gateway NAT dan VM dengan Terraform
Kita perlu memberikan akses eksternal keluar ke internet, jadi mari kita buat gateway Cloud NAT dan melampirkannya.
- Buka Cloud Shell, buka folder terraform-build, lalu buat file berikut (total tiga file). Kita akan mengeditnya nanti.
touch nat-vm.tf psc.tf dns.tf
- Beralihlah ke tampilan editor Cloud Shell, lalu pilih file nat-vm.tf dan tambahkan kode Terraform berikut. Tindakan ini akan membuat gateway NAT dan dua VM.
Terraform nat-vm.tf
resource "google_compute_router" "default" {
name = "py-outbound-nat"
region = "us-east1"
network = google_compute_network.default.id
bgp {
asn = 64514
}
}
resource "google_compute_router_nat" "default" {
name = "py-outbound-nat-gw"
router = google_compute_router.default.name
region = google_compute_router.default.region
nat_ip_allocate_option = "AUTO_ONLY"
source_subnetwork_ip_ranges_to_nat = "ALL_SUBNETWORKS_ALL_IP_RANGES"
log_config {
enable = true
filter = "ERRORS_ONLY"
}
}
resource "google_compute_instance" "vm1" {
name = "py-vm1"
zone = "us-east1-b"
machine_type = "n2-standard-2"
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
}
}
network_interface {
subnetwork = google_compute_subnetwork.default.id
stack_type = "IPV4_ONLY"
}
tags = ["allow-ssh", "allow-icmp"]
metadata_startup_script = <<-EOF
sudo apt-get update
sudo apt-get install python3 python3-dev python3-venv -y
sudo apt-get install tcpdump dnsutils -y
sudo -i
sudo mkdir -p ~/py-gem-env
cd ~/py-gem-env
python3 -m venv env
source env/bin/activate
pip install ipython google-cloud-aiplatform
EOF
}
resource "google_compute_instance" "vm2" {
name = "py-vm2"
zone = "us-east1-b"
machine_type = "n2-standard-2"
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
}
}
network_interface {
subnetwork = google_compute_subnetwork.default.id
stack_type = "IPV4_ONLY"
}
tags = ["allow-ssh", "allow-icmp"]
metadata_startup_script = <<-EOF
sudo apt-get update
sudo apt-get install python3 python3-dev python3-venv -y
sudo apt-get install tcpdump dnsutils -y
sudo -i
sudo mkdir -p ~/py-gem-env
cd ~/py-gem-env
python3 -m venv env
source env/bin/activate
pip install ipython google-cloud-aiplatform
EOF
}
- Beralihlah ke terminal Cloud Shell, pastikan Anda berada di folder terraform-build dan jalankan
terraform plan
. Tindakan ini akan menunjukkan bahwa 4 item akan ditambahkan, lalu jalankanterraform apply
dan ketikyes
untuk membuat gateway NAT dan dua VM.
5. Tugas 3. Mengonfigurasi VM dan menguji
- Buka instance VM. Pilih VM yang dimulai dengan py-vm1. Pilih SSH.
- Setelah Anda menerapkan SSH ke py-vm1, aktifkan root dengan mengetik
sudo -i
- Aktifkan lingkungan venv Anda:
cd py-gem-env
source env/bin/activate
- Sekarang, mari kita autentikasi untuk melakukan beberapa pengujian nanti. Jalankan perintah berikut di VM, tekan y saat diminta.
gcloud auth application-default login
- Selanjutnya, salin URL yang muncul di awal dengan https://, buka tab baru di jendela browser lab Anda, lalu tempel URL. Setujui perintah.
- Saat Anda melihat salinan pilih berikut, beralihlah kembali ke sesi vm py-vm1 dan untuk Enter authorization code:, tempelkan kode yang Anda salin dan tekan enter untuk mengautentikasi.
- Sekarang, mari kita lakukan pengujian singkat untuk melihat apakah kita dapat terhubung ke Vertex Gemini API, yang menggunakan us-central1-aiplatform.googleapis.com sehingga kita akan melakukan
dig
ke alamat tersebut untuk melihat bagaimana traffic dirutekan.
dig us-central1-aiplatform.googleapis.com
- Anda akan melihat sesuatu yang serupa (alamatnya akan berbeda). Perhatikan bahwa jalurnya adalah melalui alamat IP publik karena API adalah API publik. JANGAN SALIN
; <<>> DiG 9.16.48-Debian <<>> us-central1-aiplatform.googleapis.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9117
;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;us-central1-aiplatform.googleapis.com. IN A
;; ANSWER SECTION:
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.210.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.211.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.212.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.213.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.215.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.216.95
us-central1-aiplatform.googleapis.com. 300 IN A 108.177.12.95
us-central1-aiplatform.googleapis.com. 300 IN A 108.177.13.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.26.95
- Sekarang mari kita gunakan python. Ketik
ipython
untuk mengaktifkan antarmuka ipython.
ipython
- Sekarang, salin dan tempel kode berikut. Perintah ini akan meminta Gemini "Apa saja warna logo Google" dan "Apa warna langit" . Ganti
enter-your-project-id-here
dengan project ID Anda dalam tanda petik
import vertexai
from vertexai.generative_models import GenerativeModel, ChatSession
project_id = "enter-your-project-id-here"
location = "us-central1"
vertexai.init(project=project_id, location=location)
model = GenerativeModel("gemini-1.5-pro")
chat_session = model.start_chat()
def get_chat_response(chat: ChatSession, prompt: str) -> str:
text_response = []
responses = chat.send_message(prompt, stream=True)
for chunk in responses:
text_response.append(chunk.text)
return "".join(text_response)
prompt = "Hello."
print(get_chat_response(chat_session, prompt))
prompt = "What are all the colors of the Google logo?"
print(get_chat_response(chat_session, prompt))
prompt = "What color is the sky?"
print(get_chat_response(chat_session, prompt))
- Tekan enter untuk menjalankan dan melihat hasilnya.
- Permintaan ini mengakses Vertex melalui API publik.
- Tutup sesi SSH, mari kita lanjutkan.
Sekarang konfigurasikan py-vm2 dengan konfigurasi yang sama
- Buka instance VM. Pilih VM yang dimulai dengan py-vm2. Pilih SSH.
- Setelah Anda menerapkan SSH ke py-vm2-****, aktifkan root dengan mengetik **
sudo -i
** - Aktifkan lingkungan venv Anda:
cd py-gem-env
source env/bin/activate
- Sekarang, mari kita autentikasi untuk melakukan beberapa pengujian nanti. Jalankan perintah berikut di VM
gcloud auth application-default login
- Selanjutnya, salin URL yang muncul di awal dengan https://, buka tab baru di jendela browser lab Anda, lalu tempel URL. Setujui perintah.
- Saat Anda melihat salinan pilih berikut, beralihlah kembali ke sesi vm py-vm2 dan untuk Enter authorization code:, tempelkan kode yang Anda salin dan tekan enter untuk mengautentikasi.
- Sekarang, mari kita lakukan pengujian cepat untuk melihat apakah kita dapat terhubung ke Vertex Gemini API. Perintah ini akan menggunakan 4 ping ke us-central1-aiplatform.googleapis.com sehingga kita akan mendapatkan respons dari alamat publik API.
ping -c 4 us-central1-aiplatform.googleapis.com
- Kita akan kembali untuk menguji VM ini nanti. Tutup sesi SSH dan mari kita lanjutkan.
6. Tugas 4. Membuat endpoint PSC ke googleapis dengan Terraform
Untuk mengaktifkan konektivitas pribadi ke endpoint Vertex API, kita akan membuat endpoint Private Service Connect untuk Google API. Tindakan ini akan memungkinkan kita menggunakan alamat IP pribadi yang ditetapkan untuk merutekan traffic ke Google API yang diperlukan, dalam hal ini Vertex.
- Buka Cloud Shell dalam tampilan editor jika belum terbuka. Kita akan membuat hal berikut:
- Buat IP untuk endpoint PSC 192.168.255.250 (
resource "google_compute_global_address" "default")
- Membuat endpoint PSC ke Google API (
resource "google_compute_global_forwarding_rule" "default")
Buka file psc.tf di folder terraform-build. Tambahkan kode berikut ke file.
Terraform psc.tf
resource "google_compute_global_address" "default" {
name = "vertex-ip"
purpose = "PRIVATE_SERVICE_CONNECT"
network = google_compute_network.default.id
address_type = "INTERNAL"
address = "192.168.255.250"
}
resource "google_compute_global_forwarding_rule" "default" {
name = "pscvertexgemini"
target = "all-apis"
network = google_compute_network.default.id
ip_address = google_compute_global_address.default.id
load_balancing_scheme = ""
}
- Beralihlah ke terminal Cloud Shell, pastikan Anda berada di folder
terraform-build
. Kemudian, jalankanterraform init
, lalu jalankanterraform plan
. Tindakan ini akan menunjukkan bahwa 2 item akan ditambahkan,
lalu jalankanterraform apply
dan ketikyes
untuk membuat endpoint Google API IP dan PSC. - Memverifikasi keberadaan endpoint
gcloud compute addresses list --filter="name=( 'vertex-ip' ...)"
gcloud compute forwarding-rules describe pscvertexgemini --global
7. Tugas 5. Memverifikasi konektivitas endpoint melalui alamat IP
Mari kita terhubung menggunakan endpoint pribadi untuk terhubung ke Gemini.
- Buka Instance VM py-vm1. Pilih SSH dan SSH ke VM
- Dapatkan akses root dengan mengetik
sudo -i
- Kita hanya akan menggunakan instance individual ini untuk menguji endpoint PSC sehingga kita akan mengubah file host dengan entri berikut
echo 192.168.255.250 us-central1-aiplatform.googleapis.com >> /etc/hosts
cat /etc/hosts
- Periksa jalur konektivitas ke us-central1-aiplatform.googleapis.com menggunakan perintah
ping
. Tindakan ini akan melakukan ping ke alamat IP yang Anda masukkan di file host. Ini adalah endpoint PSC dan ping Anda tidak akan berhasil.
ping -c 2 us-central1-aiplatform.googleapis.com
- Kembali ke konsol dan buka instance lain dari Instance VM py-vm1. Pilih SSH dan SSH ke VM
- Dapatkan akses root dengan mengetik
sudo -i
- Jalankan perintah berikut untuk melihat konektivitas dalam dump TCP
sudo tcpdump -i any port 53 -n or host us-central1-aiplatform.googleapis.com
- Sekarang, beralihlah kembali ke instance SSH pertama Instance VM py-vm1
- Aktifkan env menggunakan
cd py-gem-env
source env/bin/activate
- Sekarang, mari kita uji python. Ketik
ipython
untuk mengaktifkan antarmuka ipython. Kali ini traffic akan mengalir melalui endpoint PSC.
ipython
- Sekarang, salin dan tempel kode berikut. Tindakan ini akan meminta Gemini "Apa saja warna logo Google" dan "Jelaskan Air Terjun Niagara". Ganti
enter-your-project-id-here
dengan project ID Anda dalam tanda petik
import vertexai
from vertexai.generative_models import GenerativeModel, ChatSession
project_id = "enter-your-project-id-here"
location = "us-central1"
vertexai.init(project=project_id, location=location)
model = GenerativeModel("gemini-1.5-pro")
chat_session = model.start_chat() # Corrected line
def get_chat_response(chat: ChatSession, prompt: str) -> str:
text_response = []
responses = chat.send_message(prompt, stream=True)
for chunk in responses:
text_response.append(chunk.text)
return "".join(text_response)
prompt = "Hello."
print(get_chat_response(chat_session, prompt))
prompt = "What are all the colors of the Google logo?"
print(get_chat_response(chat_session, prompt))
prompt = "Describe Niagara Falls"
print(get_chat_response(chat_session, prompt))
- Tekan enter untuk menjalankan dan melihat hasilnya.
- Beralih kembali ke instance kedua Instance VM py-vm1. Anda akan melihat hasil TCPDUMP. Anda akan melihat In dan Out dengan alamat IP VM dan juga alamat IP endpoint PSC untuk terhubung ke us-central1-aiplatform.googleapis.com
22:21:55.032433 ens4 Out IP 10.0.11.18.57114 > 192.168.255.250.443: Flags [.], ack 8606, win 501, options [nop,nop,TS val 1797790182 ecr 2593039209], length 0
22:21:55.468285 ens4 In IP 192.168.255.250.443 > 10.0.11.18.57114: Flags [P.], seq 8606:8991, ack 5785, win 296, options [nop,nop,TS val 2593039645 ecr 1797790182], length 385
22:21:55.468320 ens4 Out IP 10.0.11.18.57114 > 192.168.255.250.443: Flags [.], ack 8991, win 501, options [nop,nop,TS val 1797790618 ecr 2593039645], length 0
- Menutup semua sesi SSH ke Instance VM py-vm1
8. Tugas 6. Membuat entri DNS Manual ke googleapis dengan Terraform (Opsional)
Anda dapat membuat entri DNS manual untuk mengarah ke endpoint PSC menggunakan DNS pribadi. Tindakan ini akan memengaruhi semua jaringan yang Anda tetapkan ke jaringan tersebut.
- Buka Layanan jaringan, lalu pilih Cloud DNS.
- Di zona, Anda akan melihat zona yang dibuat secara otomatis untuk Private Service Connect untuk Google API, dengan direktori layanan jenis zona. Ini dapat digunakan untuk terhubung ke endpoint PSC dengan format **SERVICE-ENDPOINT.p.googleapis.com Contoh:
aiplatform-pscvertexgemini.p.googleapis.com
- Dalam hal ini, kita ingin membuat entri DNS pribadi secara manual. Konfigurasinya akan seperti berikut
- Buat zona DNS pribadi bernama "googleapis-private" untuk "googleapis.com" dan batasi ke jaringan "python-net".
- Tambahkan data A untuk memetakan "googleapis.com" ke alamat IP "192.168.255.250".
- Tambahkan data CNAME untuk mengalihkan semua subdomain "googleapis.com" (misalnya, www.googleapis.com) ke "googleapis.com".
- Buka Cloud Shell dalam tampilan editor jika belum terbuka. Buka file dns.tf di folder terraform-build. Tambahkan kode berikut ke file.
Terraform dns.tf
resource "google_dns_managed_zone" "private_zone" {
name = "googleapis-private"
dns_name = "googleapis.com."
visibility = "private"
project = var.project_id
private_visibility_config {
networks {
network_url = google_compute_network.default.id
}
}
}
resource "google_dns_record_set" "a_record" {
name = "googleapis.com."
type = "A"
ttl = 300
managed_zone = google_dns_managed_zone.private_zone.name
project = var.project_id
rrdatas = ["192.168.255.250"]
}
resource "google_dns_record_set" "cname_record" {
name = "*.googleapis.com."
type = "CNAME"
ttl = 300
managed_zone = google_dns_managed_zone.private_zone.name
project = var.project_id
rrdatas = ["googleapis.com."]
}
- Beralihlah ke terminal Cloud Shell, pastikan Anda berada di folder
terraform-build
. Kemudian, jalankanterraform plan
untuk menampilkan item yang akan ditambahkan,
Lalu, jalankanterraform apply
dan ketikyes
untuk membuat entri DNS pribadi. - Anda akan melihat penyiapan dengan data A dan CNAME seperti ini, lihat
- Selanjutnya, kita akan memverifikasi konektivitas dengan perubahan ini di py-vm2
9. Tugas 7. Memverifikasi konektivitas endpoint melalui alamat IP (Opsional)
Mari kita terhubung menggunakan endpoint pribadi untuk terhubung ke Gemini.
- Buka Instance VM py-vm2. Pilih SSH dan SSH ke VM
- Dapatkan akses root dengan mengetik
sudo -i
- Periksa jalur konektivitas ke us-central1-aiplatform.googleapis.com menggunakan perintah
ping
. Tindakan ini akan melakukan ping ke alamat IP di DNS pribadi, data A untuk googleapis. IP ini adalah endpoint PSC dan ping Anda tidak akan berhasil.
ping -c 2 us-central1-aiplatform.googleapis.com
- Periksa jalur konektivitas dengan
ping
menggunakan entri DNS yang dibuat secara otomatis untuk PSC Google API denganaiplatform-pscvertexgemini.p.googleapis.com
. Ini mengarah ke alamat IP endpoint PSC dan ping Anda tidak akan berhasil.
ping -c 2 aiplatform-pscvertexgemini.p.googleapis.com
- Periksa jalur konektivitas ke us-central1-aiplatform.googleapis.com menggunakan perintah
dig
. Ini harus berupa alamat IP endpoint PSC.
dig us-central1-aiplatform.googleapis.com
- Kembali ke konsol dan buka instance lain dari Instance VM py-vm2. Pilih SSH dan SSH ke VM
- Dapatkan akses root dengan mengetik
sudo -i
- Jalankan perintah berikut untuk melihat konektivitas dalam dump TCP
sudo tcpdump -i any port 53 -n or host us-central1-aiplatform.googleapis.com
- Sekarang, beralihlah kembali ke instance SSH pertama dari Instance VM py-vm2
- Aktifkan env menggunakan
cd py-gem-env
source env/bin/activate
- Sekarang, mari kita uji python. Ketik
ipython
untuk mengaktifkan antarmuka ipython.
ipython
- Sekarang, salin dan tempel kode berikut. Perintah ini akan meminta Gemini "Apa saja warna logo Google" dan "Apa dua fitur Gemini pro". Ganti
enter-your-project-id-here
dengan project ID Anda dalam tanda petik
import vertexai
from vertexai.generative_models import GenerativeModel, ChatSession
project_id = "enter-your-project-id-here"
location = "us-central1"
vertexai.init(project=project_id, location=location)
model = GenerativeModel("gemini-1.5-pro")
chat_session = model.start_chat() # Corrected line
def get_chat_response(chat: ChatSession, prompt: str) -> str:
text_response = []
responses = chat.send_message(prompt, stream=True)
for chunk in responses:
text_response.append(chunk.text)
return "".join(text_response)
prompt = "Hello."
print(get_chat_response(chat_session, prompt))
prompt = "What are all the colors of the Google logo?"
print(get_chat_response(chat_session, prompt))
prompt = "What are two features of Gemini pro"
print(get_chat_response(chat_session, prompt))
- Tekan enter untuk menjalankan dan melihat hasilnya.
- Beralih kembali ke instance kedua Instance VM py-vm2. Anda akan melihat hasil TCPDUMP. Anda akan melihat masuk dan keluar serta alamat IP VM menggunakan alamat IP endpoint PSC untuk terhubung ke us-central1-aiplatform.googleapis.com
Menutup semua sesi SSH ke Instance VM py-vm2
10. Pembersihan
- Buka Cloud Shell, pastikan Anda berada di direktori terraform-build
cd terraform-build
dan jalankan perintah berikutterraform destroy
dan ketikyes
, semua resource yang Anda buat di project dengan Terraform akan dihapus.
11. Selamat
Selamat, Anda telah berhasil terhubung ke chat Vertex Gemini menggunakan alamat API publik dan secara pribadi menggunakan Endpoint Private Service Connect untuk Google API. Fungsi ini dapat memperluas konektivitas API pribadi ke lingkungan cloud lokal/cloud lainnya yang terhubung melalui (Interconnect, Cross-Cloud Interconnect, dan VPC).
Langkah berikutnya/Pelajari lebih lanjut
Anda dapat membaca selengkapnya tentang jaringan Vertex AI
Codelab: Mengakses Anthropic Claude di Vertex AI dengan python sdk melalui endpoint Private Service Connect
Ikuti lab berikutnya
Lanjutkan quest Anda dengan Google Cloud, dan lihat lab Google Cloud Skills Boost lainnya: