AlloyDB पर आपके जेन एआई और ऐजेंटिक ऐप्लिकेशन के डेटाबेस के लिए एमसीपी टूलबॉक्स इंस्टॉल और सेट अप करना

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

डेटाबेस के लिए एमसीपी टूलबॉक्स, Google का एक ओपन सोर्स सर्वर है. इसकी मदद से, डेटाबेस के साथ इंटरैक्ट करने के लिए, जनरेटिव एआई टूल आसानी से बनाए जा सकते हैं. यह आपको टूल को आसानी से, तेज़ी से, और ज़्यादा सुरक्षित तरीके से डेवलप करने की सुविधा देता है. इसके लिए, यह कनेक्शन पूलिंग, पुष्टि करने की प्रोसेस वगैरह जैसी मुश्किलों को मैनेज करता है. इससे आपको जनरेटिव एआई टूल बनाने में मदद मिलती है. इन टूल की मदद से, आपके एजेंट आपके डेटाबेस में मौजूद डेटा को ऐक्सेस कर सकते हैं. टूलबॉक्स में ये सुविधाएं मिलती हैं:

आसान डेवलपमेंट: अपने एजेंट में टूल को 10 से भी कम लाइनों के कोड में इंटिग्रेट करें. साथ ही, एक से ज़्यादा एजेंट या फ़्रेमवर्क के बीच टूल का फिर से इस्तेमाल करें और टूल के नए वर्शन को आसानी से डिप्लॉय करें.

बेहतर परफ़ॉर्मेंस: कनेक्शन पूलिंग, पुष्टि करने की प्रोसेस वगैरह जैसे सबसे सही तरीके.

बेहतर सुरक्षा: आपके डेटा को ज़्यादा सुरक्षित तरीके से ऐक्सेस करने के लिए, इंटिग्रेटेड ऑथराइज़ेशन.

एंड-टू-एंड निगरानी: OpenTelemetry के लिए पहले से मौजूद मेट्रिक और ट्रेसिंग की सुविधा.

टूलबॉक्स, आपके ऐप्लिकेशन के ऑर्केस्ट्रेशन फ़्रेमवर्क और आपके डेटाबेस के बीच मौजूद होता है. यह एक कंट्रोल प्लेन उपलब्ध कराता है, जिसका इस्तेमाल टूल में बदलाव करने, उन्हें डिस्ट्रिब्यूट करने या उन्हें शुरू करने के लिए किया जाता है. यह आपके टूल को मैनेज करने की प्रोसेस को आसान बनाता है. इसके लिए, यह टूल को सेव और अपडेट करने के लिए एक जगह उपलब्ध कराता है. इससे एजेंट और ऐप्लिकेशन के बीच टूल शेयर किए जा सकते हैं. साथ ही, ऐप्लिकेशन को फिर से डिप्लॉय किए बिना उन टूल को अपडेट किया जा सकता है.

आपको क्या बनाना है

इस लैब के हिस्से के तौर पर, आपको एक ऐसा ऐप्लिकेशन बनाना होगा जो किसी टूल का इस्तेमाल करके, डेटाबेस (AlloyDB) से जुड़ी सामान्य क्वेरी को पूरा कर सके. इस क्वेरी को आपके एजेंट या जनरेटिव एआई ऐप्लिकेशन से शुरू किया जा सकता है. इसके लिए, आपको

  1. डेटाबेस के लिए एमसीपी टूलबॉक्स इंस्टॉल करना
  2. टूलबॉक्स सर्वर पर, AlloyDB में कोई टास्क करने के लिए डिज़ाइन किया गया टूल सेट अप करना
  3. Cloud Run पर, डेटाबेस के लिए MCP Toolbox डिप्लॉय करना
  4. डिप्लॉय किए गए Cloud Run एंडपॉइंट की मदद से टूल की जांच करना
  5. टूलबॉक्स को शुरू करने के लिए, Cloud Run फ़ंक्शन बनाना

ज़रूरी शर्तें

  • कोई ब्राउज़र, जैसे कि Chrome या Firefox
  • बिलिंग की सुविधा वाला Google Cloud प्रोजेक्ट. इसके बारे में अगले सेक्शन में बताया गया है.

2. शुरू करने से पहले

प्रोजेक्ट बनाना

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

Cloud Shell बटन की इमेज चालू करें

  1. Cloud Shell से कनेक्ट होने के बाद, यह देखने के लिए कि आपकी पुष्टि हो चुकी है या नहीं और प्रोजेक्ट को सही प्रोजेक्ट आईडी पर सेट किया गया है या नहीं, यहां दिए गए कमांड का इस्तेमाल करें:
gcloud auth list
  1. यह पुष्टि करने के लिए कि gcloud कमांड को आपके प्रोजेक्ट के बारे में पता है, Cloud Shell में यह कमांड चलाएं.
gcloud config list project
  1. अगर आपका प्रोजेक्ट सेट नहीं है, तो इसे सेट करने के लिए इस निर्देश का इस्तेमाल करें:
gcloud config set project <YOUR_PROJECT_ID>
  1. Cloud Shell टर्मिनल में, यहां दिए गए निर्देशों को एक-एक करके चलाकर, ज़रूरी एपीआई चालू करें:

नीचे दिए गए कोड को चलाने के लिए, एक ही कमांड का इस्तेमाल किया जा सकता है. हालांकि, अगर आप ट्रायल खाते के उपयोगकर्ता हैं, तो हो सकता है कि आपको इन सुविधाओं को एक साथ चालू करने में कोटा से जुड़ी समस्याएं आएं. इसलिए, हर लाइन में एक कमांड दी गई है.

gcloud services enable alloydb.googleapis.com
gcloud services enable compute.googleapis.com 
gcloud services enable cloudresourcemanager.googleapis.com 
gcloud services enable servicenetworking.googleapis.com 
gcloud services enable run.googleapis.com 
gcloud services enable cloudbuild.googleapis.com 
gcloud services enable cloudfunctions.googleapis.com 
gcloud services enable aiplatform.googleapis.com

gcloud कमांड का विकल्प, हर प्रॉडक्ट को खोजकर या इस लिंक का इस्तेमाल करके कंसोल के ज़रिए उपलब्ध है.

अगर कोई एपीआई छूट जाता है, तो उसे लागू करने के दौरान कभी भी चालू किया जा सकता है.

gcloud कमांड और उनके इस्तेमाल के बारे में जानने के लिए, दस्तावेज़ देखें.

3. डेटाबेस सेटअप करना

इस लैब में, हम खुदरा कारोबार से जुड़े डेटा को सेव करने के लिए, डेटाबेस के तौर पर AlloyDB का इस्तेमाल करेंगे. यह सभी संसाधनों को सेव करने के लिए, क्लस्टर का इस्तेमाल करता है. जैसे, डेटाबेस और लॉग. हर क्लस्टर में एक प्राइमरी इंस्टेंस होता है, जो डेटा का ऐक्सेस पॉइंट उपलब्ध कराता है. टेबल में असल डेटा होगा.

आइए, एक AlloyDB क्लस्टर, इंस्टेंस, और टेबल बनाएं. इसमें ई-कॉमर्स डेटासेट लोड किया जाएगा.

क्लस्टर और इंस्टेंस बनाना

  1. Cloud Console में AlloyDB पेज पर जाएं.

Cloud Console में ज़्यादातर पेजों को आसानी से ढूंढने के लिए, कंसोल के खोज बार का इस्तेमाल करके उन्हें खोजें.

  1. उस पेज पर जाकर, क्लस्टर बनाएं चुनें:

f76ff480c8c889aa.png

  1. आपको नीचे दी गई इमेज जैसी स्क्रीन दिखेगी. नीचे दी गई वैल्यू का इस्तेमाल करके, क्लस्टर और इंस्टेंस बनाएं. अगर आपको रिपॉज़िटरी से ऐप्लिकेशन कोड क्लोन करना है, तो पक्का करें कि वैल्यू मैच करती हों:
  • क्लस्टर आईडी: "vector-cluster"
  • पासवर्ड: "alloydb"
  • PostgreSQL 15 के साथ काम करता है
  • देश/इलाका: "us-central1"
  • नेटवर्किंग: "default"

538dba58908162fb.png

  1. डिफ़ॉल्ट नेटवर्क चुनने पर, आपको नीचे दी गई इमेज जैसी स्क्रीन दिखेगी. कनेक्शन सेट अप करें को चुनें.
    7939bbb6802a91bf.png
  2. इसके बाद, "अपने-आप असाइन की गई आईपी रेंज का इस्तेमाल करें" को चुनें और जारी रखें पर क्लिक करें. जानकारी देखने के बाद, कनेक्शन बनाएं को चुनें. 768ff5210e79676f.png
  3. नेटवर्क सेट अप हो जाने के बाद, क्लस्टर बनाना जारी रखा जा सकता है. नीचे दिए गए तरीके से क्लस्टर सेट अप करने के लिए, CREATE CLUSTER पर क्लिक करें:

