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

1. 總覽

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

接著,您將建立 Private Service Connect 端點,連線至 Google API,並變更流量流程,以便使用私人端點連線至 Gemini 聊天 API。設定會結合使用 Terraform、gcloud 和控制台。

在本研究室中,您將建立下列模式。

圖 1.

8b283cc5684283c2.png

2. 目標

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

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

自助式環境設定

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

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

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

啟動 Cloud Shell

雖然 Google Cloud 可透過筆記型電腦遠端操作,但在本程式碼研究室中,您將使用 Google Cloud Shell,這是在雲端運作的指令列環境。

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 編輯器檢視畫面。選取「編輯器」,確認您已允許所有必要提示,以便介面載入。
  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」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 authorization code:」中貼上複製的程式碼,然後按下 Enter 鍵進行驗證。

c29615cdf9324209.png

  1. 接下來,我們來做個快速測試,看看能否連線至 Vertex Gemini API,這個 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 工作階段,我們繼續進行。

現在使用相同的設定來設定 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 authorization code:」中貼上複製的程式碼,然後按下 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 端點建立 IP 位址 192.168.255.250 (resource "google_compute_global_address" "default")
  • 建立 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,然後透過 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. 在區域中,您應該會看到系統自動建立的 Private Service Connect for Google API 區域,以及區域類型服務目錄。這個值可用於連線至 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,然後透過 SSH 連線至 VM
  2. 輸入 sudo -i 即可取得根目錄存取權
  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. 複製並貼上下列內容。這會要求 Gemini 提供「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 網路

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

挑戰下一個研究室

繼續完成 Google Cloud 任務,並查看其他 Google Cloud 技能重點加強研究室: