मुख्य सामग्री पर जाएं

Google Apps Script और Gemini API ट्यूटोरियल: स्मार्ट डेटा एक्सट्रैक्शन

जानें कि Google Apps Script और Gemini API का उपयोग करके ईमेल और PDF से डेटा निष्कर्षण को कैसे स्वचालित करें। आज ही Google Sheets के लिए एक सर्वरलेस पाइपलाइन बनाएं।
अद्यतन 17 जुल॰ 2026  · 11 मि॰ पढ़ना

मैनुअल डेटा एंट्री उत्पादकता की दुश्मन है। यदि आपकी टीम परिचालन ईमेल्स—जैसे इनवॉइस, बुकिंग कन्फर्मेशन, या कस्टमर फीडबैक फॉर्म—से डेटा निकालने पर निर्भर करती है, तो आप पारंपरिक पार्सिंग तरीकों की परेशानी से भली-भांति परिचित होंगे। 

इतिहासतः, डेवलपर्स ने इनवॉइस नंबर या बिलिंग अमाउंट जैसी डिटेल्स निकालने के लिए Regular Expressions (Regex) पर भरोसा किया। लेकिन Regex बेहद नाजुक होता है; जैसे ही कोई वेंडर अपना ईमेल टेम्पलेट बदलता है या अनायास एक लाइन ब्रेक जोड़ देता है, पूरा पार्सर चुपचाप टूट जाता है।

इस ट्यूटोरियल में, मैं आपको दिखाऊंगा कि कैसे Generative AI का उपयोग करके इस समस्या का समाधान करने वाली पूर्णतः स्वचालित, हेडलेस पाइपलाइन बनाई जाए। हम एक हल्का-फुल्का स्क्रिप्ट लिखेंगे जो अनरीड Gmail संदेशों को पढ़ेगा, असंरचित टेक्स्ट को बुद्धिमत्तापूर्ण निष्कर्षण के लिए Gemini API को पास करेगा, और पूरी तरह संरचित JSON डेटा सीधे Google Sheet में लॉग करेगा।

आवश्यकताएँ:

  • एक Google खाता
  • JavaScript (Google Apps Script) का बुनियादी ज्ञान
  • एक Gemini API कुंजी

Google Apps Script क्या है?

Google Apps Script एक क्लाउड-आधारित, जावास्क्रिप्ट पर आधारित तेज़ डेवलपमेंट प्लेटफ़ॉर्म है जो आपको Google Docs, Sheets, Slides और अन्य Google Workspace ऐप्लिकेशंस को ऑटोमेट, कस्टमाइज़ और एक्सटेंड करने की अनुमति देता है। 

क्योंकि प्लेटफ़ॉर्म सीधे Google के सर्वरों पर चलता है, सॉफ़्टवेयर इंस्टॉल करने, लोकल एन्वायरनमेंट कॉन्फ़िगर करने, या इन्फ्रास्ट्रक्चर मैनेज करने की कोई ज़रूरत नहीं होती। 

Apps Script डेवलपर्स/लो-कोड डेवलपर्स को Docs, Sheets, Slides, Drive आदि जैसे Google Workspace टूल्स के साथ प्रोग्रामेटिक रूप से इंटरेक्ट करने की क्षमता देता है। आप कस्टम मेनू, बटन क्लिक, या समय-आधारित शेड्यूल्स के माध्यम से ऑटोमेशन बना और चला सकते हैं, या इस सर्विस का उपयोग Google Workspace मार्केटप्लेस के लिए ऐड-ऑन्स बनाने और पब्लिश करने में कर सकते हैं।

Google Apps Script कैसे काम करता है

Google Apps Script बैकएंड कॉन्फ़िगरेशन और API ऑथेंटिकेशन जैसे भारी काम को अमूर्त कर देता है, ताकि आप सीधे लॉजिक और डेटा पर ध्यान दे सकें। यह कई फ़ीचर्स के माध्यम से संभव होता है:

  • क्लाउड-नेटिव एडिटर: आप अपने ब्राउज़र में निर्मित वेब-आधारित IDE में पूरी तरह से अपना जावास्क्रिप्ट कोड लिखते, डिबग करते और डिप्लॉय करते हैं।
  • बिल्ट-इन सर्विसेज: OAuth और जटिल API कॉल्स से जूझने के बजाय, आप आउट-ऑफ़-द-बॉक्स ग्लोबल ऑब्जेक्ट्स (जैसे SpreadsheetApp, MailApp, या DriveApp) का उपयोग करके Google सर्विसेज़ से नैटिव रूप से इंटरेक्ट करते हैं।
  • इवेंट-ड्रिवन ट्रिगर्स: स्क्रिप्ट्स को कस्टम मेनू बटन के माध्यम से मैन्युअली चलाया जा सकता है, या टाइम-ड्रिवन ट्रिगर्स (उदा., हर रात 12 बजे) और इवेंट-ड्रिवन ट्रिगर्स (उदा., जब कोई यूज़र Google फ़ॉर्म सबमिट करता है) का उपयोग करके स्वतः शेड्यूल किया जा सकता है।

Google Apps Script आर्किटेक्चर: Gmail से Sheets पाइपलाइन

स्क्रिप्ट लिखने से पहले, देखते हैं कि यह पाइपलाइन डेटा को कैसे प्रवाहित करती है। आर्किटेक्चर चार अलग-अलग घटकों पर निर्भर है जो साथ मिलकर काम करते हैं:

  • Gmail (स्रोत): प्रक्रिया आपके इनबॉक्स को मानक सर्च ऑपरेटरों (जैसे is:unread label:invoices) से क्वेरी करके शुरू होती है। स्क्रिप्ट सही ईमेल थ्रेड्स को अलग करती है और प्लेन टेक्स्ट बॉडी तथा किसी भी संलग्न PDF फ़ाइलों को निकालती है।
  • Apps Script (कम्प्यूट): यह ऑर्केस्ट्रेशन लेयर की तरह कार्य करता है। यह अनरीड थ्रेड्स पर इटरेट करता है, अटैचमेंट्स को base64 डेटा में फ़ॉर्मैट करता है, और एरर रिपोर्टिंग तथा बैच प्रोसेसिंग के लिए लॉजिक संभालता है।
  • Gemini API (ट्रांसफ़ॉर्मेशन इंजन): Apps Script, ईमेल टेक्स्ट और PDFs का मल्टीमोडल पेलोड Gemini 2.5 Flash मॉडल को भेजता है। API कॉल में एक सख्त JSON रिस्पॉन्स स्कीमा पास करके, हम मॉडल को वेंडर, कुल राशि, और मुद्रा जैसी सटीक वैल्यूज़ निकालने के लिए बाध्य करते हैं, बजाय इसके कि वह बातचीत जैसा टेक्स्ट जेनरेट करे।
  • Google Sheets (गंतव्य): Gemini से संरचित JSON वापस आने के बाद, Apps Script परिणामों को पार्स करता है, उन्हें एक सिंगल ऐरे में बंडल करता है, और setValues() का उपयोग करके आपके सक्रिय स्प्रेडशीट की अगली खाली पंक्ति में बैच-इन्सर्ट कर देता है।

workflow-diagram

इस बिल्ड के लिए कम्प्यूट लेयर के रूप में Google Apps Script क्यों?

मुख्य लाभ यह है कि इन्फ्रास्ट्रक्चर ओवरहेड पूरी तरह खत्म हो जाता है। शून्य सर्वर प्राविज़निंग की आवश्यकता होती है, और केवल ईमेल पढ़ने या स्प्रेडशीट में लिखने के लिए आपको Docker कंटेनर कॉन्फ़िगर करने या जटिल OAuth फ़्लो सेट करने की ज़रूरत नहीं पड़ती। 

क्योंकि Apps Script नैटिव रूप से GmailApp और SpreadsheetApp जैसी सर्विसेज़ से इंटीग्रेटेड है, Google आंतरिक रूप से ऑथेंटिकेशन संभालता है। आपको केवल कोड लिखना है और एंडपॉइंट्स जोड़ने हैं।

चरण 1: अपना Google Apps Script एन्वायरनमेंट तैयार करें

कोई भी कोड लिखने से पहले, हमें अपनी बाहरी निर्भरताएँ तैयार करनी होंगी। इसमें Gemini API तक पहुँच सुरक्षित करना, हमारा गंतव्य स्प्रेडशीट बनाना, और आने वाले इनवॉइस को सही ढंग से टैग करने के लिए Gmail इनबॉक्स कॉन्फ़िगर करना शामिल है।

Gemini API कुंजी जेनरेट करना

