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

1. परिचय

fca14bb9f4bb74f4.png

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

इस कोडलैब में, ये चीज़ें सीखी जा सकती हैं

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

इस कोडलैब के लिए, ये चीज़ें ज़रूरी हैं

  • 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 बटन दिखेगा.

सबसे पहले, ऐप्लिकेशन के लिए एक फ़ोल्डर बनाएं.जैसे, document-pipeline. इसके बाद, इसे एजेंट मैनेजर में वर्कस्पेस के तौर पर जोड़ें:

6df2bebcee5608b7.png

एजेंट मैनेजर में, document-pipeline वर्कस्पेस में बातचीत शुरू करें. पक्का करें कि प्लान मोड भी चालू हो:

b7d18b5ec36004cf.png

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

प्रॉम्प्ट

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

सबसे पहले, यह पक्का करें कि Antigravity Plan मोड में हो. मॉडल के लिए, 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, ज़रूरी शर्तें.
  • इंटिग्रेशन: 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 विषयों और सूचनाओं को कॉन्फ़िगर करना.

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

अगर आपको खुद से और टेस्ट करने हैं, तो Cloud Storage बकेट में कोई सैंपल फ़ाइल अपलोड करके देखें:

gcloud storage cp <some-test-doc>.txt gs://doc-ingestion-{project-id}/

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, डिलीवरी के "पुश" टाइप के साथ सूची में शामिल हो.

Cloud Run

लक्ष्य: सेवा की स्थिति और लॉग देखना.

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

BigQuery

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

  1. BigQuery > SQL फ़ाइल फ़ोल्डर पर जाएं.
  2. एक्सप्लोरर पैनल में, अपना प्रोजेक्ट > 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 की डिपेंडेंसी की सूची होती है.

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

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

स्टोरेज और Analytics को बेहतर बनाना

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

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

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

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

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

8. नतीजा

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

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

रेफ़रंस के लिए दस्तावेज़