e06623e55195e16e.png

पक्का करें कि आपने इंस्टेंस आईडी को "

vector-instance"

.

ध्यान दें कि क्लस्टर बनने में करीब 10 मिनट लगेंगे. प्रोसेस पूरी होने के बाद, आपको एक स्क्रीन दिखेगी. इसमें, आपके बनाए गए क्लस्टर की खास जानकारी दिखेगी.

4. डेटा डालना

अब स्टोर के बारे में जानकारी देने वाली टेबल जोड़ें. AlloyDB पर जाएं. इसके बाद, प्राइमरी क्लस्टर और फिर AlloyDB Studio चुनें:

847e35f1bf8a8bd8.png

आपको इंस्टेंस बनने तक इंतज़ार करना पड़ सकता है. यह प्रोसेस पूरी होने के बाद, क्लस्टर बनाते समय बनाए गए क्रेडेंशियल का इस्तेमाल करके AlloyDB में साइन इन करें. PostgreSQL में पुष्टि करने के लिए, इस डेटा का इस्तेमाल करें:

  • उपयोगकर्ता नाम : "postgres"
  • डेटाबेस : "postgres"
  • पासवर्ड : "alloydb"

AlloyDB Studio में पुष्टि हो जाने के बाद, एडिटर में SQL कमांड डाली जा सकती हैं. आखिरी विंडो के दाईं ओर मौजूद प्लस आइकॉन का इस्तेमाल करके, एक से ज़्यादा Editor विंडो जोड़ी जा सकती हैं.

91a86d9469d499c4.png

ज़रूरत के मुताबिक, 'चलाएं', 'फ़ॉर्मैट करें', और 'मिटाएं' विकल्पों का इस्तेमाल करके, एडिटर विंडो में AlloyDB के लिए कमांड डाली जा सकती हैं.

एक्सटेंशन चालू करना

इस ऐप्लिकेशन को बनाने के लिए, हम pgvector और google_ml_integration एक्सटेंशन का इस्तेमाल करेंगे. pgvector एक्सटेंशन की मदद से, वेक्टर एम्बेडिंग को सेव किया जा सकता है और उन्हें खोजा जा सकता है. google_ml_integration एक्सटेंशन, ऐसे फ़ंक्शन उपलब्ध कराता है जिनका इस्तेमाल करके, SQL में अनुमान पाने के लिए Vertex AI के अनुमान लगाने वाले एंडपॉइंट को ऐक्सेस किया जाता है. इन एक्सटेंशन को चालू करें. इसके लिए, ये DDL चलाएं:

CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;
CREATE EXTENSION IF NOT EXISTS vector;

अगर आपको अपने डेटाबेस पर चालू किए गए एक्सटेंशन देखने हैं, तो यह एसक्यूएल कमांड चलाएं:

select extname, extversion from pg_extension;

टेबल बनाना

नीचे दिए गए डीडीएल स्टेटमेंट का इस्तेमाल करके, एक टेबल बनाएं:

CREATE TABLE toys ( id VARCHAR(25), name VARCHAR(25), description VARCHAR(20000), quantity INT, price FLOAT, image_url VARCHAR(200), text_embeddings vector(768)) ;

ऊपर दिए गए निर्देश को सही तरीके से लागू करने के बाद, आपको डेटाबेस में टेबल दिखनी चाहिए.

डेटा डालना

इस लैब के लिए, हमारे पास इस SQL फ़ाइल में करीब 72 रिकॉर्ड का टेस्ट डेटा है. इसमें id, name, description, quantity, price, image_url फ़ील्ड शामिल होते हैं. अन्य फ़ील्ड को लैब में बाद में भरा जाएगा.

वहां से लाइनों/इंसर्ट स्टेटमेंट को कॉपी करें. इसके बाद, उन लाइनों को एडिटर के खाली टैब में चिपकाएं और 'चलाएं' को चुनें.

