इस कोडलैब (कोड बनाना सीखने के लिए ट्यूटोरियल) के बारे में जानकारी
1. खास जानकारी
एआई का इस्तेमाल आज कहां से शुरू किया जा सकता है? ज़्यादातर लोगों के लिए, यह प्रोसेस अक्सर एक आसान सवाल से शुरू होती है, "क्या मॉडल से उस समस्या को हल करने में मदद मिल सकती है जिसके बारे में मुझे सोचना है?". ऐसे में, Google AI Studio आपकी मदद करता है. यहां किसी भी चीज़ का प्रोटोटाइप तुरंत बनाया जा सकता है. मुझे अपनी किचन को फिर से डिज़ाइन करना है और मुझे यकीन है कि Gemini इसमें मेरी मदद कर सकता है. हालांकि, मैं इंजीनियर हूं, न कि जनरल कॉन्ट्रैक्टर. मुझे यह भी नहीं पता कि मुझे क्या पूछना है - नियम, फ़िक्सचर वगैरह के बारे में बहुत कुछ सोचना है. इसलिए, आइए इसे अलग-अलग हिस्सों में बांटकर, Gemini से हमारे लिए ज़्यादा जानकारी वाला प्रॉम्प्ट जनरेट कराएं. इसके बाद, घर को नए सिरे से बनाने का पूरा प्लान जनरेट करें और उसे विज़ुअलाइज़ करें! रुकिए. मैं यहां से, कारोबारों को बड़े पैमाने पर कैसे मदद करूं? एजेंट डालें!!!
एजेंट एक ऐसा प्रोग्राम है जो अपने-आप काम करता है. यह एआई मॉडल से बात करके, अपने टूल और कॉन्टेक्स्ट का इस्तेमाल करके, लक्ष्य के आधार पर काम करता है. साथ ही, यह सच्चाई के आधार पर अपने-आप फ़ैसले ले सकता है!
एजेंट डेवलपमेंट किट (एडीके)
एजेंट डेवलपमेंट किट (ADK), एआई एजेंट को डेवलप और डिप्लॉय करने के लिए, एक सुविधाजनक और मॉड्यूलर फ़्रेमवर्क है. ADK, कई अलग-अलग एजेंट इंस्टेंस को मल्टी-एजेंट सिस्टम (एमएएस) में कंपोज करके, बेहतर ऐप्लिकेशन बनाने में मदद करता है.
ADK में, मल्टी-एजेंट सिस्टम एक ऐसा ऐप्लिकेशन है जिसमें अलग-अलग एजेंट, अक्सर हैरारकी बनाकर, बड़े लक्ष्य को हासिल करने के लिए मिलकर काम करते हैं या समन्वय करते हैं. अपने ऐप्लिकेशन को इस तरह से व्यवस्थित करने से कई फ़ायदे मिलते हैं. जैसे, बेहतर मॉड्यूलरिटी, विशेषज्ञता, फिर से इस्तेमाल करने की सुविधा, रखरखाव, और खास वर्कफ़्लो एजेंट का इस्तेमाल करके, स्ट्रक्चर्ड कंट्रोल फ़्लो तय करने की सुविधा.
आपको क्या बनाना है
क्या आप प्रोटोटाइप प्रॉम्प्ट से एजेंट बनाने के लिए तैयार हैं??? हम एक एजेंट बनाएंगे, ताकि किचन के नवीनीकरण के प्रोजेक्ट के लिए प्रस्ताव का दस्तावेज़ जनरेट करने में आपकी मदद की जा सके. इस लैब में, आपको ये काम करने होंगे:
- ADK की मदद से, रिनोवेशन के प्रस्ताव का दस्तावेज़ जनरेट करने के लिए आसान एजेंट बनाना
- जनरेट किए गए रिनोवेशन के प्रस्ताव के दस्तावेज़ को Cloud Storage की बकेट में सेव करना
- Cloud Shell और एजेंट वेब आउटपुट में एजेंट की जांच करना
ज़रूरी शर्तें
2. शुरू करने से पहले
प्रोजेक्ट बनाना
- Google Cloud Console में, प्रोजेक्ट चुनने वाले पेज पर, Google Cloud प्रोजेक्ट चुनें या बनाएं.
- पक्का करें कि आपके Cloud प्रोजेक्ट के लिए बिलिंग की सुविधा चालू हो. किसी प्रोजेक्ट के लिए बिलिंग की सुविधा चालू है या नहीं, यह देखने का तरीका जानें .
- अगर आपको Google Cloud का इस्तेमाल शुरू करने और ADK का इस्तेमाल करने के लिए कुछ क्रेडिट चाहिए, तो क्रेडिट रिडीम करने के लिए इस लिंक का इस्तेमाल करें.
- इसे रिडीम करने के लिए, यहां दिए गए निर्देशों का पालन करें. कृपया ध्यान दें कि रिडीम करने के लिए, यह लिंक सिर्फ़ 15 जुलाई, 2025 तक मान्य है.
- इस लिंक पर क्लिक करके, 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>
- पक्का करें कि आपके पास Python 3.9 या इसके बाद का वर्शन हो
gcloud के अन्य निर्देशों और उनके इस्तेमाल के बारे में जानने के लिए, दस्तावेज़ देखें.
3. प्रोटोटाइप
Google AI Studio पर जाएं. प्रॉम्प्ट में टाइप करना शुरू करें. मेरा प्रॉम्प्ट यह है:
I want to renovate my kitchen, basically just remodel it. I don't know where to start. So I want to use Gemini to generate a plan. For that I need a good prompt. Give me a short yet detailed prompt that I can use.
बेहतर नतीजे पाने के लिए, दाईं ओर मौजूद पैरामीटर में बदलाव करें और उन्हें कॉन्फ़िगर करें.
इस आसान ब्यौरे के आधार पर, Gemini ने मुझे अपने घर के रिनोवेशन की शुरुआत करने के लिए, ज़्यादा जानकारी वाला प्रॉम्प्ट दिया! इसका मतलब है कि हम AI Studio और अपने मॉडल से बेहतर जवाब पाने के लिए, Gemini का इस्तेमाल कर रहे हैं. इस्तेमाल के उदाहरण के आधार पर, अलग-अलग मॉडल भी चुने जा सकते हैं.
हमने Gemini 2.5 Pro को चुना है. यह एक थिंकिंग मॉडल है. इसका मतलब है कि हमें लंबी अवधि के विश्लेषण और ज़्यादा जानकारी वाले दस्तावेज़ों के लिए, ज़्यादा आउटपुट टोकन मिलते हैं. इस मामले में, 65 हज़ार टोकन तक मिल सकते हैं. Gemini का थिंकिंग बॉक्स तब दिखता है, जब Gemini 2.5 Pro को चालू किया जाता है. इसमें डेटा को बेहतर तरीके से प्रोसेस करके सवालों के जवाब देने की क्षमता है. साथ ही, यह लंबे कॉन्टेक्स्ट वाले अनुरोधों को भी प्रोसेस कर सकता है.
जवाब का स्निपेट यहां देखें:
एआई स्टूडियो ने मेरे डेटा का विश्लेषण करके, कैबिनेट, काउंटरटॉप, बैकस्प्लैश, फ़्लोरिंग, सिंक, कोहेशन, कलर पैलेट, और मटीरियल चुनने जैसी सभी चीज़ें तैयार कीं. Gemini, सोर्स की जानकारी भी दे रहा है!
अब किसी दूसरे प्रॉम्प्ट की मदद से, अपने आइडिया को ज़िंदा करने की कोशिश करें.
- इस प्रॉम्प्ट को कॉपी करके, प्रॉम्प्ट एडिटर में चिपकाएं:
Add flat and circular light accessories above the island area for my current kitchen in the attached image.
- अपनी मौजूदा रसोई की इमेज अटैच करें. इसके अलावा, रसोई की सैंपल इमेज का इस्तेमाल भी किया जा सकता है.
- मॉडल को "Gemini 2.0 Flash Preview Image Generation" पर बदलें, ताकि आपके पास इमेज जनरेट करने का ऐक्सेस हो.
मुझे यह आउटपुट मिला:
Gemini की यही ताकत है!
वीडियो को समझने से लेकर, नेटिव इमेज जनरेट करने और Google Search की मदद से असल जानकारी पाने तक – ये ऐसी चीज़ें हैं जिन्हें सिर्फ़ Gemini की मदद से बनाया जा सकता है.
AI Studio में जाकर, इस प्रोटोटाइप को लिया जा सकता है. साथ ही, एपीआई पासकोड हासिल किया जा सकता है और Vertex AI ADK की मदद से, इसे एक एजेंसी ऐप्लिकेशन में स्केल किया जा सकता है.
4. ADK टूल सेटअप करना
अब उस Cloud Shell टर्मिनल पर जाएं जिसे हमने "शुरू करने से पहले" सेक्शन में चालू किया था:
- वर्चुअल एनवायरमेंट बनाना और चालू करना (सुझाया गया)
अपने Cloud Shell टर्मिनल से, वर्चुअल एनवायरमेंट बनाएं:
python -m venv .venv
वर्चुअल एनवायरमेंट की सुविधा चालू करने के लिए:
source .venv/bin/activate
- ADK इंस्टॉल करना
pip install google-adk
5. प्रोजेक्ट का स्ट्रक्चर
- Cloud Shell टर्मिनल में, अपनी पसंद की प्रोजेक्ट लोकेशन में अपने एजेंटिक ऐप्लिकेशन के लिए रूट डायरेक्ट्री बनाएं:
mkdir agentic-apps
- मुख्य डायरेक्ट्री में, अपने मौजूदा प्रोजेक्ट के लिए एक फ़ोल्डर बनाएं:
mkdir renovation-agent
- Cloud Shell एडिटर पर जाएं और फ़ाइलें बनाकर, प्रोजेक्ट का यह स्ट्रक्चर बनाएं (शुरुआत में खाली है):
renovation-agent/
__init__.py
agent.py
requirements.txt
.env
6. सोर्स कोड
- "init.py" पर जाएं और इसे इस कॉन्टेंट से अपडेट करें:
from . import agent
- agent.py पर जाएं और इस पाथ से फ़ाइल को यहां दिए गए कॉन्टेंट से अपडेट करें:
https://github.com/AbiramiSukumaran/adk-renovation-single-agent/blob/main/agent.py
agent.py में, हम ज़रूरी डिपेंडेंसी इंपोर्ट करते हैं, .env फ़ाइल से कॉन्फ़िगरेशन पैरामीटर वापस लाते हैं, और root_agent तय करते हैं. यह एजेंट, प्रस्ताव का दस्तावेज़ जनरेट करता है और उसे Cloud Storage की बकेट में सेव करता है. Cloud Storage में फ़ाइल अपलोड करने के लिए, हम store_pdf टूल का इस्तेमाल करते हैं.
- पक्का करें कि आपके पास Cloud Storage बकेट हो
यह एजेंट के जनरेट किए गए प्रस्ताव के दस्तावेज़ को सेव करने के लिए है. इसे बनाएं और ऐक्सेस की सुविधा दें, ताकि Vertex AI की मदद से बनाया गया एजेंटिक सिस्टम इसे ऐक्सेस कर सके. ऐसा करने का तरीका यहां बताया गया है:
https://cloud.google.com/storage/docs/creating-buckets#console
अपनी बकेट को "next-demo-store
" नाम दें. अगर आपने इसे कोई दूसरा नाम दिया है, तो .env फ़ाइल में STORAGE_BUCKET की वैल्यू अपडेट करना न भूलें. यह वैल्यू, ENV वैरिएबल सेटअप करने के चरण में मिलती है.
- बकेट का ऐक्सेस सेट अप करने के लिए, 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.
- डिपेंडेंसी की सूची बनाना
requirements.txt में सभी डिपेंडेंसी की सूची बनाएं. इसे रिपो से कॉपी किया जा सकता है.
सिंगल एजेंट सिस्टम के सोर्स कोड के बारे में जानकारी
agent.py फ़ाइल, एजेंट डेवलपमेंट किट (ADK) का इस्तेमाल करके, हमारे किचन के नवीनीकरण से जुड़े मल्टी-एजेंट सिस्टम के स्ट्रक्चर और व्यवहार के बारे में बताती है. आइए, इन मुख्य कॉम्पोनेंट के बारे में ज़्यादा जानें:
एजेंट की परिभाषा
रूट एजेंट (ऑर्केस्ट्रेटर): proposal_agent
root_agent, इस सिंगल-एजेंट सिस्टम के ऑर्केस्ट्रेटर के तौर पर काम करता है. इसे, रिन्यूअल का शुरुआती अनुरोध मिलता है. साथ ही, यह तय करता है कि अनुरोध की ज़रूरतों के आधार पर कौनसे टूल इस्तेमाल करने हैं.
इसके बाद, root_agent टूल से जवाब इकट्ठा करता है और उन्हें उपयोगकर्ता को पूरा जवाब देने के लिए जोड़ता है. इस मामले में, हमारे पास सिर्फ़ एक टूल "store_pdf" है.
7. डेटा फ़्लो और मुख्य कॉन्सेप्ट
उपयोगकर्ता, ADK इंटरफ़ेस (टर्मिनल या वेब यूज़र इंटरफ़ेस) के ज़रिए अनुरोध शुरू करता है.
- root_agent को अनुरोध मिलता है.
- root_agent, अनुरोध का विश्लेषण करता है और ज़रूरत के हिसाब से उसे टूल पर भेजता है.
- "store_pdf" टूल को, अपडेट किए गए टेक्स्ट कॉन्टेंट को PDF फ़ाइल में लिखने और फिर उसे Google Cloud Storage में अपलोड करने के लिए डिज़ाइन किया गया है.
- इसके बाद, यह root_agent को जवाब दिखाता है.
- root_agent, जवाबों को जोड़ता है और उपयोगकर्ता को फ़ाइनल आउटपुट देता है.
एलएलएम (लार्ज लैंग्वेज मॉडल)
एजेंट, टेक्स्ट जनरेट करने, सवालों के जवाब देने, और तर्क करने वाले टास्क करने के लिए, एलएलएम पर काफ़ी ज़्यादा निर्भर करते हैं. उपयोगकर्ता के अनुरोधों को समझने और उनका जवाब देने के लिए, एजेंट के "दिमाग" के तौर पर एलएलएम काम करते हैं. हम इस ऐप्लिकेशन में Gemini 2.5 का इस्तेमाल कर रहे हैं.
Google Cloud Storage
इसका इस्तेमाल, जनरेट किए गए रिनोवेशन के प्रस्ताव के दस्तावेज़ों को सेव करने के लिए किया जाता है. आपको एक बकेट बनानी होगी और एजेंट को उसे ऐक्सेस करने के लिए ज़रूरी अनुमतियां देनी होंगी.
Cloud Run (ज़रूरी नहीं)
OrderingAgent, AlloyDB के साथ इंटरफ़ेस करने के लिए, Cloud Run फ़ंक्शन का इस्तेमाल करता है. Cloud Run, एचटीटीपी अनुरोधों के जवाब में कोड को लागू करने के लिए, सर्वरलेस एनवायरमेंट उपलब्ध कराता है.
AlloyDB
अगर OrderingAgent का इस्तेमाल किया जा रहा है, तो ऑर्डर की जानकारी सेव करने के लिए, आपको AlloyDB डेटाबेस सेट अप करना होगा.
.env फ़ाइल
.env फ़ाइल में एपीआई पासकोड, डेटाबेस क्रेडेंशियल, और बकेट के नाम जैसी संवेदनशील जानकारी सेव की जाती है. इस फ़ाइल को सुरक्षित रखना ज़रूरी है और इसे अपनी रिपॉज़िटरी में कमिट नहीं करना चाहिए. यह एजेंट और आपके Google Cloud प्रोजेक्ट के लिए कॉन्फ़िगरेशन सेटिंग भी सेव करता है. आम तौर पर, root_agent या सहायक फ़ंक्शन इस फ़ाइल से वैल्यू पढ़ेंगे. पक्का करें कि .env फ़ाइल में सभी ज़रूरी वैरिएबल सही तरीके से सेट हों. इसमें Cloud Storage बकेट का नाम शामिल है
8. मॉडल सेटअप करना
आपका एजेंट, लार्ज लैंग्वेज मॉडल (एलएलएम) की मदद से, उपयोगकर्ता के अनुरोधों को समझता है और जवाब जनरेट करता है. आपके एजेंट को इस बाहरी LLM सेवा को सुरक्षित कॉल करने होंगे. इसके लिए, पुष्टि करने के क्रेडेंशियल की ज़रूरत होती है. पुष्टि के मान्य तरीके के बिना, LLM सेवा एजेंट के अनुरोधों को अस्वीकार कर देगी और एजेंट काम नहीं कर पाएगा.
- Google AI Studio से एपीआई पासकोड पाएं.
- अगले चरण में, .env फ़ाइल सेट अप करते समय,
<<your API KEY>>
को अपनी असल एपीआई पासकोड वैल्यू से बदलें.
9. 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>>
प्लेसहोल्डर को अपनी वैल्यू से बदलें.
10. अपना एजेंट चलाना
- टर्मिनल का इस्तेमाल करके, अपने एजेंट प्रोजेक्ट की पैरंट डायरेक्ट्री पर जाएं:
cd agentic-apps/renovation-agent
- सभी डिपेंडेंसी इंस्टॉल करना
pip install -r requirements.txt
- एजेंट को चलाने के लिए, अपने Cloud Shell टर्मिनल में यह कमांड चलाएं:
adk run .
- ADK से प्रोवाइड किए गए वेब यूज़र इंटरफ़ेस (यूआई) में इसे चलाने के लिए, ये काम किए जा सकते हैं:
adk web
- इन प्रॉम्प्ट की मदद से जांच करें:
user>>
Hello. Generate Proposal Document for the kitchen remodel requirement in a proper format that applies to a renovation contract. Remember this text will eventually be stored as a pdf file so make sure to have the formatting appropriate. I have no other specification.
11. नतीजा
adk run . कमांड के लिए नतीजा इस तरह है"
...
आपके पास यह पुष्टि करने का विकल्प है कि क्या रिनोवेशन के प्रस्ताव का दस्तावेज़, Cloud Storage बकेट में बनाया गया है.
12. व्यवस्थित करें
इस पोस्ट में इस्तेमाल किए गए संसाधनों के लिए, अपने Google Cloud खाते से शुल्क न लिए जाएं, इसके लिए यह तरीका अपनाएं:
- Google Cloud Console में, संसाधन मैनेज करें पेज पर जाएं.
- प्रोजेक्ट की सूची में, वह प्रोजेक्ट चुनें जिसे मिटाना है. इसके बाद, मिटाएं पर क्लिक करें.
- डायलॉग बॉक्स में, प्रोजेक्ट आईडी टाइप करें. इसके बाद, प्रोजेक्ट मिटाने के लिए बंद करें पर क्लिक करें.
13. बधाई हो
बधाई हो! आपने ADK का इस्तेमाल करके, मल्टी-एजेंट ऐप्लिकेशन बना लिया है और उससे इंटरैक्ट कर लिया है! मल्टी-एजेंट सिस्टम को, किचन के रिनोवेशन की प्रोसेस को आसान बनाने के लिए डिज़ाइन किया गया है. यह सिस्टम, प्रस्ताव जनरेट करने, अनुमति की जांच करने, और ऑर्डर की स्थिति ट्रैक करने जैसे कामों को अपने-आप पूरा करता है. हर एजेंट की एक खास भूमिका होती है. साथ ही, root_agent पूरी जानकारी देने के लिए, उनकी गतिविधियों को मैनेज करता है. यह सिस्टम, अपनी सुविधाएं देने के लिए एलएलएम, Google Cloud की सेवाओं, और बाहरी एपीआई का इस्तेमाल करता है. यहां प्रॉडक्ट दस्तावेज़ का लिंक दिया गया है.