1. Введение

В этом практическом занятии вы узнаете, как использовать Google Antigravity (далее в документе именуемый просто Antigravity) для проектирования, создания и развертывания бессерверного приложения в Google Cloud. Мы создадим бессерверный и событийно-ориентированный конвейер обработки документов, который будет получать файлы из Google Cloud Storage (GCS), обрабатывать их с помощью Cloud Run и Gemini и передавать их метаданные в BigQuery.
Что вы узнаете
- Как использовать антигравитацию в архитектурном планировании и проектировании.
- Создание инфраструктуры в виде кода (сценариев командной оболочки) с помощью агента искусственного интеллекта.
- Создайте и разверните облачный сервис Cloud Run на основе Python.
- Интегрируйте Gemini с Vertex AI для мультимодального анализа документов.
- Проверьте весь конвейер обработки данных, используя артефакт Walkthrough от Antigravity.
Что вам понадобится
- Приложение Google Antigravity установлено. Если вам нужна помощь в установке Antigravity и понимании основ, рекомендуется пройти практическое занятие: Начало работы с Google Antigravity .
- Проект в Google Cloud с включенной функцией выставления счетов.
- Интерфейс командной строки gcloud установлен и авторизован.
2. Обзор приложения
Прежде чем приступить к проектированию и реализации приложения с использованием Antigravity, давайте сначала определим, какое приложение мы хотим для себя создать.
Мы хотим создать бессерверный и событийно-ориентированный конвейер обработки документов, который будет получать файлы из Google Cloud Storage (GCS), обрабатывать их с помощью Cloud Run и Gemini и передавать их метаданные в BigQuery.
Архитектурная схема высокого уровня для этого приложения может выглядеть следующим образом:

Точность не обязательна. Antigravity может помочь нам проработать детали архитектуры по ходу работы. Однако полезно иметь представление о том, что вы хотите построить. Чем больше деталей вы предоставите, тем лучше будут результаты, которые вы получите от Antigravity с точки зрения архитектуры и кода.
3. Спланируйте архитектуру.
Мы готовы приступить к планированию архитектурных деталей с помощью Antigravity!
Антигравитация отлично подходит для планирования сложных систем. Вместо того чтобы сразу писать код, мы можем начать с определения высокоуровневой архитектуры.
Для начала убедитесь, что вы находитесь в Менеджере агентов. Если вы только что открыли Antigravity, вы можете либо нажать кнопку « Open Agent Manager посередине, либо увидеть ту же Open Agent Manager в правом верхнем углу.
В менеджере агентов у вас есть возможность открыть рабочее пространство или просто использовать «Игровую площадку» — независимое рабочее пространство для быстрого создания прототипов и экспериментов. Давайте начнем с «Игровой площадки».
Нажмите кнопку + , чтобы начать новую беседу в «Игровой площадке»:

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

В правом верхнем углу нажмите на значок настроек ⚙️ и установите для 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.
Вы должны увидеть что-то подобное следующему:

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

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

Создается файл setup.sh или аналогичный по названию скрипт оболочки, который автоматизирует создание ресурсов. Он обрабатывает:
- Включение API (
run,pubsub,bigquery,storage). - Создание хранилища Google Cloud Storage (
doc-ingestion-{project-id}). - Создание набора данных и таблицы BigQuery (
pipeline_data.processed_docs). - Настройка тем и уведомлений Pub/Sub.
Агент должен сгенерировать приложение на Python ( main.py ), которое будет прослушивать push-уведомления от системы Pub/Sub. Оно использует имитированную логику оптического распознавания текста (OCR), генерируя случайные подсчеты слов и тегов и сохраняя эти данные в BigQuery.
После генерации этого скрипта настройки Antigravity предложит вам выполнить его от вашего имени. Пример экрана показан ниже:

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

В процессе развертывания сервиса также будут настроены подписки Pub/Sub и другие необходимые для работы конвейера процессы. Все это займет несколько минут.
Тем временем вы можете переключиться в Inbox (в верхнем левом углу) и проверить Pending вашего ответа задачи:

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

Программа создает тестовый файл ( test.txt ) и запрашивает его загрузку в хранилище Google Cloud Storage. Нажмите Accept , чтобы продолжить.
Если вы хотите провести дополнительные тесты самостоятельно, вы можете воспользоваться подсказкой этапа проверки Antigravity, где используется утилита gsutil для загрузки образца файла в хранилище Cloud Storage. Пример команды показан ниже:
gsutil cp <some-test-doc>.txt gs://<bucket-name>/
Проверьте результаты в BigQuery
В рамках процесса проверки также будет проверено, были ли данные сохранены в BigQuery.

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

Дополнительно: Ручная проверка
Несмотря на то, что Antigravity уже проверила приложение, при желании вы также можете вручную проверить в консоли Google Cloud, созданы ли все ресурсы, выполнив следующие шаги.
Облачное хранилище
Цель : Проверить существование хранилища и наличие загруженных файлов.
- Перейдите в раздел «Облачное хранилище» > «Корзины» .
- Найдите папку с именем
[PROJECT_ID]-doc-uploads. - Щелкните по названию корзины, чтобы просмотреть файлы.
- Проверка: Вы должны увидеть загруженные файлы (например,
test.txt).
Паб/Саб
Цель : Подтвердить существование темы и наличие подписки на push-уведомления.
- Перейдите в раздел «Публикация/Подписка» > «Темы» .
- Найдите тему обработки документов .
- Нажмите на идентификатор темы .
- Прокрутите страницу вниз до вкладки «Подписки» .
- Проверка: Убедитесь, что в поле doc-processing-sub указан тип доставки " Push ".
Cloud Run
Цель : Проверить состояние сервиса и журналы событий.
- Перейдите в Cloud Run .
- Нажмите на кнопку " Обработчик сервисных документов" .
- Проверять:
- Состояние: Зеленая галочка указывает на то, что услуга активна.
- Журналы: Перейдите на вкладку «Журналы». Найдите записи типа « Обработка файла: gs://... » и « Успешно обработано... ».
BigQuery
Цель : Проверить, действительно ли данные сохранены.
- Перейдите в раздел BigQuery > SQL Workspace .
- В панели Проводника разверните свой проект > набор данных pipeline_data .
- Щелкните по таблице processed_docs .
- Нажмите на вкладку «Предварительный просмотр» .
- Проверка: Вы должны увидеть строки, содержащие имя файла , дату загрузки , теги и количество слов .
Пошаговое руководство
В качестве заключительного шага Antigravity генерирует артефакт с пошаговым руководством. Этот артефакт содержит краткое описание:
- Внесены изменения.
- Выполняются команды проверки.
- Фактические результаты (результаты запроса, отображающие метаданные, извлеченные Gemini).
Вы можете нажать Open , чтобы увидеть результат. Пример выходных данных показан ниже:

6. Изучите приложение.
На данном этапе базовое приложение настроено и работает. Прежде чем приступать к дальнейшему расширению приложения, уделите немного времени изучению кода. Вы можете переключиться в редактор с помощью кнопки Open Editor в правом верхнем углу.
Вот краткое описание файлов, которые вы можете увидеть:
-
setup.sh: Главный скрипт, который подготавливает все ресурсы Google Cloud и включает необходимые API. -
main.py: Основная точка входа в конвейер обработки данных. Это приложение на Python создает веб-сервер, который принимает push-уведомления 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
Интеграция с реальным ИИ/машинным обучением
Вместо имитации обработки OCR используйте модели Gemini для извлечения, классификации и перевода данных.
- Замените фиктивную логику распознавания текста. Отправьте изображение/PDF-файл в Gemini для извлечения фактического текста и данных. Проанализируйте извлеченный текст, чтобы классифицировать тип документа (счет-фактура, договор, резюме) или извлечь сущности (даты, имена, местоположения).
- Функция автоматического определения языка документа и его перевода на английский язык перед сохранением. Вы также можете использовать любой другой язык.
Улучшение хранения данных и аналитики.
Вы можете настроить правила жизненного цикла для хранилища, чтобы перемещать старые файлы в хранилище "Coldline" или "Archive" для экономии средств.
Надежность и безопасность
Вы можете сделать приложение более надежным и безопасным, например:
- Очереди недоставленных сообщений (DLQ): Обновите подписку Pub/Sub для обработки сбоев. Если служба Cloud Run не обрабатывает файл 5 раз, отправьте сообщение в отдельную тему/корзину «Недоставленные сообщения» для проверки человеком.
- Менеджер секретов: Если вашему приложению требуются ключи API или конфиденциальные параметры конфигурации, храните их в Менеджере секретов и получайте к ним безопасный доступ из Cloud Run, вместо того чтобы жестко прописывать строки.
- Eventarc: Переход с прямого подключения Pub/Sub на Eventarc обеспечивает более гибкую маршрутизацию событий, позволяя запускать события на основе сложных журналов аудита или других событий сервисов GCP.
Конечно, вы можете придумывать собственные идеи и использовать антигравитацию для их реализации!
8. Заключение
Вы успешно создали масштабируемый, бессерверный, работающий на основе ИИ конвейер обработки документов за считанные минуты, используя Google Antigravity. Вы научились:
- Планируйте архитектуру с помощью ИИ.
- Обеспечивать руководство и управление процессом разработки приложения Antigravity на всех этапах — от генерации кода до развертывания и проверки.
- Проверьте развертывание и валидацию с помощью пошаговых инструкций.
Справочная документация
- Официальный сайт: https://antigravity.google/
- Документация: https://antigravity.google/docs
- Примеры использования: https://antigravity.google/use-cases
- Скачать: https://antigravity.google/download
- Codelab: Начало работы с Google Antigravity