1. সংক্ষিপ্ত বিবরণ
ভার্টেক্স এআই এপিআই ইন্টারনেটের মাধ্যমে অ্যাক্সেস করা যেতে পারে, তবে আপনার এন্টারপ্রাইজে আপনি ইন্টারনেটের মাধ্যমে না গিয়ে ব্যক্তিগতভাবে ভার্টেক্স এআই এপিআই অ্যাক্সেস করতে চাইতে পারেন। এই ল্যাবে আপনি প্রথমে এটি করবেন।
- পাইথন এসডিকে ব্যবহার করে ভার্টেক্সের মাধ্যমে জেমিনি 3 প্রো এপিআই অ্যাক্সেস করুন
- এটি একটি VM ইনস্ট্যান্সে চলবে।
- পাবলিক ইন্টারনেটের সাথে ক্লাউড NAT এর মাধ্যমে সংযোগ স্থাপন করা হবে।
তারপর আপনি Google API-তে একটি Private Service Connect endpoint তৈরি করবেন এবং Gemini chat API-তে সংযোগ করার জন্য private endpoint ব্যবহার করার জন্য ট্রাফিক প্রবাহ পরিবর্তন করবেন। কনফিগারেশনগুলি Terraform, gcloud এবং console এর সংমিশ্রণে তৈরি হবে।
এই ল্যাবে, আপনি নিম্নলিখিত প্যাটার্নটি তৈরি করতে যাচ্ছেন।
চিত্র ১।

2. উদ্দেশ্য
এই ল্যাবে আপনি নিম্নলিখিত কাজগুলি কীভাবে সম্পাদন করবেন তা শিখবেন:
- পাইথন এসডিকে ব্যবহার করার জন্য ভিএম ইনস্ট্যান্স সেট আপ করুন
- পাইথন স্ক্রিপ্টের মাধ্যমে জেমিনি চ্যাটে সংযোগ করুন
- Googleapis- এর সাথে সংযোগ স্থাপনের জন্য PSC এন্ডপয়েন্ট কনফিগার করুন
- Googleais-এর সাথে সংযোগের পথ যাচাই করুন
- ম্যানুয়াল DNS এন্ট্রি কনফিগার করুন
স্ব-গতিসম্পন্ন পরিবেশ সেটআপ
- গুগল ক্লাউড কনসোলে সাইন-ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন অথবা বিদ্যমান একটি পুনরায় ব্যবহার করুন। যদি আপনার ইতিমধ্যেই একটি জিমেইল বা গুগল ওয়ার্কস্পেস অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।



- এই প্রকল্পের অংশগ্রহণকারীদের জন্য প্রজেক্টের নামটি প্রদর্শন করা হবে। এটি একটি অক্ষর স্ট্রিং যা Google API গুলি ব্যবহার করে না। আপনি যেকোনো সময় এটি আপডেট করতে পারেন।
- সমস্ত Google ক্লাউড প্রোজেক্টে প্রোজেক্ট আইডি অনন্য এবং অপরিবর্তনীয় (সেট করার পরে এটি পরিবর্তন করা যাবে না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত আপনি এটি কী তা নিয়ে চিন্তা করেন না। বেশিরভাগ কোডল্যাবে, আপনাকে আপনার প্রোজেক্ট আইডি (সাধারণত
PROJECT_IDহিসাবে চিহ্নিত) উল্লেখ করতে হবে। যদি আপনি জেনারেট করা আইডি পছন্দ না করেন, তাহলে আপনি অন্য একটি র্যান্ডম তৈরি করতে পারেন। বিকল্পভাবে, আপনি নিজের চেষ্টা করে দেখতে পারেন, এবং এটি উপলব্ধ কিনা তা দেখতে পারেন। এই ধাপের পরে এটি পরিবর্তন করা যাবে না এবং প্রকল্পের সময়কালের জন্য থাকবে। - আপনার তথ্যের জন্য, তৃতীয় একটি মান আছে, একটি Project Number , যা কিছু API ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি মান সম্পর্কে আরও জানুন।
- এরপর, ক্লাউড রিসোর্স/API ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে। এই কোডল্যাবটি চালানোর জন্য খুব বেশি খরচ হবে না, এমনকি কিছু খরচও হবে না। এই টিউটোরিয়ালের বাইরে বিলিং এড়াতে রিসোর্স বন্ধ করতে, আপনি আপনার তৈরি রিসোর্সগুলি মুছে ফেলতে পারেন অথবা প্রকল্পটি মুছে ফেলতে পারেন। নতুন গুগল ক্লাউড ব্যবহারকারীরা $300 USD ফ্রি ট্রায়াল প্রোগ্রামের জন্য যোগ্য।
ক্লাউড শেল শুরু করুন
যদিও গুগল ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালিত হতে পারে, এই কোডল্যাবে আপনি গুগল ক্লাউড শেল ব্যবহার করবেন, যা ক্লাউডে চলমান একটি কমান্ড লাইন পরিবেশ।
গুগল ক্লাউড কনসোল থেকে, উপরের ডানদিকের টুলবারে ক্লাউড শেল আইকনে ক্লিক করুন:

পরিবেশের সাথে সংযোগ স্থাপন এবং সংযোগ স্থাপন করতে মাত্র কয়েক মুহূর্ত সময় লাগবে। এটি সম্পন্ন হলে, আপনি এরকম কিছু দেখতে পাবেন:

এই ভার্চুয়াল মেশিনটিতে আপনার প্রয়োজনীয় সকল ডেভেলপমেন্ট টুল রয়েছে। এটি একটি স্থায়ী ৫ জিবি হোম ডিরেক্টরি অফার করে এবং গুগল ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার সমস্ত কাজ একটি ব্রাউজারেই করা যেতে পারে। আপনাকে কিছু ইনস্টল করার প্রয়োজন নেই।
৩. কাজ ১. টেরাফর্ম ব্যবহার করে পরিবেশ সেটআপ করা
আমরা ফায়ারওয়াল নিয়ম এবং সাবনেট সহ একটি কাস্টম ভিপিসি তৈরি করব। ক্লাউড কনসোলটি খুলুন এবং আপনি যে প্রকল্পটি ব্যবহার করবেন তা নির্বাচন করুন।
- ডানদিকে আপনার কনসোলের উপরে অবস্থিত ক্লাউড শেল খুলুন, নিশ্চিত করুন যে আপনি ক্লাউড শেলে সঠিক প্রজেক্ট আইডি দেখতে পাচ্ছেন, অ্যাক্সেসের অনুমতি দেওয়ার জন্য যেকোনো প্রম্পট নিশ্চিত করুন।

- টেরাফর্ম-বিল্ড নামে একটি ফোল্ডার তৈরি করুন এবং ফোল্ডারে যান।
mkdir terraform-build && cd terraform-build
- একটি main.tf এবং variable.tf ফাইল তৈরি করুন।
touch main.tf variable.tf
- ক্লাউড শেল এডিটর ভিউতে যান। এডিটর নির্বাচন করুন, নিশ্চিত করুন যে আপনি প্রয়োজনীয় প্রম্পটগুলিকে অনুমতি দিয়েছেন যাতে ইন্টারফেসটি লোড হতে পারে।
- লোড হয়ে গেলে, 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 ফাইলটি খুলুন। আমরা নিচে ব্যাখ্যা করা বিভিন্ন ক্রিয়া সম্পাদনের জন্য কিছু টেরাফর্ম কোড যুক্ত করতে যাচ্ছি।
API গুলি সক্ষম করুন | |
পাইথন-নেট নামে একটি ভিপিসি তৈরি করুন | |
একটি সাবনেট যোগ করুন | |
দুটি ফায়ারওয়াল নিয়ম যোগ করুন | |
- নিম্নলিখিতটি কপি করে মূল .tf ফাইলে পেস্ট করুন।
resource "google_project_service" "default" {
project = var.project_id
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"
project = var.project_id
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"]
}
- ক্লাউড শেল টার্মিনালে ফিরে যান। নিশ্চিত করুন যে আপনি terraform-build ডিরেক্টরিতে আছেন
cd terraform-buildএবং নিম্নলিখিত কমান্ডগুলি চালান।
terraform init
কার্যকরী ডিরেক্টরিটি শুরু করে। এই ধাপটি প্রদত্ত কনফিগারেশনের জন্য প্রয়োজনীয় সরবরাহকারীদের ডাউনলোড করে।
terraform plan
আপনার পরিকাঠামো স্থাপনের জন্য টেরাফর্ম কী কী পদক্ষেপ নেবে তা দেখানোর জন্য একটি কার্যকর পরিকল্পনা তৈরি করে।
- এখন রিসোর্স তৈরি করতে
terraform applyকমান্ডটি চালান এবংyesটাইপ করুন।
৪. কাজ ২. টেরাফর্ম দিয়ে NAT গেটওয়ে এবং ভিএম তৈরি করুন
আমাদের ইন্টারনেটে বহির্গামী বহিরাগত অ্যাক্সেস প্রদান করতে হবে তাই আসুন একটি ক্লাউড NAT গেটওয়ে তৈরি করি এবং এটি সংযুক্ত করি।
- ক্লাউড শেল খুলুন, টেরাফর্ম-বিল্ড ফোল্ডারে যান এবং নিম্নলিখিত ফাইলগুলি তৈরি করুন (মোট তিনটি ফাইল)। আমরা পরে এগুলি সম্পাদনা করব।
touch nat-vm.tf psc.tf dns.tf
- ক্লাউড শেল এডিটর ভিউতে স্যুইচ করুন এবং nat-vm.tf ফাইলটি নির্বাচন করুন এবং নিম্নলিখিত টেরাফর্ম কোডটি যুক্ত করুন। এটি একটি NAT গেটওয়ে এবং দুটি VM তৈরি করবে।
টেরাফর্ম nat-vm.tf
resource "google_compute_router" "default" {
name = "py-outbound-nat"
region = "us-east1"
network = google_compute_network.default.id
project = var.project_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"
project = var.project_id
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"
project = var.project_id
boot_disk {
initialize_params {
image = "debian-cloud/debian-12"
}
}
network_interface {
subnetwork = google_compute_subnetwork.default.id
stack_type = "IPV4_ONLY"
}
tags = ["allow-ssh", "allow-icmp"]
metadata_startup_script = <<-EOF
#! /bin/bash
sudo apt-get update
sudo apt-get install python3 python3-dev python3-venv git -y
sudo apt-get install tcpdump dnsutils -y
mkdir -p ~/py-gem-env
cd ~/py-gem-env
python3 -m venv env
source env/bin/activate
pip install --upgrade pip
pip install ipython google-genai
'
EOF
}
- ক্লাউড শেল টার্মিনালে যান, নিশ্চিত করুন যে আপনি টেরাফর্ম-বিল্ড ফোল্ডারে আছেন এবং
terraform planচালান এটি আপনাকে দেখাবে যে 4 টি আইটেম যুক্ত হবে, তারপরterraform applyচালান এবং NAT গেটওয়ে এবং ভিএম তৈরি করতেyesটাইপ করুন।
৫. কাজ ৩. ভিএম কনফিগার করুন এবং পরীক্ষা করুন
- VM ইনস্ট্যান্সে নেভিগেট করুন। py-vm1 দিয়ে শুরু হওয়া vm নির্বাচন করুন। SSH নির্বাচন করুন।
- একবার আপনি py-vm1 এ SSH করলে,
sudo -iলিখে রুট সক্রিয় করুন। - আপনার ভেনভ পরিবেশ সক্রিয় করুন:
cd py-gem-env
source env/bin/activate
- এবার এটি প্রমাণীকরণ করা যাক যাতে পরে কিছু পরীক্ষা করা যায়। VM-এ নিম্নলিখিত কমান্ডটি চালান, প্রম্পট করলে y টিপুন।
gcloud auth application-default login
- এরপর https:// দিয়ে শুরুতে প্রদর্শিত URL টি কপি করুন, আপনার ল্যাব ব্রাউজার উইন্ডোতে একটি নতুন ট্যাব খুলুন এবং URL টি পেস্ট করুন। প্রম্পটগুলি গ্রহণ করুন।
- যখন আপনি নিম্নলিখিত সিলেক্ট কপিটি দেখতে পাবেন, তখন vm py-vm1 সেশনে ফিরে যান এবং Enter authorization code: এর জন্য আপনার কপি করা কোডটি পেস্ট করুন এবং প্রমাণীকরণের জন্য enter টিপুন।

- এখন আসুন আমরা Vertex API-এর সাথে সংযোগ করতে পারি কিনা তা দেখার জন্য একটি দ্রুত পরীক্ষা করি, এটি * -aiplatform.googleapis.com ব্যবহার করে তাই আমরা ট্র্যাফিক রুটগুলি কীভাবে তা দেখার জন্য সেই ঠিকানায় একটি
digকরব।
dig *-aiplatform.googleapis.com
- তুমি একই রকম কিছু দেখতে পাবে (ঠিকানা আলাদা হবে)। মনে রাখবেন পাথটি পাবলিক আইপি অ্যাড্রেস দিয়ে তৈরি কারণ API একটি পাবলিক এপিআই। কপি করবেন না।
; <<>> DiG 9.18.41-1~deb12u1-Debian <<>> *-aiplatform.googleapis.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60947 ;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;*-aiplatform.googleapis.com. IN A ;; ANSWER SECTION: *-aiplatform.googleapis.com. 300 IN A 173.194.216.95 *-aiplatform.googleapis.com. 300 IN A 108.177.11.95 *-aiplatform.googleapis.com. 300 IN A 192.178.219.95 *-aiplatform.googleapis.com. 300 IN A 74.125.134.95 *-aiplatform.googleapis.com. 300 IN A 74.125.139.95 *-aiplatform.googleapis.com. 300 IN A 108.177.12.95 *-aiplatform.googleapis.com. 300 IN A 173.194.210.95 *-aiplatform.googleapis.com. 300 IN A 74.125.26.95 *-aiplatform.googleapis.com. 300 IN A 173.194.212.95 *-aiplatform.googleapis.com. 300 IN A 172.217.204.95
- এবার পাইথন ব্যবহার করা যাক। আইপাইথন ইন্টারফেস সক্রিয় করতে
ipythonটাইপ করুন।
ipython

- এবার নিচেরটি কপি করে পেস্ট করুন। এটি জেমিনিকে জিজ্ঞাসা করে " গুগলের লোগোর সব রঙ কী " এবং " আকাশের রঙ কী "।
from google import genai
from google.genai import types
import os
import sys
LOCATION = "global"
MODEL_ID = "gemini-3-pro-preview"
try:
client = genai.Client(vertexai=True, location=LOCATION)
print(f"Successfully initialized Google Gen AI Client (Vertex AI mode) in {LOCATION}")
except Exception as e:
print(f"Error initializing client: {e}")
print("Ensure you have installed the library: `pip install google-genai`")
print("And authenticated: `gcloud auth application-default login`")
sys.exit(1)
class SimpleChatSession:
def __init__(self, model_id):
self.model_id = model_id
self.history = []
def send_message(self, prompt, stream=True):
user_content = types.Content(
role="user",
parts=[types.Part(text=prompt)]
)
self.history.append(user_content)
try:
response_stream = client.models.generate_content_stream(
model=self.model_id,
contents=self.history,
config=types.GenerateContentConfig(
temperature=0.7
)
)
accumulated_text = ""
for chunk in response_stream:
if chunk.text:
yield chunk.text
accumulated_text += chunk.text
model_content = types.Content(
role="model",
parts=[types.Part(text=accumulated_text)]
)
self.history.append(model_content)
except Exception as e:
print(f"\n[Error during generation: {e}]")
def get_chat_response(session: SimpleChatSession, prompt: str):
print(f"\n--- User: {prompt} ---")
print("--- Model: ", end="")
stream_generator = session.send_message(prompt)
full_text = ""
for chunk_text in stream_generator:
full_text += chunk_text
print(chunk_text, end="", flush=True)
print()
return full_text
if __name__ == "__main__":
chat_session = SimpleChatSession(MODEL_ID)
get_chat_response(chat_session, "Hello.")
get_chat_response(chat_session, "What are all the colors of the Google logo?")
get_chat_response(chat_session, "What color is the sky?")
- রান করতে এবং ফলাফল দেখতে দুবার এন্টার টিপুন।
- এই অনুরোধটি পাবলিক API এর মাধ্যমে Vertex অ্যাক্সেস করেছে।
- SSH সেশন বন্ধ করুন, চলুন চালিয়ে যাই।
৬. টাস্ক ৪. টেরাফর্ম দিয়ে গুগলাপিসের জন্য পিএসসি এন্ডপয়েন্ট তৈরি করুন
আমাদের Vertex API এন্ডপয়েন্টে ব্যক্তিগত সংযোগ সক্ষম করার জন্য আমরা Google API গুলির জন্য একটি Private Service Connect এন্ডপয়েন্ট তৈরি করব। এটি আমাদের প্রয়োজনীয় Google API গুলিতে ট্র্যাফিক রুট করার জন্য নির্ধারিত একটি ব্যক্তিগত IP ঠিকানা ব্যবহার করার অনুমতি দেবে, এই ক্ষেত্রে Vertex।
- যদি ইতিমধ্যে খোলা না থাকে, তাহলে এডিটর ভিউতে ক্লাউড শেল খুলুন। আমরা নিম্নলিখিতগুলি তৈরি করতে যাচ্ছি:
- PSC এন্ডপয়েন্ট 192.168.255.250 এর জন্য একটি IP তৈরি করুন (
resource "google_compute_global_address" "default") - গুগল এপিআই-তে একটি পিএসসি এন্ডপয়েন্ট তৈরি করুন (
resource "google_compute_global_forwarding_rule" "default")
terraform-build ফোল্ডারে psc.tf ফাইলটি খুলুন। ফাইলটিতে নিম্নলিখিত কোডটি যোগ করুন।
টেরাফর্ম 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টাইপ করুন IP এবং PSC Google API গুলির এন্ডপয়েন্ট তৈরি করতে। - এন্ডপয়েন্ট বিদ্যমান কিনা তা যাচাই করুন
gcloud compute addresses list --filter="name=( 'vertex-ip' ...)"
gcloud compute forwarding-rules describe pscvertexgemini --global
৭. টাস্ক ৫. টেরাফর্ম ব্যবহার করে গুগলাপিসে ম্যানুয়াল ডিএনএস এন্ট্রি তৈরি করুন
আপনি ব্যক্তিগত DNS ব্যবহার করে PSC এন্ডপয়েন্টে নির্দেশ করার জন্য একটি ম্যানুয়াল DNS এন্ট্রি তৈরি করতে পারেন। এটি আপনার নির্ধারিত সমস্ত নেটওয়ার্ককে প্রভাবিত করবে।
- নেটওয়ার্ক পরিষেবাগুলিতে নেভিগেট করুন এবং ক্লাউড ডিএনএস নির্বাচন করুন।
- জোনে আপনি Private Service Connect for Google API-এর জন্য একটি স্বয়ংক্রিয়ভাবে তৈরি জোন দেখতে পাবেন, যেখানে জোন টাইপ সার্ভিস ডিরেক্টরি থাকবে। ** SERVICE-ENDPOINT ফর্ম্যাট ব্যবহার করে PSC এন্ডপয়েন্টের সাথে সংযোগ স্থাপনের জন্য এটি ব্যবহার করা যেতে পারে। p.googleapis.com উদাহরণ:
aiplatform-pscvertexgemini.p.googleapis.com - এই ক্ষেত্রে আমরা ম্যানুয়ালি একটি ব্যক্তিগত DNS এন্ট্রি তৈরি করতে চাই। কনফিগারেশনটি নিম্নরূপ হবে
- "googleapis.com" এর জন্য "googleapis-private" নামে একটি ব্যক্তিগত DNS জোন তৈরি করুন এবং এটি "python-net" নেটওয়ার্কের মধ্যে সীমাবদ্ধ করুন।
- "googleapis.com" কে "192.168.255.250" আইপি ঠিকানায় ম্যাপ করার জন্য একটি A রেকর্ড যোগ করুন ।
- "googleapis.com" (যেমন, www.googleapis.com) এর সকল সাবডোমেন "googleapis.com" এ পুনঃনির্দেশিত করতে একটি CNAME রেকর্ড যোগ করুন ।
- যদি ইতিমধ্যে খোলা না থাকে, তাহলে এডিটর ভিউতে ক্লাউড শেল খুলুন। terraform-build ফোল্ডারে dns.tf ফাইলটি খুলুন। ফাইলটিতে নিম্নলিখিত কোডটি যোগ করুন।
টেরাফর্ম 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চালান এবংyesটাইপ করে প্রাইভেট DNS এন্ট্রি তৈরি করুন। - তুমি A রেকর্ড এবং CNAME সহ একটি সেট আপ দেখতে পাবে, যেমন দেখুন

- এরপর আমরা py-vm1- এ এই পরিবর্তনগুলির সাথে সংযোগ যাচাই করব।
৮. কাজ ৬. আইপি ঠিকানার মাধ্যমে এন্ডপয়েন্ট সংযোগ যাচাই করুন
মিথুন রাশির সাথে সংযোগ স্থাপনের জন্য প্রাইভেট এন্ডপয়েন্ট ব্যবহার করে সংযোগ স্থাপন করা যাক।
- VM Instance py-vm1 এ যান। VM তে SSH এবং SSH নির্বাচন করুন।
-
sudo -iটাইপ করে রুট অ্যাক্সেস পান -
pingকমান্ড ব্যবহার করে aiplatform.googleapis.com এর সংযোগ পথ পরীক্ষা করুন। এটি ব্যক্তিগত DNS-এ IP ঠিকানাটি পিং করবে, যা googleapis-এর জন্য একটি রেকর্ড। এই IP একটি PSC এন্ডপয়েন্ট এবং আপনার পিংগুলি ব্যর্থ হবে।
ping -c 2 aiplatform.googleapis.com
-
aiplatform-pscvertexgemini.p.googleapis.comদিয়ে PSC Google API-এর জন্য স্বয়ংক্রিয়ভাবে তৈরি DNS এন্ট্রি ব্যবহার করে একটিpingদিয়ে সংযোগ পথ পরীক্ষা করুন। এটি PSC এন্ডপয়েন্টের IP ঠিকানা নির্দেশ করে এবং আপনার পিংগুলি ব্যর্থ হবে।
ping -c 2 aiplatform-pscvertexgemini.p.googleapis.com
-
digকমান্ড ব্যবহার করে aiplatform.googleapis.com এর সংযোগ পথ পরীক্ষা করুন। এটি PSC এন্ডপয়েন্টের IP ঠিকানা হওয়া উচিত।
dig aiplatform.googleapis.com
- কনসোলে ফিরে যান এবং VM Instance py-vm1 এর আরেকটি ইনস্ট্যান্স খুলুন। VM-এ SSH এবং SSH নির্বাচন করুন।
-
sudo -iটাইপ করে রুট অ্যাক্সেস পান - একটি TCP ডাম্পে সংযোগ দেখতে অনুসরণ কমান্ডটি চালান।
sudo tcpdump -i any port 53 -n or host aiplatform.googleapis.com
- এখন VM Instance py-vm1 এর প্রথম SSH ইনস্ট্যান্সে ফিরে যান।
- ব্যবহার করে env সক্রিয় করুন
cd py-gem-env
source env/bin/activate
- এবার পাইথন পরীক্ষা করা যাক। আইপাইথন ইন্টারফেস সক্রিয় করতে
ipythonটাইপ করুন।
ipython
- এবার নিচেরটি কপি করে পেস্ট করুন। এটি জেমিনিকে জিজ্ঞাসা করে " একটি ছোট বাক্যে AI এর প্রেক্ষাপটে টোকেনাইজার কী তা সংক্ষেপে বলুন? " এবং " তিমিরা কি অসাধারণ নাকি? "।
from google import genai
from google.genai import types
import os
import sys
LOCATION = "global"
MODEL_ID = "gemini-3-pro-preview"
try:
client = genai.Client(vertexai=True, location=LOCATION)
print(f"Successfully initialized Google Gen AI Client (Vertex AI mode) in {LOCATION}")
except Exception as e:
print(f"Error initializing client: {e}")
print("Ensure you have installed the library: `pip install google-genai`")
print("And authenticated: `gcloud auth application-default login`")
sys.exit(1)
class SimpleChatSession:
def __init__(self, model_id):
self.model_id = model_id
self.history = []
def send_message(self, prompt, stream=True):
user_content = types.Content(
role="user",
parts=[types.Part(text=prompt)]
)
self.history.append(user_content)
try:
response_stream = client.models.generate_content_stream(
model=self.model_id,
contents=self.history,
config=types.GenerateContentConfig(
temperature=0.7
)
)
accumulated_text = ""
for chunk in response_stream:
if chunk.text:
yield chunk.text
accumulated_text += chunk.text
model_content = types.Content(
role="model",
parts=[types.Part(text=accumulated_text)]
)
self.history.append(model_content)
except Exception as e:
print(f"\n[Error during generation: {e}]")
def get_chat_response(session: SimpleChatSession, prompt: str):
print(f"\n--- User: {prompt} ---")
print("--- Model: ", end="")
stream_generator = session.send_message(prompt)
full_text = ""
for chunk_text in stream_generator:
full_text += chunk_text
print(chunk_text, end="", flush=True)
print()
return full_text
if __name__ == "__main__":
chat_session = SimpleChatSession(MODEL_ID)
get_chat_response(chat_session, "Hello.")
get_chat_response(chat_session, "In one short sentence summarize what is a tokenizer in the context of AI?")
get_chat_response(chat_session, "Are whales awesome or not?")
- রান করতে এবং ফলাফল দেখতে দুবার এন্টার টিপুন।
- VM Instance py-vm1 এর দ্বিতীয় ইনস্ট্যান্সে ফিরে যান। আপনি TCPDUMP এর ফলাফল দেখতে পাবেন। আপনি দেখতে পাবেন যে VM এর IP ঠিকানাটি aiplatform.googleapis.com এর সাথে সংযোগ করার জন্য PSC এন্ডপয়েন্ট IP ঠিকানা ব্যবহার করছে।
VM Instance py-vm1- এ সমস্ত SSH সেশন বন্ধ করুন
9. পরিষ্কার করা
- ক্লাউড শেলে যান এবং নিশ্চিত করুন যে আপনি terraform-build ডিরেক্টরিতে আছেন
cd terraform-build - করা সমস্ত পরিবর্তন দেখতে
terraform plan destroyচালান।
terraform plan -destroy
- তারপর
terraform destroyকমান্ডটি চালান এবং তারপরyesটাইপ করুন এবং Terraform দিয়ে আপনার প্রকল্পে তৈরি করা সমস্ত সংস্থান মুছে ফেলা হবে।
terraform destroy
১০. অভিনন্দন
অভিনন্দন, আপনি সফলভাবে Vertex-এর সাথে সংযুক্ত হয়েছেন এবং পাবলিক API ঠিকানার মাধ্যমে এবং Google API-এর জন্য Private Service Connect Endpoint ব্যবহার করে Gemini 3 pro ব্যবহার করেছেন। এই কার্যকারিতা আপনার অন-প্রেম/অন্যান্য ক্লাউড পরিবেশে (ইন্টারকানেক্ট, ক্রস-ক্লাউড ইন্টারকানেক্ট এবং VPC) ব্যক্তিগত API সংযোগ প্রসারিত করতে পারে।
পরবর্তী ধাপ / আরও জানুন
আপনি ভার্টেক্স এআই নেটওয়ার্কিং সম্পর্কে আরও পড়তে পারেন
তোমার পরবর্তী ল্যাবে যাও।
গুগল ক্লাউডের সাথে আপনার অনুসন্ধান চালিয়ে যান, এবং এই অন্যান্য গুগল ক্লাউড স্কিলস বুস্ট ল্যাবগুলি দেখুন: