1. खास जानकारी
Vertex AI API को इंटरनेट पर ऐक्सेस किया जा सकता है. हालांकि, अपने एंटरप्राइज़ में आपको इंटरनेट के बिना, Vertex AI API को निजी तौर पर ऐक्सेस करने की सुविधा मिल सकती है. इस लैब में, सबसे पहले आपको सार्वजनिक इंटरनेट से वीएम इंस्टेंस पर चलने वाले Python SDK के ज़रिए, Vertex Gemini Chat API को ऐक्सेस करना होगा.
इसके बाद, आपको Google API के लिए Private Service Connect एंडपॉइंट बनाना होगा. साथ ही, Gemini chat API से कनेक्ट करने के लिए, निजी एंडपॉइंट का इस्तेमाल करने के मकसद से ट्रैफ़िक फ़्लो में बदलाव करना होगा. कॉन्फ़िगरेशन, Terraform, gcloud, और console का कॉम्बिनेशन होगा.
इस लैब में, आपको नीचे दिया गया पैटर्न बनाना है.
पहली इमेज.
2. मकसद
इस लैब में, आपको यह काम करने का तरीका पता चलेगा:
- Python SDK का इस्तेमाल करने के लिए, वीएम इंस्टेंस सेट अप करें
- Python स्क्रिप्ट के ज़रिए Gemini से चैट करना
- Googleapis से कनेक्ट करने के लिए, PSC एंडपॉइंट को कॉन्फ़िगर करें
- Googleais के लिए कनेक्टिविटी पाथ की पुष्टि करना
- मैन्युअल डीएनएस एंट्री कॉन्फ़िगर करें
अपने हिसाब से एनवायरमेंट सेट अप करना
- Google Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से कोई Gmail या Google Workspace खाता नहीं है, तो आपको एक खाता बनाना होगा.
- प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों के लिए डिसप्ले नेम होता है. यह एक वर्ण स्ट्रिंग है, जिसका इस्तेमाल Google API नहीं करते. इसे कभी भी अपडेट किया जा सकता है.
- प्रोजेक्ट आईडी, Google Cloud के सभी प्रोजेक्ट के लिए यूनीक होता है. साथ ही, इसे बदला नहीं जा सकता. इसे सेट करने के बाद बदला नहीं जा सकता. Cloud Console, अपने-आप एक यूनीक स्ट्रिंग जनरेट करता है. आम तौर पर, आपको यह जानने की ज़रूरत नहीं होती कि यह स्ट्रिंग क्या है. ज़्यादातर कोडलैब में, आपको अपने प्रोजेक्ट आईडी का रेफ़रंस देना होगा. आम तौर पर, इसे
PROJECT_ID
के तौर पर पहचाना जाता है. अगर आपको जनरेट किया गया आईडी पसंद नहीं आता है, तो कोई दूसरा आईडी जनरेट किया जा सकता है. इसके अलावा, आपके पास खुद का कोई दूसरा नाम चुनने का विकल्प भी है. इस चरण के बाद, इसे बदला नहीं जा सकता. यह प्रोजेक्ट के दौरान बना रहता है. - आपकी जानकारी के लिए, प्रोजेक्ट नंबर नाम की एक तीसरी वैल्यू दी गई है. इसका इस्तेमाल कुछ एपीआई करते हैं. दस्तावेज़ में इन तीनों वैल्यू के बारे में ज़्यादा जानें.
- इसके बाद, आपको क्लाउड संसाधनों/एपीआई का इस्तेमाल करने के लिए, Cloud Console में बिलिंग चालू करनी होगी. इस कोडलैब को चलाने के लिए, आपसे कोई शुल्क नहीं लिया जाएगा. इस ट्यूटोरियल के बाद बिलिंग से बचने के लिए, बनाए गए संसाधनों को बंद किया जा सकता है या प्रोजेक्ट को मिटाया जा सकता है. Google Cloud के नए उपयोगकर्ता, 300 डॉलर के मुफ़्त ट्रायल वाले प्रोग्राम में हिस्सा ले सकते हैं.
Cloud Shell शुरू करना
Google Cloud को आपके लैपटॉप से, कहीं से भी ऑपरेट किया जा सकता है. हालांकि, इस कोडलैब में Google Cloud Shell का इस्तेमाल किया जा रहा है. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.
Google Cloud Console में, सबसे ऊपर दाएं टूलबार में मौजूद Cloud Shell आइकॉन पर क्लिक करें:
प्रावधान करने और एनवायरमेंट से कनेक्ट होने में कुछ ही समय लगेगा. प्रोसेस पूरी होने के बाद, आपको कुछ ऐसा दिखेगा:
इस वर्चुअल मशीन में, डेवलपमेंट के लिए ज़रूरी सभी टूल लोड होते हैं. यह पांच जीबी की स्थायी होम डायरेक्ट्री उपलब्ध कराता है और Google Cloud पर चलता है. यह नेटवर्क की परफ़ॉर्मेंस और पुष्टि करने की प्रक्रिया को बेहतर बनाता है. इस कोडलैब (कोड बनाना सीखना) में आपका सारा काम ब्राउज़र में किया जा सकता है. आपको कुछ भी इंस्टॉल करने की ज़रूरत नहीं है.
3. टास्क 1. terraform की मदद से एनवायरमेंट सेट अप करना
हम फ़ायरवॉल के नियमों और सबनेट के साथ, पसंद के मुताबिक VPC बनाएंगे. Cloud Console खोलें और वह प्रोजेक्ट चुनें जिसका इस्तेमाल करना है.
- अपने कंसोल में सबसे ऊपर दाईं ओर मौजूद Cloud Shell खोलें. पक्का करें कि आपको Cloud Shell में सही प्रोजेक्ट आईडी दिख रहा हो. ऐक्सेस की अनुमति देने के लिए, किसी भी प्रॉम्प्ट की पुष्टि करें.
- terraform-build नाम का फ़ोल्डर बनाएं और उसे फ़ोल्डर में ले जाएं
mkdir terraform-build && cd terraform-build
- main.tf और variable.tf फ़ाइल बनाएं.
touch main.tf variable.tf
- Cloud Shell एडिटर व्यू पर स्विच करें. एडिटर चुनें. साथ ही, इंटरफ़ेस लोड हो सके, इसके लिए ज़रूरी प्रॉम्प्ट को अनुमति दें.
- लोड हो जाने के बाद, फ़ाइल > फ़ोल्डर खोलें पर जाएं और /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 फ़ाइल खोलें. हम अलग-अलग कार्रवाइयां करने के लिए, कुछ टेराफ़ॉर्म कोड जोड़ेंगे. इनके बारे में नीचे बताया गया है.
एपीआई चालू करना |
|
python-net नाम का वीपीसी बनाना |
|
सबनेट जोड़ना |
|
दो फ़ायरवॉल नियम जोड़ना |
|
- यहां दिए गए कोड को कॉपी करके, main .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
यह एक्ज़ीक्यूशन प्लान जनरेट करता है, जिसमें यह दिखाया जाता है कि आपके इन्फ़्रास्ट्रक्चर को डिप्लॉय करने के लिए, Teraform को क्या-क्या कार्रवाइयां करनी होंगी.
- अब संसाधन बनाने के लिए,
terraform apply
कमांड चलाएं और चलाने के लिएyes
टाइप करें.
4. टास्क 2. Turaform की मदद से, NAT गेटवे और वीएम बनाएं
हमें इंटरनेट को आउटबाउंड एक्सेस देना होगा. इसलिए, Cloud NAT गेटवे बनाएं और उसे अटैच करें.
- Cloud Shell खोलें और terraform-build फ़ोल्डर पर जाएं. इसके बाद, यहां दी गई तीन फ़ाइलें बनाएं. हम इनमें बाद में बदलाव करेंगे.
touch nat-vm.tf psc.tf dns.tf
- Cloud Shell एडिटर व्यू पर स्विच करें और nat-vm.tf फ़ाइल चुनें. इसके बाद, यह Terraform कोड जोड़ें. इससे एक NAT गेटवे और दो वीएम बन जाएंगे.
टेराफ़ॉर्म 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 Terminal में स्विच करें और पक्का करें कि आप terraform-build फ़ोल्डर में हों और
terraform plan
चलाएं. इससे आपको पता चलेगा कि चार आइटम जोड़े जाएंगे. इसके बाद,terraform apply
चलाएं और NAT गेटवे और दो vm बनाने के लिए,yes
टाइप करें.
5. तीसरा टास्क. वर्चुअल मशीन (वीएम) कॉन्फ़िगर करें और जांच करें
- वीएम इंस्टेंस पर जाएं. py-vm1 से शुरू होने वाला vm चुनें. एसएसएच चुनें.
- py-vm1 में एसएसएच करने के बाद,
sudo -i
टाइप करके रूट को चालू करें - अपना venv एनवायरमेंट चालू करें:
cd py-gem-env
source env/bin/activate
- अब आइए, बाद में कुछ टेस्ट करने के लिए इसकी पुष्टि करें. VM में यह कमांड चलाएं. इसके बाद, जब कहा जाए, तब y दबाएं.
gcloud auth application-default login
- इसके बाद, https:// से शुरू होने वाला यूआरएल कॉपी करें. इसके बाद, अपनी लैब ब्राउज़र विंडो में एक नया टैब खोलें और यूआरएल चिपकाएं. दिए गए निर्देशों का पालन करें.
- नीचे चुने गए टेक्स्ट कॉपी दिखने पर, vm py-vm1 सेशन पर वापस स्विच करें. ऑथराइज़ेशन कोड डालें: कॉपी किया गया कोड डालें और पुष्टि करने के लिए Enter दबाएं.
- आइए, अब फटाफट टेस्ट करके यह पता लगाते हैं कि Vertex Gemini API से कनेक्ट किया जा सकता है या नहीं. इसके लिए, इसमें us-central1-aiplatform.googleapis.com का इस्तेमाल किया जाता है. इसलिए, हम उस पते का
dig
इस्तेमाल करेंगे, ताकि यह पता लगाया जा सके कि ट्रैफ़िक का रूट क्या है.
dig us-central1-aiplatform.googleapis.com
- आपको कुछ ऐसा दिखेगा (पता अलग होगा). ध्यान दें कि पाथ सार्वजनिक आईपी पतों से होता है, क्योंकि एपीआई एक सार्वजनिक एपीआई है. कॉपी न करें
; <<>> 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
- अब आइए, Python का इस्तेमाल करते हैं. ipython इंटरफ़ेस को चालू करने के लिए,
ipython
टाइप करें.
ipython
- अब इन्हें कॉपी करें और चिपकाएं. इससे Gemini से पूछा जाता है कि "Google के लोगो के सभी रंग कौनसे हैं" और "आसमान का रंग क्या है" . कोटेशन में मौजूद
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 दबाएं.
- इस अनुरोध ने सार्वजनिक एपीआई के ज़रिए Vertex को ऐक्सेस किया.
- एसएसएच सेशन बंद करें और आगे बढ़ें.
अब py-vm2 को उसी कॉन्फ़िगरेशन के साथ कॉन्फ़िगर करें
- VM इंस्टेंस पर जाएं. py-vm2 से शुरू होने वाला वर्चुअल मशीन चुनें. एसएसएच चुनें.
- py-vm2 में एसएसएच करने के बाद-**** **
sudo -i
** टाइप करके रूट को चालू करें - अपना venv एनवायरमेंट चालू करें:
cd py-gem-env
source env/bin/activate
- अब आइए, बाद में कुछ टेस्ट करने के लिए इसकी पुष्टि करें. VM में इस कमांड को चलाएं
gcloud auth application-default login
- इसके बाद, https:// से शुरू होने वाला यूआरएल कॉपी करें. इसके बाद, अपनी लैब ब्राउज़र विंडो में एक नया टैब खोलें और यूआरएल चिपकाएं. प्रॉम्प्ट स्वीकार करें.
- नीचे चुने गए टेक्स्ट कॉपी दिखने पर, vm py-vm2 सेशन पर वापस स्विच करें. ऑथराइज़ेशन कोड डालें: कॉपी किया गया कोड डालें और पुष्टि करने के लिए Enter दबाएं.
- आइए, अब फटाफट एक टेस्ट करके यह देखते हैं कि क्या इसे Vertex Gemini API के साथ कनेक्ट किया जा सकता है. यह निर्देश us-central1-aiplatform.googleapis.com पर 4 पिंग का इस्तेमाल करेगा ताकि हमें एपीआई के सार्वजनिक पते से जवाब मिल सके.
ping -c 4 us-central1-aiplatform.googleapis.com
- हम बाद में वापस आकर इस वीएम की जांच करेंगे. एसएसएच सेशन बंद करें और आगे बढ़ें.
6. टास्क 4. Teraform की मदद से, Google API के लिए PSC एंडपॉइंट बनाएं
हमारे Vertex API एंडपॉइंट पर निजी कनेक्टिविटी चालू करने के लिए, हम Google API के लिए Private Service Connect एंडपॉइंट बनाएंगे. इससे हमें निजी आईपी पते का इस्तेमाल करने की अनुमति मिलेगी. हम इस पते को, ज़रूरी Google API पर ट्रैफ़िक भेजने के लिए असाइन करते हैं. इस मामले में, Vertex.
- अगर Cloud Shell पहले से नहीं खुला है, तो उसे एडिटर व्यू में खोलें. हम ये चीज़ें बनाएंगे:
- PSC एंडपॉइंट 192.168.255.250 (
resource "google_compute_global_address" "default")
- Google API के लिए एक PSC एंडपॉइंट बनाएं (
resource "google_compute_global_forwarding_rule" "default")
terraform-build फ़ोल्डर में psc.tf फ़ाइल खोलें. फ़ाइल में यह कोड जोड़ें.
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
चलाएं. इससे आपको पता चलेगा कि दो आइटम जोड़े जाएंगे
. इसके बाद,terraform apply
चलाकर, IP और PSC Google API एंडपॉइंट बनाने के लिएyes
टाइप करें. - एंडपॉइंट की पुष्टि करें
gcloud compute addresses list --filter="name=( 'vertex-ip' ...)"
gcloud compute forwarding-rules describe pscvertexgemini --global
7. टास्क 5. आईपी पते की मदद से, एंडपॉइंट की कनेक्टिविटी की पुष्टि करना
Gemini से कनेक्ट करने के लिए, निजी एंडपॉइंट का इस्तेमाल करके कनेक्ट करें.
- VM इंस्टेंस py-vm1 पर जाएं. वीएम में एसएसएच और एसएसएच चुनें
sudo -i
टाइप करके रूट ऐक्सेस पाएं- हम PSC एंडपॉइंट की जांच करने के लिए, सिर्फ़ इस इंस्टेंस का इस्तेमाल करेंगे. इसके बाद, हम होस्ट फ़ाइल में नीचे दी गई एंट्री के साथ बदलाव करेंगे
echo 192.168.255.250 us-central1-aiplatform.googleapis.com >> /etc/hosts
cat /etc/hosts
ping
निर्देश का इस्तेमाल करके, us-central1-aiplatform.googleapis.com पर कनेक्टिविटी पाथ की जांच करें. इससे वह आईपी पता पिंग हो जाएगा जो आपने होस्ट फ़ाइलों में डाला है. यह पीएससी एंडपॉइंट है और आपके पिंग काम नहीं करेंगे.
ping -c 2 us-central1-aiplatform.googleapis.com
- कंसोल पर वापस जाएं और VM इंस्टेंस py-vm1 का दूसरा इंस्टेंस खोलें. वीएम में जाने के लिए, SSH और एसएसएच चुनें
sudo -i
टाइप करके रूट ऐक्सेस पाएं- TCP डंप में कनेक्टिविटी देखने के लिए, यह कमांड चलाएं
sudo tcpdump -i any port 53 -n or host us-central1-aiplatform.googleapis.com
- अब VM इंस्टेंस py-vm1 के पहले एसएसएच इंस्टेंस पर वापस स्विच करें
- env को चालू करने के लिए,
cd py-gem-env
source env/bin/activate
- आइए, अब Python को टेस्ट करें. ipython इंटरफ़ेस चालू करने के लिए,
ipython
टाइप करें. इस बार ट्रैफ़िक, PSC एंडपॉइंट से फ़्लो होगा.
ipython
- अब नीचे दी गई जानकारी को कॉपी करके चिपकाएं. यह Gemini से पूछें, "Google के लोगो के सभी रंग कौनसे हैं" और "नायग्रा फ़ॉल्स के बारे में बताएं". कोटेशन में मौजूद
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 इंस्टेंस py-vm1 के दूसरे इंस्टेंस पर वापस जाएं. आपको TCPDUMP का नतीजा दिखेगा. आपको वीएम के आईपी पतों के साथ इन और आउट दिखेंगे. साथ ही, us-central1-aiplatform.googleapis.com से कनेक्ट करने के लिए, PSC एंडपॉइंट का आईपी पता भी दिखेगा
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
- वीएम इंस्टेंस py-vm1 के सभी एसएसएच सेशन बंद करें
8. छठा टास्क. Terraform की मदद से, googleapis के लिए मैन्युअल डीएनएस एंट्री बनाएं (ज़रूरी नहीं)
निजी डीएनएस का इस्तेमाल करके, PSC एंडपॉइंट पर पॉइंट करने के लिए, मैन्युअल तरीके से डीएनएस एंट्री बनाई जा सकती है. इसका असर उन सभी नेटवर्क पर होगा जिन्हें आपने इसे असाइन किया है.
- Network services पर जाएं और Cloud DNS चुनें.
- आपको ज़ोन में, Google API के लिए Private Service Connect के लिए अपने-आप बना ज़ोन दिखेगा. इसमें ज़ोन टाइप की सेवा डायरेक्ट्री भी होगी. इसका इस्तेमाल, **SERVICE-ENDPOINT फ़ॉर्मैट में PSC एंडपॉइंट से कनेक्ट करने के लिए किया जा सकता है.p.googleapis.com उदाहरण:
aiplatform-pscvertexgemini.p.googleapis.com
- इस मामले में, हमें मैन्युअल रूप से निजी डीएनएस एंट्री बनानी है. कॉन्फ़िगरेशन इस तरह से होगा
- "googleapis.com" के लिए "googleapis-private" नाम का निजी डीएनएस ज़ोन बनाएं और उसे "python-net" नेटवर्क तक सीमित रखें.
- "googleapis.com" को "192.168.255.250" आईपी पते से मैप करने के लिए, A रिकॉर्ड जोड़ें.
- "googleapis.com" के सभी सबडोमेन (उदाहरण के लिए, www.googleapis.com) को "googleapis.com" पर रीडायरेक्ट करने के लिए, CNAME रिकॉर्ड जोड़ें.
- अगर क्लाउड शेल पहले से नहीं खुला है, तो एडिटर व्यू में खोलें. terraform-build फ़ोल्डर में dns.tf फ़ाइल खोलें. फ़ाइल में यह कोड जोड़ें.
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
टाइप करें. - आपको A रिकॉर्ड वाला सेट अप दिखेगा और इसके जैसा CNAME
दिखेगा
- इसके बाद, हम py-vm2 पर इन बदलावों के साथ कनेक्टिविटी की पुष्टि करते हैं
9. सातवां टास्क. आईपी पते की मदद से, एंडपॉइंट कनेक्टिविटी की पुष्टि करें (ज़रूरी नहीं)
Gemini से कनेक्ट करने के लिए, निजी एंडपॉइंट की मदद से कनेक्ट करते हैं.
- VM इंस्टेंस py-vm2 पर जाएं. वीएम में एसएसएच और एसएसएच चुनें
sudo -i
टाइप करके रूट ऐक्सेस पाएंping
कमांड का इस्तेमाल करके, us-central1-aiplatform.googleapis.com के लिए कनेक्टिविटी पाथ देखें. इससे googleapis के निजी डीएनएस, A रिकॉर्ड में मौजूद आईपी पते को पिंग किया जाएगा. इस आईपी पते से PSC एंडपॉइंट और आपके पिंग को प्रोसेस नहीं किया जा सकेगा.
ping -c 2 us-central1-aiplatform.googleapis.com
aiplatform-pscvertexgemini.p.googleapis.com
के साथ PSC Google API के लिए, अपने-आप जनरेट हुई डीएनएस एंट्री का इस्तेमाल करके,ping
की मदद से कनेक्टिविटी पाथ की जांच करें. यह PSC एंडपॉइंट के आईपी पते पर ले जाता है. इसके बाद, आपके पिंग पूरे नहीं हो पाएंगे.
ping -c 2 aiplatform-pscvertexgemini.p.googleapis.com
dig
कमांड का इस्तेमाल करके, us-central1-aiplatform.googleapis.com के लिए कनेक्टिविटी पाथ देखें. यह PSC एंडपॉइंट का आईपी पता होना चाहिए.
dig us-central1-aiplatform.googleapis.com
- कंसोल पर वापस जाएं और VM इंस्टेंस py-vm2 का दूसरा इंस्टेंस खोलें. वीएम में जाने के लिए, SSH और एसएसएच चुनें
sudo -i
टाइप करके रूट ऐक्सेस पाएं- टीसीपी डंप में कनेक्टिविटी देखने के लिए, नीचे दिया गया निर्देश चलाएं
sudo tcpdump -i any port 53 -n or host us-central1-aiplatform.googleapis.com
- अब VM इंस्टेंस py-vm2 के पहले एसएसएच इंस्टेंस पर वापस स्विच करें
- , का इस्तेमाल करके env चालू करें
cd py-gem-env
source env/bin/activate
- अब Python की जांच करते हैं. ipython इंटरफ़ेस चालू करने के लिए,
ipython
टाइप करें.
ipython
- अब नीचे दी गई जानकारी को कॉपी करके चिपकाएं. इसमें Gemini से पूछें, "Google के लोगो के सभी रंग कौनसे होते हैं" और "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 इंस्टेंस py-vm2 के दूसरे इंस्टेंस पर वापस जाएं. आपको TCPDUMP का परिणाम देखना चाहिए. आपको दिखेगा कि वीएम का आईपी पता, us-central1-aiplatform.googleapis.com से कनेक्ट करने के लिए PSC एंडपॉइंट का आईपी पता इस्तेमाल कर रहा है
सभी एसएसएच सेशन को VM इंस्टेंस py-vm2 पर बंद करें
10. स्टोरेज खाली करें
- Cloud Shell पर जाएं और पक्का करें कि आप terraform-build डायरेक्ट्री में हों
cd terraform-build
. इसके बाद, यह कमांड चलाएंterraform destroy
औरyes
टाइप करें. ऐसा करने पर, Terraform की मदद से आपके प्रोजेक्ट में बनाए गए सभी संसाधन हटा दिए जाएंगे.
11. बधाई हो
बधाई हो, आपने Google API के लिए Private Service Connect एंडपॉइंट का इस्तेमाल करते हुए, सार्वजनिक एपीआई पते का इस्तेमाल करके, Vertex Gemini Chat से कनेक्ट कर लिया है. इस सुविधा की मदद से, प्राइवेट एपीआई कनेक्टिविटी को ऑन-प्रीमिस/अन्य क्लाउड प्लैटफ़ॉर्म पर भी बढ़ाया जा सकता है. ये प्लैटफ़ॉर्म, इंटरकनेक्ट, क्रॉस-क्लाउड इंटरकनेक्ट, और VPC के ज़रिए कनेक्ट होते हैं.
अगले चरण / ज़्यादा जानें
Vertex AI नेटवर्किंग के बारे में ज़्यादा जानकारी पाई जा सकती है
अगला लैब लेना
Google Cloud के साथ अपनी तलाश जारी रखें और ये Google Cloud Skills Boost Lab देखें: