इस कोडलैब (कोड बनाना सीखने के लिए ट्यूटोरियल) के बारे में जानकारी
1. खास जानकारी
डेटाबेस के लिए MCP टूलबॉक्स Google का एक ओपन सोर्स सर्वर है. इसकी मदद से, डेटाबेस के साथ इंटरैक्ट करने के लिए जेन एआई टूल आसानी से बनाए जा सकते हैं. इससे, कनेक्शन पूल करने, पुष्टि करने वगैरह जैसी मुश्किल प्रक्रियाओं को मैनेज करके, टूल को आसानी से, तेज़ी से, और ज़्यादा सुरक्षित तरीके से बनाया जा सकता है. इससे आपको जेन एआई टूल बनाने में मदद मिलती है. इनकी मदद से, एजेंट आपके डेटाबेस में मौजूद डेटा ऐक्सेस कर सकते हैं. टूलबॉक्स में ये सुविधाएं मिलती हैं:
आसान डेवलपमेंट: अपने एजेंट के लिए, 10 से कम लाइनों वाले कोड में टूल इंटिग्रेट करें, एक से ज़्यादा एजेंट या फ़्रेमवर्क के बीच टूल का फिर से इस्तेमाल करें, और टूल के नए वर्शन ज़्यादा आसानी से डिप्लॉय करें.
बेहतर परफ़ॉर्मेंस: सबसे सही तरीके, जैसे कि कनेक्शन पूल करना, पुष्टि करना वगैरह.
बेहतर सुरक्षा: आपके डेटा को ज़्यादा सुरक्षित तरीके से ऐक्सेस करने के लिए, इंटिग्रेट की गई पुष्टि की सुविधा.
पूरी तरह से नज़र रखने की क्षमता: OpenTelemetry के लिए पहले से मौजूद सहायता के साथ, अनोखे मेट्रिक और ट्रेसिंग.
टूलबॉक्स, आपके ऐप्लिकेशन के ऑर्केस्ट्रेशन फ़्रेमवर्क और डेटाबेस के बीच में होता है. यह एक कंट्रोल प्लेन उपलब्ध कराता है, जिसका इस्तेमाल टूल में बदलाव करने, उन्हें डिस्ट्रिब्यूट करने या उन्हें ट्रिगर करने के लिए किया जाता है. यह आपके टूल को मैनेज करने की प्रोसेस को आसान बनाता है. इसके लिए, यह टूल को सेव और अपडेट करने की एक ही जगह उपलब्ध कराता है. साथ ही, यह एजेंट और ऐप्लिकेशन के बीच टूल शेयर करने की सुविधा देता है. इसके अलावा, यह आपके ऐप्लिकेशन को फिर से डिप्लॉय किए बिना, उन टूल को अपडेट करने की सुविधा भी देता है.
आपको क्या बनाना होगा
इस लैब के हिस्से के तौर पर, आपको एक ऐसा ऐप्लिकेशन बनाना होगा जो किसी टूल का इस्तेमाल करके, एक आसान डेटाबेस (AllyDB) क्वेरी करे. इस क्वेरी को आपके एजेंट या जनरेटिव एआई ऐप्लिकेशन से शुरू किया जा सकता है. इसके लिए आपको
- डेटाबेस के लिए MCP टूलबॉक्स इंस्टॉल करें
- टूलबॉक्स सर्वर पर वह टूल सेट अप करना (जिसे AlloyDB में टास्क करने के लिए डिज़ाइन किया गया है)
- Cloud Run पर डेटाबेस के लिए MCP टूलबॉक्स डिप्लॉय करें
- डिप्लॉय किए गए Cloud Run एंडपॉइंट की मदद से टूल की जांच करें
- टूलबॉक्स शुरू करने के लिए, क्लाउड रन फ़ंक्शन बनाएं
ज़रूरी शर्तें
2. शुरू करने से पहले
प्रोजेक्ट बनाना
- Google Cloud Console में, प्रोजेक्ट चुनने वाले पेज पर, Google Cloud प्रोजेक्ट चुनें या बनाएं.
- पक्का करें कि आपके Cloud प्रोजेक्ट के लिए बिलिंग की सुविधा चालू हो. किसी प्रोजेक्ट के लिए बिलिंग की सुविधा चालू है या नहीं, यह देखने का तरीका जानें.
- आप Cloud Shell का इस्तेमाल करेंगे. यह Google Cloud में चलने वाला एक कमांड-लाइन एनवायरमेंट है. Google Cloud कंसोल में सबसे ऊपर, 'Cloud Shell चालू करें' पर क्लिक करें.
- Cloud Shell से कनेक्ट करने के बाद, देखें कि आपकी पुष्टि पहले से ही हुई है या नहीं. साथ ही, यह देखें कि प्रोजेक्ट को सही प्रोजेक्ट आईडी पर सेट किया गया है या नहीं. इसके लिए, नीचे दिए गए निर्देश का इस्तेमाल करें:
gcloud auth list
- Cloud Shell में यह कमांड चलाकर पुष्टि करें कि gcloud कमांड को आपके प्रोजेक्ट के बारे में पता है.
gcloud config list project
- अगर आपका प्रोजेक्ट सेट नहीं है, तो इसे सेट करने के लिए इस निर्देश का इस्तेमाल करें:
gcloud config set project <YOUR_PROJECT_ID>
- अपने 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 क्लस्टर, इंस्टेंस और टेबल बनाते हैं, जहां ई-कॉमर्स डेटासेट लोड होगा.
क्लस्टर और इंस्टेंस बनाना
- Cloud Console में AlloyDB पेज पर नेविगेट करें.
Cloud Console में ज़्यादातर पेजों को ढूंढने का एक आसान तरीका है, कंसोल के खोज बार का इस्तेमाल करके उन्हें खोजना.
- उस पेज से 'क्लस्टर बनाएं' चुनें:
- आपको नीचे दिखाई गई स्क्रीन के जैसी एक स्क्रीन दिखाई देगी. नीचे दी गई वैल्यू के साथ क्लस्टर और इंस्टेंस बनाएं. अगर आप रेपो से ऐप्लिकेशन कोड की क्लोनिंग कर रहे हैं, तो पक्का करें कि ये वैल्यू मेल खाती हों:
- क्लस्टर आईडी: "
vector-cluster
" - पासवर्ड: "
alloydb
" - PostgreSQL 15 के साथ काम करता है
- क्षेत्र: "
us-central1
" - नेटवर्किंग: "
default
"
- डिफ़ॉल्ट नेटवर्क को चुनने पर, आपको नीचे दी गई स्क्रीन जैसी स्क्रीन दिखेगी. 'कनेक्शन सेट अप करें' को चुनें.
- इसके बाद, "अपने-आप असाइन हुई आईपी रेंज का इस्तेमाल करें" चुनें. इसके बाद, 'जारी रखें' को चुनें. जानकारी की समीक्षा करने के बाद, 'कनेक्शन बनाएं' को चुनें.
- नेटवर्क सेट अप हो जाने के बाद, क्लस्टर बनाना जारी रखा जा सकता है. नीचे दिखाए गए तरीके से क्लस्टर का सेट अप पूरा करने के लिए 'क्लस्टर बनाएं' पर क्लिक करें:
पक्का करें कि आपने इंस्टेंस आईडी को "
vector-instance"
.
ध्यान दें कि क्लस्टर बनाने में करीब 10 मिनट लगेंगे. इसके सफल होने के बाद, आपको एक स्क्रीन दिखाई देगी जो आपके द्वारा अभी बनाए गए आपके क्लस्टर का ओवरव्यू दिखाती है.
4. डेटा इकट्ठा करना
अब स्टोर के डेटा वाली एक टेबल जोड़ें. AlloyDB पर नेविगेट करें, प्राथमिक क्लस्टर चुनें और फिर AlloyDB Studio को चुनें:
आपको इंस्टेंस बनने की प्रोसेस पूरी होने तक इंतज़ार करना पड़ सकता है. यह पूरा हो जाने के बाद, क्लस्टर बनाने के दौरान आपने जो क्रेडेंशियल बनाए हैं उनका इस्तेमाल करके AlloyDB में साइन इन करें. PostgreSQL की पुष्टि करने के लिए, नीचे दिया गया डेटा इस्तेमाल करें:
- उपयोगकर्ता नाम : "
postgres
" - डेटाबेस : "
postgres
" - पासवर्ड : "
alloydb
"
AlloyDB Studio में आपकी पुष्टि हो जाने के बाद, Editor में SQL कमांड डाले जा सकते हैं. आखिरी विंडो के दाईं ओर मौजूद प्लस का इस्तेमाल करके, कई एडिटर विंडो जोड़ी जा सकती हैं.
आप ज़रूरत के हिसाब से रन, फ़ॉर्मैट, और क्लियर करें विकल्पों का इस्तेमाल करके एडिटर विंडो में AlloyDB के लिए निर्देश डाल सकते हैं.
एक्सटेंशन चालू करें
इस ऐप्लिकेशन को बनाने के लिए, हम pgvector
और google_ml_integration
एक्सटेंशन का इस्तेमाल करेंगे. pgvector एक्सटेंशन की मदद से, वेक्टर एम्बेड करने की सुविधा को सेव किया जा सकता है और खोजा जा सकता है. google_ml_integration एक्सटेंशन में ऐसे फ़ंक्शन मिलते हैं जिनका इस्तेमाल, Vertex AI के अनुमान वाले एंडपॉइंट को ऐक्सेस करने के लिए किया जाता है. इससे एसक्यूएल में अनुमान पाने में मदद मिलती है. नीचे दिए गए डीडीएल चलाकर इन एक्सटेंशन को चालू करें:
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
फ़ील्ड शामिल हैं. अन्य फ़ील्ड बाद में लैब में भरे जाएंगे.
वहां से लाइन/इन्सर्ट स्टेटमेंट कॉपी करें और फिर उन लाइनों को खाली एडिटर टैब में चिपकाएं और RUN चुनें.
टेबल का कॉन्टेंट देखने के लिए, एक्सप्लोरर सेक्शन को बड़ा करें. ऐसा तब तक करें, जब तक आपको कपड़े नाम वाली टेबल न दिखे. टेबल पर क्वेरी करने का विकल्प देखने के लिए, ट्रिकोलन (⋮) को चुनें. नए 'एडिटर' टैब में 'चुनें' स्टेटमेंट खुलेगा.
अनुमति दें
उपयोगकर्ता postgres
को embedding
फ़ंक्शन पर काम करने के अधिकार देने के लिए, नीचे दिया गया स्टेटमेंट चलाएं:
GRANT EXECUTE ON FUNCTION embedding TO postgres;
AlloyDB के सेवा खाते को Vertex AI उपयोगकर्ता की भूमिका देना
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 स्टूडियो टैब पर वापस जाएं और नीचे दिया गया डीएमएल लिखें:
UPDATE toys set text_embeddings = embedding( 'text-embedding-005', description);
एम्बेड करने की कुछ जगहें देखने के लिए, toys
टेबल को फिर से देखें. बदलाव देखने के लिए, SELECT स्टेटमेंट को फिर से चलाएं.
SELECT id, name, description, price, quantity, image_url, text_embeddings FROM toys;
इससे खिलौने के ब्यौरे के लिए, एम्बेडिंग वेक्टर दिखेगा, जो फ़्लोट के कलेक्शन की तरह दिखता है. इस बारे में नीचे बताया गया है:
ध्यान दें: फ़्री टीयर के तहत बनाए गए नए 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;
चलिए, इस क्वेरी के बारे में गहराई से जानते हैं:
इस क्वेरी में,
- उपयोगकर्ता ने यह टेक्स्ट खोजा है: "
I want a white plush teddy bear toy with a floral pattern.
" - हम इसे मॉडल:
text-embedding-005
का इस्तेमाल करकेembedding()
तरीके में एम्बेड करने की सुविधा में बदल रहे हैं. आखिरी चरण के बाद, यह चरण जाना-पहचाना दिखना चाहिए, जहां हमने टेबल के सभी आइटम पर एम्बेडिंग फ़ंक्शन लागू किया था. - "
<=>
", COSINE PROPERTYITY दूरी के तरीके का इस्तेमाल करने के बारे में बताता है. समानता के सभी उपाय देखने के लिए, pgvector के दस्तावेज़ देखें. - हम एम्बेड करने के तरीके के नतीजे को वेक्टर टाइप में बदल रहे हैं, ताकि यह डेटाबेस में सेव किए गए वेक्टर के साथ काम कर सके.
- LIMIT 5 यह दिखाता है कि हम खोज टेक्स्ट के लिए, आस-पास के पांच सबसे नज़दीकी लोगों को एक्सट्रैक्ट करना चाहते हैं.
नतीजा कुछ ऐसा दिखता है:
जैसा कि आप अपने नतीजों में देख सकते हैं कि मिलते-जुलते नतीजे, खोज टेक्स्ट के काफ़ी करीब हैं. नतीजे कैसे बदलते हैं, यह देखने के लिए टेक्स्ट में बदलाव करके देखें.
7. टूलबॉक्स इंटरैक्शन के लिए AlloyDB तैयार करना
टूलबॉक्स सेट अप करने की तैयारी करते हुए, अपने AlloyDB के इंस्टेंस में सार्वजनिक आईपी कनेक्टिविटी को चालू करते हैं, ताकि नया टूल डेटाबेस को ऐक्सेस कर सके.
- अपने AlloyDB के इंस्टेंस पर जाएं, 'बदलाव करें' पर क्लिक करें और 'मुख्य इंस्टेंस में बदलाव करें' पेज पर जाएं.
- 'सार्वजनिक आईपी कनेक्टिविटी' सेक्शन में जाकर, 'सार्वजनिक आईपी कनेक्टिविटी चालू करें' चेकबॉक्स को चुनें और Cloud Shell मशीन का आईपी पता डालें.
- अपनी क्लाउड शेल मशीन का आईपी पाने के लिए, Cloud Shell Terminal पर जाएं और ifconfig डालें. नतीजे से, earth0 inet पते की पहचान करें और आखिरी दो अंकों को 0.0 से बदलकर, मास्क का साइज़ ‘/16' रखें. उदाहरण के लिए, यह ऐसा दिखेगा "XX.XX.0.0/16" जिसमें XX संख्याएं हैं.
- इस आईपी को बदलाव इंस्टेंस पेज के अनुमति वाले एक्सटर्नल नेटवर्क "नेटवर्क" टेक्स्टबॉक्स में चिपकाएं.
- एक बार पूरा हो जाने पर, इंस्टेंस अपडेट करें पर क्लिक करें.
इस प्रोसेस को पूरा होने में कुछ मिनट लगेंगे.
8. डेटाबेस इंस्टॉलेशन के लिए MCP टूलबॉक्स
- टूल की जानकारी सेव करने के लिए, प्रोजेक्ट फ़ोल्डर बनाया जा सकता है. इस मामले में, हम खिलौनों के स्टोर के डेटा पर काम कर रहे हैं, इसलिए "toystore" नाम का एक फ़ोल्डर बनाएं और उसमें नेविगेट करें. Cloud Shell Terminal पर जाएं और पक्का करें कि आपका प्रोजेक्ट चुना गया हो और टर्मिनल के प्रॉम्प्ट में दिख रहा हो. अपने Cloud Shell टर्मिनल से नीचे दिया गया कमांड चलाएं:
mkdir toystore
cd toystore
- अपने नए फ़ोल्डर में टूलबॉक्स डाउनलोड और इंस्टॉल करने के लिए, नीचे दिया गया कमांड चलाएं:
# see releases page for other versions
export VERSION=0.1.0
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
- 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 price from हमारी text_embeddings <=> CAST ( embedding(‘text-embedding-005', $1) AS वेक्टर(768)) LIMIT 5 ) कीमत के तौर पर औसत(कीमत) चुनें;
अब आपने टूल को सेट अप कर लिया है!
अपने Tools.yaml को कॉन्फ़िगर करने के बारे में ज़्यादा जानने के लिए, यह दस्तावेज़ देखें.
- Cloud Shell Terminal पर टॉगल करें और अपने टूल कॉन्फ़िगरेशन के साथ टूलबॉक्स सर्वर शुरू करने के लिए, यह कमांड डालें:
./toolbox --tools_file "tools.yaml"
- अब अगर सर्वर को क्लाउड पर वेब झलक मोड में खोला जाता है, तो आपको टूलबॉक्स सर्वर दिखेगा और यह
get-toy-price.
नाम के नए टूल के साथ काम करेगा
9. डेटाबेस के लिए MCP टूलबॉक्स का Cloud Run डिप्लॉयमेंट
चलिए इसे Cloud Run पर डिप्लॉय करते हैं, ताकि आप इस टूल का इस्तेमाल खुद कर सकें.
- जब तक आप "Cloud Run में डिप्लॉय करें" सेक्शन में तीसरे पॉइंट में मौजूद
gcloud run deploy toolbox
निर्देश तक नहीं पहुंच जाते, तब तक इस पेज में दिए गए निर्देशों का एक-एक करके पालन करें. VPC नेटवर्क तरीके का इस्तेमाल करते समय, आपको पहले विकल्प की ज़रूरत होगी, न कि दूसरे विकल्प की. - सही तरीके से डिप्लॉय होने के बाद, आपको अपने टूलबॉक्स सर्वर का Cloud Run डिप्लॉय किया गया एंडपॉइंट मिलेगा. CURL निर्देश की मदद से इसकी जांच करें.
अहम जानकारी:
पेज पर दिए गए निर्देशों का ध्यान से पालन करें और मौका हाथ से न जाने दें.
अब आप अपने एजेंट ऐप्लिकेशन में डिप्लॉय किए गए नए टूल का इस्तेमाल करने के लिए पूरी तरह तैयार हैं!!!
10. डेटाबेस के लिए अपने ऐप्लिकेशन को MCP टूलबॉक्स से कनेक्ट करें
इस भाग में, हम आपके टूल की जाँच करने के लिए एक छोटा ऐप्लिकेशन बनाएंगे, ताकि ऐप्लिकेशन की ज़रूरतों से इंटरैक्ट किया जा सके और जवाब फिर से मिल सके.
- Google Colab पर जाएं और नई नोटबुक खोलें.
- अपनी नोटबुक में इन्हें चलाएं
!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)
- आपको इस तरह का नतीजा मिलेगा:
इस टूल को खास तौर पर Python ऐप्लिकेशन में इस्तेमाल किया जा रहा है. यह टूलकिट toolbox-langchain
.
का इस्तेमाल करता है
- अगर आपको इस टूल का इस्तेमाल करना है और इसे LangGraph के इंटिग्रेट किए गए ऐप्लिकेशन में किसी एजेंट से जोड़ना है, तो
langgraph
टूलकिट की मदद से ऐसा करना आसान है. - इसके लिए कोड स्निपेट देखें.
11. इसे क्लाउड पर ले जाएं!!!
इस Python कोड स्निपेट को Cloud Run Functions में रैप करें, ताकि यह सर्वर का इस्तेमाल न करे!
- इसे Cloud Functions पर लाने के लिए, कोड रेपो फ़ोल्डर से सोर्स को कॉपी करें.
- Cloud Run Functions कंसोल पर जाएं और 'Create Function' पर क्लिक करें.
- डेमो ऐप्लिकेशन के लिए, इसे बिना पुष्टि के रखें और अगले पेज में Python 3.11 रनटाइम चुनें.
- पहले चरण में शेयर किए गए सोर्स रेपो से
main.py
औरrequirements.txt
फ़ाइलें कॉपी करें और उनसे जुड़ी फ़ाइलों में चिपकाएं. - Main.py में सर्वर यूआरएल को अपने सर्वर यूआरएल से बदलें.
- फ़ंक्शन को डिप्लॉय करें. इसके बाद, आपको टॉयस्टोर के वेब ऐप्लिकेशन में कीमत का अनुमान लगाने वाले टूल को ऐक्सेस करने के लिए, एक REST एंडपॉइंट मिल गया है.
- आपका एंडपॉइंट इस तरह दिखना चाहिए:
https://us-central1-*****.cloudfunctions.net/toolbox-toys
- सीधे Cloud Functions कंसोल पर इसकी जांच की जा सकती है. इसके लिए, 'जांच' टैब पर जाएं और अनुरोध के इनपुट के तौर पर यह जानकारी डालें:
{
"search": "White plush toy"
}
- फ़ंक्शन की जांच करें पर क्लिक करें या फिर क्लाउड शेल टर्मिनल में चलाएं जिसे इस्तेमाल करने के लिए चुना गया हो. आपको "आउटपुट" शीर्षक के नीचे दाईं ओर नतीजा दिखेगा:
12. बधाई हो
बधाई हो! आपने एक ऐसा मज़बूत और मॉड्यूलर टूल बनाया है जो डेटाबेस, प्लैटफ़ॉर्म, और जनरेटिव एआई के ऑर्कस्ट्रैशन फ़्रेमवर्क के साथ इंटरैक्ट कर सकता है. इससे आपको अपना असल ऐप्लिकेशन बनाने में मदद मिलती है.