1. खास जानकारी
एजेंट एक ऐसा प्रोग्राम है जो अपने-आप काम करता है. यह एआई मॉडल से बात करके, अपने टूल और कॉन्टेक्स्ट का इस्तेमाल करके, लक्ष्य के आधार पर काम करता है. साथ ही, यह सच्चाई के आधार पर अपने-आप फ़ैसले ले सकता है!
जब आपके ऐप्लिकेशन में एक से ज़्यादा एजेंट होते हैं, जो अपने-आप काम करते हैं और अपने बड़े मकसद को पूरा करने के लिए ज़रूरत के हिसाब से साथ मिलकर काम करते हैं. साथ ही, हर एजेंट के पास किसी खास फ़ोकस एरिया के बारे में अलग से जानकारी होती है और उसकी ज़िम्मेदारी होती है, तो आपका ऐप्लिकेशन मल्टी-एजेंट सिस्टम बन जाता है.
एजेंट डेवलपमेंट किट (एडीके)
एजेंट डेवलपमेंट किट (ADK), एआई एजेंट को डेवलप और डिप्लॉय करने के लिए, एक सुविधाजनक और मॉड्यूलर फ़्रेमवर्क है. ADK, कई अलग-अलग एजेंट इंस्टेंस को मल्टी-एजेंट सिस्टम (एमएएस) में कंपोज करके, बेहतर ऐप्लिकेशन बनाने में मदद करता है.
ADK में, मल्टी-एजेंट सिस्टम एक ऐसा ऐप्लिकेशन है जिसमें अलग-अलग एजेंट, अक्सर हैरारकी बनाकर, बड़े लक्ष्य को हासिल करने के लिए मिलकर काम करते हैं या समन्वय करते हैं. अपने ऐप्लिकेशन को इस तरह से व्यवस्थित करने से कई फ़ायदे मिलते हैं. जैसे, बेहतर मॉड्यूलरिटी, विशेषज्ञता, फिर से इस्तेमाल करने की सुविधा, रखरखाव, और खास वर्कफ़्लो एजेंट का इस्तेमाल करके, स्ट्रक्चर्ड कंट्रोल फ़्लो तय करने की सुविधा.
मल्टी-एजेंट सिस्टम के लिए ध्यान रखने वाली बातें
सबसे पहले, यह ज़रूरी है कि आप हर एजेंट की विशेषता को अच्छी तरह समझें और उसके बारे में सही जानकारी रखें. — "क्या आपको पता है कि किसी काम के लिए, आपको किसी खास सब-एजेंट की ज़रूरत क्यों है", पहले इस बात का पता लगाएं.
दूसरा, हर जवाब को रूट एजेंट के साथ कैसे जोड़ें, ताकि उन्हें रूट किया जा सके और उनका मतलब समझा जा सके.
तीसरा, एजेंट रूटिंग के कई टाइप हैं, जिनके बारे में आपको यहां दिए गए दस्तावेज़ में बताया गया है. देखें कि आपके ऐप्लिकेशन के फ़्लो के हिसाब से कौनसा विकल्प सही है. साथ ही, यह भी पता लगाएं कि मल्टी-एजेंट सिस्टम के फ़्लो कंट्रोल के लिए, आपको कौनसे अलग-अलग कॉन्टेक्स्ट और स्टेटस की ज़रूरत है.
आपको क्या बनाना है
आइए, AlloyDB और ADK के लिए MCP टूलबॉक्स का इस्तेमाल करके, किचन के रिनोवेशन को मैनेज करने के लिए एक मल्टी-एजेंट सिस्टम बनाएं.
- रेनोवेशन के प्रस्ताव से जुड़ा एजेंट
- अनुमतियों और नियमों का पालन करने की जांच करने वाला एजेंट
- ऑर्डर की स्थिति की जांच करना (डेटाबेस के लिए एमसीपी टूलबॉक्स का इस्तेमाल करने वाला टूल)
रसोई के नवीनीकरण के प्रस्ताव का दस्तावेज़ जनरेट करने के लिए, Renovation Proposal Agent.
परमिट और अनुपालन एजेंट, जो परमिट और अनुपालन से जुड़े टास्क पूरा करता है.
ऑर्डर स्टेटस की जांच करने वाला एजेंट, जो AlloyDB में सेट अप किए गए ऑर्डर मैनेजमेंट डेटाबेस पर काम करके, मटीरियल के ऑर्डर का स्टेटस देखता है. हालांकि, डेटाबेस के इस हिस्से के लिए, हम AlloyDB के लिए एमसीपी टूलबॉक्स का इस्तेमाल करेंगे. इससे, ऑर्डर की स्थिति वापस पाने का लॉजिक लागू किया जा सकेगा.
2. एमसीपी
एमसीपी का मतलब है मॉडल कॉन्टेक्स्ट प्रोटोकॉल. यह Anthropic का बनाया हुआ एक ओपन स्टैंडर्ड है. इससे एआई एजेंट, बाहरी टूल, सेवाओं, और डेटा से लगातार कनेक्ट रह सकते हैं. यह एआई ऐप्लिकेशन के लिए एक सामान्य स्टैंडर्ड के तौर पर काम करता है. इसकी मदद से, वे अलग-अलग डेटा सोर्स और टूल के साथ आसानी से इंटरैक्ट कर सकते हैं.
- यह क्लाइंट-सर्वर मॉडल का इस्तेमाल करता है. इसमें एआई ऐप्लिकेशन (होस्ट), एमसीपी क्लाइंट चलाते हैं. यह क्लाइंट, एमसीपी सर्वर से संपर्क करता है.
- जब किसी एआई एजेंट को किसी खास टूल या डेटा को ऐक्सेस करना होता है, तो वह एमसीपी क्लाइंट को स्ट्रक्चर्ड अनुरोध भेजता है. क्लाइंट, इस अनुरोध को सही एमसीपी सर्वर पर भेजता है.
- इससे एआई मॉडल, बाहरी डेटा और टूल को ऐक्सेस कर सकते हैं. इसके लिए, हर इंटिग्रेशन के लिए कस्टम कोड की ज़रूरत नहीं होती.
- लार्ज लैंग्वेज मॉडल (एलएलएम) के साथ-साथ एजेंट और जटिल वर्कफ़्लो बनाने की प्रोसेस को आसान बनाता है.
डेटाबेस के लिए एमसीपी टूलबॉक्स
डेटाबेस के लिए Google का एमसीपी टूलबॉक्स, डेटाबेस के लिए एक ओपन सोर्स एमसीपी सर्वर है. इसे एंटरप्राइज़-ग्रेड और प्रोडक्शन-क्वालिटी को ध्यान में रखकर डिज़ाइन किया गया था. इससे, कनेक्शन पूल करने, पुष्टि करने वगैरह जैसी मुश्किल प्रक्रियाओं को मैनेज करके, टूल को आसानी से, तेज़ी से, और ज़्यादा सुरक्षित तरीके से बनाया जा सकता है.
अपने एजेंट को अपने डेटाबेस में मौजूद डेटा ऐक्सेस करने की अनुमति दें!!! कैसे?
डेवलपमेंट को आसान बनाना: 10 लाइनों से भी कम कोड में अपने एजेंट में टूल इंटिग्रेट करें. साथ ही, एक से ज़्यादा एजेंट या फ़्रेमवर्क के बीच टूल का फिर से इस्तेमाल करें और टूल के नए वर्शन को आसानी से डिप्लॉय करें.
बेहतर परफ़ॉर्मेंस: कनेक्शन पूल करने, पुष्टि करने वगैरह जैसे सबसे सही तरीके.
बेहतर सुरक्षा: आपके डेटा को ज़्यादा सुरक्षित तरीके से ऐक्सेस करने के लिए, इंटिग्रेट किया गया पुष्टि करने का तरीका
पूरी प्रोसेस को मॉनिटर करने की सुविधा: OpenTelemetry के लिए पहले से मौजूद सहायता के साथ, बेहतर मेट्रिक और ट्रैकिंग.
यह बताना ज़रूरी है कि यह एमसीपी से पहले की बात है!!!
डेटाबेस के लिए एमसीपी टूलबॉक्स, आपके एजेंटिक ऐप्लिकेशन के ऑर्केस्ट्रेशन फ़्रेमवर्क और डेटाबेस के बीच में होता है. यह एक कंट्रोल प्लेन उपलब्ध कराता है, जिसका इस्तेमाल टूल में बदलाव करने, उन्हें डिस्ट्रिब्यूट करने या उन्हें चालू करने के लिए किया जाता है. यह आपके टूल को मैनेज करने की प्रोसेस को आसान बनाता है. इसके लिए, यह टूल को सेव और अपडेट करने की एक ही जगह उपलब्ध कराता है. साथ ही, यह एजेंट और ऐप्लिकेशन के बीच टूल शेयर करने की सुविधा देता है. साथ ही, ऐप्लिकेशन को फिर से डिप्लॉय किए बिना, उन टूल को अपडेट करने की सुविधा भी देता है.
हमारे पास एक रूट एजेंट होगा, जो ज़रूरत के हिसाब से इन एजेंट को ऑर्केस्ट्रेट करता है.
ज़रूरी शर्तें
3. शुरू करने से पहले
प्रोजेक्ट बनाना
- Google Cloud Console में, प्रोजेक्ट चुनने वाले पेज पर, Google Cloud प्रोजेक्ट चुनें या बनाएं.
- पक्का करें कि आपके Cloud प्रोजेक्ट के लिए बिलिंग की सुविधा चालू हो. किसी प्रोजेक्ट के लिए बिलिंग की सुविधा चालू है या नहीं, यह देखने का तरीका जानें .
अगर आपको Google Cloud का इस्तेमाल शुरू करने और ADK का इस्तेमाल करने के लिए क्रेडिट चाहिए, तो क्रेडिट रिडीम करने के लिए इस लिंक का इस्तेमाल करें. इसे रिडीम करने के लिए, यहां दिए गए निर्देशों का पालन करें. कृपया ध्यान दें कि रिडीम करने के लिए, यह लिंक सिर्फ़ मई के आखिर तक मान्य है.
- इस लिंक पर क्लिक करके, Cloud Shell चालू करें. Cloud Shell टर्मिनल (क्लाउड कमांड चलाने के लिए) और एडिटर (प्रोजेक्ट बनाने के लिए) के बीच टॉगल किया जा सकता है. इसके लिए, Cloud Shell में मौजूद बटन पर क्लिक करें.
- Cloud Shell से कनेक्ट होने के बाद, यह जांच करें कि आपकी पुष्टि पहले ही हो चुकी है या नहीं. साथ ही, यह भी देखें कि प्रोजेक्ट आपके प्रोजेक्ट आईडी पर सेट है या नहीं. इसके लिए, यह कमांड इस्तेमाल करें:
gcloud auth list
- Cloud Shell में यह कमांड चलाकर पुष्टि करें कि gcloud कमांड को आपके प्रोजेक्ट के बारे में पता है.
gcloud config list project
- अगर आपका प्रोजेक्ट सेट नहीं है, तो इसे सेट करने के लिए इस निर्देश का इस्तेमाल करें:
gcloud config set project <YOUR_PROJECT_ID>
- ये कमांड चलाकर, इन एपीआई को चालू करें:
gcloud services enable artifactregistry.googleapis.com \cloudbuild.googleapis.com \run.googleapis.com \aiplatform.googleapis.com \alloydb.googleapis.com
- पक्का करें कि आपके पास Python 3.9 या इसके बाद का वर्शन हो
- gcloud के निर्देशों और इस्तेमाल के बारे में जानने के लिए, दस्तावेज़ देखें.
4. ADK टूल सेटअप करना
- वर्चुअल एनवायरमेंट बनाना और चालू करना (सुझाया गया)
अपने Cloud Shell टर्मिनल से, वर्चुअल एनवायरमेंट बनाएं:
python -m venv .venv
वर्चुअल एनवायरमेंट की सुविधा चालू करने के लिए:
source .venv/bin/activate
- ADK इंस्टॉल करना
pip install google-adk
5. प्रोजेक्ट का स्ट्रक्चर
- रूट और प्रोजेक्ट फ़ोल्डर बनाने के लिए, Cloud Shell टर्मिनल में ये कमांड एक-एक करके चलाएं:
mkdir agentic-apps
cd agentic-apps
mkdir renovation-agent
- Cloud Shell एडिटर पर जाएं और फ़ाइलें बनाकर, प्रोजेक्ट का यह स्ट्रक्चर बनाएं (शुरुआत में खाली है):
renovation-agent/
__init__.py
agent.py
.env
6. सोर्स कोड
- init.py पर जाएं और इसे इस कॉन्टेंट से अपडेट करें:
from . import agent
- agent.py पर जाएं और इस पाथ से फ़ाइल को यहां दिए गए कॉन्टेंट से अपडेट करें:
https://github.com/AbiramiSukumaran/adk-renovation-agent/blob/main/agent.py
agent.py में, हम ज़रूरी डिपेंडेंसी इंपोर्ट करते हैं, .env फ़ाइल से कॉन्फ़िगरेशन पैरामीटर वापस लाते हैं, और root_agent तय करते हैं. यह एजेंट, उन तीन सब-एजेंट को ऑर्केस्ट्रेट करता है जिन्हें हमने इस ऐप्लिकेशन में बनाने का फ़ैसला किया है. ऐसे कई टूल हैं जो इन सब-एजेंट के मुख्य और सहायक फ़ंक्शन में मदद करते हैं.
- पक्का करें कि आपके पास Cloud Storage बकेट हो
यह एजेंट के जनरेट किए गए प्रस्ताव के दस्तावेज़ को सेव करने के लिए है. इसे बनाएं और ऐक्सेस दें, ताकि Vertex AI की मदद से बनाया गया मल्टी-एजेंट सिस्टम इसे ऐक्सेस कर सके. ऐसा करने का तरीका यहां बताया गया है:
https://cloud.google.com/storage/docs/creating-buckets#console
- अपनी बकेट को "
next-demo-store
" या कोई दूसरा नाम दें. इसकी जानकारी नोट कर लें, क्योंकि आपको .env फ़ाइल में STORAGE_BUCKET की वैल्यू अपडेट करनी होगी. ऐसा, ENV वैरिएबल सेटअप करने के चरण में करना होगा. - इसे us-central1 में बनाएं
- बकेट का ऐक्सेस सेट अप करने के लिए, Cloud Storage कंसोल और अपनी स्टोरेज बकेट पर जाएं. हमारे मामले में, बकेट का नाम "next-demo-storage" है: https://console.cloud.google.com/storage/browser/next-demo-storage.
अनुमतियां -> प्रिंसिपल देखें -> ऐक्सेस दें पर जाएं. प्रिंसिपल के तौर पर "allUsers" और भूमिका के तौर पर "स्टोरेज ऑब्जेक्ट का उपयोगकर्ता" चुनें.
Make sure to not enable "prevent public access". Since this is a demo/study application we are going with a public bucket. Remember to configure permission settings appropriately when you are building your application.
7. डेटाबेस सेटअप करना
ऑर्डर करने वाले एजेंट के इस्तेमाल किए जाने वाले टूल में से एक, "check_status" में, ऑर्डर का स्टेटस पाने के लिए, हम AlloyDB ऑर्डर डेटाबेस को ऐक्सेस करते हैं. इस सेक्शन में, हम AlloyDB डेटाबेस क्लस्टर और इंस्टेंस सेट अप करेंगे.
क्लस्टर और इंस्टेंस बनाना
- Cloud Console में AlloyDB पेज पर जाएं. Cloud Console में ज़्यादातर पेजों को ढूंढने का आसान तरीका है, उन्हें कंसोल के खोज बार का इस्तेमाल करके खोजना.
- उस पेज से क्लस्टर बनाएं चुनें:
- आपको नीचे दी गई स्क्रीन जैसी स्क्रीन दिखेगी. यहां दी गई वैल्यू का इस्तेमाल करके, क्लस्टर और इंस्टेंस बनाएं. अगर आपको रिपॉज़िटरी से ऐप्लिकेशन कोड को क्लोन करना है, तो पक्का करें कि वैल्यू मैच हों:
- क्लस्टर आईडी: "
vector-cluster
" - password: "
alloydb
" - PostgreSQL 16 के साथ काम करने वाला / हमारा सुझाव है कि आप सबसे नया वर्शन इस्तेमाल करें
- इलाका: "
us-central1
" - नेटवर्किंग: "
default
"
- डिफ़ॉल्ट नेटवर्क चुनने पर, आपको नीचे दी गई स्क्रीन जैसी स्क्रीन दिखेगी.
कनेक्शन सेट अप करें को चुनें.
- इसके बाद, "अपने-आप असाइन की गई आईपी रेंज का इस्तेमाल करें" चुनें और 'जारी रखें' पर क्लिक करें. जानकारी की समीक्षा करने के बाद, 'कनेक्शन बनाएं' चुनें.
6. अहम जानकारी: पक्का करें कि इंस्टेंस आईडी (जिसे क्लस्टर / इंस्टेंस के कॉन्फ़िगरेशन के समय देखा जा सकता है) को इसमें बदल दिया जाए
vector-instance
. अगर इसे बदला नहीं जा सकता, तो आने वाले समय में सभी रेफ़रंस में अपने इंस्टेंस आईडी का इस्तेमाल करें.
- टूलबॉक्स सेट अप करने से पहले, अपने AlloyDB इंस्टेंस में सार्वजनिक आईपी कनेक्टिविटी चालू करें, ताकि नया टूल डेटाबेस को ऐक्सेस कर सके.
- सार्वजनिक आईपी कनेक्टिविटी सेक्शन पर जाएं, सार्वजनिक आईपी चालू करें चेकबॉक्स को चुनें, और अपनी Cloud Shell मशीन का आईपी पता डालें.
- अपनी Cloud Shell मशीन का आईपी पता पाने के लिए, Cloud Shell टर्मिनल पर जाएं और ifconfig डालें. नतीजे में, eth0 इनेट पते की पहचान करें और आखिरी दो अंकों को 0.0 से बदलें. साथ ही, मास्क साइज़ को ‘/16' पर सेट करें. उदाहरण के लिए, यह "XX.XX.0.0/16" जैसा दिखेगा, जहां XX संख्याएं हैं.
- इस आईपी को, बदलाव करने वाले इंस्टेंस पेज के 'अनुमति वाले बाहरी नेटवर्क' "नेटवर्क" टेक्स्टबॉक्स में चिपकाएं.
- नेटवर्क सेट अप हो जाने के बाद, क्लस्टर बनाना जारी रखा जा सकता है. क्लस्टर सेट अप करने के लिए, 'क्लस्टर बनाएं' पर क्लिक करें. इसके बाद, नीचे दिया गया तरीका अपनाएं:
ध्यान दें कि क्लस्टर बनाने में करीब 10 मिनट लगेंगे. क्लस्टर बनाने के बाद, आपको एक स्क्रीन दिखेगी. इसमें आपके बनाए गए क्लस्टर की खास जानकारी दिखेगी.
डेटा डालना
अब स्टोर के डेटा वाली टेबल जोड़ने का समय आ गया है. AlloyDB पर जाएं. इसके बाद, प्राइमरी क्लस्टर और फिर AlloyDB Studio चुनें:
आपको इंस्टेंस बनने का इंतज़ार करना पड़ सकता है. इसके बाद, क्लस्टर बनाते समय बनाए गए क्रेडेंशियल का इस्तेमाल करके, AlloyDB में साइन इन करें. PostgreSQL की पुष्टि करने के लिए, यहां दिए गए डेटा का इस्तेमाल करें:
- उपयोगकर्ता नाम : "
postgres
" - डेटाबेस : "
postgres
" - पासवर्ड : "
alloydb
"
AlloyDB Studio में पुष्टि करने के बाद, Editor में SQL निर्देश डाले जाते हैं. आखिरी विंडो की दाईं ओर मौजूद प्लस का इस्तेमाल करके, Editor की कई विंडो जोड़ी जा सकती हैं.
आपको एडिटर विंडो में AlloyDB के लिए निर्देश डालने होंगे. इसके लिए, ज़रूरत के हिसाब से 'चालू करें', 'फ़ॉर्मैट करें', और 'मिटाएं' विकल्पों का इस्तेमाल करें.
टेबल बनाना
AlloyDB Studio में, नीचे दिए गए डीडीएल स्टेटमेंट का इस्तेमाल करके टेबल बनाई जा सकती है:
-- Table DDL for Procurement Material Order Status
CREATE TABLE material_order_status (
order_id VARCHAR(50) PRIMARY KEY,
material_name VARCHAR(100) NOT NULL,
supplier_name VARCHAR(100) NOT NULL,
order_date DATE NOT NULL,
estimated_delivery_date DATE,
actual_delivery_date DATE,
quantity_ordered INT NOT NULL,
quantity_received INT,
unit_price DECIMAL(10, 2) NOT NULL,
total_amount DECIMAL(12, 2),
order_status VARCHAR(50) NOT NULL, -- e.g., "Ordered", "Shipped", "Delivered", "Cancelled"
delivery_address VARCHAR(255),
contact_person VARCHAR(100),
contact_phone VARCHAR(20),
tracking_number VARCHAR(100),
notes TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
quality_check_passed BOOLEAN, -- Indicates if the material passed quality control
quality_check_notes TEXT, -- Notes from the quality control check
priority VARCHAR(20), -- e.g., "High", "Medium", "Low"
project_id VARCHAR(50), -- Link to a specific project
receiver_name VARCHAR(100), -- Name of the person who received the delivery
return_reason TEXT, -- Reason for returning material if applicable
po_number VARCHAR(50) -- Purchase order number
);
रिकॉर्ड डालना
ऊपर दी गई database_script.sql
स्क्रिप्ट से, insert
क्वेरी स्टेटमेंट को एडिटर में कॉपी करें.
चलाएं पर क्लिक करें.
डेटासेट तैयार हो गया है. अब डेटाबेस के लिए एमसीपी टूलबॉक्स सेट अप करें, ताकि यह AlloyDB में हमारे सभी ऑर्डर डेटाबेस इंटरैक्शन के लिए कंट्रोल प्लेन के तौर पर काम कर सके!!!
8. डेटाबेस सेटअप करने के लिए एमसीपी टूलबॉक्स
टूलबॉक्स, आपके ऐप्लिकेशन के ऑर्केस्ट्रेशन फ़्रेमवर्क और डेटाबेस के बीच में होता है. यह एक कंट्रोल प्लेन उपलब्ध कराता है, जिसका इस्तेमाल टूल में बदलाव करने, उन्हें डिस्ट्रिब्यूट करने या उन्हें चालू करने के लिए किया जाता है. यह आपके टूल को मैनेज करने की प्रोसेस को आसान बनाता है. इसके लिए, यह टूल को सेव और अपडेट करने की एक ही जगह उपलब्ध कराता है. साथ ही, यह एजेंट और ऐप्लिकेशन के बीच टूल शेयर करने की सुविधा देता है. साथ ही, अपने ऐप्लिकेशन को फिर से डिप्लॉय किए बिना उन टूल को अपडेट करने की सुविधा देता है.
आप देख सकते हैं कि 'डेटाबेस के लिए एमसीपी टूलबॉक्स' के साथ काम करने वाला एक डेटाबेस, AlloyDB है. हमने पिछले सेक्शन में इसके लिए पहले ही प्रोविज़न कर दिया है. इसलिए, अब टूलबॉक्स सेट अप करें.
- अपने Cloud Shell टर्मिनल पर जाएं और पक्का करें कि आपका प्रोजेक्ट चुना गया हो और टर्मिनल के प्रॉम्प्ट में दिख रहा हो. अपने प्रोजेक्ट की डायरेक्ट्री पर जाने के लिए, Cloud Shell टर्मिनल से यह कमांड चलाएं:
cd adk-renovation-agent
- अपने नए फ़ोल्डर में टूलबॉक्स डाउनलोड और इंस्टॉल करने के लिए, यह कमांड चलाएं:
# see releases page for other versions
export VERSION=0.7.0
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
- कोड में बदलाव करने के मोड के लिए, Cloud Shell Editor पर जाएं और प्रोजेक्ट के रूट फ़ोल्डर में, "tools.yaml" नाम की फ़ाइल जोड़ें
sources:
alloydb-orders:
kind: "alloydb-postgres"
project: "<<YOUR_PROJECT_ID>>"
region: "us-central1"
cluster: "<<YOUR_ALLOYDB_CLUSTER>>"
instance: "<<YOUR_ALLOYDB_INSTANCE>>"
database: "<<YOUR_ALLOYDB_DATABASE>>"
user: "<<YOUR_ALLOYDB_USER>>"
password: "<<YOUR_ALLOYDB_PASSWORD>>"
tools:
get-order-data:
kind: postgres-sql
source: alloydb-orders
description: Get the status of an order based on the material description.
parameters:
- name: description
type: string
description: A description of the material to search for its order status.
statement: |
select order_status from material_order_status where lower(material_name) like lower($1)
LIMIT 1;
क्वेरी वाले हिस्से में (ऊपर दिए गए "स्टेटमेंट" पैरामीटर को देखें), हम सिर्फ़ तब फ़ील्ड order_status की वैल्यू वापस लाते हैं, जब कॉन्टेंट का नाम, उपयोगकर्ता के खोज टेक्स्ट से मेल खाता है.
आइए, tools.yaml को समझते हैं
सोर्स, आपके अलग-अलग डेटा सोर्स दिखाते हैं जिनके साथ कोई टूल इंटरैक्ट कर सकता है. सोर्स, उस डेटा सोर्स को दिखाता है जिससे कोई टूल इंटरैक्ट कर सकता है. सोर्स को मैप के तौर पर तय करने के लिए, tools.yaml फ़ाइल के सोर्स सेक्शन में जाएं. आम तौर पर, सोर्स कॉन्फ़िगरेशन में वह सारी जानकारी होती है जो डेटाबेस से कनेक्ट करने और उससे इंटरैक्ट करने के लिए ज़रूरी होती है.
टूल से यह तय होता है कि एजेंट कौनसी कार्रवाइयां कर सकता है. जैसे, किसी सोर्स को पढ़ना और उसमें लिखना. टूल से उस कार्रवाई के बारे में पता चलता है जो आपका एजेंट कर सकता है. जैसे, SQL स्टेटमेंट चलाना. tools.yaml फ़ाइल के टूल सेक्शन में, टूल को मैप के तौर पर तय किया जा सकता है. आम तौर पर, किसी टूल को काम करने के लिए सोर्स की ज़रूरत होती है.
tools.yaml को कॉन्फ़िगर करने के बारे में ज़्यादा जानने के लिए, यह दस्तावेज़ देखें.
डेटाबेस सर्वर के लिए एमसीपी टूलबॉक्स चलाना
सर्वर को शुरू करने के लिए, mcp-toolbox फ़ोल्डर से यह कमांड चलाएं:
./toolbox --tools-file "tools.yaml"
अब अगर क्लाउड पर वेब की झलक वाले मोड में सर्वर खोला जाता है, तो आपको get-order-data नाम के नए टूल के साथ, टूलबॉक्स सर्वर चालू और काम करता हुआ दिखेगा.
एमसीपी टूलबॉक्स सर्वर, डिफ़ॉल्ट रूप से पोर्ट 5000 पर चलता है. आइए, इसकी जांच करने के लिए Cloud Shell का इस्तेमाल करें.
Cloud Shell में, वेब की झलक पर क्लिक करें, जैसा कि यहां दिखाया गया है:
'पोर्ट बदलें' पर क्लिक करें और पोर्ट को 5000 पर सेट करें, जैसा कि नीचे दिखाया गया है. इसके बाद, 'बदलें' और 'झलक देखें' पर क्लिक करें.
इससे यह आउटपुट दिखेगा:
डेटाबेस के लिए एमसीपी टूलकिट में, Python SDK के बारे में बताया गया है. इसकी मदद से, टूल की पुष्टि की जा सकती है और उनकी जांच की जा सकती है. इस बारे में ज़्यादा जानकारी यहां दी गई है. हम इस सेक्शन को छोड़कर, अगले सेक्शन में सीधे एजेंट डेवलपमेंट किट (ADK) पर जाएंगे. इस सेक्शन में इन टूल का इस्तेमाल किया जाएगा.
चलिए, Cloud Run पर अपना टूलबॉक्स डिप्लॉय करते हैं
सबसे पहले, हम MCP टूलबॉक्स सर्वर से शुरुआत कर सकते हैं और इसे Cloud Run पर होस्ट कर सकते हैं. इससे हमें एक सार्वजनिक एंडपॉइंट मिलेगा, जिसे हम किसी भी दूसरे ऐप्लिकेशन और/या एजेंट ऐप्लिकेशन के साथ इंटिग्रेट कर सकते हैं. Cloud Run पर इसे होस्ट करने के निर्देश यहां दिए गए हैं. अब हम ज़रूरी चरणों के बारे में बताएंगे.
- नया Cloud Shell टर्मिनल लॉन्च करें या किसी मौजूदा Cloud Shell टर्मिनल का इस्तेमाल करें. उस प्रोजेक्ट फ़ोल्डर पर जाएं जहां टूलबॉक्स बाइनरी और tools.yaml मौजूद हैं. इस मामले में, adk-renovation-agent
- PROJECT_ID वैरिएबल को अपने Google Cloud प्रोजेक्ट आईडी पर ले जाने के लिए सेट करें.
export PROJECT_ID="<<YOUR_GOOGLE_CLOUD_PROJECT_ID>>"
- Google Cloud की ये सेवाएं चालू करें
gcloud services enable run.googleapis.com \
cloudbuild.googleapis.com \
artifactregistry.googleapis.com \
iam.googleapis.com \
secretmanager.googleapis.com
- आइए, एक अलग सेवा खाता बनाएं. यह Google Cloud Run पर डिप्लॉय की जाने वाली टूलबॉक्स सेवा की पहचान के तौर पर काम करेगा.
gcloud iam service-accounts create toolbox-identity
- हम यह भी पक्का कर रहे हैं कि इस सेवा खाते के पास सही भूमिकाएं हों. जैसे, Secret Manager को ऐक्सेस करने और AlloyDB से बात करने की सुविधा
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com \
--role roles/secretmanager.secretAccessor
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com \
--role roles/alloydb.client
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com \
--role roles/serviceusage.serviceUsageConsumer
- हम tools.yaml फ़ाइल को सीक्रेट के तौर पर अपलोड करेंगे:
gcloud secrets create tools --data-file=tools.yaml
अगर आपके पास पहले से ही कोई सीक्रेट है और आपको उसका वर्शन अपडेट करना है, तो यह तरीका अपनाएं:
gcloud secrets versions add tools --data-file=tools.yaml
उस कंटेनर इमेज के लिए एनवायरमेंट वैरिएबल सेट करें जिसका इस्तेमाल आपको Cloud Run के लिए करना है:
export IMAGE=us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:latest
- Cloud Run में डिप्लॉय करने के लिए, जाने-पहचाने निर्देश का आखिरी चरण:
gcloud run deploy toolbox \
--image $IMAGE \
--service-account toolbox-identity \
--region us-central1 \
--set-secrets "/app/tools.yaml=tools:latest" \
--args="--tools-file=/app/tools.yaml","--address=0.0.0.0","--port=8080" \
--allow-unauthenticated
इससे, Cloud Run पर कॉन्फ़िगर किए गए tools.yaml के साथ टूलबॉक्स सर्वर को डिप्लॉय करने की प्रोसेस शुरू हो जाएगी. डिप्लॉयमेंट पूरा होने पर, आपको इस तरह का मैसेज दिखेगा:
Deploying container to Cloud Run service [toolbox] in project [YOUR_PROJECT_ID] region [us-central1]
OK Deploying new service... Done.
OK Creating Revision...
OK Routing traffic...
OK Setting IAM Policy...
Done.
Service [toolbox] revision [toolbox-00001-zsk] has been deployed and is serving 100 percent of traffic.
Service URL: https://toolbox-<SOME_ID>.us-central1.run.app
अब आपके पास अपने एजेंसी ऐप्लिकेशन में, डिप्लॉय किए गए नए टूल का इस्तेमाल करने का विकल्प है!!!
आइए, टूलबॉक्स टूल को अपने एजेंट से कनेक्ट करते हैं!!!
हमने अपने मल्टी-एजेंट सिस्टम के लिए सोर्स पहले ही बना लिया है. आइए, डेटाबेस के लिए एमसीपी टूलबॉक्स का नया टूल शामिल करने के लिए, उस लेख को अपडेट करें. हमने इसे हाल ही में Cloud Run में डिप्लॉय किया है.
- अपनी requirements.txt फ़ाइल में, repo से सोर्स जोड़ें:
हम requirements.txt में डेटाबेस के लिए MCP टूलबॉक्स की डिपेंडेंसी शामिल कर रहे हैं
https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/requirements.txt
- अपनी agent.py फ़ाइल में, repo से मिले कोड में बदलाव करें:
हम एक टूल शामिल कर रहे हैं, जो ऑर्डर किए गए किसी खास कॉन्टेंट का डेटा फ़ेच करने के लिए, टूलबॉक्स एंडपॉइंट को ट्रिगर करता है.
https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/agent.py
9. मॉडल सेटअप करना
आपका एजेंट, लार्ज लैंग्वेज मॉडल (एलएलएम) की मदद से, उपयोगकर्ता के अनुरोधों को समझता है और जवाब जनरेट करता है. आपके एजेंट को इस बाहरी LLM सेवा को सुरक्षित कॉल करने होंगे. इसके लिए, पुष्टि करने के क्रेडेंशियल की ज़रूरत होती है. पुष्टि के मान्य तरीके के बिना, LLM सेवा एजेंट के अनुरोधों को अस्वीकार कर देगी और एजेंट काम नहीं कर पाएगा.
- Google AI Studio से एपीआई पासकोड पाएं.
- अगले चरण में, .env फ़ाइल सेट अप करते समय,
<<your API KEY>>
को अपनी असल एपीआई पासकोड वैल्यू से बदलें.
10. ENV वैरिएबल सेटअप करना
- टेंप्लेट की .env फ़ाइल में, पैरामीटर के लिए अपनी वैल्यू सेट अप करें. मेरे मामले में, .env में ये वैरिएबल हैं:
GOOGLE_GENAI_USE_VERTEXAI=FALSE
GOOGLE_API_KEY=<<your API KEY>>
GOOGLE_CLOUD_LOCATION=us-central1 <<or your region>>
GOOGLE_CLOUD_PROJECT=<<your project id>>
PROJECT_ID=<<your project id>>
GOOGLE_CLOUD_REGION=us-central1 <<or your region>>
STORAGE_BUCKET=next-demo-store <<or your storage bucket name>>
प्लेसहोल्डर को अपनी वैल्यू से बदलें.
11. अपना एजेंट चलाना
- टर्मिनल का इस्तेमाल करके, अपने एजेंट प्रोजेक्ट की पैरंट डायरेक्ट्री पर जाएं:
cd renovation-agent
- डिपेंडेंसी इंस्टॉल करें:
pip install -r requirements.txt
- एजेंट को चलाने के लिए, अपने Cloud Shell टर्मिनल में यह कमांड चलाएं:
adk run .
- ADK से प्रोवाइड किए गए वेब यूज़र इंटरफ़ेस (यूआई) में इसे चलाने के लिए, ये काम किए जा सकते हैं:
adk web
- इन प्रॉम्प्ट की मदद से जांच करें:
user>>
Hello. Check order status for Cement Bags.
12. नतीजा
13. व्यवस्थित करें
इस पोस्ट में इस्तेमाल किए गए संसाधनों के लिए, अपने Google Cloud खाते से शुल्क न लिए जाएं, इसके लिए यह तरीका अपनाएं:
- Google Cloud Console में, संसाधन मैनेज करें पेज पर जाएं.
- प्रोजेक्ट की सूची में, वह प्रोजेक्ट चुनें जिसे मिटाना है. इसके बाद, मिटाएं पर क्लिक करें.
- डायलॉग बॉक्स में, प्रोजेक्ट आईडी टाइप करें. इसके बाद, प्रोजेक्ट मिटाने के लिए बंद करें पर क्लिक करें.
14. बधाई हो
बधाई हो! आपने डेटाबेस के लिए ADK और MCP टूलबॉक्स का इस्तेमाल करके, एक से ज़्यादा एजेंट वाला ऐप्लिकेशन बना लिया है! ज़्यादा जानकारी के लिए, प्रॉडक्ट के दस्तावेज़ देखें: एजेंट डेवलपमेंट किट और डेटाबेस के लिए एमसीपी टूलबॉक्स.