BigQuery MCP की मदद से, Google Trends Analyst Agent बनाना

1. खास जानकारी

इस कोडलैब में, Google ADK का इस्तेमाल करके, Google Trends Analyst Agent बनाया जाएगा. यह एजेंट, BigQuery MCP सर्वर का इस्तेमाल करके, Google Trends के सार्वजनिक डेटासेट (bigquery-public-data.google_trends) को क्वेरी करने वाले टूल को डाइनैमिक तरीके से खोजता है और उन्हें एक्ज़ीक्यूट करता है.

आपको क्या सीखने को मिलेगा

  • ADK डेवलपमेंट के लिए कोई प्रोजेक्ट सेट अप करने का तरीका.
  • BigQuery के लिए, मैनेज किए गए एमसीपी सर्वर को चालू और इस्तेमाल करने का तरीका.
  • एमसीपी टूल का इस्तेमाल करने वाला एजेंट बनाने का तरीका.
  • जांच के लिए, एजेंट को लोकल लेवल पर चलाने का तरीका.
  • एजेंट को Google Cloud Run पर डिप्लॉय करने का तरीका.

आपको किन चीज़ों की ज़रूरत होगी

  • बिलिंग की सुविधा वाला Google Cloud प्रोजेक्ट
  • Chrome जैसे वेब ब्राउज़र
  • Python 3.11 या इसके बाद का वर्शन

यह कोडलैब, इंटरमीडिएट लेवल के डेवलपर के लिए है. इन्हें Python और Google Cloud के बारे में थोड़ी जानकारी है.

इस कोडलैब को पूरा करने में करीब 15 से 20 मिनट लगेंगे.

इस कोडलैब में बनाए गए संसाधनों की लागत, पांच डॉलर से कम होनी चाहिए.

2. अपना एनवायरमेंट सेट अप करने का तरीका

Google Cloud प्रोजेक्ट बनाएं

  1. Google Cloud Console में, प्रोजेक्ट चुनने वाले पेज पर जाकर, कोई Google Cloud प्रोजेक्ट चुनें या बनाएं.
  2. पक्का करें कि आपके Cloud प्रोजेक्ट के लिए बिलिंग चालू है. किसी प्रोजेक्ट के लिए बिलिंग चालू है या नहीं, यह देखने का तरीका जानें.

एनवायरमेंट वैरिएबल सेट करना

ये एनवायरमेंट वैरिएबल सेट करें.

export GOOGLE_CLOUD_PROJECT=<INSERT_YOUR_GCP_PROJECT_HERE>
export GOOGLE_GENAI_USE_VERTEXAI=1

ध्यान दें: GOOGLE_GENAI_USE_VERTEXAI=1 सेट करने पर, ADK, Vertex AI का इस्तेमाल करता है. साथ ही, पुष्टि करने के लिए GEMINI_API_KEY के बजाय, Cloud IAM का इस्तेमाल करता है.

gcloud की पुष्टि करना और इसे कॉन्फ़िगर करना

अपने Google खाते में साइन इन करें, अपना चालू प्रोजेक्ट सेट करें, और ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल कॉन्फ़िगर करें.

gcloud auth login
gcloud auth application-default login

ध्यान दें: gcloud auth login CLI के कमांड की पुष्टि करता है. वहीं, gcloud auth application-default login, लोकल ऐप्लिकेशन कोड की पुष्टि करता है.gcloud

Google Cloud प्रोजेक्ट सेट करें:

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 के लिए एमसीपी चालू करना

आपके प्रोजेक्ट के लिए, मैनेज किए गए एमसीपी सर्वर को साफ़ तौर पर चालू करना ज़रूरी है.

gcloud beta services mcp enable bigquery.googleapis.com

प्रोजेक्ट के लिए फ़ोल्डर बनाना

सबसे पहले, अपने एजेंट के लिए एक रूट फ़ोल्डर और एजेंट को लागू करने के लिए एक इंटरनल फ़ोल्डर बनाएं.

mkdir google-trends-agent
cd google-trends-agent
mkdir google_trends

3. एजेंट का कोड बनाना

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)

