Создание и развертывание приложений в облаке Google с помощью Antigravity.

1. Введение

fca14bb9f4bb74f4.png

В этом практическом занятии вы узнаете, как использовать Google Antigravity (далее в документе именуемый просто Antigravity) для проектирования, создания и развертывания бессерверного приложения в Google Cloud. Мы создадим бессерверный и событийно-ориентированный конвейер обработки документов, который будет получать файлы из Google Cloud Storage (GCS), обрабатывать их с помощью Cloud Run и Gemini и передавать их метаданные в BigQuery.

Что вы узнаете

  • Как использовать антигравитацию в архитектурном планировании и проектировании.
  • Создание инфраструктуры в виде кода (сценариев командной оболочки) с помощью агента искусственного интеллекта.
  • Создайте и разверните облачный сервис Cloud Run на основе Python.
  • Интегрируйте Gemini с Vertex AI для мультимодального анализа документов.
  • Проверьте весь конвейер обработки данных, используя артефакт Walkthrough от Antigravity.

Что вам понадобится

2. Обзор приложения

Прежде чем приступить к проектированию и реализации приложения с использованием Antigravity, давайте сначала определим, какое приложение мы хотим для себя создать.

Мы хотим создать бессерверный и событийно-ориентированный конвейер обработки документов, который будет получать файлы из Google Cloud Storage (GCS), обрабатывать их с помощью Cloud Run и Gemini и передавать их метаданные в BigQuery.

Архитектурная схема высокого уровня для этого приложения может выглядеть следующим образом:

3bd519cfab38258d.png

Точность не обязательна. Antigravity может помочь нам проработать детали архитектуры по ходу работы. Однако полезно иметь представление о том, что вы хотите построить. Чем больше деталей вы предоставите, тем лучше будут результаты, которые вы получите от Antigravity с точки зрения архитектуры и кода.

3. Спланируйте архитектуру.

Мы готовы приступить к планированию архитектурных деталей с помощью Antigravity!

Антигравитация отлично подходит для планирования сложных систем. Вместо того чтобы сразу писать код, мы можем начать с определения высокоуровневой архитектуры.

Для начала убедитесь, что вы находитесь в Менеджере агентов. Если вы только что открыли Antigravity, вы можете либо нажать кнопку « Open Agent Manager посередине, либо увидеть ту же Open Agent Manager в правом верхнем углу.

В менеджере агентов у вас есть возможность открыть рабочее пространство или просто использовать «Игровую площадку» — независимое рабочее пространство для быстрого создания прототипов и экспериментов. Давайте начнем с «Игровой площадки».

Нажмите кнопку + , чтобы начать новую беседу в «Игровой площадке»:

4e33c028a604a375.png

Откроется интерфейс, где вы можете ввести запрос, как показано ниже:

fbf023e84f0eb3b2.png

В правом верхнем углу нажмите на значок настроек ⚙️ и установите для Review Policy в разделе Artifact и для Terminal Command Auto Execution в Terminal Request Review . Это гарантирует, что на каждом этапе вы сможете проверить и утвердить план перед его выполнением агентом.

Быстрый

Теперь мы готовы отправить наш первый запрос в «Антигравитацию».

Во-первых, убедитесь, что 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, тема Pub/Sub, набор данных BigQuery.
  • Процессор : приложение на Python/Flask, Dockerfile, необходимые зависимости.
  • Интеграция : GCS Notifications → Pub/Sub → Cloud Run.

Вы должны увидеть что-то подобное следующему:

ada19341c490a570.png

Нажмите кнопку Open рядом со строкой Task . Отобразится список задач, созданных Antigravity. Агент будет выполнять их по очереди:

19675c55a71b373.png

Следующий шаг — рассмотрение плана реализации и предоставление агенту разрешения на продолжение работы.

Нажмите на план внедрения, чтобы просмотреть его подробности. Внимательно ознакомьтесь с ним. Это ваш шанс оставить свой отзыв о внедрении. Вы можете нажать на любую часть плана внедрения и добавить комментарии. После добавления комментариев обязательно отправьте на рассмотрение любые изменения, которые вы хотели бы внести, особенно касающиеся именования, идентификатора проекта Google Cloud, региона и т. д.

Если все будет выглядеть нормально, дайте агенту разрешение продолжить выполнение плана внедрения, нажав кнопку Proceed .

4. Создайте приложение.

После утверждения плана компания Antigravity начинает генерировать файлы, необходимые для работы приложения, от скриптов инициализации до кода приложения.

Antigravity создаст папку и начнёт создавать файлы, необходимые для проекта. В нашем тестовом запуске мы увидели следующее:

4d98413e3bd17148.png

Создается файл setup.sh или аналогичный по названию скрипт оболочки, который автоматизирует создание ресурсов. Он обрабатывает:

  1. Включение API ( run , pubsub , bigquery , storage ).
  2. Создание хранилища Google Cloud Storage ( doc-ingestion-{project-id} ).
  3. Создание набора данных и таблицы BigQuery ( pipeline_data.processed_docs ).
  4. Настройка тем и уведомлений Pub/Sub.

Агент должен сгенерировать приложение на Python ( main.py ), которое будет прослушивать push-уведомления от системы Pub/Sub. Оно использует имитированную логику оптического распознавания текста (OCR), генерируя случайные подсчеты слов и тегов и сохраняя эти данные в BigQuery.

После генерации этого скрипта настройки Antigravity предложит вам выполнить его от вашего имени. Пример экрана показан ниже:

44395ab66413a64f.png

Нажмите Accept по мере необходимости.

Скрипт инициализации создаст ресурсы и проверит их создание. В случае успешной проверки он перейдет к сборке контейнера и его развертыванию в качестве сервиса (в main.py ) в Cloud Run. Пример выходных данных показан ниже:

e0e625e218e7fe46.png

В процессе развертывания сервиса также будут настроены подписки Pub/Sub и другие необходимые для работы конвейера процессы. Все это займет несколько минут.

Тем временем вы можете переключиться в Inbox (в верхнем левом углу) и проверить Pending вашего ответа задачи:

ddd2f49d02fad987.png

Это хороший способ убедиться, что вы одобряете задачи именно тогда, когда агент запрашивает вашу обратную связь.

5. Проверьте заявку.

После развертывания конвейера Antigravity приступает к проверке работоспособности приложения. Antigravity автоматизирует этот процесс с помощью этапов проверки в списке задач. Пример экрана показан ниже:

b8758b77880cc4d9.png

Программа создает тестовый файл ( test.txt ) и запрашивает его загрузку в хранилище Google Cloud Storage. Нажмите Accept , чтобы продолжить.

Если вы хотите провести дополнительные тесты самостоятельно, вы можете воспользоваться подсказкой этапа проверки Antigravity, где используется утилита gsutil для загрузки образца файла в хранилище Cloud Storage. Пример команды показан ниже:

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

Проверьте результаты в BigQuery

В рамках процесса проверки также будет проверено, были ли данные сохранены в BigQuery.

c0f08fedf671e9bd.png

Обратите внимание на SQL-запрос, который использовался для проверки наличия документов.

После завершения проверки вы увидите, что список задач выполнен:

b55ad48a87f95eca.png

Дополнительно: Ручная проверка

Несмотря на то, что Antigravity уже проверила приложение, при желании вы также можете вручную проверить в консоли Google Cloud, созданы ли все ресурсы, выполнив следующие шаги.

Облачное хранилище

Цель : Проверить существование хранилища и наличие загруженных файлов.

  1. Перейдите в раздел «Облачное хранилище» > «Корзины» .
  2. Найдите папку с именем [PROJECT_ID]-doc-uploads .
  3. Щелкните по названию корзины, чтобы просмотреть файлы.
  4. Проверка: Вы должны увидеть загруженные файлы (например, test.txt ).

Паб/Саб

Цель : Подтвердить существование темы и наличие подписки на push-уведомления.

  1. Перейдите в раздел «Публикация/Подписка» > «Темы» .
  2. Найдите тему обработки документов .
  3. Нажмите на идентификатор темы .
  4. Прокрутите страницу вниз до вкладки «Подписки» .
  5. Проверка: Убедитесь, что в поле doc-processing-sub указан тип доставки " Push ".

Cloud Run

Цель : Проверить состояние сервиса и журналы событий.

  1. Перейдите в Cloud Run .
  2. Нажмите на кнопку " Обработчик сервисных документов" .
  3. Проверять:
  4. Состояние: Зеленая галочка указывает на то, что услуга активна.
  5. Журналы: Перейдите на вкладку «Журналы». Найдите записи типа « Обработка файла: gs://... » и « Успешно обработано... ».

BigQuery

Цель : Проверить, действительно ли данные сохранены.

  1. Перейдите в раздел BigQuery > SQL Workspace .
  2. В панели Проводника разверните свой проект > набор данных pipeline_data .
  3. Щелкните по таблице processed_docs .
  4. Нажмите на вкладку «Предварительный просмотр» .
  5. Проверка: Вы должны увидеть строки, содержащие имя файла , дату загрузки , теги и количество слов .

Пошаговое руководство

В качестве заключительного шага Antigravity генерирует артефакт с пошаговым руководством. Этот артефакт содержит краткое описание:

  • Внесены изменения.
  • Выполняются команды проверки.
  • Фактические результаты (результаты запроса, отображающие метаданные, извлеченные Gemini).

Вы можете нажать Open , чтобы увидеть результат. Пример выходных данных показан ниже:

47ecf561d0252924.png

6. Изучите приложение.

На данном этапе базовое приложение настроено и работает. Прежде чем приступать к дальнейшему расширению приложения, уделите немного времени изучению кода. Вы можете переключиться в редактор с помощью кнопки Open Editor в правом верхнем углу.

Вот краткое описание файлов, которые вы можете увидеть:

  1. setup.sh : Главный скрипт, который подготавливает все ресурсы Google Cloud и включает необходимые API.
  2. main.py : Основная точка входа в конвейер обработки данных. Это приложение на Python создает веб-сервер, который принимает push-уведомления Pub/Sub, загружает файл из GCS, «обрабатывает» его (имитирует OCR) и передает метаданные в BigQuery.
  3. Dockerfile : Определяет способ упаковки приложения в образ контейнера.
  4. requirements.txt : Содержит список зависимостей Python.

Вы также можете обнаружить другие скрипты и текстовые файлы, необходимые для тестирования и проверки.

На этом этапе вы также можете перейти из Playground в выделенное рабочее пространство/папку. Сделать это можно, нажав на соответствующую кнопку в правом верхнем углу:

278de21c89e5c726.png

После выбора папки весь код будет перемещен в эту папку, и будет создано новое рабочее пространство, содержащее эту папку и историю переписки.

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

Интеграция с реальным ИИ/машинным обучением

Вместо имитации обработки OCR используйте модели Gemini для извлечения, классификации и перевода данных.

  1. Замените фиктивную логику распознавания текста. Отправьте изображение/PDF-файл в Gemini для извлечения фактического текста и данных. Проанализируйте извлеченный текст, чтобы классифицировать тип документа (счет-фактура, договор, резюме) или извлечь сущности (даты, имена, местоположения).
  2. Функция автоматического определения языка документа и его перевода на английский язык перед сохранением. Вы также можете использовать любой другой язык.

Улучшение хранения данных и аналитики.

Вы можете настроить правила жизненного цикла для хранилища, чтобы перемещать старые файлы в хранилище "Coldline" или "Archive" для экономии средств.

Надежность и безопасность

Вы можете сделать приложение более надежным и безопасным, например:

  1. Очереди недоставленных сообщений (DLQ): Обновите подписку Pub/Sub для обработки сбоев. Если служба Cloud Run не обрабатывает файл 5 раз, отправьте сообщение в отдельную тему/корзину «Недоставленные сообщения» для проверки человеком.
  2. Менеджер секретов: Если вашему приложению требуются ключи API или конфиденциальные параметры конфигурации, храните их в Менеджере секретов и получайте к ним безопасный доступ из Cloud Run, вместо того чтобы жестко прописывать строки.
  3. Eventarc: Переход с прямого подключения Pub/Sub на Eventarc обеспечивает более гибкую маршрутизацию событий, позволяя запускать события на основе сложных журналов аудита или других событий сервисов GCP.

Конечно, вы можете придумывать собственные идеи и использовать антигравитацию для их реализации!

8. Заключение

Вы успешно создали масштабируемый, бессерверный, работающий на основе ИИ конвейер обработки документов за считанные минуты, используя Google Antigravity. Вы научились:

  • Планируйте архитектуру с помощью ИИ.
  • Обеспечивать руководство и управление процессом разработки приложения Antigravity на всех этапах — от генерации кода до развертывания и проверки.
  • Проверьте развертывание и валидацию с помощью пошаговых инструкций.

Справочная документация