1. بررسی اجمالی
Vertex AI API از طریق اینترنت قابل دسترسی است، با این حال، در شرکت خود ممکن است بخواهید به طور خصوصی و بدون مراجعه به اینترنت به Vertex AI API دسترسی داشته باشید. در این آزمایشگاه ابتدا از طریق python sdk در حال اجرا بر روی نمونه VM از طریق اینترنت عمومی به Vertex Gemini Chat API دسترسی خواهید داشت.
سپس یک نقطه پایانی Private Service Connect به APIهای Google ایجاد میکنید و جریان ترافیک را برای استفاده از نقطه پایانی خصوصی برای اتصال به API چت Gemini تغییر میدهید. تنظیمات ترکیبی از Terraform، gcloud و کنسول خواهد بود.
در این آزمایشگاه، شما قصد دارید الگوی زیر را ایجاد کنید.
شکل 1.
2. هدف
در این آزمایشگاه شما یاد خواهید گرفت که چگونه وظایف زیر را انجام دهید:
- نمونه VM را برای استفاده از python sdk تنظیم کنید
- از طریق اسکریپت پایتون به چت Gemini متصل شوید
- نقطه پایانی PSC را برای اتصال به Googleapis پیکربندی کنید
- مسیر اتصال به Googleais را تأیید کنید
- ورودی های DNS دستی را پیکربندی کنید
تنظیم محیط خود به خود
- به Google Cloud Console وارد شوید و یک پروژه جدید ایجاد کنید یا از یک موجود استفاده مجدد کنید. اگر قبلاً یک حساب Gmail یا Google Workspace ندارید، باید یک حساب ایجاد کنید .
- نام پروژه نام نمایشی برای شرکت کنندگان این پروژه است. این یک رشته کاراکتری است که توسط API های Google استفاده نمی شود. همیشه می توانید آن را به روز کنید.
- شناسه پروژه در تمام پروژههای Google Cloud منحصربهفرد است و تغییرناپذیر است (پس از تنظیم نمیتوان آن را تغییر داد). Cloud Console به طور خودکار یک رشته منحصر به فرد تولید می کند. معمولاً برای شما مهم نیست که چیست. در اکثر کدها، باید شناسه پروژه خود را ارجاع دهید (معمولاً با نام
PROJECT_ID
شناخته می شود). اگر شناسه تولید شده را دوست ندارید، ممکن است یک شناسه تصادفی دیگر ایجاد کنید. از طرف دیگر، میتوانید خودتان را امتحان کنید، و ببینید آیا در دسترس است یا خیر. پس از این مرحله نمی توان آن را تغییر داد و در طول مدت پروژه باقی می ماند. - برای اطلاع شما، یک مقدار سوم وجود دارد، یک شماره پروژه ، که برخی از API ها از آن استفاده می کنند. در مورد هر سه این مقادیر در مستندات بیشتر بیاموزید.
- در مرحله بعد، برای استفاده از منابع Cloud/APIها باید صورتحساب را در کنسول Cloud فعال کنید . اجرا کردن از طریق این کد لبه هزینه زیادی نخواهد داشت. برای خاموش کردن منابع برای جلوگیری از تحمیل صورتحساب فراتر از این آموزش، میتوانید منابعی را که ایجاد کردهاید حذف کنید یا پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری هستند.
Cloud Shell را راه اندازی کنید
در حالی که Google Cloud را می توان از راه دور از لپ تاپ شما کار کرد، در این کد لبه از Google Cloud Shell استفاده خواهید کرد، یک محیط خط فرمان که در Cloud اجرا می شود.
از Google Cloud Console ، روی نماد Cloud Shell در نوار ابزار بالا سمت راست کلیک کنید:
تهیه و اتصال به محیط فقط چند لحظه طول می کشد. وقتی تمام شد، باید چیزی شبیه به این را ببینید:
این ماشین مجازی با تمام ابزارهای توسعه که شما نیاز دارید بارگذاری شده است. این یک فهرست اصلی 5 گیگابایتی دائمی را ارائه می دهد و در Google Cloud اجرا می شود و عملکرد و احراز هویت شبکه را تا حد زیادی افزایش می دهد. تمام کارهای شما در این کد لبه را می توان در یک مرورگر انجام داد. شما نیازی به نصب چیزی ندارید.
3. وظیفه 1. راه اندازی محیط با terraform
ما یک VPC سفارشی با قوانین فایروال و زیرشبکه ایجاد خواهیم کرد. کنسول ابری را باز کنید و پروژه مورد استفاده خود را انتخاب کنید.
- Cloud Shell را که در بالای کنسول خود در سمت راست قرار دارد باز کنید، مطمئن شوید که شناسه پروژه صحیح را در Cloud Shell میبینید، هرگونه درخواستی را برای اجازه دسترسی تأیید کنید.
- یک پوشه به نام terraform-build ایجاد کنید و به پوشه بروید
mkdir terraform-build && cd terraform-build
- یک فایل main.tf و variable.tf ایجاد کنید.
touch main.tf variable.tf
- به نمای ویرایشگر Cloud Shell بروید. ویرایشگر را انتخاب کنید، اطمینان حاصل کنید که به هر گونه درخواست ضروری اجازه می دهید تا رابط بارگیری شود.
- پس از بارگیری به مسیر File > Open Folder بروید و به /home/your-user-name/terraform-build بروید و Ok را انتخاب کنید تا پوشه در ویرایشگر باز شود.
- فایل variable.tf را انتخاب کرده و موارد زیر را اضافه کنید. متن
your-project-id-here
را با شناسه پروژه واقعی خود در نقل قول جایگزین کنید
variable "project_id" { type = string default = "your-project-id-here" } variable "network_id" { type = string default = "python-net" }
- سپس فایل main.tf را باز کنید. ما قصد داریم تعدادی کد terraform برای انجام اقدامات مختلف همانطور که در زیر توضیح داده شده است اضافه کنیم.
API ها را فعال کنید | |
VPC به نام python-net ایجاد کنید | |
یک زیر شبکه اضافه کنید | |
دو قانون فایروال اضافه کنید | |
- موارد زیر را کپی کرده و در فایل tf اصلی قرار دهید.
resource "google_project_service" "default" { for_each = toset([ "dns.googleapis.com", "aiplatform.googleapis.com", "servicedirectory.googleapis.com" ]) service = each.value disable_on_destroy = false } resource "google_compute_network" "default" { project = var.project_id name = var.network_id auto_create_subnetworks = false mtu = 1460 routing_mode = "GLOBAL" } resource "google_compute_subnetwork" "default" { name = "vm1-subnet" ip_cidr_range = "10.0.11.0/24" region = "us-east1" stack_type = "IPV4_ONLY" network = google_compute_network.default.id } resource "google_compute_firewall" "allow_icmp" { name = "allow-icmp-${google_compute_network.default.name}" network = google_compute_network.default.id project = var.project_id allow { protocol = "icmp" } source_ranges = ["0.0.0.0/0"] target_tags = ["allow-icmp"] } resource "google_compute_firewall" "allow_ssh" { name = "allow-ssh-${google_compute_network.default.name}" network = google_compute_network.default.id project = var.project_id allow { protocol = "tcp" ports = ["22"] } source_ranges = ["0.0.0.0/0"] target_tags = ["allow-ssh"] }
- به ترمینال Cloud Shell برگردید مطمئن شوید که در دایرکتوری terraform-build
cd terraform-build
هستید و دستورات زیر را اجرا کنید.
terraform init
دایرکتوری کاری را مقدار دهی اولیه می کند. این مرحله ارائه دهندگان مورد نیاز برای پیکربندی داده شده را دانلود می کند.
terraform plan
یک برنامه اجرایی ایجاد می کند که نشان می دهد Terraform چه اقداماتی را برای استقرار زیرساخت شما انجام خواهد داد.
- اکنون برای ایجاد منابع، دستور
terraform apply
را اجرا کرده وyes
تایپ کنید تا اجرا شود.
4. وظیفه 2. ایجاد دروازه NAT و VM با Terraform
ما باید به اینترنت دسترسی خارجی اعطا کنیم، بنابراین اجازه می دهیم یک دروازه NAT Cloud ایجاد کنیم و آن را وصل کنیم.
- Cloud Shell را باز کنید، به پوشه terraform-build بروید و فایل های زیر را ایجاد کنید (در مجموع سه فایل). بعداً اینها را ویرایش خواهیم کرد.
touch nat-vm.tf psc.tf dns.tf
- به نمای ویرایشگر Cloud Shell بروید و فایل nat-vm.tf را انتخاب کنید و کد Terraform زیر را اضافه کنید. این یک دروازه NAT و دو VM ایجاد می کند.
Terraform nat-vm.tf
resource "google_compute_router" "default" {
name = "py-outbound-nat"
region = "us-east1"
network = google_compute_network.default.id
bgp {
asn = 64514
}
}
resource "google_compute_router_nat" "default" {
name = "py-outbound-nat-gw"
router = google_compute_router.default.name
region = google_compute_router.default.region
nat_ip_allocate_option = "AUTO_ONLY"
source_subnetwork_ip_ranges_to_nat = "ALL_SUBNETWORKS_ALL_IP_RANGES"
log_config {
enable = true
filter = "ERRORS_ONLY"
}
}
resource "google_compute_instance" "vm1" {
name = "py-vm1"
zone = "us-east1-b"
machine_type = "n2-standard-2"
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
}
}
network_interface {
subnetwork = google_compute_subnetwork.default.id
stack_type = "IPV4_ONLY"
}
tags = ["allow-ssh", "allow-icmp"]
metadata_startup_script = <<-EOF
sudo apt-get update
sudo apt-get install python3 python3-dev python3-venv -y
sudo apt-get install tcpdump dnsutils -y
sudo -i
sudo mkdir -p ~/py-gem-env
cd ~/py-gem-env
python3 -m venv env
source env/bin/activate
pip install ipython google-cloud-aiplatform
EOF
}
resource "google_compute_instance" "vm2" {
name = "py-vm2"
zone = "us-east1-b"
machine_type = "n2-standard-2"
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
}
}
network_interface {
subnetwork = google_compute_subnetwork.default.id
stack_type = "IPV4_ONLY"
}
tags = ["allow-ssh", "allow-icmp"]
metadata_startup_script = <<-EOF
sudo apt-get update
sudo apt-get install python3 python3-dev python3-venv -y
sudo apt-get install tcpdump dnsutils -y
sudo -i
sudo mkdir -p ~/py-gem-env
cd ~/py-gem-env
python3 -m venv env
source env/bin/activate
pip install ipython google-cloud-aiplatform
EOF
}
- به ترمینال Cloud Shell بروید، مطمئن شوید که در پوشه terraform-build هستید و
terraform plan
اجرا کنید، این به شما نشان می دهد که 4 مورد اضافه می شود، سپسterraform apply
اجرا کنید وyes
را تایپ کنید تا دروازه NAT و دو vm ایجاد شود.
5. وظیفه 3. VM ها را پیکربندی کنید و آزمایش کنید
- به نمونه های VM بروید. vm را که با py-vm1 شروع می شود انتخاب کنید. SSH را انتخاب کنید.
- هنگامی که SSH را به py-vm1 وارد کردید، root را با تایپ
sudo -i
فعال کنید - محیط venv خود را فعال کنید:
cd py-gem-env
source env/bin/activate
- حالا بیایید این را تأیید کنیم تا بعداً آزمایش کنیم. دستور زیر را در ماشین مجازی اجرا کنید، وقتی از شما خواسته شد y را فشار دهید.
gcloud auth application-default login
- سپس url را که در ابتدا با https:// ظاهر میشود کپی کنید، یک تب جدید در پنجره مرورگر آزمایشگاه خود باز کنید و url را جایگذاری کنید. درخواست ها را بپذیرید.
- وقتی گزینه کپی زیر را مشاهده کردید، به جلسه vm py-vm1 برگردید و کد مجوز را وارد کنید: کدی را که کپی کردهاید جایگذاری کنید و برای احراز هویت، اینتر را فشار دهید.
- حالا بیایید یک آزمایش سریع انجام دهیم تا ببینیم آیا میتوانیم به Vertex Gemini API متصل شویم، این از us-central1-aiplatform.googleapis.com استفاده میکند، بنابراین ما به آن آدرس
dig
تا ببینیم مسیرهای ترافیک چگونه است.
dig us-central1-aiplatform.googleapis.com
- شما باید چیزی مشابه ببینید (آدرس متفاوت خواهد بود). توجه داشته باشید که مسیر از طریق آدرس های IP عمومی است زیرا API یک API عمومی است. کپی نکنید
; <<>> DiG 9.16.48-Debian <<>> us-central1-aiplatform.googleapis.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9117
;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;us-central1-aiplatform.googleapis.com. IN A
;; ANSWER SECTION:
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.210.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.211.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.212.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.213.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.215.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.216.95
us-central1-aiplatform.googleapis.com. 300 IN A 108.177.12.95
us-central1-aiplatform.googleapis.com. 300 IN A 108.177.13.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.26.95
- حالا بیایید از پایتون استفاده کنیم.
ipython
تایپ کنید تا رابط ipython فعال شود.
ipython
- حالا موارد زیر را کپی و پیست کنید. از Gemini می پرسد " همه رنگ های لوگوی گوگل چیست " و " رنگ آسمان چیست ".
enter-your-project-id-here
در نقل قول جایگزین کنید
import vertexai
from vertexai.generative_models import GenerativeModel, ChatSession
project_id = "enter-your-project-id-here"
location = "us-central1"
vertexai.init(project=project_id, location=location)
model = GenerativeModel("gemini-1.5-pro")
chat_session = model.start_chat()
def get_chat_response(chat: ChatSession, prompt: str) -> str:
text_response = []
responses = chat.send_message(prompt, stream=True)
for chunk in responses:
text_response.append(chunk.text)
return "".join(text_response)
prompt = "Hello."
print(get_chat_response(chat_session, prompt))
prompt = "What are all the colors of the Google logo?"
print(get_chat_response(chat_session, prompt))
prompt = "What color is the sky?"
print(get_chat_response(chat_session, prompt))
- دکمه enter را بزنید تا اجرا شود و نتیجه را ببینید.
- این درخواست از طریق API عمومی به Vertex دسترسی پیدا کرد.
- جلسه SSH را ببندید بیایید ادامه دهیم.
حالا py-vm2 را با همان تنظیمات پیکربندی کنید
- به نمونه های VM بروید. vm را که با py-vm2 شروع می شود انتخاب کنید. SSH را انتخاب کنید.
- هنگامی که SSH را در py-vm2 -**** با تایپ **
sudo -i
** فعال کنید root را فعال کنید - محیط venv خود را فعال کنید:
cd py-gem-env
source env/bin/activate
- حالا بیایید این را تأیید کنیم تا بعداً آزمایش کنیم. دستور زیر را در VM اجرا کنید
gcloud auth application-default login
- سپس url را که در ابتدا با https:// ظاهر میشود کپی کنید، یک تب جدید در پنجره مرورگر آزمایشگاه خود باز کنید و url را جایگذاری کنید. درخواست ها را بپذیرید.
- وقتی گزینه کپی زیر را مشاهده کردید، به جلسه vm py-vm2 برگردید و کد مجوز را وارد کنید: کدی را که کپی کردهاید جایگذاری کنید و برای احراز هویت، اینتر را فشار دهید.
- حالا بیایید یک آزمایش سریع انجام دهیم تا ببینیم آیا می توانیم به Vertex Gemini API متصل شویم. این دستور از 4 پینگ به us-central1-aiplatform.googleapis.com استفاده می کند، بنابراین ما از آدرس عمومی API پاسخ دریافت می کنیم.
ping -c 4 us-central1-aiplatform.googleapis.com
- بعداً برای آزمایش این VM باز خواهیم گشت. جلسه SSH را ببندید و ادامه دهید.
6. وظیفه 4. نقطه پایانی PSC را برای googleapis با Terraform ایجاد کنید
برای فعال کردن اتصال خصوصی به نقطه پایانی Vertex API ما یک نقطه پایانی Private Service Connect برای Google API ایجاد خواهیم کرد. این به ما امکان می دهد از یک آدرس IP خصوصی که برای هدایت ترافیک به API های Google مورد نیاز خود اختصاص می دهیم، در این مورد Vertex استفاده کنیم.
- اگر قبلاً باز نشده است، Cloud Shell را در نمای ویرایشگر باز کنید. ما قصد داریم موارد زیر را ایجاد کنیم:
- یک IP برای نقطه پایانی PSC 192.168.255.250 ایجاد کنید (
resource "google_compute_global_address" "default")
- یک نقطه پایانی PSC برای APIهای Google ایجاد کنید (
resource "google_compute_global_forwarding_rule" "default")
فایل psc.tf را در پوشه terraform-build باز کنید. کد زیر را به فایل اضافه کنید.
Terraform psc.tf
resource "google_compute_global_address" "default" {
name = "vertex-ip"
purpose = "PRIVATE_SERVICE_CONNECT"
network = google_compute_network.default.id
address_type = "INTERNAL"
address = "192.168.255.250"
}
resource "google_compute_global_forwarding_rule" "default" {
name = "pscvertexgemini"
target = "all-apis"
network = google_compute_network.default.id
ip_address = google_compute_global_address.default.id
load_balancing_scheme = ""
}
- به ترمینال Cloud Shell بروید، مطمئن شوید که در پوشه
terraform-build
هستید. سپسterraform init
را اجرا کنید سپسterraform plan
اجرا کنید این به شما نشان می دهد که 2 مورد اضافه خواهد شد.
سپسterraform apply
اجرا کنید وyes
برای ایجاد IP و PSC Google APIs endpoint تایپ کنید. - بررسی وجود نقطه پایانی
gcloud compute addresses list --filter="name=( 'vertex-ip' ...)"
gcloud compute forwarding-rules describe pscvertexgemini --global
7. وظیفه 5. بررسی اتصال نقطه پایانی از طریق آدرس IP
بیایید با استفاده از نقطه پایانی خصوصی برای اتصال به جمینی وصل شویم.
- به VM Instance py-vm1 بروید. SSH و SSH را در VM انتخاب کنید
- با تایپ
sudo -i
به root دسترسی پیدا کنید - ما فقط از این نمونه جداگانه برای آزمایش نقطه پایانی PSC استفاده می کنیم، بنابراین فایل میزبان را با ورودی زیر تغییر می دهیم.
echo 192.168.255.250 us-central1-aiplatform.googleapis.com >> /etc/hosts
cat /etc/hosts
- مسیر اتصال به us-central1-aiplatform.googleapis.com را با استفاده از دستور
ping
بررسی کنید. با این کار آدرس IP که در فایل های میزبان وارد کرده اید پینگ می شود. این یک نقطه پایانی PSC است و پینگ شما ناموفق خواهد بود.
ping -c 2 us-central1-aiplatform.googleapis.com
- به کنسول برگردید و نمونه دیگری از VM Instance py-vm1 را باز کنید. SSH و SSH را در VM انتخاب کنید
- با تایپ
sudo -i
به root دسترسی پیدا کنید - برای مشاهده اتصال در یک TCP dump دستور follow را اجرا کنید
sudo tcpdump -i any port 53 -n or host us-central1-aiplatform.googleapis.com
- اکنون به اولین نمونه SSH از VM Instance py-vm1 برگردید
- env را با استفاده از آن فعال کنید
cd py-gem-env
source env/bin/activate
- حالا بیایید پایتون را آزمایش کنیم.
ipython
تایپ کنید تا رابط ipython فعال شود. این بار ترافیک از طریق نقطه پایانی PSC جریان خواهد داشت.
ipython
- حالا موارد زیر را کپی و پیست کنید. از Gemini می پرسد " همه رنگ های لوگوی گوگل چیست " و " ششار نیاگارا را توصیف کنید ".
enter-your-project-id-here
در نقل قول جایگزین کنید
import vertexai
from vertexai.generative_models import GenerativeModel, ChatSession
project_id = "enter-your-project-id-here"
location = "us-central1"
vertexai.init(project=project_id, location=location)
model = GenerativeModel("gemini-1.5-pro")
chat_session = model.start_chat() # Corrected line
def get_chat_response(chat: ChatSession, prompt: str) -> str:
text_response = []
responses = chat.send_message(prompt, stream=True)
for chunk in responses:
text_response.append(chunk.text)
return "".join(text_response)
prompt = "Hello."
print(get_chat_response(chat_session, prompt))
prompt = "What are all the colors of the Google logo?"
print(get_chat_response(chat_session, prompt))
prompt = "Describe Niagara Falls"
print(get_chat_response(chat_session, prompt))
- دکمه enter را بزنید تا اجرا شود و نتیجه را ببینید.
- به دومین نمونه از VM Instance py-vm1 برگردید. شما باید نتیجه TCPDUMP را ببینید. با آدرس های IP ماشین مجازی و همچنین آدرس IP نقطه پایانی PSC برای اتصال به us-central1-aiplatform.googleapis.com متوجه ورود و خروج خواهید شد.
22:21:55.032433 ens4 Out IP 10.0.11.18.57114 > 192.168.255.250.443: Flags [.], ack 8606, win 501, options [nop,nop,TS val 1797790182 ecr 2593039209], length 0
22:21:55.468285 ens4 In IP 192.168.255.250.443 > 10.0.11.18.57114: Flags [P.], seq 8606:8991, ack 5785, win 296, options [nop,nop,TS val 2593039645 ecr 1797790182], length 385
22:21:55.468320 ens4 Out IP 10.0.11.18.57114 > 192.168.255.250.443: Flags [.], ack 8991, win 501, options [nop,nop,TS val 1797790618 ecr 2593039645], length 0
- تمام جلسات SSH را به VM Instance py-vm1 ببندید
8. وظیفه 6. ایجاد ورودی دستی DNS به googleapis با Terraform (اختیاری)
شما می توانید یک ورودی DNS دستی برای اشاره به نقطه پایانی PSC با استفاده از DNS خصوصی ایجاد کنید. این بر تمام شبکه هایی که به آن اختصاص می دهید تأثیر می گذارد.
- به Network services بروید و Cloud DNS را انتخاب کنید.
- در مناطق باید یک منطقه به طور خودکار ایجاد شده برای Private Service Connect for Google APIs، با فهرست خدمات نوع منطقه را ببینید. این می تواند برای اتصال به نقطه پایانی PSC با فرمت ** SERVICE-ENDPOINT استفاده شود. p.googleapis.com مثال:
aiplatform-pscvertexgemini.p.googleapis.com
- در این مورد می خواهیم به صورت دستی یک ورودی DNS خصوصی ایجاد کنیم. پیکربندی به صورت زیر خواهد بود
- یک منطقه DNS خصوصی به نام "googleapis-private" برای "googleapis.com" ایجاد کنید و آن را به شبکه "python-net" محدود کنید.
- یک رکورد A به نقشه "googleapis.com" به آدرس IP "192.168.255.250" اضافه کنید .
- یک رکورد CNAME اضافه کنید تا همه زیردامنه های "googleapis.com" (به عنوان مثال، www.googleapis.com) به "googleapis.com" هدایت شوند.
- اگر قبلاً باز نشده است، Cloud Shell را در نمای ویرایشگر باز کنید. فایل dns.tf را در پوشه terraform-build باز کنید. کد زیر را به فایل اضافه کنید.
Terraform dns.tf
resource "google_dns_managed_zone" "private_zone" {
name = "googleapis-private"
dns_name = "googleapis.com."
visibility = "private"
project = var.project_id
private_visibility_config {
networks {
network_url = google_compute_network.default.id
}
}
}
resource "google_dns_record_set" "a_record" {
name = "googleapis.com."
type = "A"
ttl = 300
managed_zone = google_dns_managed_zone.private_zone.name
project = var.project_id
rrdatas = ["192.168.255.250"]
}
resource "google_dns_record_set" "cname_record" {
name = "*.googleapis.com."
type = "CNAME"
ttl = 300
managed_zone = google_dns_managed_zone.private_zone.name
project = var.project_id
rrdatas = ["googleapis.com."]
}
- به ترمینال Cloud Shell بروید، مطمئن شوید که در پوشه
terraform-build
هستید. سپسterraform plan
اجرا کنید که به شما نشان می دهد چه مواردی اضافه می شود،
سپسterraform apply
اجرا کرده وyes
تایپ کنید تا ورودی DNS خصوصی ایجاد شود. - شما باید تنظیماتی را با یک رکورد A و CNAME مانند این ببینید
- سپس اتصال را با این تغییرات در py-vm2 تأیید می کنیم
9. وظیفه 7. بررسی اتصال نقطه پایانی از طریق آدرس IP (اختیاری)
بیایید با استفاده از نقطه پایانی خصوصی برای اتصال به جمینی وصل شویم.
- به VM Instance py-vm2 بروید. SSH و SSH را در VM انتخاب کنید
- با تایپ
sudo -i
به root دسترسی پیدا کنید - مسیر اتصال به us-central1-aiplatform.googleapis.com را با استفاده از دستور
ping
بررسی کنید. با این کار آدرس IP در DNS خصوصی، رکوردی برای googleapis پینگ می شود. این IP یک نقطه پایانی PSC است و پینگ های شما ناموفق خواهد بود.
ping -c 2 us-central1-aiplatform.googleapis.com
- مسیر اتصال را با یک
ping
با استفاده از ورودی DNS ایجاد شده به طور خودکار برای PSC Google API باaiplatform-pscvertexgemini.p.googleapis.com
بررسی کنید. این به آدرس IP نقطه پایانی PSC اشاره می کند و پینگ شما ناموفق خواهد بود.
ping -c 2 aiplatform-pscvertexgemini.p.googleapis.com
- مسیر اتصال به us-central1-aiplatform.googleapis.com را با استفاده از دستور
dig
بررسی کنید. این باید آدرس IP نقطه پایانی PSC باشد.
dig us-central1-aiplatform.googleapis.com
- به کنسول برگردید و نمونه دیگری از VM Instance py-vm2 را باز کنید. SSH و SSH را در VM انتخاب کنید
- با تایپ
sudo -i
به root دسترسی پیدا کنید - برای مشاهده اتصال در یک TCP dump دستور follow را اجرا کنید
sudo tcpdump -i any port 53 -n or host us-central1-aiplatform.googleapis.com
- اکنون به اولین نمونه SSH از VM Instance py-vm2 برگردید
- env را با استفاده از آن فعال کنید
cd py-gem-env
source env/bin/activate
- حالا بیایید پایتون را آزمایش کنیم.
ipython
تایپ کنید تا رابط ipython فعال شود.
ipython
- حالا موارد زیر را کپی و پیست کنید. از Gemini بپرسید " همه رنگ های لوگوی گوگل چیست " و " دو ویژگی Gemini pro چیست ".
enter-your-project-id-here
در نقل قول جایگزین کنید
import vertexai
from vertexai.generative_models import GenerativeModel, ChatSession
project_id = "enter-your-project-id-here"
location = "us-central1"
vertexai.init(project=project_id, location=location)
model = GenerativeModel("gemini-1.5-pro")
chat_session = model.start_chat() # Corrected line
def get_chat_response(chat: ChatSession, prompt: str) -> str:
text_response = []
responses = chat.send_message(prompt, stream=True)
for chunk in responses:
text_response.append(chunk.text)
return "".join(text_response)
prompt = "Hello."
print(get_chat_response(chat_session, prompt))
prompt = "What are all the colors of the Google logo?"
print(get_chat_response(chat_session, prompt))
prompt = "What are two features of Gemini pro"
print(get_chat_response(chat_session, prompt))
- دکمه enter را بزنید تا اجرا شود و نتیجه را ببینید.
- به دومین نمونه از VM Instance py-vm2 برگردید. شما باید نتیجه TCPDUMP را ببینید. متوجه ورود و خروج خواهید شد و آدرس IP ماشین مجازی از آدرس IP نقطه پایانی PSC برای اتصال به us-central1-aiplatform.googleapis.com استفاده می کند.
تمام جلسات SSH را به VM Instance py-vm2 ببندید
10. پاکسازی کنید
- به Cloud Shell بروید مطمئن شوید که در دایرکتوری terraform-build
cd terraform-build
هستید و دستور زیرterraform destroy
اجرا کنید وyes
را تایپ کنید همه منابعی که در پروژه خود با Terraform ایجاد کرده اید حذف خواهند شد.
11. تبریک می گویم
تبریک میگوییم، شما با استفاده از آدرس عمومی API و خصوصی با استفاده از Private Service Connect Endpoint برای Google API با موفقیت به گپ Vertex Gemini متصل شدید. این قابلیت می تواند اتصال API خصوصی را به محیط ابری on-prem/دیگر فضای ابری شما که از طریق (Interconnect، Cross-Cloud Interconnect و VPC) متصل هستند، گسترش دهد.
مراحل بعدی / بیشتر بدانید
میتوانید درباره شبکههای هوش مصنوعی Vertex بیشتر بخوانید
Codelab: دسترسی Anthropic Claude در Vertex AI با python sdk از طریق Private Service Connect endpoint
آزمایشگاه بعدی خود را ببرید
تلاش خود را با Google Cloud ادامه دهید و این آزمایشگاههای دیگر Google Cloud Skills Boost را بررسی کنید: