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.

2. Цели
В этой лабораторной работе вы научитесь выполнять следующую задачу:
- Настройка экземпляра виртуальной машины для использования Python SDK
- Включить карту антропной модели в Vertex AI
- Подключение к Anthropic Claude Opus 4.5 и Gemini 3 Pro через скрипт Python
- Настройте конечную точку PSC для подключения к GoogleAPI
- Настройте ручные записи DNS
- Проверьте путь подключения к Googleais
- Выполнить скрипт Python для запроса моделей
Лабораторная установка
Настройка среды для самостоятельного обучения
- Войдите в Google Cloud Console и создайте новый проект или используйте существующий. Если у вас ещё нет учётной записи Gmail или Google Workspace, вам необходимо её создать .



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

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

Эта виртуальная машина содержит все необходимые инструменты разработки. Она предоставляет постоянный домашний каталог объёмом 5 ГБ и работает в облаке Google Cloud, что значительно повышает производительность сети и аутентификацию. Всю работу в этой лабораторной работе можно выполнять в браузере. Вам не нужно ничего устанавливать.
3. Настройка среды
Мы создадим собственную VPC с правилами брандмауэра. Если у вас уже есть VPC и проект, вы можете пропустить этот этап.
Откройте Cloud Shell, расположенный в верхней части консоли справа. И выполните следующие настройки: 
- Включить некоторые API, которые мы будем использовать в этой лаборатории
gcloud services enable dns.googleapis.com
gcloud services enable aiplatform.googleapis.com
gcloud services enable servicedirectory.googleapis.com
- Задайте несколько переменных. Эти переменные — идентификатор проекта и идентификатор сети пользовательской VPC (VPC будет создана на шаге 4).
projectid=$(gcloud config get-value project)
networkid=anthropic-net
echo $projectid
echo $networkid
clear
- Теперь создайте пользовательскую VPC под названием anthropic-net.
gcloud compute networks create $networkid \
--project=$projectid \
--subnet-mode=custom \
--mtu=1460 \
--bgp-routing-mode=global
- Создайте подсеть 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
- Добавьте правила брандмауэра 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 и подключим его.
- Перейдите на панель инструментов Vertex AI и выберите Model Garden.
- Найдите Anthropic и выберите Claude Opus 4.5.
3. Выберите «Включить» . Вам потребуется заполнить некоторые поля. Заполните форму и нажмите « Далее» . 4. На последней странице выберите «Согласен» , чтобы включить Claude 4.5 Opus.

5. Создайте шлюз NAT и виртуальные машины.
Нам необходимо предоставить исходящий внешний доступ к Интернету, поэтому давайте создадим шлюз Cloud NAT и подключим его.
В Cloud Shell используйте следующие команды
- Создайте Cloud NAT.
gcloud compute routers create anthro-out-nat \
--network $networkid \
--region us-east1
- Создайте шлюз 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.
Мы собираемся создать виртуальную машину для тестирования со следующими установленными пакетами:
- В том же сеансе 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. Настройте виртуальную машину и протестируйте ее.
- В Google Cloud Shell доступен SSH для новой виртуальной машины, называемой anthro-vm .
gcloud compute ssh anthro-vm \
--project=$projectid \
--zone=us-east1-b \
--tunnel-through-iap \
-- -L 8080:localhost:8080
- После подключения по SSH к anthro-vm активируйте среду venv:
sudo -i -- bash -c 'cd py-anthro-env && source env/bin/activate && exec bash'
- Давайте проверим подлинность, чтобы позже провести тестирование. Выполните следующую команду в виртуальной машине и нажмите y при появлении запроса.
gcloud auth application-default login
- Затем скопируйте URL-адрес, начинающийся с https://, откройте новую вкладку в окне браузера вашей лаборатории и вставьте URL-адрес. Примите приглашения.
- Когда вы увидите следующее, выберите «Копировать», вернитесь в сеанс vm anthro-vm и в поле «Введите код авторизации» вставьте скопированный вами код и нажмите Enter для аутентификации.

- Теперь давайте проведем быстрый тест, чтобы увидеть, сможем ли мы подключиться к API Vertex Gemini.
dig *-aiplatform.googleapis.com
- Вы должны увидеть что-то похожее ( адреса будут отличаться ). Обратите внимание, что путь проложен через публичные 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
- Теперь давайте используем Python. Введите
ipython, чтобы активировать интерфейс ipython .
ipython

- Теперь скопируйте и вставьте следующий код. Этот код задаёт Клоду Опусу 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)}")
- Нажмите Enter дважды, чтобы запустить и увидеть текстовый результат.
- Чтобы просмотреть изображение , необходимо включить веб-сервис в Python. Выполните следующую команду в сеансе iPython:
!python3 -m http.server 8080
- Теперь перейдите к опции веб-предварительного просмотра в Cloud Shell, выберите предварительный просмотр на порту 8080.

