透過 Private Service Connect 端點存取 Gemini 對話和 Python SDK

1. 總覽

Vertex AI API 可透過網際網路存取,但在企業中,您可能會想要私下存取 Vertex AI API,而不需要透過網際網路。在本研究室中,您將透過公開網際網路在 VM 執行個體上執行的 Python SDK,使用 Vertex Gemini Chat API。

接著,你必須建立連至 Google API 的 Private Service Connect 端點,並變更流量,使用私人端點連結至 Gemini Chat API。設定是 Terraform、gcloud 和控制台的組合。

在這個研究室中,您會建立以下模式。

圖 1.

8b283cc5684283c2.png

2. 目標

在本實驗室中,您將瞭解如何執行下列工作:

  • 設定 VM 執行個體以使用 Python SDK
  • 透過 Python 指令碼連結至 Gemini 對話
  • 設定 PSC 端點以連線至 Googleapis
  • 驗證連線至 Googleais 的路徑
  • 設定手動 DNS 項目

自修環境設定

  1. 登入 Google Cloud 控制台,然後建立新專案或重複使用現有專案。如果您還沒有 Gmail 或 Google Workspace 帳戶,請先建立帳戶

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • 「Project name」是這個專案參與者的顯示名稱。這是 Google API 不會使用的字元字串。您可以隨時更新付款方式。
  • 所有 Google Cloud 專案的專案 ID 均不得重複,而且設定後即無法變更。Cloud 控制台會自動產生專屬字串,您通常不需要理會這個字串。在大多數程式碼研究室中,您都需要參照專案 ID (通常會以 PROJECT_ID 表示)。如果您不喜歡系統產生的 ID,可以產生另一個隨機 ID。或者,您也可以自行嘗試,看看是否可用。在這個步驟完成後就無法變更,且會在整個專案期間維持不變。
  • 資訊中的第三個值是專案編號,部分 API 會使用這個編號。如要進一步瞭解這三個值,請參閱說明文件
  1. 接下來,您需要在 Cloud 控制台中啟用帳單功能,才能使用 Cloud 資源/API。執行這個程式碼研究室不會產生太多費用,甚至可能完全不會產生費用。如要關閉資源,避免在本教學課程結束後繼續產生費用,您可以刪除已建立的資源或專案。新使用者符合 $300 美元免費試用計畫的資格。

啟動 Cloud Shell

雖然 Google Cloud 可以從筆記型電腦遠端操作,但在本程式碼研究室中,您將使用 Google Cloud Shell,這是一種在 Cloud 中執行的指令列環境。

Google Cloud 控制台中,按一下右上方工具列的 Cloud Shell 圖示:

55efc1aaa7a4d3ad.png

佈建並連線至環境的作業需要一些時間才能完成。完成後,您應該會看到如下的畫面:

7ffe5cbb04455448.png

這部虛擬機器都裝載了您需要的所有開發工具。提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作,因此能大幅提升網路效能和驗證效率。本程式碼研究室的所有工作都可以在瀏覽器中完成。您不需要安裝任何東西。

3. 工作 1:使用 Terraform 設定環境

我們將建立含有防火牆規則和子網路的自訂 VPC。開啟 Cloud 控制台,然後選取您要使用的專案。

  1. 開啟控制台右上方的 Cloud Shell,確認 Cloud Shell 中顯示正確的專案 ID,確認任何允許存取的提示。4261e776f64ea978.png
  2. 建立名為 terraform-build 的資料夾並移至資料夾
mkdir terraform-build  && cd terraform-build
  1. 建立 main.tfvariable.tf 檔案。
touch main.tf variable.tf 
  1. 切換至 Cloud Shell 編輯器檢視畫面。選取「editor」並允許所有必要的提示,讓系統載入介面。
  2. 載入後,前往「File」>「Open Folder」,然後前往 /home/your-user-name/terraform-build,然後選取「OK」,在編輯器中開啟資料夾。78f5eb9f2f82f1b0.png
  3. 選取 variable.tf 檔案,並新增下列內容。將 your-project-id-here 文字替換為實際的專案 ID (置於引號中)
variable "project_id" {
  type = string
  default = "your-project-id-here"
}

variable "network_id" {
  type = string
  default = "python-net"
}
  1. 接著,開啟 main.tf 檔案。我們會新增一些 Terraform 程式碼,以執行如下所述的各項動作。

啟用 API

resource "google_project_service" "default"

建立名為 python-net 的 VPC

resource "google_compute_network" "default"

新增子網路

resource "google_compute_subnetwork" "default"

新增兩個防火牆規則

resource "google_compute_firewall" "allow_icmp"resource "google_compute_firewall" "allow_ssh"

  1. 複製並貼到 main .tf 檔案中。
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"]
}
  1. 切換回 Cloud Shell 終端機,確認目前位於 terraform-build 目錄 cd terraform-build,然後執行下列指令

terraform init

初始化工作目錄。這個步驟會下載指定設定所需的供應商。

terraform plan

產生執行計畫,說明 Terraform 會採取哪些動作來部署基礎架構。

  1. 接著,請執行 terraform apply 指令來建立資源,然後輸入 yes 即可執行。

4. 工作 2:使用 Terraform 建立 NAT 閘道和 VM

我們必須將傳出外部存取權授予網際網路,這樣才能建立並連接 Cloud NAT 閘道。

  1. 開啟 Cloud Shell,前往 terraform-build 資料夾,並建立下列檔案 (總共三個檔案)。我們稍後會編輯這些項目。
touch nat-vm.tf psc.tf dns.tf
  1. 切換至 Cloud Shell 編輯器檢視畫面,選取 nat-vm.tf 檔案,然後新增下列 Terraform 程式碼。這會建立 NAT 閘道和兩個 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
}
  1. 切換至 Cloud Shell 終端機,確認位於 terraform-build 資料夾,並執行 terraform plan,顯示將新增 4 個項目,接著執行 terraform apply 並輸入 yes 來建立 NAT 閘道和兩個 VM。

5. 工作 3:設定及測試 VM

  1. 前往 VM 執行個體。選取開頭為 py-vm1 的 VM。選擇「SSH」
  2. 透過 SSH 連至 py-vm1 後,輸入 sudo -i 以啟用 Root 權限。
  3. 啟用 venv 環境:
cd py-gem-env
source env/bin/activate
  1. 現在進行驗證,稍後再做一些測試。在 VM 中執行下列指令,並在系統提示時按下 y
gcloud auth application-default login
  1. 接著,複製開頭為 https:// 的網址,在實驗室瀏覽器視窗中開啟新的分頁,然後貼上網址。接受提示。
  2. 看到下列選取副本時,請切換回 vm py-vm1 工作階段,在「輸入授權碼:」貼上您複製的代碼,然後按下 Enter 鍵進行驗證。

c29615cdf9324209.png

  1. 現在來快速測試是否能連結至 Vertex Gemini API,這會使用 us-central1-aiplatform.googleapis.com 來傳送 dig 到該位址,看看路況路徑如何。
dig us-central1-aiplatform.googleapis.com
  1. 您應該會看到相似的資訊 (地址不同)。請注意,這個 API 是公用 API,因此路徑是透過公開 IP 位址。不要複製
; <<>> 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
  1. 接下來,我們來使用 Python。輸入 ipython 以啟動 ipython 介面。
ipython

4685b31f13df54e1.png

  1. 複製並貼上下列內容。這會要求 Gemini 回答「Google 標誌的所有顏色」和「天空的顏色」。將 enter-your-project-id-here 替換為引號內的專案 ID
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))
  1. 按下 Enter 鍵即可執行並查看結果。
  2. 這項要求是透過公用 API 存取 Vertex。
  3. 關閉「SSH」SSH工作階段繼續操作。

現在使用相同的設定來設定 py-vm2

  1. 前往 VM 執行個體。選取開頭為 py-vm2 的 VM。選擇 SSH。
  2. 透過 SSH 連至 py-vm2-**** 後,請輸入 **sudo -i** 啟用 root。
  3. 啟用 venv 環境:
cd py-gem-env
source env/bin/activate
  1. 現在進行驗證,稍後再做一些測試。在 VM 中執行下列指令
gcloud auth application-default login
  1. 接著,複製以 https:// 開頭的網址,在研究室瀏覽器視窗中開啟新分頁,然後貼上網址。接受提示。
  2. 當您看到下列選取複製畫面時,請切換回 vm py-vm2 工作階段,然後在「輸入授權碼」中貼上複製的程式碼,然後按下 Enter 鍵進行驗證。

c29615cdf9324209.png

  1. 接下來,我們來做個快速測試,看看是否能連線至 Vertex Gemini API。這個指令會使用 4 個 ping 要求,針對 us-central1-aiplatform.googleapis.com 進行測試,以便從 API 的公開位址取得回應。
ping -c 4 us-central1-aiplatform.googleapis.com
  1. 我們稍後會再測試這個 VM。關閉 SSH 工作階段,我們繼續吧。

6. 工作 4:使用 Terraform 建立 googleapis 的 PSC 端點

為了啟用連至 Vertex API 端點的私人連線,我們會為 Google API 建立 Private Service Connect 端點。這樣一來,我們就能使用指派的私人 IP 位址,將流量轉送至所需的 Google API,在本例中為 Vertex。

  1. 在編輯器檢視畫面中開啟 Cloud Shell (如果尚未開啟)。我們將建立以下項目:
  • 為 PSC 端點 192.168.255.250 (resource "google_compute_global_address" "default")) 建立 IP
  • 建立 Google API 的 PSC 端點 (resource "google_compute_global_forwarding_rule" "default"))

terraform-build 資料夾中開啟 psc.tf 檔案。將下列程式碼加入檔案。

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 = ""
  }
  1. 切換至 Cloud Shell 終端機,確認您位於 terraform-build 資料夾中。接著執行 terraform init,然後執行 terraform plan,這會顯示系統將新增 2 個項目,
    然後執行 terraform apply,並輸入 yes 建立 IP 和 PSC Google API 端點。
  2. 確認端點是否存在
gcloud compute addresses list --filter="name=( 'vertex-ip' ...)"
gcloud compute forwarding-rules describe pscvertexgemini --global

7. 工作 5:透過 IP 位址驗證端點連線

讓我們使用私人端點連線至 Gemini。

  1. 前往 VM 執行個體 py-vm1。選取 SSH 並透過 SSH 連線至 VM
  2. 輸入 sudo -i 即可取得根目錄存取權
  3. 我們只會使用這個個別執行個體來測試 PSC 端點,因此我們會使用下列項目修改主機檔案
echo 192.168.255.250 us-central1-aiplatform.googleapis.com >> /etc/hosts

cat /etc/hosts
  1. 使用 ping 指令,檢查連線至 us-central1-aiplatform.googleapis.com 的路徑。這會對您在主機檔案中輸入的 IP 位址執行 Ping 作業。這是 PSC 端點,因此您的連線偵測 (ping) 將失敗。
ping -c 2 us-central1-aiplatform.googleapis.com
  1. 返回控制台,開啟另一個 VM 執行個體 py-vm1。選取「SSH」,然後透過 SSH 連線至 VM
  2. 輸入 sudo -i 即可取得根目錄存取權
  3. 執行下列指令,查看 TCP 傾印中的連線能力。
sudo tcpdump -i any port 53 -n or host us-central1-aiplatform.googleapis.com
  1. 現在切換回 VM 執行個體 py-vm1 的第一個 SSH 執行個體
  2. 使用以下指令啟用環境
cd py-gem-env
source env/bin/activate
  1. 現在我們來測試 Python。輸入 ipython 即可啟用 ipython 介面。這次流量會經過 PSC 端點。
ipython
  1. 複製並貼上下列內容。詢問 Gemini:「Google 標誌的所有顏色是什麼?」和「描述尼加拉瀑布」。將 enter-your-project-id-here 替換為引號內的專案 ID
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))
  1. 按下 Enter 鍵即可執行並查看結果。
  2. 切換回 VM 執行個體 py-vm1 的第二個執行個體。您應該會看到 TCPDUMP 的結果。您會看到「In」和「Out」的 IP 位址,其中包含 VM 的 IP 位址,以及連線至 us-central1-aiplatform.googleapis.com 的 PSC 端點 IP 位址。
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
  1. 關閉 VM 執行個體 py-vm1 的所有 SSH 工作階段

8. 工作 6:使用 Terraform 建立手動 DNS 項目 (選用)