बुद्धिमत्तापूर्ण डेटा निष्कर्षण को सक्षम करने के लिए हमें Gemini API तक पहुँच चाहिए।

  1. यहाँ जाएँ Google AI Studio और अपने Google खाते से साइन इन करें।
  2. बाएँ नेविगेशन मेनू में Get API key पर क्लिक करें।
  3. Create API key बटन पर क्लिक करें। आप चाहें तो इस कुंजी को किसी मौजूदा Google Cloud प्रोजेक्ट में बना सकते हैं या AI Studio को आपके लिए नया प्रोजेक्ट बनाने दे सकते हैं।
  4. जेनरेटेड स्ट्रिंग कॉपी करें। 

सुरक्षा हेतु सर्वोत्तम अभ्यास: इस कुंजी को न खोएँ, और उससे भी महत्वपूर्ण, इसे अपने कोड में सादा टेक्स्ट के रूप में हार्डकोड करने की योजना न बनाएँ। अभी के लिए इसे अपने क्लिपबोर्ड या किसी सुरक्षित नोटपैड में रखें; अगले चरण में हम इसे अपने Apps Script एन्वायरनमेंट में सुरक्षित रूप से स्टोर करेंगे।

AIStudio-Dashboard

Google Sheet तैयार करना और कुंजी सुरक्षित करना

हमें निकाले गए डेटा को स्टोर करने के लिए एक जगह चाहिए। यही शीट हमारी ऑटोमेशन स्क्रिप्ट के लॉन्चपैड के रूप में भी काम करेगी।

1. डेटाबेस हेडर सेट करें एक नया खाली Google Sheet बनाएं। पहली पंक्ति में, नीचे दिए गए कॉलम हेडर बनाएं ताकि वे हमारे स्क्रिप्ट में परिभाषित JSON स्कीमा से मेल खाएँ:

  • Date
  • Vendor
  • Invoice Number
  • Total Amount
  • Currency
  • Items Summary
  • Email Link

टॉप रो को फ्रीज़ कर दें ताकि डेटा बढ़ने पर भी हेडर्स दिखाई दें।

GoogleSheet

2. Apps Script तक पहुँचें और API कुंजी स्टोर करें अब जब शीट बन चुकी है, तो हम सीधे यहीं से Apps Script एडिटर खोल सकते हैं। इससे हमारा कोड अपने-आप इस विशिष्ट स्प्रेडशीट से लिंक हो जाएगा।

  1. अपने Google Sheet में, टॉप मेनू से Extensions > Apps Script पर क्लिक करें।launch-script-editor
  2. एडिटर खुलने पर, बाईं साइडबार में गियर आइकन पर क्लिक करके Project Settings खोलें।

appsscript-editor

  1. नीचे तक स्क्रॉल करें और Script Properties सेक्शन ढूँढें।
  2. पर क्लिक करें Add script property
  3. Property के अंतर्गत, ठीक-ठीक GEMINI_API_KEY टाइप करें।
  4. Value के अंतर्गत, पहले AI Studio से कॉपी की हुई API कुंजी पेस्ट करें।
  5. पर क्लिक करें Save script properties

store-the-gemini-api-key

अब जो कोड हम आगे लिखेंगे, वह रनटाइम पर इस वैल्यू को सुरक्षित रूप से फ़ेच करेगा और आपके क्रेडेंशियल्स उजागर नहीं होंगे।

चरण 2: Google Apps Script कोड लिखें

Apps Script एडिटर में रहते हुए, किसी भी डिफ़ॉल्ट कोड को डिलीट कर दें। हम अपना ऑटोमेशन इंजन ब्लॉक-ब्लॉक बनाकर तैयार करेंगे।

1. कॉन्फ़िगरेशन और UI सेटअप

हम एक ग्लोबल कॉन्फ़िगरेशन ऑब्जेक्ट परिभाषित करके शुरू करेंगे। यह क्लीन कोड की एक अच्छी प्रैक्टिस है जो सभी हार्डकोडेड वेरिएबल्स को एक ही जगह समूहीकृत करती है, ताकि आपको केवल इस टॉप ब्लॉक में बदलाव करना पड़े।

हम एक onOpen() फ़ंक्शन भी जोड़ते हैं। यह बिल्ट-इन Apps Script ट्रिगर आपके Google Sheet में अपने-आप एक कस्टम मेनू बनाता है, जिससे गैर-तकनीकी उपयोगकर्ता कोड एडिटर खोले बिना मैन्युअली स्क्रिप्ट चला सकते हैं।

