1. परिचय
आपको क्या बनाने को मिलेगा
इस कोडलैब में, स्पोर्ट्स शॉप के लिए एआई असिस्टेंट बनाने का तरीका बताया गया है. अगली जनरेशन की टेक्नोलॉजी वाला यह Agent AI ऐप्लिकेशन, ADK, MCP टूलबॉक्स, और AlloyDB की मदद से काम करता है. यह लोगों को कई तरह के टास्क पूरे करने में मदद करेगा. जैसे:
- नैचुरल लैंग्वेज का इस्तेमाल करके प्रॉडक्ट खोजना.
- सुझाए गए प्रॉडक्ट खरीदने के लिए, आस-पास के स्टोर ढूंढना.
- नए ऑर्डर प्लेस करना.
- मौजूदा ऑर्डर के स्टेटस की जांच की जा रही है.
- डिलीवरी के पसंदीदा तरीकों के हिसाब से ऑर्डर अपडेट करना.
आपको क्या सीखने को मिलेगा
- AlloyDB for PostgreSQL डेटाबेस को चालू करना और उसमें डेटा डालना.
- अपने AlloyDB for PostgreSQL इंस्टेंस के साथ डेटाबेस के लिए MCP टूलबॉक्स सेट अप करना.
- खेल-कूद के सामान की दुकान से जुड़ी क्वेरी में मदद करने के लिए, एजेंट डेवलपमेंट किट (एडीके) का इस्तेमाल करके एआई एजेंट को डिज़ाइन और डेवलप करना.
- क्लाउड एनवायरमेंट में, डेटाबेस के लिए अपने एजेंट और एमसीपी टूलबॉक्स की जांच करना.
- इंटेलिजेंट एजेंट के जवाबों के लिए, AlloyDB की क्वेरी से जुड़ी बेहतर सुविधाओं का इस्तेमाल करना.
आपको इन चीज़ों की ज़रूरत होगी
इस कोडलैब को पूरा करने के लिए, आपको इनकी ज़रूरत होगी:
- Chrome वेब ब्राउज़र.
- एक Gmail खाता.
- बिलिंग की सुविधा वाला Google Cloud प्रोजेक्ट.
यह कोडलैब, सभी लेवल के डेवलपर के लिए बनाया गया है. इसमें कोडिंग शुरू करने वाले डेवलपर भी शामिल हैं.
2. शुरू करने से पहले
इस सेक्शन में, Sports Shop Agent की एआई असिस्टेंट बनाने से पहले, Google Cloud प्रोजेक्ट में ज़रूरी शुरुआती सेटअप के बारे में बताया गया है.
प्रोजेक्ट बनाना
- Google Cloud Console में, प्रोजेक्ट चुनने वाले पेज पर जाकर, Google Cloud प्रोजेक्ट चुनें या बनाएं.
- पक्का करें कि आपके Cloud प्रोजेक्ट के लिए बिलिंग चालू हो. किसी प्रोजेक्ट के लिए बिलिंग चालू है या नहीं, यह देखने का तरीका जानें .
- इस लिंक पर क्लिक करके, Cloud Shell चालू करें. Cloud Shell में मौजूद बटन पर क्लिक करके, Cloud Shell टर्मिनल (क्लाउड कमांड चलाने के लिए) और एडिटर (प्रोजेक्ट बनाने के लिए) के बीच टॉगल किया जा सकता है.
- Cloud Shell से कनेक्ट होने के बाद, यह देखने के लिए कि आपकी पुष्टि हो चुकी है और प्रोजेक्ट को आपके प्रोजेक्ट आईडी पर सेट किया गया है, इस कमांड का इस्तेमाल करें:
gcloud auth list
- यह पुष्टि करने के लिए कि gcloud कमांड को आपके प्रोजेक्ट के बारे में पता है, Cloud Shell में यह कमांड चलाएं.
gcloud config list project
- PROJECT_ID वैरिएबल सेट करें. इसे सेट करने के लिए, इस निर्देश का इस्तेमाल करें:
export PROJECT_ID=[YOUR_PROJECT_ID]
gcloud config set project $PROJECT_ID
- इन कमांड को चलाकर, इन एपीआई को चालू करें:
gcloud services enable alloydb.googleapis.com \
compute.googleapis.com \
cloudresourcemanager.googleapis.com \
servicenetworking.googleapis.com \
vpcaccess.googleapis.com \
aiplatform.googleapis.com
3. AlloyDB इंस्टेंस बनाना
इस सेक्शन में, आपको AlloyDB डेटाबेस क्लस्टर और इंस्टेंस सेट अप करने के बारे में बताया जाएगा. साथ ही, एआई एजेंट के लिए ज़रूरी नेटवर्किंग और अनुमतियां कॉन्फ़िगर करने के बारे में भी बताया जाएगा.
AlloyDB क्लस्टर बनाने के लिए, सबसे पहले अपने Cloud Shell टर्मिनल में यह कमांड चलाएं:
gcloud alloydb clusters create alloydb-cluster \
--password=alloydb\
--network=default \
--region=us-central1 \
--database-version=POSTGRES_16
AlloyDB, सुरक्षित और बेहतर परफ़ॉर्मेंस वाले ऐक्सेस के लिए, प्राइवेट आईपी कनेक्टिविटी पर निर्भर करता है. आपको अपने वीपीसी में एक निजी आईपी रेंज असाइन करनी होगी, ताकि Google उसे Google से मैनेज की जा रही सेवा के नेटवर्किंग इन्फ़्रास्ट्रक्चर के साथ सर्विस पियरिंग कनेक्शन के लिए इस्तेमाल कर सके. यह कमांड चलाएं:
gcloud compute addresses create peering-range-for-alloydb \
--global \
--purpose=VPC_PEERING \
--prefix-length=16 \
--description="Automatically allocated IP range for service networking" \
--network=default
इसके बाद, वीपीसी सर्विस पियरिंग कनेक्शन बनाएं. इससे आपका Google Cloud वर्चुअल प्राइवेट क्लाउड (VPC) नेटवर्क, Google की मैनेज की गई सेवाओं के साथ सुरक्षित और निजी तौर पर कम्यूनिकेट कर पाता है. इनमें AlloyDB भी शामिल है. यह कमांड चलाएं:
gcloud services vpc-peerings connect \
--service=servicenetworking.googleapis.com \
--ranges=peering-range-for-alloydb \
--network=default
अब, अपने AlloyDB क्लस्टर में प्राइमरी इंस्टेंस बनाएं. यह वह डेटाबेस एंडपॉइंट है जिससे आपके ऐप्लिकेशन कनेक्ट होंगे. AlloyDB इंस्टेंस बनाने के लिए, यह कमांड चलाएं:
gcloud alloydb instances create alloydb-inst \
--instance-type=PRIMARY \
--cpu-count=2 \
--region=us-central1 \
--cluster=alloydb-cluster \
--availability-type=ZONAL \
--ssl-mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED
ध्यान दें: इंस्टेंस बनने में करीब 10 मिनट लग सकते हैं. कृपया आगे बढ़ने से पहले, इस कार्रवाई के पूरा होने का इंतज़ार करें.
Vertex AI इंटिग्रेशन की सुविधा चालू करना
अपने AlloyDB इंस्टेंस को वेक्टर सर्च क्वेरी करने की अनुमति देने के लिए, आपको AlloyDB सेवा एजेंट को Vertex AI की अनुमतियां देनी होंगी. वेक्टर सर्च क्वेरी, सिमैंटिक सर्च जैसी एआई सुविधाओं के लिए ज़रूरी होती हैं. साथ ही, इससे Vertex AI में डिप्लॉय किए गए मॉडल को कॉल किया जा सकता है.
सबसे पहले, अपना Google Cloud प्रोजेक्ट नंबर पाएं. इसकी ज़रूरत IAM बाइंडिंग के लिए होती है.
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
gcloud projects describe $PROJECT_ID --format="value(projectNumber)"
इसके बाद, Vertex AI को AlloyDB Service Agent के लिए अनुमति दें:
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:service-$PROJECT_NUMBER@gcp-sa-alloydb.iam.gserviceaccount.com" \
--role="roles/aiplatform.user"
सार्वजनिक आईपी चालू करना
यहां दिए गए चरणों को पूरा करने के लिए, हम अपने AlloyDB इंस्टेंस में सार्वजनिक आईपी कनेक्टिविटी चालू करेंगे.
Console में, स्क्रीन के सबसे ऊपर बीच में मौजूद खोज फ़ील्ड पर जाएं और "alloydb" डालें. इसके बाद, बदलाव करें और सार्वजनिक आईपी कनेक्टिविटी सेक्शन पर जाएं. "सार्वजनिक आईपी पता चालू करें" चेकबॉक्स को चुनें और अपनी Cloud Shell मशीन का आईपी पता डालें.
Cloud Shell मशीन का आईपी पता पाने के लिए, Cloud Shell टर्मिनल पर जाएं और " ifconfig | grep -A 1 eth0" कमांड डालें. नतीजे में, आखिरी दो अंकों को 0.0 से बदलें. साथ ही, मास्क का साइज़ ‘/16' रखें. उदाहरण के लिए, यह "XX.XX.0.0/16" की तरह दिखेगा. इसमें XX संख्याएं हैं.
इस आईपी पते को, इंस्टेंस में बदलाव करने वाले पेज के, "नेटवर्क" टेक्स्ट बॉक्स में चिपकाएं.
ध्यान दें: अपडेट होने में तीन मिनट तक लग सकते हैं
4. डेटाबेस लोड करना
स्टोर का डेटाबेस बनाना
अब आपको अपना डेटाबेस बनाना होगा. साथ ही, स्पोर्ट्स शॉप के लिए शुरुआती डेटा लोड करना होगा.
Cloud Shell से अपने निजी AlloyDB इंस्टेंस से कनेक्ट करने के लिए, आपको AlloyDB Auth प्रॉक्सी का इस्तेमाल करना होगा.psql
यह यूटिलिटी, आपके कनेक्शन को डेटाबेस से सुरक्षित तरीके से टनल करती है. (AlloyDB Auth Proxy देखें)
AlloyDB Auth Proxy को डाउनलोड करने के लिए, इस कमांड का इस्तेमाल करें:
wget https://storage.googleapis.com/alloydb-auth-proxy/v1.13.3/alloydb-auth-proxy.linux.amd64 -O alloydb-auth-proxy
इसे एक्ज़ीक्यूटेबल बनाएं:
chmod +x alloydb-auth-proxy
इस निर्देश को अपनी पहली Cloud Shell टर्मिनल विंडो में चलाएं. प्रॉक्सी, बैकग्राउंड में चलेगी और कनेक्शन फ़ॉरवर्ड करेगी.
./alloydb-auth-proxy "projects/$PROJECT_ID/locations/us-central1/clusters/alloydb-cluster/instances/alloydb-inst" --public-ip
अहम जानकारी: इस टर्मिनल विंडो को खुला रखें और प्रॉक्सी को चालू रखें. इसे बंद न करें.
Cloud Shell में नई टर्मिनल विंडो खोलें. इसके लिए, सबसे ऊपर मौजूद "Cloud Shell टर्मिनल" टैब के बगल में मौजूद + आइकॉन पर क्लिक करें.
psql का इस्तेमाल करके, AlloyDB इंस्टेंस से कनेक्ट करें:
psql -h 127.0.0.1 -U postgres
ध्यान दें: प्रॉम्प्ट मिलने पर, क्लस्टर बनाते समय postgres
उपयोगकर्ता के लिए सेट किया गया पासवर्ड डालें. अगर दस्तावेज़ में दिए गए निर्देशों का पालन किया जा रहा है, तो पासवर्ड alloydb
है.
इसके बाद, हमारे ऐप्लिकेशन के लिए स्टोर डेटाबेस बनाएं. इसके लिए, एक-एक करके ये कमांड चलाएं:
CREATE DATABASE store;
\c store
exit
Source Code
अब, कोडलैब की सोर्स कोड रिपॉज़िटरी को क्लोन करें. क्लोन करने से पहले पक्का करें कि आप अपनी होम डायरेक्ट्री या किसी सही जगह पर हों. इसके बाद, यह निर्देश चलाएं:
git clone https://github.com/mtoscano84/sports-agent-adk-mcp-alloydb.git
डेटाबेस में डेटा डालना
डेटाबेस डंप फ़ाइल को ऐक्सेस करने के लिए, क्लोन किए गए प्रोजेक्ट के data
फ़ोल्डर में जाएं.
cd sports-agent-adk-mcp-alloydb/data
इसके बाद, रिपॉज़िटरी से store_backup.sql
फ़ाइल का इस्तेमाल करके, सैंपल डेटासेट को अपने store
डेटाबेस में इंपोर्ट करें.
psql -h 127.0.0.1 -U postgres -d store -f store_backup.sql
ध्यान दें: इंपोर्ट करने के दौरान, आपको चेतावनी और गड़बड़ी के कुछ मैसेज दिख सकते हैं. इस कोडलैब के लिए, इन्हें अनदेखा किया जा सकता है. ये अक्सर उन अनुमतियों या ऑब्जेक्ट से जुड़े होते हैं जो डंप में पूरा स्कीमा होने पर पहले से मौजूद होते हैं.आपको कुछ चेतावनियां और गड़बड़ियां दिखेंगी जिन्हें अनदेखा किया जा सकता है
5. अनुमति देने वाली सेवा सेट अप करना
इस सेक्शन में, आपको अपने ऐप्लिकेशन के लिए अनुमति देने वाली सेवा सेट अप करनी होगी. यह सेवा, आपके एआई एजेंट को सुरक्षित तरीके से ऐक्सेस करने और प्रॉम्प्ट इंजेक्शन की कमज़ोरियों से बचाने के लिए ज़रूरी है.
सबसे पहले, आपको अपने store
डेटाबेस में मौजूद users
टेबल में एक सैंपल उपयोगकर्ता जोड़ना होगा. इस उपयोगकर्ता का इस्तेमाल, आपके ऐप्लिकेशन में पुष्टि करने के लिए किया जाएगा.
कंसोल पर जाएं और AlloyDB पर जाएं. इसके बाद, प्राइमरी इंस्टेंस और फिर AlloyDB Studio चुनें:
जब आपसे कहा जाए, तब क्लस्टर सेट अप करते समय बनाए गए क्रेडेंशियल का इस्तेमाल करके, AlloyDB Studio में साइन इन करें:
- उपयोगकर्ता नाम: "postgres"
- डेटाबेस: "store"
- पासवर्ड: "alloydb"
SQL एडिटर में, INSERT स्टेटमेंट को लागू करके अपने उपयोगकर्ता को डेटाबेस में जोड़ें. नाम, उपनाम, और ईमेल पता बदलें.
अहम जानकारी:
- उदाहरण में दी गई LOCATION को वैसा ही रखें
- उसी ईमेल पते का इस्तेमाल करें जिसका इस्तेमाल करके आपने Google Cloud Console में रजिस्टर किया है
INSERT INTO users (user_id, first_name, last_name, Address, city, postal_code, location, email)
VALUES (10,'John', 'Doe', 'Carrer Muntaner 39', 'Barcelona', '08019', '0101000020E61000008AAE0B3F38B144401FBB0B9414780140', 'john.doe@example.com');
इसके बाद, आपको अपने प्रोजेक्ट के लिए, OAuth सहमति स्क्रीन को कॉन्फ़िगर करना होगा. यह स्क्रीन, उपयोगकर्ताओं को तब दिखती है, जब आपका ऐप्लिकेशन उनके Google खाते को ऐक्सेस करने का अनुरोध करता है. साथ ही, इससे आपके ऐप्लिकेशन के ब्रैंड के बारे में पता चलता है.
Console में, "एपीआई और सेवाएं", "Google OAuth सहमति" पर जाएं:
अपने ऐप्लिकेशन का ब्रैंड बनाने के लिए, यह जानकारी दें:
- ऐप्लिकेशन का नाम: "Sports Shopping Agent AI"
- उपयोगकर्ता सहायता के लिए ईमेल पता: "YOUR_EMAIL"
- ऑडियंस: "बाहरी"
- संपर्क जानकारी: "YOUR_EMAIL"
अब आपको OAuth क्लाइंट आईडी बनाना होगा. इसका इस्तेमाल आपका फ़्रंटएंड ऐप्लिकेशन, Google के साथ उपयोगकर्ता की पहचान की पुष्टि करने के लिए करेगा.
सबसे पहले, पक्का करें कि आपके पास Google Cloud प्रोजेक्ट नंबर हो. रीडायरेक्ट यूआरआई को सही तरीके से कॉन्फ़िगर करने के लिए, यह ज़रूरी है. Cloud Shell टर्मिनल में यह कमांड चलाएं:
अगर इस Cloud Shell टर्मिनल विंडो में आपका PROJECT_ID वैरिएबल सेट नहीं है, तो यह कमांड चलाएं:
export PROJECT_ID=[YOUR_PROJECT_ID]
इसके बाद, इस कमांड का इस्तेमाल करके PROJECT_NUMBER पाएं:
gcloud projects describe $PROJECT_ID --format="value(projectNumber)"
इसके बाद, "एपीआई और सेवाएं" -> "क्रेडेंशियल" -> "क्रेडेंशियल बनाएं" -> "OAuth क्लाइंट आईडी" पर जाएं
क्रेडेंशियल बनाने के लिए, यहां दी गई जानकारी का इस्तेमाल करें:
- ऐप्लिकेशन का टाइप: "वेब ऐप्लिकेशन"
- नाम: "Sports Shopping Agent AI App"
अधिकृत JavaScript ऑरिजिन:
- URL1: https://finn-frontend-[YOUR_PROJECT_NUMBER].us-central1.run.app
रीडायरेक्ट करने के लिए मान्य यूआरआई:
- URL1: https://finn-frontend-[YOUR_PROJECT_NUMBER].us-central1.run.app
ध्यान दें: https://finn-frontend-[YOUR_PROJECT_NUMBER].us-central1.run.app, आपके फ़्रंटएंड ऐप्लिकेशन के लिए डिप्लॉयमेंट का यूआरएल है. इसे इस कोडलैब में बाद में सेट अप किया जाएगा. पक्का करें कि आपने [YOUR_PROJECT_NUMBER] की जगह, कॉपी किया गया असल नंबर डाला हो.
अहम जानकारी: OAuth क्लाइंट आईडी बनाने के बाद, आपको एक पॉप-अप दिखेगा. इसमें आपका OAuth क्लाइंट आईडी और कभी-कभी क्लाइंट सीक्रेट दिखेगा. अपने OAuth क्लाइंट आईडी को किसी सुरक्षित जगह पर सेव करें. इसकी ज़रूरत आपको बाद में, फ़्रंटएंड को कॉन्फ़िगर करते समय पड़ेगी.
6. डेटाबेस सेटअप करने के लिए MCP ToolBox
टूलबॉक्स, आपके ऐप्लिकेशन के ऑर्केस्ट्रेशन फ़्रेमवर्क और आपके डेटाबेस के बीच मौजूद होता है. यह एक कंट्रोल प्लेन उपलब्ध कराता है, जिसका इस्तेमाल टूल में बदलाव करने, उन्हें डिस्ट्रिब्यूट करने या उन्हें शुरू करने के लिए किया जाता है. यह आपके टूल को मैनेज करने की प्रोसेस को आसान बनाता है. इसके लिए, यह आपको टूल को सेव और अपडेट करने के लिए एक जगह उपलब्ध कराता है. इससे, एजेंट और ऐप्लिकेशन के बीच टूल शेयर किए जा सकते हैं. साथ ही, ऐप्लिकेशन को फिर से डिप्लॉय किए बिना उन टूल को अपडेट किया जा सकता है.
MCP Toolbox for Databases के साथ काम करने वाले डेटाबेस में से एक AlloyDB है. हम पिछले सेक्शन में इसे पहले ही उपलब्ध करा चुके हैं. इसलिए, अब Toolbox को सेटअप करते हैं.
सबसे पहले, आपको MCP टूलबॉक्स सर्वर को अपने Cloud Shell एनवायरमेंट में स्थानीय तौर पर सेट अप करना होगा, ताकि इसकी सुविधाओं की पुष्टि की जा सके.
- अपने Cloud Shell टर्मिनल में, क्लोन की गई प्रोजेक्ट रिपॉज़िटरी में मौजूद
toolbox
फ़ोल्डर पर जाएं:"
cd sports-agent-adk-mcp-alloydb/src/toolbox
- Toolbox बाइनरी को डाउनलोड करने और उसे एक्ज़ीक्यूट करने की अनुमतियां देने के लिए, ये कमांड चलाएं:
# 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
ध्यान दें: यहां वर्शन 0.7.0 के बारे में बताया गया है. प्रोडक्शन एनवायरमेंट के लिए, हमेशा Toolbox के रिलीज़ पेज से, सबसे नई स्टेबल रिलीज़ की पुष्टि करें और उसका इस्तेमाल करें.
- Cloud Shell Editor पर जाएं. एडिटर आइकॉन पर क्लिक करके, टर्मिनल से एडिटर पर टॉगल किया जा सकता है.
आपको इसी sports-agent-adk-mcp-alloydb/src/toolbox
डायरेक्ट्री में, tools.yaml
नाम की एक फ़ाइल मिलेगी. इस फ़ाइल को खोलें और पिछले चरणों में मिले OAuth क्लाइंट आईडी और Google Cloud प्रोजेक्ट आईडी से प्लेसहोल्डर अपडेट करें.
आइए, tools.yaml के बारे में जानते हैं
सोर्स, आपके अलग-अलग डेटा सोर्स को दिखाते हैं. टूल इन डेटा सोर्स के साथ इंटरैक्ट कर सकता है. सोर्स, एक ऐसे डेटा सोर्स को दिखाता है जिससे कोई टूल इंटरैक्ट कर सकता है. tools.yaml फ़ाइल के sources सेक्शन में, सोर्स को मैप के तौर पर तय किया जा सकता है. आम तौर पर, सोर्स कॉन्फ़िगरेशन में डेटाबेस से कनेक्ट करने और उससे इंटरैक्ट करने के लिए ज़रूरी जानकारी होती है.
टूल से यह तय होता है कि एजेंट कौनसी कार्रवाइयाँ कर सकता है. जैसे, किसी सोर्स से डेटा पढ़ना और उसमें डेटा लिखना. टूल, ऐसी कार्रवाई को कहते हैं जो आपका एजेंट कर सकता है. जैसे, SQL स्टेटमेंट चलाना. tools.yaml फ़ाइल के टूल सेक्शन में, टूल को मैप के तौर पर तय किया जा सकता है. आम तौर पर, किसी टूल को कार्रवाई करने के लिए सोर्स की ज़रूरत होती है.
tools.yaml को कॉन्फ़िगर करने के बारे में ज़्यादा जानकारी के लिए, यह दस्तावेज़ पढ़ें.
डेटाबेस सर्वर के लिए, MCP टूलबॉक्स को चलाएं
सर्वर शुरू करने के लिए, mcp-toolbox फ़ोल्डर से यह कमांड चलाएं:
./toolbox --tools-file "tools.yaml"
अब अगर क्लाउड पर वेब प्रीव्यू मोड में सर्वर खोला जाता है, तो आपको Toolbox सर्वर चालू दिखेगा. साथ ही, हमारे ऐप्लिकेशन के सभी टूल भी काम करते हुए दिखेंगे.
MCP टूलबॉक्स सर्वर, डिफ़ॉल्ट रूप से पोर्ट 5000 पर चलता है. आइए, Cloud Shell का इस्तेमाल करके इसकी जांच करें.
नीचे दिए गए तरीके से, Cloud Shell में वेब प्रीव्यू पर क्लिक करें:
पोर्ट बदलें पर क्लिक करें. इसके बाद, नीचे दिखाए गए तरीके से पोर्ट को 5000 पर सेट करें. इसके बाद, बदलें और झलक देखें पर क्लिक करें.
इससे यह आउटपुट मिलेगा:
डेटाबेस के लिए MCP टूलकिट, Python SDK के बारे में जानकारी देता है. इसकी मदद से, टूल की पुष्टि की जा सकती है और उन्हें आज़माया जा सकता है. इसके बारे में यहाँ बताया गया है. हम उस सेक्शन को छोड़कर, सीधे अगले सेक्शन में एजेंट डेवलपमेंट किट (एडीके) पर जाएंगे. इसमें इन टूल का इस्तेमाल किया जाएगा.
Cloud Run में टूलबॉक्स डिप्लॉय करना
अपने टूलबॉक्स सर्वर को एक सार्वजनिक एंडपॉइंट के तौर पर ऐक्सेस करने के लिए, आपको इसे Cloud Run पर डिप्लॉय करना होगा. इससे इसे अन्य ऐप्लिकेशन और अपने एआई एजेंट के साथ इंटिग्रेट किया जा सकेगा. Cloud Run पर Toolbox को होस्ट करने के बारे में ज़्यादा जानकारी वाले निर्देश यहां दिए गए हैं.
Cloud Shell टर्मिनल पर वापस जाएं और टूलबॉक्स फ़ोल्डर पर जाएं:
cd sports-agent-adk-mcp-alloydb/src/toolbox
पक्का करें कि आपका PROJECT_ID
एनवायरमेंट वैरिएबल, आपके Google Cloud प्रोजेक्ट आईडी पर सेट हो.
export PROJECT_ID=$PROJECT_ID
इसके बाद, पुष्टि करें कि प्रोजेक्ट में Google Cloud की ये सेवाएं चालू हों.
gcloud services enable run.googleapis.com \
cloudbuild.googleapis.com \
artifactregistry.googleapis.com \
iam.googleapis.com \
secretmanager.googleapis.com
आइए, एक अलग सेवा खाता बनाते हैं. यह खाता, Toolbox सेवा के लिए पहचान के तौर पर काम करेगा. इस सेवा को Google Cloud Run पर डिप्लॉय किया जाएगा. हम यह भी पक्का कर रहे हैं कि इस सेवा खाते के पास सही भूमिकाएं हों. जैसे, Secret Manager को ऐक्सेस करने और AlloyDB से कम्यूनिकेट करने की क्षमता.
gcloud iam service-accounts create toolbox-identity
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 फ़ाइल को सीक्रेट के तौर पर अपलोड करना होगा. साथ ही, हमें Cloud Run में Toolbox को इंस्टॉल करना होगा. इसलिए, हम टूलबॉक्स के लिए नई कंटेनर इमेज का इस्तेमाल करेंगे और उसे IMAGE वैरिएबल में सेट करेंगे.
gcloud secrets create tools --data-file=tools.yaml
export IMAGE=us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:latest
आखिर में, इस निर्देश का इस्तेमाल करके, अपने Toolbox सर्वर को 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
इससे, कॉन्फ़िगर किए गए tools.yaml के साथ Toolbox Server को Cloud Run पर डिप्लॉय करने की प्रोसेस शुरू हो जाएगी. डेटा सोर्स को सही तरीके से डिप्लॉय करने के बाद, आपको इस तरह का मैसेज दिखेगा:
Deploying container to Cloud Run service [toolbox] in project [sports-store-agent-ai] region [us-central1]
OK Deploying... Done.
OK Creating Revision...
OK Routing traffic...
OK Setting IAM Policy...
Done.
Service [toolbox] revision [toolbox-00002-dn2] has been deployed and is serving 100 percent of traffic.
Service URL: https://toolbox-[YOUR_PROJECT_NUMBER].us-central1.run.app
अब ब्राउज़र में, ऊपर दिया गया सेवा का यूआरएल खोला जा सकता है. इसमें "नमस्ते, दुनिया के लोगों" मैसेज दिखना चाहिए, जो हमने पहले देखा था. इसके अलावा, उपलब्ध टूल देखने के लिए, इस यूआरएल पर भी जाएं:
https://toolbox-[YOUR_PROJECT_NUMBER].us-central1.run.app/api/toolset
Google Cloud Console में जाकर भी Cloud Run पर जाया जा सकता है. यहां आपको Cloud Run की सेवाओं की सूची में Toolbox सेवा दिखेगी.
7. ADK पर बनाया गया एजेंट
इस सेक्शन में, आपको Cloud Run पर अपने एआई एजेंट को डिप्लॉय करना होगा. इसे एजेंट डेवलपमेंट किट (एडीके) का इस्तेमाल करके बनाया गया है.
सबसे पहले, Cloud Run पर अपना एजेंट बनाने और उसे डिप्लॉय करने के लिए, अपने प्रोजेक्ट में ज़रूरी एपीआई चालू करें. साथ ही, Artifact Registry और Cloud Storage के साथ इंटरैक्ट करने के लिए भी एपीआई चालू करें. अपने Cloud Shell टर्मिनल में यह कमांड चलाएं:
gcloud services enable artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
run.googleapis.com \
storage.googleapis.com
इसके बाद, हम अपने प्रोजेक्ट में Compute के डिफ़ॉल्ट सेवा खाते को ज़रूरी अनुमतियां असाइन करेंगे. सबसे पहले, Cloud Shell टर्मिनल में यह कमांड चलाकर PROJECT_NUMBER पाएं:
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
Compute के डिफ़ॉल्ट सेवा खाते को अनुमतियां असाइन करें:
# Grant Cloud Run service account access to GCS
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
--role="roles/storage.admin"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
--role="roles/run.admin"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
--role="roles/artifactregistry.writer"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com" \
--role="roles/artifactregistry.repoAdmin"
# Grant Vertex AI User role to the service account
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
--role="roles/aiplatform.user"
# Grant Vertex AI Model User role to the service account
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
--role="roles/aiplatform.modelUser"
हमारे एजेंट को टूल से कनेक्ट करना
हम अपने एजेंट को टूल से कनेक्ट करने जा रहे हैं. एडीके के संदर्भ में, टूल का मतलब एआई एजेंट को दी गई किसी खास सुविधा से है. इससे एआई एजेंट को कार्रवाइयां करने और दुनिया के साथ इंटरैक्ट करने में मदद मिलती है. यह सुविधा, एआई एजेंट को टेक्स्ट जनरेट करने और तर्क देने की बुनियादी क्षमताओं से आगे बढ़ने में मदद करती है.
इस उदाहरण में, हम अपने एजेंट को उन टूल के साथ काम करने के लिए तैयार करेंगे जिन्हें हमने डेटाबेस के लिए, MCP टूलबॉक्स में कॉन्फ़िगर किया है.
Cloud Shell Editor का इस्तेमाल करके, sports-agent-adk-mcp-alloydb/src/backend/ पर जाएं और "finn_agent.py" फ़ाइल में यहां दिया गया कोड डालें. ध्यान दें कि हम पिछले चरण में डिप्लॉय किए गए MCP ToolBox Server से Cloud Run Service यूआरएल का इस्तेमाल कर रहे हैं:
Cloud Run पर हमारे एजेंट को डिप्लॉय करना
आखिर में, कॉन्फ़िगर किए गए एआई एजेंट को Cloud Run पर डिप्लॉय किया जाएगा. इससे, इसे एचटीटीपी एंडपॉइंट के ज़रिए ऐक्सेस किया जा सकेगा.
सबसे पहले, Artifact Registry में एक Docker रिपॉज़िटरी बनाएं, ताकि आपके एजेंट की कंटेनर इमेज सेव की जा सकें. Cloud Shell में यह कमांड चलाएं:
gcloud artifacts repositories create finn-agent-images \
--repository-format=docker \
--location=us-central1 \
--project=$PROJECT_ID \
--description="Repository for finn-agent images"
इसके बाद, Cloud Build का इस्तेमाल करके अपने एजेंट के लिए Docker इमेज बनाएं. क्लोन किए गए प्रोजेक्ट (sports-agent-adk-mcp-alloydb/
) की रूट डायरेक्ट्री से यह कमांड चलाएं:
gcloud builds submit src/backend/ --tag us-central1-docker.pkg.dev/$PROJECT_ID/finn-agent-images/finn-agent
अब एजेंट सेवा को डिप्लॉय करें. इस कमांड से Cloud Run सेवा बनेगी, Artifact Registry से इमेज पुल होगी, और एनवायरमेंट वैरिएबल कॉन्फ़िगर होंगे
gcloud run deploy finn-agent \
--image us-central1-docker.pkg.dev/$PROJECT_ID/finn-agent-images/finn-agent \
--platform managed \
--allow-unauthenticated \
--region us-central1 \
--project $PROJECT_ID --set-env-vars="GOOGLE_CLOUD_PROJECT=$PROJECT_ID,GOOGLE_CLOUD_LOCATION=us-central1,GOOGLE_GENAI_USE_VERTEXAI=TRUE"
ध्यान दें: हम एनवायरमेंट वैरिएबल को डाइनैमिक तरीके से सेट कर रहे हैं. इनमें GOOGLE_CLOUD_PROJECT
(शेल वैरिएबल $PROJECT_ID
का इस्तेमाल करके) शामिल है
आपको इससे मिलता-जुलता आउटपुट दिखेगा. इससे पता चलता है कि आपका एजेंट डिप्लॉय हो गया है:
Deploying container to Cloud Run service [finn-agent] in project [sports-store-agent-ai] region [us-central1]
OK Deploying... Done.
OK Creating Revision...
OK Routing traffic...
OK Setting IAM Policy...
Done.
Service [finn-agent] revision [finn-agent-00005-476] has been deployed and is serving 100 percent of traffic.
Service URL: https://finn-agent-359225437509.us-central1.run.app
आखिर में, अपने एजेंट की जांच करने के लिए, Cloud Shell टर्मिनल में यह curl
कमांड चलाएं:
curl -X POST \
-H "Content-Type: application/json" \
-d '{"message":"Hello"}' \
https://finn-agent-[YOUR_PROJECT_NUMBER].us-central1.run.app/chat
आपको इससे मिलता-जुलता आउटपुट मिलेगा:
"नमस्ते! मैं फ़िन हूँ, खेल-कूद से जुड़े सामान की खरीदारी में आपकी मदद करने वाला एआई असिस्टेंट. मैं आपको खेल-कूद से जुड़े प्रॉडक्ट, गियर, और उपकरण ढूंढने में मदद कर सकता हूं. मैं आपकी क्या मदद कर सकता/सकती हूं?"
इस चरण में, आपने AlloyDB, MCP टूलबॉक्स, और ADK का इस्तेमाल करके बनाए गए एजेंट को डिप्लॉय करने की पुष्टि कर ली है.
8. फ़्रंटएंड डिप्लॉय करना
इस सेक्शन में, Cloud Run पर अपने एआई असिस्टेंट के लिए बातचीत वाला यूज़र इंटरफ़ेस डिप्लॉय किया जाएगा. इस फ़्रंटएंड को React और JavaScript का इस्तेमाल करके बनाया गया है.
डिप्लॉय करने से पहले, आपको फ़्रंटएंड के सोर्स कोड को अपडेट करना होगा. इसके लिए, आपको डिप्लॉय किए गए एजेंट के यूआरएल और अपने OAuth क्लाइंट आईडी का इस्तेमाल करना होगा.
Cloud Shell Editor का इस्तेमाल करके, sports-agent-adk-mcp-alloydb/src/frontend/src/pages/
पर जाएं और Home.jsx
फ़ाइल खोलें. आपको अपने एजेंट के Cloud Run Service यूआरएल के लिए, प्लेसहोल्डर अपडेट करना होगा. इसके बाद, इसे पिछले चरण में दिए गए एजेंट के Cloud Run Service यूआरएल से बदलें. उदाहरण के लिए, https://finn-agent-[YOUR_PROJECT_NUMBER].us-central1.run.app
).
अब, आगे बढ़ें और sports-agent-adk-mcp-alloydb/src/frontend/src/components/
पर जाएं. इसके बाद, GoogleSignInButton.jsx
फ़ाइल खोलें. आपको इस फ़ाइल को उस OAuth Client-ID से अपडेट करना होगा जो आपको "Authorization Service Setup" सेक्शन में मिला था:
Cloud Run पर फ़्रंटएंड डिप्लॉय करना
अब आपका फ़्रंटएंड ऐप्लिकेशन कॉन्फ़िगर हो गया है. अब इसे Cloud Run पर डिप्लॉय किया जा सकता है.
अपनी फ़्रंटएंड इमेज के लिए Artifact Registry में Docker रिपॉज़िटरी बनाने के लिए, रूट डायरेक्ट्री (sports-agent-adk-mcp-alloydb/
) से Cloud Shell टर्मिनल में यह कमांड चलाएं.
gcloud artifacts repositories create finn-frontend-images \
--repository-format=docker \
--location=us-central1 \
--project=$PROJECT_ID \
--description="Repository for finn-frontend images"
इसके बाद, Cloud Build का इस्तेमाल करके अपने फ़्रंटएंड ऐप्लिकेशन के लिए Docker इमेज बनाएं. अपने प्रोजेक्ट की रूट डायरेक्ट्री से यह कमांड चलाएं:
gcloud builds submit src/frontend/ --tag us-central1-docker.pkg.dev/$PROJECT_ID/finn-frontend-images/finn-frontend
आखिर में, हम Cloud Run पर फ़्रंटएंड डिप्लॉय करेंगे. इसके लिए, यहां दिया गया निर्देश इस्तेमाल करें:
gcloud run deploy finn-frontend \
--image us-central1-docker.pkg.dev/$PROJECT_ID/finn-frontend-images/finn-frontend \
--platform managed \
--allow-unauthenticated \
--region us-central1 \
--project $PROJECT_ID
आपको इससे मिलता-जुलता आउटपुट दिखेगा. इससे पता चलता है कि आपका फ़्रंटएंड सही तरीके से डिप्लॉय हो गया है:
Deploying container to Cloud Run service [finn-frontend] in project [sport-store-agent-ai] region [us-central1]
OK Deploying... Done.
OK Creating Revision...
OK Routing traffic...
OK Setting IAM Policy...
Done.
Service [finn-frontend] revision [finn-frontend-00002-mwc] has been deployed and is serving 100 percent of traffic.
Service URL: https://finn-frontend-535807247199.us-central1.run.app
अपना वेब ब्राउज़र खोलें और पिछले चरण में मिले सेवा के यूआरएल का इस्तेमाल करके, अपना नया ऐप्लिकेशन खोलें. यह ऐप्लिकेशन, आपके एआई एजेंट की मदद से काम करता है!
9. हमारे एजेंट को चलाना
स्पोर्ट्स स्टोर के लिए एआई असिस्टेंट, फ़िन को अब पूरी तरह से डिप्लॉय कर दिया गया है. यह खरीदारी करने में आपकी मदद करने के लिए तैयार है!
अपना वेब ब्राउज़र खोलें और पिछले चरण में दिए गए अपने फ़्रंटएंड ऐप्लिकेशन के सेवा यूआरएल पर जाएं. यूआरएल इस फ़ॉर्मैट में होना चाहिए: https://finn-frontend-[YOUR_PROJECT_NUMBER].us-central1.run.app
फ़्रंटएंड लोड होने के बाद, सबसे ऊपर दाईं ओर मौजूद बटन पर क्लिक करें. आम तौर पर, इस बटन पर "साइन इन करें" या इस तरह का कोई अन्य प्रॉम्प्ट लिखा होता है. इसके बाद, अपने Google क्रेडेंशियल का इस्तेमाल करके पुष्टि करें. इस कार्रवाई में, OAuth कॉन्फ़िगरेशन का इस्तेमाल किया जाएगा.
पुष्टि हो जाने के बाद, आपके पास फ़िन से बातचीत करने का विकल्प होता है! बातचीत करके खरीदारी करने की सुविधा का इस्तेमाल शुरू करने के लिए, "अभी खरीदारी करें" बटन पर क्लिक करें.
अपने एआई एजेंट की अलग-अलग सुविधाओं को आज़माने के लिए, इस स्क्रिप्ट का इस्तेमाल करें. इन प्रॉम्प्ट को एक-एक करके चैट इंटरफ़ेस में कॉपी करके चिपकाएं:
- नमस्ते फ़िन !
- मुझे अल्ट्रा-ट्रेल के लिए दौड़ने वाले जूते चाहिए
- मुझे Ultra Glide के बारे में ज़्यादा जानकारी चाहिए
- मेरी खरीदारी की सूची में, Ultra Glide, साइज़ 40, रंग लाल/स्लेटी जोड़ो
- मुझे मेरी शॉपिंग लिस्ट दिखाओ
- मेरे आस-पास के स्टोर ढूंढो
- कृपया मेरी खरीदारी की सूची में मौजूद सामान का ऑर्डर, Sports Diagonal Mar स्टोर से करें
- मेरे ऑर्डर का स्टेटस देखना है
- कृपया Sports Diagonal Mar स्टोर के लिए डिलीवरी के तरीके बताएं
- मेरे ऑर्डर [YOUR_ORDER_NUMBER] के लिए, डिलीवरी का तरीका बदलकर एक्सप्रेस डिलीवरी कर दो
- मेरे ऑर्डर का स्टेटस देखना है
- धन्यवाद फ़िन !
डिप्लॉय किए गए Finn एजेंट और उसकी क्षमताओं के बारे में विज़ुअल जानकारी पाने के लिए, यहां दिया गया वीडियो देखें:
AlloyDB की मदद से काम करने वाले स्पोर्ट्स एजेंट के एआई असिस्टेंट का डेमो
10. नतीजे
पिछली स्क्रिप्ट को चलाने के बाद, आपने ADK एजेंट के पूरे इंटिग्रेशन, AlloyDB से उसके कनेक्शन, और MCP टूलबॉक्स के इस्तेमाल की पुष्टि कर ली है. इस सेक्शन में, लागू की गई मुख्य सुविधाओं के बारे में बताया गया है.
- Authorization Service
MCP Toolbox for Databases, उपयोगकर्ताओं की पुष्टि करने के लिए, आपके ऐप्लिकेशन में अनुमति देने वाली सेवा (खास तौर पर, इस कोडलैब में Google साइन-इन) को फ़ेडरेट करने की सुविधा देता है. MCP टूलबॉक्स में, आपके OAuth Client-ID का इस्तेमाल उपयोगकर्ता की पहचान की पुष्टि करने के लिए किया जाता है. ऐसा तब होता है, जब किसी टूल को चालू किया जाता है.
पुष्टि करने का यह मज़बूत तरीका, आपके एजेंटिक ऐप्लिकेशन को प्रॉम्प्ट इंजेक्शन से बचाने का बेहतरीन तरीका है. यह एक तरह का हमला होता है, जिसमें नुकसान पहुंचाने वाला इनपुट, एजेंट के काम करने के तरीके को बायपास करने या उसमें बदलाव करने की कोशिश करता है. ज़्यादा जानकारी के लिए, प्रॉम्प्ट इंजेक्शन के बारे में Wikipedia का लेख पढ़ें
इस ऐप्लिकेशन में, इस तकनीक का इस्तेमाल तब किया जाता है, जब कोई उपयोगकर्ता "हमारे ऑर्डर का स्टेटस देखें" या "मेरी खरीदारी की सूची दिखाओ" कहता है. इस एजेंट को सिर्फ़ पुष्टि किए गए उपयोगकर्ता के ऑर्डर दिखाने के लिए डिज़ाइन किया गया है. इससे ऑर्डर की जानकारी को बिना अनुमति के ऐक्सेस करने से रोका जा सकता है.
- वेक्टर सर्च
आपका एजेंटिक ऐप्लिकेशन, क्वेरी से जुड़ी बेहतर सुविधाएं देने के लिए AlloyDB for PostgreSQL का इस्तेमाल करता है. खास तौर पर, वेक्टर सर्च के ज़रिए. AlloyDB, एसक्यूएल फ़ंक्शन का इस्तेमाल करके, डेटाबेस में सीधे तौर पर ऑनलाइन एम्बेडिंग जनरेट करने की सुविधा देता है.
इस बेहतरीन सुविधा की मदद से एजेंट, उपयोगकर्ता के आम भाषा में दिए गए इनपुट को संख्यात्मक एम्बेडिंग में बदल सकता है. इसके बाद, यह इन एम्बेडिंग के आधार पर, आपके प्रॉडक्ट कैटलॉग (या काम के अन्य डेटा) के लिए मिलती-जुलती खोज कर सकता है. इससे खोज के ज़्यादा काम के नतीजे मिलते हैं.
अपने आवेदन में, आपको इस तकनीक का इस्तेमाल तब दिखेगा, जब आपने Finn से पूछा: "मुझे अल्ट्रा-ट्रेल के लिए रनिंग शूज़ चाहिए".
- जियोस्पेशल सुविधाएं (PostGis)
AlloyDB for PostgreSQL, PostgreSQL की सभी स्टैंडर्ड सुविधाओं के साथ काम करता है. इस ऐप्लिकेशन में, हम लोकप्रिय PostgreSQL एक्सटेंशन PostGIS का इस्तेमाल करते हैं, ताकि एजेंट को भू-स्थानिक लोकेशन की सुविधाएं दी जा सकें.
जब एजेंट से पूछा जाता है: "मेरे आस-पास के स्टोर ढूंढो", तो एजेंट एक ऐसे टूल का इस्तेमाल करता है जो डेटाबेस में PostGIS इंडेक्स का इस्तेमाल करता है. इससे, उपयोगकर्ता की बताई गई या अनुमानित जगह के सबसे नज़दीकी स्टोर का पता लगाया जा सकता है.
11. (ज़रूरी नहीं) AlloyDB AI की नैचुरल लैंग्वेज से एसक्यूएल में बदलने की सुविधा को आज़माएं
इस सेक्शन में, AlloyDB for PostgreSQL की एक ऐडवांस और Pre-GA सुविधा के बारे में बताया गया है: नैचुरल लैंग्वेज से SQL. इस सुविधा की मदद से, सामान्य भाषा में दिए गए प्रॉम्प्ट से सीधे एसक्यूएल क्वेरी जनरेट की जा सकती हैं. इसके लिए, आपको अपने डेटाबेस में एआई का इस्तेमाल करना होगा.
अहम जानकारी: यह सुविधा, GA से पहले की सुविधा है. इसलिए, आपको साइन अप करना होगा. साथ ही, अपने Google Cloud प्रोजेक्ट, AlloyDB क्लस्टर, और डेटाबेस के लिए इस सुविधा को चालू करना होगा.
- ऐक्सेस के लिए साइन-अप करें: अपने प्रोजेक्ट के लिए ऐक्सेस का अनुरोध करने के लिए, कृपया यह फ़ॉर्म भरें
- दस्तावेज़: AlloyDB AI की नैचुरल लैंग्वेज से SQL क्वेरी जनरेट करने की सुविधा के बारे में ज़्यादा जानने के लिए, आधिकारिक दस्तावेज़ पढ़ें
साइन अप करने और अपने प्रोजेक्ट के लिए ऐक्सेस की पुष्टि करने के बाद, AlloyDB Studio में यह तरीका अपनाएं.
क्लस्टर बनाते समय बनाए गए क्रेडेंशियल का इस्तेमाल करके, AlloyDB में साइन इन करें:
- उपयोगकर्ता नाम: "postgres"
- डेटाबेस: "store"
- पासवर्ड: "alloydb"
1- alloydb_ai_nl एक्सटेंशन बनाएं. यह एक्सटेंशन, AlloyDB AI की नैचुरल लैंग्वेज की सुविधाओं के लिए ज़रूरी फ़ंक्शन उपलब्ध कराता है.
CREATE EXTENSION alloydb_ai_nl cascade;
2- अपने ऐप्लिकेशन के लिए कॉन्फ़िगरेशन बनाएं. कॉन्फ़िगरेशन से, स्कीमा के उस कॉन्टेक्स्ट के बारे में पता चलता है जिसका इस्तेमाल एआई मॉडल, आपके डेटाबेस को समझने के लिए करेगा.
SELECT
alloydb_ai_nl.g_create_configuration(
'finn_app_config' -- configuration_id
);
3- कॉन्फ़िगरेशन के साथ स्कीमा / टेबल रजिस्टर करें. कॉन्फ़िगरेशन में वे टेबल और स्कीमा जोड़ें जिनसे आपके ऐप्लिकेशन का एजेंट इंटरैक्ट करेगा.
SELECT alloydb_ai_nl.g_manage_configuration(
operation => 'register_table_view',
configuration_id_in => 'finn_app_config',
table_views_in=>'{public.products, public.products_variants, public.orders, public.orders_items, public.users, public.inventory, public.stores}'
);
4- स्कीमा / टेबल के लिए कॉन्टेक्स्ट जनरेट करें. इस चरण में, रजिस्टर की गई टेबल को प्रोसेस किया जाता है, ताकि एआई मॉडल के लिए ज़रूरी कॉन्टेक्स्ट जनरेट किया जा सके. इस प्रोसेस में करीब दो से तीन मिनट लग सकते हैं.
SELECT alloydb_ai_nl.generate_schema_context(
'finn_app_config',
TRUE
);
5- कुछ टेबल और कॉलम के लिए, अपने-आप जनरेट हुए कॉन्टेक्स्ट की जांच करें (ज़रूरी नहीं). जनरेट किए गए कॉन्टेक्स्ट की जांच करके, यह समझा जा सकता है कि एआई मॉडल आपके स्कीमा को कैसे समझता है.
SELECT object_context
FROM alloydb_ai_nl.generated_schema_context_view
WHERE schema_object = 'public.inventory';
SELECT object_context
FROM alloydb_ai_nl.generated_schema_context_view
WHERE schema_object = 'public.products.name';
SELECT object_context
FROM alloydb_ai_nl.generated_schema_context_view
WHERE schema_object = 'public.products.popularity_score';
आपको हमारे एजेंट के "tools.yaml" में, "check-inventory-by-store-brand-category" नाम का टूल मिलेगा. यह टूल, AlloyDB की नैचुरल लैंग्वेज को एसक्यूएल में बदलने की सुविधा का इस्तेमाल करता है:
कोई वेब ब्राउज़र खोलें और ऐप्लिकेशन खोलने के लिए, सेवा के यूआरएल का इस्तेमाल करें: "https://finn-frontend-[YOUR_PROJECT_NUMBER].us-central1.run.app"
इसके बाद, इस नई सुविधा को आज़माने के लिए, चैट इंटरफ़ेस में यह स्क्रिप्ट इस्तेमाल करें:
- नमस्ते फ़िन !
- "Sports Diagonal Mar" स्टोर में, Salomon के रनिंग प्रॉडक्ट की कुल कितनी संख्या में इन्वेंट्री उपलब्ध है?
AlloyDB AI ने आम बोलचाल की भाषा में दिए गए आपके इनपुट से जो एसक्यूएल क्वेरी जनरेट की है उसे देखने के लिए, AlloyDB Studio पर वापस जाएं और यह क्वेरी चलाएं:
SELECT
alloydb_ai_nl.get_sql(
'finn_app_config',
'What is the total quantity of category Running products of Salomon in stock at the "Sports Diagonal Mar" store?'
) ->> 'sql';
इससे, AlloyDB AI से जनरेट किया गया SQL स्टेटमेंट दिखेगा.
12. क्लीन अप
इस लैब में इस्तेमाल किए गए संसाधनों के लिए, अपने Google Cloud खाते से शुल्क न लिए जाने के लिए, यह तरीका अपनाएं:
- Google Cloud Console में, संसाधन मैनेज करें पेज पर जाएं.
- प्रोजेक्ट की सूची में, वह प्रोजेक्ट चुनें जिसे आपको मिटाना है. इसके बाद, मिटाएं पर क्लिक करें.
- डायलॉग बॉक्स में, प्रोजेक्ट आईडी टाइप करें. इसके बाद, प्रोजेक्ट मिटाने के लिए बंद करें पर क्लिक करें.
13. बधाई हो
बधाई हो! आपने ADK, डेटाबेस के लिए MCP टूलबॉक्स, और AlloyDB for PostgreSQL का इस्तेमाल करके, डेटा-ड्रिवन एजेंटिक एआई ऐप्लिकेशन बना लिया है
ज़्यादा जानकारी के लिए, प्रॉडक्ट के दस्तावेज़ देखें: Agent Development Kit, MCP Toolbox for Databases, और AlloyDB for PostgreSQL