Anthropic Claude Opus 4.5 и Gemini 3 на Vertex AI с python sdk через конечную точку Private Service Connect

1. Обзор

Доступ к API Vertex AI возможен через Интернет , однако на вашем предприятии может потребоваться доступ к API Vertex AI в частном порядке, без подключения к Интернету. В этой лабораторной работе вы сначала получите доступ к Anthropic Claude Opus 4.5 и Gemini 3 Pro на Vertex через Python SDK, работающий на экземпляре виртуальной машины через общедоступный Интернет.

Затем вы создадите конечную точку Private Service Connect для Googleapis и измените поток трафика, чтобы использовать частную конечную точку для подключения к API Vertex.

Пример кода Python возьмет входные вопросы, передаст их Клоду Опусу для генерации ответа , а выходные данные будут переданы в Gemini Pro 3 для создания текстового резюме и генерации изображения.

В этой лабораторной работе вам предстоит создать следующий узор.

Рисунок1.

c8f37e193349bfd6.png

2. Цели

В этой лабораторной работе вы научитесь выполнять следующую задачу:

  • Настройка экземпляра виртуальной машины для использования Python SDK
  • Включить карту антропной модели в Vertex AI
  • Подключение к Anthropic Claude Opus 4.5 и Gemini 3 Pro через скрипт Python
  • Настройте конечную точку PSC для подключения к GoogleAPI
  • Настройте ручные записи DNS
  • Проверьте путь подключения к Googleais
  • Выполнить скрипт Python для запроса моделей

Лабораторная установка

Настройка среды для самостоятельного обучения

  1. Войдите в Google Cloud Console и создайте новый проект или используйте существующий. Если у вас ещё нет учётной записи Gmail или Google Workspace, вам необходимо её создать .

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

  • Название проекта — отображаемое имя участников проекта. Это строка символов, не используемая API Google. Вы можете изменить её в любой момент.
  • Идентификатор проекта уникален для всех проектов Google Cloud и неизменяем (нельзя изменить после установки). Cloud Console автоматически генерирует уникальную строку; обычно вам не важно, какой именно. В большинстве практических работ вам потребуется указать идентификатор проекта (обычно обозначаемый как PROJECT_ID ). Если вам не нравится сгенерированный идентификатор, вы можете сгенерировать другой случайный идентификатор. Вы также можете попробовать использовать свой собственный идентификатор и посмотреть, доступен ли он. После этого шага его нельзя будет изменить, и он останется на протяжении всего проекта.
  • К вашему сведению, существует третье значение — номер проекта , который используется некоторыми API. Подробнее обо всех трёх значениях можно узнать в документации .
  1. Далее вам нужно включить биллинг в Cloud Console для использования облачных ресурсов/API. Выполнение этой лабораторной работы не потребует больших затрат, если вообще потребует. Чтобы отключить ресурсы и избежать списания средств за пределами этого руководства, вы можете удалить созданные вами ресурсы или проект. Новые пользователи Google Cloud могут воспользоваться бесплатной пробной версией стоимостью 300 долларов США .

Запустить Cloud Shell

Хотя Google Cloud можно управлять удаленно с вашего ноутбука, в этой лабораторной работе вы будете использовать Google Cloud Shell — среду командной строки, работающую в облаке.

В консоли Google Cloud Console нажмите значок Cloud Shell на верхней правой панели инструментов:

Активировать Cloud Shell

Подготовка и подключение к среде займёт всего несколько минут. После завершения вы увидите примерно следующее:

Скриншот терминала Google Cloud Shell, показывающий, что среда подключена

Эта виртуальная машина содержит все необходимые инструменты разработки. Она предоставляет постоянный домашний каталог объёмом 5 ГБ и работает в облаке Google Cloud, что значительно повышает производительность сети и аутентификацию. Всю работу в этой лабораторной работе можно выполнять в браузере. Вам не нужно ничего устанавливать.

3. Настройка среды

Мы создадим собственную VPC с правилами брандмауэра. Если у вас уже есть VPC и проект, вы можете пропустить этот этап.

Откройте Cloud Shell, расположенный в верхней части консоли справа. И выполните следующие настройки: b51b80043d3bac90.png

  1. Включить некоторые API, которые мы будем использовать в этой лаборатории
gcloud services enable dns.googleapis.com
gcloud services enable aiplatform.googleapis.com
gcloud services enable servicedirectory.googleapis.com
  1. Задайте несколько переменных. Эти переменные — идентификатор проекта и идентификатор сети пользовательской VPC (VPC будет создана на шаге 4).
projectid=$(gcloud config get-value project)
networkid=anthropic-net 
echo $projectid
echo $networkid
clear
  1. Теперь создайте пользовательскую VPC под названием anthropic-net.
gcloud compute networks create $networkid \
--project=$projectid \
--subnet-mode=custom \
--mtu=1460 \
--bgp-routing-mode=global
  1. Создайте подсеть vm1 в новом VPC
gcloud compute networks subnets create vm-subnet \
--project=$projectid --range=10.0.88.0/24 \
--stack-type=IPV4_ONLY --network=$networkid \
--region=us-east1
  1. Добавьте правила брандмауэра ICMP, SSH и HTTP в свой VPC
gcloud compute firewall-rules create $networkid-allow-icmp --project=$projectid \
--network=$networkid \
--description="Allows ICMP connections from any source to any instance on the network." \
--direction=INGRESS \
--priority=65534 \
--source-ranges=0.0.0.0/0 \
--action=ALLOW \
--rules=icmp

gcloud compute firewall-rules create $networkid-allow-ssh \
--project=$projectid \
--network=$networkid \
--description="Allows TCP connections from any source to any instance on the network using port 22." \
--direction=INGRESS --priority=65534 \
--source-ranges=0.0.0.0/0 --action=ALLOW \
--rules=tcp:22

gcloud compute firewall-rules create $networkid-allow-web \
--project=$projectid \
--network=$networkid \
--description="Allows TCP connections on port 8080." \
--direction=INGRESS --priority=1000 \
--source-ranges=0.0.0.0/0 --action=ALLOW \
--rules=tcp:8080

4. Включить антропный режим в модели Vertex.

Нам необходимо предоставить исходящий внешний доступ к Интернету, поэтому давайте создадим шлюз Cloud NAT и подключим его.

  1. Перейдите на панель инструментов Vertex AI и выберите Model Garden.
  2. Найдите Anthropic и выберите Claude Opus 4.5.

d8937fa7d5e216b7.png 3. Выберите «Включить» . Вам потребуется заполнить некоторые поля. Заполните форму и нажмите « Далее» . 4. На последней странице выберите «Согласен» , чтобы включить Claude 4.5 Opus.

6ccda2a237000dea.png

  1. 84fbda607163ab9a.png

5. Создайте шлюз NAT и виртуальные машины.

Нам необходимо предоставить исходящий внешний доступ к Интернету, поэтому давайте создадим шлюз Cloud NAT и подключим его.

В Cloud Shell используйте следующие команды

  1. Создайте Cloud NAT.
gcloud compute routers create anthro-out-nat \
    --network $networkid \
    --region us-east1 
  1. Создайте шлюз Cloud NAT.
gcloud compute routers nats create anthro-out-nat-gw \
    --router-region us-east1 \
    --router anthro-out-nat \
    --nat-all-subnet-ip-ranges \
    --auto-allocate-nat-external-ips

Теперь давайте создадим одну виртуальную машину для доступа к Anthropic on Vertex AI через Python SDK.

Мы собираемся создать виртуальную машину для тестирования со следующими установленными пакетами:

  1. В том же сеансе Cloud Shell создайте anthro-vm, используя следующее.
gcloud compute instances create anthro-vm \
--project=$projectid \
--zone=us-east1-b \
--network-interface=stack-type=IPV4_ONLY,subnet=vm-subnet,no-address,network=$networkid \
--metadata startup-script="#! /bin/bash    
      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-anthro-env
      cd ~/py-anthro-env
      python3 -m venv env
      source env/bin/activate
      pip install -U ipython google-genai 'anthropic[vertex]'"

Вы должны увидеть виртуальную машину, созданную без публичных IP-адресов. Теперь давайте настроим виртуальную машину.

6. Настройте виртуальную машину и протестируйте ее.

  1. В Google Cloud Shell доступен SSH для новой виртуальной машины, называемой anthro-vm .
gcloud compute ssh anthro-vm \
    --project=$projectid \
    --zone=us-east1-b \
    --tunnel-through-iap \
    -- -L 8080:localhost:8080
  1. После подключения по SSH к anthro-vm активируйте среду venv:
sudo -i -- bash -c 'cd py-anthro-env && source env/bin/activate && exec bash'
  1. Давайте проверим подлинность, чтобы позже провести тестирование. Выполните следующую команду в виртуальной машине и нажмите y при появлении запроса.
gcloud auth application-default login
  1. Затем скопируйте URL-адрес, начинающийся с https://, откройте новую вкладку в окне браузера вашей лаборатории и вставьте URL-адрес. Примите приглашения.
  2. Когда вы увидите следующее, выберите «Копировать», вернитесь в сеанс vm anthro-vm и в поле «Введите код авторизации» вставьте скопированный вами код и нажмите Enter для аутентификации.

b703db7aa2aa286a.png

  1. Теперь давайте проведем быстрый тест, чтобы увидеть, сможем ли мы подключиться к API Vertex Gemini.
dig *-aiplatform.googleapis.com
  1. Вы должны увидеть что-то похожее ( адреса будут отличаться ). Обратите внимание, что путь проложен через публичные IP-адреса, поскольку API является публичным.
; <<>> DiG 9.18.39-0ubuntu0.24.04.2-Ubuntu <<>> *-aiplatform.googleapis.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3728
;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;*-aiplatform.googleapis.com.   IN      A

;; ANSWER SECTION:
*-aiplatform.googleapis.com. 300 IN     A       172.217.204.95
*-aiplatform.googleapis.com. 300 IN     A       172.217.203.95
*-aiplatform.googleapis.com. 300 IN     A       173.194.215.95
*-aiplatform.googleapis.com. 300 IN     A       142.250.98.95
*-aiplatform.googleapis.com. 300 IN     A       173.194.217.95
*-aiplatform.googleapis.com. 300 IN     A       142.251.107.95
*-aiplatform.googleapis.com. 300 IN     A       74.125.196.95
  1. Теперь давайте используем Python. Введите ipython , чтобы активировать интерфейс ipython .
ipython

845ef4291429888a.png

  1. Теперь скопируйте и вставьте следующий код. Этот код задаёт Клоду Опусу 4.5 вопрос: « Каковы основные этапы создания агентного ИИ? », а затем принимает выходные данные и передаёт их в Gemini 3 Pro, который создаёт сводку и генерирует изображение, которое сохраняется на виртуальной машине.
import os
import sys
import google.auth
from pathlib import Path
from google import genai
from google.genai import types
from anthropic import AnthropicVertex

# 1. Setup & Auth
print("--- Authenticating ---")
creds, project_id = google.auth.default()
LOCATION = "global"

# 2. Initialize Clients
print(f"--- Initializing Clients for Project: {project_id} ---")
google_client = genai.Client(vertexai=True, location=LOCATION, project=project_id)
claude_client = AnthropicVertex(region=LOCATION, project_id=project_id)

# 3. Define the Question
question = "What are the key steps to building Agentic AI?"
print(f"\n--- Asking Claude: {question} ---")

# 4. Get Claude's Research
msg = claude_client.messages.create(
    model="claude-opus-4-5@20251101",
    max_tokens=2048,
    messages=[{"role": "user", "content": question}]
)
claude_text = msg.content[0].text
print(f"✓ Claude Answered ({len(claude_text)} chars)")

