1. Giới thiệu

Trong lớp học lập trình này, bạn sẽ tìm hiểu cách sử dụng Google Antigravity (gọi tắt là Antigravity trong phần còn lại của tài liệu) để thiết kế, tạo và triển khai một ứng dụng phi máy chủ lên Google Cloud. Chúng ta sẽ xây dựng một quy trình xử lý tài liệu dựa trên sự kiện và không cần máy chủ, quy trình này sẽ nhập tệp từ Google Cloud Storage (GCS), xử lý tệp bằng Cloud Run và Gemini, đồng thời truyền siêu dữ liệu của tệp vào BigQuery.
Kiến thức bạn sẽ học được
- Cách sử dụng Antigravity để lập kế hoạch và thiết kế kiến trúc.
- Tạo cơ sở hạ tầng dưới dạng mã (tập lệnh shell) bằng một tác nhân AI.
- Tạo và triển khai một dịch vụ Cloud Run dựa trên Python.
- Tích hợp Gemini trên Vertex AI để phân tích tài liệu đa phương thức.
- Xác minh quy trình hai đầu bằng cấu phần phần mềm Hướng dẫn của Antigravity.
Bạn cần có
- Đã cài đặt Google Antigravity. Nếu cần trợ giúp để cài đặt Antigravity và hiểu rõ những kiến thức cơ bản, bạn nên hoàn thành lớp học lập trình: Bắt đầu sử dụng Google Antigravity.
- Một Dự án trên Google Cloud đã bật tính năng thanh toán.
- Đã cài đặt và xác thực gcloud CLI.
2. Tổng quan về ứng dụng
Trước khi bắt tay vào thiết kế và triển khai ứng dụng bằng Antigravity, trước tiên, hãy phác thảo ứng dụng mà chúng ta muốn tự xây dựng.
Chúng tôi muốn xây dựng một quy trình xử lý tài liệu dựa trên sự kiện và không cần máy chủ, có thể nhận tệp từ Google Cloud Storage (GCS), xử lý tệp bằng Cloud Run và Gemini, đồng thời truyền siêu dữ liệu của tệp vào BigQuery.
Sơ đồ kiến trúc cấp cao cho ứng dụng này có thể trông như sau:

Bạn không cần phải cung cấp thông tin chính xác. Antigravity có thể giúp chúng ta tìm ra thông tin chi tiết về cấu trúc trong quá trình thực hiện. Tuy nhiên, bạn nên có ý tưởng về những gì mình muốn xây dựng. Bạn càng cung cấp nhiều thông tin chi tiết thì bạn sẽ nhận được kết quả càng tốt từ Antigravity về mặt cấu trúc và mã.
3. Lập kế hoạch cho cấu trúc
Chúng ta đã sẵn sàng bắt đầu lên kế hoạch chi tiết về kiến trúc với Antigravity!
Antigravity có khả năng lập kế hoạch cho các hệ thống phức tạp. Thay vì viết mã ngay lập tức, chúng ta có thể bắt đầu bằng cách xác định cấu trúc cấp cao.
Trước tiên, hãy đảm bảo rằng bạn đang ở trong Agent Manager. Nếu vừa mở Antigravity, bạn có thể nhấp vào nút Open Agent Manager ở giữa hoặc bạn cũng sẽ thấy nút Open Agent Manager tương tự ở góc trên cùng bên phải.
Trong Agent Manager, bạn có thể mở một không gian làm việc hoặc chỉ cần sử dụng Playground, một không gian làm việc độc lập để tạo mẫu và thử nghiệm nhanh. Hãy bắt đầu với Sân chơi.
Nhấp vào nút + để bắt đầu một cuộc trò chuyện mới trong Sân chơi:

Thao tác này sẽ mở ra một giao diện nơi bạn có thể cung cấp câu lệnh như minh hoạ bên dưới:

Ở góc trên cùng bên phải, hãy nhấp vào biểu tượng cài đặt ⚙️ rồi đặt Review Policy trong mục Artifact và Terminal Command Auto Execution trong mục Terminal thành Request Review. Điều này sẽ đảm bảo rằng ở mỗi bước, bạn sẽ xem xét và phê duyệt kế hoạch trước khi nhân viên hỗ trợ thực hiện.
Câu lệnh
Giờ đây, chúng ta đã sẵn sàng đưa ra câu lệnh đầu tiên cho Antigravity.
Trước tiên, hãy đảm bảo Antigravity đang ở chế độ Planning và đối với mô hình, hãy chọn mô hình Gemini Pro (High) (bạn có thể thử nghiệm với các mô hình khác).
Nhập câu lệnh sau rồi nhấp vào nút gửi:
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.
Danh sách việc cần làm và kế hoạch triển khai
Antigravity sẽ phân tích yêu cầu của bạn và tạo một danh sách Việc cần làm và Kế hoạch triển khai.
Kế hoạch này nêu rõ:
- Cơ sở hạ tầng: Nhóm GCS, Chủ đề Pub/Sub, Tập dữ liệu BigQuery.
- Bộ xử lý: Ứng dụng Python/Flask, Dockerfile, Yêu cầu.
- Tích hợp: Thông báo của GCS → Pub/Sub → Cloud Run.
Bạn sẽ thấy nội dung tương tự như sau:

Nhấp vào nút Open bên cạnh hàng Task. Thao tác này sẽ cho bạn thấy một nhóm các nhiệm vụ do Antigravity tạo. Nhân viên hỗ trợ sẽ xem xét từng yêu cầu một:

Bước tiếp theo là xem xét kế hoạch triển khai và cấp quyền cho nhân viên hỗ trợ để tiếp tục.
Nhấp vào kế hoạch triển khai để xem thông tin chi tiết. Hãy đọc kỹ. Đây là cơ hội để bạn đưa ra ý kiến phản hồi về việc triển khai. Bạn có thể nhấp vào bất kỳ phần nào trong kế hoạch triển khai và thêm nhận xét. Sau khi thêm một số nhận xét, hãy nhớ gửi mọi thay đổi mà bạn muốn xem xét, đặc biệt là về việc đặt tên, mã dự án trên Google Cloud, khu vực, v.v.
Sau khi kiểm tra và thấy mọi thứ đều ổn, hãy nhấp vào nút Proceed để cấp cho nhân viên hỗ trợ quyền tiếp tục thực hiện kế hoạch triển khai.
4. Tạo ứng dụng
Sau khi kế hoạch được phê duyệt, Antigravity sẽ bắt đầu tạo các tệp cần thiết cho ứng dụng, từ tập lệnh cung cấp đến mã ứng dụng.
Antigravity sẽ tạo một thư mục và bắt đầu tạo các tệp cần thiết cho dự án. Trong lần chạy mẫu, chúng tôi thấy những điều sau:

Một tệp tập lệnh shell setup.sh hoặc một tệp tập lệnh shell có tên tương tự sẽ được tạo để tự động hoá quá trình tạo tài nguyên. Thư mục này xử lý:
- Bật các API (
run,pubsub,bigquery,storage). - Tạo bộ chứa Google Cloud Storage (
doc-ingestion-{project-id}). - Tạo tập dữ liệu và bảng BigQuery (
pipeline_data.processed_docs). - Định cấu hình chủ đề và thông báo Pub/Sub.
Nhân viên hỗ trợ sẽ tạo một ứng dụng Python (main.py) để theo dõi các thông báo đẩy Pub/Sub. Ứng dụng này sử dụng logic OCR mô phỏng, tạo số lượng từ và thẻ ngẫu nhiên, đồng thời duy trì số lượng từ và thẻ đó trong BigQuery.
Sau khi tập lệnh thiết lập này được tạo, Antigravity sẽ nhắc bạn thực thi tập lệnh thay cho bạn. Dưới đây là một màn hình mẫu:

Hãy nhấp vào Accept nếu cần.
Tập lệnh cung cấp sẽ tạo các tài nguyên và xác thực rằng các tài nguyên đó đã được tạo. Nếu kiểm tra thành công, hệ thống sẽ tiếp tục tạo vùng chứa và triển khai vùng chứa đó dưới dạng một dịch vụ (trong main.py) trong Cloud Run. Dưới đây là một ví dụ về kết quả đầu ra:

Trong quá trình triển khai dịch vụ, dịch vụ này cũng sẽ thiết lập các gói thuê bao Pub/Sub và các thành phần kết nối khác cần thiết để quy trình này hoạt động. Tất cả các bước này sẽ mất vài phút.
Trong thời gian chờ đợi, bạn có thể chuyển sang biểu tượng Inbox (ở góc trên cùng bên trái), kiểm tra các việc cần làm Pending đang chờ bạn nhập thông tin:

Đây là một cách hay để đảm bảo rằng bạn đang phê duyệt các tác vụ khi trợ lý tìm kiếm ý kiến phản hồi của bạn.
5. Xác minh ứng dụng
Sau khi triển khai quy trình, Antigravity sẽ tiến hành xác minh rằng ứng dụng thực sự hoạt động. Antigravity tự động hoá quy trình này bằng các bước xác minh trong danh sách việc cần làm. Dưới đây là một màn hình mẫu:

Nó tạo một cấu phần phần mềm kiểm thử (test.txt) và muốn tải cấu phần phần mềm đó lên bộ chứa Google Cloud Storage. Nhấp vào Accept để tiếp tục.
Nếu muốn tự chạy các kiểm thử khác, bạn có thể tham khảo bước xác thực của Antigravity, trong đó bước này sử dụng tiện ích gsutil để tải một tệp mẫu lên bộ chứa Cloud Storage. Dưới đây là lệnh mẫu:
gsutil cp <some-test-doc>.txt gs://<bucket-name>/
Kiểm tra kết quả trong BigQuery
Trong quá trình xác minh, hệ thống cũng sẽ kiểm tra để đảm bảo rằng dữ liệu được duy trì trong BigQuery.

Lưu ý truy vấn SQL mà nó dùng để kiểm tra các tài liệu.
Sau khi xác minh xong, bạn sẽ thấy danh sách việc cần làm đã hoàn tất:

Không bắt buộc: Xác minh thủ công
Mặc dù Antigravity đã xác minh ứng dụng, nhưng bạn cũng có thể kiểm tra theo cách thủ công trong bảng điều khiển Google Cloud để đảm bảo rằng tất cả tài nguyên đều được tạo (nếu muốn) bằng cách làm theo các bước sau.
Cloud Storage
Mục tiêu: Xác minh rằng vùng chứa tồn tại và kiểm tra các tệp đã tải lên.
- Chuyển đến phần Cloud Storage > Bộ chứa.
- Tìm vùng chứa có tên
[PROJECT_ID]-doc-uploads. - Nhấp vào tên nhóm để duyệt xem các tệp.
- Xác minh: Bạn sẽ thấy các tệp đã tải lên (ví dụ:
test.txt).
Pub/Sub
Mục tiêu: Xác nhận rằng chủ đề tồn tại và có một gói thuê bao nhận thông báo đẩy.
- Chuyển đến Pub/Sub > Topics (Pub/Sub > Chủ đề).
- Tìm doc-processing-topic.
- Nhấp vào mã nhận dạng chủ đề.
- Di chuyển xuống thẻ Kênh đăng ký.
- Xác minh: Đảm bảo doc-processing-sub được liệt kê với loại phân phối "Push".
Cloud Run
Mục tiêu: Kiểm tra trạng thái dịch vụ và nhật ký.
- Chuyển đến Cloud Run.
- Nhấp vào dịch vụ doc-processor.
- Xác minh:
- Trạng thái: Dấu kiểm màu xanh lục cho biết dịch vụ đang hoạt động.
- Nhật ký: Nhấp vào thẻ Nhật ký. Tìm các mục như "Processing file: gs://..." (Đang xử lý tệp: gs://...) và "Successfully processed..." (Đã xử lý thành công...).
BigQuery
Mục tiêu: Xác thực rằng dữ liệu thực sự được lưu trữ.
- Chuyển đến BigQuery > Không gian làm việc SQL.
- Trong ngăn Explorer (Trình khám phá), hãy mở rộng project > tập dữ liệu pipeline_data.
- Nhấp vào bảng processed_docs.
- Nhấp vào thẻ Xem trước.
- Xác minh: Bạn sẽ thấy các hàng chứa filename, upload_date, tags và word_count.
Hướng dẫn từng bước
Trong bước cuối cùng, Antigravity sẽ tạo một cấu phần phần mềm hướng dẫn. Cấu phần phần mềm này tóm tắt:
- Đã thực hiện các thay đổi.
- Các lệnh xác minh sẽ chạy.
- Kết quả thực tế (đầu ra của truy vấn cho thấy siêu dữ liệu do Gemini trích xuất).
Bạn có thể nhấp vào biểu tượng Open để xem. Dưới đây là một ví dụ về kết quả đầu ra:

6. Khám phá ứng dụng
Đến đây, bạn đã cung cấp và chạy ứng dụng cơ bản. Trước khi đi sâu vào việc mở rộng ứng dụng này, hãy dành chút thời gian để khám phá mã. Bạn có thể chuyển sang trình chỉnh sửa bằng nút Open Editor ở góc trên cùng bên phải.
Sau đây là nội dung tóm tắt ngắn gọn về những tệp bạn có thể thấy:
setup.sh: Tập lệnh chính cung cấp tất cả tài nguyên trên Google Cloud và bật các API bắt buộc.main.py: Điểm truy cập chính của quy trình. Ứng dụng Python này tạo một máy chủ web nhận thông báo đẩy Pub/Sub, tải tệp xuống từ GCS, "xử lý" (mô phỏng OCR) tệp đó và truyền trực tuyến siêu dữ liệu đến BigQuery.Dockerfile: Xác định cách đóng gói ứng dụng vào một hình ảnh vùng chứa.requirements.txt: Liệt kê các phần phụ thuộc của Python.
Bạn cũng có thể thấy các tập lệnh và tệp văn bản khác cần thiết cho việc kiểm thử và xác minh.
Tại thời điểm này, bạn cũng có thể muốn chuyển từ Playground sang một không gian làm việc/thư mục chuyên dụng. Bạn có thể làm việc này bằng cách nhấp vào nút có liên quan ở góc trên cùng bên phải:

Sau khi bạn chọn một thư mục, tất cả mã sẽ chuyển sang thư mục đó và một không gian làm việc mới sẽ được tạo cùng với thư mục và nhật ký trò chuyện.
7. Mở rộng ứng dụng
Giờ đây, khi đã có một ứng dụng cơ bản hoạt động, bạn có thể tiếp tục lặp lại và mở rộng ứng dụng. Sau đây là một số ý tưởng.
Thêm giao diện người dùng
Tạo một giao diện web đơn giản để xem các tài liệu đã xử lý.
Hãy thử câu lệnh sau: 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
Tích hợp với AI/ML thực
Thay vì xử lý OCR mô phỏng, hãy dùng các mô hình Gemini để trích xuất, phân loại và dịch.
- Thay thế logic OCR giả. Gửi hình ảnh/tệp PDF cho Gemini để trích xuất văn bản và dữ liệu thực tế. Phân tích văn bản đã trích xuất để phân loại loại tài liệu (hoá đơn, hợp đồng, sơ yếu lý lịch) hoặc trích xuất các thực thể (ngày, tên, vị trí).
- Tự động phát hiện ngôn ngữ của tài liệu và dịch sang tiếng Anh trước khi lưu trữ. Bạn cũng có thể sử dụng bất kỳ ngôn ngữ nào khác.
Tăng cường bộ nhớ và hoạt động phân tích
Bạn có thể định cấu hình các quy tắc vòng đời trên vùng lưu trữ để di chuyển các tệp cũ sang bộ nhớ "Coldline" hoặc "Archive" để tiết kiệm chi phí.
Độ tin cậy và bảo mật
Bạn có thể tăng cường độ ổn định và tính bảo mật cho ứng dụng, chẳng hạn như:
- Hàng đợi thư không gửi được (DLQ): Cập nhật gói thuê bao Pub/Sub để xử lý các lỗi. Nếu dịch vụ Cloud Run không xử lý được một tệp 5 lần, hãy gửi thông báo đến một chủ đề/thùng chứa "Thư không gửi được" riêng biệt để con người kiểm tra.
- Secret Manager: Nếu ứng dụng của bạn cần khoá API hoặc cấu hình nhạy cảm, hãy lưu trữ các khoá đó trong Secret Manager và truy cập một cách an toàn từ Cloud Run thay vì mã hoá cứng các chuỗi.
- Eventarc: Nâng cấp từ Pub/Sub trực tiếp lên Eventarc để định tuyến sự kiện linh hoạt hơn, cho phép bạn kích hoạt dựa trên nhật ký kiểm tra phức tạp hoặc các sự kiện dịch vụ khác của GCP.
Tất nhiên, bạn có thể nghĩ ra ý tưởng của riêng mình và sử dụng Antigravity để giúp bạn triển khai những ý tưởng đó!
8. Kết luận
Bạn đã tạo thành công một quy trình xử lý tài liệu dựa trên AI, có khả năng mở rộng và không cần máy chủ trong vài phút bằng Google Antigravity. Bạn đã tìm hiểu cách:
- Lập kế hoạch cấu trúc bằng AI.
- Hướng dẫn và quản lý Antigravity khi ứng dụng này hoạt động thông qua việc tạo ứng dụng từ quá trình tạo mã đến triển khai và xác thực.
- Xác minh quá trình triển khai và xác thực bằng Hướng dẫn từng bước.
Tài liệu tham khảo
- Trang web chính thức : https://antigravity.google/
- Tài liệu: https://antigravity.google/docs
- Trường hợp sử dụng : https://antigravity.google/use-cases
- Tải xuống : https://antigravity.google/download
- Lớp học lập trình : Làm quen với Google Antigravity