4. एजेंट को चलाना

इस चरण में, Python का लोकल वर्चुअल एनवायरमेंट सेट अप किया जाएगा. इसके बाद, डिपेंडेंसी इंस्टॉल की जाएंगी. साथ ही, अपने मशीन (या Google Cloud Shell) पर एजेंट के काम करने के तरीके की पुष्टि करने के लिए, एजेंट को चलाया जाएगा.

  • ऐप्लिकेशन की रूट डायरेक्ट्री (google-trends-agent) पर जाएं.
  • वर्चुअल एनवायरमेंट बनाएं:
python -m venv mcp_demo_env
source mcp_demo_env/bin/activate
  • Python के ज़रूरी पैकेज इंस्टॉल करें:
pip install google-auth google-adk

हम अपने नए एजेंट की जांच करने के लिए, ADK Web का इस्तेमाल करेंगे.

लोकल डेवलपमेंट और टेस्टिंग के लिए, यह कमांड चलाएं:

adk web

Google Cloud Shell में डेवलपमेंट और टेस्टिंग के लिए, यह कमांड चलाएं:

adk web --allow_origins="*"

इससे ADK वेब सर्वर शुरू हो जाएगा. लोकल वेब इंटरफ़ेस (आम तौर पर, http://localhost:8000 पर) का इस्तेमाल करके, एजेंट के साथ इंटरैक्ट किया जा सकता है.

ध्यान दें: एजेंट की जांच करने के लिए, adk run google_trends आसान कमांड का भी इस्तेमाल किया जा सकता है.

5. Cloud Run पर डिप्लॉय करें

एजेंट को सुरक्षित तरीके से Google Cloud Run पर डिप्लॉय करने के लिए, यह तरीका अपनाएं.

अनुमतियां दें

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"

Dockerfile बनाना

अपने प्रोजेक्ट (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"]

एजेंट को डिप्लॉय करना

रूट डायरेक्ट्री से यह कमांड चलाएं. इससे आपका एजेंट कंटेनर में बदल जाएगा और Cloud Run पर डिप्लॉय हो जाएगा.

gcloud run deploy google-trends-agent \
  --source . \
  --region us-west1 \
  --allow-unauthenticated \
  --set-env-vars="GOOGLE_CLOUD_PROJECT=${GOOGLE_CLOUD_PROJECT}"

क्विक वेरिफ़िकेशन

डिप्लॉयमेंट पूरा होने के बाद, कंसोल में सेवा का यूआरएल दिखेगा. इस यूआरएल को अपने ब्राउज़र में खोलें. इसमें आपको वही इंटरैक्टिव यूज़र इंटरफ़ेस दिखेगा जो आपने लोकल लेवल पर देखा था. हालांकि, अब यह क्लाउड में चल रहा होगा!

यह पक्का करने के लिए कि सब कुछ सही तरीके से चल रहा है, लॉग की निगरानी भी की जा सकती है:

gcloud logging read "resource.type=cloud_run_revision AND resource.labels.service_name=google-trends-agent" --limit 10

6. साफ़-सफ़ाई करना

लगातार शुल्क लगने से बचने के लिए, इस कोडलैब के दौरान बनाए गए संसाधन मिटाएं.

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

7. बधाई हो

बधाई हो! आपने Google Trends Analyst Agent बना लिया है और उसे डिप्लॉय कर दिया है.

आपको क्या सीखने को मिला

  • एजेंट की क्षमताओं को डाइनैमिक तरीके से बढ़ाने के लिए, एमसीपी का इस्तेमाल करने का तरीका
  • Google ADK की मदद से, एलएलएम एजेंट बनाने और उन्हें सर्व करने का तरीका
  • Cloud Run पर एजेंट को डिप्लॉय और स्केल करने का तरीका

अगले चरण

  • अलग-अलग BigQuery डेटासेट को क्वेरी करने के लिए, एजेंट में बदलाव करने की कोशिश करना
  • एजेंट की क्षमताओं को बढ़ाने के लिए, ज़्यादा एमसीपी टूल जोड़ना

रेफ़रंस के लिए दस्तावेज़