# 5. Send to Gemini 3 for Image & Summary
print("\n--- Sending to Gemini 3 (Image + Text) ---")
gemini_prompt = f"""
I am providing you with a technical explanation generated by Claude Opus 4.5.
1. READ the text below.
2. GENERATE a concise, bulleted executive summary.
3. CREATE a high-quality, futuristic illustration for a tech blog header (16:9).

--- INPUT TEXT ---
{claude_text}
"""

response = google_client.models.generate_content(
    model="gemini-3-pro-image-preview",
    contents=gemini_prompt,
    config=types.GenerateContentConfig(
        response_modalities=['TEXT', 'IMAGE'],
        temperature=0.7
    )
)

# 6. Save and Display Results
print("\n--- Results ---")
for part in response.parts:
    if part.text:
        print(f"\n[SUMMARY]:\n{part.text.strip()[:500]}...\n(Summary truncated for brevity)")
    elif image := part.as_image():
        filename = "gemini_agentic_ai.png"
        image.save(filename)
        print(f"\n✓ IMAGE SAVED to: {os.path.abspath(filename)}")
  1. Нажмите Enter дважды, чтобы запустить и увидеть текстовый результат.
  2. Чтобы просмотреть изображение , необходимо включить веб-сервис в Python. Выполните следующую команду в сеансе iPython:
!python3 -m http.server 8080
  1. Теперь перейдите к опции веб-предварительного просмотра в Cloud Shell, выберите предварительный просмотр на порту 8080. 6dcb2bf9a08aacaf.png
  2. В открытом веб-сеансе выберите gemini_agentic_ai.png , чтобы просмотреть сгенерированное изображение. (Пример изображения ниже, сгенерированного ИИ)
    fdcb79d8410dadc5.png
  3. В Cloud Shell для выхода из сеанса нажмите Ctrl C, затем введите exit и нажмите Enter (повторите три раза), чтобы вернуться на главную страницу Cloud Shell.
  4. Давайте продолжим.

7. Создайте конечную точку PSC для GoogleAPI.

Чтобы обеспечить приватное подключение к нашей конечной точке API Vertex, мы создадим конечную точку Private Service Connect для GoogleAPI. Это позволит нам использовать назначенный нами приватный IP-адрес для маршрутизации трафика к нужному нам API GoogleAPI, в данном случае к Vertex Gemini.

  1. Откройте Cloud Shell, если он ещё не открыт. Создайте IP-адрес для конечной точки PSC. В данном случае мы будем использовать 192.168.255.230 .
gcloud compute addresses create anthro-ip \
    --global \
    --purpose=PRIVATE_SERVICE_CONNECT \
    --addresses=192.168.255.230 \
    --network=$networkid
  1. Подтвердите создание IP-адреса.
gcloud compute addresses list --filter="name=( 'anthro-ip' ...)"
  1. Затем создайте конечную точку PSC.
gcloud compute forwarding-rules create pscanthrovertex \
    --global \
    --network=$networkid \
    --address=anthro-ip \
    --target-google-apis-bundle=all-apis
  1. Это создаст конечную точку и запись в каталоге служб. Убедитесь, что конечная точка существует.
gcloud compute forwarding-rules describe pscanthrovertex --global

8. Проверьте подключение конечной точки через зону автоматического каталога услуг.

Давайте подключимся, используя частную конечную точку для подключения к Gemini.

  1. Перейдите к экземпляру виртуальной машины anthro-vm1 . Выберите SSH и подключитесь к виртуальной машине по SSH.
  2. Проверьте путь подключения к aiplatform-pscanthrovertex.p.googleapis.com с помощью команды dig . Вы должны увидеть IP-адрес конечной точки PSC 192.168.255.230
dig aiplatform-pscanthrovertex.p.googleapis.com
  1. Выйти из всех сеансов SSH

9. Создайте ручную запись DNS в GoogleAPI

Вы можете вручную создать DNS-запись, указывающую на конечную точку PSC, используя частный DNS. Это повлияет на все назначенные ей сети.

Выполните следующие команды в Cloud Shell.

  1. Создайте частную DNS-зону для googleapis.com и подключите ее к сети anthropic-net.
gcloud dns managed-zones create googleapis-private \
    --description="Private DNS zone for googleapis.com" \
    --dns-name="googleapis.com." \
    --visibility="private" \
    --networks="anthropic-net"
  1. Создайте запись A, сопоставляющую корневой домен с IP-адресом конечной точки Private Service Connect (192.168.255.230).
gcloud dns record-sets create "googleapis.com." \
    --zone="googleapis-private" \
    --type="A" \
    --ttl="300" \
    --rrdatas="192.168.255.230"
  1. Создайте подстановочную запись CNAME для перенаправления всех поддоменов (например, aiplatform.googleapis.com) на корневую запись A.
gcloud dns record-sets create "*.googleapis.com." \
    --zone="googleapis-private" \
    --type="CNAME" \
    --ttl="300" \
    --rrdatas="googleapis.com."
  1. Перечислите наборы записей в зоне, чтобы убедиться, что запись A и CNAME созданы правильно.
gcloud dns record-sets list --zone="googleapis-private"
  1. В консоли это должно выглядеть так. Вы должны увидеть настройку с записью A и CNAME, как показано ниже. a51a8b8caa7a0f1e.png
  2. Далее мы проверяем возможность подключения с этими изменениями на anthro-vm.

10. Проверьте подключение конечной точки по IP-адресу.

Давайте подключимся, используя частную конечную точку для подключения к Gemini.

  1. В Google Cloud Shell доступен SSH для новой виртуальной машины, называемой anthro-vm .
gcloud compute ssh anthro-vm \
    --project=$projectid \
    --zone=us-east1-b \
    --tunnel-through-iap \
    -- -L 8080:localhost:8080
  1. После подключения по SSH к anthro-vm активируйте среду venv:
sudo -i -- bash -c 'cd py-anthro-env && source env/bin/activate && exec bash'
  1. Теперь давайте dig , сможем ли мы подключиться к API Vertex Gemini.
dig *-aiplatform.googleapis.com
  1. Вы должны увидеть что-то похожее (адрес будет другим). Обратите внимание, что путь проложен через IP-адреса конечных точек PSC.
; <<>> DiG 9.18.41-1~deb12u1-Debian <<>> *-aiplatform.googleapis.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33703
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;*-aiplatform.googleapis.com.   IN      A

;; ANSWER SECTION:
*-aiplatform.googleapis.com. 300 IN     CNAME   googleapis.com.
googleapis.com.         300     IN      A       192.168.255.230

;; Query time: 8 msec
;; SERVER: 169.254.169.254#53(169.254.169.254) (UDP)
;; WHEN: Sat Nov 29 15:19:15 UTC 2025
;; MSG SIZE  rcvd: 86
  1. Используя команду ping . Мы можем провести быструю проверку. Примечание: этот IP-адрес является конечной точкой PSC, и ваши пинги будут безуспешными.
ping -c 2 aiplatform.googleapis.com
  1. Теперь давайте используем Python. Введите ipython , чтобы активировать интерфейс ipython .
ipython

845ef4291429888a.png

  1. Теперь скопируйте и вставьте следующий код. Этот код задаёт Клоду Опусу 4.5 вопрос: « Дайте мне пошаговый рецепт приготовления лепёшки роти для новичков? », а затем передаёт вывод в Gemini 3 Pro, который создаёт сводку и генерирует изображение, которое затем сохраняется на виртуальной машине.
import os
import sys
import google.auth
from pathlib import Path
from google import genai
from google.genai import types
from anthropic import AnthropicVertex

# 1. Setup & Auth
print("--- Authenticating ---")
creds, project_id = google.auth.default()
LOCATION = "global"

# 2. Initialize Clients
print(f"--- Initializing Clients for Project: {project_id} ---")
google_client = genai.Client(vertexai=True, location=LOCATION, project=project_id)
claude_client = AnthropicVertex(region=LOCATION, project_id=project_id)

# 3. Define the Question
question = "Give me a step by step recipe to make a roti for a beginner?"
print(f"\n--- Asking Claude: {question} ---")