您可以建立手動 DNS 項目,使用私人 DNS 指向 PSC 端點。這會影響您指派給該聯播網的所有聯播網。

  1. 前往「網路服務」並選取「Cloud DNS」。
  2. 在可用區中,您應該會看到系統自動為 Google API 專用 Private Service Connect 建立的區域,當中包含可用區類型服務目錄。您可以使用這個值連線至 PSC 端點,格式為 **SERVICE-ENDPOINT.p.googleapis.com,例如:aiplatform-pscvertexgemini.p.googleapis.com
  3. 在本例中,我們要手動建立私人 DNS 項目。設定如下
  • 建立名為「googleapis-private」的私人 DNS 區域,並將其限制為「python-net」網路。
  • 新增 A 記錄,將「googleapis.com」對應至 IP 位址「192.168.255.250」。
  • 新增 CNAME 記錄,將「googleapis.com」的所有子網域 (例如 www.googleapis.com) 重新導向至「googleapis.com」。
  1. 如果尚未開啟 Cloud Shell,請在編輯器檢視畫面中開啟。開啟 terraform-build 資料夾中的 dns.tf 檔案。在檔案中加入下列程式碼。

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."]  
}
  1. 切換至 Cloud Shell 終端機,確認您位於 terraform-build 資料夾中。接著執行 terraform plan 來顯示要新增的項目
    ,然後執行 terraform apply 並輸入 yes,即可建立私人 DNS 項目。
  2. 您應該會看到設定包含 A 記錄,以及 CNAME 這樣的設定,如下所示:b7f122f0d1fd2850.png
  3. 接下來,我們會在 py-vm2 上驗證這些變更的連線能力

9. 工作 7:透過 IP 位址驗證端點連線 (選用)

讓我們使用私人端點連結至 Gemini。

  1. 前往 VM 執行個體 py-vm2。選取 SSH 並透過 SSH 連線至 VM
  2. 輸入 sudo -i 即可取得根目錄存取權
  3. 使用 ping 指令檢查連至 us-central1-aiplatform.googleapis.com 的連線路徑。這會對私人 DNS 中的 IP 位址執行 ping 作業,也就是 googleapis 的 A 記錄。這個 IP 是 PSC 端點,因此您的 ping 作業會失敗。
ping -c 2 us-central1-aiplatform.googleapis.com
  1. 使用 aiplatform-pscvertexgemini.p.googleapis.com 自動建立的 PSC Google API 的 DNS 項目,透過 ping 檢查連線路徑。這會指向 PSC 端點的 IP 位址,因此您的 ping 作業會失敗。
ping -c 2 aiplatform-pscvertexgemini.p.googleapis.com
  1. 使用 dig 指令,檢查連線至 us-central1-aiplatform.googleapis.com 的路徑。應為 PSC 端點的 IP 位址。
dig us-central1-aiplatform.googleapis.com
  1. 返回控制台,然後開啟另一個 VM 執行個體 py-vm2 的執行個體。選取「SSH」,然後透過 SSH 連線至 VM
  2. 輸入 sudo -i 即可取得 Root 權限
  3. 執行下列指令,查看 TCP 傾印中的連線
sudo tcpdump -i any port 53 -n or host us-central1-aiplatform.googleapis.com
  1. 現在切換回 VM 執行個體 py-vm2 的第一個 SSH 執行個體
  2. 使用以下方式啟用環境
cd py-gem-env
source env/bin/activate
  1. 現在,我們來測試 Python。輸入 ipython 即可啟用 ipython 介面。
ipython
  1. 現在請複製並貼上以下內容。詢問「Google 標誌的所有顏色有哪些?」和「Gemini Pro 的兩項功能為何?」。將 enter-your-project-id-here 替換為您在引號中的專案 ID
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))
  1. 按下 Enter 鍵即可執行並查看結果。
  2. 切換回 VM 執行個體 py-vm2 的第二個例項。您應該會看到 TCPDUMP 的結果。您會注意到傳入和傳出,VM 的 IP 位址是使用 PSC 端點 IP 位址連線至 us-central1-aiplatform.googleapis.com

關閉 VM 執行個體 py-vm2 的所有 SSH 工作階段

10. 清除

  1. 前往 Cloud Shell 確認您位於 terraform-build 目錄 cd terraform-build,然後執行下列指令 terraform destroy,並輸入 yes,所有您在專案中使用 Terraform 建立的資源都會遭到移除。

11. 恭喜

恭喜!您已成功使用公開 API 位址和私密的 Private Service Connect 端點 (適用於 Google API) 連線至 Vertex Gemini 即時通訊。這項功能可將私人 API 連線延伸至透過互連網路 (互連網路、Cross-Cloud Interconnect 和 VPC) 連線的地端部署/其他雲端環境。

後續步驟/瞭解詳情

如要進一步瞭解 Vertex AI 網路,請參閱 Vertex AI 網路

程式碼研究室:透過 Private Service Connect 端點,在 Vertex AI 中使用 Python SDK 存取 Anthropic Claude

挑戰下一個研究室

繼續透過 Google Cloud 完成任務,並查看下列其他 Google Cloud Skills Boost 研究室: