১. সংক্ষিপ্ত বিবরণ
এই কোডল্যাবে, আপনি Google ADK ব্যবহার করে একটি Google Trends Analyst Agent তৈরি করবেন। এই এজেন্টটি BigQuery MCP সার্ভারকে কাজে লাগিয়ে Google Trends পাবলিক ডেটাসেট ( bigquery-public-data.google_trends ) কোয়েরি করে এমন টুলগুলোকে ডাইনামিকভাবে খুঁজে বের করে এবং এক্সিকিউট করে।
আপনি যা শিখবেন
- ADK ডেভেলপমেন্টের জন্য কীভাবে একটি প্রজেক্ট সেট আপ করবেন।
- BigQuery-এর জন্য Managed MCP সার্ভারগুলি কীভাবে সক্রিয় এবং ব্যবহার করবেন
- এমসিপি টুল ব্যবহার করে কীভাবে একটি এজেন্ট তৈরি করা যায়।
- পরীক্ষার জন্য এজেন্টটি স্থানীয়ভাবে কীভাবে চালাবেন।
- গুগল ক্লাউড রান-এ এজেন্টটি কীভাবে স্থাপন করবেন।
আপনার যা যা লাগবে
- বিলিং সক্ষম একটি গুগল ক্লাউড প্রজেক্ট
- ক্রোমের মতো একটি ওয়েব ব্রাউজার
- পাইথন ৩.১১+
এই কোডল্যাবটি সেইসব মধ্যম স্তরের ডেভেলপারদের জন্য, যাদের পাইথন এবং গুগল ক্লাউড সম্পর্কে কিছুটা ধারণা আছে।
এই কোডল্যাবটি সম্পূর্ণ করতে প্রায় ১৫-২০ মিনিট সময় লাগে।
এই কোডল্যাবে তৈরি রিসোর্সগুলোর খরচ ৫ ডলারের কম হওয়া উচিত।
২. আপনার পরিবেশ প্রস্তুত করুন
একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন
- গুগল ক্লাউড কনসোলের প্রজেক্ট সিলেক্টর পেজে, একটি গুগল ক্লাউড প্রজেক্ট নির্বাচন করুন বা তৈরি করুন ।
- আপনার ক্লাউড প্রোজেক্টের জন্য বিলিং চালু আছে কিনা তা নিশ্চিত করুন। কোনো প্রোজেক্টে বিলিং চালু আছে কিনা তা কীভাবে পরীক্ষা করবেন, তা জেনে নিন।
পরিবেশ ভেরিয়েবল সেট করুন
নিম্নলিখিত পরিবেশ ভেরিয়েবলগুলো সেট করুন।
export GOOGLE_CLOUD_PROJECT=<INSERT_YOUR_GCP_PROJECT_HERE>
export GOOGLE_GENAI_USE_VERTEXAI=1
দ্রষ্টব্য : GOOGLE_GENAI_USE_VERTEXAI=1 সেট করলে ADK, GEMINI_API_KEY এর পরিবর্তে প্রমাণীকরণের জন্য Cloud IAM ব্যবহার করে Vertex AI ব্যবহার করার নির্দেশ দেয়।
gcloud প্রমাণীকরণ এবং কনফিগার করুন
আপনার গুগল অ্যাকাউন্টে সাইন ইন করুন, আপনার সক্রিয় প্রজেক্ট সেট করুন এবং অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল কনফিগার করুন।
gcloud auth login
gcloud auth application-default login
দ্রষ্টব্য : gcloud auth login gcloud CLI কমান্ডগুলোকে প্রমাণীকরণ করে, অপরদিকে gcloud auth application-default login লোকাল অ্যাপ্লিকেশন কোডকে প্রমাণীকরণ করে।
গুগল ক্লাউড প্রজেক্ট সেট করুন:
gcloud config set project ${GOOGLE_CLOUD_PROJECT}
প্রয়োজনীয় এপিআইগুলি সক্রিয় করুন
Cloud Run, Artifact Registry, BigQuery, এবং Vertex AI-এর জন্য প্রয়োজনীয় Google Cloud API-গুলো সক্রিয় করুন।
gcloud services enable run.googleapis.com \
cloudbuild.googleapis.com \
artifactregistry.googleapis.com \
bigquery.googleapis.com \
aiplatform.googleapis.com
BigQuery-এর জন্য MCP সক্রিয় করুন
আপনার প্রোজেক্টের জন্য ম্যানেজড এমসিপি সার্ভারগুলো অবশ্যই স্পষ্টভাবে সক্রিয় করতে হবে।
gcloud beta services mcp enable bigquery.googleapis.com
একটি প্রজেক্ট ফোল্ডার তৈরি করুন
প্রথমে আপনার এজেন্টের জন্য একটি রুট ফোল্ডার এবং এজেন্ট বাস্তবায়নের জন্য একটি অভ্যন্তরীণ ফোল্ডার তৈরি করুন।
mkdir google-trends-agent
cd google-trends-agent
mkdir google_trends
৩. এজেন্ট কোড তৈরি করুন
google_trends/__init__.py নামে একটি খালি ফাইল তৈরি করুন:
touch google_trends/__init__.py
এরপর, google_trends/agent.py নামে একটি ফাইল তৈরি করুন এবং নিচের কোডটি পেস্ট করুন:
import os
import textwrap
import warnings
from datetime import date
import google.auth
from google.adk.agents import LlmAgent
from google.adk.apps import App
from google.adk.tools.mcp_tool import McpToolset
from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams
from google.auth.transport.requests import Request
# Suppress experimental ADK credential warnings
warnings.filterwarnings("ignore")
def get_agent_instruction(project_id: str) -> str:
"""Generates a clear and formatted prompt for the data analyst."""
instruction = f"""
# ROLE
You are a Google Search Trends Analyst. Your mission is to provide clear answers using SQL data.
# DATA CONSTRAINTS
- BigQuery tool `execute_sql` requires explicit billing project mapping. Use: '{project_id}'.
- Target dataset strictly: `bigquery-public-data.google_trends`
# SCHEMA DISCOVERY (CRITICAL)
1. DO NOT call `get_table_info` or `list_table_ids` (Triggers Permission Errors).
2. Run `SELECT * FROM table LIMIT 0` via `execute_sql` for field definition mapping.
# OUTPUT PRESENTATION
- Render purely as a cleanly aligned Markdown table.
- Use clear and descriptive headers for each column.
- Remove conversational preambles. Output only the results.
"""
return textwrap.dedent(instruction).strip()
def get_auth_headers() -> dict[str, str]:
"""Fetch auth headers for the project using Google Cloud Platform scopes."""
credentials, _ = google.auth.default(
scopes=["https://www.googleapis.com/auth/cloud-platform"]
)
request = Request()
credentials.refresh(request)
return {"Authorization": f"Bearer {credentials.token}"}
def get_todays_date() -> str:
"""Returns today's date in YYYY-MM-DD format."""
return date.today().isoformat()
# --- Application Initialization ---
project_id = os.environ.get("GOOGLE_CLOUD_PROJECT")
if not project_id:
raise ValueError("GOOGLE_CLOUD_PROJECT environment variable is not set")
mcp_headers = {
"Content-Type": "application/json",
"Accept": "application/json, text/event-stream",
} | get_auth_headers()
# Configure BigQuery Tools via MCP
bq_tools = McpToolset(
connection_params=StreamableHTTPConnectionParams(
url="https://bigquery.googleapis.com/mcp",
headers=mcp_headers,
)
)
# Initialize the LLM Agent
root_agent = LlmAgent(
name="google_trends",
model="gemini-3-flash-preview",
tools=[get_todays_date, bq_tools],
instruction=get_agent_instruction(project_id),
)
# Create the ADK App
app = App(name=root_agent.name, root_agent=root_agent)
৪. এজেন্টটি চালান।
এই ধাপে, আপনি একটি স্থানীয় পাইথন ভার্চুয়াল এনভায়রনমেন্ট সেট আপ করবেন, ডিপেন্ডেন্সিগুলো ইনস্টল করবেন এবং আপনার মেশিনে (বা গুগল ক্লাউড শেলে) এর আচরণ যাচাই করার জন্য এজেন্টটি চালাবেন।
- অ্যাপ্লিকেশন রুট ডিরেক্টরিতে (
google-trends-agent) যান। - একটি ভার্চুয়াল পরিবেশ তৈরি করুন:
python -m venv mcp_demo_env
source mcp_demo_env/bin/activate
- প্রয়োজনীয় পাইথন প্যাকেজগুলো ইনস্টল করুন:
pip install google-auth google-adk
আমরা আমাদের নতুন এজেন্টটি পরীক্ষা করার জন্য ADK Web ব্যবহার করব।
স্থানীয় উন্নয়ন এবং পরীক্ষার জন্য, নিম্নলিখিত কমান্ডটি চালান:
adk web
গুগল ক্লাউড শেল-এর মধ্যে ডেভেলপমেন্ট ও টেস্টিং-এর জন্য, নিম্নলিখিত কমান্ডটি চালান:
adk web --allow_origins="*"
এটি ADK ওয়েব সার্ভার চালু করবে। আপনি স্থানীয় ওয়েব ইন্টারফেস (সাধারণত http://localhost:8000 এ) ব্যবহার করে এজেন্টের সাথে যোগাযোগ করতে পারবেন।
দ্রষ্টব্য : এজেন্টটি পরীক্ষা করার জন্য আপনি আরও সহজ adk run google_trends কমান্ডটিও ব্যবহার করতে পারেন।
৫. ক্লাউড রান-এ ডেপ্লয় করুন
গুগল ক্লাউড রান-এ এজেন্টটি নিরাপদে স্থাপন করতে এই ধাপগুলো অনুসরণ করুন।
অনুদানের অনুমতি
Cloud Run-এর Vertex AI অ্যাক্সেস করতে এবং BigQuery MCP টুলস ব্যবহার করার জন্য অনুমতির প্রয়োজন।
# Get your project number automatically
PROJECT_NUMBER=$(gcloud projects describe $GOOGLE_CLOUD_PROJECT --format='value(projectNumber)')
# Vertex AI Access: To talk to the Gemini model
gcloud projects add-iam-policy-binding ${GOOGLE_CLOUD_PROJECT} \
--member="serviceAccount:${PROJECT_NUMBER}-compute@developer.gserviceaccount.com" \
--role="roles/aiplatform.user"
# MCP & BigQuery: To execute tools and run SQL jobs
gcloud projects add-iam-policy-binding ${GOOGLE_CLOUD_PROJECT} \
--member="serviceAccount:${PROJECT_NUMBER}-compute@developer.gserviceaccount.com" \
--role="roles/mcp.toolUser"
gcloud projects add-iam-policy-binding ${GOOGLE_CLOUD_PROJECT} \
--member="serviceAccount:${PROJECT_NUMBER}-compute@developer.gserviceaccount.com" \
--role="roles/bigquery.jobUser"
gcloud projects add-iam-policy-binding ${GOOGLE_CLOUD_PROJECT} \
--member="serviceAccount:${PROJECT_NUMBER}-compute@developer.gserviceaccount.com" \
--role="roles/bigquery.dataViewer"
ডকারফাইল তৈরি করুন
আপনার প্রোজেক্টের ( google-trends-agent ) রুটে Dockerfile নামে একটি ফাইল তৈরি করুন এবং নিম্নলিখিত কন্টেন্টটি পেস্ট করুন:
FROM python:3.11-slim
WORKDIR /app
# Create a non-root user
RUN adduser --disabled-password --gecos "" myuser
USER myuser
ENV PATH="/home/myuser/.local/bin:$PATH"
# Copy the agent folder into the container
COPY --chown=myuser:myuser google_trends/ /app/agents/google_trends/
# Install the python packages
RUN pip install google-auth google-adk
# Set environment variables
ENV GOOGLE_GENAI_USE_VERTEXAI=1
# Expose port
EXPOSE 8080
# Run ADK web server
CMD ["adk", "web", "--port=8080", "--host=0.0.0.0", "/app/agents"]
এজেন্ট স্থাপন করুন
রুট ডিরেক্টরি থেকে নিম্নলিখিত কমান্ডটি চালান। এটি আপনার এজেন্টকে কন্টেইনারাইজ করে ক্লাউড রানে ডেপ্লয় করবে।
gcloud run deploy google-trends-agent \
--source . \
--region us-west1 \
--allow-unauthenticated \
--set-env-vars="GOOGLE_CLOUD_PROJECT=${GOOGLE_CLOUD_PROJECT}"
দ্রুত যাচাইকরণ
ডেপ্লয়মেন্ট শেষ হয়ে গেলে, কনসোলে একটি সার্ভিস ইউআরএল (Service URL) দেখানো হবে। আপনার ব্রাউজারে এই ইউআরএলটি খুলুন; এটি আপনাকে সেই একই ইন্টারেক্টিভ ইউআই (UI) দেবে যা আপনি আপনার লোকাল মেশিনে দেখেছিলেন, কিন্তু এবার এটি ক্লাউডে চলবে!
সবকিছু ঠিকঠাক চলছে কিনা তা নিশ্চিত করতে আপনি লগগুলোও পর্যবেক্ষণ করতে পারেন:
gcloud logging read "resource.type=cloud_run_revision AND resource.labels.service_name=google-trends-agent" --limit 10
৬. পরিষ্কার করা
চলমান চার্জ এড়াতে, এই কোডল্যাব চলাকালীন তৈরি করা রিসোর্সগুলো মুছে ফেলুন।
Cloud Run পরিষেবাটি মুছে ফেলুন:
gcloud run services delete google-trends-agent --region us-west1
আপনি যদি বিশেষভাবে এই কোডল্যাবের জন্য একটি প্রজেক্ট তৈরি করে থাকেন, তাহলে আপনি সম্পূর্ণ প্রজেক্টটি মুছে ফেলতে পারেন:
gcloud projects delete ${GOOGLE_CLOUD_PROJECT}
আপনি এই কোডল্যাব সম্পর্কিত সমস্ত ফাইলও মুছে ফেলতে পারেন:
deactivate
cd ..
rm -rf google-trends-agent
৭. অভিনন্দন
অভিনন্দন! আপনি সফলভাবে একটি গুগল ট্রেন্ডস অ্যানালিস্ট এজেন্ট তৈরি এবং স্থাপন করেছেন।
আপনি যা শিখেছেন
- এজেন্টের ক্ষমতা গতিশীলভাবে প্রসারিত করতে MCP কীভাবে ব্যবহার করবেন
- Google ADK ব্যবহার করে কীভাবে LLM এজেন্ট তৈরি ও পরিষেবা প্রদান করা যায়
- ক্লাউড রানে কীভাবে এজেন্ট স্থাপন এবং স্কেল করবেন
পরবর্তী পদক্ষেপ
- বিভিন্ন BigQuery ডেটাসেট কোয়েরি করার জন্য এজেন্টটিকে পরিবর্তন করে দেখুন।
- এজেন্টের কার্যক্ষমতা বাড়াতে আরও এমসিপি টুল যোগ করুন।