1. 簡介

在本程式碼研究室中,您將瞭解如何使用 Google Antigravity (本文其餘部分簡稱 Antigravity) 設計、建構及部署無伺服器應用程式至 Google Cloud。我們將建構無伺服器且事件驅動的文件管道,從 Google Cloud Storage (GCS) 擷取檔案、使用 Cloud Run 和 Gemini 處理檔案,並將中繼資料串流至 BigQuery。
課程內容
- 如何使用 Antigravity 進行架構規劃和設計。
- 使用 AI 代理程式生成基礎架構即程式碼 (Shell 指令碼)。
- 建構及部署以 Python 為基礎的 Cloud Run 服務。
- 整合 Vertex AI 的 Gemini,進行多模態文件分析。
- 使用 Antigravity 的 Walkthrough 構件驗證端對端管道。
軟硬體需求
- 已安裝 Google Antigravity。如需安裝 Antigravity 和瞭解基本概念的相關協助,建議完成「開始使用 Google Antigravity」程式碼研究室。
- 已啟用計費功能的 Google Cloud 專案。
- 已安裝並驗證 gcloud CLI。
2. 應用程式總覽
在開始使用 Antigravity 架構及實作應用程式之前,我們先來規劃要建構的應用程式。
我們想建構無伺服器且事件驅動的文件管道,從 Google Cloud Storage (GCS) 擷取檔案、使用 Cloud Run 和 Gemini 處理檔案,並將中繼資料串流至 BigQuery。
這個應用程式的高階架構圖可能如下所示:

這項資訊不必精確,Antigravity 可協助我們逐步瞭解架構詳細資料。不過,最好先瞭解自己想建構什麼。提供的詳細資料越多,Antigravity 就越能提供符合架構和程式碼需求的結果。
3. 規劃架構
我們已準備好使用 Antigravity 開始規劃架構詳細資料!
Antigravity 擅長規劃複雜系統,我們可以先定義高階架構,不必立即編寫程式碼。
首先,請確認您位於「代理程式管理員」。如果剛開啟 Antigravity,可以點選中間的 Open Agent Manager 按鈕,右上角也會顯示相同的 Open Agent Manager。
在代理程式管理工具中,您可以選擇開啟工作區,或直接使用 Playground,這是獨立的工作區,可快速製作原型和進行實驗。我們先從 Playground 開始。
按一下 + 按鈕,即可在 Playground 中發起新對話:

系統會顯示介面,讓您提供提示,如下所示:

按一下右上角的設定圖示 ⚙️,然後將「Review Policy」下方的「Artifact」和「Terminal Command Auto Execution」下方的「Terminal」設為「Request Review」。這樣一來,您就能在每個步驟中審查並核准方案,再由服務專員執行。
提示詞
現在,我們準備向 Antigravity 提供第一個提示。
首先,請確認 Antigravity 處於 Planning 模式,並選擇 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 會分析您的要求,並產生「工作」清單和「實作計畫」。
這項計畫會說明:
- 基礎架構:GCS Bucket、Pub/Sub 主題、BigQuery 資料集。
- 處理器:Python/Flask 應用程式、Dockerfile、需求。
- 整合:GCS 通知 → Pub/Sub → Cloud Run。
您應該會看到類似下列的輸出:

按一下「Task」列旁的「Open」按鈕。這時應該會顯示 Antigravity 建立的一系列工作。代理程式會逐一檢查:

下一步是查看導入計畫,並授權給代理商繼續進行。
按一下實作計畫即可查看詳細資料。請仔細閱讀。請把握這個難得的機會,針對實作作業提供意見。您可以點選導入計畫的任何部分,然後新增註解。新增一些註解後,請務必提交要審查的變更,尤其是名稱、Google Cloud 專案 ID、區域等。
確認一切無誤後,按一下 Proceed 按鈕,授權給服務專員,繼續執行導入計畫。
4. 生成應用程式
方案獲准後,Antigravity 就會開始生成應用程式所需的檔案,包括佈建指令碼和應用程式程式碼。
Antigravity 會建立資料夾,並開始建立專案所需的檔案。在我們的範例執行中,我們看到以下內容:

系統會產生 setup.sh 或類似名稱的殼層指令碼檔案,自動建立資源。這項服務可處理:
- 啟用 API (
run、pubsub、bigquery、storage)。 - 建立 Google Cloud Storage bucket (
doc-ingestion-{project-id})。 - 建立 BigQuery 資料集和資料表 (
pipeline_data.processed_docs)。 - 設定 Pub/Sub 主題和通知。
代理程式應產生 Python 應用程式 (main.py),監聽 Pub/Sub 推送訊息。這項服務會使用模擬的 OCR 邏輯,產生隨機字數和標記,並將這些資料保留在 BigQuery 中。
產生這項設定指令碼後,Antigravity 應會提示您代表您執行指令碼。畫面範例如下所示:

視需要按一下 Accept。
佈建指令碼會建立資源,並驗證資源是否已建立。檢查成功後,系統會繼續建構容器,並以服務的形式部署至 Cloud Run (位於 main.py)。輸出範例如下所示:

部署服務時,系統也會設定 Pub/Sub 訂閱項目和其他膠合,確保管道正常運作。這一切應該只需要幾分鐘。
在此期間,您可以切換至 Inbox (位於左上角),查看等待您輸入的 Pending 工作:

這樣一來,您就能在代理程式尋求意見回饋時核准工作。
5. 驗證應用程式
管道部署完成後,Antigravity 會繼續驗證應用程式是否正常運作。Antigravity 會自動執行這項操作,並在工作清單中加入驗證步驟。畫面範例如下所示:

這項作業會建立測試構件 (test.txt),並將其上傳至 Google Cloud Storage bucket。按一下 Accept 繼續操作。
如要自行執行進一步測試,可以參考 Antigravity 的驗證步驟,其中會使用 gsutil 公用程式將範例檔案上傳至 Cloud Storage bucket。範例指令如下所示:
gsutil cp <some-test-doc>.txt gs://<bucket-name>/
在 BigQuery 中查看結果
驗證程序也會檢查資料是否已保留在 BigQuery 中。

請記下用來檢查文件的 SQL 查詢。
驗證完成後,您應該會看到工作清單已完成:

選用:手動驗證
即使 Antigravity 已驗證應用程式,您也可以視需要按照下列步驟,在 Google Cloud 控制台中手動檢查是否已建立所有資源。
Cloud Storage
目標:確認值區存在,並檢查上傳的檔案。
- 依序前往「Cloud Storage」>「Buckets」。
- 找出名為
[PROJECT_ID]-doc-uploads的 bucket。 - 按一下 bucket 名稱即可瀏覽檔案。
- 確認:您應該會看到上傳的檔案 (例如
test.txt)。
Pub/Sub
目標:確認主題存在,且已訂閱推送通知。
- 依序前往「Pub/Sub」>「主題」。
- 找到 doc-processing-topic。
- 按一下主題 ID。
- 向下捲動至「訂閱項目」分頁標籤。
- 驗證:確認「doc-processing-sub」列於清單中,且傳送類型為「Push」。
Cloud Run
目標:檢查服務狀態和記錄。
- 前往 Cloud Run。
- 按一下「doc-processor」服務。
- 驗證:
- 健康狀態:綠色勾號表示服務已啟用。
- 記錄:按一下「記錄」分頁標籤。尋找「Processing file: gs://...」和「Successfully processed...」等項目。
BigQuery
目標:確認資料確實已儲存。
- 前往「BigQuery」>「SQL 工作區」。
- 在「Explorer」窗格中,依序展開「專案」>「pipeline_data 資料集」。
- 點選「processed_docs」processed_docs資料表。
- 點選「預覽」分頁標籤。
- 確認:您應該會看到包含 filename、upload_date、tags 和 word_count 的資料列。
逐步操作說明
最後,Antigravity 會產生逐步導覽構件。這項成果會摘要說明:
- 已完成變更。
- 執行驗證指令。
- 實際結果 (查詢輸出內容,顯示 Gemini 擷取的中繼資料)。
按一下 Open 即可查看。輸出範例如下所示:

6. 探索應用程式
此時,您已佈建並執行基本應用程式。在進一步擴充這個應用程式之前,請先花點時間探索程式碼。按一下右上角的 Open Editor 按鈕,即可切換至編輯器。
以下簡要說明您可能會看到的檔案:
setup.sh:主要指令碼,用於佈建所有 Google Cloud 資源,並啟用必要的 API。main.py:管道的主要進入點。這個 Python 應用程式會建立網頁伺服器,接收 Pub/Sub 推送訊息、從 GCS 下載檔案、「處理」檔案 (模擬 OCR),並將中繼資料串流至 BigQuery。Dockerfile:定義如何將應用程式封裝至容器映像檔。requirements.txt:列出 Python 依附元件。
您也可能會看到測試和驗證所需的其他指令碼和文字檔。
此時,您可能也想從 Playground 移至專屬工作區/資料夾。如要這麼做,請按一下右上角的相關按鈕:

選擇資料夾後,所有程式碼都會移至該資料夾,並以該資料夾和對話記錄建立新的工作區。
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/機器學習技術整合
請改用 Gemini 模型擷取、分類及翻譯,而非模擬 OCR 處理程序。
- 取代虛擬 OCR 邏輯。將圖片/PDF 傳送給 Gemini,即可擷取實際文字和資料。分析擷取的文字,將文件分類 (例如應付憑據、合約、履歷表),或擷取實體 (例如日期、姓名、地點)。
- 系統會自動偵測文件語言,並先翻譯成英文再儲存。你也可以使用其他語言。
提升儲存空間和數據分析能力
您可以在 bucket 上設定生命週期規則,將舊檔案移至「Coldline」或「Archive」儲存空間,以節省費用。
穩定性與安全性
您可以採取下列措施,讓應用程式更穩定可靠且安全:
- 無效信件佇列 (DLQ):更新 Pub/Sub 訂閱項目,處理失敗情況。如果 Cloud Run 服務處理檔案失敗 5 次,請將訊息傳送至另一個「Dead Letter」主題/bucket,供人工檢查。
- Secret Manager:如果應用程式需要 API 金鑰或機密設定,請將這些資訊儲存在 Secret Manager 中,並從 Cloud Run 安全地存取,而不是將字串硬式編碼。
- Eventarc:從直接使用 Pub/Sub 升級至 Eventarc,即可享有更彈性的事件轉送功能,根據複雜的稽核記錄或其他 GCP 服務事件觸發動作。
當然,您也可以提出自己的想法,並使用 Antigravity 協助實作!
8. 結語
您已成功使用 Google Antigravity,在幾分鐘內建構可擴充的無伺服器 AI 輔助文件管道。您已學會如何:
- 使用 AI 規劃架構。
- 指示及管理 Antigravity,讓它從程式碼生成到部署及驗證,完成應用程式生成作業。
- 透過逐步解說驗證部署作業和驗證。