const CONFIG = {
 searchQuery: "is:unread label:invoices",
 model: "gemini-2.5-flash",
 adminEmail: Session.getActiveUser().getEmail() // Automatically emails the script owner if it crashes
};

/**
* Creates a custom menu in Google Sheets so non-technical users can run the script manually.
*/
function onOpen() {
 const ui = SpreadsheetApp.getUi();
 ui.createMenu('🤖 AI Automations')
   .addItem('Fetch New Invoices', 'processInvoices')
   .addToUi();
}

2. ऑर्केस्ट्रेशन सेटअप

processInvoices() फ़ंक्शन मुख्य ऑर्केस्ट्रेटर के रूप में कार्य करता है। यह सबसे पहले स्क्रिप्ट प्रॉपर्टीज़ से आपकी API कुंजी को सुरक्षित रूप से खींचता है, जिसे हमने पहले सेट किया था। 

इसके बाद, यह बिल्ट-इन GmailApp सर्विस का उपयोग करके आपके इनबॉक्स को क्वेरी करता है।

GmailApp.search(CONFIG.searchQuery) कॉल करके, स्क्रिप्ट हमारे is:unread label:invoices नियम से मेल खाते ईमेल थ्रेड्स का एक ऐरे प्राप्त करती है। 

यदि मेल मिलते हैं, तो यह प्रत्येक थ्रेड से होकर गुजरती है, नवीनतम संदेश लेती है, प्लेन टेक्स्ट बॉडी निकालती है, और किसी भी संलग्न PDF फ़ाइल को अलग करती है।

function processInvoices() {
  const apiKey = PropertiesService.getScriptProperties().getProperty("GEMINI_API_KEY");
  if (!apiKey) {
    throw new Error("GEMINI_API_KEY is missing! Please set it in Script Properties.");
  }

  const threads = GmailApp.search(CONFIG.searchQuery);
  if (threads.length === 0) return;

  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const batchData = [];
  const processedThreads = [];

3. ईमेल्स और मल्टीमोडल PDFs प्रोसेस करना

जैसे ही हम ईमेल थ्रेड्स पर लूप करते हैं, हम नवीनतम संदेश को लेते हैं। हालाँकि, इनवॉइस शायद ही प्लेन टेक्स्ट में आते हैं; वे लगभग हमेशा PDF के रूप में संलग्न होते हैं। 

Gemini 2.5 Flash का उपयोग करके, जो नैटिव रूप से मल्टीमोडल है, हमारी स्क्रिप्ट latestMessage.getAttachments() पर लूप करती है, किसी भी PDF को लेती है, उन्हें Base64 स्ट्रिंग में बदलती है, और inlineData के रूप में सीधे API पेलोड को पास करती है। 

Gemini PDF को विज़ुअली "पढ़ता" है और डेटा को उतनी ही आसानी से निकालता है जितना कि वह टेक्स्ट पढ़ता है।

for (let i = 0; i < threads.length; i++) {
   const thread = threads[i];
   const latestMessage = thread.getMessages().pop();
  
   const emailBody = latestMessage.getPlainBody();
   const emailDate = latestMessage.getDate();
   const emailLink = https://mail.google.com/mail/u/0/#inbox/${thread.getId()};
   const attachments = latestMessage.getAttachments();
   try {
     const geminiParts = [];
     geminiParts.push({ text: "Extract invoice details from this email and any attached documents:\n\n" + emailBody });
    
     // Add PDF attachments as base64 to the prompt
     for (const attachment of attachments) {
       if (attachment.getContentType() === "application/pdf") {
         geminiParts.push({
           inlineData: {
             mimeType: "application/pdf",
             data: Utilities.base64Encode(attachment.getBytes())
           }
         });
       }
     }
     // Invoke Gemini API
     const extractedData = callGeminiAPI(apiKey, geminiParts);

4. बैच इन्सर्शन और एरर हैंडलिंग

प्रदर्शन को अनुकूलित करने के लिए, हम स्प्रेडशीट में एक-एक पंक्ति लिखते नहीं हैं। 

इसके बजाय, हम निकाले गए JSON डेटा को एक ऐरे (batchData) में पुश करते हैं और अंत में setValues() का उपयोग करके एक बार में लिख देते हैं।

ध्यान दें कि try...catch ब्लॉक लगा हुआ है। 

यदि Gemini किसी विशिष्ट ईमेल पर गलती कर दे या भ्रमित उत्तर दे, तो स्क्रिप्ट पूरी तरह क्रैश नहीं होती। इसके बजाय, यह त्रुटि को शालीनता से पकड़ती है और MailApp.sendEmail() का उपयोग करके प्रशासक को तुरंत अलर्ट भेजती है, जिससे उच्च ऑब्ज़र्वेबिलिटी सुनिश्चित होती है।

 // Push to batch array instead of writing one-by-one
     batchData.push([
       emailDate,
       extractedData.vendor || "Unknown Vendor",
       extractedData.invoiceNumber || "N/A",
       extractedData.totalAmount || 0.00,
       extractedData.currency || "USD",
       extractedData.itemsSummary || "N/A",
       emailLink
     ]);
     processedThreads.push(thread);
   } catch (error) {
     MailApp.sendEmail(CONFIG.adminEmail, "🚨 Invoice Pipeline Error", error.toString());
   }
 }
 // Batch Write to Sheets
 if (batchData.length > 0) {
   const lastRow = Math.max(sheet.getLastRow(), 1);
   sheet.getRange(lastRow + 1, 1, batchData.length, batchData[0].length).setValues(batchData);
 }
 // Mark all processed threads as read so they aren't parsed again
 processedThreads.forEach(t => t.markRead());
}

अंत में, स्क्रिप्ट हर प्रोसेस्ड ईमेल पर thread.markRead() कॉल करती है। इससे सुनिश्चित होता है कि अगली बार स्क्रिप्ट चलने पर ये ईमेल पूरी तरह नज़रअंदाज़ हो जाएँ और केवल नए ईमेल देखें।

5. Gemini API हेल्पर फ़ंक्शन (JSON मोड)

LLM कॉल करते समय, डेवलपर्स अक्सर "JSON ब्लॉक लौटाएँ" जैसे प्रॉम्प्ट इंजीनियरिंग का उपयोग करते हैं। हालाँकि, मॉडल प्रायः वार्तालाप जैसे पैडिंग के साथ उत्तर देते हैं (उदा. "ज़रूर, यहाँ आपका डेटा है: [JSON]"), जिससे डाउनस्ट्रीम कोड पार्सर क्रैश हो जाते हैं।

responseMimeType: "application/json" और सख्त responseSchema सेट करके, हम Gemini REST API को केवल एक गारंटीड JSON ऑब्जेक्ट के साथ उत्तर देने के लिए बाध्य करते हैं, जिसमें हमारे ठीक-ठीक स्प्रेडशीट कॉलम हेडर शामिल हों।

function callGeminiAPI(apiKey, partsArray) {
 const url = https://generativelanguage.googleapis.com/v1beta/models/${CONFIG.model}:generateContent?key=${apiKey};
  const responseSchema = {
   type: "OBJECT",
   properties: {
     vendor: { type: "STRING" },
     invoiceNumber: { type: "STRING" },
     totalAmount: { type: "NUMBER" },
     currency: { type: "STRING" },
     itemsSummary: { type: "STRING" }
   },
   required: ["vendor", "totalAmount"]
 };
  const payload = {
   contents: [{ parts: partsArray }],
   generationConfig: {
     responseMimeType: "application/json",
     responseSchema: responseSchema
   }
 };
  const options = {
   method: "POST",
   contentType: "application/json",
   payload: JSON.stringify(payload),
   muteHttpExceptions: true
 };
  const response = UrlFetchApp.fetch(url, options);
 const jsonResponse = JSON.parse(response.getContentText());
  return JSON.parse(jsonResponse.candidates[0].content.parts[0].text);
}

चरण 3: अपनी Google Apps Script पाइपलाइन को ऑटोमेट करें

कोड तभी मूल्यवान है जब वह आपका काम आसान बनाए। 

Google Apps Script इंटरैक्टिव, यूज़र-फेसिंग बटनों से लेकर पूरी तरह हेडलेस, बैकग्राउंड क्रॉन जॉब्स तक शक्तिशाली एक्ज़ीक्यूशन एन्वायरनमेंट प्रदान करता है।

विधि 1: स्प्रेडशीट UI के माध्यम से ट्रिगर करना

