В этом руководстве показано, как создать приложение Google Chat, которое команда сможет использовать для управления проектами в режиме реального времени. Приложение Chat использует Vertex AI, чтобы помочь командам писать пользовательские истории (которые представляют функции программной системы с точки зрения пользователя, разрабатываемые командой) и сохранять эти истории в базе данных Firestore.
Рисунок 1. Чарли обсуждает разработку функций в чате со своей командой. Упоминание приложения чата для управления проектами побуждает приложение чата предложить помощь. Рисунок 2. Используя команду /createUserStory
, Чарли создает историю.Рисунок 3. Приложение «Чат» для управления проектами использует Vertex AI для написания описания истории, а затем делится ею в пространстве. Рисунок 4. Чарли нажимает кнопку «Изменить» , чтобы завершить детализацию истории. Описание ИИ точное, но Чарли хочет больше подробностей, поэтому он нажимает кнопку «Развернуть» , чтобы Vertex AI добавил требования к описанию истории. Чарли назначает историю себе, устанавливает статус «Начато», выбирает подходящий приоритет и размер, а затем нажимает кнопку « Сохранить» . Рисунок 5. В любой момент Чарли может просматривать и управлять всеми пользовательскими историями команды с помощью команды /manageUserStories
.
Предпосылки
- Учетная запись Google Workspace Business или Enterprise с доступом к Google Chat .
Доступ к сервисам Google Cloud для выполнения следующих задач:
- Создайте проект Google Cloud.
- Подключите аккаунт Google Cloud к проекту Cloud. Чтобы узнать, есть ли у вас доступ, см. раздел «Разрешения, необходимые для включения биллинга» .
Используйте неаутентифицированные вызовы функций Google Cloud , которые можно проверить, определив, использует ли ваша организация Google Cloud ограниченный общий доступ к домену .
При необходимости обратитесь к администратору Google Cloud за доступом или разрешением.
При использовании Google Cloud CLI необходимо настроить среду разработки Node.js для работы с gcloud CLI. См. раздел Настройка среды разработки Node.js.
Цели
- Создайте чат-приложение для управления гибкими программными проектами.
- Помогите пользователям писать истории с помощью генеративных инструментов написания историй на основе искусственного интеллекта на базе Vertex AI:
- Создавайте и пересоздавайте описания историй.
- Расширьте описания историй от примечаний до полных требований.
- Исправьте грамматику, чтобы исправить опечатки.
- Поддерживайте актуальность работы, записывая данные в базу данных Firestore и считывая их из нее.
- Облегчите совместную работу в чате, предоставив пользователям возможность создавать, редактировать, назначать и начинать истории непосредственно из беседы.
Использованные продукты
Приложение для управления проектами использует следующие продукты Google Workspace и Google Cloud:
- API чата : API для разработки приложений Google Chat, которые получают и реагируют на события взаимодействия в чате, например, сообщения. Приложение Google Chat для управления проектами использует API чата для получения и реагирования на события взаимодействия, отправляемые чатом, а также для настройки атрибутов, определяющих его внешний вид в чате, таких как имя и аватар.
- API Vertex AI : платформа для генеративного ИИ. Приложение Google Chat для управления проектами использует API Vertex AI для создания заголовков и описаний пользовательских историй.
- Firestore : бессерверная база данных документов. Приложение Google Chat для управления проектами использует Firebase для хранения данных о пользовательских историях.
Cloud Functions : лёгкий бессерверный вычислительный сервис, позволяющий создавать специализированные автономные функции, реагирующие на события взаимодействия в чате, без необходимости управления сервером или средой выполнения. Приложение Google Chat для управления проектами использует Cloud Functions для размещения конечной точки HTTP, куда Chat отправляет события взаимодействия, а также в качестве вычислительной платформы для запуска логики, обрабатывающей эти события и реагирующей на них.
Cloud Functions использует следующие продукты Google Cloud для создания, обработки событий взаимодействия и размещения вычислительных ресурсов:
- Cloud Build : полностью управляемая платформа непрерывной интеграции, доставки и развертывания, которая выполняет автоматизированные сборки.
- Pub/Sub : асинхронная и масштабируемая служба обмена сообщениями, которая разделяет службы, создающие сообщения, и службы, обрабатывающие эти сообщения.
- Cloud Run Admin API : полностью управляемая среда для запуска контейнерных приложений.
Архитектура
Архитектура приложения Google Chat для управления проектами принимает и обрабатывает события взаимодействия в чате через конечную точку HTTP, использует Vertex AI для написания пользовательских историй и сохраняет информацию о них в базе данных Firestore. На следующей диаграмме показана архитектура используемых ресурсов Google Workspace и Google Cloud.
Приложение Google Chat для управления проектами работает следующим образом:
Пользователь отправляет сообщение в чате и вызывает приложение Google Chat для управления проектами, либо отправив сообщение напрямую, либо упомянув его в текстовом поле, либо введя команду с косой чертой.
Чат отправляет синхронный HTTP-запрос на конечную точку HTTP облачной функции.
Приложение Google Chat для управления проектами обрабатывает HTTP-запрос:
Vertex AI помогает писать или обновлять пользовательскую историю.
База данных Firestore хранит, извлекает, обновляет или удаляет данные пользовательских историй.
Cloud Functions возвращает HTTP-ответ в Chat, который отображает его пользователю в виде сообщения или диалога.
Подготовьте окружающую среду
В этом разделе показано, как создать и настроить проект Google Cloud для приложения Chat.
Создайте проект Google Cloud
Консоль Google Cloud
- В консоли Google Cloud перейдите в > IAM и администрирование > Создать проект .
- В поле «Название проекта» введите описательное название вашего проекта.
Необязательно: чтобы изменить идентификатор проекта , нажмите «Изменить» . Идентификатор проекта нельзя изменить после его создания, поэтому выберите идентификатор, который будет соответствовать вашим потребностям на протяжении всего жизненного цикла проекта.
- В поле «Местоположение» нажмите «Обзор» , чтобы отобразить возможные местоположения для вашего проекта. Затем нажмите « Выбрать» .
- Нажмите «Создать» . Консоль Google Cloud перейдет на страницу панели управления, и ваш проект будет создан в течение нескольких минут.
gcloud CLI
В одной из следующих сред разработки получите доступ к Google Cloud CLI ( gcloud
):
- Cloud Shell : чтобы использовать онлайн-терминал с уже настроенным интерфейсом командной строки gcloud, активируйте Cloud Shell.
Активировать Cloud Shell - Локальная оболочка : чтобы использовать локальную среду разработки, установите и инициализируйте gcloud CLI.
Чтобы создать облачный проект, используйте командуgcloud projects create
: Замените PROJECT_ID , указав идентификатор проекта, который вы хотите создать.gcloud projects create PROJECT_ID
Включить выставление счетов для облачного проекта
Консоль Google Cloud
- В консоли Google Cloud перейдите в раздел «Оплата» . Нажмите «Меню» « Оплата» > «Мои проекты» .
- В разделе Выберите организацию выберите организацию, связанную с вашим проектом Google Cloud.
- В строке проекта откройте меню Действия ( ), нажмите Изменить выставление счетов и выберите учетную запись Cloud Billing.
- Нажмите «Настроить учетную запись» .
gcloud CLI
- Чтобы вывести список доступных платежных аккаунтов, выполните:
gcloud billing accounts list
- Свяжите платежный аккаунт с проектом Google Cloud:
gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID
Заменить следующее:
-
PROJECT_ID
— это идентификатор облачного проекта, для которого вы хотите включить выставление счетов. -
BILLING_ACCOUNT_ID
— идентификатор платежного аккаунта для связи с проектом Google Cloud.
-
Включить API
Консоль Google Cloud
В консоли Google Cloud включите API Google Chat, API Vertex AI, API Cloud Functions, API Firestore, API Cloud Build, API Pub/Sub и API Cloud Run Admin.
Подтвердите, что вы включаете API в правильном облачном проекте, затем нажмите Далее .
Подтвердите, что вы включаете правильные API, затем нажмите Включить .
gcloud CLI
При необходимости установите текущий проект Cloud на тот, который вы создали с помощью команды
gcloud config set project
:gcloud config set project PROJECT_ID
Замените PROJECT_ID на идентификатор созданного вами облачного проекта.
Включите API Google Chat, API Vertex AI, API Cloud Functions, API Firestore, API Cloud Build, API Pub/Sub и API Cloud Run Admin с помощью команды
gcloud services enable
:gcloud services enable chat.googleapis.com \ aiplatform.googleapis.com \ cloudfunctions.googleapis.com \ firestore.googleapis.com \ cloudbuild.googleapis.com \ pubsub.googleapis.com \ run.googleapis.com
API-интерфейсы Cloud Build, Pub/Sub и Cloud Run Admin являются необходимыми условиями для работы Cloud Functions.
Аутентификация и авторизация
Для выполнения этого руководства не требуется настройка аутентификации и авторизации.
Для вызова API Firestore и Vertex AI в этом руководстве используются учётные данные приложения по умолчанию с учётной записью службы по умолчанию, прикреплённой к облачной функции, которую вам не нужно настраивать. В контексте производственной среды обычно вместо этого создаётся и прикрепляется учётная запись службы к облачной функции.
Создайте и разверните приложение Google Chat
Теперь, когда ваш проект Google Cloud создан и настроен, вы готовы к сборке и развертыванию приложения Google Chat. В этом разделе вы выполните следующие действия:
- Создайте базу данных Firestore, в которой будут сохраняться и извлекаться истории пользователей.
- При желании просмотрите пример кода.
- Создайте облачную функцию для размещения и запуска кода приложения чата в ответ на события, полученные от чата в виде HTTP-запросов.
- Создайте и разверните приложение Google Chat на странице конфигурации API Google Chat.
Создать базу данных Firestore
В этом разделе мы создадим базу данных Firestore для хранения и извлечения пользовательских историй, но не определим модель данных. Модель данных неявно задаётся в примере кода файлами model/user-story.js
и model/user.js
.
База данных приложения «Чат для управления проектами» использует модель данных NoSQL, основанную на документах разделе «Модель данных Firestore» .
, организованных в коллекции . Подробнее см. вНа следующей диаграмме представлен обзор модели данных приложения Google Chat для управления проектами:
Корневая коллекция — это spaces
, где каждый документ представляет пространство, в котором приложение Chat создало истории. Каждая пользовательская история представлена документом в подколлекции userStories
, а каждый пользователь представлен документом в подколлекции users
.
Просмотр коллекций, документов и определений полей
spaces
Пространства, в которых приложение Chat создает истории.
Поля | |
---|---|
Document ID | String Уникальный идентификатор конкретного пространства, где создаются истории. Соответствует названию ресурса пространства в Chat API. |
userStories | Subcollection of Documents ( Истории, созданные приложением Chat и его пользователями. Соответствует Document ID userStories в Firebase. |
users | Subcollection of Documents ( user ) Пользователи, которые создали или которым назначены истории. |
displayName | String Отображаемое имя чат-пространства в API чата. Не устанавливается для прямых сообщений пользователям. |
userStories
Истории, созданные приложением Chat и его пользователями.
Поля | |
---|---|
Document ID | String Уникальный идентификатор конкретной пользовательской истории, созданной приложением Chat и его пользователями. |
assignee | Document ( user ) Имя ресурса пользователя, назначенного для завершения истории. Соответствует Document ID документа users и имени ресурса пользователя в Chat API. |
description | String Описание функций программного обеспечения с точки зрения пользователя. |
priority | Enum Срочность выполнения работы. Возможные значения: Low , Medium или High . |
size | Enum Объём работы. Возможные значения: Small , Medium или Large . |
status | Enum Фаза работы. Возможные значения: OPEN , STARTED или COMPLETED . |
title | String Название рассказа; краткое содержание. |
users
Пользователи, которые создали или которым назначены истории.
Поля | |
---|---|
Document ID | String Уникальный идентификатор конкретного пользователя. Соответствует assignee userStories в Firebase и имени ресурса пользователя в Chat API. |
avatarUrl | String URL-адрес, на котором размещено изображение аватара пользователя в чате. |
displayName | String Отображаемое имя пользователя в чате. |
Вот как создать базу данных Firestore:
Консоль Google Cloud
В консоли Google Cloud перейдите в раздел Firestore. Нажмите « Меню > «Firestore» .
Нажмите Создать базу данных .
В разделе «Выберите режим Firestore» нажмите «Основной режим» .
Нажмите «Продолжить» .
Настройте базу данных:
В поле Имя базы данных оставьте идентификатор базы данных
(default)
.В поле «Тип местоположения » укажите регион для базы данных, например,
us-central1
. Для оптимальной производительности выберите то же или близлежащее местоположение, что и облачная функция приложения «Чат».
Нажмите Создать базу данных .
gcloud CLI
Создайте базу данных Firestore в собственном режиме с помощью команды
gcloud firestore databases create
:gcloud firestore databases create \ --location=LOCATION \ --type=firestore-native
Замените LOCATION на имя региона Firestore , например
us-central1
.
Ознакомьтесь с примером кода
При желании перед созданием облачной функции выделите немного времени на просмотр и ознакомление с примером кода, размещенным на GitHub.
Вот обзор каждого файла:
-
env.js
- Переменные конфигурации среды для развертывания приложения Chat в указанном проекте Google Cloud и регионе. Необходимо обновить переменные конфигурации в этом файле.
-
package.json
иpackage-lock.json
- Настройки и зависимости проекта Node.js.
-
index.js
- Точка входа для облачной функции приложения «Чат». Она считывает событие «Чат» из HTTP-запроса, вызывает обработчик приложения и публикует HTTP-ответ в виде JSON-объекта.
-
controllers/app.js
- Основная логика приложения. Обрабатывает события взаимодействия , обрабатывая упоминания в приложении чата и команды слэша. Для реагирования на нажатия карточек вызывается
app-action-handler.js
. -
controllers/app-action-handler.js
- Логика приложения для обработки событий взаимодействия чата с нажатием карты.
-
services/space-service.js
,services/user-service.js
иservices/user-story-service.js
- Эти файлы содержат части логики приложения, специфичные для работы с чат-группами, пользователями и пользовательскими историями. Функции в этих файлах вызываются из
app.js
илиapp-action-handler.js
. Для выполнения операций с базой данных функции в этих файлах вызывают функции изfirestore-service.js
. -
services/firestore-service.js
- Обрабатывает операции с базой данных. Функции в этом файле вызываются файлами
services/space-service.js
,services/user-service.js
иservices/user-story-service.js
. -
services/aip-service.js
- Вызывает API Vertex AI для генеративного прогнозирования текста с помощью ИИ.
-
model/*.js
- Эти файлы содержат определения классов и перечислений, которые службы приложения используют для хранения и передачи данных между функциями. Они задают модель данных для базы данных Firestore.
-
views/*.js
- Каждый файл в этом каталоге создает экземпляр объекта карточки , который приложение Chat затем отправляет обратно в Chat в виде сообщения карточки или ответа на действие диалога .
-
views/widgets/*.js
- Каждый файл создает экземпляр типа виджетного объекта, который приложение использует для создания карточек в каталоге
views/
. -
test/**/*.test.js
- Каждый файл в этом каталоге и его подкаталогах содержит модульные тесты для соответствующей функции, контроллера, сервиса, представления или виджета. Вы можете выполнить все модульные тесты, выполнив
npm run test
в корневом каталоге проекта.
Создание и развертывание облачной функции
В этом разделе вы создадите и развернете облачную функцию, которая включает в себя логику приложения чата для управления проектами.
Функция Cloud Function запускается в ответ на HTTP-запрос от Chat, содержащий событие взаимодействия с Chat. При запуске код функции Cloud Function обрабатывает событие и возвращает ответ Chat, который Chat отображает в виде сообщения, диалога или другого типа взаимодействия с пользователем. При необходимости функция Cloud Function также считывает данные из базы данных Firestore или записывает их в неё.
Вот как создать облачную функцию:
Консоль Google Cloud
Загрузите код с GitHub в виде zip-файла.
Распакуйте загруженный zip-файл.
Извлеченная папка содержит весь репозиторий примеров Google Workspace.
В извлеченной папке перейдите к
google-chat-samples-main/node/project-management-app/
, затем сожмите папкуproject-management-app
в zip-файл.Корневой каталог zip-файла должен содержать следующие файлы и папки:
-
env.js
-
README.md
-
gcloudignore.text
-
package-lock.json
-
package.json
-
index.js
-
model/
-
controllers/
-
views/
-
services/
-
В консоли Google Cloud перейдите на страницу Cloud Functions:
Убедитесь, что выбран проект Google Cloud для вашего приложения Chat.
Нажмите
Создать функцию .На странице «Создать функцию» настройте свою функцию:
- В разделе Окружающая среда выберите Функция запуска облака .
- В поле Имя функции введите
project-management-tutorial
. - В разделе Регион выберите регион.
- В разделе «Аутентификация» выберите Разрешить неаутентифицированные вызовы .
- Нажмите «Далее» .
В Runtime выберите Node.js 20 .
В поле «Точка входа » удалите текст по умолчанию и введите
projectManagementChatApp
.В Исходном коде выберите Загрузка Zip .
В поле «Целевой контейнер» создайте или выберите контейнер:
- Нажмите кнопку «Обзор» .
- Выберите ведро.
- Нажмите Выбрать .
Google Cloud загружает ZIP-архив в этот контейнер и извлекает из него файлы компонентов. Затем Cloud Functions копирует файлы компонентов в Cloud Function.
В Zip file загрузите zip-файл, который вы скачали с GitHub, распаковали и повторно сжали:
- Нажмите кнопку «Обзор» .
- Перейдите к zip-файлу и выберите его.
- Нажмите «Открыть» .
Нажмите Развернуть .
Откроется страница сведений о функциях Cloud Functions , на которой ваша функция будет отображаться с двумя индикаторами выполнения: один для сборки, а другой для сервиса. Когда оба индикатора выполнения исчезнут и вместо них появится галочка, ваша функция будет развернута и готова к работе.
Отредактируйте пример кода, чтобы задать константы:
- На странице сведений о функции облака нажмите кнопку Изменить .
- Нажмите «Далее» .
- В Исходном коде выберите Встроенный редактор .
- Во встроенном редакторе откройте файл
env.js
- Замените project-id на идентификатор вашего облачного проекта.
- Необязательно: обновите us-central1 , указав поддерживаемое местоположение для вашей облачной функции.
Нажмите Развернуть .
После завершения развертывания функции скопируйте URL-адрес триггера:
- На странице сведений о функции нажмите Триггер .
- Скопируйте URL-адрес. Он понадобится вам для настройки приложения «Чат» в следующем разделе.
gcloud CLI
Клонируйте код с GitHub:
git clone https://github.com/googleworkspace/google-chat-samples.git
Перейдите в каталог, в котором находится код этого приложения чата для управления проектами:
cd google-chat-samples/node/project-management-app
Отредактируйте файл
env.js
, чтобы задать переменные среды:- Замените project-id на идентификатор вашего проекта Google Cloud.
- Замените us-central1 на местоположение вашего проекта Google Cloud.
Развертывание облачной функции в Google Cloud:
gcloud functions deploy project-management-tutorial \ --gen2 \ --region=REGION \ --runtime=nodejs20 \ --source=. \ --entry-point=projectManagementChatApp \ --trigger-http \ --allow-unauthenticated
Замените REGION на местоположение облачной функции , где размещена ее инфраструктура, например,
us-central1
.
- После завершения развёртывания функции скопируйте свойство
url
из ответа. Это URL-адрес триггера, который вы будете использовать в следующем разделе для настройки приложения Google Chat.
Настройте приложение Google Chat в консоли Google Cloud
В этом разделе показано, как настроить API чата в консоли Google Cloud с информацией о вашем приложении чата, включая имя приложения чата, поддерживаемые слэш-команды и URL-адрес триггера облачной функции приложения чата, на которую оно отправляет события взаимодействия с чатом.
В консоли Google Cloud выберите Меню > Google Workspace > Библиотека продуктов > Google Chat API > Управление > Конфигурация .
Дополнительные продуктыВ поле Имя приложения введите
Project Manager
.В поле URL аватара введите
https://developers.google.com/chat/images/quickstart-app-avatar.png
.В поле Описание введите
Manages projects with user stories.
Установите переключатель «Включить интерактивные функции» в положение «Вкл.».
В разделе «Функциональность» выберите Присоединяйтесь к пространствам и групповым беседам .
В разделе «Параметры подключения» выберите URL-адрес конечной точки HTTP .
В поле URL конечной точки HTTP вставьте URL-адрес триггера, скопированный из развёртывания Cloud Functions, в формате
https://
REGION-
PROJECT_ID.cloudfunctions.net/project-management-tutorial
. Если вы развернули Cloud Function с помощью интерфейса командной строки gcloud, это свойствоurl
.Зарегистрируйте слэш-команды в приложении «Чат». Чтобы зарегистрировать слэш-команду:
- В разделе «Команды» нажмите «Добавить команду» .
Для каждой команды с косой чертой, описанной в следующей таблице, введите Имя , Идентификатор команды , Описание и выберите, будет ли команда с косой чертой открывать диалоговое окно , затем нажмите Готово :
Имя Идентификатор команды Описание Тип команды Имя команды слэш Открывает диалоговое окно Создайте историю пользователя 1 Создайте историю с указанным заголовком. Команда «слэш» /createUserStory
Не выбрано Мои истории пользователей 2 Перечисляет все истории, назначенные пользователю. Команда «слэш» /myUserStories
Не выбрано История пользователя 3 Отображает текущий статус указанной истории. Команда «слэш» /userStory
Не выбрано Управление историями пользователей 4 Открывает диалоговое окно, в котором можно редактировать истории. Команда «слэш» /manageUserStories
Выбранный Очистка пользовательских историй 5 Удаляет все истории в разделе. Команда «слэш» /cleanupUserStories
Не выбрано
В разделе «Видимость» выберите «Сделать это приложение чата доступным для определенных людей и групп в вашем домене Workspace» и введите свой адрес электронной почты.
При желании в разделе Журналы выберите Записывать ошибки в Журнал .
Нажмите «Сохранить» . Появится сообщение о сохранении конфигурации, означающее, что приложение чата готово к тестированию.
Протестируйте приложение чата
Протестируйте приложение чата для управления проектами, отправив ему сообщение и используя его слэш-команды для создания, редактирования и удаления пользовательских историй.
Откройте Google Chat, используя учетную запись Google Workspace, которую вы указали при добавлении себя в качестве доверенного тестировщика.
- Нажмите новый чат» .
- В поле Добавить 1 или более человек введите название вашего чат-приложения.
Выберите приложение чата из результатов. Откроется личное сообщение.
- В новом личном сообщении с приложением введите
Hello
и нажмитеenter
. Приложение чата для управления проектами ответит меню с подробным описанием своих возможностей. - Чтобы создать историю, введите
/createUserStory Test story
в строке сообщений и отправьте её. Приложение чата для управления проектами ответит карточкой с подробным описанием истории пользователя, созданной для вас с помощью генеративного ИИ от Vertex AI. В консоли проверьте базу данных Firestore, чтобы просмотреть созданные ею записи о пространстве, в которое вы добавили приложение Chat, о пользователях, которые с ним взаимодействовали, и о созданной вами пользовательской истории.
Вернуться в Google Чат.
- При желании вы можете отредактировать историю, нажав «Изменить» . Когда будете довольны результатом, нажмите «Сохранить» .
- Проверьте все слэш-команды, поддерживаемые приложением. Чтобы увидеть их, введите
/
или упомяните приложение Chat. - Удалите тестовую пользовательскую историю, выполнив команду
/cleanupUserStories
. Также можно удалить приложение . При удалении приложение удалит все пользовательские истории, созданные в этой области.
Устранение неполадок
Когда приложение или карточка Google Chat возвращает ошибку, в интерфейсе Chat отображается сообщение «Что-то пошло не так» или «Не удалось обработать ваш запрос». Иногда в интерфейсе Chat не отображается сообщение об ошибке, но приложение или карточка Chat выдаёт неожиданный результат; например, сообщение может не появиться.
Хотя сообщение об ошибке может не отображаться в пользовательском интерфейсе чата, при включенном ведении журнала ошибок для приложений чата доступны описательные сообщения об ошибках и данные журнала, которые помогут вам исправить ошибки. Сведения о просмотре, отладке и исправлении ошибок см. в статье «Устранение неполадок и исправление ошибок Google Chat» .
Уборка
Чтобы избежать списания средств с вашего аккаунта Google Cloud за ресурсы, используемые в этом руководстве, мы рекомендуем вам удалить проект Cloud.
- В консоли Google Cloud перейдите на страницу «Управление ресурсами» . Выберите « Меню > «IAM и администрирование» > «Управление ресурсами» .
- В списке проектов выберите проект .
- В диалоговом окне введите идентификатор проекта, а затем нажмите кнопку «Завершить» , чтобы удалить проект.
Похожие темы
- Отвечайте на вопросы, основанные на чат-переписках, с помощью приложения Gemini AI Chat
- Реагируйте на инциденты с помощью Google Chat, Vertex AI и Apps Script