В этом руководстве показано, как создать приложение 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 projects create
: Замените PROJECT_ID , указав идентификатор проекта, который вы хотите создать.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/
. -
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.
Нажмите
Создать функцию .На странице «Создать функцию» настройте свою функцию:
- В разделе «Среда » выберите «Функция запуска облака» .
- В поле «Имя функции» введите
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-адрес конечной точки HTTP .
В URL-адрес конечной точки HTTP вставьте URL-адрес триггера
.cloudfunctions.net/project-management-tutorial
который вы скопировали из развертывания облачных функций, в формате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.