यदि आप यह टूल किसी गैर-तकनीकी अकाउंटिंग टीम के लिए बना रहे हैं, तो वे शायद आज के इनवॉइस प्रोसेस करने के लिए Apps Script कोड एडिटर खोलना नहीं चाहेंगे। 

क्योंकि हमने अपने कोड में onOpen() फ़ंक्शन शामिल किया है, Apps Script हर बार स्प्रेडशीट खुलने पर Google Sheets इंटरफ़ेस में सीधे एक कस्टम मेनू जोड़ देता है।

  1. अपने Google Sheet पर वापस जाएँ और पेज को रिफ्रेश करें।
  2. कुछ सेकंड प्रतीक्षा करें, और टॉप मेनू बार देखें। आपको एक नया ड्रॉपडाउन दिखाई देगा जिसका नाम है 🤖 AI Automations
  3. इस पर क्लिक करें और Fetch New Invoices चुनें।

running-the-automation

  1. पहली बार चलाने पर, Google आपसे स्क्रिप्ट को अधिकृत करने के लिए कहेगा (ताकि वह आपका Gmail पढ़ सके और आपकी ओर से ईमेल भेज सके)। अधिकृत होने के बाद, स्क्रिप्ट रीयल-टाइम में चलेगी। आप देखेंगे कि निकाला गया JSON डेटा आपकी आँखों के सामने पंक्तियों में भरता जाएगा!

विधि 2: टाइम-ड्रिवन ट्रिगर्स के माध्यम से हेडलेस ऑटोमेशन

यदि आप सचमुच सेट करें और भूल जाएँ जैसी ऑटोमेशन चाहते हैं, तो आप नैटिव टाइम-ड्रिवन ट्रिगर्स का उपयोग करके पाइपलाइन को बैकग्राउंड में स्वायत्त रूप से चला सकते हैं।

  1. Apps Script एडिटर में, बाईं साइडबार पर ट्रिगर्स (घड़ी आइकन) पर क्लिक करें।

Trigger-button

  1. नीचे दाईं ओर Add Trigger पर क्लिक करें।

configuring-the-trigger

  1. फ़ंक्शन को processInvoices पर सेट करें।
  2. इवेंट सोर्स को Time-driven में बदलें और इसे Hour टाइमर (उदा., हर 6 घंटे) पर चलाएँ।
  3. Save पर क्लिक करें।

Trigger-Settings

अब आपकी हेडलेस AI पाइपलाइन पूरी तरह स्वायत्त है।

भले ही आपका कंप्यूटर पूरी तरह बंद हो, Google के सर्वर हर छह घंटे में जागेंगे, आपके इनबॉक्स को स्कैन करेंगे, Gemini के माध्यम से इनवॉइस पार्स करेंगे, डेटा को Sheets में लॉग करेंगे, और फिर वापस सो जाएँगे। 

आप Apps Script एडिटर में Executions टैब पर क्लिक करके इन बैकग्राउंड रन की सफलता या विफलता की मॉनिटरिंग कर सकते हैं और लॉग देख सकते हैं।

चरण 4: AI डेटा एक्सट्रैक्शन का परीक्षण

अब जब कोड तैयार है, हमें पाइपलाइन का परीक्षण करना है ताकि सुनिश्चित हो सके कि निष्कर्षण अपेक्षित रूप से काम कर रहा है।

आइए दो व्यावहारिक परिदृश्यों को देखें कि Gemini API अलग-अलग डेटा फ़ॉर्मैट्स को कैसे हैंडल करता है और वास्तविक प्रतिक्रियाएँ कैसी दिखती हैं।

टेस्ट 1: प्लेन टेक्स्ट ईमेल एक्सट्रैक्शन

सबसे पहले, हम सीधे ईमेल बॉडी में एम्बेड किए गए इनवॉइस का परीक्षण करेंगे।

  1. खुद को "Invoice INV-2023-88493" विषय के साथ एक ईमेल भेजें।
  2. बॉडी में असंरचित टेक्स्ट लिखें, जैसे: "Hi Team, please pay Acme Corp $450.00 USD for the Q3 software license."
  3. ईमेल पर invoices लेबल लगाएँ और सुनिश्चित करें कि वह अनरीड रहे।

final-email-output

  1. कस्टम मेनू के माध्यम से स्क्रिप्ट चलाएँ।

पर्दे के पीछे, Gemini इस असंरचित टेक्स्ट को प्राप्त करता है और हमारे JSON स्कीमा का सख्ती से पालन करता है। 