- В открытом веб-сеансе выберите gemini_agentic_ai.png , чтобы просмотреть сгенерированное изображение. (Пример изображения ниже, сгенерированного ИИ)

- В Cloud Shell для выхода из сеанса нажмите Ctrl C, затем введите exit и нажмите Enter (повторите три раза), чтобы вернуться на главную страницу Cloud Shell.
- Давайте продолжим.
7. Создайте конечную точку PSC для GoogleAPI.
Чтобы обеспечить приватное подключение к нашей конечной точке API Vertex, мы создадим конечную точку Private Service Connect для GoogleAPI. Это позволит нам использовать назначенный нами приватный IP-адрес для маршрутизации трафика к нужному нам API GoogleAPI, в данном случае к Vertex Gemini.
- Откройте 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
- Подтвердите создание IP-адреса.
gcloud compute addresses list --filter="name=( 'anthro-ip' ...)"
- Затем создайте конечную точку PSC.
gcloud compute forwarding-rules create pscanthrovertex \
--global \
--network=$networkid \
--address=anthro-ip \
--target-google-apis-bundle=all-apis
- Это создаст конечную точку и запись в каталоге служб. Убедитесь, что конечная точка существует.
gcloud compute forwarding-rules describe pscanthrovertex --global
8. Проверьте подключение конечной точки через зону автоматического каталога услуг.
Давайте подключимся, используя частную конечную точку для подключения к Gemini.
- Перейдите к экземпляру виртуальной машины anthro-vm1 . Выберите SSH и подключитесь к виртуальной машине по SSH.
- Проверьте путь подключения к aiplatform-pscanthrovertex.p.googleapis.com с помощью команды
dig. Вы должны увидеть IP-адрес конечной точки PSC192.168.255.230
dig aiplatform-pscanthrovertex.p.googleapis.com
- Выйти из всех сеансов SSH
9. Создайте ручную запись DNS в GoogleAPI
Вы можете вручную создать DNS-запись, указывающую на конечную точку PSC, используя частный DNS. Это повлияет на все назначенные ей сети.
Выполните следующие команды в Cloud Shell.
- Создайте частную 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"
- Создайте запись 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"
- Создайте подстановочную запись CNAME для перенаправления всех поддоменов (например, aiplatform.googleapis.com) на корневую запись A.
gcloud dns record-sets create "*.googleapis.com." \
--zone="googleapis-private" \
--type="CNAME" \
--ttl="300" \
--rrdatas="googleapis.com."
- Перечислите наборы записей в зоне, чтобы убедиться, что запись A и CNAME созданы правильно.
gcloud dns record-sets list --zone="googleapis-private"
- В консоли это должно выглядеть так. Вы должны увидеть настройку с записью A и CNAME, как показано ниже.

- Далее мы проверяем возможность подключения с этими изменениями на anthro-vm.
10. Проверьте подключение конечной точки по IP-адресу.
Давайте подключимся, используя частную конечную точку для подключения к Gemini.
- В Google Cloud Shell доступен SSH для новой виртуальной машины, называемой anthro-vm .
gcloud compute ssh anthro-vm \
--project=$projectid \
--zone=us-east1-b \
--tunnel-through-iap \
-- -L 8080:localhost:8080
- После подключения по SSH к anthro-vm активируйте среду venv:
sudo -i -- bash -c 'cd py-anthro-env && source env/bin/activate && exec bash'
- Теперь давайте
dig, сможем ли мы подключиться к API Vertex Gemini.
dig *-aiplatform.googleapis.com
- Вы должны увидеть что-то похожее (адрес будет другим). Обратите внимание, что путь проложен через 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
- Используя команду
ping. Мы можем провести быструю проверку. Примечание: этот IP-адрес является конечной точкой PSC, и ваши пинги будут безуспешными.
ping -c 2 aiplatform.googleapis.com
- Теперь давайте используем Python. Введите
ipython, чтобы активировать интерфейс ipython .
ipython

- Теперь скопируйте и вставьте следующий код. Этот код задаёт Клоду Опусу 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)}")
- Нажмите Enter дважды, чтобы запустить и увидеть текстовый результат.
- Чтобы просмотреть изображение, нам нужно включить веб-сервис в Python, поэтому выполните следующее в сеансе ipython:
!python3 -m http.server 8080
- Теперь перейдите к опции веб-предварительного просмотра в Cloud Shell, выберите предварительный просмотр на порту 8080.
- Выберите cookingroti.png , чтобы увидеть сгенерированное изображение. (Пример ниже сгенерирован с помощью ИИ)

- В 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:
