О практической работе
1. Обзор
Доступ к Vertex AI API можно получить через Интернет , однако на вашем предприятии вы можете захотеть получить доступ к Vertex AI API в частном порядке, не выходя через Интернет. В ходе этой лабораторной работы вы сначала получите доступ к Anthropic Claude на Vertex через SDK Python, работающий на экземпляре виртуальной машины через общедоступный Интернет.
Затем вы создадите конечную точку Private Service Connect для Googleapis и измените поток трафика, чтобы использовать частную конечную точку для подключения к Vertex API.
В этой лабораторной работе вы создадите следующий узор.
Рисунок 1.
2. Цели
В ходе этой лабораторной работы вы научитесь выполнять следующую задачу:
- Настройте экземпляр виртуальной машины для использования Python SDK
- Подключитесь к чату Anthropic Claude с помощью скрипта Python
- Настройте конечную точку PSC для подключения к Googleapis
- Настройка записей DNS вручную
- Проверьте путь подключения к Googleais
Установка лаборатории
Самостоятельная настройка среды
- Войдите в 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. Задача 1. Среда настройки
Мы создадим собственный 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 в ваш 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
- Добавьте правило брандмауэра SSH в ваш VPC
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
4. Задача 2. Включить Anthropic в саду моделей Vertex
Нам нужно предоставить исходящий внешний доступ к Интернету, поэтому давайте создадим шлюз Cloud NAT и подключим его.
- Перейдите в Vertex AI и выберите Model Garden.
- Найдите Anthropic и выберите Claude 3.5 Sonnet.
- Выберите «Включить» , вам потребуется ввести некоторую информацию. Заполните форму и выберите Далее
- На последней странице выберите «Согласен» , чтобы включить Claude 3.5 Sonnet.
5. Задача 3. Создайте шлюз NAT и виртуальные машины.
Нам нужно предоставить исходящий внешний доступ к Интернету, поэтому давайте создадим шлюз Cloud NAT и подключим его.
В Cloud Shell используйте следующие команды
- Создайте облачный 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.
Мы собираемся создать виртуальную машину для тестирования со следующими установленными пакетами.
- В том же сеансе облачной оболочки создайте 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-cloud-aiplatform 'anthropic[vertex]'"
Вы должны увидеть виртуальную машину, созданную без общедоступных IP-адресов. Теперь давайте настроим виртуальную машину
6. Задача 4. Настроить ВМ и протестировать
- Перейдите к экземплярам виртуальных машин. Выберите виртуальную машину, начинающуюся с anthro-vm . Выберите SSH.
- Как только вы подключитесь к anthro-vm по SSH, включите root, набрав
sudo -i
- Активируйте среду venv:
cd py-anthro-env
source env/bin/activate
- Теперь давайте аутентифицируем это, чтобы позже провести некоторое тестирование. Запустите следующую команду на виртуальной машине и нажмите y при появлении запроса.
gcloud auth application-default login
- Затем скопируйте URL-адрес, который начинается с https://, откройте новую вкладку в окне браузера лаборатории и вставьте URL-адрес. Примите подсказки.
- Когда вы увидите следующую копию выбора, вернитесь к сеансу vm anthro-vm и для ввода кода авторизации: вставьте скопированный код и нажмите Enter для аутентификации.
- Теперь давайте проведем быстрый тест, чтобы узнать, сможем ли мы подключиться к API Vertex Gemini. Он использует us-east5-aiplatform.googleapis.com , поэтому мы выполним
dig
по этому адресу, чтобы увидеть, как маршрутизируется трафик.
dig us-east5-aiplatform.googleapis.com
- Вы должны увидеть нечто похожее (адрес будет отличаться). Обратите внимание, что путь проходит через общедоступные IP-адреса, поскольку API является общедоступным API.
; <<>> DiG 9.16.48-Debian <<>> us-east5-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-east5-aiplatform.googleapis.com. IN A
;; ANSWER SECTION:
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.210.95
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.211.95
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.212.95
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.213.95
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.215.95
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.216.95
us-east5-aiplatform.googleapis.com. 300 IN A 108.177.12.95
us-east5-aiplatform.googleapis.com. 300 IN A 108.177.13.95
us-east5-aiplatform.googleapis.com. 300 IN A 74.125.26.95
- Теперь давайте использовать Python. Введите
ipython
, чтобы активировать интерфейс ipython .
ipython
- Теперь скопируйте и вставьте следующее. При этом Клод спрашивает: « Где пройдут Олимпийские игры в 2024 году! ». ps Замените
YOUR-Project-ID-Here
на имя вашего идентификатора проекта.
from anthropic import AnthropicVertex
project_id = "YOUR-Project-ID-Here"
region = "us-east5"
client = AnthropicVertex(project_id=project_id, region=region)
message = client.messages.create(
model="claude-3-5-sonnet@20240620",
max_tokens=100,
messages=[
{
"role": "user",
"content": "Where is the olympics being held in 2024!",
}
],
)
print(message)
- Нажмите Enter, чтобы запустить и увидеть результат.
- Этот запрос обращался к Anthropic через общедоступный API Vertex.
- Закройте сеанс SSH , продолжим.
7. Задача 5. Создайте конечную точку PSC для googleapis
Чтобы обеспечить частное подключение к нашей конечной точке API Vertex, мы создадим конечную точку Private Service Connect для googleapis. Это позволит нам использовать частный IP-адрес, который мы назначаем для маршрутизации трафика на нужный нам 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. Задача 6. Проверка подключения конечной точки через зону автоматического каталога служб.
Давайте подключимся к Gemini, используя частную конечную точку.
- Перейдите к экземпляру виртуальной машины anthro-vm1 . Выберите SSH и SSH в виртуальной машине.
- Получите root-доступ, набрав
sudo -i
- Проверьте путь подключения к aiplatform-pscanthrovertex.p.googleapis.com с помощью команды
dig
. Вы должны увидеть IP-адрес конечной точки PSC.
dig aiplatform-pscanthrovertex.p.googleapis.com
9. Задача 7. Создайте вручную DNS-запись в googleapis (необязательно)
Вы можете создать запись DNS вручную, чтобы указать на конечную точку PSC, используя частный DNS. Это повлияет на все сети, которые вы ему назначите.
- Перейдите к Сетевым службам и выберите Cloud DNS.
- В зонах вы должны увидеть автоматически созданную зону для Private Service Connect для API Google с каталогом службы типа зоны. Это можно использовать для подключения к конечной точке PSC в формате ** SERVICE-ENDPOINT. p.googleapis.com Пример
aiplatform-pscvertexgemini.p.googleapis.com
- В этом случае мы хотим вручную создать частную запись DNS. Перейдите в Cloud DNS и выберите «Создать зону».
- Настройте следующим образом
Конфигурация | Имя |
Тип зоны | Частный |
Название зоны | googleapis-частный |
DNS-имя | googleapis.com |
Добавить сети (выберите «Готово» при добавлении) | антропная сеть |
Для завершения выберите | Создавать |
- В области «Сведения о зоне» выберите «Добавить стандарт» , чтобы добавить запись A.
Конфигурация | Имя |
Тип записи ресурса | А |
IPv4-адрес (добавьте IP-адрес конечной точки) | 192.168.255.230 |
Для завершения выберите | Создавать |
- В области сведений о зоне выберите Добавить стандарт , чтобы добавить запись CNAME.
Конфигурация | Имя |
DNS-имя | * |
Тип ресурса записи | CNAME |
Каноническое имя 1 | googleapis.com |
Для завершения выберите | Создавать |
- Вы должны увидеть настройку с записью A и CNAME, как показано ниже.
- Далее проверяем связность с этими изменениями на anthro-vm.
10. Задача 8. Проверка подключения конечной точки через IP-адрес (необязательно)
Давайте подключимся к Gemini, используя частную конечную точку.
- Перейдите к экземпляру виртуальной машины anthro-vm . Выберите SSH и SSH в виртуальной машине.
- Получите root-доступ, набрав
sudo -i
- Проверьте путь подключения к us-east5-aiplatform.googleapis.com с помощью команды
ping
. Это выполнит проверку IP-адреса в частном DNS, записи для googleapis. Этот IP-адрес является конечной точкой PSC, и ваши пинги будут безуспешными.
ping -c 2 us-east5-aiplatform.googleapis.com
- Проверьте путь подключения с помощью
ping
используя автоматически созданную запись DNS для API Google PSC с помощьюaiplatform-pscanthrovertex.p.googleapis.com
. Это указывает на IP-адрес конечной точки PSC, и ваши пинги будут безуспешными.
ping -c 2 aiplatform-pscanthrovertex.p.googleapis.com
- Проверьте путь подключения к us-east5-aiplatform.googleapis.com с помощью команды
dig
. Это должен быть IP-адрес конечной точки PSC.
dig us-east5-aiplatform.googleapis.com
- Вернитесь в консоль и откройте другой экземпляр VM Instance anthro-vm . Выберите SSH и SSH в виртуальной машине.
- Получите root-доступ, набрав
sudo -i
- Запустите следующую команду, чтобы увидеть подключение в дампе TCP.
sudo tcpdump -i any port 53 -n or host us-east5-aiplatform.googleapis.com
- Теперь вернитесь к первому экземпляру SSH экземпляра виртуальной машины anthro-vm.
- Активируйте окружение, используя
cd py-gem-env
source env/bin/activate
- Теперь давайте протестируем Python. Введите
ipython
, чтобы активировать интерфейс ipython .
ipython
- Теперь скопируйте и вставьте следующее. Это спрашивает Клода: « Что такое роти? ». ps Замените
YOUR-Project-ID-Here
на имя вашего идентификатора проекта.
from anthropic import AnthropicVertex
project_id = "YOUR-Project-ID-Here"
region = "us-east5"
client = AnthropicVertex(project_id=project_id, region=region)
message = client.messages.create(
model="claude-3-5-sonnet@20240620",
max_tokens=100,
messages=[
{
"role": "user",
"content": "What is a roti?",
}
],
)
print(message)
- Нажмите Enter, чтобы запустить и увидеть результат.
- Вернитесь ко второму экземпляру экземпляра виртуальной машины anthro-vm. Вы должны увидеть результат TCPDUMP. Вы заметите, что IP-адрес виртуальной машины использует IP-адрес конечной точки PSC для подключения к us-east5-aiplatform.googleapis.com.
Закройте все сеансы SSH с экземпляром виртуальной машины anthro-vm
11. Поздравления
Поздравляем, вы успешно подключились к Anthropic на Vertex, используя как общедоступный адрес API, так и конфиденциально, используя конечную точку подключения частной службы для Googleapis. Эта функция может расширить возможности подключения частного 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 --quiet
gcloud compute forwarding-rules delete pscanthrovertex --global
gcloud dns record-sets delete googleapis.com. --zone googleapis-private --type A
gcloud dns record-sets delete *.googleapis.com --zone googleapis-private --type CNAME
gcloud dns managed-zones delete googleapis-private
gcloud compute addresses delete anthro-ip --global
gcloud compute networks subnets delete vm-subnet --region=us-east1 --quiet
gcloud compute networks delete anthropic-net --quiet
Вы можете узнать больше о сетях Vertex AI.
О практической работе
1. Обзор
Доступ к Vertex AI API можно получить через Интернет , однако на вашем предприятии вы можете захотеть получить доступ к Vertex AI API в частном порядке, не выходя через Интернет. В ходе этой лабораторной работы вы сначала получите доступ к Anthropic Claude на Vertex через SDK Python, работающий на экземпляре виртуальной машины через общедоступный Интернет.
Затем вы создадите конечную точку Private Service Connect для Googleapis и измените поток трафика, чтобы использовать частную конечную точку для подключения к Vertex API.
В этой лабораторной работе вы создадите следующий узор.
Рисунок 1.
2. Цели
В ходе этой лабораторной работы вы научитесь выполнять следующую задачу:
- Настройте экземпляр виртуальной машины для использования Python SDK
- Подключитесь к чату Anthropic Claude с помощью скрипта Python
- Настройте конечную точку PSC для подключения к Googleapis
- Настройка записей DNS вручную
- Проверьте путь подключения к Googleais
Установка лаборатории
Самостоятельная настройка среды
- Войдите в 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. Задача 1. Среда настройки
Мы создадим собственный 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 в ваш 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
- Добавьте правило брандмауэра SSH в ваш VPC
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
4. Задача 2. Включить Anthropic в саду моделей Vertex
Нам нужно предоставить исходящий внешний доступ к Интернету, поэтому давайте создадим шлюз Cloud NAT и подключим его.
- Перейдите в Vertex AI и выберите Model Garden.
- Найдите Anthropic и выберите Claude 3.5 Sonnet.
- Выберите «Включить» , вам потребуется ввести некоторую информацию. Заполните форму и выберите Далее
- На последней странице выберите «Согласен» , чтобы включить Claude 3.5 Sonnet.
5. Задача 3. Создайте шлюз NAT и виртуальные машины.
Нам нужно предоставить исходящий внешний доступ к Интернету, поэтому давайте создадим шлюз Cloud NAT и подключим его.
В Cloud Shell используйте следующие команды
- Создайте облачный 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.
Мы собираемся создать виртуальную машину для тестирования со следующими установленными пакетами.
- В том же сеансе облачной оболочки создайте 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-cloud-aiplatform 'anthropic[vertex]'"
Вы должны увидеть виртуальную машину, созданную без общедоступных IP-адресов. Теперь давайте настроим виртуальную машину
6. Задача 4. Настроить ВМ и протестировать
- Перейдите к экземплярам виртуальных машин. Выберите виртуальную машину, начинающуюся с anthro-vm . Выберите SSH.
- Как только вы подключитесь к anthro-vm по SSH, включите root, набрав
sudo -i
- Активируйте среду venv:
cd py-anthro-env
source env/bin/activate
- Теперь давайте аутентифицируем это, чтобы позже провести некоторое тестирование. Запустите следующую команду на виртуальной машине и нажмите y при появлении запроса.
gcloud auth application-default login
- Затем скопируйте URL-адрес, который начинается с https://, откройте новую вкладку в окне браузера лаборатории и вставьте URL-адрес. Примите подсказки.
- Когда вы увидите следующую копию выбора, вернитесь к сеансу vm anthro-vm и для ввода кода авторизации: вставьте скопированный код и нажмите Enter для аутентификации.
- Теперь давайте проведем быстрый тест, чтобы узнать, сможем ли мы подключиться к API Vertex Gemini. Он использует us-east5-aiplatform.googleapis.com , поэтому мы выполним
dig
по этому адресу, чтобы увидеть, как маршрутизируется трафик.
dig us-east5-aiplatform.googleapis.com
- Вы должны увидеть нечто похожее (адрес будет отличаться). Обратите внимание, что путь проходит через общедоступные IP-адреса, поскольку API является общедоступным API.
; <<>> DiG 9.16.48-Debian <<>> us-east5-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-east5-aiplatform.googleapis.com. IN A
;; ANSWER SECTION:
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.210.95
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.211.95
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.212.95
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.213.95
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.215.95
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.216.95
us-east5-aiplatform.googleapis.com. 300 IN A 108.177.12.95
us-east5-aiplatform.googleapis.com. 300 IN A 108.177.13.95
us-east5-aiplatform.googleapis.com. 300 IN A 74.125.26.95
- Теперь давайте использовать Python. Введите
ipython
, чтобы активировать интерфейс ipython .
ipython
- Теперь скопируйте и вставьте следующее. При этом Клод спрашивает: « Где пройдут Олимпийские игры в 2024 году! ». ps Замените
YOUR-Project-ID-Here
на имя вашего идентификатора проекта.
from anthropic import AnthropicVertex
project_id = "YOUR-Project-ID-Here"
region = "us-east5"
client = AnthropicVertex(project_id=project_id, region=region)
message = client.messages.create(
model="claude-3-5-sonnet@20240620",
max_tokens=100,
messages=[
{
"role": "user",
"content": "Where is the olympics being held in 2024!",
}
],
)
print(message)
- Нажмите Enter, чтобы запустить и увидеть результат.
- Этот запрос обращался к Anthropic через общедоступный API Vertex.
- Закройте сеанс SSH , продолжим.
7. Задача 5. Создайте конечную точку PSC для googleapis
Чтобы обеспечить частное подключение к нашей конечной точке API Vertex, мы создадим конечную точку Private Service Connect для googleapis. Это позволит нам использовать частный IP-адрес, который мы назначаем для маршрутизации трафика на нужный нам 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. Задача 6. Проверка подключения конечной точки через зону автоматического каталога служб.
Давайте подключимся к Gemini, используя частную конечную точку.
- Перейдите к экземпляру виртуальной машины anthro-vm1 . Выберите SSH и SSH в виртуальной машине.
- Получите root-доступ, набрав
sudo -i
- Проверьте путь подключения к aiplatform-pscanthrovertex.p.googleapis.com с помощью команды
dig
. Вы должны увидеть IP-адрес конечной точки PSC.
dig aiplatform-pscanthrovertex.p.googleapis.com
9. Задача 7. Создайте вручную DNS-запись в googleapis (необязательно)
Вы можете создать запись DNS вручную, чтобы указать на конечную точку PSC, используя частный DNS. Это повлияет на все сети, которые вы ему назначите.
- Перейдите к Сетевым службам и выберите Cloud DNS.
- В зонах вы должны увидеть автоматически созданную зону для Private Service Connect для API Google с каталогом службы типа зоны. Это можно использовать для подключения к конечной точке PSC в формате ** SERVICE-ENDPOINT. p.googleapis.com Пример
aiplatform-pscvertexgemini.p.googleapis.com
- В этом случае мы хотим вручную создать частную запись DNS. Перейдите в Cloud DNS и выберите «Создать зону».
- Настройте следующим образом
Конфигурация | Имя |
Тип зоны | Частный |
Название зоны | googleapis-частный |
DNS-имя | googleapis.com |
Добавить сети (выберите «Готово» при добавлении) | антропная сеть |
Для завершения выберите | Создавать |
- В области «Сведения о зоне» выберите «Добавить стандарт» , чтобы добавить запись A.
Конфигурация | Имя |
Тип записи ресурса | А |
IPv4-адрес (добавьте IP-адрес конечной точки) | 192.168.255.230 |
Для завершения выберите | Создавать |
- В области сведений о зоне выберите Добавить стандарт , чтобы добавить запись CNAME.
Конфигурация | Имя |
DNS-имя | * |
Тип ресурса записи | CNAME |
Каноническое имя 1 | googleapis.com |
Для завершения выберите | Создавать |
- Вы должны увидеть настройку с записью A и CNAME, как показано ниже.
- Далее проверяем связность с этими изменениями на anthro-vm.
10. Задача 8. Проверка подключения конечной точки через IP-адрес (необязательно)
Давайте подключимся к Gemini, используя частную конечную точку.
- Перейдите к экземпляру виртуальной машины anthro-vm . Выберите SSH и SSH в виртуальной машине.
- Получите root-доступ, набрав
sudo -i
- Проверьте путь подключения к us-east5-aiplatform.googleapis.com с помощью команды
ping
. Это выполнит проверку IP-адреса в частном DNS, записи для googleapis. Этот IP-адрес является конечной точкой PSC, и ваши пинги будут безуспешными.
ping -c 2 us-east5-aiplatform.googleapis.com
- Проверьте путь подключения с помощью
ping
используя автоматически созданную запись DNS для API Google PSC с помощьюaiplatform-pscanthrovertex.p.googleapis.com
. Это указывает на IP-адрес конечной точки PSC, и ваши пинги будут безуспешными.
ping -c 2 aiplatform-pscanthrovertex.p.googleapis.com
- Проверьте путь подключения к us-east5-aiplatform.googleapis.com с помощью команды
dig
. Это должен быть IP-адрес конечной точки PSC.
dig us-east5-aiplatform.googleapis.com
- Вернитесь в консоль и откройте другой экземпляр VM Instance anthro-vm . Выберите SSH и SSH в виртуальной машине.
- Получите root-доступ, набрав
sudo -i
- Запустите следующую команду, чтобы увидеть подключение в дампе TCP.
sudo tcpdump -i any port 53 -n or host us-east5-aiplatform.googleapis.com
- Теперь вернитесь к первому экземпляру SSH экземпляра виртуальной машины anthro-vm.
- Активируйте окружение, используя
cd py-gem-env
source env/bin/activate
- Теперь давайте протестируем Python. Введите
ipython
, чтобы активировать интерфейс ipython .
ipython
- Теперь скопируйте и вставьте следующее. Это спрашивает Клода: « Что такое роти? ». ps Замените
YOUR-Project-ID-Here
на имя вашего идентификатора проекта.
from anthropic import AnthropicVertex
project_id = "YOUR-Project-ID-Here"
region = "us-east5"
client = AnthropicVertex(project_id=project_id, region=region)
message = client.messages.create(
model="claude-3-5-sonnet@20240620",
max_tokens=100,
messages=[
{
"role": "user",
"content": "What is a roti?",
}
],
)
print(message)
- Нажмите Enter, чтобы запустить и увидеть результат.
- Вернитесь ко второму экземпляру экземпляра виртуальной машины anthro-vm. Вы должны увидеть результат TCPDUMP. Вы заметите, что IP-адрес виртуальной машины использует IP-адрес конечной точки PSC для подключения к us-east5-aiplatform.googleapis.com.
Закройте все сеансы SSH с экземпляром виртуальной машины anthro-vm
11. Поздравления
Поздравляем, вы успешно подключились к Anthropic на Vertex, используя как общедоступный адрес API, так и конфиденциально, используя конечную точку подключения частной службы для Googleapis. Эта функция может расширить возможности подключения частного 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 --quiet
gcloud compute forwarding-rules delete pscanthrovertex --global
gcloud dns record-sets delete googleapis.com. --zone googleapis-private --type A
gcloud dns record-sets delete *.googleapis.com --zone googleapis-private --type CNAME
gcloud dns managed-zones delete googleapis-private
gcloud compute addresses delete anthro-ip --global
gcloud compute networks subnets delete vm-subnet --region=us-east1 --quiet
gcloud compute networks delete anthropic-net --quiet
Вы можете узнать больше о сетях Vertex AI.
О практической работе
1. Обзор
Доступ к Vertex AI API можно получить через Интернет , однако на вашем предприятии вы можете захотеть получить доступ к Vertex AI API в частном порядке, не выходя через Интернет. В ходе этой лабораторной работы вы сначала получите доступ к Anthropic Claude на Vertex через SDK Python, работающий на экземпляре виртуальной машины через общедоступный Интернет.
Затем вы создадите конечную точку Private Service Connect для Googleapis и измените поток трафика, чтобы использовать частную конечную точку для подключения к Vertex API.
В этой лабораторной работе вы создадите следующий узор.
Рисунок 1.
2. Цели
В ходе этой лабораторной работы вы научитесь выполнять следующую задачу:
- Настройте экземпляр виртуальной машины для использования Python SDK
- Подключитесь к чату Anthropic Claude с помощью скрипта Python
- Настройте конечную точку PSC для подключения к Googleapis
- Настройка записей DNS вручную
- Проверьте путь подключения к Googleais
Установка лаборатории
Самостоятельная настройка среды
- Войдите в 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. Задача 1. Среда настройки
Мы создадим собственный 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 в ваш 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
- Добавьте правило брандмауэра SSH в ваш VPC
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
4. Задача 2. Включить Anthropic в саду моделей Vertex
Нам нужно предоставить исходящий внешний доступ к Интернету, поэтому давайте создадим шлюз Cloud NAT и подключим его.
- Перейдите в Vertex AI и выберите Model Garden.
- Найдите Anthropic и выберите Claude 3.5 Sonnet.
- Выберите «Включить» , вам потребуется ввести некоторую информацию. Заполните форму и выберите Далее
- На последней странице выберите «Согласен» , чтобы включить Claude 3.5 Sonnet.
5. Задача 3. Создайте шлюз NAT и виртуальные машины.
Нам нужно предоставить исходящий внешний доступ к Интернету, поэтому давайте создадим шлюз Cloud NAT и подключим его.
В Cloud Shell используйте следующие команды
- Создайте облачный 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.
Мы собираемся создать виртуальную машину для тестирования со следующими установленными пакетами.
- В том же сеансе облачной оболочки создайте 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-cloud-aiplatform 'anthropic[vertex]'"
Вы должны увидеть виртуальную машину, созданную без общедоступных IP-адресов. Теперь давайте настроим виртуальную машину
6. Задача 4. Настроить ВМ и протестировать
- Перейдите к экземплярам виртуальных машин. Выберите виртуальную машину, начинающуюся с anthro-vm . Выберите SSH.
- Как только вы подключитесь к anthro-vm по SSH, включите root, набрав
sudo -i
- Активируйте среду venv:
cd py-anthro-env
source env/bin/activate
- Теперь давайте аутентифицируем это, чтобы позже провести некоторое тестирование. Запустите следующую команду на виртуальной машине и нажмите y при появлении запроса.
gcloud auth application-default login
- Затем скопируйте URL-адрес, который начинается с https://, откройте новую вкладку в окне браузера лаборатории и вставьте URL-адрес. Примите подсказки.
- Когда вы увидите следующую копию выбора, вернитесь к сеансу vm anthro-vm и для ввода кода авторизации: вставьте скопированный код и нажмите Enter для аутентификации.
- Теперь давайте проведем быстрый тест, чтобы узнать, сможем ли мы подключиться к API Vertex Gemini. Он использует us-east5-aiplatform.googleapis.com , поэтому мы выполним
dig
по этому адресу, чтобы увидеть, как маршрутизируется трафик.
dig us-east5-aiplatform.googleapis.com
- Вы должны увидеть нечто похожее (адрес будет отличаться). Обратите внимание, что путь проходит через общедоступные IP-адреса, поскольку API является общедоступным API.
; <<>> DiG 9.16.48-Debian <<>> us-east5-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-east5-aiplatform.googleapis.com. IN A
;; ANSWER SECTION:
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.210.95
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.211.95
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.212.95
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.213.95
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.215.95
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.216.95
us-east5-aiplatform.googleapis.com. 300 IN A 108.177.12.95
us-east5-aiplatform.googleapis.com. 300 IN A 108.177.13.95
us-east5-aiplatform.googleapis.com. 300 IN A 74.125.26.95
- Теперь давайте использовать Python. Введите
ipython
, чтобы активировать интерфейс ipython .
ipython
- Теперь скопируйте и вставьте следующее. При этом Клод спрашивает: « Где пройдут Олимпийские игры в 2024 году! ». ps Замените
YOUR-Project-ID-Here
на имя вашего идентификатора проекта.
from anthropic import AnthropicVertex
project_id = "YOUR-Project-ID-Here"
region = "us-east5"
client = AnthropicVertex(project_id=project_id, region=region)
message = client.messages.create(
model="claude-3-5-sonnet@20240620",
max_tokens=100,
messages=[
{
"role": "user",
"content": "Where is the olympics being held in 2024!",
}
],
)
print(message)
- Нажмите Enter, чтобы запустить и увидеть результат.
- Этот запрос обращался к Anthropic через общедоступный API Vertex.
- Закройте сеанс SSH , продолжим.
7. Задача 5. Создайте конечную точку PSC для googleapis
Чтобы обеспечить частное подключение к нашей конечной точке API Vertex, мы создадим конечную точку Private Service Connect для googleapis. Это позволит нам использовать частный IP-адрес, который мы назначаем для маршрутизации трафика на нужный нам 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. Задача 6. Проверка подключения конечной точки через зону автоматического каталога служб.
Давайте подключимся к Gemini, используя частную конечную точку.
- Перейдите к экземпляру виртуальной машины anthro-vm1 . Выберите SSH и SSH в виртуальной машине.
- Получите root-доступ, набрав
sudo -i
- Проверьте путь подключения к aiplatform-pscanthrovertex.p.googleapis.com с помощью команды
dig
. Вы должны увидеть IP-адрес конечной точки PSC.
dig aiplatform-pscanthrovertex.p.googleapis.com
9. Задача 7. Создайте вручную DNS-запись в googleapis (необязательно)
Вы можете создать запись DNS вручную, чтобы указать на конечную точку PSC, используя частный DNS. Это повлияет на все сети, которые вы ему назначите.
- Перейдите к Сетевым службам и выберите Cloud DNS.
- В зонах вы должны увидеть автоматически созданную зону для Private Service Connect для API Google с каталогом службы типа зоны. Это можно использовать для подключения к конечной точке PSC в формате ** SERVICE-ENDPOINT. p.googleapis.com Пример
aiplatform-pscvertexgemini.p.googleapis.com
- В этом случае мы хотим вручную создать частную запись DNS. Перейдите в Cloud DNS и выберите «Создать зону».
- Настройте следующим образом
Конфигурация | Имя |
Тип зоны | Частный |
Название зоны | googleapis-частный |
DNS-имя | googleapis.com |
Добавить сети (выберите «Готово» при добавлении) | антропная сеть |
Для завершения выберите | Создавать |
- В области «Сведения о зоне» выберите «Добавить стандарт» , чтобы добавить запись A.
Конфигурация | Имя |
Тип записи ресурса | А |
IPv4-адрес (добавьте IP-адрес конечной точки) | 192.168.255.230 |
Для завершения выберите | Создавать |
- В области сведений о зоне выберите Добавить стандарт , чтобы добавить запись CNAME.
Конфигурация | Имя |
DNS-имя | * |
Тип ресурса записи | CNAME |
Каноническое имя 1 | googleapis.com |
Для завершения выберите | Создавать |
- Вы должны увидеть настройку с записью A и CNAME, как показано ниже.
- Далее проверяем связность с этими изменениями на anthro-vm.
10. Задача 8. Проверка подключения конечной точки через IP-адрес (необязательно)
Давайте подключимся к Gemini, используя частную конечную точку.
- Перейдите к экземпляру виртуальной машины anthro-vm . Выберите SSH и SSH в виртуальной машине.
- Получите root-доступ, набрав
sudo -i
- Проверьте путь подключения к us-east5-aiplatform.googleapis.com с помощью команды
ping
. Это выполнит проверку IP-адреса в частном DNS, записи для googleapis. Этот IP-адрес является конечной точкой PSC, и ваши пинги будут безуспешными.
ping -c 2 us-east5-aiplatform.googleapis.com
- Проверьте путь подключения с помощью
ping
используя автоматически созданную запись DNS для API Google PSC с помощьюaiplatform-pscanthrovertex.p.googleapis.com
. Это указывает на IP-адрес конечной точки PSC, и ваши пинги будут безуспешными.
ping -c 2 aiplatform-pscanthrovertex.p.googleapis.com
- Проверьте путь подключения к us-east5-aiplatform.googleapis.com с помощью команды
dig
. Это должен быть IP-адрес конечной точки PSC.
dig us-east5-aiplatform.googleapis.com
- Вернитесь в консоль и откройте другой экземпляр VM Instance anthro-vm . Выберите SSH и SSH в виртуальной машине.
- Получите root-доступ, набрав
sudo -i
- Запустите следующую команду, чтобы увидеть подключение в дампе TCP.
sudo tcpdump -i any port 53 -n or host us-east5-aiplatform.googleapis.com
- Теперь вернитесь к первому экземпляру SSH экземпляра виртуальной машины anthro-vm.
- Активируйте окружение, используя
cd py-gem-env
source env/bin/activate
- Теперь давайте протестируем Python. Введите
ipython
, чтобы активировать интерфейс ipython .
ipython
- Теперь скопируйте и вставьте следующее. Это спрашивает Клода: « Что такое роти? ». ps Замените
YOUR-Project-ID-Here
на имя вашего идентификатора проекта.
from anthropic import AnthropicVertex
project_id = "YOUR-Project-ID-Here"
region = "us-east5"
client = AnthropicVertex(project_id=project_id, region=region)
message = client.messages.create(
model="claude-3-5-sonnet@20240620",
max_tokens=100,
messages=[
{
"role": "user",
"content": "What is a roti?",
}
],
)
print(message)
- Нажмите Enter, чтобы запустить и увидеть результат.
- Вернитесь ко второму экземпляру экземпляра виртуальной машины anthro-vm. Вы должны увидеть результат TCPDUMP. Вы заметите, что IP-адрес виртуальной машины использует IP-адрес конечной точки PSC для подключения к us-east5-aiplatform.googleapis.com.
Закройте все сеансы SSH с экземпляром виртуальной машины anthro-vm
11. Поздравления
Поздравляем, вы успешно подключились к Anthropic на Vertex, используя как общедоступный адрес API, так и конфиденциально, используя конечную точку подключения частной службы для Googleapis. Эта функция может расширить возможности подключения частного 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 --quiet
gcloud compute forwarding-rules delete pscanthrovertex --global
gcloud dns record-sets delete googleapis.com. --zone googleapis-private --type A
gcloud dns record-sets delete *.googleapis.com --zone googleapis-private --type CNAME
gcloud dns managed-zones delete googleapis-private
gcloud compute addresses delete anthro-ip --global
gcloud compute networks subnets delete vm-subnet --region=us-east1 --quiet
gcloud compute networks delete anthropic-net --quiet
Вы можете узнать больше о сетях Vertex AI.
О практической работе
1. Обзор
Доступ к Vertex AI API можно получить через Интернет , однако на вашем предприятии вы можете захотеть получить доступ к Vertex AI API в частном порядке, не выходя через Интернет. В ходе этой лабораторной работы вы сначала получите доступ к Anthropic Claude на Vertex через SDK Python, работающий на экземпляре виртуальной машины через общедоступный Интернет.
Затем вы создадите конечную точку Private Service Connect для Googleapis и измените поток трафика, чтобы использовать частную конечную точку для подключения к Vertex API.
В этой лабораторной работе вы создадите следующий узор.
Рисунок 1.
2. Цели
В ходе этой лабораторной работы вы научитесь выполнять следующую задачу:
- Настройте экземпляр виртуальной машины для использования Python SDK
- Подключитесь к чату Anthropic Claude с помощью скрипта Python
- Настройте конечную точку PSC для подключения к Googleapis
- Настройка записей DNS вручную
- Проверьте путь подключения к Googleais
Установка лаборатории
Самостоятельная настройка среды
- Войдите в 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. Задача 1. Среда настройки
Мы создадим собственный 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 в ваш 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
- Добавьте правило брандмауэра SSH в ваш VPC
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
4. Задача 2. Включить Anthropic в саду моделей Vertex
Нам нужно предоставить исходящий внешний доступ к Интернету, поэтому давайте создадим шлюз Cloud NAT и подключим его.
- Перейдите в Vertex AI и выберите Model Garden.
- Найдите Anthropic и выберите Claude 3.5 Sonnet.
- Выберите «Включить» , вам потребуется ввести некоторую информацию. Заполните форму и выберите Далее
- На последней странице выберите «Согласен» , чтобы включить Claude 3.5 Sonnet.
5. Задача 3. Создайте шлюз NAT и виртуальные машины.
Нам нужно предоставить исходящий внешний доступ к Интернету, поэтому давайте создадим шлюз Cloud NAT и подключим его.
В Cloud Shell используйте следующие команды
- Создайте облачный 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.
Мы собираемся создать виртуальную машину для тестирования со следующими установленными пакетами.
- В том же сеансе облачной оболочки создайте 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-cloud-aiplatform 'anthropic[vertex]'"
Вы должны увидеть виртуальную машину, созданную без общедоступных IP-адресов. Теперь давайте настроим виртуальную машину
6. Задача 4. Настроить ВМ и протестировать
- Перейдите к экземплярам виртуальных машин. Выберите виртуальную машину, начинающуюся с anthro-vm . Выберите SSH.
- Как только вы подключитесь к anthro-vm по SSH, включите root, набрав
sudo -i
- Активируйте среду venv:
cd py-anthro-env
source env/bin/activate
- Теперь давайте аутентифицируем это, чтобы позже провести некоторое тестирование. Запустите следующую команду на виртуальной машине и нажмите y при появлении запроса.
gcloud auth application-default login
- Затем скопируйте URL-адрес, который начинается с https://, откройте новую вкладку в окне браузера лаборатории и вставьте URL-адрес. Примите подсказки.
- Когда вы увидите следующую копию выбора, вернитесь к сеансу vm anthro-vm и для ввода кода авторизации: вставьте скопированный код и нажмите Enter для аутентификации.
- Теперь давайте проведем быстрый тест, чтобы узнать, сможем ли мы подключиться к API Vertex Gemini. Он использует us-east5-aiplatform.googleapis.com , поэтому мы выполним
dig
по этому адресу, чтобы увидеть, как маршрутизируется трафик.
dig us-east5-aiplatform.googleapis.com
- Вы должны увидеть нечто похожее (адрес будет отличаться). Обратите внимание, что путь проходит через общедоступные IP-адреса, поскольку API является общедоступным API.
; <<>> DiG 9.16.48-Debian <<>> us-east5-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-east5-aiplatform.googleapis.com. IN A
;; ANSWER SECTION:
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.210.95
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.211.95
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.212.95
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.213.95
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.215.95
us-east5-aiplatform.googleapis.com. 300 IN A 173.194.216.95
us-east5-aiplatform.googleapis.com. 300 IN A 108.177.12.95
us-east5-aiplatform.googleapis.com. 300 IN A 108.177.13.95
us-east5-aiplatform.googleapis.com. 300 IN A 74.125.26.95
- Теперь давайте использовать Python. Введите
ipython
, чтобы активировать интерфейс ipython .
ipython
- Теперь скопируйте и вставьте следующее. При этом Клод спрашивает: « Где пройдут Олимпийские игры в 2024 году! ». ps Замените
YOUR-Project-ID-Here
на имя вашего идентификатора проекта.
from anthropic import AnthropicVertex
project_id = "YOUR-Project-ID-Here"
region = "us-east5"
client = AnthropicVertex(project_id=project_id, region=region)
message = client.messages.create(
model="claude-3-5-sonnet@20240620",
max_tokens=100,
messages=[
{
"role": "user",
"content": "Where is the olympics being held in 2024!",
}
],
)
print(message)
- Нажмите Enter, чтобы запустить и увидеть результат.
- Этот запрос обращался к Anthropic через общедоступный API Vertex.
- Закройте сеанс SSH , продолжим.
7. Задача 5. Создайте конечную точку PSC для googleapis
Чтобы обеспечить частное подключение к нашей конечной точке API Vertex, мы создадим конечную точку Private Service Connect для googleapis. Это позволит нам использовать частный IP-адрес, который мы назначаем для маршрутизации трафика на нужный нам 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. Задача 6. Проверка подключения конечной точки через зону автоматического каталога служб.
Давайте подключимся к Gemini, используя частную конечную точку.
- Перейдите к экземпляру виртуальной машины anthro-vm1 . Выберите SSH и SSH в виртуальной машине.
- Получите root-доступ, набрав
sudo -i
- Проверьте путь подключения к aiplatform-pscanthrovertex.p.googleapis.com с помощью команды
dig
. Вы должны увидеть IP-адрес конечной точки PSC.
dig aiplatform-pscanthrovertex.p.googleapis.com
9. Задача 7. Создайте вручную DNS-запись в googleapis (необязательно)
Вы можете создать запись DNS вручную, чтобы указать на конечную точку PSC, используя частный DNS. Это повлияет на все сети, которые вы ему назначите.
- Перейдите к Сетевым службам и выберите Cloud DNS.
- В зонах вы должны увидеть автоматически созданную зону для Private Service Connect для API Google с каталогом службы типа зоны. Это можно использовать для подключения к конечной точке PSC в формате ** SERVICE-ENDPOINT. p.googleapis.com Пример
aiplatform-pscvertexgemini.p.googleapis.com
- В этом случае мы хотим вручную создать частную запись DNS. Перейдите в Cloud DNS и выберите «Создать зону».
- Настройте следующим образом
Конфигурация | Имя |
Тип зоны | Частный |
Название зоны | googleapis-частный |
DNS-имя | googleapis.com |
Добавить сети (выберите «Готово» при добавлении) | антропная сеть |
Для завершения выберите | Создавать |
- В области «Сведения о зоне» выберите «Добавить стандарт» , чтобы добавить запись A.
Конфигурация | Имя |
Тип записи ресурса | А |
IPv4-адрес (добавьте IP-адрес конечной точки) | 192.168.255.230 |
Для завершения выберите | Создавать |
- В области сведений о зоне выберите Добавить стандарт , чтобы добавить запись CNAME.
Конфигурация | Имя |
DNS-имя | * |
Тип ресурса записи | CNAME |
Каноническое имя 1 | googleapis.com |
Для завершения выберите | Создавать |
- Вы должны увидеть настройку с записью A и CNAME, как показано ниже.
- Далее проверяем связность с этими изменениями на anthro-vm.
10. Задача 8. Проверка подключения конечной точки через IP-адрес (необязательно)
Давайте подключимся к Gemini, используя частную конечную точку.
- Перейдите к экземпляру виртуальной машины anthro-vm . Выберите SSH и SSH в виртуальной машине.
- Получите root-доступ, набрав
sudo -i
- Проверьте путь подключения к us-east5-aiplatform.googleapis.com с помощью команды
ping
. Это выполнит проверку IP-адреса в частном DNS, записи для googleapis. Этот IP-адрес является конечной точкой PSC, и ваши пинги будут безуспешными.
ping -c 2 us-east5-aiplatform.googleapis.com
- Проверьте путь подключения с помощью
ping
используя автоматически созданную запись DNS для API Google PSC с помощьюaiplatform-pscanthrovertex.p.googleapis.com
. Это указывает на IP-адрес конечной точки PSC, и ваши пинги будут безуспешными.
ping -c 2 aiplatform-pscanthrovertex.p.googleapis.com
- Проверьте путь подключения к us-east5-aiplatform.googleapis.com с помощью команды
dig
. Это должен быть IP-адрес конечной точки PSC.
dig us-east5-aiplatform.googleapis.com
- Вернитесь в консоль и откройте другой экземпляр VM Instance anthro-vm . Выберите SSH и SSH в виртуальной машине.
- Получите root-доступ, набрав
sudo -i
- Запустите следующую команду, чтобы увидеть подключение в дампе TCP.
sudo tcpdump -i any port 53 -n or host us-east5-aiplatform.googleapis.com
- Теперь вернитесь к первому экземпляру SSH экземпляра виртуальной машины anthro-vm.
- Активируйте окружение, используя
cd py-gem-env
source env/bin/activate
- Теперь давайте протестируем Python. Введите
ipython
, чтобы активировать интерфейс ipython .
ipython
- Теперь скопируйте и вставьте следующее. Это спрашивает Клода: « Что такое роти? ». ps Замените
YOUR-Project-ID-Here
на имя вашего идентификатора проекта.
from anthropic import AnthropicVertex
project_id = "YOUR-Project-ID-Here"
region = "us-east5"
client = AnthropicVertex(project_id=project_id, region=region)
message = client.messages.create(
model="claude-3-5-sonnet@20240620",
max_tokens=100,
messages=[
{
"role": "user",
"content": "What is a roti?",
}
],
)
print(message)
- Нажмите Enter, чтобы запустить и увидеть результат.
- Вернитесь ко второму экземпляру экземпляра виртуальной машины anthro-vm. Вы должны увидеть результат TCPDUMP. Вы заметите, что IP-адрес виртуальной машины использует IP-адрес конечной точки PSC для подключения к us-east5-aiplatform.googleapis.com.
Закройте все сеансы SSH с экземпляром виртуальной машины anthro-vm
11. Поздравления
Поздравляем, вы успешно подключились к Anthropic на Vertex, используя как общедоступный адрес API, так и конфиденциально, используя конечную точку подключения частной службы для Googleapis. Эта функция может расширить возможности подключения частного 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 --quiet
gcloud compute forwarding-rules delete pscanthrovertex --global
gcloud dns record-sets delete googleapis.com. --zone googleapis-private --type A
gcloud dns record-sets delete *.googleapis.com --zone googleapis-private --type CNAME
gcloud dns managed-zones delete googleapis-private
gcloud compute addresses delete anthro-ip --global
gcloud compute networks subnets delete vm-subnet --region=us-east1 --quiet
gcloud compute networks delete anthropic-net --quiet
Вы можете узнать больше о сетях Vertex AI.