এই কোডল্যাব সম্পর্কে
1. ওভারভিউ
Vertex AI API ইন্টারনেটের মাধ্যমে অ্যাক্সেস করা যেতে পারে, তবে, আপনার এন্টারপ্রাইজে আপনি ইন্টারনেটে না গিয়ে ব্যক্তিগতভাবে Vertex AI API-এর অ্যাক্সেস করতে চাইতে পারেন। এই ল্যাবে আপনি প্রথমে Python sdk-এর মাধ্যমে Vertex Gemini চ্যাট API অ্যাক্সেস করতে পারবেন যেটি পাবলিক ইন্টারনেটের মাধ্যমে VM ইনস্ট্যান্সে চলছে।
তারপরে আপনি Google API-এর সাথে একটি ব্যক্তিগত পরিষেবা সংযোগ এন্ডপয়েন্ট তৈরি করবেন এবং জেমিনি চ্যাট API-এর সাথে সংযোগ করতে ব্যক্তিগত এন্ডপয়েন্ট ব্যবহার করতে ট্রাফিক প্রবাহ পরিবর্তন করবেন। কনফিগারেশন হবে Terraform, gcloud এবং কনসোলের সংমিশ্রণ।
এই ল্যাবে, আপনি নিম্নলিখিত প্যাটার্ন তৈরি করতে যাচ্ছেন।
চিত্র 1.
2. উদ্দেশ্য
এই ল্যাবে আপনি নিম্নলিখিত কাজগুলি কীভাবে সম্পাদন করবেন তা শিখবেন:
- পাইথন এসডিকে ব্যবহার করতে ভিএম ইনস্ট্যান্স সেট আপ করুন
- পাইথন স্ক্রিপ্টের মাধ্যমে জেমিনি চ্যাটে সংযোগ করুন
- Googleapis এর সাথে সংযোগ করতে PSC এন্ডপয়েন্ট কনফিগার করুন
- Googleais-এ সংযোগের পথ যাচাই করুন
- ম্যানুয়াল DNS এন্ট্রি কনফিগার করুন
স্ব-গতিসম্পন্ন পরিবেশ সেটআপ
- Google ক্লাউড কনসোলে সাইন-ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ আপনার যদি ইতিমধ্যেই একটি Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।
- প্রকল্পের নাম এই প্রকল্পের অংশগ্রহণকারীদের জন্য প্রদর্শনের নাম। এটি একটি অক্ষর স্ট্রিং যা Google API দ্বারা ব্যবহৃত হয় না। আপনি সবসময় এটি আপডেট করতে পারেন.
- প্রোজেক্ট আইডি সমস্ত Google ক্লাউড প্রোজেক্ট জুড়ে অনন্য এবং অপরিবর্তনীয় (সেট করার পরে পরিবর্তন করা যাবে না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত আপনি এটা কি যত্ন না. বেশিরভাগ কোডল্যাবে, আপনাকে আপনার প্রকল্প আইডি উল্লেখ করতে হবে (সাধারণত
PROJECT_ID
হিসাবে চিহ্নিত)। আপনি যদি জেনারেট করা আইডি পছন্দ না করেন, তাহলে আপনি অন্য একটি এলোমেলো আইডি তৈরি করতে পারেন। বিকল্পভাবে, আপনি নিজের চেষ্টা করতে পারেন, এবং এটি উপলব্ধ কিনা দেখতে পারেন। এই ধাপের পরে এটি পরিবর্তন করা যাবে না এবং প্রকল্পের সময়কালের জন্য থাকে। - আপনার তথ্যের জন্য, একটি তৃতীয় মান আছে, একটি প্রকল্প নম্বর , যা কিছু API ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি মান সম্পর্কে আরও জানুন।
- এরপরে, ক্লাউড রিসোর্স/এপিআই ব্যবহার করতে আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে। এই কোডল্যাবের মাধ্যমে চালানোর জন্য খুব বেশি খরচ হবে না, যদি কিছু হয়। এই টিউটোরিয়ালের বাইরে বিলিং এড়াতে সংস্থানগুলি বন্ধ করতে, আপনি আপনার তৈরি করা সংস্থানগুলি মুছতে বা প্রকল্প মুছতে পারেন। নতুন Google ক্লাউড ব্যবহারকারীরা $300 USD বিনামূল্যের ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷
ক্লাউড শেল শুরু করুন
যদিও Google ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালিত হতে পারে, এই কোডল্যাবে আপনি Google ক্লাউড শেল ব্যবহার করবেন, একটি কমান্ড লাইন পরিবেশ যা ক্লাউডে চলছে।
Google ক্লাউড কনসোল থেকে, উপরের ডানদিকে টুলবারে ক্লাউড শেল আইকনে ক্লিক করুন:
পরিবেশের ব্যবস্থা করতে এবং সংযোগ করতে এটি শুধুমাত্র কয়েক মুহূর্ত নিতে হবে। এটি সমাপ্ত হলে, আপনি এই মত কিছু দেখতে হবে:
এই ভার্চুয়াল মেশিনটি আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুল দিয়ে লোড করা হয়েছে। এটি একটি ক্রমাগত 5GB হোম ডিরেক্টরি অফার করে এবং Google ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার সমস্ত কাজ একটি ব্রাউজারে করা যেতে পারে। আপনার কিছু ইন্সটল করার দরকার নেই।
3. টাস্ক 1. টেরাফর্ম সহ পরিবেশ সেটআপ করুন
আমরা ফায়ারওয়াল নিয়ম এবং সাবনেট সহ একটি কাস্টম ভিপিসি তৈরি করব। ক্লাউড কনসোল খুলুন এবং আপনি যে প্রকল্পটি ব্যবহার করবেন সেটি নির্বাচন করুন।
- ডানদিকে আপনার কনসোলের শীর্ষে অবস্থিত ক্লাউড শেল খুলুন, নিশ্চিত করুন যে আপনি ক্লাউড শেলে সঠিক প্রজেক্ট আইডি দেখতে পাচ্ছেন, অ্যাক্সেসের অনুমতি দেওয়ার জন্য যেকোন প্রম্পট নিশ্চিত করুন।
- টেরাফর্ম-বিল্ড নামে একটি ফোল্ডার তৈরি করুন এবং ফোল্ডারে যান
mkdir terraform-build && cd terraform-build
- একটি main.tf এবং variable.tf ফাইল তৈরি করুন।
touch main.tf variable.tf
- ক্লাউড শেল এডিটর ভিউতে যান। সম্পাদক নির্বাচন করুন, নিশ্চিত করুন যে আপনি যেকোন প্রয়োজনীয় প্রম্পটের অনুমতি দিয়েছেন যাতে ইন্টারফেস লোড হতে পারে।
- একবার লোড হলে নেভিগেট করুন, ফাইল > ফোল্ডার খুলুন এবং /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 ফাইলটি খুলুন। আমরা নীচে ব্যাখ্যা অনুযায়ী বিভিন্ন ক্রিয়া সম্পাদনের জন্য কিছু টেরাফর্ম কোড যোগ করতে যাচ্ছি।
এপিআই সক্ষম করুন | |
পাইথন-নেট নামে ভিপিসি তৈরি করুন | |
একটি সাবনেট যোগ করুন | |
দুটি ফায়ারওয়াল নিয়ম যোগ করুন | |
- কপি এবং প্রধান .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"] }
- ক্লাউড শেল টার্মিনালে ফিরে যান নিশ্চিত করুন যে আপনি টেরাফর্ম-বিল্ড ডিরেক্টরি
cd terraform-build
আছেন এবং নিম্নলিখিত কমান্ডগুলি চালান
terraform init
ওয়ার্কিং ডিরেক্টরি শুরু করে। এই ধাপটি প্রদত্ত কনফিগারেশনের জন্য প্রয়োজনীয় প্রদানকারীদের ডাউনলোড করে।
terraform plan
আপনার পরিকাঠামো স্থাপনের জন্য Terraform কী পদক্ষেপ নেবে তা দেখায় একটি কার্যকরী পরিকল্পনা তৈরি করে।
- এখন রিসোর্স তৈরি করতে
terraform apply
কমান্ড দিন এবং রান করতেyes
টাইপ করুন।
4. কাজ 2. Terraform দিয়ে NAT গেটওয়ে এবং VM তৈরি করুন
আমাদের ইন্টারনেটে আউটবাউন্ড বাহ্যিক অ্যাক্সেস মঞ্জুর করতে হবে তাই একটি ক্লাউড NAT গেটওয়ে তৈরি করুন এবং এটি সংযুক্ত করুন।
- ক্লাউড শেল খুলুন, টেরাফর্ম-বিল্ড ফোল্ডারে নেভিগেট করুন এবং নিম্নলিখিত ফাইলগুলি তৈরি করুন (মোট তিনটি ফাইল)। আমরা পরে এগুলি সম্পাদনা করব।
touch nat-vm.tf psc.tf dns.tf
- ক্লাউড শেল এডিটর ভিউতে স্যুইচ করুন এবং nat-vm.tf ফাইলটি নির্বাচন করুন এবং নিম্নলিখিত টেরাফর্ম কোড যোগ করুন। এটি একটি 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
}
- ক্লাউড শেল টার্মিনালে স্যুইচ করুন, নিশ্চিত করুন যে আপনি টেরাফর্ম-বিল্ড ফোল্ডারে আছেন এবং
terraform plan
চালান এটি আপনাকে দেখাবে যে 4 টি আইটেম যোগ করা হবে, তারপরterraform apply
চালান এবং NAT গেটওয়ে এবং দুটি ভিএম তৈরি করতেyes
টাইপ করুন।
5. টাস্ক 3. ভিএম এবং পরীক্ষা কনফিগার করুন
- VM দৃষ্টান্তগুলিতে নেভিগেট করুন। py-vm1 দিয়ে শুরু হওয়া vm নির্বাচন করুন। SSH নির্বাচন করুন।
- একবার আপনি py-vm1 এ SSH করলে,
sudo -i
টাইপ করে রুট সক্রিয় করুন - আপনার venv পরিবেশ সক্রিয় করুন:
cd py-gem-env
source env/bin/activate
- এখন এর পরে কিছু পরীক্ষা করার জন্য এটি প্রমাণীকরণ করা যাক। VM-এ নিম্নলিখিত কমান্ডটি চালান, অনুরোধ করা হলে y টিপুন।
gcloud auth application-default login
- পরবর্তীতে https:// দিয়ে শুরু হওয়া ইউআরএলটি কপি করুন আপনার ল্যাব ব্রাউজার উইন্ডোতে একটি নতুন ট্যাব খুলুন এবং ইউআরএলটি পেস্ট করুন। প্রম্পটগুলি গ্রহণ করুন।
- যখন আপনি নিম্নলিখিত নির্বাচনী অনুলিপিটি দেখতে পান, vm py-vm1 সেশনে ফিরে যান এবং অনুমোদন কোড লিখুন: আপনার কপি করা কোডটি পেস্ট করুন এবং প্রমাণীকরণের জন্য এন্টার টিপুন।
- এখন আসুন আমরা Vertex Gemini API-এর সাথে সংযোগ করতে পারি কিনা তা দেখার জন্য একটি দ্রুত পরীক্ষা করি, এটি us-central1-aiplatform.googleapis.com ব্যবহার করে তাই আমরা ট্র্যাফিক রুটগুলি দেখতে সেই ঠিকানায় একটি
dig
করব।
dig us-central1-aiplatform.googleapis.com
- আপনি অনুরূপ কিছু দেখতে হবে (ঠিকানা ভিন্ন হবে)। নোট করুন পাথটি সর্বজনীন আইপি ঠিকানার মাধ্যমে হয় যেহেতু 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
- এবার নিচেরটা কপি করে পেস্ট করুন। এটি মিথুনকে জিজ্ঞাসা করে " গুগল লোগোর সমস্ত রঙ কী " এবং " আকাশের রঙ কী "।
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))
- রান করার জন্য এন্টার টিপুন এবং ফলাফল দেখুন।
- এই অনুরোধটি পাবলিক API এর মাধ্যমে Vertex অ্যাক্সেস করেছে।
- বন্ধ SSH অধিবেশন চলুন চালিয়ে যান.
এখন একই কনফিগারেশন দিয়ে py-vm2 কনফিগার করুন
- VM দৃষ্টান্তগুলিতে নেভিগেট করুন। py-vm2 দিয়ে শুরু হওয়া vm নির্বাচন করুন। SSH নির্বাচন করুন।
- একবার আপনি py-vm2- তে SSH করলে -**** **
sudo -i
** লিখে রুট সক্ষম করুন - আপনার venv পরিবেশ সক্রিয় করুন:
cd py-gem-env
source env/bin/activate
- এখন এর পরে কিছু পরীক্ষা করার জন্য এটি প্রমাণীকরণ করা যাক। VM এ নিম্নলিখিত কমান্ডটি চালান
gcloud auth application-default login
- পরবর্তীতে https:// দিয়ে শুরু হওয়া ইউআরএলটি কপি করুন আপনার ল্যাব ব্রাউজার উইন্ডোতে একটি নতুন ট্যাব খুলুন এবং ইউআরএলটি পেস্ট করুন। প্রম্পটগুলি গ্রহণ করুন।
- যখন আপনি নিম্নলিখিত নির্বাচনী অনুলিপিটি দেখতে পান, vm py-vm2 সেশনে ফিরে যান এবং অনুমোদন কোড লিখুন: আপনার কপি করা কোডটি পেস্ট করুন এবং প্রমাণীকরণের জন্য এন্টার টিপুন।
- এখন আমরা Vertex Gemini API এর সাথে সংযোগ করতে পারি কিনা তা দেখার জন্য একটি দ্রুত পরীক্ষা করি। এই কমান্ডটি us-central1-aiplatform.googleapis.com-এ 4টি পিং ব্যবহার করবে তাই আমরা API-এর সর্বজনীন ঠিকানা থেকে একটি প্রতিক্রিয়া পাব।
ping -c 4 us-central1-aiplatform.googleapis.com
- আমরা পরে এই VM পরীক্ষা করতে ফিরে আসব। SSH সেশন বন্ধ করুন এবং চলুন চালিয়ে যান।
6. টাস্ক 4. Terraform দিয়ে googleapis-এ PSC এন্ডপয়েন্ট তৈরি করুন
আমাদের Vertex API এন্ডপয়েন্টে প্রাইভেট কানেক্টিভিটি সক্ষম করতে আমরা Google API-এর জন্য একটি প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট তৈরি করব। এটি আমাদের একটি ব্যক্তিগত আইপি ঠিকানা ব্যবহার করার অনুমতি দেবে যা আমরা আমাদের প্রয়োজনীয় Google APIগুলিতে ট্র্যাফিক রুট করার জন্য বরাদ্দ করি, এই ক্ষেত্রে Vertex।
- ইতিমধ্যে খোলা না থাকলে এডিটর ভিউতে ক্লাউড শেল খুলুন। আমরা নিম্নলিখিত তৈরি করতে যাচ্ছি:
- PSC এন্ডপয়েন্ট 192.168.255.250 এর জন্য একটি আইপি তৈরি করুন (
resource "google_compute_global_address" "default")
- Google API তে একটি PSC এন্ডপয়েন্ট তৈরি করুন (
resource "google_compute_global_forwarding_rule" "default")
টেরাফর্ম-বিল্ড ফোল্ডারে 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 = ""
}
- ক্লাউড শেল টার্মিনালে স্যুইচ করুন, নিশ্চিত করুন যে আপনি
terraform-build
ফোল্ডারে আছেন। তারপরterraform init
চালান তারপরterraform plan
চালান এটি আপনাকে দেখাবে যে 2 টি আইটেম যোগ করা হবে,
তারপরterraform apply
প্রয়োগ করুন এবং আইপি এবং পিএসসি গুগল এপিআই এন্ডপয়েন্ট তৈরি করতেyes
টাইপ করুন। - শেষ বিন্দু বিদ্যমান যাচাই করুন
gcloud compute addresses list --filter="name=( 'vertex-ip' ...)"
gcloud compute forwarding-rules describe pscvertexgemini --global
7. টাস্ক 5. আইপি ঠিকানার মাধ্যমে এন্ডপয়েন্ট সংযোগ যাচাই করুন
মিথুনের সাথে সংযোগ করতে ব্যক্তিগত এন্ডপয়েন্ট ব্যবহার করে সংযোগ করা যাক।
- VM ইনস্ট্যান্স py-vm1 এ যান। VM-এ SSH এবং SSH নির্বাচন করুন
-
sudo -i
টাইপ করে রুট অ্যাক্সেস লাভ করুন - আমরা শুধুমাত্র PSC এন্ডপয়েন্ট পরীক্ষা করার জন্য এই স্বতন্ত্র দৃষ্টান্তটি ব্যবহার করব যাতে আমরা নিম্নলিখিত এন্ট্রি সহ হোস্ট ফাইলটি সংশোধন করব
echo 192.168.255.250 us-central1-aiplatform.googleapis.com >> /etc/hosts
cat /etc/hosts
-
ping
কমান্ড ব্যবহার করে us-central1-aiplatform.googleapis.com- এর সংযোগ পথটি পরীক্ষা করুন। এটি হোস্ট ফাইলগুলিতে আপনার প্রবেশ করা আইপি ঠিকানাটি পিং করবে। এটি একটি PSC এন্ডপয়েন্ট এবং আপনার পিংস ব্যর্থ হবে।
ping -c 2 us-central1-aiplatform.googleapis.com
- কনসোলে ফিরে যান এবং VM ইনস্ট্যান্স py-vm1- এর আরেকটি উদাহরণ খুলুন। VM-এ SSH এবং SSH নির্বাচন করুন
-
sudo -i
টাইপ করে রুট অ্যাক্সেস লাভ করুন - একটি TCP ডাম্পে সংযোগ দেখতে অনুসরণ কমান্ডটি চালান
sudo tcpdump -i any port 53 -n or host us-central1-aiplatform.googleapis.com
- এখন VM ইন্সট্যান্স py-vm1- এর প্রথম SSH ইনস্ট্যান্সে ফিরে যান
- ব্যবহার করে env সক্রিয় করুন
cd py-gem-env
source env/bin/activate
- এখন পাইথন পরীক্ষা করা যাক। ipython ইন্টারফেস সক্রিয় করতে
ipython
টাইপ করুন। এবার যানবাহন PSC শেষ পয়েন্ট দিয়ে প্রবাহিত হবে।
ipython
- এবার নিচেরটা কপি করে পেস্ট করুন। এটি জেমিনিকে জিজ্ঞাসা করে " গুগল লোগোর সব রঙ কী " এবং " নায়াগ্রা জলপ্রপাতের বর্ণনা করুন "।
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))
- রান করার জন্য এন্টার টিপুন এবং ফলাফল দেখুন।
- VM ইন্সট্যান্স py-vm1-এর দ্বিতীয় দৃষ্টান্তে ফিরে যান। আপনি TCPDUMP এর ফলাফল দেখতে হবে। আপনি ভিএম-এর আইপি অ্যাড্রেস এবং PSC এন্ডপয়েন্ট আইপি অ্যাড্রেস সহ আমাদের-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
- VM ইনস্ট্যান্স py-vm1- এ সমস্ত SSH সেশন বন্ধ করুন
8. টাস্ক 6. Terraform (ঐচ্ছিক) দিয়ে googleapis-এ ম্যানুয়াল DNS এন্ট্রি তৈরি করুন
আপনি ব্যক্তিগত DNS ব্যবহার করে PSC এন্ডপয়েন্টে নির্দেশ করতে একটি ম্যানুয়াল DNS এন্ট্রি তৈরি করতে পারেন। এটি আপনার দ্বারা নির্ধারিত সমস্ত নেটওয়ার্ককে প্রভাবিত করবে৷
- নেটওয়ার্ক পরিষেবাগুলিতে নেভিগেট করুন এবং ক্লাউড ডিএনএস নির্বাচন করুন।
- অঞ্চলগুলিতে আপনি Google API-এর জন্য ব্যক্তিগত পরিষেবা সংযোগের জন্য একটি স্বয়ংক্রিয়ভাবে তৈরি অঞ্চল দেখতে পাবেন, জোন প্রকার পরিষেবা ডিরেক্টরি সহ। এটি ** SERVICE-ENDPOINT ফরম্যাটের সাথে PSC এন্ডপয়েন্টের সাথে সংযোগ করতে ব্যবহার করা যেতে পারে। p.googleapis.com উদাহরণ:
aiplatform-pscvertexgemini.p.googleapis.com
- এই ক্ষেত্রে আমরা ম্যানুয়ালি একটি ব্যক্তিগত DNS এন্ট্রি তৈরি করতে চাই। কনফিগারেশন নিম্নরূপ হবে
- "googleapis.com" এর জন্য "googleapis-private" নামে একটি ব্যক্তিগত DNS জোন তৈরি করুন এবং এটিকে "python-net" নেটওয়ার্কে সীমাবদ্ধ করুন৷
- আইপি ঠিকানা "192.168.255.250" এ "googleapis.com" ম্যাপ করতে একটি রেকর্ড যুক্ত করুন ।
- "googleapis.com" এর সমস্ত সাবডোমেন (যেমন, www.googleapis.com) "googleapis.com"-এ পুনর্নির্দেশ করতে একটি CNAME রেকর্ড যোগ করুন ।
- ইতিমধ্যে খোলা না থাকলে এডিটর ভিউতে ক্লাউড শেল খুলুন। টেরাফর্ম-বিল্ড ফোল্ডারে 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."]
}
- ক্লাউড শেল টার্মিনালে স্যুইচ করুন, নিশ্চিত করুন যে আপনি
terraform-build
ফোল্ডারে আছেন। তারপরterraform plan
চালান এটি আপনাকে দেখাবে কোন আইটেম যোগ করা হবে,
তারপরterraform apply
প্রয়োগ করুন এবং ব্যক্তিগত DNS এন্ট্রি তৈরি করতেyes
টাইপ করুন। - আপনি একটি A রেকর্ডের সাথে একটি সেট আপ দেখতে পাবেন এবং এইরকম CNAME দেখতে হবে৷
- পরবর্তীতে আমরা py-vm2 এ এই পরিবর্তনগুলির সাথে সংযোগ যাচাই করি
9. টাস্ক 7. আইপি ঠিকানার মাধ্যমে এন্ডপয়েন্ট সংযোগ যাচাই করুন (ঐচ্ছিক)
মিথুনের সাথে সংযোগ করতে ব্যক্তিগত এন্ডপয়েন্ট ব্যবহার করে সংযোগ করা যাক।
- VM ইনস্ট্যান্স py-vm2 এ যান। VM-এ SSH এবং SSH নির্বাচন করুন
-
sudo -i
টাইপ করে রুট অ্যাক্সেস লাভ করুন -
ping
কমান্ড ব্যবহার করে us-central1-aiplatform.googleapis.com- এর সংযোগ পথটি পরীক্ষা করুন। এটি ব্যক্তিগত DNS-এ IP ঠিকানাকে পিং করবে, Googleapis-এর জন্য একটি রেকর্ড। এই IP একটি PSC এন্ডপয়েন্ট এবং আপনার পিংস ব্যর্থ হবে।
ping -c 2 us-central1-aiplatform.googleapis.com
-
aiplatform-pscvertexgemini.p.googleapis.com
এর সাথে PSC Google API-এর জন্য স্বয়ংক্রিয়ভাবে তৈরি DNS এন্ট্রি ব্যবহার করে একটিping
দিয়ে সংযোগের পথ পরীক্ষা করুন। এটি PSC এন্ডপয়েন্টের IP ঠিকানা নির্দেশ করে এবং আপনার পিংগুলি ব্যর্থ হবে।
ping -c 2 aiplatform-pscvertexgemini.p.googleapis.com
-
dig
কমান্ড ব্যবহার করে us-central1-aiplatform.googleapis.com- এর সংযোগ পথটি পরীক্ষা করুন। এটি PSC এন্ডপয়েন্টের IP ঠিকানা হওয়া উচিত।
dig us-central1-aiplatform.googleapis.com
- কনসোলে ফিরে যান এবং VM ইন্সট্যান্স py-vm2 এর আরেকটি উদাহরণ খুলুন। VM-এ SSH এবং SSH নির্বাচন করুন
-
sudo -i
টাইপ করে রুট অ্যাক্সেস লাভ করুন - একটি TCP ডাম্পে সংযোগ দেখতে অনুসরণ কমান্ডটি চালান
sudo tcpdump -i any port 53 -n or host us-central1-aiplatform.googleapis.com
- এখন VM ইন্সট্যান্স py-vm2 এর প্রথম SSH ইনস্ট্যান্সে ফিরে যান
- ব্যবহার করে env সক্রিয় করুন
cd py-gem-env
source env/bin/activate
- এখন পাইথন পরীক্ষা করা যাক। ipython ইন্টারফেস সক্রিয় করতে
ipython
টাইপ করুন।
ipython
- এবার নিচেরটা কপি করে পেস্ট করুন। এটি জেমিনিকে জিজ্ঞাসা করে " গুগল লোগোর সমস্ত রঙ কী " এবং " জেমিনি প্রো-এর দুটি বৈশিষ্ট্য কী "।
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))
- রান করার জন্য এন্টার টিপুন এবং ফলাফল দেখুন।
- VM ইন্সট্যান্স py-vm2-এর দ্বিতীয় দৃষ্টান্তে ফিরে যান। আপনি TCPDUMP এর ফলাফল দেখতে হবে। আপনি ভিতরে এবং বাইরে লক্ষ্য করবেন এবং VM-এর IP ঠিকানা আমাদের সাথে সংযোগ করতে PSC এন্ডপয়েন্ট IP ঠিকানা ব্যবহার করছে-central1-aiplatform.googleapis.com
VM ইনস্ট্যান্স py-vm2- এ সমস্ত SSH সেশন বন্ধ করুন
10. ক্লিন আপ
- ক্লাউড শেল- এ যান নিশ্চিত করুন যে আপনি টেরাফর্ম-বিল্ড ডিরেক্টরি
cd terraform-build
আছেন এবং নিম্নলিখিতterraform destroy
কমান্ডটি চালান এবংyes
টাইপ করুন টেরাফর্মের সাথে আপনার প্রকল্পে আপনার তৈরি করা সমস্ত সংস্থান মুছে ফেলা হবে।
11. অভিনন্দন
অভিনন্দন, আপনি সফলভাবে পাবলিক API ঠিকানা এবং ব্যক্তিগতভাবে Google API-এর জন্য Private Service Connect Endpoint ব্যবহার করে Vertex Gemini চ্যাটে সফলভাবে সংযুক্ত হয়েছেন৷ এই কার্যকারিতাটি আপনার অন-প্রিম/অন্যান্য ক্লাউড পরিবেশে ব্যক্তিগত API সংযোগ প্রসারিত করতে পারে যা (ইন্টারকানেক্ট, ক্রস-ক্লাউড ইন্টারকানেক্ট এবং ভিপিসি) এর মাধ্যমে সংযুক্ত।
পরবর্তী পদক্ষেপ / আরও জানুন
আপনি Vertex AI নেটওয়ার্কিং সম্পর্কে আরও পড়তে পারেন
আপনার পরবর্তী ল্যাব নিন
Google ক্লাউডের সাথে আপনার অনুসন্ধান চালিয়ে যান, এবং এই অন্যান্য Google ক্লাউড স্কিল বুস্ট ল্যাবগুলি দেখুন: