В этом руководстве показано, как создать приложение Google Chat, которое команда сможет использовать для управления проектами в режиме реального времени. Приложение Chat использует Vertex AI, чтобы помочь командам писать пользовательские истории (которые представляют функции программной системы с точки зрения пользователя для разработки командой) и сохранять истории в базе данных Firestore.
Рисунок 2. Используя косую черту /createUserStory
, Чарли создает историю.Рис. 3. Приложение Chat для управления проектами использует Vertex AI для написания описания истории, а затем делится ею в пространстве. Рисунок 4. Чарли нажимает «Изменить» , чтобы завершить работу над деталями истории. Описание ИИ точное, но Чарли хочет получить более подробную информацию, поэтому Чарли нажимает «Развернуть» , чтобы ИИ Vertex добавил требования к описанию истории. Чарли назначает историю себе, устанавливает статус «Начато», выбирает подходящий приоритет и размер, а затем нажимает «Сохранить» . Рис. 5. В любой момент Чарли может просматривать и управлять всеми пользовательскими историями команды с помощью косой черты /manageUserStories
.
Предварительные условия
- Аккаунт Google Workspace для бизнеса или предприятия с доступом к Google Chat .
Доступ к сервисам Google Cloud для выполнения следующих действий:
- Создайте проект Google Cloud.
- Свяжите платежный аккаунт Google Cloud с проектом Cloud. Чтобы узнать, есть ли у вас доступ, см. раздел Разрешения, необходимые для включения выставления счетов .
Используйте неаутентифицированные вызовы функций Google Cloud , которые вы можете проверить, определив, использует ли ваша организация Google Cloud общий доступ с ограничением домена .
При необходимости обратитесь к администратору Google Cloud за доступом или разрешением.
При использовании Google Cloud CLI — среды разработки Node.js, настроенной для работы с gcloud CLI. См. Настройка среды разработки Node.js.
Цели
- Создайте приложение Chat для управления гибкими программными проектами.
- Помогите пользователям писать пользовательские истории с помощью генеративных инструментов написания историй с помощью искусственного интеллекта на базе Vertex AI:
- Создавайте и восстанавливайте описания историй.
- Разверните описания историй от примечаний до полных требований.
- Исправьте грамматику, чтобы исправить опечатки.
- Поддерживайте актуальность работы, записывая и читая данные из базы данных Firestore.
- Упростите совместную работу в чате, позволив пользователям создавать, редактировать, назначать и начинать истории непосредственно из разговора.
Используемые продукты
Приложение для управления проектами использует следующие продукты Google Workspace и Google Cloud:
- Chat API : API для разработки приложений Google Chat, которые получают события взаимодействия в чате, например сообщения, и отвечают на них. Приложение Google Chat для управления проектами использует Chat API для получения и реагирования на события взаимодействия, отправленные Chat, а также для настройки атрибутов, определяющих, как оно отображается в Chat, таких как имя и изображение аватара.
- Vertex AI API : генеративная платформа искусственного интеллекта. Приложение Google Chat для управления проектами использует API Vertex AI для написания заголовков и описаний пользовательских историй.
- Firestore : бессерверная база данных документов. Приложение Google Chat для управления проектами использует Firebase для хранения данных о пользовательских историях.
Облачные функции : облегченная бессерверная вычислительная служба, которая позволяет создавать одноцелевые автономные функции, которые могут реагировать на события взаимодействия в чате без необходимости управлять сервером или средой выполнения. Приложение Google Chat для управления проектами использует облачные функции для размещения конечной точки 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 для управления проектами, отправляя ему сообщение напрямую, упоминая его в пробеле или вводя косую черту.
Chat отправляет синхронный HTTP-запрос в конечную точку HTTP облачной функции.
Приложение Google Chat для управления проектами обрабатывает HTTP-запрос:
Vertex AI помогает писать или обновлять пользовательскую историю.
База данных Firestore хранит, извлекает, обновляет или удаляет данные пользовательских историй.
Облачные функции возвращают HTTP-ответ в чат, который отображает его пользователю в виде сообщения или диалогового окна.
Подготовьте окружающую среду
В этом разделе показано, как создать и настроить проект Google Cloud для приложения Chat.
Создайте проект Google Cloud
Консоль Google Cloud
- В консоли Google Cloud выберите > IAM и администрирование > Создать проект .
- В поле «Имя проекта» введите описательное имя вашего проекта.
Необязательно: Чтобы изменить идентификатор проекта , нажмите «Изменить» . Идентификатор проекта нельзя изменить после его создания, поэтому выберите идентификатор, который соответствует вашим потребностям на протяжении всего срока существования проекта.
- В поле «Местоположение» нажмите «Обзор» , чтобы отобразить возможные местоположения для вашего проекта. Затем нажмите «Выбрать» .
- Нажмите Создать . Консоль Google Cloud перейдет на страницу панели инструментов, и ваш проект будет создан в течение нескольких минут.
интерфейс командной строки gcloud
В одной из следующих сред разработки получите доступ к Google Cloud CLI («gcloud»):
- Cloud Shell : чтобы использовать онлайн-терминал с уже настроенным интерфейсом командной строки gcloud, активируйте Cloud Shell.
Активировать Cloud Shell - Локальная оболочка : чтобы использовать локальную среду разработки, установите и инициализируйте интерфейс командной строки gcloud.
Чтобы создать облачный проект, используйте команду gcloud project create:gcloud projects create PROJECT_ID
Включить биллинг для облачного проекта
Консоль Google Cloud
- В консоли Google Cloud перейдите в раздел «Оплата» . > Оплата > Мои проекты . Меню
- В разделе «Выберите организацию» выберите организацию, связанную с вашим проектом Google Cloud.
- В строке проекта откройте меню «Действия» ( ), нажмите «Изменить биллинг» и выберите учетную запись Cloud Billing.
- Нажмите Установить учетную запись .
интерфейс командной строки gcloud
- Чтобы просмотреть список доступных платежных учетных записей, выполните:
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 облачных функций, API Firestore, API Cloud Build, API Pub/Sub и API администрирования Cloud Run.
Убедитесь, что вы включаете API в правильном облачном проекте, затем нажмите «Далее» .
Убедитесь, что вы включаете правильные API, затем нажмите «Включить» .
интерфейс командной строки gcloud
При необходимости установите текущий проект Cloud на тот, который вы создали с помощью команды
gcloud config set project
:gcloud config set project PROJECT_ID
Замените PROJECT_ID на идентификатор созданного вами облачного проекта.
Включите API Google Chat, API Vertex AI, API облачных функций, API Firestore, API Cloud Build, API Pub/Sub и API администрирования Cloud Run с помощью команды
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, в которой можно будет сохранять и извлекать пользовательские истории.
- При необходимости просмотрите пример кода.
- Создайте облачную функцию для размещения и запуска кода приложения Chat в ответ на события, полученные от Chat в виде HTTP-запросов.
- Создайте и разверните приложение Google Chat на странице конфигурации API Google Chat.
Создайте базу данных 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 | String URL-адрес, на котором размещено изображение аватара пользователя в чате. |
displayName | String Отображаемое имя пользователя в чате. |
Вот как создать базу данных Firestore:
Консоль Google Cloud
В консоли Google Cloud перейдите в Firestore. > Firestore .
МенюНажмите Создать базу данных .
В разделе «Выберите режим Firestore» нажмите «Собственный режим» .
Нажмите Продолжить .
Настройте базу данных:
В поле «Назовите свою базу данных» оставьте идентификатор базы данных
(default)
.В поле «Тип местоположения» укажите регион для вашей базы данных, например
us-central1
. Для достижения наилучшей производительности выберите то же или близлежащее местоположение, где находится облачная функция приложения чат.
Нажмите Создать базу данных .
интерфейс командной строки gcloud
Создайте базу данных 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
- Точка входа для облачной функции приложения Chat. Он считывает событие Chat из HTTP-запроса, вызывает обработчик приложения и отправляет ответ HTTP как объект JSON.
-
controllers/app.js
- Основная логика приложения. Обрабатывает события взаимодействия , обрабатывая упоминания в приложении Chat и команды с косой чертой. Чтобы реагировать на клики по карточкам, он вызывает
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 для генеративного прогнозирования текста AI.
-
model/*.js
- Эти файлы содержат определения классов и перечислений, которые службы приложений используют для хранения и передачи данных между функциями. Они устанавливают модель данных для базы данных Firestore.
-
views/*.js
- Каждый файл в этом каталоге создает экземпляр объекта карты , который приложение Chat затем отправляет обратно в Chat либо в виде сообщения с карточкой , либо в качестве ответа на диалоговое действие .
-
views/widgets/*.js
- Каждый файл создает экземпляр типа объекта виджета , который приложение использует для создания карточек в каталогеviews
views/
. -
test/**/*.test.js
- Каждый файл в этом каталоге и его подкаталогах содержит модульные тесты для соответствующей функции, контроллера, службы, представления или виджета. Вы можете выполнить все модульные тесты, запустив
npm run test
, находясь в корневом каталоге проекта.
Создайте и разверните облачную функцию
В этом разделе вы создадите и развернете облачную функцию, которая включает в себя логику приложения приложения Chat для управления проектами.
Облачная функция запускается в ответ на HTTP-запрос от Chat, содержащий событие взаимодействия в Chat. При запуске код облачной функции обрабатывает событие и возвращает ответ в Chat, который Chat отображает как сообщение, диалог или другой тип взаимодействия с пользователем. Если применимо, функция Cloud также считывает или записывает данные из базы данных 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 перейдите на страницу «Функции облака»:
Убедитесь, что для вашего приложения Chat выбран проект Google Cloud.
Нажмите
Создать функцию .На странице «Создать функцию» настройте свою функцию:
- В разделе «Среда» выберите «2-е поколение» .
- В поле «Имя функции» введите
project-management-tutorial
. - В разделе «Регион» выберите регион.
- В разделе «Аутентификация» выберите «Разрешить неаутентифицированные вызовы» .
- Нажмите Далее .
В среде выполнения выберите Node.js 20 .
В Точке входа удалите текст по умолчанию и введите
projectManagementChatApp
.В разделе «Исходный код» выберите «Загрузка Zip» .
В сегменте назначения создайте или выберите сегмент:
- Нажмите «Обзор» .
- Выберите ведро.
- Нажмите «Выбрать» .
Google Cloud загружает zip-файл и извлекает файлы компонентов в эту корзину. Затем Cloud Functions копирует файлы компонентов в Cloud Function.
В Zip-файл загрузите zip-файл, скачанный с GitHub, распакованный и повторно сжатый:
- Нажмите «Обзор» .
- Перейдите к zip-файлу и выберите его.
- Нажмите Открыть .
Нажмите «Развернуть» .
Откроется страница сведений об облачных функциях , и ваша функция появится с двумя индикаторами хода выполнения: один для сборки, а другой для службы. Когда оба индикатора хода выполнения исчезнут и будут заменены галочками, ваша функция развернута и готова.
Отредактируйте пример кода, чтобы установить константы:
- На странице сведений о облачной функции нажмите « Изменить» .
- Нажмите Далее .
- В разделе «Исходный код» выберите «Встроенный редактор» .
- Во встроенном редакторе откройте файл
env.js
- Замените project-id на идентификатор вашего облачного проекта.
- Необязательно: обновите us-central1 , указав поддерживаемое местоположение для вашей облачной функции.
Нажмите «Развернуть» .
Когда функция завершит развертывание, скопируйте URL-адрес триггера:
- На странице сведений о функции нажмите Триггер .
- Скопируйте URL-адрес. Он понадобится вам для настройки приложения Chat в следующем разделе.
интерфейс командной строки gcloud
Клонируйте код с 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 Chat в консоли Google Cloud, используя информацию о вашем приложении Chat, включая имя приложения Chat, поддерживаемые команды с косой чертой и URL-адрес триггера облачной функции приложения Chat, которому оно отправляет события взаимодействия с Chat.
В консоли 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.
Установите переключатель «Включить интерактивные функции» во включенное положение.
В разделе «Функциональность» выберите «Получать сообщения 1:1» , «Присоединяйтесь к группам и групповым беседам» .
В разделе «Настройки подключения» выберите URL-адрес приложения .
В URL-адрес приложения вставьте URL-адрес триггера
.cloudfunctions.net/project-management-tutorial
который вы скопировали из развертывания Cloud Functions, в форматеhttps://
REGION-
PROJECT_ID . Если вы развернули функцию Cloud с помощью CLI gcloud, это свойствоurl
.Зарегистрируйте слэш-команды приложения Chat. Чтобы зарегистрировать косую черту:
- В разделе «Команды косой черты» нажмите «Добавить команду косой черты» .
Для каждой косой черты, подробно описанной в следующей таблице, введите Имя , Идентификатор команды , Описание и выберите, будет ли косая черта открывать диалоговое окно , затем нажмите «Готово» :
Имя Идентификатор команды Описание Открывает диалог /createUserStory
1 Создайте историю с указанным названием. Не выбрано /myUserStories
2 Перечисляет все истории, назначенные пользователю. Не выбрано /userStory
3 Отображает текущий статус указанной истории. Не выбрано /manageUserStories
4 Открывает диалог, в котором истории можно редактировать. Выбрано /cleanupUserStories
5 Удаляет все истории в пространстве. Не выбрано
В разделе «Видимость» выберите «Сделать это приложение чата доступным для определенных людей и групп в вашем домене Workspace» и введите свой адрес электронной почты.
При необходимости в разделе «Журналы» выберите «Записывать ошибки в журнал» .
Нажмите Сохранить . Появится сообщение о сохраненной конфигурации, означающее, что приложение Chat готово к тестированию.
Протестируйте приложение Чат
Протестируйте приложение чата для управления проектами, отправив ему сообщение и используя его команды с косой чертой для создания, редактирования и удаления пользовательских историй.
Откройте Google Chat, используя учетную запись Google Workspace, которую вы указали при добавлении себя в качестве доверенного тестировщика.
- Нажмите новый чат» .
- В поле «Добавить 1 или несколько человек» введите название вашего приложения чата.
Выберите приложение чата из результатов. Откроется прямое сообщение.
- В новом прямом сообщении с приложением введите
Hello
и нажмитеenter
. Приложение чата для управления проектами отвечает меню помощи с подробным описанием того, что оно может сделать. - Чтобы создать историю, введите
/createUserStory Test story
в строке сообщений и отправьте ее. Приложение чата для управления проектами отвечает карточным сообщением с подробным описанием пользовательской истории, которую оно создает для вас с помощью генеративного ИИ от Vertex AI. В консоли проверьте базу данных Firestore, чтобы просмотреть созданные ею записи о пространстве, в которое вы добавили приложение Chat, пользователях, которые с ним взаимодействовали, и созданной вами пользовательской истории.
Вернитесь в Google Чат.
- При желании, чтобы отредактировать историю, нажмите «Изменить» . Когда вы будете удовлетворены историей, нажмите «Сохранить» .
- Проверьте каждую косую черту, поддерживаемую приложением. Чтобы увидеть их, введите
/
или упомяните приложение «Чат». - Удалите тестовую пользовательскую историю, введя косую черту
/cleanupUserStories
. Либо удалите или удалите приложение . При удалении приложение удаляет все пользовательские истории, созданные в этом пространстве.
Устранение неполадок
Когда приложение или карточка Google Chat возвращает ошибку, в интерфейсе Chat отображается сообщение «Что-то пошло не так». или «Невозможно обработать ваш запрос». Иногда в пользовательском интерфейсе чата не отображается сообщение об ошибке, но приложение или карточка чата выдает неожиданный результат; например, сообщение с карточкой может не появиться.
Хотя сообщение об ошибке может не отображаться в пользовательском интерфейсе чата, доступны описательные сообщения об ошибках и данные журнала, которые помогут вам исправить ошибки, если включено ведение журнала ошибок для приложений чата. Информацию о просмотре, отладке и исправлении ошибок см. в разделе «Устранение неполадок и исправление ошибок Google Chat» .
Очистить
Чтобы избежать списания средств с вашей учетной записи Google Cloud за ресурсы, используемые в этом руководстве, мы рекомендуем вам удалить проект Cloud.
- В консоли Google Cloud перейдите на страницу «Управление ресурсами» . IAM и администрирование > Управление ресурсами . >
- В списке проектов выберите проект, который хотите удалить, и нажмите « .
- В диалоговом окне введите идентификатор проекта и нажмите «Завершить работу» , чтобы удалить проект.
Связанные темы
- Отвечайте на вопросы, основанные на разговорах в чате, с помощью приложения Gemini AI Chat.
- Реагируйте на инциденты с помощью Google Chat, Vertex AI и Apps Script.