# 4. Get Claude's Research
msg = claude_client.messages.create(
    model="claude-opus-4-5@20251101",
    max_tokens=2048,
    messages=[{"role": "user", "content": question}]
)
claude_text = msg.content[0].text
print(f"✓ Claude Answered ({len(claude_text)} chars)")

# 5. Send to Gemini 3 for Image & Summary
print("\n--- Sending to Gemini 3 (Image + Text) ---")
gemini_prompt = f"""
I am providing you with a technical explanation generated by Claude Opus 4.5.
1. READ the text below.
2. GENERATE a concise, bulleted executive summary.
3. CREATE a high-quality, futuristic illustration for a tech blog header (16:9).

--- INPUT TEXT ---
{claude_text}
"""

response = google_client.models.generate_content(
    model="gemini-3-pro-image-preview",
    contents=gemini_prompt,
    config=types.GenerateContentConfig(
        response_modalities=['TEXT', 'IMAGE'],
        temperature=0.7
    )
)

# 6. Save and Display Results
print("\n--- Results ---")
for part in response.parts:
    if part.text:
        print(f"\n[SUMMARY]:\n{part.text.strip()[:500]}...\n(Summary truncated for brevity)")
    elif image := part.as_image():
        filename = "cookingroti.png"
        image.save(filename)
        print(f"\n✓ IMAGE SAVED to: {os.path.abspath(filename)}")
  1. Нажмите Enter дважды, чтобы запустить и увидеть текстовый результат.
  2. Чтобы просмотреть изображение, нам нужно включить веб-сервис в Python, поэтому выполните следующее в сеансе ipython:
!python3 -m http.server 8080
  1. Теперь перейдите к опции веб-предварительного просмотра в Cloud Shell, выберите предварительный просмотр на порту 8080.
  2. Выберите cookingroti.png , чтобы увидеть сгенерированное изображение. (Пример ниже сгенерирован с помощью ИИ) bcf43fffede275cb.png
  3. В Cloud Shell для выхода из сеанса нажмите Ctrl C, затем введите exit и нажмите Enter (повторите три раза), чтобы вернуться на главную страницу Cloud Shell.

11. Поздравления

Поздравляем! Вы успешно подключились к Anthropic Claude Opus 4.5 и Gemini 3 Pro на Vertex, используя как публичный адрес API, так и частное подключение через конечную точку Private Service Connect для GoogleAPI. Эта функция позволяет расширить возможности частного API в вашей локальной или другой облачной среде, подключенной через (Interconnect, Cross-Cloud Interconnect и VPC).

Уборка

gcloud compute instances delete anthro-vm --zone=us-east1-b --quiet

gcloud compute routers nats delete anthro-out-nat-gw --router=anthro-out-nat --region=us-east1 --quiet

gcloud compute routers delete anthro-out-nat --region=us-east1 --quiet

gcloud compute firewall-rules delete anthropic-net-allow-icmp anthropic-net-allow-ssh anthropic-net-allow-web --quiet

gcloud compute forwarding-rules delete pscanthrovertex --global --quiet

gcloud dns record-sets delete googleapis.com. --zone googleapis-private --type A --quiet

gcloud dns record-sets delete *.googleapis.com --zone googleapis-private --type CNAME --quiet

gcloud dns managed-zones delete googleapis-private --quiet

gcloud compute addresses delete anthro-ip --global --quiet

gcloud compute networks subnets delete vm-subnet --region=us-east1 --quiet

gcloud compute networks delete anthropic-net --quiet

Дальнейшие шаги / Узнать больше

Подробнее о сетях Vertex AI можно прочитать здесь.

Codelab : Доступ к чату Gemini 3 Pro с помощью Python SDK через конечную точку Private Service Connect

Codelab : Создание агентов ИИ с помощью ADK:The Foundation

Возьмите вашу следующую лабораторную работу

Продолжайте свои исследования с Google Cloud и ознакомьтесь с другими лабораторными работами Google Cloud Skills Boost: