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

২. উদ্দেশ্যসমূহ
এই ল্যাবে তোমরা নিম্নলিখিত কাজটি কীভাবে সম্পাদন করতে হয় তা শিখবে:
- পাইথন এসডিকে ব্যবহার করার জন্য ভিএম ইনস্ট্যান্স সেট আপ করুন।
- Vertex AI-তে Anthropic মডেল কার্ডটি সক্রিয় করুন
- পাইথন স্ক্রিপ্টের মাধ্যমে Anthropic Claude Opus 4.6 এবং Gemini 3.1 Pro- এর সাথে সংযোগ করুন।
- Googleapis-এর সাথে সংযোগ করার জন্য PSC এন্ডপয়েন্ট কনফিগার করুন।
- ম্যানুয়াল ডিএনএস এন্ট্রি কনফিগার করুন
- Googleais-এর সাথে সংযোগের পথ যাচাই করুন
- মডেলগুলো কোয়েরি করার জন্য পাইথন স্ক্রিপ্টটি চালান।
ল্যাব সেটআপ
স্ব-গতিতে পরিবেশ সেটআপ
- Google Cloud Console- এ সাইন-ইন করুন এবং একটি নতুন প্রজেক্ট তৈরি করুন অথবা বিদ্যমান কোনো প্রজেক্ট পুনরায় ব্যবহার করুন। যদি আপনার আগে থেকে Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তবে আপনাকে অবশ্যই একটি তৈরি করতে হবে।



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

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

এই ভার্চুয়াল মেশিনটিতে আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুলস লোড করা আছে। এটি একটি স্থায়ী ৫ জিবি হোম ডিরেক্টরি প্রদান করে এবং গুগল ক্লাউডে চলে, যা নেটওয়ার্ক পারফরম্যান্স ও অথেনটিকেশনকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার সমস্ত কাজ একটি ব্রাউজারের মধ্যেই করা যাবে। আপনাকে কিছুই ইনস্টল করতে হবে না।
৩. পরিবেশ স্থাপন
আমরা ফায়ারওয়াল নিয়ম সহ একটি কাস্টম ভিপিসি তৈরি করব। যদি আপনার আগে থেকেই একটি ভিপিসি এবং প্রজেক্ট থাকে, তবে আপনি এই অংশটি এড়িয়ে যেতে পারেন।
আপনার কনসোলের উপরে ডানদিকে অবস্থিত ক্লাউড শেল খুলুন। এবং নিম্নরূপভাবে কনফিগার করুন: 
- এই ল্যাবে আমরা যে এপিআইগুলো ব্যবহার করব তার কয়েকটি সক্রিয় করুন।
gcloud services enable dns.googleapis.com
gcloud services enable aiplatform.googleapis.com
gcloud services enable servicedirectory.googleapis.com
- কিছু ভেরিয়েবল সেট করুন। এই ভেরিয়েবলগুলো হলো কাস্টম ভিপিসি-র প্রজেক্ট আইডি এবং নেটওয়ার্ক আইডি (আপনি ধাপ ৪-এ ভিপিসি-টি তৈরি করবেন)।
projectid=$(gcloud config get-value project)
networkid=anthropic-net
echo $projectid
echo $networkid
- এখন একটি কাস্টম ভিপিসি (anthropic-net), সাবনেট (vm1-subnet) এবং ফায়ারওয়াল নিয়ম তৈরি করুন।
gcloud compute networks create $networkid \
--project=$projectid \
--subnet-mode=custom \
--mtu=1460 \
--bgp-routing-mode=global
gcloud compute networks subnets create vm-subnet \
--project=$projectid --range=10.0.88.0/24 \
--stack-type=IPV4_ONLY --network=$networkid \
--region=us-east1
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
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
gcloud compute firewall-rules create $networkid-allow-web \
--project=$projectid \
--network=$networkid \
--description="Allows TCP connections on port 8080." \
--direction=INGRESS --priority=1000 \
--source-ranges=0.0.0.0/0 --action=ALLOW \
--rules=tcp:8080
৪. ভার্টেক্স মডেল গার্ডেনে অ্যানথ্রোপিক সক্রিয় করুন
আমাদের ইন্টারনেটে বহির্গামী বাহ্যিক অ্যাক্সেস মঞ্জুর করতে হবে, তাই চলুন একটি ক্লাউড ন্যাট গেটওয়ে তৈরি করে সংযুক্ত করি।
- Vertex AI ড্যাশবোর্ডে যান এবং মডেল গার্ডেন নির্বাচন করুন।
- Anthropic অনুসন্ধান করুন এবং Claude Opus 4.6 নির্বাচন করুন।

- ‘সক্ষম করুন’ নির্বাচন করুন, আপনাকে কিছু তথ্য পূরণ করতে হবে। ফর্মটি পূরণ করে ‘ পরবর্তী’ নির্বাচন করুন।
- শেষ পৃষ্ঠায় Claude 4.6 Opus সক্রিয় করতে Agree নির্বাচন করুন।

- আপনি সফলতার পৃষ্ঠাটি দেখতে পাবেন।

৫. NAT গেটওয়ে এবং VM তৈরি করুন
আমাদের ইন্টারনেটে বহির্গামী বাহ্যিক অ্যাক্সেস মঞ্জুর করতে হবে, তাই চলুন একটি ক্লাউড ন্যাট গেটওয়ে তৈরি করে সংযুক্ত করি।
ক্লাউড শেলে নিম্নলিখিত কমান্ডগুলি ব্যবহার করুন
- ক্লাউড NAT এবং ক্লাউড NAT গেটওয়ে তৈরি করুন
gcloud compute routers create anthro-out-nat \
--network $networkid \
--region us-east1
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
এখন পাইথন এসডিকে ব্যবহার করে ভার্টেক্স এআই-এর অ্যানথ্রোপিক অ্যাক্সেস করার জন্য একটি ভিএম তৈরি করা যাক।
- একই ক্লাউড শেল সেশনে নিম্নলিখিত নির্দেশাবলী ব্যবহার করে 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
apt-get update
apt-get install python3 python3-dev python3-venv tcpdump dnsutils -y
python3 -m venv /opt/py-anthro-env
/opt/py-anthro-env/bin/pip install -U google-genai 'anthropic[vertex]' rich
chmod -R 777 /opt/py-anthro-env"
আপনি দেখবেন একটি ভিএম তৈরি হয়েছে যেটিতে কোনো পাবলিক আইপি অ্যাড্রেস নেই। এবার চলুন ভিএম-গুলো কনফিগার করা যাক।
৬. ভিএম কনফিগার করুন এবং পরীক্ষা করুন
- Google Cloud Shell-এ anthro-vm নামের নতুন VM-টিতে SSH করুন। (VM-টি সম্পূর্ণভাবে সেট-আপ হয়েছে কিনা তা নিশ্চিত করতে আপনাকে ৩ মিনিট অপেক্ষা করতে হতে পারে)
gcloud compute ssh anthro-vm \
--project=$projectid \
--zone=us-east1-b \
--tunnel-through-iap \
-- -L 8080:localhost:8080
- সংযোগ স্থাপিত হলে, আমরা Vertex Gemini API-এর সাথে সংযোগ করতে পারি কিনা তা দ্রুত পরীক্ষা করে দেখা যাক।
dig *-aiplatform.googleapis.com
- আপনি একই রকম কিছু দেখতে পাবেন ( ঠিকানাগুলো ভিন্ন হবে )। লক্ষ্য করুন, যেহেতু এপিআইটি একটি পাবলিক এপিআই, তাই পাথটি পাবলিক আইপি অ্যাড্রেসের মাধ্যমে যায়।
; <<>> DiG 9.18.39-0ubuntu0.24.04.2-Ubuntu <<>> *-aiplatform.googleapis.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3728 ;; 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 172.217.204.95 *-aiplatform.googleapis.com. 300 IN A 172.217.203.95 *-aiplatform.googleapis.com. 300 IN A 173.194.215.95 *-aiplatform.googleapis.com. 300 IN A 142.250.98.95 *-aiplatform.googleapis.com. 300 IN A 173.194.217.95 *-aiplatform.googleapis.com. 300 IN A 142.251.107.95 *-aiplatform.googleapis.com. 300 IN A 74.125.196.95
- এখন আপনার venv এনভায়রনমেন্টটি সক্রিয় করুন:
source /opt/py-anthro-env/bin/activate
- পরবর্তীতে কিছু পরীক্ষা করার জন্য চলুন এখন এটিকে প্রমাণীকরণ করি। ভিএম-এ নিম্নলিখিত কমান্ডটি চালান, অনুরোধ করা হলে y চাপুন।
gcloud auth application-default login
- এরপর https:// দিয়ে শুরু হওয়া ইউআরএলটি কপি করুন, আপনার ল্যাব ব্রাউজার উইন্ডোতে একটি নতুন ট্যাব খুলে ইউআরএলটি পেস্ট করুন। নির্দেশাবলী গ্রহণ করুন।
- যখন আপনি নিম্নলিখিতটি দেখতে পাবেন, তখন কপি নির্বাচন করুন, vm anthro-vm সেশনে ফিরে যান এবং 'Enter authorization code:' এর জায়গায় আপনার কপি করা কোডটি পেস্ট করুন ও প্রমাণীকরণের জন্য এন্টার চাপুন।

- এখন চলুন আমাদের
envপাইথন ব্যবহার করি। এটিsuper-gen-ai.pyএকটি পাইথন ফাইল তৈরি করে, যা Claude Opus 4.6-কে জিজ্ঞাসা করে, " Agentic AI তৈরির মূল ধাপগুলো কী কী? " তারপর এর আউটপুট নিয়ে Gemini 3.1 pro-তে পাঠায়, যা একটি সারাংশ তৈরি করে এবং এরপর Gemini 3 pro একটি ছবি তৈরি করে যা VM-এ সংরক্ষণ করে।
নিচেরটি কপি করে পেস্ট করুন।
cat << 'EOF' > super-gen-ai.py
import os
import subprocess
import google.auth
from google import genai
from google.genai import types
from anthropic import AnthropicVertex
from rich.console import Console
from rich.panel import Panel
from rich.spinner import SPINNERS
from rich.text import Text
# Custom Super Me Animation Spinner - Now with moving power-up!
SPINNERS["super_me"] = {
"interval": 120,
"frames": [
"🧱🦖 🍄",
"🧱 🦖 🍄 ",
"🧱 🦖 🍄 ",
"🧱 🦕 🍄 ",
"🧱 🦖 🍄 ",
"🧱 🦖🍄 ",
"🧱 🌟 ",
"🧱 🌟 ",
"🧱 🌟 ",
"🧱 🌟 ",
"🧱 🌟 ",
"🧱 🌟 ",
"🧱 🌟 ",
"🧱 🌟 ",
"🧱 🌟 ",
"🧱 🌟 ",
"🧱 🌟 ",
"🧱 🌟 ",
"🧱🌟 "
]
}
console = Console()
def print_super_me_header():
super_me_art = """
[bold red] _____ [/bold red][bold green] __ __ _ [/bold green]
[bold red] / ____| [/bold red][bold green] | \/ | | |[/bold green]
[bold red] | (___ _ _ _ __ ___ _ __ [/bold red][bold green] | \ / | ___| |[/bold green]
[bold red] \___ \| | | | '_ \ / _ \ '__|[/bold red][bold green] | |\/| |/ _ \ |[/bold green]
[bold red] ____) | |_| | |_) | __/ | [/bold red][bold green] | | | | __/_|[/bold green]
[bold red] |_____/ \__,_| .__/ \___|_| [/bold red][bold green] |_| |_|\___(_)[/bold green]
[bold red] | | [/bold red][bold green] [/bold green]
[bold red] |_| [/bold red][bold green] [/bold green]
"""
console.print(super_me_art)
console.rule("[bold gold1]⭐ LEVEL 1-1: Vertex AI Orchestrator ⭐[/bold gold1]")
def main():
os.system('clear') # Clears the terminal for a clean UI
print_super_me_header()
# Create the images directory
os.makedirs("images", exist_ok=True)
with console.status("[bold yellow]🪙 Collecting Coins (Authenticating)...[/bold yellow]", spinner="super_me"):
try:
creds, project_id = google.auth.default()
LOCATION = "global"
except Exception as e:
console.print(f"[bold red]💥 GAME OVER! Authentication failed:[/bold red] {e}")
return
with console.status(f"[bold green]🍄 Powering up Clients for {project_id}...[/bold green]", spinner="super_me"):
google_client = genai.Client(vertexai=True, location=LOCATION, project=project_id)
claude_client = AnthropicVertex(region=LOCATION, project_id=project_id)
console.print("\n[bold cyan]The Kingdom needs a strategy![/bold cyan]")
# Auto-run prompt without user interaction
question = "What are the key steps to building Agentic AI?"
console.print(Panel(question, title="[bold green]Green Dino (Claude Opus) is entering the pipe...[/bold green]", border_style="green"))
with console.status("[bold green]🟢 Green Dino is clearing the level...\n[/bold green]", spinner="super_me"):
try:
msg = claude_client.messages.create(
model="claude-opus-4-6",
max_tokens=2048,
messages=[{"role": "user", "content": question}]
)
claude_text = msg.content[0].text
console.print(f"[bold green]✓ Level Cleared! Green Dino generated {len(claude_text)} bytes of strategy.[/bold green]\n")
except Exception as e:
console.print(f"[bold red]💥 BOSS ATTACK (Claude API Error):[/bold red] {e}")
return
with console.status("[bold red]🔴 Red Hero (Gemini 3.1 Pro Preview) is summarizing the map...\n[/bold red]", spinner="super_me"):
text_prompt = f"""
I am providing you with a response generated by Claude.
1. READ the text below.
2. GENERATE a concise, bulleted executive summary.
--- INPUT TEXT ---
{claude_text}
"""
try:
text_response = google_client.models.generate_content(
model="gemini-3.1-pro-preview",
contents=text_prompt,
config=types.GenerateContentConfig(temperature=0.7)
)
console.print("[bold red]✓ Super Me! Text Summary Complete.[/bold red]")
except Exception as e:
console.print(f"[bold red]💥 CHOMPER PLANT (Gemini Text Error):[/bold red] {e}")
return
with console.status("[bold blue]🔵 Mushroom Friend (Gemini 3 Pro Image) is painting the castle...\n[/bold blue]", spinner="super_me"):
image_prompt = f"""
CREATE a high-quality, futuristic illustration of autonomous AI agents for a tech blog header (16:9 aspect ratio).
Base the image directly on the following text summary:
{text_response.text}
"""
try:
image_response = google_client.models.generate_content(
model="gemini-3-pro-image-preview",
contents=image_prompt,
config=types.GenerateContentConfig(
response_modalities=['TEXT', 'IMAGE'],
temperature=0.7
)
)
console.print("[bold blue]✓ Masterpiece Complete![/bold blue]\n")
except Exception as e:
console.print(f"[bold red]💥 FALLING BLOCK (Gemini Image Error):[/bold red] {e}")
return
console.rule("[bold gold1]🚩 COURSE CLEAR! 🚩[/bold gold1]")
if text_response.text:
console.print(Panel(text_response.text.strip(),
title="[bold gold1]Gemini 3.1 Pro Summary[/bold gold1]",
border_style="gold1"))
for part in image_response.parts:
if image := part.as_image():
# Save inside the images folder with the focus-specific name
filename = "images/building-agentic.png"
image.save(filename)
console.print(f"\n[bold green]✓ REWARD SAVED:[/bold green] [underline]{os.path.abspath(filename)}[/underline]")
console.rule("[bold red]Web Server Warp Pipe[/bold red]")
with console.status("[bold yellow]Opening the warp pipe (HTTP server)...[/bold yellow]", spinner="super_me"):
# Kill any existing server first so it doesn't crash on port binding
os.system('pkill -f "http.server" > /dev/null 2>&1')
# Start the server with the root directory set specifically to 'images'
subprocess.Popen(
["python3", "-m", "http.server", "8080", "--directory", "images"],
stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL
)
console.print("[bold green]✓ Warp Pipe is open in the background![/bold green]")
console.print("[bold magenta]View your files here (Click Web Preview -> Preview on port 8080):[/bold magenta] [underline]http://localhost:8080/[/underline]\n")
if __name__ == "__main__":
main()
EOF
python3 super-gen-ai.py
স্ক্রিপ্টটি একটি আকর্ষণীয় ইন্টারফেসে চলে এবং একটি ওয়েব সার্ভার চালু করে, যাতে আপনি ছবির আউটপুট দেখতে পারেন। স্ক্রিপ্টটি পুনরায় চালাতে python3 super-gen-ai.py টাইপ করুন ।
- ক্লাউড শেলে ওয়েব প্রিভিউ অপশনটি পেতে, পোর্ট ৮০৮০-তে প্রিভিউ নির্বাচন করুন।

- খোলা ওয়েব সেশনে তৈরি হওয়া ছবিটি দেখতে building_agentic.png ফাইলটি নির্বাচন করুন। (নিচে এআই দ্বারা তৈরি নমুনা ছবি দেওয়া হলো)

- ক্লাউড শেলে ওয়েব সার্ভার থেকে বের হতে নিম্নলিখিত কমান্ডটি চালান।
pkill -f "http.server"
- এরপর ক্লাউড শেল হোমে ফিরে যেতে
exitটাইপ করুন। এটি সম্পন্ন হলে চলুন এগিয়ে যাই।
৭. googleapis-এর জন্য PSC এন্ডপয়েন্ট তৈরি করুন।
আমাদের Vertex API এন্ডপয়েন্টে প্রাইভেট কানেক্টিভিটি চালু করার জন্য আমরা googleapis-এর জন্য একটি প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট তৈরি করব। এর ফলে আমরা আমাদের নির্ধারিত একটি প্রাইভেট আইপি অ্যাড্রেস ব্যবহার করে প্রয়োজনীয় googleapis-এ (এই ক্ষেত্রে Vertex Gemini) ট্র্যাফিক রাউট করতে পারব।
- ক্লাউড শেল খোলা না থাকলে খুলে নিন। আমরা PSC এন্ডপয়েন্টের জন্য একটি IP এবং প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট তৈরি করব। এক্ষেত্রে আমরা 192.168.255.230 ব্যবহার করব।
projectid=$(gcloud config get-value project)
networkid=anthropic-net
gcloud compute addresses create anthro-ip \
--global \
--purpose=PRIVATE_SERVICE_CONNECT \
--addresses=192.168.255.230 \
--network=$networkid
gcloud compute forwarding-rules create pscanthrovertex \
--global \
--network=$networkid \
--address=anthro-ip \
--target-google-apis-bundle=all-apis
- যাচাই করুন
gcloud compute addresses list --filter="name=( 'anthro-ip' ...)"
gcloud compute forwarding-rules describe pscanthrovertex --global
৮. googleapis-এ ম্যানুয়াল ডিএনএস এন্ট্রি তৈরি করুন
আপনি প্রাইভেট ডিএনএস ব্যবহার করে পিএসসি এন্ডপয়েন্টকে নির্দেশ করার জন্য একটি ম্যানুয়াল ডিএনএস এন্ট্রি তৈরি করতে পারেন। এটি আপনার দ্বারা নির্ধারিত সমস্ত নেটওয়ার্ককে প্রভাবিত করবে। এখন আপনি নিম্নলিখিতগুলি তৈরি করবেন।
- googleapis.com-এর জন্য একটি ব্যক্তিগত DNS জোন তৈরি করুন এবং এটিকে anthropic-net নেটওয়ার্কের সাথে সংযুক্ত করুন।
- একটি A রেকর্ড যা রুট ডোমেইনকে প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট আইপি (192.168.255.230)-এর সাথে ম্যাপ করে।
- সমস্ত সাবডোমেনকে (যেমন, aiplatform.googleapis.com) রুট A রেকর্ডে পুনঃনির্দেশিত করার জন্য একটি ওয়াইল্ডকার্ড CNAME রেকর্ড।
- ক্লাউড শেলে নিম্নলিখিত কমান্ডগুলো চালান।
gcloud dns managed-zones create googleapis-private \
--description="Private DNS zone for googleapis.com" \
--dns-name="googleapis.com." \
--visibility="private" \
--networks="anthropic-net"
gcloud dns record-sets create "googleapis.com." \
--zone="googleapis-private" \
--type="A" \
--ttl="300" \
--rrdatas="192.168.255.230"
gcloud dns record-sets create "*.googleapis.com." \
--zone="googleapis-private" \
--type="CNAME" \
--ttl="300" \
--rrdatas="googleapis.com."
- A রেকর্ড এবং CNAME সঠিকভাবে তৈরি হয়েছে কিনা তা নিশ্চিত করতে জোনের রেকর্ড সেটগুলো তালিকাভুক্ত করুন।
gcloud dns record-sets list --zone="googleapis-private"
- কনসোল ভিউতে এটি দেখতে এইরকম হওয়া উচিত। আপনি একটি A রেকর্ড এবং CNAME সহ এইরকম একটি সেটআপ দেখতে পাবেন।

- এরপর আমরা anthro-vm- এ এই পরিবর্তনগুলোর সাথে সংযোগ যাচাই করব।
৯. আইপি অ্যাড্রেসের মাধ্যমে এন্ডপয়েন্ট কানেক্টিভিটি যাচাই করুন।
জেমিনিতে সংযোগ করার জন্য প্রাইভেট এন্ডপয়েন্ট ব্যবহার করে সংযোগ স্থাপন করা যাক।
- গুগল ক্লাউড শেলে anthro-vm নামের নতুন ভিএমটিতে SSH-এর মাধ্যমে প্রবেশ করুন।
gcloud compute ssh anthro-vm \
--project=$projectid \
--zone=us-east1-b \
--tunnel-through-iap \
-- -L 8080:localhost:8080
- আপনার ভিএম-এ
digকমান্ড ব্যবহার করে `aiplatform-pscanthrovertex.p.googleapis.com`- এর কানেক্টিভিটি পাথ পরীক্ষা করুন। আপনি PSC এন্ডপয়েন্টের আইপি `192.168.255.230দেখতে পাবেন।
dig aiplatform-pscanthrovertex.p.googleapis.com +noall +answer
জেমিনিতে সংযোগ করার জন্য প্রাইভেট এন্ডপয়েন্ট ব্যবহার করে সংযোগ স্থাপন করা যাক।
- এখন
digযাক আমরা Vertex Gemini API-এর সাথে সংযোগ করতে পারি কিনা।
dig *-aiplatform.googleapis.com
- আপনি একই রকম কিছু দেখতে পাবেন (ঠিকানাটি ভিন্ন হবে)। লক্ষ্য করুন, পথটি PSC এন্ডপয়েন্ট আইপি অ্যাড্রেসগুলোর মাধ্যমে যায়।
; <<>> DiG 9.18.41-1~deb12u1-Debian <<>> *-aiplatform.googleapis.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33703 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, 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 CNAME googleapis.com. googleapis.com. 300 IN A 192.168.255.230 ;; Query time: 8 msec ;; SERVER: 169.254.169.254#53(169.254.169.254) (UDP) ;; WHEN: Sat Nov 29 15:19:15 UTC 2025 ;; MSG SIZE rcvd: 86
-
pingকমান্ড ব্যবহার করে আমরা একটি দ্রুত পরীক্ষা করতে পারি। দ্রষ্টব্য: এই আইপিটি একটি পিএসসি এন্ডপয়েন্ট এবং আপনার পিংগুলো অসফল হবে।
ping -c 2 aiplatform.googleapis.com
- এখন আপনার venv এনভায়রনমেন্টটি সক্রিয় করুন:
source /opt/py-anthro-env/bin/activate
- এবার চলুন আমাদের
envপাইথন ব্যবহার করি। এটিstar-me.pyএকটি পাইথন ফাইল তৈরি করে, যা Claude Opus 4.6-কে জিজ্ঞাসা করে, " একজন নতুন ব্যবহারকারীর জন্য রুটি তৈরির একটি ধাপে ধাপে রেসিপি দিন? " তারপর এর আউটপুট নিয়ে Gemini 3.1 pro- তে পাঠায়, যা একটি সারাংশ তৈরি করে এবং Gemini 3 pro একটি ইমেজ তৈরি করে যা ভিএম-এ সংরক্ষণ করে।
cat << 'EOF' > star-me.py
import os
import subprocess
import google.auth
from google import genai
from google.genai import types
from anthropic import AnthropicVertex
from rich.console import Console
from rich.panel import Panel
from rich.spinner import SPINNERS
from rich.text import Text
# Custom Star Me Animation Spinner - Directional Flight!
SPINNERS["star_me"] = {
"interval": 120,
"frames": [
"🌌 🚀 🛸 ",
"🌌 🚀 🛸 ",
"🌌 🚀 🛸 ",
"🌌 🚀 🛸 ",
"🌌 🚀 🛸 ",
"🌌 🚀 🛸 ",
"🌌 🚀 🛸 ",
"🌌 🚀🛸 ",
"🌌 💥 ",
"🌌 ✨ ✨ ",
"🌌 ✨ ✨ ",
"🌌 ✨ ✨ ",
"🌌 ✨ ✨ ",
"🌌 "
]
}
console = Console()
def print_star_me_header():
star_me_art = """
[bold cyan] _____ _______ _____ __ __ ______ [/bold cyan]
[bold cyan] / ____|__ __|/\ | __ \ | \/ | ____|[/bold cyan]
[bold cyan] | (___ | | / \ | |__) | | \ / | |__ [/bold cyan]
[bold cyan] \___ \ | | / /\ \ | _ / | |\/| | __| [/bold cyan]
[bold cyan] ____) | | |/ ____ \| | \ \ | | | | |____ [/bold cyan]
[bold cyan] |_____/ |_/_/ \_\_| \_\ |_| |_|______|[/bold cyan]
"""
console.print(star_me_art)
console.rule("[bold gold1]⭐ EPISODE I: The AI Awakening ⭐[/bold gold1]")
def main():
os.system('clear') # Clears the terminal for a clean UI
print_star_me_header()
# Create the images directory
os.makedirs("images", exist_ok=True)
with console.status("[bold yellow]🪙 Bypassing Security (Authenticating)...[/bold yellow]", spinner="star_me"):
try:
creds, project_id = google.auth.default()
LOCATION = "global"
except Exception as e:
console.print(f"[bold red]💥 COMM LINK SEVERED! Authentication failed:[/bold red] {e}")
return
with console.status(f"[bold cyan]📡 Establishing secure connection for {project_id}...[/bold cyan]", spinner="star_me"):
google_client = genai.Client(vertexai=True, location=LOCATION, project=project_id)
claude_client = AnthropicVertex(region=LOCATION, project_id=project_id)
console.print("\n[bold cyan]The Galaxy needs sustenance![/bold cyan]")
# Auto-run prompt for the recipe
question = "Give me a step by step recipe to make a roti for a beginner?"
console.print(Panel(question, title="[bold green]Space Master (Claude Opus) is searching the archives...[/bold green]", border_style="green"))
with console.status("[bold green]🟢 Space Master is compiling the ancient texts...\n[/bold green]", spinner="star_me"):
try:
msg = claude_client.messages.create(
model="claude-opus-4-6",
max_tokens=2048,
messages=[{"role": "user", "content": question}]
)
claude_text = msg.content[0].text
console.print(f"[bold green]✓ Archives Retrieved! Space Master generated a {len(claude_text)}-character Holocron.[/bold green]\n")
except Exception as e:
console.print(f"[bold red]💥 INTERFERENCE DETECTED (Claude API Error):[/bold red] {e}")
return
with console.status("[bold gold1]🟡 Protocol Bot (Gemini 3.1 Pro Preview) is translating the recipe...\n[/bold gold1]", spinner="star_me"):
text_prompt = f"""
I am providing you with a response generated by a Space Master.
1. READ the text below.
2. GENERATE a concise, bulleted executive summary.
--- INPUT TEXT ---
{claude_text}
"""
try:
text_response = google_client.models.generate_content(
model="gemini-3.1-pro-preview",
contents=text_prompt,
config=types.GenerateContentConfig(temperature=0.7)
)
console.print("[bold gold1]✓ Translation Complete! The Protocol Bot has summarized the steps.[/bold gold1]")
except Exception as e:
console.print(f"[bold red]💥 SYSTEM FAILURE (Gemini Text Error):[/bold red] {e}")
return
with console.status("[bold blue]🔵 Astro Bot (Gemini 3 Pro Image) is projecting the hologram...\n[/bold blue]", spinner="star_me"):
image_prompt = f"""
CREATE a high-quality, beautiful illustration for a blog header (16:9 aspect ratio) of someone making roti, but with a subtle sci-fi, cinematic lighting aesthetic.
Base the image directly on the following text summary:
{text_response.text}
"""
try:
image_response = google_client.models.generate_content(
model="gemini-3-pro-image-preview",
contents=image_prompt,
config=types.GenerateContentConfig(
response_modalities=['TEXT', 'IMAGE'],
temperature=0.7
)
)
console.print("[bold blue]✓ Hologram Projection Ready![/bold blue]\n")
except Exception as e:
console.print(f"[bold red]💥 BAD COMPRESSOR (Gemini Image Error):[/bold red] {e}")
return
console.rule("[bold cyan]🚩 MISSION ACCOMPLISHED 🚩[/bold cyan]")
if text_response.text:
console.print(Panel(text_response.text.strip(),
title="[bold gold1]Protocol Bot Recipe Summary[/bold gold1]",
border_style="gold1"))
for part in image_response.parts:
if image := part.as_image():
# Save inside the images folder with the focus-specific name
filename = "images/cookingroti.png"
image.save(filename)
console.print(f"\n[bold green]✓ DATA SECURED:[/bold green] [underline]{os.path.abspath(filename)}[/underline]")
console.rule("[bold cyan]Hyperlink Uplink[/bold cyan]")
with console.status("[bold yellow]Opening the frequencies (HTTP server)...[/bold yellow]", spinner="star_me"):
# Kill any existing server first so it doesn't crash on port binding
os.system('pkill -f "http.server" > /dev/null 2>&1')
# Start the server with the root directory set specifically to 'images'
subprocess.Popen(
["python3", "-m", "http.server", "8080", "--directory", "images"],
stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL
)
console.print("[bold green]✓ Transmitting on Port 8080![/bold green]")
console.print("[bold magenta]View your files here (Click Web Preview -> Preview on port 8080):[/bold magenta] [underline]http://localhost:8080/[/underline]\n")
if __name__ == "__main__":
main()
EOF
python3 star-me.py
স্ক্রিপ্টটি একটি আকর্ষণীয় ইন্টারফেসে চলে এবং একটি ওয়েব সার্ভার চালু করে, যাতে আপনি ছবির আউটপুট দেখতে পারেন। স্ক্রিপ্টটি পুনরায় চালাতে python3 star-me.py টাইপ করুন।
- এখন ক্লাউড শেল-এর ওয়েব প্রিভিউ অপশনে গিয়ে পোর্ট ৮০৮০-তে প্রিভিউ নির্বাচন করুন।

- তৈরি হওয়া ছবিটি দেখতে cookingroti.png ফাইলটি নির্বাচন করুন। (নিচের নমুনাটি এআই দ্বারা তৈরি)

- ক্লাউড শেলে ওয়েব সার্ভার থেকে বের হয়ে ভিএম-এ ফিরে যেতে নিম্নলিখিত কমান্ডটি চালান।
pkill -f "http.server"
- এরপর ক্লাউড শেল হোমে ফিরে যেতে
exitটাইপ করুন।
১০. অভিনন্দন
অভিনন্দন, আপনি পাবলিক এপিআই অ্যাড্রেস এবং ব্যক্তিগতভাবে Googleapis-এর জন্য প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট ব্যবহার করে Vertex-এ থাকা Anthropic Claude Opus 4.6 ও Gemini 3.1 Pro- এর সাথে সফলভাবে সংযুক্ত হয়েছেন। এই কার্যকারিতাটি আপনার অন-প্রেম/অন্যান্য ক্লাউড পরিবেশে ব্যক্তিগত এপিআই সংযোগ প্রসারিত করতে পারে, যা (ইন্টারকানেক্ট, ক্রস-ক্লাউড ইন্টারকানেক্ট এবং ভিপিসি)-এর মাধ্যমে সংযুক্ত।
পরিষ্কার করা
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 anthropic-net-allow-web --quiet
gcloud compute forwarding-rules delete pscanthrovertex --global --quiet
gcloud dns record-sets delete googleapis.com. --zone googleapis-private --type A --quiet
gcloud dns record-sets delete *.googleapis.com --zone googleapis-private --type CNAME --quiet
gcloud dns managed-zones delete googleapis-private --quiet
gcloud compute addresses delete anthro-ip --global --quiet
gcloud compute networks subnets delete vm-subnet --region=us-east1 --quiet
gcloud compute networks delete anthropic-net --quiet
পরবর্তী পদক্ষেপ / আরও জানুন
আপনি ভার্টেক্স এআই নেটওয়ার্কিং সম্পর্কে আরও পড়তে পারেন।
কোডল্যাব : ADK:The Foundation ব্যবহার করে এআই এজেন্ট তৈরি করা
আপনার পরবর্তী ল্যাব নিন
Google Cloud-এর সাথে আপনার অনুসন্ধান চালিয়ে যান, এবং Google Cloud Skills Boost-এর এই অন্যান্য ল্যাবগুলোও দেখে নিন: