В этом руководстве рассказывается, как создать приложение Google Chat, которое команда может использовать для управления проектами в реальном времени. Приложение Chat использует Vertex AI, чтобы помочь командам писать пользовательские истории (которые представляют собой функции программной системы с точки зрения пользователя, которые команда должна разработать) и сохраняет эти истории в базе данных Firestore.
-
Рисунок 1. Чарли обсуждает разработку функции в чат-группе Chat со своей командой. Если упомянуть приложение для управления проектами в Chat, оно предложит помощь. -
Рисунок 2. С помощью слеш-команды /createUserStoryЧарли создает историю. -
Рисунок 3. Приложение для управления проектами в Chat использует Vertex AI, чтобы написать описание задачи, а затем делится задачей в чат-группе. -
Рисунок 4. Чтобы завершить настройку, Чарли нажимает Изменить. ИИ-описание точное, но Чарли хочет добавить больше деталей, поэтому он нажимает Развернуть, чтобы Vertex AI добавил требования к описанию истории. Чарли назначает задачу себе, устанавливает статус "Начато", выбирает подходящий приоритет и размер, а затем нажимает Сохранить. -
Рисунок 5. В любой момент Чарли может посмотреть все пользовательские истории команды и управлять ими с помощью слеш-команды /manageUserStories.
Требования
- Аккаунт Google Workspace версии Business или Enterprise с доступом к Google Chat.
Доступ к сервисам Google Cloud для выполнения следующих действий:
- Создайте проект Google Cloud.
- Свяжите платежный аккаунт Google Cloud с облачным проектом. Чтобы узнать, есть ли у вас доступ, ознакомьтесь с разделом Разрешения, необходимые для включения платежей.
Используйте вызовы функций Google Cloud без аутентификации, которые можно проверить, определив, использует ли ваша организация Google Cloud доступ к файлам только для пользователей домена.
При необходимости запросите доступ или разрешение у администратора Google Cloud.
Если вы используете командную строку Google Cloud, вам понадобится среда разработки Node.js, настроенная для работы с gcloud CLI. Подробнее о настройке среды разработки Node.js…
Цели
- Создайте приложение Chat для управления проектами по разработке ПО с использованием гибких методологий.
- Помогите пользователям писать пользовательские истории с помощью инструментов для написания пользовательских историй на базе генеративного ИИ, созданных на базе Vertex AI:
- Создавать и изменять описания историй.
- Расширять описания историй, добавляя в них недостающие требования.
- Исправлять грамматические ошибки, чтобы устранять опечатки.
- Поддерживайте актуальность данных, записывая их в базу данных Firestore и считывая из нее.
- Организуйте совместную работу в чат-группе Chat, разрешив пользователям создавать, редактировать, назначать и запускать истории прямо из чата.
Какие продукты использовались
Приложение для управления проектами использует следующие продукты Google Workspace и Google Cloud:
- Chat API – API для разработки приложений Google Chat, которые получают и обрабатывают события взаимодействия с Chat, например сообщения. Приложение Google Chat для управления проектами использует Chat API, чтобы получать и обрабатывать события взаимодействия, отправленные Chat, а также настраивать атрибуты, определяющие внешний вид приложения в Chat, например имя и изображение аватара.
- Vertex AI API – платформа генеративного ИИ. Приложение Google Chat для управления проектами использует Vertex AI API для создания заголовков и описаний пользовательских историй.
- Firestore – бессерверная база данных документов. Приложение Google Chat для управления проектами использует Firebase для хранения данных о пользовательских историях.
Cloud Functions – это легкий бессерверный вычислительный сервис, который позволяет создавать одноцелевые автономные функции, реагирующие на события взаимодействия с Chat без необходимости управлять сервером или средой выполнения. Приложение Google Chat для управления проектами использует Cloud Functions для размещения конечной точки HTTP, в которую Chat отправляет события взаимодействия, а также в качестве вычислительной платформы для выполнения логики, которая обрабатывает эти события и отвечает на них.
Для создания, обработки событий взаимодействия и размещения вычислительных ресурсов Cloud Functions использует следующие продукты Google Cloud:
- Cloud Build – полностью управляемая платформа непрерывной интеграции, доставки и развертывания, которая выполняет автоматизированные сборки.
- Pub/Sub – асинхронный масштабируемый сервис обмена сообщениями, который разделяет сервисы, создающие сообщения, и сервисы, обрабатывающие их.
- Cloud Run Admin API – полностью управляемая среда для запуска контейнерных приложений.
Архитектура
Архитектура приложения Google Chat для управления проектами получает и обрабатывает события взаимодействия с Chat в конечной точке HTTP, использует Vertex AI для написания пользовательских историй и хранит сведения о них в базе данных Firestore. На следующей диаграмме показана архитектура используемых ресурсов Google Workspace и Google Cloud.
Приложение для управления проектами в Google Chat работает следующим образом:
Пользователь отправляет сообщение в Chat и вызывает приложение для управления проектами, отправив ему прямое сообщение, упомянув его в чат-группе или введя слеш-команду.
Чат отправляет синхронный HTTP-запрос в конечную точку HTTP функции Cloud Functions.
Приложение Google Chat для управления проектами обрабатывает HTTP-запрос:
Vertex AI помогает писать или обновлять пользовательские истории.
База данных Firestore хранит, извлекает, обновляет или удаляет данные пользовательских историй.
Cloud Functions возвращает ответ HTTP в Chat, который отображает его пользователю в виде сообщения или диалогового окна.
Подготовка среды
В этом разделе рассказывается, как создать и настроить проект Google Cloud для приложения Chat.
Как создать проект Google Cloud
Google API Console
- В Google API Console нажмите на значок меню > IAM & Admin (IAM и администрирование) > Create a Project (Создать проект).
-
В поле Project Name (Имя проекта) введите информативное название проекта.
Чтобы изменить идентификатор проекта, нажмите Изменить. Идентификатор проекта нельзя изменить после его создания, поэтому выберите подходящий вариант, так как он будет связан с проектом на протяжении всего периода его действия.
- В поле Местоположение нажмите Обзор, чтобы посмотреть возможные местоположения для проекта. Затем нажмите Выбрать.
- Нажмите Создать. Google API Console перейдет на страницу "Панель управления", и ваш проект будет создан в течение нескольких минут.
gcloud CLI
В одной из следующих сред разработки получите доступ к Google Cloud CLI (gcloud):
-
Cloud Shell: Чтобы использовать онлайн-терминал с уже настроенным gcloud CLI, активируйте Cloud Shell.
Активировать Cloud Shell -
Локальная оболочка. Чтобы использовать локальную среду разработки, установите и инициализируйте gcloud CLI.
Чтобы создать облачный проект, используйте командуgcloud projects create: Замените PROJECT_ID, указав идентификатор проекта, который хотите создать.gcloud projects create PROJECT_ID
Включите оплату для облачного проекта
Google API Console
- В Google API Console выберите Оплата. Нажмите Меню > Оплата > Мои проекты.
- В разделе Выберите организацию выберите организацию, связанную с вашим облачным проектом Google Cloud.
- В строке проекта откройте меню Действия (), нажмите Изменить платежные данные и выберите платежный аккаунт Cloud.
- Нажмите Выбрать аккаунт.
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 API Console
В Google API Console включите Google Chat API, Vertex AI API, Cloud Functions API, Firestore API, Cloud Build API, Pub/Sub API и Cloud Run Admin API.
Убедитесь, что вы включаете API в нужном облачном проекте, и нажмите Далее.
Убедитесь, что вы включаете нужные API, и нажмите Включить.
gcloud CLI
При необходимости задайте текущий облачный проект, созданный с помощью команды
gcloud config set project:gcloud config set project PROJECT_IDЗамените PROJECT_ID на идентификатор проекта облачного проекта, который вы создали.
Включите Google Chat API, Vertex AI API, Cloud Functions API, Firestore API, Cloud Build API, Pub/Sub API и Cloud Run Admin API с помощью команды
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.comCloud Build, Pub/Sub и Cloud Run Admin API являются обязательными для Cloud Functions.
Аутентификация и авторизация
Для выполнения инструкций из этого руководства не требуется настраивать аутентификацию и авторизацию.
Для вызова API Firestore и Vertex AI в этом руководстве используются Application Default Credentials с сервисным аккаунтом по умолчанию, прикрепленным к функции Cloud Functions. Настраивать его не нужно. В рабочей среде обычно создают и прикрепляют сервисный аккаунт к функции Cloud Functions.
Как создать и развернуть приложение Google Chat
Теперь, когда проект Google Cloud создан и настроен, вы можете создать и развернуть приложение Google Chat. В этом разделе вы выполните следующие действия:
- Создайте базу данных Firestore, в которой будут храниться пользовательские истории.
- При необходимости проверьте образец кода.
- Создайте функцию Cloud Functions, чтобы разместить и запустить код приложения Chat в ответ на события, полученные от Chat в виде HTTP-запросов.
- Создайте и разверните приложение Google Chat на странице конфигурации Google Chat API.
Как создать базу данных Firestore
В этом разделе вы создадите базу данных Firestore, чтобы хранить и извлекать пользовательские истории, но не будете определять модель данных. Модель данных задается неявно в образце кода с помощью файлов model/user-story.js и model/user.js.
В базе данных приложения Chat для управления проектами используется модель данных 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Отображаемое название чат-группы в Chat 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 | StringURL, на котором размещено изображение аватара пользователя Chat. |
displayName | StringОтображаемое имя пользователя в Chat. |
Вот как создать базу данных Firestore:
Google API Console
В Google API Console перейдите в Firestore. Нажмите Меню > Firestore.
Нажмите Создать базу данных.
В разделе Выберите режим Firestore нажмите Нативный режим.
Нажмите Продолжить.
Настройте базу данных:
В разделе Название базы данных оставьте идентификатор базы данных
(default).В поле Тип местоположения укажите регион для базы данных, например
us-central1. Чтобы обеспечить наилучшее качество связи, выберите тот же или ближайший регион, что и у функции Cloud Functions приложения Chat.
Нажмите Создать базу данных.
gcloud CLI
Создайте базу данных Firestore в собственном режиме с помощью команды
gcloud firestore databases create:gcloud firestore databases create \ --location=LOCATION \ --type=firestore-nativeЗамените LOCATION названием региона Firestore, например
us-central1.
Проверьте образец кода
При желании перед созданием функции Cloud Functions ознакомьтесь с образцом кода, размещенным на GitHub.
Ниже приведена информация о каждом файле.
env.js- Переменные конфигурации среды для развертывания приложения Chat в указанном проекте и регионе Google Cloud. Вам нужно обновить переменные конфигурации в этом файле.
package.jsonиpackage-lock.json- Настройки проекта и зависимости Node.js.
index.js- Точка входа для функции Cloud Functions приложения Chat. Он считывает событие чата из HTTP-запроса, вызывает обработчик приложения и отправляет HTTP-ответ в виде объекта JSON.
controllers/app.js- Основная логика приложения. Обрабатывает события взаимодействия, обрабатывая упоминания приложения Chat и слеш-команды.
Чтобы реагировать на нажатия на карточках, он вызывает функцию
app-action-handler.js. controllers/app-action-handler.js- Логика приложения для обработки клика по карточке события взаимодействия с Chat.
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- Вызывает Vertex AI API для генеративного искусственного интеллекта, чтобы получить прогноз текста.
model/*.js- Эти файлы содержат определения классов и перечислений, которые используются сервисами приложений для хранения и передачи данных между функциями. Они задают модель данных для базы данных Firestore.
views/*.js- Каждый файл в этом каталоге создает объект карточки, который приложение Chat отправляет обратно в Chat в виде сообщения с карточкой или ответа на действие диалогового окна.
views/widgets/*.js- Каждый файл создает объект типа widget, который приложение использует для создания карточек в каталоге
views/. test/**/*.test.js- Каждый файл в этом каталоге и его подкаталогах содержит модульные тесты для соответствующей функции, контроллера, сервиса, представления или виджета.
Чтобы выполнить все модульные тесты, запустите команду
npm run testв корневом каталоге проекта.
Как создать и развернуть функцию Cloud Functions
В этом разделе вы создадите и развернете функцию Cloud Functions, которая будет содержать логику приложения для управления проектами в Chat.
Функция Cloud Functions выполняется в ответ на HTTP-запрос от Chat, содержащий событие взаимодействия Chat. При запуске код функции Cloud Functions обрабатывает событие и возвращает ответ в Chat, который Chat отображает в виде сообщения, диалогового окна или другого типа взаимодействия с пользователем. При необходимости функция Cloud Function также считывает данные из базы данных Firestore или записывает их в нее.
Вот как создать функцию Cloud Functions:
Google API Console
Скачайте код с GitHub в виде ZIP-файла.
Распакуйте скачанный ZIP-файл.
Извлеченная папка содержит весь репозиторий примеров Google Workspace.
В извлеченной папке перейдите в каталог
add-ons-samples-main/node/chat/project-management-app/и упакуйте папкуproject-management-appв ZIP-архив.Корневой каталог ZIP-файла должен содержать следующие файлы и папки:
env.jsREADME.mdgcloudignore.textpackage-lock.jsonpackage.jsonindex.jsmodel/controllers/views/services/
В Google API Console перейдите на страницу Cloud Functions:
Убедитесь, что выбран проект Google Cloud для приложения Chat.
Нажмите Создать функцию.
На странице Создать функцию настройте функцию:
- В разделе Среда выберите Функция Cloud Run.
- В поле Название функции введите
project-management-tutorial. - В разделе Регион выберите регион.
- В разделе Аутентификация выберите Разрешить вызовы без аутентификации.
- Нажмите Далее.
В разделе Среда выполнения выберите Node.js 20.
В поле Точка входа удалите текст по умолчанию и введите
projectManagementChatApp.В разделе Исходный код выберите Загрузка ZIP-архива.
В разделе Целевой сегмент создайте или выберите сегмент:
- Нажмите Поиск.
- Выберите сегмент.
- Нажмите Выбрать.
Google Cloud загрузит ZIP-файл в этот сегмент и извлечет из него файлы компонентов. Затем Cloud Functions копирует файлы компонентов в функцию Cloud Functions.
В разделе Zip file (ZIP-файл) загрузите ZIP-файл, который вы скачали с GitHub, извлекли из него файлы и снова сжали:
- Нажмите Поиск.
- Найдите и выберите ZIP-файл.
- Нажмите Открыть.
Нажмите Развернуть.
Откроется страница Сведения о функции Cloud Functions, на которой будет показана ваша функция с двумя индикаторами выполнения: один для сборки, а другой – для сервиса. Когда оба индикатора исчезнут и будут заменены галочкой, функция будет развернута и готова к работе.
Измените образец кода, чтобы задать константы:
- На странице Сведения о функции Cloud Functions нажмите Изменить.
- Нажмите Далее.
- В разделе Исходный код выберите Встроенный редактор.
- В встроенном редакторе откройте файл
env.js. - Замените project-id идентификатором проекта Cloud.
- При необходимости замените us-central1 на поддерживаемое местоположение для функции Cloud Functions.
Нажмите Развернуть.
Когда функция будет развернута, скопируйте URL триггера:
- На странице Сведения о функции нажмите Триггер.
- Скопируйте URL. Он понадобится вам для настройки приложения Chat, описанной в следующем разделе.
gcloud CLI
Клонируйте код с сайта GitHub:
git clone https://github.com/googleworkspace/add-ons-samples.gitПерейдите в каталог, в котором хранится код приложения Chat для управления проектами:
cd add-ons-samples/node/chat/project-management-appИзмените файл
env.js, чтобы задать переменные среды:- Замените project-id идентификатором проекта Google Cloud.
- Замените us-central1 на местоположение облачного проекта Google Cloud.
Разверните функцию Cloud Functions в Google Cloud:
gcloud functions deploy project-management-tutorial \ --gen2 \ --region=REGION \ --runtime=nodejs20 \ --source=. \ --entry-point=projectManagementChatApp \ --trigger-http \ --allow-unauthenticatedЗамените REGION на местоположение функции Cloud Functions, где размещена ИТ-инфраструктура, например
us-central1.
- Когда функция будет развернута, скопируйте свойство
urlиз ответа. Это URL триггера, который вы будете использовать в следующем разделе для настройки приложения Google Chat.
Как настроить приложение Google Chat в Google API Console
В этом разделе рассказывается, как настроить Chat API в Google API Console, указав информацию о приложении Chat, в том числе его название, поддерживаемые команды со слешем и URL триггера функции Cloud Function, которой приложение Chat отправляет события взаимодействия.
В Google API Console нажмите Меню > API и сервисы > Включенные API и сервисы > Google Chat API > Конфигурация.
В поле Название приложения введите
Project Manager.В поле URL аватара введите
https://developers.google.com/chat/images/quickstart-app-avatar.png.В поле Описание введите
Manages projects with user stories..Переведите переключатель Включить интерактивные функции в положение "Включено".
В разделе Функциональность выберите Присоединяться к чат-группам и групповым чатам.
В разделе Настройки подключения выберите URL конечной точки HTTP.
Скопируйте адрес электронной почты сервисного аккаунта. Этот адрес электронной почты понадобится вам, когда вы будете предоставлять приложению Google Chat разрешение вызывать вашу функцию.
В разделе Триггеры выберите Использовать общий URL конечной точки HTTP для всех триггеров.
В поле URL конечной точки HTTP вставьте URL триггера функции Cloud Functions в формате
https://REGION-PROJECT_ID.cloudfunctions.net/project-management-tutorial. Если вы развернули функцию Cloud Functions с помощью интерфейса командной строки gcloud, это свойствоurl.Зарегистрируйте слеш-команды приложения Chat. Чтобы зарегистрировать слеш-команду:
- В разделе Команды нажмите Добавить команду.
Для каждой команды, указанной в таблице ниже, введите идентификатор команды, описание, в разделе Тип команды выберите слеш-команда, введите название слеш-команды, выберите Диалоговое окно и нажмите Готово:
Идентификатор команды Описание Название слеш-команды Dialog 1 Создайте рассказ с указанным названием. /createUserStoryВыбор отменен 2 Показывает все истории, назначенные пользователю. /myUserStoriesВыбор отменен 3 Текущий статус указанной истории. /userStoryВыбор отменен 4 Открывает диалоговое окно, в котором можно редактировать истории. /manageUserStoriesВыбрано 5 Удаляет все новости в чат-группе. /cleanupUserStoriesВыбор отменен
В разделе Видимость выберите Сделать это приложение Google Chat доступным для определенных пользователей и групп в домене Workspace и введите свой адрес электронной почты.
При необходимости в разделе Журналы выберите Регистрировать ошибки в Cloud Logging.
Нажмите Сохранить. Появится сообщение о том, что конфигурация сохранена.
Приложение Chat готово получать сообщения и отвечать на них.
Как протестировать приложение Chat
Протестируйте приложение Chat для управления проектами, отправив ему сообщение и используя команды со слешем для создания, изменения и удаления историй пользователей.
Откройте Google Chat, используя аккаунт Google Workspace, который вы указали, когда добавляли себя в качестве доверенного тестировщика.
- Нажмите Новый чат.
- В поле Добавьте одного или нескольких пользователей введите название приложения Chat.
Выберите приложение Chat в результатах поиска. Откроется прямая переписка.
- В новой прямой переписке с приложением введите
Helloи нажмитеenter. Приложение для управления проектами в Chat ответит меню справки с описанием своих возможностей. - Чтобы создать историю, введите
/createUserStory Test storyв строку сообщения и отправьте его. Приложение для управления проектами Chat ответит карточкой с описанием пользовательской истории, созданной с помощью генеративного ИИ от Vertex AI. В API Console проверьте базу данных Firestore, чтобы посмотреть записи о добавленном вами приложении Chat, взаимодействовавших с ним пользователях и созданной вами истории.
Вернитесь в Google Chat.
- Чтобы изменить историю, нажмите Изменить. Когда все будет готово, нажмите Сохранить.
- Проверьте все команды со слешем, которые поддерживает приложение. Чтобы посмотреть их, введите
/или упомяните приложение Chat. - Удалите тестовую пользовательскую историю, введя слеш-команду
/cleanupUserStories. Вы также можете удалить или деинсталлировать приложение. В этом случае все пользовательские истории, созданные в чат-группе, будут удалены.
Устранение неполадок
Если приложение Google Chat или карточка возвращает ошибку, в интерфейсе Chat появляется сообщение "Что-то пошло не так". или "Не удалось обработать запрос". Иногда в интерфейсе Chat не показывается сообщение об ошибке, но приложение Chat или карточка выдает неожиданный результат, например не появляется сообщение на карточке.
Хотя в интерфейсе Chat может не показываться сообщение об ошибке, при включенном ведении журнала ошибок для приложений Chat вам будут доступны подробные сообщения об ошибках и данные журнала, которые помогут устранить неполадки. Чтобы узнать, как просматривать, отлаживать и исправлять ошибки, ознакомьтесь с разделом Устранение неполадок в Google Chat.
Организовать
Чтобы избежать списания средств с аккаунта Google Cloud за ресурсы, использованные в этом руководстве, рекомендуем удалить облачный проект.
- В Google API Console перейдите на страницу Управление ресурсами. Нажмите Меню > IAM и администрирование > Управление ресурсами.
- В списке проектов выберите проект, который хотите удалить, и нажмите Удалить .
- В диалоговом окне введите идентификатор проекта и нажмите Закрыть, чтобы удалить проект.
Статьи по теме
- Планируйте поездки с помощью ИИ-агента, доступного в Google Workspace
- Ответы на вопросы на основе чатов с ИИ-приложением Gemini
- Как реагировать на инциденты с помощью Google Chat, Vertex AI, Apps Script и аутентификации пользователей
- Как проверить факты с помощью ИИ-агента ADK и модели Gemini
- Интеграция основных концепций ИИ в приложения Chat
- Как создать приложение для Chat в виде дополнения Google Workspace с помощью Apps Script