Courses
การป้อนข้อมูลด้วยตนเองคือศัตรูของประสิทธิภาพการทำงาน หากทีมต้องพึ่งพาการดึงข้อมูลจากอีเมลเชิงปฏิบัติการ เช่น ใบแจ้งหนี้ การยืนยันการจอง หรือแบบฟอร์มความคิดเห็นจากลูกค้า ก็น่าจะคุ้นเคยกับความยุ่งยากของวิธีการพาร์สแบบดั้งเดิมเป็นอย่างดี
ในอดีต นักพัฒนามักใช้ 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 เป็นแพลตฟอร์ม พัฒนาแอปพลิเคชัน แบบคลาวด์ที่รวดเร็วบนพื้นฐานของ JavaScript ซึ่งช่วยให้ทำงานอัตโนมัติ ปรับแต่ง และขยายแอปใน Google Workspace อย่าง Google Docs, Sheets, Slides และอื่น ๆ ได้
เนื่องจากแพลตฟอร์มทำงานโดยตรงบนเซิร์ฟเวอร์ของ Google จึงไม่ต้องติดตั้งซอฟต์แวร์ ตั้งค่าสภาพแวดล้อมภายในเครื่อง หรือดูแลโครงสร้างพื้นฐาน
Apps Script เปิดโอกาสให้นักพัฒนา/นักพัฒนาโลว์โค้ดโต้ตอบกับเครื่องมือ Google Workspace อย่าง Docs, Sheets, Slides, Drive และอื่น ๆ แบบโปรแกรมได้ สามารถสร้างและรันระบบอัตโนมัติผ่านเมนูกำหนดเอง ปุ่มคลิก หรือกำหนดเวลาอิงเวลา หรือใช้บริการเพื่อสร้างและเผยแพร่ส่วนเสริมใน Google Workspace Marketplace
การทำงานของ Google Apps Script
Google Apps Script ช่วยยกภาระงานหนักของการตั้งค่าหลังบ้านและการยืนยันตัวตนกับ API ออกไป ทำให้สามารถโฟกัสกับตรรกะและข้อมูลได้ตรง ๆ โดยทำได้ผ่านคุณสมบัติต่อไปนี้:
- เครื่องมือแก้ไขบนคลาวด์: เขียน ดีบัก และดีพลอยโค้ด JavaScript ทั้งหมดใน IDE บนเว็บที่อยู่ในเบราว์เซอร์โดยตรง
- บริการในตัว: แทนที่จะต้องวุ่นวายกับ OAuth และการเรียก API ที่ซับซ้อน ให้ใช้วัตถุโกลบอลสำเร็จรูป (เช่น SpreadsheetApp, MailApp หรือ DriveApp) เพื่อโต้ตอบกับบริการของ Google โดยตรง
- ทริกเกอร์แบบอีเวนต์: สคริปต์สามารถรันด้วยตนเองผ่านปุ่มเมนูกำหนดเอง หรือกำหนดให้รันอัตโนมัติด้วยทริกเกอร์อิงเวลา (เช่น เที่ยงคืนทุกวัน) และทริกเกอร์อิงเหตุการณ์ (เช่น เมื่อมีผู้ใช้ส่ง Google Form)
สถาปัตยกรรม Google Apps Script: ไปป์ไลน์จาก Gmail ไปยัง Sheets
ก่อนเขียนสคริปต์ มาวางแผนการเคลื่อนที่ของข้อมูลในไปป์ไลน์นี้กัน สถาปัตยกรรมอาศัยองค์ประกอบ 4 ส่วนที่ทำงานร่วมกัน:
- Gmail (แหล่งข้อมูล): เริ่มต้นด้วยการค้นหากล่องจดหมายด้วยโอเปอเรเตอร์ค้นหามาตรฐาน (เช่น is:unread label:invoices) สคริปต์จะคัดแยกเธรดอีเมลที่ถูกต้องและดึงทั้งเนื้อหาข้อความล้วนและไฟล์ PDF ที่แนบมา
- Apps Script (การประมวลผล): ทำหน้าที่เป็นชั้นการประสานงาน วนลูปผ่านเธรดที่ยังไม่ได้อ่าน จัดรูปแบบไฟล์แนบเป็นข้อมูล base64 และจัดการตรรกะการรายงานข้อผิดพลาดและการประมวลผลแบบแบตช์
- Gemini API (เอนจินการแปลง): Apps Script ส่งเพย์โหลดแบบมัลติโหมด (ข้อความอีเมลบวกกับไฟล์ PDF) ไปยังโมเดล Gemini 2.5 Flash โดยส่งสคีมาคำตอบ JSON ที่เข้มงวดในคำขอ API เราบังคับให้โมเดลดึงค่าที่ต้องการอย่างผู้ขาย ยอดรวม และสกุลเงิน แทนการสร้างข้อความสนทนา
- Google Sheets (ปลายทาง): เมื่อ Gemini ส่งคืน JSON ที่มีโครงสร้าง Apps Script จะพาร์สผลลัพธ์ รวมเป็นอาร์เรย์เดียว และแทรกข้อมูลแบบแบตช์ลงในแถวถัดไปที่ว่างของสเปรดชีตที่ใช้งานอยู่ด้วย setValues()

เหตุใดจึงใช้ Google Apps Script เป็นเลเยอร์ประมวลผลสำหรับงานนี้?
ประโยชน์หลักคือการตัดภาระโครงสร้างพื้นฐานออกทั้งหมด ไม่ต้องจัดเตรียมเซิร์ฟเวอร์ และไม่ต้องตั้งค่าคอนเทนเนอร์ Docker หรือทำ OAuth ที่ซับซ้อนเพื่อจะอ่านอีเมลหรือเขียนสเปรดชีต
เพราะ Apps Script ผสานการทำงานกับบริการอย่าง GmailApp และ SpreadsheetApp โดยตรง Google จะจัดการการยืนยันตัวตนภายในให้ เพียงเขียนโค้ดและเชื่อมต่อเอ็นด์พอยต์
ขั้นตอนที่ 1: เตรียมสภาพแวดล้อม Google Apps Script
ก่อนเขียนโค้ด ต้องเตรียมการพึ่งพาภายนอกก่อน ซึ่งรวมถึงการขอสิทธิ์เข้าถึง Gemini API, สร้างสเปรดชีตปลายทาง และตั้งค่ากล่องจดหมาย Gmail เพื่อแท็กใบแจ้งหนี้ที่เข้ามาอย่างถูกต้อง
การสร้างคีย์ Gemini API
เพื่อให้การสกัดข้อมูลอัจฉริยะทำงานได้ จำเป็นต้องมีการเข้าถึง Gemini API
- ไปที่ Google AI Studio และลงชื่อเข้าใช้ด้วยบัญชี Google
- ในเมนูนำทางด้านซ้าย คลิก Get API key
- คลิกปุ่ม Create API key เลือกสร้างคีย์นี้ในโปรเจ็กต์ Google Cloud ที่มีอยู่แล้ว หรือให้ AI Studio สร้างโปรเจ็กต์ใหม่ให้
- คัดลอกสตริงที่สร้างขึ้นไว้
แนวทางปฏิบัติด้านความปลอดภัย: ห้ามทำหาย และที่สำคัญกว่าคืออย่าวางคีย์นี้แบบฮาร์ดโค้ดในข้อความลายในโค้ด เก็บไว้ในคลิปบอร์ดหรือโน้ตที่ปลอดภัยชั่วคราว เราจะเก็บอย่างปลอดภัยในสภาพแวดล้อม Apps Script ในขั้นถัดไป

เตรียม Google Sheet และรักษาความปลอดภัยคีย์
เราต้องมีที่เก็บข้อมูลที่สกัดออกมา แผ่นงานนี้จะทำหน้าที่เป็นฐานปล่อยสคริปต์อัตโนมัติของเราด้วย
1. ตั้งค่าหัวตารางฐานข้อมูล สร้าง Google Sheet ว่างใหม่ ในแถวแรก สร้างส่วนหัวคอลัมน์ต่อไปนี้ให้ตรงกับสคีมา JSON ที่เราจะกำหนดในสคริปต์:
- Date
- Vendor
- Invoice Number
- Total Amount
- Currency
- Items Summary
- Email Link
ตรึงแถวบนสุดเพื่อให้ส่วนหัวแสดงอยู่เสมอเมื่อข้อมูลเพิ่มขึ้น

2. เข้าถึง Apps Script และเก็บคีย์ API ตอนนี้มีแผ่นงานแล้ว เราสามารถเปิดตัวแก้ไข Apps Script ได้จากแผ่นงานโดยตรง ซึ่งจะลิงก์โค้ดของเราเข้ากับสเปรดชีตนี้โดยอัตโนมัติ
- ใน Google Sheet คลิก Extensions > Apps Script จากเมนูด้านบน

- เมื่อเครื่องมือแก้ไขเปิดขึ้น มองที่แถบด้านซ้ายแล้วคลิกไอคอนรูปเฟืองเพื่อเปิด Project Settings.

- เลื่อนลงไปด้านล่างสุดจนเจอส่วน Script Properties.
- คลิก Add script property.
- ในช่อง Property ให้พิมพ์ว่า
GEMINI_API_KEYตรงตามนี้ - ในช่อง Value วางคีย์ API ที่คัดลอกจาก AI Studio มาก่อนหน้านี้
- คลิก Save script properties.

โค้ดที่เขียนภายหลังจะดึงค่านี้อย่างปลอดภัยขณะรันไทม์โดยไม่เปิดเผยข้อมูลรับรอง
ขั้นตอนที่ 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 จาก Script Properties ที่ตั้งค่าไว้ก่อนหน้าอย่างปลอดภัย
จากนั้นใช้บริการ 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. ประมวลผลอีเมลและไฟล์ PDF แบบมัลติโหมด
ขณะวนลูปเธรดอีเมล เราจะดึงข้อความล่าสุด อย่างไรก็ตาม ใบแจ้งหนี้แทบจะไม่มาเป็นข้อความล้วน มักถูกแนบมาเป็น PDF
ด้วยการใช้ Gemini 2.5 Flash ซึ่งรองรับมัลติโหมดโดยกำเนิด สคริปต์ของเราจะวนผ่าน latestMessage.getAttachments() ดึงไฟล์ PDF ใด ๆ แปลงเป็นสตริง Base64 และส่งเข้าเพย์โหลด API เป็น inlineData โดยตรง
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 โดยอัตโนมัติทุกครั้งที่เปิดสเปรดชีต
- กลับไปที่ Google Sheet แล้วรีเฟรชหน้า
- รอสักครู่ แล้วดูที่แถบเมนูด้านบน จะเห็นดรอปดาวน์ใหม่ชื่อ 🤖 AI Automations.
- คลิกแล้วเลือก Fetch New Invoices.

- ครั้งแรกที่รัน Google จะขออนุญาตสคริปต์ (เพื่ออ่าน Gmail และส่งอีเมลในนามของคุณ) เมื่ออนุญาตแล้ว สคริปต์จะทำงานแบบเรียลไทม์ สามารถดูข้อมูล JSON ที่สกัดได้เติมลงในแถวต่อหน้าต่อตา
วิธีที่ 2: ระบบอัตโนมัติแบบไร้ส่วนติดต่อผ่านทริกเกอร์อิงเวลา
หากต้องการระบบอัตโนมัติแบบ ตั้งแล้วลืมได้ จริง ๆ สามารถใช้ Time-Driven Triggers ในตัว เพื่อรันไปป์ไลน์อัตโนมัติในพื้นหลัง
- ในตัวแก้ไข Apps Script คลิก Triggers (ไอคอนนาฬิกา) ที่แถบด้านซ้าย

- คลิก Add Trigger ที่มุมขวาล่าง

- ตั้งค่าฟังก์ชันเป็น processInvoices.
- เปลี่ยนแหล่งเหตุการณ์เป็น Time-driven และตั้งให้รันตามชั่วโมง (เช่น ทุก 6 ชั่วโมง)
- คลิก Save

ตอนนี้ไปป์ไลน์ AI แบบไร้ส่วนติดต่อทำงานอัตโนมัติเต็มรูปแบบแล้ว
แม้ปิดคอมพิวเตอร์ เซิร์ฟเวอร์ของ Google ก็จะตื่นขึ้นทุกหกชั่วโมง สแกนกล่องจดหมาย พาร์สใบแจ้งหนี้ผ่าน Gemini, บันทึกข้อมูลลงใน Sheets แล้วเข้าสู่โหมดพัก
สามารถติดตามความสำเร็จหรือความล้มเหลวของการรันเบื้องหลังเหล่านี้ได้โดยคลิกแท็บ Executions ในตัวแก้ไข Apps Script เพื่อดูล็อก
ขั้นตอนที่ 4: ทดสอบการสกัดข้อมูลด้วย AI
ตอนนี้โค้ดพร้อมแล้ว ต้องทดสอบเพื่อให้มั่นใจว่าไปป์ไลน์สกัดข้อมูลทำงานตามคาด
มาดูสองสถานการณ์ใช้งานจริง เพื่อดูว่า Gemini API จัดการรูปแบบข้อมูลที่ต่างกันอย่างไร และคำตอบจริงหน้าตาเป็นอย่างไร
ทดสอบที่ 1: การสกัดจากอีเมลข้อความล้วน
เริ่มจากทดสอบใบแจ้งหนี้ที่ฝังอยู่ในเนื้อหาอีเมลโดยตรง
- ส่งอีเมลถึงตัวเองด้วยหัวเรื่อง "Invoice INV-2023-88493"
- ในเนื้อหา พิมพ์ข้อความไร้โครงสร้างเช่น: "สวัสดีทีม ช่วยชำระเงินให้ Acme Corp $450.00 USD สำหรับไลเซนส์ซอฟต์แวร์ไตรมาส 3"
- ติดป้ายกำกับ invoices ให้กับอีเมลและปล่อยให้ยังไม่ได้อ่าน

- รันสคริปต์ผ่านเมนูกำหนดเอง

เบื้องหลัง Gemini จะได้รับข้อความไร้โครงสร้างนี้และยึดตามสคีมา JSON ของเราอย่างเคร่งครัด
แทนที่จะตอบพร้อมข้อความเกริ่น จะส่งคืนเพย์โหลดดิบ ๆ
เพราะคำตอบเป็น JSON ที่มีโครงสร้างสมบูรณ์ อาร์เรย์ batchData.push() ของเราจึงอ่าน extractedData.totalAmount ได้อย่างราบรื่นและบันทึก 6550 ลงใน Google Sheet โดยไม่ต้องใช้ตรรกะ Regex ที่ซับซ้อน

ทดสอบที่ 2: การสกัดจากไฟล์แนบ PDF
ต่อไป มาทดสอบพลังที่แท้จริงของ Gemini 2.5 Flash โดยส่งเอกสาร PDF เข้าไป
- สร้างหรือดาวน์โหลดตัวอย่างใบแจ้งหนี้ PDF (เช่น $20,700.00 จาก ProTech Cloud Services)
- ส่งอีเมลถึงตัวเองพร้อมไฟล์ PDF แนบ สามารถปล่อยเนื้อหาอีเมลให้ว่างได้เลย
- ติดป้ายกำกับ invoices และทำเครื่องหมายว่ายังไม่ได้อ่าน

- รันสคริปต์ ไปป์ไลน์จะตรวจจับไฟล์แนบ แปลงเป็น Base64 และ Gemini จะอ่านเอกสารด้วยสายตาเพื่อสกัดผู้ขายและยอดรวม

นี่คือจุดที่สถาปัตยกรรมนี้แสดงคุณค่า
ไม่ต้องเขียนตรรกะ OCR (Optical Character Recognition) เอง ไม่ต้องจัดการไลบรารีพาร์ส PDF แยกต่างหาก หรือเขียน regex เพื่อหายอดรวม
LLM จัดการข้อมูลภาพที่ไม่มีโครงสร้างได้โดยกำเนิด
สรุป
การทำงานของธุรกิจให้เป็นอัตโนมัติไม่จำเป็นต้องดูแลโครงสร้างพื้นฐานหนักหน่วงหรือสู้กับขั้นตอนอนุญาตที่ซับซ้อน
ด้วยการจับคู่ Google Apps Script กับ Gemini API เราได้สร้างไปป์ไลน์สกัดข้อมูลแบบอัจฉริยะ ไร้เซิร์ฟเวอร์ ที่ทำงานทั้งหมดภายในระบบคลาวด์ที่ใช้อยู่ทุกวัน
จุดแข็งของสถาปัตยกรรมนี้อยู่ที่ความเรียบง่าย แทนที่จะต้องจัดเตรียมเซิร์ฟเวอร์ ตั้งค่าเว็บฮุค หรือจัดการไฟล์ข้อมูลรับรองอย่างปลอดภัยบนเซิร์ฟเวอร์ภายนอก Apps Script จะดูแลบริบท การยืนยันตัวตน และการรันให้อย่างเป็นธรรมชาติ
ในขณะเดียวกัน Gemini ก็ช่วยตัดความจำเป็นของ regex ที่เปราะบางหรือซอฟต์แวร์ OCR ที่มีราคาแพง เปลี่ยนเนื้อหาอีเมลที่ยุ่งเหยิงและ PDF ที่ไม่มีโครงสร้างให้เป็นแถวข้อมูลในฐานข้อมูลที่คาดเดาได้ด้วยคำขอ API เพียงครั้งเดียว
หากต้องการพัฒนาทักษะต่อและสำรวจสิ่งที่สร้างได้เพิ่มเติมด้วยการเข้าถึง LLM แบบโปรแกรม แนะนำให้ดูคอร์สของ DataCamp เรื่อง Introduction to APIs in Python หรือเจาะลึกการออกแบบเวิร์กโฟลว์อัจฉริยะด้วย AI Agent Fundamentals ได้