สร้างและติดตั้งใช้งานใน Google Cloud ด้วย Antigravity

1. บทนำ

fca14bb9f4bb74f4.png

ใน 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 คำแนะนำแบบทีละขั้นของ Antigravity

สิ่งที่คุณต้องมี

  • ติดตั้ง Google Antigravity แล้ว หากต้องการความช่วยเหลือในการติดตั้ง Antigravity และทำความเข้าใจพื้นฐาน เราขอแนะนำให้ทำ Codelab เริ่มต้นใช้งาน Google Antigravity ให้เสร็จสมบูรณ์
  • โปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงิน
  • gcloud CLI ติดตั้งและตรวจสอบสิทธิ์แล้ว

2. ภาพรวมของแอป

ก่อนที่จะเริ่มออกแบบและใช้แอปพลิเคชันด้วย Antigravity เรามาสรุปแอปพลิเคชันที่เราต้องการสร้างกันก่อน

เราต้องการสร้างไปป์ไลน์เอกสารแบบ Serverless และขับเคลื่อนด้วยเหตุการณ์ ซึ่งจะนำเข้าไฟล์จาก Google Cloud Storage (GCS) ประมวลผลไฟล์เหล่านั้นโดยใช้ Cloud Run และ Gemini แล้วสตรีมข้อมูลเมตาของไฟล์ไปยัง BigQuery

แผนภาพสถาปัตยกรรมระดับสูงสำหรับแอปพลิเคชันนี้อาจมีลักษณะดังนี้

3bd519cfab38258d.png

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

3. วางแผนสถาปัตยกรรม

เราพร้อมที่จะเริ่มวางแผนรายละเอียดสถาปัตยกรรมด้วย Antigravity แล้ว

Antigravity เก่งในการวางแผนระบบที่ซับซ้อน เราสามารถเริ่มจากการกำหนดสถาปัตยกรรมระดับสูงแทนที่จะเขียนโค้ดทันที

ขั้นแรก ตรวจสอบว่าคุณอยู่ใน Agent Manager หากเพิ่งเปิด Antigravity คุณสามารถคลิกปุ่ม Open Agent Manager ตรงกลาง หรือคุณควรเห็นปุ่ม Open Agent Manager เดียวกันที่มุมขวาบน

ขั้นแรก ให้สร้างโฟลเดอร์สำหรับแอปพลิเคชัน เช่น document-pipeline แล้วเพิ่มโฟลเดอร์ดังกล่าวเป็นพื้นที่ทำงานใน Agent Manager ดังนี้

6df2bebcee5608b7.png

ใน Agent Manager ให้เริ่มการสนทนาในพื้นที่ทำงาน document-pipeline และตรวจสอบว่าได้เปิดใช้โหมดวางแผนแล้วด้วย

b7d18b5ec36004cf.png

ที่มุมขวาบน ให้คลิกไอคอนการตั้งค่า ⚙️ แล้วตั้งค่า Review Policy ในส่วน Artifact เป็น Asks for Review และ Terminal Command Auto Execution ในส่วน Terminal เป็น Request Review การดำเนินการนี้จะช่วยให้คุณได้ตรวจสอบและอนุมัติแผนในทุกขั้นตอนก่อนที่ Agent จะดำเนินการ

พรอมต์

ตอนนี้เราพร้อมที่จะให้พรอมต์แรกแก่ 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 จะวิเคราะห์คำขอของคุณและสร้างรายการงาน และแผนการใช้งาน

แผนนี้จะสรุปข้อมูลต่อไปนี้

  • โครงสร้างพื้นฐาน: Bucket ของ GCS, หัวข้อ Pub/Sub, ชุดข้อมูล BigQuery
  • ตัวประมวลผล: แอป Python/Flask, Dockerfile, ข้อกำหนด
  • การผสานรวม: การแจ้งเตือน GCS → Pub/Sub → Cloud Run

คุณควรเห็นผลลัพธ์ที่คล้ายกับตัวอย่างต่อไปนี้

ada19341c490a570.png

คลิกปุ่ม Open ข้างแถว Task ซึ่งจะแสดงชุดงานที่ Antigravity สร้างขึ้น โดย Agent จะดำเนินการทีละงานดังนี้

19675c55a71b373.png

ขั้นตอนถัดไปคือการตรวจสอบแผนการใช้งานและให้สิทธิ์ Agent ดำเนินการต่อ

คลิกแผนการใช้งานเพื่อดูรายละเอียด อ่านรายละเอียดอย่างละเอียด นี่เป็นโอกาสของคุณที่จะแสดงความคิดเห็นเกี่ยวกับการใช้งาน คุณสามารถคลิกส่วนใดก็ได้ของแผนการใช้งานและเพิ่มความคิดเห็น เมื่อเพิ่มความคิดเห็นแล้ว ให้ส่งการเปลี่ยนแปลงที่ต้องการให้ตรวจสอบ โดยเฉพาะอย่างยิ่งเกี่ยวกับการตั้งชื่อ, รหัสโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google, ภูมิภาค และอื่นๆ

เมื่อทุกอย่างดูเรียบร้อยแล้ว ให้สิทธิ์ Agent ดำเนินการตามแผนการใช้งานต่อโดยคลิกปุ่ม Proceed

4. สร้างแอปพลิเคชัน

เมื่อแผนได้รับการอนุมัติ Antigravity จะเริ่มสร้างไฟล์ที่จำเป็นสำหรับแอปพลิเคชัน ตั้งแต่สคริปต์การจัดสรรไปจนถึงโค้ดของแอปพลิเคชัน

Antigravity จะสร้างโฟลเดอร์และเริ่มสร้างไฟล์ที่จำเป็นสำหรับโปรเจ็กต์ ในการเรียกใช้ตัวอย่าง เราเห็นสิ่งต่อไปนี้

4d98413e3bd17148.png

ระบบจะสร้างไฟล์สคริปต์ของ Shell ชื่อ setup.sh หรือชื่อที่คล้ายกัน ซึ่งจะทำให้การสร้างทรัพยากรเป็นไปโดยอัตโนมัติ โดยจะจัดการสิ่งต่อไปนี้

  1. การเปิดใช้ API (run, pubsub, bigquery, storage)
  2. การสร้าง Bucket ของ Google Cloud Storage (doc-ingestion-{project-id})
  3. การสร้างชุดข้อมูลและตาราง BigQuery (pipeline_data.processed_docs)
  4. การกำหนดค่าหัวข้อและการแจ้งเตือน Pub/Sub

Agent ควรสร้างแอปพลิเคชัน Python (main.py) ที่รอรับข้อความพุช Pub/Sub โดยจะใช้ตรรกะ OCR ที่จำลองขึ้น สร้างจำนวนคำและแท็กแบบสุ่ม แล้วบันทึกข้อมูลดังกล่าวลงใน BigQuery

เมื่อสร้างสคริปต์การตั้งค่านี้แล้ว Antigravity ควรแจ้งให้คุณเรียกใช้สคริปต์ในนามของคุณ หน้าจอตัวอย่างแสดงอยู่ด้านล่าง

44395ab66413a64f.png

คลิก Accept ตามต้องการ

สคริปต์การจัดสรรจะสร้างทรัพยากรและตรวจสอบว่ามีการสร้างทรัพยากรแล้ว หากตรวจสอบสำเร็จ สคริปต์จะดำเนินการสร้างคอนเทนเนอร์และทำให้คอนเทนเนอร์ใช้งานได้เป็นบริการ (ใน main.py) ใน Cloud Run เอาต์พุตตัวอย่างแสดงอยู่ด้านล่าง

e0e625e218e7fe46.png

การทำให้บริการใช้งานได้จะรวมถึงการตั้งค่าการสมัครใช้บริการ Pub/Sub และการผสานรวมอื่นๆ ที่จำเป็นเพื่อให้ไปป์ไลน์นี้ทำงานได้ การดำเนินการทั้งหมดนี้จะใช้เวลาเพียงไม่กี่นาที

ในระหว่างนี้ คุณสามารถเปลี่ยนไปที่ Inbox (จากมุมซ้ายบน) เพื่อตรวจสอบงาน Pending ที่รอการป้อนข้อมูลจากคุณ

ddd2f49d02fad987.png

วิธีนี้เป็นวิธีที่ดีในการตรวจสอบว่าคุณอนุมัติงานแล้วเมื่อ Agent ขอความคิดเห็นจากคุณ

5. ยืนยันแอปพลิเคชัน

เมื่อทำให้ไปป์ไลน์ใช้งานได้แล้ว Antigravity จะดำเนินการต่อเพื่อยืนยันว่าแอปพลิเคชันทำงานได้จริง Antigravity จะทำให้การดำเนินการนี้เป็นไปโดยอัตโนมัติด้วยขั้นตอนการยืนยันในรายการงาน หน้าจอตัวอย่างแสดงอยู่ด้านล่าง

b8758b77880cc4d9.png

ระบบจะสร้าง Artifact ทดสอบ (test.txt) และต้องการอัปโหลดไปยัง Bucket ของ Google Cloud Storage คลิก Accept เพื่อดำเนินการต่อ

หากต้องการทำการทดสอบเพิ่มเติมด้วยตนเอง คุณสามารถลองอัปโหลดไฟล์ตัวอย่างไปยัง Bucket ของ Cloud Storage ได้ดังนี้

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

ตรวจสอบผลลัพธ์ใน BigQuery

กระบวนการยืนยันจะรวมถึงการตรวจสอบว่าระบบได้บันทึกข้อมูลลงใน BigQuery แล้ว

c0f08fedf671e9bd.png

โปรดสังเกตข้อความค้นหา SQL ที่ใช้เพื่อตรวจสอบเอกสาร

เมื่อการยืนยันเสร็จสิ้น คุณควรเห็นว่ารายการงานเสร็จสมบูรณ์แล้ว

b55ad48a87f95eca.png

ไม่บังคับ: การยืนยันด้วยตนเอง

แม้ว่า Antigravity จะยืนยันแอปพลิเคชันแล้ว แต่คุณก็ยังตรวจสอบด้วยตนเองในคอนโซล Google Cloud ได้ว่ามีการสร้างทรัพยากรทั้งหมดแล้วหรือไม่ หากต้องการ ให้ทำตามขั้นตอนต่อไปนี้

Cloud Storage

เป้าหมาย: ยืนยันว่า Bucket มีอยู่และตรวจสอบไฟล์ที่อัปโหลด

  1. ไปที่ Cloud Storage > Buckets
  2. ค้นหา Bucket ชื่อ [PROJECT_ID]-doc-uploads
  3. คลิกชื่อ Bucket เพื่อเรียกดูไฟล์
  4. ยืนยัน: คุณควรเห็นไฟล์ที่อัปโหลด (เช่น test.txt)

Pub/Sub

เป้าหมาย: ยืนยันว่าหัวข้อมีอยู่และมีการสมัครใช้บริการแบบพุช

  1. ไปที่ Pub/Sub > หัวข้อ
  2. ค้นหาหัวข้อการประมวลผลเอกสาร
  3. คลิกรหัสหัวข้อ
  4. เลื่อนลงไปที่แท็บการสมัครใช้บริการ
  5. ยืนยัน: ตรวจสอบว่า doc-processing-sub แสดงอยู่ในรายการที่มีประเภทการนำส่ง "พุช"

Cloud Run

เป้าหมาย: ตรวจสอบสถานะและบันทึกของบริการ

  1. ไปที่ Cloud Run
  2. คลิกบริการ doc-processor
  3. ยืนยันสิ่งต่อไปนี้
  4. สถานะ: เครื่องหมายถูกสีเขียวแสดงว่าบริการทำงานอยู่
  5. บันทึก: คลิกแท็บบันทึก มองหารายการต่างๆ เช่น "กำลังประมวลผลไฟล์: gs://..." และ "ประมวลผล...สำเร็จแล้ว"

BigQuery

เป้าหมาย: ตรวจสอบว่ามีการจัดเก็บข้อมูลจริง

  1. ไปที่ BigQuery > พื้นที่ทำงาน SQL
  2. ในบานหน้าต่าง Explorer ให้ขยายโปรเจ็กต์ > ชุดข้อมูล pipeline_data
  3. คลิกตาราง processed_docs
  4. คลิกแท็บแสดงตัวอย่าง
  5. ยืนยัน: คุณควรเห็นแถวที่มีชื่อไฟล์ วันที่อัปโหลด แท็ก และจำนวนคำ

คำแนะนำแบบทีละขั้น

ขั้นตอนสุดท้ายคือ Antigravity จะสร้าง Artifact คำแนะนำแบบทีละขั้น Artifact นี้จะสรุปข้อมูลต่อไปนี้

  • การเปลี่ยนแปลงที่ทำ
  • คำสั่งการยืนยันที่เรียกใช้
  • ผลลัพธ์จริง (เอาต์พุตการค้นหาที่แสดงข้อมูลเมตาที่ Gemini แยกออกมา)

คุณสามารถคลิก Open เพื่อดูผลลัพธ์ เอาต์พุตตัวอย่างแสดงอยู่ด้านล่าง

47ecf561d0252924.png

6. สำรวจแอปพลิเคชัน

ตอนนี้คุณได้จัดสรรและเรียกใช้แอปพื้นฐานแล้ว โปรดใช้เวลาสักครู่เพื่อสำรวจโค้ดก่อนที่จะเจาะลึกเพื่อขยายแอปพลิเคชันนี้เพิ่มเติม คุณสามารถเปลี่ยนไปใช้ตัวแก้ไขได้ด้วยปุ่ม Open Editor ที่มุมขวาบน

ต่อไปนี้เป็นข้อมูลสรุปสั้นๆ เกี่ยวกับไฟล์ที่คุณอาจเห็น

  1. setup.sh: สคริปต์หลักที่จัดสรรทรัพยากร Google Cloud ทั้งหมดและเปิดใช้ API ที่จำเป็น
  2. main.py: จุดแรกเข้าหลักของไปป์ไลน์ แอป Python นี้จะสร้างเว็บเซิร์ฟเวอร์ที่รับข้อความพุช Pub/Sub ดาวน์โหลดไฟล์จาก GCS "ประมวลผล" (จำลอง OCR) ไฟล์ดังกล่าว และสตรีมข้อมูลเมตาไปยัง 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

ผสานรวมกับ AI/ML จริง

ใช้โมเดล Gemini เพื่อแยก วิเคราะห์ และแปลแทนการประมวลผล OCR ที่จำลองขึ้น

  1. แทนที่ตรรกะ OCR ดัมมี ส่งรูปภาพ/PDF ไปยัง Gemini เพื่อแยกข้อความและข้อมูลจริง วิเคราะห์ข้อความที่แยกออกมาเพื่อจัดประเภทประเภทเอกสาร (ใบแจ้งหนี้ สัญญา ประวัติย่อ) หรือแยกเอนทิตี (วันที่ ชื่อ สถานที่)
  2. ตรวจหาภาษาของเอกสารโดยอัตโนมัติและแปลเป็นภาษาอังกฤษก่อนจัดเก็บ คุณยังใช้ภาษาอื่นๆ ได้ด้วย

เพิ่มประสิทธิภาพพื้นที่เก็บข้อมูลและการวิเคราะห์

คุณสามารถกำหนดค่ากฎวงจรการใช้งานใน Bucket เพื่อย้ายไฟล์เก่าไปยังพื้นที่เก็บข้อมูล "Coldline" หรือ "Archive" เพื่อประหยัดค่าใช้จ่าย

ความทนทานและความปลอดภัย

คุณสามารถทำให้แอปมีความทนทานและปลอดภัยมากขึ้นได้ เช่น

  1. คิวข้อความที่ส่งไม่ได้ (DLQ): อัปเดตการสมัครใช้บริการ Pub/Sub เพื่อจัดการกับความล้มเหลว หากบริการ Cloud Run ประมวลผลไฟล์ไม่สำเร็จ 5 ครั้ง ให้ส่งข้อความไปยังหัวข้อ/Bucket "ข้อความที่ส่งไม่ได้" แยกต่างหากเพื่อให้เจ้าหน้าที่ตรวจสอบ
  2. Secret Manager: หากแอปของคุณต้องใช้คีย์ API หรือการกำหนดค่าที่ละเอียดอ่อน ให้จัดเก็บไว้ใน Secret Manager และเข้าถึงอย่างปลอดภัยจาก Cloud Run แทนที่จะฮาร์ดโค้ดสตริง
  3. Eventarc: อัปเกรดจาก Pub/Sub โดยตรงเป็น Eventarc เพื่อการกำหนดเส้นทางเหตุการณ์ที่ยืดหยุ่นมากขึ้น ซึ่งช่วยให้คุณทริกเกอร์ตามบันทึกการตรวจสอบที่ซับซ้อนหรือเหตุการณ์บริการ GCP อื่นๆ ได้

แน่นอนว่าคุณสามารถคิดไอเดียของคุณเองและใช้ Antigravity เพื่อช่วยคุณนำไอเดียเหล่านั้นไปใช้ได้

8. บทสรุป

คุณสร้างไปป์ไลน์เอกสารที่ปรับขนาดได้ แบบ Serverless และทำงานด้วยระบบ AI ได้สำเร็จภายในไม่กี่นาทีโดยใช้ Google Antigravity โดยคุณได้เรียนรู้วิธีการต่อไปนี้

  • วางแผนสถาปัตยกรรมด้วย AI
  • สั่งการและจัดการ Antigravity ขณะที่สร้างแอปพลิเคชันตั้งแต่การสร้างโค้ดไปจนถึงการทำให้ใช้งานได้และการตรวจสอบ
  • ยืนยันการทำให้ใช้งานได้และการตรวจสอบด้วยคำแนะนำแบบทีละขั้น

เอกสารอ้างอิง