1. บทนำ

ใน Codelab นี้ คุณจะได้เรียนรู้วิธีใช้ Google Antigravity เพื่อออกแบบ สร้าง และทำให้แอปพลิเคชันแบบ Serverless ใช้งานได้ใน Google Cloud โดยเราจะสร้างไปป์ไลน์เอกสารแบบ Serverless ที่ขับเคลื่อนด้วยเหตุการณ์ ซึ่งจะนำเข้าไฟล์จาก Google Cloud Storage (GCS), ประมวลผลไฟล์โดยใช้ Cloud Run และ Gemini รวมถึงสตรีมข้อมูลเมตาของไฟล์ไปยัง BigQuery
สิ่งที่คุณจะได้เรียนรู้
- วิธีใช้ Antigravity ในการวางแผนและออกแบบสถาปัตยกรรม
- สร้างโครงสร้างพื้นฐานเป็นโค้ด (สคริปต์เชลล์) ด้วย AI Agent
- สร้างและทำให้บริการ Cloud Run ที่อิงตาม Python ใช้งานได้
- ผสานรวม Gemini ใน Vertex AI เพื่อการวิเคราะห์เอกสารแบบมัลติโมดัล
- ยืนยันไปป์ไลน์แบบครบวงจรโดยใช้ Artifact ของ Walkthrough จาก Antigravity
สิ่งที่คุณต้องมี
- ติดตั้ง Google Antigravity แล้ว
- โปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงินแล้ว
- gcloud CLI ติดตั้งและตรวจสอบสิทธิ์แล้ว
2. ภาพรวมของแอป
ก่อนที่จะเริ่มออกแบบสถาปัตยกรรมและใช้ Antigravity เพื่อสร้างแอปพลิเคชัน เรามาสรุปแอปพลิเคชันที่เราต้องการสร้างกันก่อน
เราต้องการสร้างไปป์ไลน์เอกสารแบบ Serverless ที่ขับเคลื่อนด้วยเหตุการณ์ ซึ่งจะนำเข้าไฟล์จาก Google Cloud Storage (GCS), ประมวลผลไฟล์โดยใช้ Cloud Run และ Gemini รวมถึงสตรีมข้อมูลเมตาของไฟล์ไปยัง BigQuery
แผนภาพสถาปัตยกรรมระดับสูงสำหรับแอปพลิเคชันนี้อาจมีลักษณะดังนี้

โดยไม่จำเป็นต้องแม่นยำ Antigravity จะช่วยเราหาข้อมูลรายละเอียดสถาปัตยกรรมไปพร้อมๆ กัน อย่างไรก็ตาม การมีไอเดียเกี่ยวกับสิ่งที่คุณต้องการสร้างจะช่วยได้มาก ยิ่งคุณให้รายละเอียดมากเท่าไหร่ คุณก็จะได้รับผลลัพธ์ที่ดีขึ้นจาก Antigravity ในแง่ของสถาปัตยกรรมและโค้ด
3. วางแผนสถาปัตยกรรม
เราพร้อมที่จะเริ่มวางแผนรายละเอียดสถาปัตยกรรมด้วย Antigravity แล้ว
Antigravity มีความโดดเด่นในการวางแผนระบบที่ซับซ้อน แทนที่จะเขียนโค้ดทันที เราสามารถเริ่มต้นด้วยการกำหนดสถาปัตยกรรมระดับสูงและใช้ฟีเจอร์หนึ่งเพื่อช่วยให้ Antigravity ประเมินคำขอของเรา ถามคำถามติดตามผล แล้วดำเนินการวางแผนและสร้างแอปพลิเคชัน
สมมติว่าคุณได้เปิดใช้ Antigravity แล้ว เราจะสร้างโปรเจ็กต์ใหม่สำหรับ Codelab นี้
คลิกไอคอนโปรเจ็กต์ใหม่ข้างแล็บ Projects แล้วคลิก New Project ดังที่แสดงด้านล่าง

ระบบจะแสดงตัวเลือก Add Folder ดังที่แสดงด้านล่าง

คลิกปุ่ม Add Folder เพื่อเพิ่มโฟลเดอร์ลงในโปรเจ็กต์ ในเครื่องของฉัน ฉันได้สร้างโฟลเดอร์ google-cloud-serverless-app แล้วเพิ่มโฟลเดอร์ดังกล่าวลงในโปรเจ็กต์นี้
การดำเนินการนี้จะเปิดการสนทนาในโปรเจ็กต์ google-cloud-serverless-app
คลิกไอคอนการตั้งค่าหลัก ⚙️ที่ด้านล่างซ้ายของหน้าจอ แล้วไปที่การตั้งค่าเฉพาะโปรเจ็กต์ หากไม่เห็นโปรเจ็กต์ google-cloud-serverless-app แสดงอยู่ในรายการ ให้เริ่มการสนทนาครั้งเดียว แล้วกลับไปที่การตั้งค่าโปรเจ็กต์
ตั้งค่า Agent Settings / Security Preset เป็น Default และ Agent Behavior / Artifact Review Policy เป็น Always Ask ดังที่แสดงด้านล่าง

การดำเนินการนี้จะช่วยให้คุณตรวจสอบและอนุมัติแผนได้ในทุกขั้นตอนก่อนที่ Agent จะดำเนินการ
พรอมต์
ตอนนี้เราพร้อมที่จะป้อนพรอมต์แรกให้กับ Antigravity แล้ว เราจะใช้คำสั่งเครื่องหมายทับ /grill-me เพื่อประเมินคำขอของเรา
พิมพ์ /grill-me แล้วป้อนพรอมต์ต่อไปนี้ จากนั้นคลิกปุ่มส่ง
/grill-me
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.
คำสั่ง /grill-me จะถามคำถามติดตามผลหลายข้อ ซึ่งคุณสามารถพยายามตอบคำถามเหล่านั้นอย่างสุดความสามารถ นอกจากนี้ คำสั่งนี้ยังแนะนำคำตอบที่แนะนำ และคุณสามารถเลือกคำตอบเหล่านั้นได้หากต้องการ
ตัวอย่างการเรียกใช้คำสั่ง /grill-me ของฉันแสดงอยู่ด้านล่าง
How would you like the Cloud Run service to receive events from Cloud Storage and Pub/Sub?
(Recommended) Cloud Storage Pub/Sub Notification with a Pub/Sub Push Subscription (HTTP POST to Cloud Run)
How should access to the Cloud Run service endpoint be secured for Pub/Sub push requests?
Publicly accessible Cloud Run service without authentication (for prototyping/quick testing only)
How should the Python processor handle file inspection and the simulated OCR logic?
(Recommended) Download file from GCS: if plain text/utf-8, extract actual words and tags; if binary/image/PDF, simulate OCR processing (mock latency, generate synthetic text & tags, count words)
How should the processor write metadata to BigQuery and handle table/schema provisioning?
(Recommended) Use BigQuery Streaming Inserts (`insert_rows_json`) with auto-creation of the dataset and table if they do not exist
How should the Cloud Run service handle processing failures and retries from Pub/Sub?
(Recommended) Return HTTP 500 on transient errors for Pub/Sub automatic retry; return HTTP 200/204 on non-retryable errors (e.g., file not found, bad event format) to avoid poison pill loops
Which web framework would you prefer for the Python Cloud Run service?
Flask with Gunicorn: minimal, classic lightweight standard for GCP microservices
How would you like the cloud infrastructure (Bucket, Pub/Sub, Cloud Run, BigQuery) to be provisioned and deployed?
(Recommended) Provide both: automated `gcloud` CLI setup/deploy scripts for quick manual rollout AND Terraform manifests for reproducible IaC
How would you like to handle local testing and development before deploying to Google Cloud?
(Recommended) Include a local mock test suite and script (`test_local.py`) that can simulate Pub/Sub push envelopes and test processing with both mocked GCP clients and actual files
โปรดสังเกตว่าฉันเลือกขอให้ Antigravity ดำเนินการต่อไปนี้
- สคริปต์ gcloud CLI อย่างง่ายเพื่อจัดสรรทรัพยากร
- การแจ้งเตือน Cloud Storage Pub/Sub ดั้งเดิม + การสมัครใช้บริการพุช Pub/Sub ไปยัง Cloud Run
- ใช้ Flask (กับ Gunicorn) เป็นเฟรมเวิร์ก
- ใช้การจำลองในเครื่องกับไฟล์ข้อความสำหรับข้อมูลแทนข้อมูล OCR จริง
- ใช้ BigQuery table.insert_rows() เพื่อแทรกแถวลงใน BigQuery
- การทำให้ใช้งานได้บน Cloud Run ที่ไม่มีการตรวจสอบสิทธิ์
และตัวเลือกอื่นๆ ที่แนะนำ
แผนการสร้างแอปพลิเคชันและรายการงาน
ตอนนี้ Antigravity จะเริ่มทำงานและสร้างแผนการสร้างแอปพลิเคชัน โดยจะแสดงข้อความคล้ายกับข้อความด้านล่างเพื่อให้คุณตรวจสอบ

คุณสามารถคลิกปุ่มเปิด/ปิดแผงเสริมที่หน้าต่างด้านขวาบนเพื่อดู Artifact ที่สร้างขึ้น ซึ่งในตอนนี้จะมีเพียงแผนการสร้างแอปพลิเคชัน

แผนนี้สรุปรายละเอียดต่อไปนี้
- โครงสร้างพื้นฐาน: Bucket ของ GCS, หัวข้อ Pub/Sub, ชุดข้อมูล BigQuery
- ตัวประมวลผล: แอป Python/Flask, Dockerfile, ข้อกำหนด
- การผสานรวม: การแจ้งเตือน GCS → Pub/Sub → Cloud Run
คุณควรเห็นข้อมูลที่มีลักษณะคล้ายด้านล่าง รายการแผนการสร้างแอปพลิเคชันบางส่วนในเครื่องของเราแสดงอยู่ด้านล่าง

โปรดอ่านอย่างละเอียด นี่เป็นโอกาสของคุณที่จะแสดงความคิดเห็นเกี่ยวกับการสร้างแอปพลิเคชัน คุณสามารถคลิกส่วนใดก็ได้ของแผนการสร้างแอปพลิเคชันแล้วเพิ่มความคิดเห็น เมื่อเพิ่มความคิดเห็นแล้ว โปรดส่งการเปลี่ยนแปลงที่ต้องการให้ตรวจสอบ โดยเฉพาะอย่างยิ่งเกี่ยวกับการตั้งชื่อ, รหัสโปรเจ็กต์ Google Cloud, ภูมิภาค และอื่นๆ
เมื่อทุกอย่างดูเรียบร้อยแล้ว ให้สิทธิ์ Agent ดำเนินการตามแผนการสร้างแอปพลิเคชันต่อโดยคลิกปุ่ม Proceed
4. สร้างแอปพลิเคชัน
เมื่ออนุมัติแผนแล้ว Antigravity จะเริ่มสร้างไฟล์ที่จำเป็นสำหรับแอปพลิเคชัน ตั้งแต่สคริปต์การจัดสรรไปจนถึงโค้ดของแอปพลิเคชัน
Antigravity จะสร้างโฟลเดอร์และเริ่มสร้างไฟล์ที่จำเป็นสำหรับโปรเจ็กต์ หากตรวจสอบ Artifact คุณจะเห็นไฟล์หลายไฟล์ (ซอร์สโค้ด, ไฟล์สคริปต์ และอื่นๆ) ที่สร้างขึ้น

เมื่อทำงานเสร็จแล้ว ระบบจะแจ้งให้คุณทราบและสร้างเอกสาร Walkthrough ให้คุณดู ตัวอย่างเอาต์พุตแสดงอยู่ด้านล่าง

เอกสาร Walkthrough จะระบุสิ่งที่สร้างขึ้น สคริปต์ที่สร้างขึ้น และที่สำคัญที่สุดคือการยืนยันและการตรวจสอบที่ดำเนินการ เอาต์พุตบางส่วนของเอกสาร Walkthrough ที่รวมการยืนยันและการตรวจสอบแสดงอยู่ด้านล่าง
3. Verification & Validation
Test Suite Execution
We ran the automated test suite using pytest:
bash
.venv/bin/pytest tests/ -v
tests/test_local.py::test_health_check PASSED [ 9%]
tests/test_local.py::test_invalid_pubsub_envelope PASSED [ 18%]
tests/test_local.py::test_ignore_delete_events PASSED [ 27%]
tests/test_local.py::test_gcs_file_not_found PASSED [ 36%]
tests/test_local.py::test_successful_contract_processing PASSED [ 45%]
tests/test_local.py::test_successful_pdf_ocr_processing PASSED [ 54%]
tests/test_local.py::test_transient_bq_error_triggers_500_retry PASSED [ 63%]
tests/test_processor.py::test_tag_extraction_filters_stopwords PASSED [ 72%]
tests/test_processor.py::test_process_plain_text_document PASSED [ 81%]
tests/test_processor.py::test_process_binary_pdf_simulated_ocr PASSED [ 90%]
tests/test_processor.py::test_process_empty_text_document PASSED [100%]
============================== 11 passed in 2.37s ==============================
Standalone End-to-End Simulation
We executed the standalone simulation script:
bash
.venv/bin/python tests/test_local.py
Sample Output:
=================================================================
Running Serverless Document Processing Local Simulation
=================================================================
[1] Health Check: Status=200, Payload={'service': 'document-processor', 'status': 'healthy'}
[2] Simulating GCS Event: Object Finalized 'sample_contract.txt' in 'finance-bucket'
Response: Status=200, Body={'file_name': 'sample_contract.txt', 'ocr_status': 'EXTRACTED_TEXT', 'status': 'success', 'tags': ['provider', 'cloud', 'client', 'agreement', 'shall'], 'word_count': 181}
[3] Simulating GCS Event: Object Finalized 'sample_invoice.pdf' in 'invoices-bucket'
Response: Status=200, Body={'file_name': 'sample_invoice.pdf', 'ocr_status': 'SIMULATED_OCR', 'status': 'success', 'tags': ['invoice', 'finance', 'billing', 'acme', 'pdf'], 'word_count': 62}
=================================================================
BigQuery Streamed Table Inspection (Mock Table)
=================================================================
Row #1:
File: sample_contract.txt (gs://finance-bucket)
Status: EXTRACTED_TEXT
Words: 181
Tags: ['provider', 'cloud', 'client', 'agreement', 'shall']
Processed: 2026-09-08T02:50:37.436225+00:00
Row #2:
File: sample_invoice.pdf (gs://invoices-bucket)
Status: SIMULATED_OCR
Words: 62
Tags: ['invoice', 'finance', 'billing', 'acme', 'pdf']
Processed: 2026-09-08T02:50:37.641931+00:00
เราสามารถถาม Antigravity เกี่ยวกับวิธีทำให้แอปพลิเคชันนี้ใช้งานได้ใน Google Cloud ระบบจะแสดงรายละเอียดทั้งหมดตามที่ระบุไว้ด้านล่าง โดยสรุปคือ ระบบจะขอให้เราตรวจสอบว่าได้ติดตั้ง Google Cloud SDK แล้ว รวมถึงตั้งค่าโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google Cloud เมื่อดำเนินการเสร็จแล้ว ให้ทำดังนี้
ขั้นตอนที่ 1: เปิดใช้ GCP API ที่จำเป็น
เรียกใช้ setup_gcp.sh เพื่อเปิดใช้ Cloud Run, Pub/Sub, Cloud Storage, BigQuery และ Cloud Build API: ./scripts/setup_gcp.sh
ขั้นตอนที่ 2: ทำให้ไปป์ไลน์ทั้งหมดใช้งานได้
วิ่ง deploy.sh
export GCP_PROJECT="<YOUR_PROJECT_ID>"
export GCP_REGION="us-central1" # or your region
./scripts/deploy.sh
สิ่งที่สคริปต์นี้ทำในเบื้องหลังมีดังนี้
- สร้างอิมเมจคอนเทนเนอร์โดยใช้ Google Cloud Build และพุชอิมเมจไปยัง Container/Artifact Registry
- ทำให้บริการใช้งานได้ใน Cloud Run ด้วยตัวแปรสภาพแวดล้อมที่เหมาะสม (
GCP_PROJECT,BQ_DATASET_ID,BQ_TABLE_ID) - สร้าง Bucket การนำเข้า Cloud Storage (
gs://<PROJECT_ID>-document-ingest) - สร้างหัวข้อ Pub/Sub (
document-upload-events) และให้สิทธิ์ GCS ในการเผยแพร่หัวข้อดังกล่าว - กำหนดค่าการแจ้งเตือน GCS (
OBJECT_FINALIZE) ใน Bucket - สร้างการสมัครใช้บริการพุช Pub/Sub ที่กำหนดเป้าหมายเป็น URL ของบริการ Cloud Run พร้อมการถอยแบบลองใหม่โดยอัตโนมัติ
นอกจากนี้ ระบบยังแนะนำวิธีทดสอบไปป์ไลน์ด้วย
เรียกใช้ test_pipeline.sh: ./scripts/test_pipeline.sh
การดำเนินการนี้จะอัปโหลด samples/sample_contract.txt และ samples/sample_invoice.pdf ไปยัง Bucket, รอการประมวลผล และเรียกใช้การค้นหา SQL ของ BigQuery ที่แสดงข้อมูลเมตาที่แยกออกมา จำนวนคำ และแท็ก
5. ทำให้แอปพลิเคชันใช้งานได้
มาทำให้แอปพลิเคชันใช้งานได้ตามที่กล่าวไว้ เราสามารถขอให้ Antigravity เรียกใช้แอปพลิเคชันนี้ให้เราได้ แต่ก่อนที่จะดำเนินการดังกล่าว โปรดตรวจสอบว่ามี gcloud CLI และได้กำหนดค่า gcloud CLI สำหรับโปรเจ็กต์ Google Cloud แล้ว
เราสามารถป้อนพรอมต์ "Deploy the application for me" ให้กับ Antigravity ได้ ระบบจะแจ้งให้คุณให้สิทธิ์ต่างๆ แล้วดำเนินการไฟล์สคริปต์ต่อไป
ระบบจะเริ่มกระบวนการเป็นงานเบื้องหลังตามที่อธิบายไว้ในข้อความด้านล่าง
I have initiated the deployment of the document processing pipeline to Google Cloud project PROJECT_ID in REGION.The deployment process is currently executing in the background:
Building and publishing the container image via Cloud Build.
Configuring service account IAM permissions and deploying the Cloud Run service.
Provisioning the Cloud Storage bucket (gs://PROJECT_ID-document-ingest).
Setting up the Pub/Sub topic, GCS notification, and push subscription.
I will notify you as soon as the deployment finishes!
6. ยืนยันแอปพลิเคชัน
เมื่อทำให้ไปป์ไลน์ใช้งานได้แล้ว Antigravity จะดำเนินการต่อเพื่อยืนยันว่าแอปพลิเคชันทำงานได้จริง โดยจะถามเราว่าสามารถเรียกใช้ไฟล์ test_pipeline.sh ได้หรือไม่ เราสามารถให้สิทธิ์ได้
สุดท้ายระบบจะแจ้งให้เราทราบดังนี้
🚀 Deployment Successful & Verified on Google Cloud!
The application has been deployed to Google Cloud project PROJECT_ID in REGION and end-to-end event-driven processing has been verified.
นอกจากนี้ ระบบยังอัปเดต Artifact ของ Walkthrough เพื่อให้เราดูผลลัพธ์ได้ด้วย (รายการบางส่วนแสดงอยู่ด้านล่าง)
สรุปการทำให้ใช้งานได้
- โปรเจ็กต์ GCP: PROJECT_ID
- ภูมิภาค: REGION
- บริการ Cloud Run: document-processor
- ปลายทาง Cloud Run: SERVICE_URL
- Bucket ของ Cloud Storage: gs://PROJECT_ID-document-ingest
- หัวข้อ Pub/Sub: document-upload-events
- การสมัครใช้บริการพุช Pub/Sub: document-upload-events-push-sub
- เป้าหมาย BigQuery: PROJECT_ID.document_processing.document_metadata
การยืนยันไปป์ไลน์จริง
เราเรียกใช้ scripts/test_pipeline.sh กับสภาพแวดล้อม Google Cloud จริง
- อัปโหลด sample_contract.txt และ sample_invoice.pdf ไปยัง Bucket ของ Cloud Storage
- GCS สร้างเหตุการณ์ OBJECT_FINALIZE ไปยัง Pub/Sub
- Pub/Sub พุชซองจดหมายไปยังไมโครเซอร์วิส Cloud Run
- Cloud Run แยกข้อมูลเมตา ประมวลผล OCR ที่จำลองขึ้น และสตรีมระเบียนไปยัง BigQuery
เอาต์พุตการค้นหา BigQuery จริง
+------------------------------+------------+----------------+---------------------------------------------------+---------------------+
| file_name | word_count | ocr_status | tags | processed_at |
+------------------------------+------------+----------------+---------------------------------------------------+---------------------+
| test_invoice_1788840194.pdf | 62 | SIMULATED_OCR | ["invoice","finance","billing","acme","pdf"] | 2026-09-08 04:03:27 |
| test_contract_1788840194.txt | 181 | EXTRACTED_TEXT | ["provider","cloud","client","agreement","shall"] | 2026-09-08 04:03:22 |
+------------------------------+------------+----------------+---------------------------------------------------+---------------------+
คอมโพเนนต์ไปป์ไลน์ทั้งหมดทำงานอยู่ มีสถานะดี และได้รับการยืนยันในสภาพแวดล้อมจริง
ไม่บังคับ: การยืนยันด้วยตนเอง
แม้ว่า Antigravity จะยืนยันแอปพลิเคชันแล้ว แต่คุณก็ยังตรวจสอบด้วยตนเองในคอนโซล Google Cloud ได้ว่ามีการสร้างทรัพยากรทั้งหมดหรือไม่ หากต้องการ ให้ทำตามขั้นตอนต่อไปนี้
Cloud Storage
เป้าหมาย: ยืนยันว่า Bucket มีอยู่และตรวจสอบไฟล์ที่อัปโหลด
- ไปที่ Cloud Storage > Buckets
- ค้นหา Bucket ที่ชื่อ
PROJECT_ID-document-processing - คลิกชื่อ Bucket เพื่อเรียกดูไฟล์
- ยืนยัน: คุณควรเห็นไฟล์ที่อัปโหลด (เช่น
sample_contract.txt)
Pub/Sub
เป้าหมาย: ยืนยันว่าหัวข้อมีอยู่และมีการสมัครใช้บริการพุช
- ไปที่ Pub/Sub > หัวข้อ
- ค้นหา document-uploads-events
- คลิกรหัสหัวข้อ
- เลื่อนลงไปที่แท็บการสมัครใช้บริการ
- ยืนยัน: ตรวจสอบว่า doc-uploads-events-push-sub แสดงอยู่ในรายการ
Cloud Run
เป้าหมาย: ตรวจสอบสถานะและบันทึกของบริการ
- ไปที่ Cloud Run
- คลิกบริการ document-processor
- ยืนยัน:
- สถานะ: เครื่องหมายถูกสีเขียวแสดงว่าบริการทำงานอยู่
- บันทึก: คลิกแท็บบันทึก มองหารายการต่างๆ เช่น "Processing document: gs://..." และ "Successfully streamed metadata..."
BigQuery
เป้าหมาย: ตรวจสอบว่ามีการจัดเก็บข้อมูลจริง
- ไปที่ BigQuery > พื้นที่ทำงาน SQL
- ในแผง Explorer ให้ขยายชุดข้อมูล project > document_processing
- คลิกตาราง document_metadata
- คลิกแท็บการค้นหา แล้วดึงข้อมูลแถวทั้งหมดจากตารางผ่านคำสั่ง SELECT *
- ยืนยัน: คุณควรเห็นแถวที่มี file_name, process_at, tags และ word_count
7. สำรวจแอปพลิเคชัน
ตอนนี้คุณได้จัดสรรและเรียกใช้แอปพื้นฐานแล้ว ก่อนที่จะเจาะลึกเพื่อขยายแอปพลิเคชันนี้ต่อไป โปรดใช้เวลาสักครู่เพื่อสำรวจโค้ด คุณสามารถดู Artifact และระบบจะแสดงไฟล์โค้ดที่สร้างขึ้น
สรุปสั้นๆ ของไฟล์บางไฟล์ที่คุณอาจเห็นมีดังนี้
deploy.sh: สคริปต์หลักที่จัดสรรทรัพยากร Google Cloud ทั้งหมดและเปิดใช้ API ที่จำเป็นmain.py: จุดเริ่มต้นหลักของไปป์ไลน์ แอป Python นี้จะสร้างเว็บเซิร์ฟเวอร์ที่รับข้อความพุช Pub/Sub, ดาวน์โหลดไฟล์จาก GCS, "ประมวลผล" (จำลอง OCR) ไฟล์ และสตรีมข้อมูลเมตาไปยัง BigQueryDockerfile: กำหนดวิธีแพ็กเกจแอปเป็นอิมเมจคอนเทนเนอร์requirements.txt: แสดงรายการการอ้างอิง Python
นอกจากนี้ คุณยังอาจเห็นสคริปต์และไฟล์ข้อความอื่นๆ ที่จำเป็นสำหรับการทดสอบและการยืนยัน
8. ขยายแอปพลิเคชัน
ตอนนี้คุณมีแอปพลิเคชันพื้นฐานที่ทำงานได้แล้ว คุณสามารถทำซ้ำและขยายแอปพลิเคชันต่อไปได้ โดยใช้ไอเดียดังนี้
เพิ่มฟรอนท์เอนด์
สร้างอินเทอร์เฟซเว็บอย่างง่ายเพื่อดูเอกสารที่ประมวลผลแล้ว
ลองใช้พรอมต์ต่อไปนี้ 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
ผสานรวมกับ AI/ML จริง
ใช้โมเดล Gemini เพื่อแยก วิเคราะห์ และแปลแทนการประมวลผล OCR ที่จำลองขึ้น
- แทนที่ตรรกะ OCR ปลอม ส่งรูปภาพ/PDF ไปยัง Gemini เพื่อแยกข้อความและข้อมูลจริง วิเคราะห์ข้อความที่แยกออกมาเพื่อจัดประเภทประเภทเอกสาร (ใบแจ้งหนี้, สัญญา, ประวัติย่อ) หรือแยกเอนทิตี (วันที่, ชื่อ, สถานที่)
- ตรวจหาภาษาของเอกสารโดยอัตโนมัติและแปลเป็นภาษาอังกฤษก่อนจัดเก็บ คุณยังใช้ภาษาอื่นๆ ได้ด้วย
เพิ่มประสิทธิภาพพื้นที่เก็บข้อมูลและการวิเคราะห์
คุณสามารถกำหนดค่ากฎวงจรการใช้งานใน Bucket เพื่อย้ายไฟล์เก่าไปยังพื้นที่เก็บข้อมูล "Coldline" หรือ "Archive" เพื่อประหยัดค่าใช้จ่าย
ความเสถียรและความปลอดภัย
คุณสามารถทำให้แอปมีความเสถียรและปลอดภัยมากขึ้นได้ เช่น
- คิวข้อความที่ส่งไม่ได้ (DLQ): อัปเดตการสมัครใช้บริการ Pub/Sub เพื่อจัดการกับความล้มเหลว หากบริการ Cloud Run ประมวลผลไฟล์ไม่สำเร็จ 5 ครั้ง ให้ส่งข้อความไปยังหัวข้อ/Bucket "ข้อความที่ส่งไม่ได้" แยกต่างหากเพื่อให้เจ้าหน้าที่ตรวจสอบ
- Secret Manager: หากแอปของคุณต้องใช้คีย์ API หรือการกำหนดค่าที่ละเอียดอ่อน ให้จัดเก็บคีย์ API หรือการกำหนดค่าดังกล่าวไว้ใน Secret Manager และเข้าถึงคีย์ API หรือการกำหนดค่าดังกล่าวอย่างปลอดภัยจาก Cloud Run แทนที่จะฮาร์ดโค้ดสตริง
- Eventarc: อัปเกรดจาก Pub/Sub โดยตรงเป็น Eventarc เพื่อการกำหนดเส้นทางเหตุการณ์ที่ยืดหยุ่นมากขึ้น ซึ่งช่วยให้คุณทริกเกอร์ตามบันทึกการตรวจสอบที่ซับซ้อนหรือเหตุการณ์บริการ GCP อื่นๆ ได้
แน่นอนว่าคุณสามารถคิดไอเดียของคุณเองและใช้ Antigravity เพื่อช่วยคุณสร้างแอปพลิเคชันได้
9. บทสรุป
คุณได้สร้างไปป์ไลน์เอกสารที่ทำงานด้วยระบบ AI แบบ Serverless ที่รองรับการปรับขนาดได้สำเร็จภายในไม่กี่นาทีโดยใช้ Google Antigravity โดยคุณได้เรียนรู้วิธีต่อไปนี้
- วางแผนสถาปัตยกรรมด้วย AI
- สั่งการและจัดการ Antigravity ขณะที่ระบบสร้างแอปพลิเคชันตั้งแต่การสร้างโค้ดไปจนถึงการทำให้ใช้งานได้และการตรวจสอบ
- ยืนยันการทำให้ใช้งานได้และการตรวจสอบด้วย Walkthrough
เอกสารอ้างอิง
- เว็บไซต์อย่างเป็นทางการ : https://antigravity.google/
- เอกสารประกอบ: https://antigravity.google/docs
- กรณีการใช้งาน : https://antigravity.google/use-cases
- ดาวน์โหลด : https://antigravity.google/download