Kompilowanie i wdrażanie w Google Cloud za pomocą Antigravity

1. Wprowadzenie

fca14bb9f4bb74f4.png

Z tego ćwiczenia dowiesz się, jak za pomocą Google Antigravity zaprojektować, utworzyć i wdrożyć aplikację bezserwerową w Google Cloud. Utworzymy bezserwerowy potok dokumentów oparty na zdarzeniach, który będzie pobierać pliki z Google Cloud Storage (GCS), przetwarzać je za pomocą Cloud Run i Gemini oraz przesyłać strumieniowo ich metadane do BigQuery.

Czego się nauczysz

  • Jak korzystać z Antigravity do planowania i projektowania architektonicznego.
  • Generowanie infrastruktury jako kodu (skryptów powłoki) za pomocą agenta AI.
  • Skompiluj i wdróż usługę Cloud Run opartą na Pythonie.
  • Integrowanie Gemini w Vertex AI na potrzeby multimodalnej analizy dokumentów.
  • Sprawdź kompleksową ścieżkę za pomocą artefaktu Antigravity Walkthrough.

Czego potrzebujesz

2. Omówienie aplikacji

Zanim przejdziemy do projektowania i wdrażania aplikacji za pomocą Antigravity, najpierw opiszemy aplikację, którą chcemy utworzyć.

Chcemy utworzyć bezserwerowy potok dokumentów oparty na zdarzeniach, który będzie pobierać pliki z Google Cloud Storage (GCS), przetwarzać je za pomocą Cloud Run i Gemini oraz przesyłać strumieniowo ich metadane do BigQuery.

Ogólny schemat architektury tej aplikacji może wyglądać tak:

3bd519cfab38258d.png

Nie musi być dokładna. Antigravity pomoże nam w określaniu szczegółów architektury w trakcie pracy. Warto jednak mieć pomysł na to, co chcesz zbudować. Im więcej szczegółów podasz, tym lepsze wyniki uzyskasz w Antigravity pod względem architektury i kodu.

3. Zaplanuj architekturę

Możemy już zacząć planować szczegóły architektury za pomocą Antigravity.

Antigravity świetnie radzi sobie z planowaniem złożonych systemów. Zamiast od razu pisać kod, możemy zacząć od zdefiniowania architektury wysokiego poziomu.

Najpierw upewnij się, że jesteś w Menedżerze agentów. Jeśli dopiero otworzysz Antigravity, możesz kliknąć przycisk Open Agent Manager na środku lub ten sam przycisk Open Agent Manager w prawym górnym rogu.

Najpierw utwórz folder aplikacji, np. document-pipeline, i dodaj go jako obszar roboczy w Menedżerze agentów:

6df2bebcee5608b7.png

W Menedżerze agentów rozpocznij rozmowę w obszarze roboczym document-pipeline. Sprawdź też, czy tryb Plan jest włączony:

b7d18b5ec36004cf.png

W prawym górnym rogu kliknij ikonę ustawień ⚙️ i ustaw Review Policy w sekcji Artifact na Asks for Review, a Terminal Command Auto Execution w sekcji Terminal na Request Review. Dzięki temu na każdym etapie będziesz mieć możliwość sprawdzenia i zatwierdzenia planu przed jego wykonaniem przez agenta.

Prompt

Teraz możemy podać pierwszy prompt do Antigravity.

Najpierw sprawdź, czy Antigravity jest w Plan trybie, a jako model wybierz Gemini Pro (High) (możesz też eksperymentować z innymi modelami).

Wpisz ten prompt i kliknij przycisk przesyłania:

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. 

Lista zadań i plan wdrożenia

Antigravity przeanalizuje Twoją prośbę i wygeneruje listę zadań oraz plan wdrożenia.

Ten plan zawiera:

  • Infrastruktura: zasobnik GCS, temat Pub/Sub, zbiór danych BigQuery.
  • Procesor: aplikacja w języku Python/Flask, Dockerfile, wymagania.
  • Integracja: powiadomienia GCS → Pub/Sub → Cloud Run.

Powinien pojawić się ekran podobny do tego:

ada19341c490a570.png

Kliknij przycisk Open obok wiersza Task. Powinien wyświetlić się zestaw zadań utworzonych przez Antigravity. Przedstawiciel kolejno je omówi:

19675c55a71b373.png

Następny krok to sprawdzenie planu wdrożenia i udzielenie agentowi uprawnień do dalszego działania.

Kliknij plan wdrożenia, aby wyświetlić jego szczegóły. Przeczytaj go uważnie. To Twoja szansa na przekazanie opinii o wdrożeniu. Możesz kliknąć dowolną część planu wdrożenia i dodać komentarze. Po dodaniu komentarzy prześlij do sprawdzenia wszelkie zmiany, które chcesz wprowadzić, zwłaszcza dotyczące nazewnictwa, identyfikatora projektu Google Cloud, regionu itp.

Jeśli wszystko wygląda dobrze, kliknij przycisk Proceed, aby zezwolić agentowi na realizację planu wdrożenia.

4. Generowanie aplikacji

Po zatwierdzeniu planu Antigravity zaczyna generować pliki wymagane do aplikacji, od skryptów do obsługi po kod aplikacji.

Antigravity utworzy folder i rozpocznie tworzenie plików niezbędnych do projektu. W naszym przykładowym uruchomieniu zaobserwowaliśmy:

4d98413e3bd17148.png

Generowany jest plik skryptu powłoki o nazwie setup.sh lub podobnej, który automatyzuje tworzenie zasobów. Obsługuje:

  1. Włączanie interfejsów API (run, pubsub, bigquery, storage).
  2. Tworzenie zasobnika Cloud Storage (doc-ingestion-{project-id}).
  3. Utworzenie zbioru danych i tabeli BigQuery (pipeline_data.processed_docs).
  4. Konfigurowanie tematów i powiadomień Pub/Sub.

Agent powinien wygenerować aplikację w Pythonie (main.py), która nasłuchuje wiadomości push Pub/Sub. Wykorzystuje on symulowaną logikę OCR, generując losowe liczby słów i tagi oraz zapisując je w BigQuery.

Po wygenerowaniu tego skryptu konfiguracji Antigravity powinien poprosić Cię o jego wykonanie w Twoim imieniu. Przykładowy ekran pokazano poniżej:

44395ab66413a64f.png

W razie potrzeby kliknij Accept.

Skrypt udostępniania utworzy zasoby i sprawdzi, czy zostały utworzone. Jeśli sprawdzenie zakończy się pomyślnie, nastąpi przejście do kompilacji kontenera i wdrożenia go jako usługi (w main.py) w Cloud Run. Przykładowe dane wyjściowe są widoczne poniżej:

e0e625e218e7fe46.png

W ramach wdrażania usługi skonfiguruje też subskrypcje Pub/Sub i inne elementy niezbędne do działania tego potoku. Wszystko to powinno zająć kilka minut.

W międzyczasie możesz przełączyć się na Inbox (w lewym górnym rogu) i sprawdzić Pending zadania oczekujące na Twoje dane:

ddd2f49d02fad987.png

Dzięki temu będziesz mieć pewność, że zatwierdzasz zadania, gdy pracownik zespołu pomocy prosi Cię o opinię.

5. Weryfikowanie aplikacji

Po wdrożeniu potoku Antigravity sprawdza, czy aplikacja działa prawidłowo. Antigravity automatyzuje ten proces dzięki krokom weryfikacji na liście zadań. Przykładowy ekran pokazano poniżej:

b8758b77880cc4d9.png

Tworzy artefakt testowy (test.txt) i chce go przesłać do zasobnika Cloud Storage. Aby kontynuować, kliknij Accept.

Jeśli chcesz przeprowadzić więcej testów, możesz spróbować przesłać przykładowy plik do zasobnika Cloud Storage:

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

Sprawdzanie wyników w BigQuery

W ramach procesu weryfikacji sprawdzi też, czy dane zostały zapisane w BigQuery.

c0f08fedf671e9bd.png

Zapisz zapytanie SQL, którego użyto do sprawdzenia dokumentów.

Po zakończeniu weryfikacji powinna pojawić się informacja o wykonaniu listy zadań:

b55ad48a87f95eca.png

Opcjonalnie: weryfikacja ręczna

Nawet jeśli Antigravity zweryfikuje aplikację, możesz też ręcznie sprawdzić w konsoli Google Cloud, czy wszystkie zasoby zostały utworzone. Aby to zrobić, wykonaj te czynności.

Cloud Storage

Cel: sprawdź, czy zasobnik istnieje, i czy są w nim przesłane pliki.

  1. Otwórz Cloud Storage > Zasobniki.
  2. Znajdź zasobnik o nazwie [PROJECT_ID]-doc-uploads.
  3. Kliknij nazwę zasobnika, aby przejrzeć pliki.
  4. Sprawdź: powinny być widoczne przesłane pliki (np. test.txt).

Pub/Sub

Cel: sprawdź, czy temat istnieje i ma subskrypcję push.

  1. Otwórz Pub/Sub > Tematy.
  2. Znajdź doc-processing-topic.
  3. Kliknij identyfikator tematu.
  4. Przewiń w dół do karty Subskrypcje.
  5. Sprawdź, czy doc-processing-sub jest wymieniony z typem dostawy „Push”.

Cloud Run

Cel: sprawdź stan usługi i dzienniki.

  1. Otwórz Cloud Run.
  2. Kliknij usługę doc-processor.
  3. Zweryfikuj:
  4. Stan: zielony znacznik wyboru oznaczający, że usługa jest aktywna.
  5. Logi: kliknij kartę Logi. Poszukaj wpisów takich jak „Processing file: gs://...” (Przetwarzanie pliku: gs://...) i „Successfully processed...” (Przetwarzanie zakończone powodzeniem...).

BigQuery

Cel: sprawdź, czy dane są rzeczywiście przechowywane.

  1. Otwórz BigQuery > Obszar roboczy SQL.
  2. W panelu Eksplorator rozwiń projekt > zbiór danych pipeline_data.
  3. Kliknij tabelę processed_docs.
  4. Kliknij kartę Podgląd.
  5. Sprawdź: powinny się wyświetlić wiersze zawierające filename, upload_date, tagsword_count.

Przewodnik

Na koniec Antigravity generuje artefakt z instrukcjami. Ten artefakt zawiera podsumowanie:

  • Wprowadzono zmiany.
  • Uruchom polecenia weryfikacji.
  • Rzeczywiste wyniki (dane wyjściowe zapytania pokazujące wyodrębnione przez Gemini metadane).

Aby go zobaczyć, kliknij Open. Przykładowe dane wyjściowe są widoczne poniżej:

47ecf561d0252924.png

6. Poznaj aplikację

W tym momencie masz już podstawową aplikację, która jest udostępniona i działa. Zanim zaczniesz rozszerzać tę aplikację, poświęć chwilę na zapoznanie się z kodem. Aby przejść do edytora, kliknij przycisk Open Editor w prawym górnym rogu.

Oto krótkie podsumowanie plików, które możesz zobaczyć:

  1. setup.sh: skrypt główny, który udostępnia wszystkie zasoby Google Cloud i włącza wymagane interfejsy API.
  2. main.py: główny punkt wejścia do potoku. Ta aplikacja w Pythonie tworzy serwer WWW, który odbiera wiadomości push Pub/Sub, pobiera plik z GCS, „przetwarza” go (symuluje OCR) i przesyła strumieniowo metadane do BigQuery.
  3. Dockerfile: określa sposób pakowania aplikacji w obraz kontenera.
  4. requirements.txt: wyświetla listę zależności Pythona.

Możesz też zobaczyć inne skrypty i pliki tekstowe potrzebne do testowania i weryfikacji.

7. Rozszerzanie aplikacji

Teraz, gdy masz już działającą podstawową aplikację, możesz ją dalej rozwijać i rozbudowywać. Oto kilka pomysłów.

Dodawanie interfejsu

Utwórz prosty interfejs internetowy do wyświetlania przetworzonych dokumentów.

Wypróbuj ten prompt: 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

Integracja z prawdziwą AI/ML

Zamiast symulowanego przetwarzania OCR używaj modeli Gemini do wyodrębniania, klasyfikowania i tłumaczenia.

  1. Zastąp logikę testową OCR. Wyślij obraz lub plik PDF do Gemini, aby wyodrębnić tekst i dane. Analizuj wyodrębniony tekst, aby klasyfikować typ dokumentu (faktura, umowa, CV) lub wyodrębniać encje (daty, imiona i nazwiska, lokalizacje).
  2. automatycznie wykrywać język dokumentu i tłumaczyć go na angielski przed zapisaniem; Możesz też użyć dowolnego innego języka.

Zwiększanie możliwości przechowywania i analizy danych

Możesz skonfigurować reguły cyklu życia w zasobniku, aby przenosić stare pliki do pamięci „Coldline” lub „Archive” i obniżyć koszty.

Odporność i bezpieczeństwo

Możesz zwiększyć niezawodność i bezpieczeństwo aplikacji, na przykład:

  1. Kolejki wiadomości niedostarczonych: zaktualizuj subskrypcję Pub/Sub, aby obsługiwać błędy. Jeśli usługa Cloud Run nie przetworzy pliku 5 razy, wyślij komunikat do osobnego tematu lub zasobnika „Niedostarczone komunikaty” w celu sprawdzenia przez człowieka.
  2. Secret Manager: jeśli aplikacja potrzebuje kluczy interfejsu API lub poufnej konfiguracji, przechowuj je w Secret Manager i uzyskuj do nich bezpieczny dostęp z Cloud Run zamiast zakodowywać ciągi znaków.
  3. Eventarc: uaktualnij bezpośrednie Pub/Sub do Eventarc, aby uzyskać bardziej elastyczne kierowanie zdarzeń, które umożliwia wywoływanie na podstawie złożonych dzienników audytu lub innych zdarzeń usługi GCP.

Oczywiście możesz mieć własne pomysły i wykorzystać Antigravity do ich realizacji.

8. Podsumowanie

Udało Ci się w kilka minut utworzyć skalowalny, bezserwerowy potok dokumentów oparty na AI za pomocą Google Antigravity. Dowiesz się, jak:

  • Planuj architektury z pomocą AI.
  • Wydawaj instrukcje i zarządzaj Antigravity podczas generowania aplikacji od tworzenia kodu po wdrażanie i weryfikację.
  • Sprawdzaj wdrożenia i weryfikacje za pomocą przewodników.

Dokumentacja