دسترسی Anthropic Claude در Vertex AI با python sdk از طریق Private Service Connect endpoint

1. بررسی اجمالی

Vertex AI API از طریق اینترنت قابل دسترسی است، با این حال، در شرکت خود ممکن است بخواهید به طور خصوصی و بدون مراجعه به اینترنت به Vertex AI API دسترسی داشته باشید. در این آزمایشگاه ابتدا از طریق python sdk در حال اجرا بر روی نمونه VM از طریق اینترنت عمومی به Anthropic Claude در Vertex دسترسی خواهید داشت.

سپس یک نقطه پایانی Private Service Connect به Googleapis ایجاد می‌کنید و جریان ترافیک را برای استفاده از نقطه پایانی خصوصی برای اتصال به Vertex API تغییر می‌دهید.

در این آزمایشگاه، شما قصد دارید الگوی زیر را ایجاد کنید.

شکل 1.

103967918b096e97.png

2. اهداف

در این آزمایشگاه شما یاد خواهید گرفت که چگونه وظایف زیر را انجام دهید:

  • نمونه VM را برای استفاده از python sdk تنظیم کنید
  • از طریق اسکریپت پایتون به چت Anthropic Claude متصل شوید
  • نقطه پایانی PSC را برای اتصال به Googleapis پیکربندی کنید
  • ورودی های DNS دستی را پیکربندی کنید
  • مسیر اتصال به Googleais را تأیید کنید

راه اندازی آزمایشگاه

تنظیم محیط خود به خود

  1. به Google Cloud Console وارد شوید و یک پروژه جدید ایجاد کنید یا از یک موجود استفاده مجدد کنید. اگر قبلاً یک حساب Gmail یا Google Workspace ندارید، باید یک حساب ایجاد کنید .

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • نام پروژه نام نمایشی برای شرکت کنندگان این پروژه است. این یک رشته کاراکتری است که توسط API های Google استفاده نمی شود. همیشه می توانید آن را به روز کنید.
  • شناسه پروژه در تمام پروژه‌های Google Cloud منحصربه‌فرد است و تغییرناپذیر است (پس از تنظیم نمی‌توان آن را تغییر داد). Cloud Console به طور خودکار یک رشته منحصر به فرد تولید می کند. معمولاً برای شما مهم نیست که چیست. در اکثر کدها، باید شناسه پروژه خود را ارجاع دهید (معمولاً با نام PROJECT_ID شناخته می شود). اگر شناسه تولید شده را دوست ندارید، ممکن است یک شناسه تصادفی دیگر ایجاد کنید. از طرف دیگر، می‌توانید خودتان را امتحان کنید، و ببینید آیا در دسترس است یا خیر. پس از این مرحله نمی توان آن را تغییر داد و در طول مدت پروژه باقی می ماند.
  • برای اطلاع شما، یک مقدار سوم وجود دارد، یک شماره پروژه ، که برخی از API ها از آن استفاده می کنند. در مورد هر سه این مقادیر در مستندات بیشتر بیاموزید.
  1. در مرحله بعد، برای استفاده از منابع Cloud/APIها باید صورتحساب را در کنسول Cloud فعال کنید . اجرا کردن از طریق این کد لبه هزینه زیادی نخواهد داشت. برای خاموش کردن منابع برای جلوگیری از تحمیل صورت‌حساب فراتر از این آموزش، می‌توانید منابعی را که ایجاد کرده‌اید حذف کنید یا پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری هستند.

Cloud Shell را راه اندازی کنید

در حالی که Google Cloud را می توان از راه دور از لپ تاپ شما کار کرد، در این کد لبه از Google Cloud Shell استفاده خواهید کرد، یک محیط خط فرمان که در Cloud اجرا می شود.

از Google Cloud Console ، روی نماد Cloud Shell در نوار ابزار بالا سمت راست کلیک کنید:

55efc1aaa7a4d3ad.png

تهیه و اتصال به محیط فقط چند لحظه طول می کشد. وقتی تمام شد، باید چیزی شبیه به این را ببینید:

7ffe5cbb04455448.png

این ماشین مجازی با تمام ابزارهای توسعه که شما نیاز دارید بارگذاری شده است. این یک فهرست اصلی 5 گیگابایتی دائمی را ارائه می دهد و در Google Cloud اجرا می شود و عملکرد و احراز هویت شبکه را تا حد زیادی افزایش می دهد. تمام کارهای شما در این کد لبه را می توان در یک مرورگر انجام داد. شما نیازی به نصب چیزی ندارید.

3. وظیفه 1. تنظیم محیط

ما یک VPC سفارشی با قوانین فایروال ایجاد خواهیم کرد. اگر قبلاً VPC و پروژه دارید، می‌توانید از این بخش صرفنظر کنید.

Cloud Shell را که در بالای کنسول خود در سمت راست قرار دارد باز کنید. و به صورت زیر پیکربندی کنید: 4261e776f64ea978.png

  1. برخی از api هایی که در این آزمایشگاه استفاده خواهیم کرد را فعال کنید
gcloud services enable dns.googleapis.com
gcloud services enable aiplatform.googleapis.com
gcloud services enable servicedirectory.googleapis.com
  1. چند متغیر تنظیم کنید این متغیرها Project ID و Network ID 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-subnet را در 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 را به 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
  1. قانون فایروال 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 فعال کنید

ما باید به اینترنت دسترسی خارجی اعطا کنیم، بنابراین اجازه می دهیم یک دروازه NAT Cloud ایجاد کنیم و آن را وصل کنیم.

  1. به Vertex AI بروید و Model Garden را انتخاب کنید
  2. Anthropic را جستجو کنید و Claude 3.5 Sonnet را انتخاب کنید

4fd4338c598983d8.png

  1. فعال کردن را انتخاب کنید، از شما خواسته می شود اطلاعاتی را پر کنید. فرم را پر کنید و Next را انتخاب کنید
  2. در صفحه آخر، Agree را انتخاب کنید تا Claude 3.5 Sonnet فعال شود b3961312feb6c383.png

5. وظیفه 3. ایجاد دروازه NAT و ماشین های مجازی

ما باید به اینترنت دسترسی خارجی اعطا کنیم، بنابراین اجازه می دهیم یک دروازه NAT Cloud ایجاد کنیم و آن را وصل کنیم.

در Cloud Shell از دستورات زیر استفاده کنید

  1. Cloud NAT را ایجاد کنید.
gcloud compute routers create anthro-out-nat \
    --network $networkid \
    --region us-east1 
  1. دروازه NAT Cloud را ایجاد کنید.
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 در Vertex AI از طریق Python SDK ایجاد کنیم.

ما قصد داریم یک vm برای آزمایش با بسته های زیر نصب شده ایجاد کنیم

  1. در همان جلسه پوسته ابری، 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]'"

شما باید یک VM را ببینید که بدون آدرس IP عمومی ایجاد شده است. حال بیایید VM را پیکربندی کنیم

6. وظیفه 4. پیکربندی VM و تست

  1. به نمونه های VM بروید. vm را که با anthro-vm شروع می شود انتخاب کنید. SSH را انتخاب کنید.
  2. هنگامی که SSH را وارد anthro-vm کردید، با تایپ sudo -i root را فعال کنید
  3. محیط venv خود را فعال کنید:
cd py-anthro-env
source env/bin/activate
  1. حالا بیایید این را تأیید کنیم تا بعداً آزمایش کنیم. دستور زیر را در ماشین مجازی اجرا کنید، وقتی از شما خواسته شد y را فشار دهید.
gcloud auth application-default login
  1. سپس url را که در ابتدا با https:// ظاهر می‌شود کپی کنید، یک تب جدید در پنجره مرورگر آزمایشگاه خود باز کنید و url را جای‌گذاری کنید. درخواست ها را بپذیرید.
  2. هنگامی که گزینه کپی زیر را مشاهده کردید، به جلسه vm anthro-vm برگردید و کد مجوز را وارد کنید: کدی را که کپی کرده‌اید جای‌گذاری کنید و برای احراز هویت اینتر را فشار دهید.

c29615cdf9324209.png

  1. حالا بیایید یک آزمایش سریع انجام دهیم تا ببینیم آیا می‌توانیم به Vertex Gemini API متصل شویم، این از us-east5-aiplatform.googleapis.com استفاده می‌کند، بنابراین ما به آن آدرس dig تا ببینیم مسیرهای ترافیک چگونه است.
dig us-east5-aiplatform.googleapis.com
  1. شما باید چیزی مشابه ببینید (آدرس متفاوت خواهد بود). توجه داشته باشید که مسیر از طریق آدرس های 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
  1. حالا بیایید از پایتون استفاده کنیم. ipython تایپ کنید تا رابط ipython فعال شود.
ipython

4685b31f13df54e1.png

  1. حالا موارد زیر را کپی و پیست کنید. این از کلود می پرسد: " المپیک 2024 کجا برگزار می شود! " ps نام ID پروژه خود را جایگزین 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)
  1. دکمه enter را بزنید تا اجرا شود و نتیجه را ببینید.
  2. این درخواست از طریق API عمومی Vertex به Anthropic دسترسی پیدا کرد.
  3. جلسه SSH را ببندید بیایید ادامه دهیم.

7. وظیفه 5. نقطه پایانی PSC را برای googleapis ایجاد کنید

برای فعال کردن اتصال خصوصی به نقطه پایانی Vertex API ما یک نقطه پایانی Private Service Connect برای googleapis ایجاد خواهیم کرد. این به ما این امکان را می دهد که از یک آدرس IP خصوصی که اختصاص داده ایم برای هدایت ترافیک به googleapis مورد نیاز خود استفاده کنیم، در این مورد 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. وظیفه 6. بررسی اتصال نقطه پایانی از طریق منطقه فهرست راهنمای خدمات خودکار

بیایید با استفاده از نقطه پایانی خصوصی برای اتصال به جمینی وصل شویم.

  1. به VM Instance anthro-vm1 بروید. SSH و SSH را در VM انتخاب کنید
  2. با تایپ sudo -i به root دسترسی پیدا کنید
  3. مسیر اتصال به aiplatform-pscanthrovertex.p.googleapis.com را با استفاده از دستور dig بررسی کنید. شما باید IP نقطه پایانی PSC را ببینید
dig aiplatform-pscanthrovertex.p.googleapis.com

9. وظیفه 7. ایجاد ورودی دستی DNS به googleapis (اختیاری)

شما می توانید یک ورودی DNS دستی برای اشاره به نقطه پایانی PSC با استفاده از DNS خصوصی ایجاد کنید. این بر تمام شبکه هایی که به آن اختصاص می دهید تأثیر می گذارد.

  1. به Network services بروید و Cloud DNS را انتخاب کنید.
  2. در مناطق باید یک منطقه به طور خودکار ایجاد شده برای Private Service Connect for Google APIs، با فهرست خدمات نوع منطقه را ببینید. این می تواند برای اتصال به نقطه پایانی PSC با فرمت ** SERVICE-ENDPOINT استفاده شود. p.googleapis.com مثال aiplatform-pscvertexgemini.p.googleapis.com
  3. در این مورد می خواهیم به صورت دستی یک ورودی DNS خصوصی ایجاد کنیم. به Cloud DNS رفته و Create Zone را انتخاب کنید
  4. به صورت زیر پیکربندی کنید

پیکربندی

نام

نوع منطقه

خصوصی

نام منطقه

googleapis-private

نام DNS

googleapis.com

افزودن شبکه‌ها (انتخاب در صورت اضافه شدن انجام شد)

آنتروپیک شبکه

برای تکمیل انتخاب کنید

ایجاد کنید

  1. در قسمت Zone details گزینه Add standard را برای افزودن یک رکورد A انتخاب کنید

پیکربندی

نام

نوع رکورد منبع

الف

آدرس IPv4 (افزودن آدرس IP نقطه پایانی)

192.168.255.230

برای تکمیل انتخاب کنید

ایجاد کنید

  1. در ناحیه جزئیات منطقه ، افزودن استاندارد را انتخاب کنید تا یک رکورد CNAME اضافه شود

پیکربندی

نام

نام DNS

*

نوع منبع را ثبت کنید

CNAME

نام متعارف 1

googleapis.com

برای تکمیل انتخاب کنید

ایجاد کنید

  1. شما باید تنظیماتی را با یک رکورد A و CNAME مانند این ببینید b7f122f0d1fd2850.png
  2. سپس اتصال را با این تغییرات در anthro-vm تأیید می کنیم

10. وظیفه 8. بررسی اتصال نقطه پایانی از طریق آدرس IP (اختیاری)

بیایید با استفاده از نقطه پایانی خصوصی برای اتصال به جمینی وصل شویم.

  1. به VM Instance anthro-vm بروید. SSH و SSH را در VM انتخاب کنید
  2. با تایپ sudo -i به root دسترسی پیدا کنید
  3. مسیر اتصال به us-east5-aiplatform.googleapis.com را با استفاده از دستور ping بررسی کنید. با این کار آدرس IP در DNS خصوصی، رکوردی برای googleapis پینگ می شود. این IP یک نقطه پایانی PSC است و پینگ های شما ناموفق خواهد بود.
ping -c 2 us-east5-aiplatform.googleapis.com
  1. مسیر اتصال را با یک ping با استفاده از ورودی DNS ایجاد شده به طور خودکار برای PSC Google API با aiplatform-pscanthrovertex.p.googleapis.com بررسی کنید. این به آدرس IP نقطه پایانی PSC اشاره می کند و پینگ شما ناموفق خواهد بود.
ping -c 2 aiplatform-pscanthrovertex.p.googleapis.com
  1. مسیر اتصال به us-east5-aiplatform.googleapis.com را با استفاده از دستور dig بررسی کنید. این باید آدرس IP نقطه پایانی PSC باشد.
dig us-east5-aiplatform.googleapis.com
  1. به کنسول برگردید و نمونه دیگری از VM Instance anthro-vm را باز کنید. SSH و SSH را در VM انتخاب کنید
  2. با تایپ sudo -i به root دسترسی پیدا کنید
  3. برای مشاهده اتصال در یک TCP dump دستور follow را اجرا کنید
sudo tcpdump -i any port 53 -n or host us-east5-aiplatform.googleapis.com
  1. اکنون به اولین نمونه SSH از VM Instance anthro-vm برگردید
  2. env را با استفاده از آن فعال کنید
cd py-gem-env
source env/bin/activate
  1. حالا بیایید پایتون را آزمایش کنیم. ipython تایپ کنید تا رابط ipython فعال شود.
ipython
  1. حالا موارد زیر را کپی و پیست کنید. این از کلود می پرسد " روتی چیست؟ ". ps نام ID پروژه خود را جایگزین 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)
  1. دکمه enter را بزنید تا اجرا شود و نتیجه را ببینید.
  2. به دومین نمونه VM Instance anthro-vm برگردید. شما باید نتیجه TCPDUMP را ببینید. متوجه ورود و خروج خواهید شد و آدرس IP ماشین مجازی از آدرس IP نقطه پایانی PSC برای اتصال به us-east5-aiplatform.googleapis.com استفاده می کند.

تمام جلسات SSH را به VM Instance anthro-vm ببندید

11. تبریک می گویم

تبریک می‌گوییم، شما با موفقیت به Anthropic در Vertex با استفاده از آدرس API عمومی و خصوصی با استفاده از Private Service Connect Endpoint برای Googleapis متصل شدید. این قابلیت می تواند اتصال API خصوصی را به محیط ابری on-prem/دیگر فضای ابری شما که از طریق (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 بیشتر بخوانید

،

1. بررسی اجمالی

Vertex AI API از طریق اینترنت قابل دسترسی است، با این حال، در شرکت خود ممکن است بخواهید به طور خصوصی و بدون مراجعه به اینترنت به Vertex AI API دسترسی داشته باشید. در این آزمایشگاه ابتدا از طریق python sdk در حال اجرا بر روی نمونه VM از طریق اینترنت عمومی به Anthropic Claude در Vertex دسترسی خواهید داشت.

سپس یک نقطه پایانی Private Service Connect به Googleapis ایجاد می‌کنید و جریان ترافیک را برای استفاده از نقطه پایانی خصوصی برای اتصال به Vertex API تغییر می‌دهید.

در این آزمایشگاه، شما قصد دارید الگوی زیر را ایجاد کنید.

شکل 1.

103967918b096e97.png

2. اهداف

در این آزمایشگاه شما یاد خواهید گرفت که چگونه وظایف زیر را انجام دهید:

  • نمونه VM را برای استفاده از python sdk تنظیم کنید
  • از طریق اسکریپت پایتون به چت Anthropic Claude متصل شوید
  • نقطه پایانی PSC را برای اتصال به Googleapis پیکربندی کنید
  • ورودی های DNS دستی را پیکربندی کنید
  • مسیر اتصال به Googleais را تأیید کنید

راه اندازی آزمایشگاه

تنظیم محیط خود به خود

  1. به Google Cloud Console وارد شوید و یک پروژه جدید ایجاد کنید یا از یک موجود استفاده مجدد کنید. اگر قبلاً یک حساب Gmail یا Google Workspace ندارید، باید یک حساب ایجاد کنید .

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • نام پروژه نام نمایشی برای شرکت کنندگان این پروژه است. این یک رشته کاراکتری است که توسط API های Google استفاده نمی شود. همیشه می توانید آن را به روز کنید.
  • شناسه پروژه در تمام پروژه‌های Google Cloud منحصربه‌فرد است و تغییرناپذیر است (پس از تنظیم نمی‌توان آن را تغییر داد). Cloud Console به طور خودکار یک رشته منحصر به فرد تولید می کند. معمولاً برای شما مهم نیست که چیست. در اکثر کدها، باید شناسه پروژه خود را ارجاع دهید (معمولاً با نام PROJECT_ID شناخته می شود). اگر شناسه تولید شده را دوست ندارید، ممکن است یک شناسه تصادفی دیگر ایجاد کنید. از طرف دیگر، می‌توانید خودتان را امتحان کنید، و ببینید آیا در دسترس است یا خیر. پس از این مرحله نمی توان آن را تغییر داد و در طول مدت پروژه باقی می ماند.
  • برای اطلاع شما، یک مقدار سوم وجود دارد، یک شماره پروژه ، که برخی از API ها از آن استفاده می کنند. در مورد هر سه این مقادیر در مستندات بیشتر بیاموزید.
  1. در مرحله بعد، برای استفاده از منابع Cloud/APIها باید صورتحساب را در کنسول Cloud فعال کنید . اجرا کردن از طریق این کد لبه هزینه زیادی نخواهد داشت. برای خاموش کردن منابع برای جلوگیری از تحمیل صورت‌حساب فراتر از این آموزش، می‌توانید منابعی را که ایجاد کرده‌اید حذف کنید یا پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری هستند.

Cloud Shell را راه اندازی کنید

در حالی که Google Cloud را می توان از راه دور از لپ تاپ شما کار کرد، در این کد لبه از Google Cloud Shell استفاده خواهید کرد، یک محیط خط فرمان که در Cloud اجرا می شود.

از Google Cloud Console ، روی نماد Cloud Shell در نوار ابزار بالا سمت راست کلیک کنید:

55efc1aaa7a4d3ad.png

تهیه و اتصال به محیط فقط چند لحظه طول می کشد. وقتی تمام شد، باید چیزی شبیه به این را ببینید:

7ffe5cbb04455448.png

این ماشین مجازی با تمام ابزارهای توسعه که شما نیاز دارید بارگذاری شده است. این یک فهرست اصلی 5 گیگابایتی دائمی را ارائه می دهد و در Google Cloud اجرا می شود و عملکرد و احراز هویت شبکه را تا حد زیادی افزایش می دهد. تمام کارهای شما در این کد لبه را می توان در یک مرورگر انجام داد. شما نیازی به نصب چیزی ندارید.

3. وظیفه 1. تنظیم محیط

ما یک VPC سفارشی با قوانین فایروال ایجاد خواهیم کرد. اگر قبلاً VPC و پروژه دارید، می‌توانید از این بخش صرفنظر کنید.

Cloud Shell را که در بالای کنسول خود در سمت راست قرار دارد باز کنید. و به صورت زیر پیکربندی کنید: 4261e776f64ea978.png

  1. برخی از api هایی که در این آزمایشگاه استفاده خواهیم کرد را فعال کنید
gcloud services enable dns.googleapis.com
gcloud services enable aiplatform.googleapis.com
gcloud services enable servicedirectory.googleapis.com
  1. چند متغیر تنظیم کنید این متغیرها Project ID و Network ID 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-subnet را در 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 را به 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
  1. قانون فایروال 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 فعال کنید

ما باید به اینترنت دسترسی خارجی اعطا کنیم، بنابراین اجازه می دهیم یک دروازه NAT Cloud ایجاد کنیم و آن را وصل کنیم.

  1. به Vertex AI بروید و Model Garden را انتخاب کنید
  2. Anthropic را جستجو کنید و Claude 3.5 Sonnet را انتخاب کنید

4fd4338c598983d8.png

  1. فعال کردن را انتخاب کنید، از شما خواسته می شود اطلاعاتی را پر کنید. فرم را پر کنید و Next را انتخاب کنید
  2. در صفحه آخر، Agree را انتخاب کنید تا Claude 3.5 Sonnet فعال شود b3961312feb6c383.png

5. وظیفه 3. ایجاد دروازه NAT و ماشین های مجازی

ما باید به اینترنت دسترسی خارجی اعطا کنیم، بنابراین اجازه می دهیم یک دروازه NAT Cloud ایجاد کنیم و آن را وصل کنیم.

در Cloud Shell از دستورات زیر استفاده کنید

  1. Cloud NAT را ایجاد کنید.
gcloud compute routers create anthro-out-nat \
    --network $networkid \
    --region us-east1 
  1. دروازه NAT Cloud را ایجاد کنید.
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 در Vertex AI از طریق Python SDK ایجاد کنیم.

ما قصد داریم یک vm برای آزمایش با بسته های زیر نصب شده ایجاد کنیم

  1. در همان جلسه پوسته ابری، 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]'"

شما باید یک VM را ببینید که بدون آدرس IP عمومی ایجاد شده است. حال بیایید VM را پیکربندی کنیم

6. وظیفه 4. پیکربندی VM و تست

  1. به نمونه های VM بروید. vm را که با anthro-vm شروع می شود انتخاب کنید. SSH را انتخاب کنید.
  2. هنگامی که SSH را وارد anthro-vm کردید، با تایپ sudo -i root را فعال کنید
  3. محیط venv خود را فعال کنید:
cd py-anthro-env
source env/bin/activate
  1. حالا بیایید این را تأیید کنیم تا بعداً آزمایش کنیم. دستور زیر را در ماشین مجازی اجرا کنید، وقتی از شما خواسته شد y را فشار دهید.
gcloud auth application-default login
  1. سپس url را که در ابتدا با https:// ظاهر می‌شود کپی کنید، یک تب جدید در پنجره مرورگر آزمایشگاه خود باز کنید و url را جای‌گذاری کنید. درخواست ها را بپذیرید.
  2. هنگامی که گزینه کپی زیر را مشاهده کردید، به جلسه vm anthro-vm برگردید و کد مجوز را وارد کنید: کدی را که کپی کرده‌اید جای‌گذاری کنید و برای احراز هویت اینتر را فشار دهید.

c29615cdf9324209.png

  1. حالا بیایید یک آزمایش سریع انجام دهیم تا ببینیم آیا می‌توانیم به Vertex Gemini API متصل شویم، این از us-east5-aiplatform.googleapis.com استفاده می‌کند، بنابراین ما به آن آدرس dig تا ببینیم مسیرهای ترافیک چگونه است.
dig us-east5-aiplatform.googleapis.com
  1. شما باید چیزی مشابه ببینید (آدرس متفاوت خواهد بود). توجه داشته باشید که مسیر از طریق آدرس های 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
  1. حالا بیایید از پایتون استفاده کنیم. ipython تایپ کنید تا رابط ipython فعال شود.
ipython

4685b31f13df54e1.png

  1. حالا موارد زیر را کپی و پیست کنید. این از کلود می پرسد: " المپیک 2024 کجا برگزار می شود! " ps نام ID پروژه خود را جایگزین 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)
  1. دکمه enter را بزنید تا اجرا شود و نتیجه را ببینید.
  2. این درخواست از طریق API عمومی Vertex به Anthropic دسترسی پیدا کرد.
  3. جلسه SSH را ببندید بیایید ادامه دهیم.

7. وظیفه 5. نقطه پایانی PSC را برای googleapis ایجاد کنید

برای فعال کردن اتصال خصوصی به نقطه پایانی Vertex API ما یک نقطه پایانی Private Service Connect برای googleapis ایجاد خواهیم کرد. این به ما این امکان را می دهد که از یک آدرس IP خصوصی که اختصاص داده ایم برای هدایت ترافیک به googleapis مورد نیاز خود استفاده کنیم، در این مورد 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. وظیفه 6. بررسی اتصال نقطه پایانی از طریق منطقه فهرست راهنمای خدمات خودکار

بیایید با استفاده از نقطه پایانی خصوصی برای اتصال به جمینی وصل شویم.

  1. به VM Instance anthro-vm1 بروید. SSH و SSH را در VM انتخاب کنید
  2. با تایپ sudo -i به root دسترسی پیدا کنید
  3. مسیر اتصال به aiplatform-pscanthrovertex.p.googleapis.com را با استفاده از دستور dig بررسی کنید. شما باید IP نقطه پایانی PSC را ببینید
dig aiplatform-pscanthrovertex.p.googleapis.com

9. وظیفه 7. ایجاد ورودی دستی DNS به googleapis (اختیاری)

شما می توانید یک ورودی DNS دستی برای اشاره به نقطه پایانی PSC با استفاده از DNS خصوصی ایجاد کنید. این بر تمام شبکه هایی که به آن اختصاص می دهید تأثیر می گذارد.

  1. به Network services بروید و Cloud DNS را انتخاب کنید.
  2. در مناطق باید یک منطقه به طور خودکار ایجاد شده برای Private Service Connect for Google APIs، با فهرست خدمات نوع منطقه را ببینید. این می تواند برای اتصال به نقطه پایانی PSC با فرمت ** SERVICE-ENDPOINT استفاده شود. p.googleapis.com مثال aiplatform-pscvertexgemini.p.googleapis.com
  3. در این مورد می خواهیم به صورت دستی یک ورودی DNS خصوصی ایجاد کنیم. به Cloud DNS رفته و Create Zone را انتخاب کنید
  4. به صورت زیر پیکربندی کنید

پیکربندی

نام

نوع منطقه

خصوصی

نام منطقه

googleapis-private

نام DNS

googleapis.com

افزودن شبکه‌ها (انتخاب در صورت اضافه شدن انجام شد)

آنتروپیک شبکه

برای تکمیل انتخاب کنید

ایجاد کنید

  1. در قسمت Zone details گزینه Add standard را برای افزودن یک رکورد A انتخاب کنید

پیکربندی

نام

نوع رکورد منبع

الف

آدرس IPv4 (افزودن آدرس IP نقطه پایانی)

192.168.255.230

برای تکمیل انتخاب کنید

ایجاد کنید

  1. در ناحیه جزئیات منطقه ، افزودن استاندارد را انتخاب کنید تا یک رکورد CNAME اضافه شود

پیکربندی

نام

نام DNS

*

نوع منبع را ثبت کنید

CNAME

نام متعارف 1

googleapis.com

برای تکمیل انتخاب کنید

ایجاد کنید

  1. شما باید تنظیماتی را با یک رکورد A و CNAME مانند این ببینید b7f122f0d1fd2850.png
  2. سپس اتصال را با این تغییرات در anthro-vm تأیید می کنیم

10. وظیفه 8. بررسی اتصال نقطه پایانی از طریق آدرس IP (اختیاری)

بیایید با استفاده از نقطه پایانی خصوصی برای اتصال به جمینی وصل شویم.

  1. به VM Instance anthro-vm بروید. SSH و SSH را در VM انتخاب کنید
  2. با تایپ sudo -i به root دسترسی پیدا کنید
  3. مسیر اتصال به us-east5-aiplatform.googleapis.com را با استفاده از دستور ping بررسی کنید. با این کار آدرس IP در DNS خصوصی، رکوردی برای googleapis پینگ می شود. این IP یک نقطه پایانی PSC است و پینگ های شما ناموفق خواهد بود.
ping -c 2 us-east5-aiplatform.googleapis.com
  1. مسیر اتصال را با یک ping با استفاده از ورودی DNS ایجاد شده به طور خودکار برای PSC Google API با aiplatform-pscanthrovertex.p.googleapis.com بررسی کنید. این به آدرس IP نقطه پایانی PSC اشاره می کند و پینگ شما ناموفق خواهد بود.
ping -c 2 aiplatform-pscanthrovertex.p.googleapis.com
  1. مسیر اتصال به us-east5-aiplatform.googleapis.com را با استفاده از دستور dig بررسی کنید. این باید آدرس IP نقطه پایانی PSC باشد.
dig us-east5-aiplatform.googleapis.com
  1. به کنسول برگردید و نمونه دیگری از VM Instance anthro-vm را باز کنید. SSH و SSH را در VM انتخاب کنید
  2. با تایپ sudo -i به root دسترسی پیدا کنید
  3. برای مشاهده اتصال در یک TCP dump دستور follow را اجرا کنید
sudo tcpdump -i any port 53 -n or host us-east5-aiplatform.googleapis.com
  1. اکنون به اولین نمونه SSH از VM Instance anthro-vm برگردید
  2. env را با استفاده از آن فعال کنید
cd py-gem-env
source env/bin/activate
  1. حالا بیایید پایتون را آزمایش کنیم. ipython تایپ کنید تا رابط ipython فعال شود.
ipython
  1. حالا موارد زیر را کپی و پیست کنید. این از کلود می پرسد " روتی چیست؟ ". ps نام ID پروژه خود را جایگزین 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)
  1. دکمه enter را بزنید تا اجرا شود و نتیجه را ببینید.
  2. به دومین نمونه VM Instance anthro-vm برگردید. شما باید نتیجه TCPDUMP را ببینید. متوجه ورود و خروج خواهید شد و آدرس IP ماشین مجازی از آدرس IP نقطه پایانی PSC برای اتصال به us-east5-aiplatform.googleapis.com استفاده می کند.

تمام جلسات SSH را به VM Instance anthro-vm ببندید

11. تبریک می گویم

تبریک می‌گوییم، شما با موفقیت به Anthropic در Vertex با استفاده از آدرس API عمومی و خصوصی با استفاده از Private Service Connect Endpoint برای Googleapis متصل شدید. این قابلیت می تواند اتصال API خصوصی را به محیط ابری on-prem/دیگر فضای ابری شما که از طریق (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 بیشتر بخوانید

،

1. بررسی اجمالی

Vertex AI API از طریق اینترنت قابل دسترسی است، با این حال، در شرکت خود ممکن است بخواهید به طور خصوصی و بدون مراجعه به اینترنت به Vertex AI API دسترسی داشته باشید. در این آزمایشگاه ابتدا از طریق python sdk در حال اجرا بر روی نمونه VM از طریق اینترنت عمومی به Anthropic Claude در Vertex دسترسی خواهید داشت.

سپس یک نقطه پایانی Private Service Connect به Googleapis ایجاد می‌کنید و جریان ترافیک را برای استفاده از نقطه پایانی خصوصی برای اتصال به Vertex API تغییر می‌دهید.

در این آزمایشگاه، شما قصد دارید الگوی زیر را ایجاد کنید.

شکل 1.

103967918b096e97.png

2. اهداف

در این آزمایشگاه شما یاد خواهید گرفت که چگونه وظایف زیر را انجام دهید:

  • نمونه VM را برای استفاده از python sdk تنظیم کنید
  • از طریق اسکریپت پایتون به چت Anthropic Claude متصل شوید
  • نقطه پایانی PSC را برای اتصال به Googleapis پیکربندی کنید
  • ورودی های DNS دستی را پیکربندی کنید
  • مسیر اتصال به Googleais را تأیید کنید

راه اندازی آزمایشگاه

تنظیم محیط خود به خود

  1. به Google Cloud Console وارد شوید و یک پروژه جدید ایجاد کنید یا از یک موجود استفاده مجدد کنید. اگر قبلاً یک حساب Gmail یا Google Workspace ندارید، باید یک حساب ایجاد کنید .

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • نام پروژه نام نمایشی برای شرکت کنندگان این پروژه است. این یک رشته کاراکتری است که توسط API های Google استفاده نمی شود. همیشه می توانید آن را به روز کنید.
  • شناسه پروژه در تمام پروژه‌های Google Cloud منحصربه‌فرد است و تغییرناپذیر است (پس از تنظیم نمی‌توان آن را تغییر داد). Cloud Console به طور خودکار یک رشته منحصر به فرد تولید می کند. معمولاً برای شما مهم نیست که چیست. در اکثر کدها، باید شناسه پروژه خود را ارجاع دهید (معمولاً با نام PROJECT_ID شناخته می شود). اگر شناسه تولید شده را دوست ندارید، ممکن است یک شناسه تصادفی دیگر ایجاد کنید. از طرف دیگر، می‌توانید خودتان را امتحان کنید، و ببینید آیا در دسترس است یا خیر. پس از این مرحله نمی توان آن را تغییر داد و در طول مدت پروژه باقی می ماند.
  • برای اطلاع شما، یک مقدار سوم وجود دارد، یک شماره پروژه ، که برخی از API ها از آن استفاده می کنند. در مورد هر سه این مقادیر در مستندات بیشتر بیاموزید.
  1. در مرحله بعد، برای استفاده از منابع Cloud/APIها باید صورتحساب را در کنسول Cloud فعال کنید . اجرا کردن از طریق این کد لبه هزینه زیادی نخواهد داشت. برای خاموش کردن منابع برای جلوگیری از تحمیل صورت‌حساب فراتر از این آموزش، می‌توانید منابعی را که ایجاد کرده‌اید حذف کنید یا پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری هستند.

Cloud Shell را راه اندازی کنید

در حالی که Google Cloud را می توان از راه دور از لپ تاپ شما کار کرد، در این کد لبه از Google Cloud Shell استفاده خواهید کرد، یک محیط خط فرمان که در Cloud اجرا می شود.

از Google Cloud Console ، روی نماد Cloud Shell در نوار ابزار بالا سمت راست کلیک کنید:

55efc1aaa7a4d3ad.png

تهیه و اتصال به محیط فقط چند لحظه طول می کشد. وقتی تمام شد، باید چیزی شبیه به این را ببینید:

7ffe5cbb04455448.png

این ماشین مجازی با تمام ابزارهای توسعه که شما نیاز دارید بارگذاری شده است. این یک فهرست اصلی 5 گیگابایتی دائمی را ارائه می دهد و در Google Cloud اجرا می شود و عملکرد و احراز هویت شبکه را تا حد زیادی افزایش می دهد. تمام کارهای شما در این کد لبه را می توان در یک مرورگر انجام داد. شما نیازی به نصب چیزی ندارید.

3. وظیفه 1. تنظیم محیط

ما یک VPC سفارشی با قوانین فایروال ایجاد خواهیم کرد. اگر قبلاً VPC و پروژه دارید، می‌توانید از این بخش صرفنظر کنید.

Cloud Shell را که در بالای کنسول خود در سمت راست قرار دارد باز کنید. و به صورت زیر پیکربندی کنید: 4261e776f64ea978.png

  1. برخی از api هایی که در این آزمایشگاه استفاده خواهیم کرد را فعال کنید
gcloud services enable dns.googleapis.com
gcloud services enable aiplatform.googleapis.com
gcloud services enable servicedirectory.googleapis.com
  1. چند متغیر تنظیم کنید این متغیرها Project ID و Network ID 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-subnet را در 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 را به 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
  1. قانون فایروال 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 فعال کنید

ما باید به اینترنت دسترسی خارجی اعطا کنیم، بنابراین اجازه می دهیم یک دروازه NAT Cloud ایجاد کنیم و آن را وصل کنیم.

  1. به Vertex AI بروید و Model Garden را انتخاب کنید
  2. Anthropic را جستجو کنید و Claude 3.5 Sonnet را انتخاب کنید

4fd4338c598983d8.png

  1. فعال کردن را انتخاب کنید، از شما خواسته می شود اطلاعاتی را پر کنید. فرم را پر کنید و Next را انتخاب کنید
  2. در صفحه آخر، Agree را انتخاب کنید تا Claude 3.5 Sonnet فعال شود b3961312feb6c383.png

5. وظیفه 3. ایجاد دروازه NAT و ماشین های مجازی

ما باید به اینترنت دسترسی خارجی اعطا کنیم، بنابراین اجازه می دهیم یک دروازه NAT Cloud ایجاد کنیم و آن را وصل کنیم.

در Cloud Shell از دستورات زیر استفاده کنید

  1. Cloud NAT را ایجاد کنید.
gcloud compute routers create anthro-out-nat \
    --network $networkid \
    --region us-east1 
  1. دروازه NAT Cloud را ایجاد کنید.
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 در Vertex AI از طریق Python SDK ایجاد کنیم.

ما قصد داریم یک vm برای آزمایش با بسته های زیر نصب شده ایجاد کنیم

  1. در همان جلسه پوسته ابری، 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]'"

شما باید یک VM را ببینید که بدون آدرس IP عمومی ایجاد شده است. حال بیایید VM را پیکربندی کنیم

6. وظیفه 4. پیکربندی VM و تست

  1. به نمونه های VM بروید. vm را که با anthro-vm شروع می شود انتخاب کنید. SSH را انتخاب کنید.
  2. هنگامی که SSH را وارد anthro-vm کردید، با تایپ sudo -i root را فعال کنید
  3. محیط venv خود را فعال کنید:
cd py-anthro-env
source env/bin/activate
  1. حالا بیایید این را تأیید کنیم تا بعداً آزمایش کنیم. دستور زیر را در ماشین مجازی اجرا کنید، وقتی از شما خواسته شد y را فشار دهید.
gcloud auth application-default login
  1. سپس url را که در ابتدا با https:// ظاهر می‌شود کپی کنید، یک تب جدید در پنجره مرورگر آزمایشگاه خود باز کنید و url را جای‌گذاری کنید. درخواست ها را بپذیرید.
  2. هنگامی که گزینه کپی زیر را مشاهده کردید، به جلسه vm anthro-vm برگردید و کد مجوز را وارد کنید: کدی را که کپی کرده‌اید جای‌گذاری کنید و برای احراز هویت اینتر را فشار دهید.

c29615cdf9324209.png

  1. حالا بیایید یک آزمایش سریع انجام دهیم تا ببینیم آیا می‌توانیم به Vertex Gemini API متصل شویم، این از us-east5-aiplatform.googleapis.com استفاده می‌کند، بنابراین ما به آن آدرس dig تا ببینیم مسیرهای ترافیک چگونه است.
dig us-east5-aiplatform.googleapis.com
  1. شما باید چیزی مشابه ببینید (آدرس متفاوت خواهد بود). توجه داشته باشید که مسیر از طریق آدرس های 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
  1. حالا بیایید از پایتون استفاده کنیم. ipython تایپ کنید تا رابط ipython فعال شود.
ipython

4685b31f13df54e1.png

  1. حالا موارد زیر را کپی و پیست کنید. این از کلود می پرسد: " المپیک 2024 کجا برگزار می شود! " ps نام ID پروژه خود را جایگزین 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)
  1. دکمه enter را بزنید تا اجرا شود و نتیجه را ببینید.
  2. این درخواست از طریق API عمومی Vertex به Anthropic دسترسی پیدا کرد.
  3. جلسه SSH را ببندید بیایید ادامه دهیم.

7. وظیفه 5. نقطه پایانی PSC را برای googleapis ایجاد کنید

برای فعال کردن اتصال خصوصی به نقطه پایانی Vertex API ما یک نقطه پایانی Private Service Connect برای googleapis ایجاد خواهیم کرد. این به ما این امکان را می دهد که از یک آدرس IP خصوصی که اختصاص داده ایم برای هدایت ترافیک به googleapis مورد نیاز خود استفاده کنیم، در این مورد 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. وظیفه 6. بررسی اتصال نقطه پایانی از طریق منطقه فهرست راهنمای خدمات خودکار

بیایید با استفاده از نقطه پایانی خصوصی برای اتصال به جمینی وصل شویم.

  1. به VM Instance anthro-vm1 بروید. SSH و SSH را در VM انتخاب کنید
  2. با تایپ sudo -i به root دسترسی پیدا کنید
  3. مسیر اتصال به aiplatform-pscanthrovertex.p.googleapis.com را با استفاده از دستور dig بررسی کنید. شما باید IP نقطه پایانی PSC را ببینید
dig aiplatform-pscanthrovertex.p.googleapis.com

9. وظیفه 7. ایجاد ورودی دستی DNS به googleapis (اختیاری)

شما می توانید یک ورودی DNS دستی برای اشاره به نقطه پایانی PSC با استفاده از DNS خصوصی ایجاد کنید. این بر تمام شبکه هایی که به آن اختصاص می دهید تأثیر می گذارد.

  1. به Network services بروید و Cloud DNS را انتخاب کنید.
  2. در مناطق باید یک منطقه به طور خودکار ایجاد شده برای Private Service Connect for Google APIs، با فهرست خدمات نوع منطقه را ببینید. این می تواند برای اتصال به نقطه پایانی PSC با فرمت ** SERVICE-ENDPOINT استفاده شود. p.googleapis.com مثال aiplatform-pscvertexgemini.p.googleapis.com
  3. در این مورد می خواهیم به صورت دستی یک ورودی DNS خصوصی ایجاد کنیم. به Cloud DNS رفته و Create Zone را انتخاب کنید
  4. به صورت زیر پیکربندی کنید

پیکربندی

نام

نوع منطقه

خصوصی

نام منطقه

googleapis-private

نام DNS

googleapis.com

افزودن شبکه‌ها (انتخاب در صورت اضافه شدن انجام شد)

آنتروپیک شبکه

برای تکمیل انتخاب کنید

ایجاد کنید

  1. در قسمت Zone details گزینه Add standard را برای افزودن یک رکورد A انتخاب کنید

پیکربندی

نام

نوع رکورد منبع

الف

آدرس IPv4 (افزودن آدرس IP نقطه پایانی)

192.168.255.230

برای تکمیل انتخاب کنید

ایجاد کنید

  1. در ناحیه جزئیات منطقه ، افزودن استاندارد را انتخاب کنید تا یک رکورد CNAME اضافه شود

پیکربندی

نام

نام DNS

*

نوع منبع را ثبت کنید

CNAME

نام متعارف 1

googleapis.com

برای تکمیل انتخاب کنید

ایجاد کنید

  1. شما باید تنظیماتی را با یک رکورد A و CNAME مانند این ببینید b7f122f0d1fd2850.png
  2. سپس اتصال را با این تغییرات در anthro-vm تأیید می کنیم

10. وظیفه 8. بررسی اتصال نقطه پایانی از طریق آدرس IP (اختیاری)

بیایید با استفاده از نقطه پایانی خصوصی برای اتصال به جمینی وصل شویم.

  1. به VM Instance anthro-vm بروید. SSH و SSH را در VM انتخاب کنید
  2. با تایپ sudo -i به root دسترسی پیدا کنید
  3. مسیر اتصال به us-east5-aiplatform.googleapis.com را با استفاده از دستور ping بررسی کنید. با این کار آدرس IP در DNS خصوصی، رکوردی برای googleapis پینگ می شود. این IP یک نقطه پایانی PSC است و پینگ های شما ناموفق خواهد بود.
ping -c 2 us-east5-aiplatform.googleapis.com
  1. مسیر اتصال را با یک ping با استفاده از ورودی DNS ایجاد شده به طور خودکار برای PSC Google API با aiplatform-pscanthrovertex.p.googleapis.com بررسی کنید. این به آدرس IP نقطه پایانی PSC اشاره می کند و پینگ شما ناموفق خواهد بود.
ping -c 2 aiplatform-pscanthrovertex.p.googleapis.com
  1. مسیر اتصال به us-east5-aiplatform.googleapis.com را با استفاده از دستور dig بررسی کنید. این باید آدرس IP نقطه پایانی PSC باشد.
dig us-east5-aiplatform.googleapis.com
  1. به کنسول برگردید و نمونه دیگری از VM Instance anthro-vm را باز کنید. SSH و SSH را در VM انتخاب کنید
  2. با تایپ sudo -i به root دسترسی پیدا کنید
  3. برای مشاهده اتصال در یک TCP dump دستور follow را اجرا کنید
sudo tcpdump -i any port 53 -n or host us-east5-aiplatform.googleapis.com
  1. اکنون به اولین نمونه SSH از VM Instance anthro-vm برگردید
  2. env را با استفاده از آن فعال کنید
cd py-gem-env
source env/bin/activate
  1. حالا بیایید پایتون را آزمایش کنیم. ipython تایپ کنید تا رابط ipython فعال شود.
ipython
  1. حالا موارد زیر را کپی و پیست کنید. این از کلود می پرسد " روتی چیست؟ ". ps نام ID پروژه خود را جایگزین 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)
  1. دکمه enter را بزنید تا اجرا شود و نتیجه را ببینید.
  2. به دومین نمونه VM Instance anthro-vm برگردید. شما باید نتیجه TCPDUMP را ببینید. متوجه ورود و خروج خواهید شد و آدرس IP ماشین مجازی از آدرس IP نقطه پایانی PSC برای اتصال به us-east5-aiplatform.googleapis.com استفاده می کند.

تمام جلسات SSH را به VM Instance anthro-vm ببندید

11. تبریک می گویم

تبریک می‌گوییم، شما با موفقیت به Anthropic در Vertex با استفاده از آدرس API عمومی و خصوصی با استفاده از Private Service Connect Endpoint برای Googleapis متصل شدید. این قابلیت می تواند اتصال API خصوصی را به محیط ابری on-prem/دیگر فضای ابری شما که از طریق (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 بیشتر بخوانید

،

1. بررسی اجمالی

Vertex AI API از طریق اینترنت قابل دسترسی است، با این حال، در شرکت خود ممکن است بخواهید به طور خصوصی و بدون مراجعه به اینترنت به Vertex AI API دسترسی داشته باشید. در این آزمایشگاه ابتدا از طریق python sdk در حال اجرا بر روی نمونه VM از طریق اینترنت عمومی به Anthropic Claude در Vertex دسترسی خواهید داشت.

سپس یک نقطه پایانی Private Service Connect به Googleapis ایجاد می‌کنید و جریان ترافیک را برای استفاده از نقطه پایانی خصوصی برای اتصال به Vertex API تغییر می‌دهید.

در این آزمایشگاه، شما قصد دارید الگوی زیر را ایجاد کنید.

شکل 1.

103967918b096e97.png

2. اهداف

در این آزمایشگاه شما یاد خواهید گرفت که چگونه وظایف زیر را انجام دهید:

  • نمونه VM را برای استفاده از python sdk تنظیم کنید
  • از طریق اسکریپت پایتون به چت Anthropic Claude متصل شوید
  • نقطه پایانی PSC را برای اتصال به Googleapis پیکربندی کنید
  • ورودی های DNS دستی را پیکربندی کنید
  • مسیر اتصال به Googleais را تأیید کنید

راه اندازی آزمایشگاه

تنظیم محیط خود به خود

  1. به Google Cloud Console وارد شوید و یک پروژه جدید ایجاد کنید یا از یک موجود استفاده مجدد کنید. اگر قبلاً یک حساب Gmail یا Google Workspace ندارید، باید یک حساب ایجاد کنید .

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • نام پروژه نام نمایشی برای شرکت کنندگان این پروژه است. این یک رشته کاراکتری است که توسط API های Google استفاده نمی شود. همیشه می توانید آن را به روز کنید.
  • شناسه پروژه در تمام پروژه‌های Google Cloud منحصربه‌فرد است و تغییرناپذیر است (پس از تنظیم نمی‌توان آن را تغییر داد). Cloud Console به طور خودکار یک رشته منحصر به فرد تولید می کند. معمولاً برای شما مهم نیست که چیست. در اکثر کدها، باید شناسه پروژه خود را ارجاع دهید (معمولاً با نام PROJECT_ID شناخته می شود). اگر شناسه تولید شده را دوست ندارید، ممکن است یک شناسه تصادفی دیگر ایجاد کنید. از طرف دیگر، می‌توانید خودتان را امتحان کنید، و ببینید آیا در دسترس است یا خیر. پس از این مرحله نمی توان آن را تغییر داد و در طول مدت پروژه باقی می ماند.
  • برای اطلاع شما، یک مقدار سوم وجود دارد، یک شماره پروژه ، که برخی از API ها از آن استفاده می کنند. در مورد هر سه این مقادیر در مستندات بیشتر بیاموزید.
  1. در مرحله بعد، برای استفاده از منابع Cloud/APIها باید صورتحساب را در کنسول Cloud فعال کنید . اجرا کردن از طریق این کد لبه هزینه زیادی نخواهد داشت. برای خاموش کردن منابع برای جلوگیری از تحمیل صورت‌حساب فراتر از این آموزش، می‌توانید منابعی را که ایجاد کرده‌اید حذف کنید یا پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری هستند.

Cloud Shell را راه اندازی کنید

در حالی که Google Cloud را می توان از راه دور از لپ تاپ شما کار کرد، در این کد لبه از Google Cloud Shell استفاده خواهید کرد، یک محیط خط فرمان که در Cloud اجرا می شود.

از Google Cloud Console ، روی نماد Cloud Shell در نوار ابزار بالا سمت راست کلیک کنید:

55efc1aaa7a4d3ad.png

تهیه و اتصال به محیط فقط چند لحظه طول می کشد. وقتی تمام شد، باید چیزی شبیه به این را ببینید:

7ffe5cbb04455448.png

این ماشین مجازی با تمام ابزارهای توسعه که شما نیاز دارید بارگذاری شده است. این یک فهرست اصلی 5 گیگابایتی دائمی را ارائه می دهد و در Google Cloud اجرا می شود و عملکرد و احراز هویت شبکه را تا حد زیادی افزایش می دهد. تمام کارهای شما در این کد لبه را می توان در یک مرورگر انجام داد. شما نیازی به نصب چیزی ندارید.

3. وظیفه 1. تنظیم محیط

ما یک VPC سفارشی با قوانین فایروال ایجاد خواهیم کرد. اگر قبلاً VPC و پروژه دارید، می‌توانید از این بخش صرفنظر کنید.

Cloud Shell را که در بالای کنسول خود در سمت راست قرار دارد باز کنید. و به صورت زیر پیکربندی کنید: 4261e776f64ea978.png

  1. برخی از api هایی که در این آزمایشگاه استفاده خواهیم کرد را فعال کنید
gcloud services enable dns.googleapis.com
gcloud services enable aiplatform.googleapis.com
gcloud services enable servicedirectory.googleapis.com
  1. چند متغیر تنظیم کنید این متغیرها Project ID و Network ID 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-subnet را در 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 را به 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
  1. قانون فایروال 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 فعال کنید

ما باید به اینترنت دسترسی خارجی اعطا کنیم، بنابراین اجازه می دهیم یک دروازه NAT Cloud ایجاد کنیم و آن را وصل کنیم.

  1. به Vertex AI بروید و Model Garden را انتخاب کنید
  2. Anthropic را جستجو کنید و Claude 3.5 Sonnet را انتخاب کنید

4fd4338c598983d8.png

  1. فعال کردن را انتخاب کنید، از شما خواسته می شود اطلاعاتی را پر کنید. فرم را پر کنید و Next را انتخاب کنید
  2. در صفحه آخر، Agree را انتخاب کنید تا Claude 3.5 Sonnet فعال شود b3961312feb6c383.png

5. وظیفه 3. ایجاد دروازه NAT و ماشین های مجازی

ما باید به اینترنت دسترسی خارجی اعطا کنیم، بنابراین اجازه می دهیم یک دروازه NAT Cloud ایجاد کنیم و آن را وصل کنیم.

در Cloud Shell از دستورات زیر استفاده کنید

  1. Cloud NAT را ایجاد کنید.
gcloud compute routers create anthro-out-nat \
    --network $networkid \
    --region us-east1 
  1. دروازه NAT Cloud را ایجاد کنید.
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 در Vertex AI از طریق Python SDK ایجاد کنیم.

ما قصد داریم یک vm برای آزمایش با بسته های زیر نصب شده ایجاد کنیم

  1. در همان جلسه پوسته ابری، 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]'"

شما باید یک VM را ببینید که بدون آدرس IP عمومی ایجاد شده است. حال بیایید VM را پیکربندی کنیم

6. وظیفه 4. پیکربندی VM و تست

  1. به نمونه های VM بروید. vm را که با anthro-vm شروع می شود انتخاب کنید. SSH را انتخاب کنید.
  2. هنگامی که SSH را وارد anthro-vm کردید، با تایپ sudo -i root را فعال کنید
  3. محیط venv خود را فعال کنید:
cd py-anthro-env
source env/bin/activate
  1. حالا بیایید این را تأیید کنیم تا بعداً آزمایش کنیم. دستور زیر را در ماشین مجازی اجرا کنید، وقتی از شما خواسته شد y را فشار دهید.
gcloud auth application-default login
  1. سپس url را که در ابتدا با https:// ظاهر می‌شود کپی کنید، یک تب جدید در پنجره مرورگر آزمایشگاه خود باز کنید و url را جای‌گذاری کنید. درخواست ها را بپذیرید.
  2. هنگامی که گزینه کپی زیر را مشاهده کردید، به جلسه vm anthro-vm برگردید و کد مجوز را وارد کنید: کدی را که کپی کرده‌اید جای‌گذاری کنید و برای احراز هویت اینتر را فشار دهید.

c29615cdf9324209.png

  1. حالا بیایید یک آزمایش سریع انجام دهیم تا ببینیم آیا می‌توانیم به Vertex Gemini API متصل شویم، این از us-east5-aiplatform.googleapis.com استفاده می‌کند، بنابراین ما به آن آدرس dig تا ببینیم مسیرهای ترافیک چگونه است.
dig us-east5-aiplatform.googleapis.com
  1. شما باید چیزی مشابه ببینید (آدرس متفاوت خواهد بود). توجه داشته باشید که مسیر از طریق آدرس های 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
  1. حالا بیایید از پایتون استفاده کنیم. ipython تایپ کنید تا رابط ipython فعال شود.
ipython

4685b31f13df54e1.png

  1. حالا موارد زیر را کپی و پیست کنید. این از کلود می پرسد: " المپیک 2024 کجا برگزار می شود! " ps نام ID پروژه خود را جایگزین 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)
  1. دکمه enter را بزنید تا اجرا شود و نتیجه را ببینید.
  2. این درخواست از طریق API عمومی Vertex به Anthropic دسترسی پیدا کرد.
  3. جلسه SSH را ببندید بیایید ادامه دهیم.

7. وظیفه 5. نقطه پایانی PSC را برای googleapis ایجاد کنید

برای فعال کردن اتصال خصوصی به نقطه پایانی Vertex API ما یک نقطه پایانی Private Service Connect برای googleapis ایجاد خواهیم کرد. این به ما این امکان را می دهد که از یک آدرس IP خصوصی که اختصاص داده ایم برای هدایت ترافیک به googleapis مورد نیاز خود استفاده کنیم، در این مورد 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. وظیفه 6. بررسی اتصال نقطه پایانی از طریق منطقه فهرست راهنمای خدمات خودکار

بیایید با استفاده از نقطه پایانی خصوصی برای اتصال به جمینی وصل شویم.

  1. به VM Instance anthro-vm1 بروید. SSH و SSH را در VM انتخاب کنید
  2. با تایپ sudo -i به root دسترسی پیدا کنید
  3. مسیر اتصال به aiplatform-pscanthrovertex.p.googleapis.com را با استفاده از دستور dig بررسی کنید. شما باید IP نقطه پایانی PSC را ببینید
dig aiplatform-pscanthrovertex.p.googleapis.com

9. وظیفه 7. ایجاد ورودی دستی DNS به googleapis (اختیاری)

شما می توانید یک ورودی DNS دستی برای اشاره به نقطه پایانی PSC با استفاده از DNS خصوصی ایجاد کنید. این بر تمام شبکه هایی که به آن اختصاص می دهید تأثیر می گذارد.

  1. به Network services بروید و Cloud DNS را انتخاب کنید.
  2. در مناطق باید یک منطقه به طور خودکار ایجاد شده برای Private Service Connect for Google APIs، با فهرست خدمات نوع منطقه را ببینید. این می تواند برای اتصال به نقطه پایانی PSC با فرمت ** SERVICE-ENDPOINT استفاده شود. p.googleapis.com مثال aiplatform-pscvertexgemini.p.googleapis.com
  3. در این مورد می خواهیم به صورت دستی یک ورودی DNS خصوصی ایجاد کنیم. به Cloud DNS رفته و Create Zone را انتخاب کنید
  4. به صورت زیر پیکربندی کنید

پیکربندی

نام

نوع منطقه

خصوصی

نام منطقه

googleapis-private

نام DNS

googleapis.com

افزودن شبکه‌ها (انتخاب در صورت اضافه شدن انجام شد)

آنتروپیک شبکه

برای تکمیل انتخاب کنید

ایجاد کنید

  1. در قسمت Zone details گزینه Add standard را برای افزودن یک رکورد A انتخاب کنید

پیکربندی

نام

نوع رکورد منبع

الف

آدرس IPv4 (افزودن آدرس IP نقطه پایانی)

192.168.255.230

برای تکمیل انتخاب کنید

ایجاد کنید

  1. در ناحیه جزئیات منطقه ، افزودن استاندارد را انتخاب کنید تا یک رکورد CNAME اضافه شود

پیکربندی

نام

نام DNS

*

نوع منبع را ثبت کنید

CNAME

نام متعارف 1

googleapis.com

برای تکمیل انتخاب کنید

ایجاد کنید

  1. شما باید تنظیماتی را با یک رکورد A و CNAME مانند این ببینید b7f122f0d1fd2850.png
  2. سپس اتصال را با این تغییرات در anthro-vm تأیید می کنیم

10. وظیفه 8. بررسی اتصال نقطه پایانی از طریق آدرس IP (اختیاری)

بیایید با استفاده از نقطه پایانی خصوصی برای اتصال به جمینی وصل شویم.

  1. به VM Instance anthro-vm بروید. SSH و SSH را در VM انتخاب کنید
  2. با تایپ sudo -i به root دسترسی پیدا کنید
  3. مسیر اتصال به us-east5-aiplatform.googleapis.com را با استفاده از دستور ping بررسی کنید. با این کار آدرس IP در DNS خصوصی، رکوردی برای googleapis پینگ می شود. این IP یک نقطه پایانی PSC است و پینگ های شما ناموفق خواهد بود.
ping -c 2 us-east5-aiplatform.googleapis.com
  1. مسیر اتصال را با یک ping با استفاده از ورودی DNS ایجاد شده به طور خودکار برای PSC Google API با aiplatform-pscanthrovertex.p.googleapis.com بررسی کنید. این به آدرس IP نقطه پایانی PSC اشاره می کند و پینگ شما ناموفق خواهد بود.
ping -c 2 aiplatform-pscanthrovertex.p.googleapis.com
  1. مسیر اتصال به us-east5-aiplatform.googleapis.com را با استفاده از دستور dig بررسی کنید. این باید آدرس IP نقطه پایانی PSC باشد.
dig us-east5-aiplatform.googleapis.com
  1. به کنسول برگردید و نمونه دیگری از VM Instance anthro-vm را باز کنید. SSH و SSH را در VM انتخاب کنید
  2. با تایپ sudo -i به root دسترسی پیدا کنید
  3. برای مشاهده اتصال در یک TCP dump دستور follow را اجرا کنید
sudo tcpdump -i any port 53 -n or host us-east5-aiplatform.googleapis.com
  1. اکنون به اولین نمونه SSH از VM Instance anthro-vm برگردید
  2. env را با استفاده از آن فعال کنید
cd py-gem-env
source env/bin/activate
  1. حالا بیایید پایتون را آزمایش کنیم. ipython تایپ کنید تا رابط ipython فعال شود.
ipython
  1. حالا موارد زیر را کپی و پیست کنید. این از کلود می پرسد " روتی چیست؟ ". ps نام ID پروژه خود را جایگزین 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)
  1. دکمه enter را بزنید تا اجرا شود و نتیجه را ببینید.
  2. به دومین نمونه VM Instance anthro-vm برگردید. شما باید نتیجه TCPDUMP را ببینید. متوجه ورود و خروج خواهید شد و آدرس IP ماشین مجازی از آدرس IP نقطه پایانی PSC برای اتصال به us-east5-aiplatform.googleapis.com استفاده می کند.

تمام جلسات SSH را به VM Instance anthro-vm ببندید

11. تبریک می گویم

تبریک می‌گوییم، شما با موفقیت به Anthropic در Vertex با استفاده از آدرس API عمومی و خصوصی با استفاده از Private Service Connect Endpoint برای Googleapis متصل شدید. این قابلیت می تواند اتصال API خصوصی را به محیط ابری on-prem/دیگر فضای ابری شما که از طریق (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 بیشتر بخوانید