Antigravity की मदद से, Google Cloud पर ऐप्लिकेशन बनाना और उसे डिप्लॉय करना

1. परिचय

fca14bb9f4bb74f4.png

इस कोडलैब में, आपको Google Antigravity (इस दस्तावेज़ में इसे Antigravity कहा गया है) का इस्तेमाल करके, Google Cloud पर सर्वरलेस ऐप्लिकेशन को डिज़ाइन, बनाने, और डिप्लॉय करने का तरीका बताया जाएगा. हम सर्वरलेस और इवेंट-ड्रिवन दस्तावेज़ पाइपलाइन बनाएंगे. यह Google Cloud Storage (GCS) से फ़ाइलें इनपुट करती है, Cloud Run और Gemini का इस्तेमाल करके उन्हें प्रोसेस करती है, और उनके मेटाडेटा को BigQuery में स्ट्रीम करती है.

आपको क्या सीखने को मिलेगा

  • आर्किटेक्चरल प्लानिंग और डिज़ाइन के लिए, Antigravity का इस्तेमाल कैसे करें.
  • एआई एजेंट की मदद से, कोड के तौर पर इन्फ़्रास्ट्रक्चर (शेल स्क्रिप्ट) जनरेट करें.
  • Python पर आधारित Cloud Run सेवा बनाएं और उसे डिप्लॉय करें.
  • मल्टीमॉडल दस्तावेज़ों का विश्लेषण करने के लिए, Gemini on Vertex AI को इंटिग्रेट करें.
  • Antigravity के Walkthrough आर्टफ़ैक्ट का इस्तेमाल करके, एंड-टू-एंड पाइपलाइन की पुष्टि करें.

आपको इन चीज़ों की ज़रूरत होगी

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

2. ऐप्लिकेशन के बारे में खास जानकारी

Antigravity का इस्तेमाल करके ऐप्लिकेशन को डिज़ाइन और लागू करने से पहले, आइए हम उस ऐप्लिकेशन के बारे में जानकारी दें जिसे हमें अपने लिए बनाना है.

हमें सर्वरलेस और इवेंट-ड्रिवन दस्तावेज़ पाइपलाइन बनानी है. यह पाइपलाइन, Google Cloud Storage (GCS) से फ़ाइलें लेती है, Cloud Run और Gemini का इस्तेमाल करके उन्हें प्रोसेस करती है, और उनके मेटाडेटा को BigQuery में स्ट्रीम करती है.

इस ऐप्लिकेशन के लिए, आर्किटेक्चर का डायग्राम कुछ ऐसा दिख सकता है:

3bd519cfab38258d.png

यह सटीक होना ज़रूरी नहीं है. Antigravity की मदद से, हम आर्किटेक्चर की जानकारी का पता लगा सकते हैं. हालांकि, आपको यह पता होना चाहिए कि आपको क्या बनाना है. जितनी ज़्यादा जानकारी दी जाएगी, Antigravity से आर्किटेक्चर और कोड के मामले में उतने ही बेहतर नतीजे मिलेंगे.

3. आर्किटेक्चर प्लान करना

हम Antigravity के साथ मिलकर, आर्किटेक्चर की जानकारी की योजना बनाने के लिए तैयार हैं!

Antigravity, जटिल सिस्टम की प्लानिंग करने में माहिर है. कोड तुरंत लिखने के बजाय, हम हाई-लेवल आर्किटेक्चर को तय करके शुरुआत कर सकते हैं.

सबसे पहले, पक्का करें कि आप एजेंट मैनेजर में हों. अगर आपने अभी-अभी Antigravity खोला है, तो बीच में मौजूद Open Agent Manager बटन पर क्लिक करें. इसके अलावा, आपको सबसे ऊपर दाएं कोने में भी यही Open Agent Manager बटन दिखेगा.

Agent Manager में, आपके पास कोई वर्कस्पेस खोलने का विकल्प होता है. इसके अलावा, Playground का इस्तेमाल भी किया जा सकता है. यह एक इंडिपेंडेंट वर्कस्पेस है, जिसका इस्तेमाल तुरंत प्रोटोटाइप बनाने और एक्सपेरिमेंट करने के लिए किया जाता है. आइए, Playground से शुरू करते हैं.

Playground में नई बातचीत शुरू करने के लिए, + बटन पर क्लिक करें:

4e33c028a604a375.png

इससे एक इंटरफ़ेस खुलता है. इसमें, नीचे दिखाए गए तरीके से प्रॉम्प्ट दिया जा सकता है:

fbf023e84f0eb3b2.png

सबसे ऊपर दाएं कोने में मौजूद, सेटिंग आइकॉन ⚙️ पर क्लिक करें. इसके बाद, Artifact में जाकर Review Policy और Terminal में जाकर Terminal Command Auto Execution को Request Review पर सेट करें. इससे यह पक्का किया जा सकेगा कि हर चरण में, एजेंट के प्लान को लागू करने से पहले, आपको उसकी समीक्षा करने और उसे मंज़ूरी देने का मौका मिले.

प्रॉम्प्ट

अब हम Antigravity को अपना पहला प्रॉम्प्ट देने के लिए तैयार हैं.

सबसे पहले, पक्का करें कि Antigravity Planning मोड में हो. मॉडल के लिए, Gemini Pro (High) मॉडल का इस्तेमाल करें. हालांकि, आपके पास अन्य मॉडल आज़माने का विकल्प भी है.

यह प्रॉम्प्ट डालें और 'सबमिट करें' बटन पर क्लिक करें:

I want to build a serverless event-driven document processing pipeline on Google Cloud.
Architecture:
- Ingestion: Users upload files to a Cloud Storage bucket.
- Trigger: File uploads trigger a Pub/Sub message.
- Processor: A Python-based Cloud Run service receives the message, processes the file (simulated OCR), and extracts metadata.
- Storage: Stream the metadata (filename, date, tags, word_count) into a BigQuery dataset. 

टास्क लिस्ट और लागू करने का प्लान

Antigravity, आपके अनुरोध का विश्लेषण करेगा. इसके बाद, टास्क की सूची और लागू करने का प्लान जनरेट करेगा.

इस प्लान में यह जानकारी दी गई है:

  • बुनियादी ढांचा: GCS बकेट, Pub/Sub विषय, BigQuery डेटासेट.
  • प्रोसेसर: Python/Flask ऐप्लिकेशन, Dockerfile, Requirements.
  • इंटिग्रेशन: GCS सूचनाएं → Pub/Sub → Cloud Run.

आपको कुछ ऐसा दिखेगा:

ada19341c490a570.png

Task लाइन के बगल में मौजूद Open बटन पर क्लिक करें. इससे आपको Antigravity के बनाए गए टास्क का सेट दिखेगा. एजेंट, एक-एक करके इन सवालों के जवाब देगा:

19675c55a71b373.png

अगला चरण, लागू करने के प्लान की समीक्षा करना और एजेंट को आगे बढ़ने की अनुमति देना है.

लागू करने के प्लान की जानकारी देखने के लिए, उस पर क्लिक करें. इसे ध्यान से पढ़ें. आपके पास इस सुविधा को लागू करने के बारे में सुझाव/राय देने या शिकायत करने का मौका है. लागू करने के प्लान के किसी भी हिस्से पर क्लिक करके, टिप्पणियां जोड़ी जा सकती हैं. कुछ टिप्पणियां जोड़ने के बाद, उन बदलावों को समीक्षा के लिए सबमिट करना न भूलें जिन्हें आपको देखना है. खास तौर पर, नाम, Google Cloud प्रोजेक्ट आईडी, क्षेत्र वगैरह से जुड़े बदलाव.

सब कुछ ठीक लगने पर, एजेंट को लागू करने के प्लान के साथ आगे बढ़ने की अनुमति दें. इसके लिए, Proceed बटन पर क्लिक करें.

4. ऐप्लिकेशन जनरेट करो

प्लान को मंज़ूरी मिलने के बाद, Antigravity ऐप्लिकेशन के लिए ज़रूरी फ़ाइलें जनरेट करना शुरू कर देता है. इनमें प्रोविज़निंग स्क्रिप्ट से लेकर ऐप्लिकेशन कोड तक शामिल हैं.

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

4d98413e3bd17148.png

setup.sh या इसी तरह के नाम वाली शेल स्क्रिप्ट फ़ाइल जनरेट होती है. इससे संसाधन अपने-आप बन जाते हैं. यह इन चीज़ों को मैनेज करता है:

  1. एपीआई चालू करना (run, pubsub, bigquery, storage).
  2. Google Cloud Storage बकेट (doc-ingestion-{project-id}) बनाया जा रहा है.
  3. BigQuery डेटासेट और टेबल बनाना (pipeline_data.processed_docs).
  4. Pub/Sub विषयों और सूचनाओं को कॉन्फ़िगर करना.

एजेंट को एक Python ऐप्लिकेशन (main.py) जनरेट करना चाहिए, जो Pub/Sub पुश मैसेज को सुने. यह सिम्युलेटेड ओसीआर लॉजिक का इस्तेमाल करता है. इससे शब्दों की संख्या और टैग रैंडम तरीके से जनरेट होते हैं और उन्हें BigQuery में सेव किया जाता है.

यह सेटअप स्क्रिप्ट जनरेट होने के बाद, Antigravity को आपकी ओर से स्क्रिप्ट को लागू करने के लिए प्रॉम्प्ट करना चाहिए. यहां एक सैंपल स्क्रीन दिखाई गई है:

44395ab66413a64f.png

आगे बढ़ें और अपनी ज़रूरत के हिसाब से Accept पर क्लिक करें.

प्रोविज़निंग स्क्रिप्ट, संसाधन बनाएगी और पुष्टि करेगी कि वे बन गए हैं. जांच पूरी होने के बाद, यह कंटेनर बनाने और उसे Cloud Run में सेवा के तौर पर डिप्लॉय करने की प्रोसेस शुरू करेगा (main.py में). यहां आउटपुट का एक सैंपल दिखाया गया है:

e0e625e218e7fe46.png

सेवा को डिप्लॉय करने के दौरान, यह Pub/Sub सदस्यताएं और अन्य ज़रूरी चीज़ें भी सेट अप करेगा, ताकि यह पाइपलाइन काम कर सके. इन सभी में कुछ मिनट लगेंगे.

इस दौरान, सबसे ऊपर बाएं कोने में मौजूद Inbox पर स्विच करें. इसके बाद, Pending ऐसे टास्क देखें जिनमें आपको इनपुट देना है:

ddd2f49d02fad987.png

इससे यह पक्का किया जा सकता है कि एजेंट के सुझाव, राय या शिकायत मांगने पर, आपने टास्क स्वीकार कर लिए हैं.

5. ऐप्लिकेशन की पुष्टि करना

पाइपलाइन डिप्लॉय होने के बाद, Antigravity यह पुष्टि करता है कि ऐप्लिकेशन सही तरीके से काम कर रहा है या नहीं. Antigravity, टास्क की सूची में पुष्टि करने के चरणों को अपने-आप पूरा करता है. यहां एक सैंपल स्क्रीन दिखाई गई है:

b8758b77880cc4d9.png

यह एक टेस्ट आर्टफ़ैक्ट (test.txt) बनाता है और इसे Google Cloud Storage बकेट में अपलोड करना चाहता है. आगे बढ़ने के लिए, Accept पर क्लिक करें.

अगर आपको खुद ही और टेस्ट करने हैं, तो Antigravity के पुष्टि करने वाले चरण से मदद लें. इसमें, Cloud Storage बकेट में सैंपल फ़ाइल अपलोड करने के लिए, gsutil यूटिलिटी का इस्तेमाल किया जाता है. यहां कमांड का सैंपल दिखाया गया है:

gsutil cp <some-test-doc>.txt gs://<bucket-name>/

BigQuery में नतीजे देखना

पुष्टि करने की प्रोसेस के दौरान, यह भी देखा जाएगा कि डेटा को BigQuery में सेव किया गया है या नहीं.

c0f08fedf671e9bd.png

दस्तावेज़ों की जांच करने के लिए इस्तेमाल की गई SQL क्वेरी नोट करें.

पुष्टि हो जाने के बाद, आपको टास्क की सूची में यह दिखेगा कि टास्क पूरा हो गया है:

b55ad48a87f95eca.png

ज़रूरी नहीं: मैन्युअल तरीके से पुष्टि करना

Antigravity ने ऐप्लिकेशन की पुष्टि कर दी है. हालांकि, अगर आपको Google Cloud Console में जाकर यह देखना है कि सभी संसाधन बनाए गए हैं या नहीं, तो यह तरीका अपनाएं.

Cloud Storage

लक्ष्य: पुष्टि करें कि बकेट मौजूद है और अपलोड की गई फ़ाइलों की जांच करें.

  1. Cloud Storage > बकेट पर जाएं.
  2. [PROJECT_ID]-doc-uploads नाम वाले बकेट का पता लगाएं.
  3. फ़ाइलें ब्राउज़ करने के लिए, बकेट के नाम पर क्लिक करें.
  4. पुष्टि करें: आपको अपलोड की गई फ़ाइलें दिखनी चाहिए. जैसे, test.txt).

Pub/Sub

लक्ष्य: पुष्टि करें कि विषय मौजूद है और उसके लिए पुश नोटिफ़िकेशन की सुविधा चालू है.

  1. Pub/Sub > विषय पर जाएं.
  2. doc-processing-topic ढूंढें.
  3. विषय के आईडी पर क्लिक करें.
  4. नीचे की ओर स्क्रोल करके, सदस्यताएं टैब पर जाएं.
  5. पुष्टि करें: पक्का करें कि doc-processing-sub को "Push" डिलीवरी टाइप के साथ सूची में शामिल किया गया हो.

Cloud Run

लक्ष्य: सेवा की स्थिति और लॉग की जांच करें.

  1. Cloud Run पर जाएं.
  2. doc-processor सेवा पर क्लिक करें.
  3. पुष्टि करें:
  4. स्वास्थ्य: हरे रंग का सही का निशान, यह दिखाता है कि सेवा चालू है.
  5. लॉग: लॉग टैब पर क्लिक करें. "Processing file: gs://..." और "Successfully processed..." जैसी एंट्री ढूंढें.

BigQuery

लक्ष्य: पुष्टि करना कि डेटा वाकई में सेव किया गया है.

  1. BigQuery > SQL फ़ाइल फ़ोल्डर पर जाएं.
  2. एक्सप्लोरर पैन में, project > pipeline_data डेटासेट को बड़ा करें.
  3. processed_docs टेबल पर क्लिक करें.
  4. झलक देखें टैब पर क्लिक करें.
  5. पुष्टि करें: आपको filename, upload_date, tags, और word_count वाली लाइनें दिखनी चाहिए.

कदम-दर-कदम निर्देश

आखिरी चरण में, Antigravity एक वॉकट्रू आर्टफ़ैक्ट जनरेट करता है. इस आर्टफ़ैक्ट में यह जानकारी शामिल होती है:

  • बदलाव किए गए.
  • पुष्टि करने के लिए कमांड चलाएं.
  • असल नतीजे (क्वेरी का आउटपुट, जिसमें Gemini से निकाला गया मेटाडेटा दिखाया गया है).

इसे देखने के लिए, Open पर क्लिक करें. यहां आउटपुट का एक सैंपल दिखाया गया है:

47ecf561d0252924.png

6. ऐप्लिकेशन के बारे में ज़्यादा जानें

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

यहां उन फ़ाइलों के बारे में खास जानकारी दी गई है जो आपको दिख सकती हैं:

  1. setup.sh: यह मास्टर स्क्रिप्ट है. यह सभी Google Cloud संसाधनों को उपलब्ध कराती है और ज़रूरी एपीआई चालू करती है.
  2. main.py: पाइपलाइन का मुख्य एंट्री पॉइंट. यह Python ऐप्लिकेशन एक वेब सर्वर बनाता है. यह Pub/Sub से पुश किए गए मैसेज पाता है, GCS से फ़ाइल डाउनलोड करता है, उसे "प्रोसेस" करता है (ओसीआर की प्रोसेस का सिम्युलेशन करता है), और मेटाडेटा को BigQuery पर स्ट्रीम करता है.
  3. Dockerfile: इससे यह तय होता है कि ऐप्लिकेशन को कंटेनर इमेज में कैसे पैकेज किया जाए.
  4. requirements.txt: Python की डिपेंडेंसी की सूची बनाता है.

आपको जांच और पुष्टि के लिए ज़रूरी अन्य स्क्रिप्ट और टेक्स्ट फ़ाइलें भी दिख सकती हैं.

इस समय, आपको प्लेग्राउंड से किसी वर्कस्पेस/फ़ोल्डर पर भी जाना पड़ सकता है. इसके लिए, सबसे ऊपर दाएं कोने में मौजूद बटन पर क्लिक करें:

278de21c89e5c726.png

कोई फ़ोल्डर चुनने के बाद, सारा कोड उस फ़ोल्डर में चला जाएगा. साथ ही, उस फ़ोल्डर और बातचीत के इतिहास के साथ एक नया वर्कस्पेस बन जाएगा.

7. ऐप्लिकेशन को बड़ा करें

अब आपके पास काम करने वाला एक बुनियादी ऐप्लिकेशन है. इसलिए, ऐप्लिकेशन को बेहतर बनाने और उसे बढ़ाने का काम जारी रखा जा सकता है. यहां कुछ आइडिया दिए गए हैं.

फ़्रंटएंड जोड़ना

प्रोसेस किए गए दस्तावेज़ों को देखने के लिए, एक आसान वेब इंटरफ़ेस बनाएं.

यह प्रॉम्प्ट आज़माएँ: Create a simple Streamlit or Flask web application that connects to BigQuery. It should display a table of the processed documents (filename, upload_date, tags, word_count) and allow me to filter the results by tag

एआई/एमएल की असली टेक्नोलॉजी के साथ इंटिग्रेट करना

सिम्युलेटेड ओसीआर प्रोसेसिंग के बजाय, Gemini के मॉडल का इस्तेमाल करके टेक्स्ट को एक्सट्रैक्ट, क्लासिफ़ाई, और अनुवादित करें.

  1. डमी ओसीआर लॉजिक बदलें. इमेज/PDF को Gemini पर भेजें, ताकि वह उसमें मौजूद टेक्स्ट और डेटा को निकाल सके. निकाले गए टेक्स्ट का विश्लेषण करके, दस्तावेज़ के टाइप (इनवॉइस, अनुबंध, फिर से शुरू) को कैटगरी में बांटना या इकाइयों (तारीखें, नाम, जगहें) को निकालना.
  2. दस्तावेज़ की भाषा का अपने-आप पता लगाता है और उसे सेव करने से पहले अंग्रेज़ी में अनुवाद करता है. आपके पास किसी दूसरी भाषा का इस्तेमाल करने का भी विकल्प है.

स्टोरेज और आंकड़ों को बेहतर बनाना

लागत बचाने के लिए, बकेट पर लाइफ़साइकल के नियम कॉन्फ़िगर किए जा सकते हैं. इससे पुरानी फ़ाइलों को "कोल्डलाइन" या "संग्रह" स्टोरेज में ले जाया जा सकता है.

मज़बूत और सुरक्षित

ऐप्लिकेशन को ज़्यादा मज़बूत और सुरक्षित बनाया जा सकता है. जैसे:

  1. डेड लेटर क्यू (डीएलक्यू): फ़ेल होने की वजह से होने वाली समस्याओं को ठीक करने के लिए, Pub/Sub सदस्यता को अपडेट करें. अगर Cloud Run सेवा किसी फ़ाइल को पांच बार प्रोसेस नहीं कर पाती है, तो मैसेज को "डेड लेटर" वाले अलग विषय/बकेट में भेजें, ताकि कोई व्यक्ति उसकी जांच कर सके.
  2. Secret Manager: अगर आपके ऐप्लिकेशन को एपीआई कुंजियों या संवेदनशील कॉन्फ़िगरेशन की ज़रूरत है, तो उन्हें Secret Manager में सेव करें. साथ ही, स्ट्रिंग को हार्डकोड करने के बजाय, Cloud Run से उन्हें सुरक्षित तरीके से ऐक्सेस करें.
  3. Eventarc: इवेंट को ज़्यादा आसानी से राउट करने के लिए, सीधे Pub/Sub से Eventarc पर अपग्रेड करें. इससे, आपको जटिल ऑडिट लॉग या अन्य GCP सेवा इवेंट के आधार पर ट्रिगर करने की सुविधा मिलती है.

ज़रूर, आपके पास अपने आइडिया इस्तेमाल करने का विकल्प है. साथ ही, Antigravity की मदद से उन्हें लागू किया जा सकता है!

8. नतीजा

आपने Google Antigravity का इस्तेमाल करके, कुछ ही मिनटों में सर्वरलेस और एआई की मदद से काम करने वाली, ऐसी दस्तावेज़ पाइपलाइन बनाई है जिसे आसानी से बढ़ाया जा सकता है. आपने इनके बारे में जाना:

  • एआई की मदद से आर्किटेक्चर प्लान करें.
  • Antigravity को निर्देश दें और उसे मैनेज करें. यह कोड जनरेट करने से लेकर ऐप्लिकेशन को डिप्लॉय और पुष्टि करने तक काम करता है.
  • वॉकथ्रू की मदद से, डिप्लॉयमेंट और पुष्टि की प्रोसेस की जानकारी पाएं.

रेफ़रंस दस्तावेज़