1. शुरू करने से पहले
इस कोडलैब को जारी रखने से पहले, इन बातों का ध्यान रखें.
ज़रूरी शर्तें
- एलएलएम के बारे में बुनियादी जानकारी
- आरएजी सिस्टम के बारे में बुनियादी जानकारी
आपको क्या सीखने को मिलेगा
- Google की क्वालिटी वाला सर्च इंजन कैसे बनाया जाए, जो अपलोड किए गए डेटा से आपके सवालों के जवाब दे सके
- Vertex AI Datastore बनाने का तरीका
- Vertex AI एजेंट बनाने का तरीका
- ऐप्लिकेशन को डिप्लॉय करने के लिए, CloudRun का इस्तेमाल कैसे करें
आपको इन चीज़ों की ज़रूरत होगी
- Google Cloud खाता
- Google Cloud प्रोजेक्ट
- टर्मिनल वाला कोई IDE
परिचय
Google Search एक बेहतरीन टूल है. यह वेब पेजों और अन्य कॉन्टेंट के बड़े इंडेक्स का इस्तेमाल करता है, ताकि उपयोगकर्ताओं की क्वेरी के लिए काम के नतीजे दिखाए जा सकें. ऐसा रिट्रीवल ऑगमेंटेड जनरेशन (आरएजी) नाम की तकनीक की मदद से किया जाता है. यह आधुनिक एआई की एक अहम तकनीक है.
RAG, सबसे पहले किसी दस्तावेज़ के कॉर्पस से काम के पैसेज ढूंढता है. इसके लिए, कई तरीकों का इस्तेमाल किया जाता है. जैसे, कीवर्ड मैचिंग, सिमेंटिक समानता, और मशीन लर्निंग. काम के पैसेज मिलने के बाद, उनका इस्तेमाल करके खास जानकारी जनरेट की जाती है या उपयोगकर्ता की क्वेरी का जवाब दिया जाता है.
आरएजी का मुख्य फ़ायदा यह है कि इससे लैंग्वेज मॉडल को गलत जानकारी देने से बचने में मदद मिलती है. भ्रम पैदा करने वाली जानकारी, जनरेट किए गए ऐसे टेक्स्ट को कहते हैं जिसमें दस्तावेज़ के कॉर्पस में मौजूद सबूतों के आधार पर जानकारी नहीं दी जाती है. ऐसा तब हो सकता है, जब भाषा मॉडल, काम की और बिना काम की जानकारी के बीच अंतर न कर पाएं.
आरएजी, भ्रम की स्थिति से बचने में मदद करता है. ऐसा इसलिए, क्योंकि यह पक्का करता है कि जनरेट किया गया टेक्स्ट हमेशा दस्तावेज़ के कॉर्पस में मौजूद सबूतों पर आधारित हो. इससे यह जानकारी का ज़्यादा भरोसेमंद और भरोसेमंद सोर्स बन जाता है.
आरएजी एक बेहतरीन तकनीक है. इसका इस्तेमाल कई तरह के ऐप्लिकेशन में किया जा रहा है. जैसे, सर्च इंजन, चैटबॉट, और सवालों के जवाब देने वाले सिस्टम. आने वाले सालों में, यह एआई के क्षेत्र में अहम भूमिका निभा सकता है.
यहां कुछ उदाहरण दिए गए हैं कि असल में RAG का इस्तेमाल कैसे किया जा रहा है:
- कई सर्च सिस्टम, RAG का इस्तेमाल करके ऐसे खोज नतीजे जनरेट करते हैं जो उपयोगकर्ता की क्वेरी के हिसाब से काम के हों.
- चैटबॉट, RAG का इस्तेमाल करके उपयोगकर्ताओं के सवालों के जवाब जनरेट करते हैं. ये जवाब जानकारी देने वाले और दिलचस्प होते हैं.
- सवाल के जवाब देने वाले सिस्टम, RAG का इस्तेमाल करके उपयोगकर्ताओं के सवालों के सटीक और पूरी जानकारी वाले जवाब जनरेट करते हैं.
RAG एक ऐसी तकनीक है जिसका इस्तेमाल अलग-अलग डोमेन और ऐप्लिकेशन में टेक्स्ट जनरेट करने के लिए किया जा सकता है. यह एक दमदार टूल है, जो एआई को ज़्यादा स्मार्ट और जानकारी देने वाला बनाने में मदद कर रहा है.
इस कोडलैब में, हम एक ऐसा RAG सिस्टम बनाएंगे जो आपके दिए गए कॉर्पस के आधार पर, आपके सवालों के जवाब दे सके. Vertex AI Search/Agent Builder नाम का RAG प्लैटफ़ॉर्म, RAG सिस्टम को तेज़ी से बनाने में आपकी मदद करता है. इससे आपको दस्तावेज़ इकट्ठा करने, पार्स करने, चंक करने, एम्बेडिंग जनरेट करने, क्वेरी को बड़ा करने, कैंडिडेट को वापस पाने, और रैंकिंग करने के लिए मैन्युअल तरीके से काम नहीं करना पड़ता. पहले से मौजूद RAG सिस्टम की मदद से, तुरंत काम शुरू किया जा सकता है. हालांकि, Google Cloud हर प्रोसेस के लिए अलग-अलग एपीआई भी उपलब्ध कराता है. इनकी मदद से, अपने हिसाब से RAG सिस्टम बनाए जा सकते हैं. इससे, RAG सिस्टम को अपने कारोबार की ज़रूरतों के हिसाब से बेहतर बनाने में मदद मिलती है.
आपको क्या बनाने को मिलेगा
इस कोडलैब के आखिर तक, आपके पास एक ऐसा RAG सिस्टम होगा जो काम कर रहा होगा. यह सिस्टम, सही तथ्यों के साथ आपके सवालों के जवाब दे सकता है. साथ ही, इसमें सही रेफ़रंस के साथ जानकारी दी गई होगी और उसके सोर्स का हवाला दिया गया होगा.
साथ ही, आपको यह भी बेहतर तरीके से समझ आएगा कि Google Cloud पर इस RAG आर्किटेक्चर को बनाने के लिए, Vertex AI Search API का इस्तेमाल कैसे किया जाता है. इसके अलावा, आपको यह भी पता चलेगा कि इस RAG आर्किटेक्चर ऐप्लिकेशन (फ़्रंटएंड और बैकएंड के साथ) को CloudRun पर कैसे डिप्लॉय करें. CloudRun, Google Cloud पर कंटेनर के तौर पर ऐप्लिकेशन डिप्लॉय करने का बिना सर्वर वाला प्लैटफ़ॉर्म है.

आवेदन करने की प्रोसेस कैसे काम करती है
- अपना डेटा अपलोड करें: उपयोगकर्ता, इनपुट के तौर पर अपने डेटा का कॉर्पस, यानी PDF फ़ाइल अपलोड कर सकते हैं.
- सर्च बार में क्वेरी पूछें: उपयोगकर्ता, अपलोड किए गए डेटा के आधार पर सर्च बार में सवाल पूछ सकते हैं.
- जवाब पाना: उपयोगकर्ता, खोज के नतीजे/संभावित जवाब पा सकते हैं. साथ ही, यह देख सकते हैं कि क्वेरी के हिसाब से मिले जवाब में तथ्य सही हैं या नहीं.
2. एनवायरमेंट सेटअप करना
- Google Cloud Console में, प्रोजेक्ट चुनने वाले पेज पर, Google Cloud प्रोजेक्ट चुनें या बनाएं.
- पक्का करें कि आपके Google Cloud प्रोजेक्ट के लिए बिलिंग चालू हो. किसी प्रोजेक्ट के लिए बिलिंग चालू है या नहीं, यह देखने का तरीका जानें.
- आपको Cloud Shell का इस्तेमाल करना होगा. यह Google Cloud में चलने वाला कमांड-लाइन एनवायरमेंट है. इसे ऐक्सेस करने के लिए, Google Cloud Console में सबसे ऊपर मौजूद, Cloud Shell चालू करें पर क्लिक करें.

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

- 'बकेट बनाएं' पर क्लिक करें

- बकेट के लिए, दुनिया भर में इस्तेमाल होने वाला यूनीक नाम डालें
- जारी रखें पर क्लिक करें
- 'जगह का टाइप' में जाकर, 'एक से ज़्यादा क्षेत्र' चुनें
- ड्रॉप-डाउन मेन्यू में,
us (multiple regions in United States)विकल्प को ज़रूर चुनें

- 'बकेट बनाएं' पर क्लिक करें

- बकेट बन जाने के बाद, रिपॉज़िटरी से
alphabet-metadata.jsonअपलोड करें
4. दूसरा चरण: Vertex AI Datastore बनाना
- कंसोल पेज के खोज बार में, "Vertex AI Agent Builder" टाइप करें
- पहला प्रॉडक्ट, "Agent Builder" चुनें

- Agent Builder पेज पर, बाईं ओर मौजूद नेविगेशन बार में दिखाए गए "डेटा स्टोर" पर क्लिक करें

- "डेटा स्टोर बनाएं" पर क्लिक करें

- डेटा स्टोर के तौर पर Cloud Storage को चुनें
- Cloud Storage आइकॉन के नीचे मौजूद "चुनें" पर क्लिक करें

- "फ़ोल्डर" विकल्प के नीचे मौजूद टैब में, "ब्राउज़ करें" बटन पर क्लिक करें
- पहले चरण में बनाई गई बकेट चुनें
- नीचे दिए गए विकल्पों में, "लिंक किए गए अनस्ट्रक्चर्ड दस्तावेज़ (मेटाडेटा के साथ JSONL)" को चुनें
- जारी रखें पर क्लिक करें

- कॉन्फ़िगरेशन पेज पर, डेटा स्टोर की जगह के तौर पर "global" चुनें
- अपने डेटा स्टोर को ऐसा नाम दें जिसे आसानी से पहचाना जा सके
- 'बनाएं' पर क्लिक करें

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

5. तीसरा चरण: एजेंट बनाना
- डेटा स्टोर बन जाने के बाद, बाईं ओर मौजूद नेविगेशन बार में जाकर ऐप्लिकेशन पर क्लिक करें. इसके बाद, "ऐप्लिकेशन" चुनें
- "ऐप्लिकेशन बनाएं" बटन पर क्लिक करें
- "खोज" के लिए ऐप्लिकेशन टाइप चुनें. एजेंट, बातचीत करने वाले बॉट, सुझाव वगैरह भी बनाए जा सकते हैं

- पक्का करें कि आपने कॉन्टेंट में जाकर, "सामान्य" चुना हो. इसके अलावा, आपको जिस तरह का डेटा स्टोर और सिस्टम बनाना है उसके हिसाब से, मीडिया या सुझाव भी चुने जा सकते हैं.
- पक्का करें कि आपने Enterprise Edition और Advanced LLM, दोनों की सुविधाएं चालू की हों
- अपने ऐप्लिकेशन का नाम डालें
- अपनी कंपनी का नाम डालें

- पक्का करें कि आपने "ग्लोबल" के तौर पर क्षेत्र चुना हो
- "जारी रखें"
पर क्लिक करें - अगली स्क्रीन में, दूसरे चरण में बनाया गया डेटा स्टोर चुनें
- "बनाएं" पर क्लिक करें

