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

1. Wprowadzenie

fca14bb9f4bb74f4.png

Z tego ćwiczenia w Codelabs dowiesz się, jak za pomocą Google Antigravity (w dalszej części dokumentu określanego jako 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 architektury.
  • 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 analizy dokumentów multimodalnych.
  • 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. Antygrawitacja może pomóc nam w określeniu szczegółów architektury w trakcie pracy. Warto jednak mieć pomysł na to, co chcesz stworzyć. 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 z 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.

W Menedżerze agentów możesz otworzyć obszar roboczy lub po prostu użyć Playground, czyli niezależnego obszaru roboczego do szybkiego tworzenia prototypów i eksperymentowania. Zacznijmy od Playground.

Kliknij przycisk +, aby rozpocząć nową rozmowę w Playground:

4e33c028a604a375.png

Pojawi się interfejs, w którym możesz wpisać prompta, jak pokazano poniżej:

fbf023e84f0eb3b2.png

W prawym górnym rogu kliknij ikonę ustawień ⚙️ i ustaw Review Policy w sekcji ArtifactTerminal 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 przesłać do Antigravity pierwszy prompt.

Najpierw upewnij się, że Antigravity jest w trybie Planning, a jako model wybierzmy Gemini Pro (High) (możesz jednak 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. Pracownik obsługi klienta omówi je po kolei:

19675c55a71b373.png

Następny krok to sprawdzenie planu wdrożenia i udzielenie agentowi uprawnień do kontynuowania.

Kliknij plan wdrożenia, aby wyświetlić jego szczegóły. Przeczytaj go uważnie. Teraz możesz przekazać swoją opinię na temat wdrożenia. 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.

Gdy wszystko będzie w porządku, 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. Zajmuje się on:

  1. Włączanie interfejsów API (run, pubsub, bigquery, storage).
  2. Tworzenie zasobnika Google Cloud Storage (doc-ingestion-{project-id}).
  3. Utwórz zbiór danych i tabelę 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 jest widoczny poniżej:

44395ab66413a64f.png

W razie potrzeby kliknij Accept.

Skrypt udostępniania utworzy zasoby i sprawdzi, czy zostały utworzone. Jeśli sprawdzenie się powiedzie, rozpocznie się kompilacja kontenera i wdrożenie 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 jest widoczny poniżej:

b8758b77880cc4d9.png

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

Jeśli chcesz przeprowadzić więcej testów samodzielnie, możesz skorzystać z wskazówki z etapu weryfikacji Antigravity, w którym używa narzędzia gsutil do przesłania przykładowego pliku do zasobnika Cloud Storage. Przykładowe polecenie:

gsutil cp <some-test-doc>.txt gs://<bucket-name>/

Sprawdzanie wyników w BigQuery

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

c0f08fedf671e9bd.png

Zanotuj 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 przeglądać pliki.
  4. Sprawdź: powinny być widoczne przesłane pliki (np. test.txt).

Pub/Sub

Cel: potwierdzenie, że 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 przewodnikiem. Ten artefakt zawiera podsumowanie:

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

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 internetowy, 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: zawiera listę zależności Pythona.

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

W tym momencie możesz też przenieść się z testowego portfela inwestycyjnego do dedykowanego obszaru roboczego lub folderu. Aby to zrobić, kliknij odpowiedni przycisk w prawym górnym rogu:

278de21c89e5c726.png

Gdy wybierzesz folder, cały kod zostanie do niego przeniesiony, a wraz z nim utworzysz nowy obszar roboczy z historią rozmowy.

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ę fikcyjnego 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.

Ulepszanie miejsca na dane i analiz

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

Solidność 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 wiadomość 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 weryfikację za pomocą przewodników.

Dokumentacja