टेबल का कॉन्टेंट देखने के लिए, एक्सप्लोरर सेक्शन को तब तक बड़ा करें, जब तक आपको कपड़े के नाम वाली टेबल न दिख जाए. टेबल से क्वेरी करने का विकल्प देखने के लिए, तीन बिंदु (⋮) चुनें. SELECT स्टेटमेंट, नए एडिटर टैब में खुलेगा.

cfaa52b717f9aaed.png

अनुमति दें

उपयोगकर्ता postgres को embedding फ़ंक्शन पर कार्रवाई करने के अधिकार देने के लिए, नीचे दिया गया स्टेटमेंट चलाएं:

GRANT EXECUTE ON FUNCTION embedding TO postgres;

AlloyDB सेवा खाते को Vertex AI User की भूमिका असाइन करना

Cloud Shell टर्मिनल पर जाएं और यह कमांड डालें:

PROJECT_ID=$(gcloud config get-value project)

gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:service-$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")@gcp-sa-alloydb.iam.gserviceaccount.com" \
--role="roles/aiplatform.user"

5. कॉन्टेक्स्ट के लिए एंबेडिंग बनाना

कंप्यूटर के लिए, टेक्स्ट को प्रोसेस करने की तुलना में नंबर को प्रोसेस करना ज़्यादा आसान होता है. एम्बेडिंग सिस्टम, टेक्स्ट को फ़्लोटिंग पॉइंट नंबर की सीरीज़ में बदलता है. इसे वेक्टर एम्बेडिंग कहा जाता है. यह टेक्स्ट को इस तरह से दिखाता है कि इससे कोई फ़र्क़ नहीं पड़ता कि टेक्स्ट किस तरह से लिखा गया है, किस भाषा में लिखा गया है वगैरह.

उदाहरण के लिए, समुद्र के किनारे मौजूद किसी जगह को "पानी के किनारे", "समुद्र के सामने", "कमरे से समुद्र तक पैदल जाएं", "sur la mer", "на берегу океана" वगैरह कहा जा सकता है. ये सभी शब्द अलग-अलग दिखते हैं, लेकिन इनका सिमैंटिक मतलब या मशीन लर्निंग की शब्दावली में, इनके एम्बेडिंग एक-दूसरे के बहुत करीब होने चाहिए.

डेटा और कॉन्टेक्स्ट तैयार होने के बाद, हम एसक्यूएल चलाएंगे, ताकि प्रॉडक्ट के ब्यौरे की एम्बेडिंग को फ़ील्ड embedding में टेबल में जोड़ा जा सके. आपके पास कई तरह के एम्बेडिंग मॉडल इस्तेमाल करने का विकल्प होता है. हम Vertex AI से text-embedding-005 का इस्तेमाल कर रहे हैं. पक्का करें कि पूरे प्रोजेक्ट में एक ही एम्बेडिंग मॉडल का इस्तेमाल किया गया हो!

ध्यान दें: अगर Google Cloud के किसी पुराने प्रोजेक्ट का इस्तेमाल किया जा रहा है, तो हो सकता है कि आपको टेक्स्ट एम्बेडिंग मॉडल के पुराने वर्शन का इस्तेमाल जारी रखना पड़े. जैसे, textembedding-gecko.

AlloyDB Studio टैब पर वापस जाएं और यह डीएमएल टाइप करें:

UPDATE toys set text_embeddings = embedding( 'text-embedding-005', description);

कुछ एम्बेड देखने के लिए, toys टेबल को फिर से देखें. बदलाव देखने के लिए, SELECT स्टेटमेंट को फिर से चलाना न भूलें.

SELECT id, name, description, price, quantity, image_url, text_embeddings FROM toys;

इससे टॉय के ब्यौरे के लिए, एम्बेडिंग वेक्टर मिलना चाहिए. यह फ़्लोट की एक ऐरे की तरह दिखता है. इसे यहां दिखाया गया है:

7d32f7cd7204e1f3.png

ध्यान दें: मुफ़्त टियर के तहत बनाए गए नए Google Cloud प्रोजेक्ट को, एम्बेडिंग मॉडल के लिए हर सेकंड में किए जा सकने वाले एम्बेडिंग अनुरोधों की संख्या से जुड़ी समस्याएं आ सकती हैं. हमारा सुझाव है कि आईडी के लिए फ़िल्टर क्वेरी का इस्तेमाल करें. इसके बाद, एम्बेडिंग जनरेट करते समय एक से पांच रिकॉर्ड और इसी तरह के अन्य रिकॉर्ड चुनें.

6. वेक्टर सर्च करना

अब टेबल, डेटा, और एम्बेडिंग तैयार हैं. इसलिए, उपयोगकर्ता के खोज टेक्स्ट के लिए रीयल टाइम वेक्टर सर्च करते हैं.

मान लें कि उपयोगकर्ता ने पूछा:

"I want a white plush teddy bear toy with a floral pattern."

इसके लिए, यहां दी गई क्वेरी चलाकर मैच देखे जा सकते हैं:

select * from toys
ORDER BY text_embeddings <=> CAST(embedding('text-embedding-005', 'I want a white plush teddy bear toy with a floral pattern') as vector(768))
LIMIT 5;

आइए, इस क्वेरी के बारे में विस्तार से जानते हैं:

इस क्वेरी में,

  1. उपयोगकर्ता ने यह खोज क्वेरी डाली है: "I want a white plush teddy bear toy with a floral pattern."
  2. हम इसे embedding() तरीके से एम्बेडिंग में बदल रहे हैं. इसके लिए, text-embedding-005 मॉडल का इस्तेमाल किया जा रहा है. यह चरण पिछले चरण जैसा ही है. पिछले चरण में, हमने टेबल में मौजूद सभी आइटम पर एम्बेड करने की सुविधा लागू की थी.
  3. "<=>" का मतलब, कोसाइन सिमिलैरिटी दूरी के तरीके का इस्तेमाल करना है. pgvector के दस्तावेज़ में, समानता मापने के सभी तरीके देखे जा सकते हैं.
  4. हम एम्बेड करने के तरीके के नतीजे को वेक्टर टाइप में बदल रहे हैं, ताकि यह डेटाबेस में सेव किए गए वेक्टर के साथ काम कर सके.
  5. LIMIT 5 का मतलब है कि हमें खोजे गए टेक्स्ट के लिए, पांच सबसे मिलते-जुलते टेक्स्ट निकालने हैं.

नतीजा ऐसा दिखता है:

fa7f0fc3a4c68804.png

नतीजों में देखा जा सकता है कि खोज के लिए इस्तेमाल किए गए टेक्स्ट से मिलते-जुलते जवाब मिले हैं. नतीजों में बदलाव देखने के लिए, टेक्स्ट बदलकर देखें.

7. टूलबॉक्स के साथ इंटरैक्ट करने के लिए AlloyDB को तैयार करना

टूलबॉक्स को सेट अप करने से पहले, आइए हम अपने AlloyDB इंस्टेंस में सार्वजनिक आईपी कनेक्टिविटी चालू करें, ताकि नया टूल डेटाबेस को ऐक्सेस कर सके.

  1. अपने AlloyDB इंस्टेंस पर जाएं. इसके बाद, बदलाव करें पर क्लिक करें और प्राइमरी इंस्टेंस में बदलाव करें पेज पर जाएं.
  2. सार्वजनिक आईपी कनेक्टिविटी सेक्शन पर जाएं. इसके बाद, 'सार्वजनिक आईपी चालू करें' चेकबॉक्स पर सही का निशान लगाएं और अपनी Cloud Shell मशीन का आईपी पता डालें.
  3. Cloud Shell मशीन का आईपी पाने के लिए, Cloud Shell टर्मिनल पर जाएं और ifconfig डालें. नतीजे में, eth0 inet पते का पता लगाएं और आखिरी दो अंकों को 0.0 से बदलें. साथ ही, मास्क का साइज़ ‘/16' रखें. उदाहरण के लिए, यह "XX.XX.0.0/16" की तरह दिखेगा. इसमें XX संख्याएं हैं.
  4. इस आईपी पते को, 'बदलाव करें' इंस्टेंस पेज के, अधिकृत बाहरी नेटवर्क "नेटवर्क" टेक्स्ट बॉक्स में चिपकाएं.

5f6e60e8dec2cea1.png

  1. बदलाव करने के बाद, इंस्टेंस अपडेट करें पर क्लिक करें.

इस प्रोसेस को पूरा होने में कुछ मिनट लगेंगे.

8. डेटाबेस के लिए एमसीपी टूलबॉक्स को इंस्टॉल करना

  1. टूल की जानकारी सेव करने के लिए, एक प्रोजेक्ट फ़ोल्डर बनाया जा सकता है. इस मामले में, हम खिलौने की दुकान के डेटा पर काम कर रहे हैं. इसलिए, "toystore" नाम का फ़ोल्डर बनाते हैं और इसमें जाते हैं. Cloud Shell टर्मिनल पर जाएं और पक्का करें कि आपका प्रोजेक्ट चुना गया हो और टर्मिनल के प्रॉम्प्ट में दिख रहा हो. अपने Cloud Shell टर्मिनल में यह कमांड चलाएं:
mkdir toystore

cd toystore
  1. अपने नए फ़ोल्डर में टूलबॉक्स को डाउनलोड और इंस्टॉल करने के लिए, यहां दिया गया कमांड चलाएं:
# see releases page for other versions
export VERSION=0.1.0
curl -O https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
  1. Cloud Shell Editor पर टॉगल करें. अभी बनाए गए फ़ोल्डर "toystore" को बड़ा करें और tools.yaml नाम की एक नई फ़ाइल बनाएं. यहां दिए गए कॉन्टेंट को कॉपी करें. YOUR_PROJECT_ID की जगह अपना प्रोजेक्ट आईडी डालें. साथ ही, यह देखें कि कनेक्शन की अन्य सभी जानकारी सही है या नहीं.
sources:
    alloydb-toys:
        kind: "alloydb-postgres"
        project: "YOUR_PROJECT_ID"
        region: "us-central1"
        cluster: "vector-cluster"
        instance: "vector-instance"
        database: "postgres"
        user: "postgres"
        password: "alloydb"

tools:
  get-toy-price:
    kind: postgres-sql
    source: alloydb-toys
    description: Get the price of a toy based on a description.
    parameters:
      - name: description
        type: string
        description: A description of the toy to search for.
    statement: |
      SELECT price FROM toys
      ORDER BY text_embeddings <=> CAST(embedding('text-embedding-005', $1) AS vector(768))
      LIMIT 1;

इस टूल में, हम सिर्फ़ उपयोगकर्ता के खोज टेक्स्ट (कस्टम खिलौने का ब्यौरा) से मिलते-जुलते नतीजे ढूंढ रहे हैं और उसकी कीमत दिखा रहे हैं. इसे बदलकर, सबसे ज़्यादा मिलते-जुलते पांच खिलौनों की औसत कीमत भी पता लगाई जा सकती है:

select avg(price) from ( SELECT price FROM toys ORDER BY text_embeddings <=> CAST(embedding(‘text-embedding-005', $1) AS vector(768)) LIMIT 5 ) as price;

आपने टूल की परिभाषा सेट कर ली है!

tools.yaml को कॉन्फ़िगर करने के बारे में ज़्यादा जानने के लिए, यह दस्तावेज़ पढ़ें.

  1. Cloud Shell टर्मिनल पर टॉगल करें और अपने टूल के कॉन्फ़िगरेशन के साथ टूलबॉक्स सर्वर शुरू करने के लिए, यह निर्देश डालें:
./toolbox --tools_file "tools.yaml"
  1. अब अगर क्लाउड पर वेब प्रीव्यू मोड में सर्वर खोला जाता है, तो आपको टूलबॉक्स सर्वर चालू दिखेगा. साथ ही, आपको get-toy-price. नाम का नया टूल भी दिखेगा

9. डेटाबेस के लिए MCP Toolbox को Cloud Run पर डिप्लॉय करना

आइए, इसे Cloud Run पर डिप्लॉय करते हैं, ताकि आप इस टूल का इस्तेमाल कर सकें.

  1. इस पेज पर दिए गए निर्देशों का एक-एक करके पालन करें. ऐसा तब तक करें, जब तक आप "Cloud Run पर डिप्लॉय करें" सेक्शन के तीसरे पॉइंट में दी गई gcloud run deploy toolbox कमांड तक न पहुंच जाएं. आपको पहले विकल्प की ज़रूरत है, न कि दूसरे विकल्प की. दूसरा विकल्प तब इस्तेमाल किया जाता है, जब वीपीसी नेटवर्क के तरीके का इस्तेमाल किया जा रहा हो.
  2. टूलबॉक्स सर्वर को सही तरीके से डिप्लॉय करने के बाद, आपको Cloud Run का डिप्लॉय किया गया एंडपॉइंट मिलेगा. इसे CURL कमांड के साथ टेस्ट करें.

अहम जानकारी:

पेज पर दिए गए निर्देशों का ध्यान से पालन करें और कोई भी निर्देश न छोड़ें.

अब आपके पास, अपने एजेंटिक ऐप्लिकेशन में नए टूल का इस्तेमाल करने का विकल्प उपलब्ध है!!!

10. अपने ऐप्लिकेशन को MCP Toolbox for Databases से कनेक्ट करना

इस हिस्से में, हम एक छोटा ऐप्लिकेशन बनाएंगे. इससे आपके टूल को टेस्ट किया जा सकेगा, ताकि यह पता चल सके कि वह ऐप्लिकेशन की ज़रूरतों के हिसाब से काम करता है या नहीं. साथ ही, यह भी पता चल सकेगा कि वह जवाब दे पाता है या नहीं.

  1. Google Colab पर जाएं और नई नोटबुक खोलें.
  2. अपनी नोटबुक में यह कोड चलाएं
!pip install toolbox-core
from toolbox_core import ToolboxClient

# Replace with your Toolbox service's URL
toolbox = ToolboxClient("https://toolbox-*****-uc.a.run.app")

# This tool can be passed to your application!
tool = toolbox.load_tool("get-toy-price")

# If there are multiple tools 
# These tools can be passed to your application!
# tools = await client.load_toolset("<<toolset_name>>")

# Invoke the tool with a search text to pass as the parameter
 result = tool.invoke({"description": "white plush toy"})

# Print result
print(result)
  1. आपका जवाब कुछ इस तरह होना चाहिए:

5074f209a86c4f15.png

यह टूल, Python ऐप्लिकेशन में साफ़ तौर पर इस्तेमाल किया जा रहा है. यह टूलकिट toolbox-langchain. का इस्तेमाल करता है

  1. अगर आपको इस टूल का इस्तेमाल करना है और इसे LangGraph इंटिग्रेट किए गए ऐप्लिकेशन में किसी एजेंट से बाइंड करना है, तो langgraph टूलकिट की मदद से आसानी से ऐसा किया जा सकता है.
  2. इसके लिए, कोड स्निपेट देखें.

11. इसे क्लाउड पर ले जाएं!!!

आइए, इस Python कोड स्निपेट को Cloud Run Functions में रैप करके इसे सर्वरलेस बनाते हैं!

  1. इसे Cloud Functions में पाने के लिए, कोड रिपो फ़ोल्डर से सोर्स कॉपी करें.
  2. Cloud Run Functions कंसोल पर जाएं और CREATE FUNCTION पर क्लिक करें.
  3. डेमो ऐप्लिकेशन के लिए, इसे बिना पुष्टि किए हुए रखें. साथ ही, अगले पेज पर Python 3.11 रनटाइम चुनें.
  4. पहले चरण में शेयर की गई सोर्स रेपो से main.py और requirements.txt फ़ाइलें कॉपी करें. इसके बाद, उन्हें अपनी फ़ाइलों में चिपकाएं.
  5. main.py में मौजूद सर्वर यूआरएल को अपने सर्वर यूआरएल से बदलें.
  6. फ़ंक्शन को डिप्लॉय करें. इसके बाद, आपको खिलौनों की दुकान के वेब ऐप्लिकेशन में, कीमत का अनुमान लगाने वाले टूल को ऐक्सेस करने के लिए एक REST एंडपॉइंट मिल जाएगा.
  7. आपका एंडपॉइंट ऐसा दिखना चाहिए:

https://us-central1-*****.cloudfunctions.net/toolbox-toys

  1. इसे सीधे तौर पर Cloud Functions कंसोल पर आज़माया जा सकता है. इसके लिए, TESTING टैब पर जाएं और अनुरोध के इनपुट के तौर पर यह डालें:

{

           "search": "White plush toy"

}

  1. फ़ंक्शन की जांच करें पर क्लिक करें या Cloud Shell टर्मिनल में, अपनी पसंद का कोई भी विकल्प चलाएं. आपको "आउटपुट" टाइटल के नीचे दाईं ओर यह नतीजा दिखेगा:

d7ba57cf5e5ca553.png

12. बधाई हो

बधाई हो! आपने एक मज़बूत और मॉड्यूलर टूल बनाया है. यह टूल, डेटाबेस, प्लैटफ़ॉर्म, और जनरेटिव एआई ऑर्केस्ट्रेशन फ़्रेमवर्क के साथ इंटरैक्ट कर सकता है. इससे आपको एजेंटिक ऐप्लिकेशन बनाने में मदद मिलेगी.