6. चौथा चरण: अपने ऐप्लिकेशन को Dockerize करना
- Google Cloud Console में अपना टर्मिनल खोलें
- नीचे दिए गए निर्देश का इस्तेमाल करके, <sample_repository_link> रिपॉज़िटरी को क्लोन करें
git clone https://github.com/kkrishnan90/vertex-ai-search-agent-builder-demo
- डायरेक्ट्री बदलें और यहां दिए गए निर्देश का इस्तेमाल करके, क्लोन की गई रिपॉज़िटरी पर जाएं
cd vertex-ai-search-agent-builder-demo
- फ़ोल्डर का स्ट्रक्चर
- बैकएंड - इसमें Python पर आधारित एपीआई लागू किया जाएगा. इससे आपके फ़्रंटएंड के लिए रेस्टफ़ुल एंडपॉइंट बनाने में मदद मिलेगी, ताकि वह इंटरैक्ट कर सके.
- फ़्रंटएंड - इसमें React पर आधारित ऐप्लिकेशन होगा और यह यूज़र इंटरफ़ेस (यूआई) दिखाएगा. इसमें ऐप्लिकेशन लेवल के ज़रूरी कॉल भी शामिल होंगे, जो REST एंडपॉइंट के ज़रिए बैकएंड को किए जाते हैं
- Dockerfile - इस फ़ाइल में, डॉकर कंटेनर बनाने के लिए सभी ज़रूरी कमांड शामिल होंगी
- रिपॉज़िटरी डायरेक्ट्री के रूट में, यह कमांड चलाएं. इससे डॉकर इमेज बनाने में मदद मिलेगी (ध्यान दें: MacBooks में डॉकर कंटेनर बनाते समय,
- - platformफ़्लैग का इस्तेमाल करना न भूलें. इन MacBooks में Apple Silicon चिप का इस्तेमाल किया जाता है, जैसे कि M1, M2 वगैरह. अगर Windows मशीन का इस्तेमाल करके डॉकर कंटेनर बनाया जा रहा है या आपका सीपीयू आर्किटेक्चर Intel पर आधारित है, तो इस फ़्लैग का इस्तेमाल करना ज़रूरी नहीं है)
docker build --platform linux/amd64 -t your-image-name .
- डॉकर कंटेनर बिल्ड होने के बाद, कंटेनर को सही टैग से टैग करने के लिए, यहां दिया गया निर्देश चलाएं. इससे यह पक्का किया जा सकेगा कि आपने अपनी इमेज का वर्शन उपलब्ध कराया है. ध्यान रखें कि ऐप्लिकेशन के कई वर्शन हो सकते हैं. इसलिए, Docker कंटेनर में टैग के तौर पर भी कई वर्शन हो सकते हैं. यह पक्का करना कि हमेशा सबसे नए स्टेबल वर्शन का इस्तेमाल किया जाए, DevOps के नज़रिए से एक अच्छा सुझाव है.
docker tag your-image-name REGION-docker.pkg.dev/PROJECT-ID/REPOSITORY-NAME/IMAGE-NAME:TAG
- डॉकर कंटेनर इमेज को टैग करने के बाद, अब हम इमेज को Google Artifact Registry (GAR) पर पुश करेंगे. GAR, Google का पूरी तरह से मैनेज किया गया प्लैटफ़ॉर्म है. इसकी मदद से, अपने Docker कंटेनर को मैनेज किया जा सकता है और उनके वर्शन को कंट्रोल किया जा सकता है. यहां दिया गया कमांड चलाएं. इससे ऊपर टैग किए गए कंटेनर को GAR में पुश किया जाएगा. ज़्यादा जानकारी के लिए, यह लिंक देखें [ https://cloud.google.com/artifact-registry/docs/docker/pushing-and-pulling]
docker push REGION-docker.pkg.dev/PROJECT-ID/REPOSITORY-NAME/IMAGE-NAME:TAG
7. पांचवां चरण: Cloud Run पर अपना ऐप्लिकेशन डिप्लॉय करना
- अपने टर्मिनल को छोटा करें. Google Cloud Console के खोज बार में, Cloud Run खोजें
- सुझाए गए Cloud Run प्रॉडक्ट पर क्लिक करें

- "सेवा बनाएं" पर क्लिक करें
- अगले पेज पर, पक्का करें कि "मौजूदा कंटेनर इमेज से एक वर्शन डिप्लॉय करें" विकल्प चुना गया हो
- नीचे दिए गए "चुनें" पर क्लिक करें
- अब आपको दाईं ओर एक नेविगेशन बार दिखेगा.
- पक्का करें कि Artifact Registry को टैब के तौर पर चुना गया हो
- पक्का करें कि प्रोजेक्ट को सही तरीके से चुना गया हो
- डिप्लॉय की गई कंटेनर इमेज के लिंक पर मौजूद अकॉर्डियन को बड़ा करने के लिए, ऐरो पर क्लिक करें
- कंटेनर टैग चुनें और उसे बड़ा करें. हमेशा सबसे नए टैग चुनें. जैसे, v1, v2 वगैरह
- कंटेनर टैग के नाम के नीचे मौजूद कंटेनर इमेज पर क्लिक करें

- 'कॉन्फ़िगर करें' सेक्शन में
- अपने Cloud Run ऐप्लिकेशन के लिए सेवा का नाम डालें. जब Cloud Run पर ऐप्लिकेशन डिप्लॉय किया जाएगा, तब यह नाम यूआरएल का हिस्सा होगा
- सही क्षेत्र चुनें. इस मामले में, us-central1 या अपनी पसंद का कोई भी क्षेत्र चुनें
- पुष्टि करने की सुविधा में जाकर
- पक्का करें कि "बिना पुष्टि किए गए अनुरोधों को अनुमति दें" विकल्प चुना गया हो
- सीपीयू के बंटवारे और कीमत तय करने की सुविधा के बारे में जानकारी
- "सीपीयू सिर्फ़ अनुरोध प्रोसेस करने के दौरान असाइन किया जाता है" को चुनें
- सर्विस ऑटो स्केलिंग को 1 पर सेट करें.प्रोडक्शन के लिए, हमारा सुझाव है कि आपके पास कम से कम इंस्टेंस चालू हों, ताकि रोज़ाना के ट्रैफ़िक को मैनेज किया जा सके. इसे 0 यानी शून्य पर भी सेट किया जा सकता है
- इंटरनेट से आने वाले ट्रैफ़िक को अपने ऐप्लिकेशन का ऐक्सेस देने के लिए, "Ingress Control" को "All" पर सेट करें
- "बनाएं" पर क्लिक करें
- इससे Cloud Run इंस्टेंस डिप्लॉय हो जाएगा. इसे चालू होने में कुछ मिनट लग सकते हैं

- डिप्लॉय करने के बाद, आपको सार्वजनिक तौर पर उपलब्ध यूआरएल दिखेगा. इस यूआरएल से, अपने वेब ऐप्लिकेशन को ऐक्सेस किया जा सकता है

8. यह सब कैसे काम करता है
- ऐप्लिकेशन के होम पेज पर जाकर, "दस्तावेज़ अपलोड करें" बटन पर क्लिक करें
- अपनी PDF फ़ाइल अपलोड करें
- अपलोड पूरा होने के बाद
- वेब पेज पर सबसे ऊपर मौजूद खोज बार पर क्लिक करें
- अपलोड किए गए दस्तावेज़ से जुड़ी क्वेरी खोजना शुरू करें
- क्वेरी टाइप करने और 'खोजें' पर क्लिक करने के बाद, आपको अभी-अभी अपलोड किए गए दस्तावेज़ से जुड़े सभी जवाब दिखने चाहिए
- बैकएंड कोड को देखकर, इसमें बदलाव किया जा सकता है. साथ ही, इसमें यहां दिए गए कॉन्फ़िगरेशन जोड़े जा सकते हैं
- स्निपेट जोड़ना
- एक्सट्रैक्टिव सेगमेंट जोड़ना
- जवाब जोड़ना
- जवाब को छोटा करने के लिए, टॉप-के नतीजों को ट्यून करना. जैसे, Google Search पर एआई की मदद से मिली जानकारी
- ऐडऑन के तौर पर, दस्तावेज़ अपलोड करते समय मेटाडेटा टैग भी जोड़े जा सकते हैं. इससे फ़ैसेट और फ़िल्टर की जा सकने वाली कैटगरी जनरेट करने में मदद मिलेगी
9. व्यवस्थित करें
इस कोडलैब में इस्तेमाल किए गए संसाधनों के लिए, अपने Google Cloud खाते से शुल्क न लिए जाने के लिए, यह तरीका अपनाएं:
- Google Cloud Console में, संसाधन मैनेज करें पेज पर जाएं.
- प्रोजेक्ट की सूची में, वह प्रोजेक्ट चुनें जिसे आपको मिटाना है. इसके बाद, मिटाएं पर क्लिक करें.
- डायलॉग बॉक्स में, प्रोजेक्ट आईडी टाइप करें. इसके बाद, प्रोजेक्ट मिटाने के लिए बंद करें पर क्लिक करें.
- इसके अलावा, कंसोल पर Cloud Run पर जाकर, अभी-अभी डिप्लॉय की गई सेवा को चुनें और उसे मिटाएं.
10. बधाई हो
बधाई हो! आपने Google के बेहतरीन मॉडल का इस्तेमाल करके, RAG सिस्टम को आसानी से बनाया है. इससे आपको अपनी खोज क्वेरी के लिए, Google की क्वालिटी वाले नतीजे मिलेंगे. यह कोडलैब सिर्फ़ डेमो के लिए है. प्रोडक्शन के इस्तेमाल के मामलों के लिए, ज़्यादा सुरक्षा और गार्डरेल सेट अप करने होंगे. पूरी रिपॉज़िटरी का लिंक यहां दिया गया है. Google Cloud का इस्तेमाल करके, सिर्फ़ पांच चरणों में एंड-टू-एंड आरएजी सिस्टम जनरेट किया जा सकता है. यह सिस्टम, आपको कुछ ही मिनटों में Google की क्वालिटी वाले नतीजे दे सकता है. जनरेटिव एआई और लार्ज लैंग्वेज मॉडल के बेहतर होने से, इस तरह के आरएजी सिस्टम बनाने में हमें ऐसी जानकारी से बचने में मदद मिलती है जो भरोसेमंद स्रोतों से नहीं ली गई है. साथ ही, ऐसी जानकारी से भी बचा जा सकता है जो भरोसेमंद स्रोतों से नहीं ली गई है.
यह सिर्फ़ शुरुआत है. हम पूरी तरह से पसंद के मुताबिक बनाए जा सकने वाले, खुद से इस्तेमाल किए जाने वाले RAG एपीआई की मदद से कमाल कर सकते हैं. ये एपीआई आपको ज़्यादा पारदर्शिता, कंट्रोल, और दक्षता देते हैं, ताकि आप पाइपलाइन की प्रोसेस के हर हिस्से को असरदार तरीके से मैनेज कर सकें.