बातचीत जैसी पैडिंग के बजाय, यह एक कच्चा पेलोड लौटाता है। 

क्योंकि रिस्पॉन्स पूरी तरह संरचित JSON है, हमारा batchData.push() ऐरे बिना किसी जटिल Regex लॉजिक की आवश्यकता के extractedData.totalAmount को सहजता से पढ़ता है और 6550 को सीधे Google Sheet में लॉग कर देता है।

final-response

टेस्ट 2: PDF अटैचमेंट से निष्कर्षण

अगला, आइए Gemini 2.5 Flash की वास्तविक शक्ति का परीक्षण एक PDF दस्तावेज़ पास करके करें।

  1. एक सैंपल PDF इनवॉइस जेनरेट या डाउनलोड करें (उदा., ProTech Cloud Services से $20,700.00 का)।
  2. खुद को यह PDF दस्तावेज़ ईमेल करें। आप ईमेल बॉडी बिल्कुल खाली छोड़ सकते हैं!
  3. इस पर invoices लेबल लगाएँ और इसे अनरीड मार्क करें।

email-attachment

  1. स्क्रिप्ट चलाएँ। पाइपलाइन अटैचमेंट का पता लगाएगी, उसे Base64 में कन्वर्ट करेगी, और Gemini दस्तावेज़ को विज़ुअली पढ़कर वेंडर और कुल राशि निकालेगा।

final-response

यहीं यह आर्किटेक्चर अपनी कीमत साबित करता है। 

आपको कस्टम OCR (Optical Character Recognition) लॉजिक लिखने, अलग PDF पार्सिंग लाइब्रेरी मैनेज करने, या कुल राशि खोजने के लिए रेगुलर एक्सप्रेशंस लिखने की ज़रूरत नहीं पड़ी। 

LLM ने असंरचित विज़ुअल डेटा को नैटिव रूप से हैंडल कर लिया।

निष्कर्ष

व्यावसायिक वर्कफ़्लो को ऑटोमेट करने के लिए भारी इन्फ्रास्ट्रक्चर मैनेज करने या जटिल ऑथराइज़ेशन लूप्स से लड़ने की आवश्यकता नहीं है। 

Google Apps Script को Gemini API के साथ पेयर करके, हमने एक बुद्धिमान, सर्वरलेस डेटा पाइपलाइन बनाई जो पूरी तरह उसी क्लाउड इकोसिस्टम में चलती है जिसे आप हर दिन उपयोग करते हैं।

इस आर्किटेक्चर की ताकत इसकी सादगी में है। सर्वर प्राविज़न करने, वेबहुक्स कॉन्फ़िगर करने, या किसी बाहरी सर्वर पर सुरक्षित क्रेडेंशियल फ़ाइलें मैनेज करने के बजाय, Apps Script संदर्भ, ऑथेंटिकेशन, और एक्ज़ीक्यूशन को नैटिव रूप से संभालता है। 

साथ ही, Gemini नाज़ुक रेगुलर एक्सप्रेशंस या महंगे OCR सॉफ़्टवेयर की ज़रूरत को खत्म कर देता है, बिखरे हुए ईमेल बॉडीज़ और असंरचित PDFs को एक ही API कॉल से पूर्वानुमेय डेटाबेस पंक्तियों में बदल देता है।

अपनी स्किल्स को आगे बढ़ाने और LLMs तक प्रोग्रामेटिक एक्सेस के साथ आप और क्या बना सकते हैं, यह एक्स्प्लोर करने के लिए, मैं DataCamp के Introduction to APIs in Python को देखने या AI Agent Fundamentals कोर्स में गहराई से उतरने की सिफारिश करता हूँ।

विषय

शीर्ष DataCamp पाठ्यक्रम

course

Google ADK के साथ AI एजेंट बनाना

1 घंटा
6.8K
Google के Agent Development Kit (ADK) के साथ चरण-दर-चरण ग्राहक-सहायता सहायक बनाएं।
विस्तृत जानकारी देखेंRight Arrow
कोर्स शुरू करें

course

Google Gemini और NotebookLM के साथ प्रैक्टिकल AI

2 घंटा
7.8K
Gemini और NotebookLM में महारत हासिल करें, कार्य स्वचालित करें, उत्पादकता बढ़ाएँ, और Google के AI इकोसिस्टम में बेहतर काम करें।
और देखेंRight Arrow