В этом руководстве показано, как создать приложение Google Chat, которое отвечает на вопросы, основанные на диалогах в чат-группах, с помощью генеративного ИИ на базе Vertex AI и Gemini. Приложение Chat использует API Google Workspace Events и функцию публикации/подписки для распознавания вопросов в чат-группах и ответа на них в режиме реального времени, даже если об этом не упоминается.
Приложение Chat использует все сообщения, отправленные в чате, в качестве источника данных и базы знаний: когда кто-то задаёт вопрос, приложение Chat проверяет наличие ранее опубликованных ответов и затем делится одним из них. Если ответ не найден, приложение сообщает, что не может ответить. В каждом ответе пользователи могут нажать дополнительную кнопку действия, чтобы @упомянуть менеджера чата и попросить ответ. Благодаря использованию Gemini AI приложение Google Chat адаптируется и расширяет свою базу знаний, постоянно обучаясь на основе разговоров в чатах, в которые оно добавлено.
Вот как работает приложение «Чат» в сфере адаптации и поддержки сотрудников:
Рисунок 1. Чарли добавляет приложение Chat с функцией помощника по обмену знаниями на основе искусственного интеллекта в чат-пространство. Рисунок 2. Дана спрашивает, предлагает ли компания обучение публичным выступлениям. Рисунок 3. Приложение Chat, в котором используется искусственный интеллект (ИИ), предлагает Vertex AI with Gemini ответить на вопрос Даны, основываясь на истории разговоров в чат-пространстве, а затем делится ответом.
Предпосылки
Учетная запись 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.
Цели
- Создайте приложение чата, которое использует генеративный ИИ для ответа на вопросы на основе знаний, полученных в ходе общения в чате.
- С генеративным ИИ:
- Выявляйте и отвечайте на вопросы сотрудников.
- Постоянно учитесь на примере продолжающихся бесед в чате.
- Прослушивайте и отвечайте на сообщения в чате в режиме реального времени, даже если приложение чата не отправляет сообщения напрямую.
- Сохраняйте сообщения путем записи в базу данных Firestore и чтения из нее.
- Облегчите совместную работу в чате, упомянув менеджеров пространства, если ответ на вопрос не найден.
Архитектура
На следующей диаграмме показана архитектура ресурсов Google Workspace и Google Cloud, используемых приложением Chat на основе ИИ-помощника по знаниям.
Приложение Chat для помощника на основе ИИ работает следующим образом:
Пользователь добавляет приложение Chat с помощником по знаниям на основе ИИ в чат-пространство:
Приложение «Чат» предлагает пользователю, добавившему его в пространство чата, настроить аутентификацию и авторизацию.
Приложение Chat извлекает сообщения из пространства, вызывая метод
spaces.messages.list
в Chat API, а затем сохраняет извлеченные сообщения в базе данных Firestore.Приложение Chat вызывает метод
subscriptions.create
в API событий Google Workspace, чтобы начать прослушивание событий, таких как сообщения в чат-группе. Конечной точкой уведомлений подписки является тема Pub/Sub, которая использует Eventarc для пересылки событий в приложение Chat.Приложение Chat публикует вступительное сообщение в пространстве.
Пользователь в чате публикует сообщение:
Приложение Chat получает сообщения в режиме реального времени из темы Pub/Sub.
Приложение «Чат» добавляет сообщение в базу данных Firestore.
Если пользователь позже редактирует или удаляет сообщение, приложение чата получает обновленное или удаленное событие в режиме реального времени, а затем обновляет или удаляет сообщение в базе данных Firestore.
Приложение чата отправляет сообщение Vertex AI с помощью Gemini:
В этом запросе Vertex AI с Gemini проверяет, содержит ли сообщение вопрос. Если да, Gemini отвечает на вопрос, основываясь на истории сообщений чат-пространства, хранящейся в Firestore, а затем приложение Google Chat отправляет сообщение в чат-пространство. Если нет, не отвечайте.
Если Vertex AI с Gemini отвечает на вопрос, приложение Chat публикует ответ, вызывая метод
spaces.messages.create
в Chat API, используя аутентификацию приложения.Если Vertex AI с Gemini не может ответить на вопрос, приложение Chat публикует сообщение о том, что оно не может найти ответ на этот вопрос в истории чата.
Сообщения всегда содержат кнопку дополнительного действия, которую могут нажать пользователи, и тогда приложение Chat @упомянет менеджера пространства с просьбой ответить.
Приложение Chat получает уведомление о жизненном цикле от API событий Google Workspace о том, что подписка на пространство Chat скоро истечет:
- Приложение Chat отправляет запрос на продление подписки, вызывая метод
subscriptions.patch
в API событий Google Workspace.
- Приложение Chat отправляет запрос на продление подписки, вызывая метод
Приложение «Чат» удаляется из чат-пространства:
Приложение Chat удаляет подписку, вызывая метод
subscriptions.delete
в API событий Google Workspace.Приложение Chat удаляет данные чат-пространства из Firestore.
Ознакомьтесь с продуктами, используемыми в приложении чата с помощником по обмену знаниями на основе искусственного интеллекта
Приложение Chat для помощника на основе ИИ использует следующие продукты Google Workspace и Google Cloud:
- API Vertex AI с Gemini: платформа для генеративного ИИ на базе Gemini. Приложение Chat с ИИ-помощником использует API Vertex AI с Gemini для распознавания, понимания и ответа на вопросы сотрудников.
- API чата : API для разработки приложений Google Chat, которые получают и реагируют на события взаимодействия в чате, например, сообщения. Приложение Chat с искусственным интеллектом использует API чата для:
- Получайте и отвечайте на события взаимодействия, отправленные через чат.
- Список сообщений, отправленных в пространстве.
- Публикуйте ответы на вопросы пользователей в теме.
- Настройте атрибуты, определяющие, как он будет выглядеть в чате, например имя и аватар.
- API событий Google Workspace : этот API позволяет подписываться на события и управлять уведомлениями об изменениях в приложениях Google Workspace. Приложение Chat для помощника по знаниям на основе ИИ использует API событий Google Workspace для прослушивания сообщений, опубликованных в чат-группе, чтобы обнаруживать вопросы и отвечать на них, даже если они не упомянуты.
- Firestore : бессерверная база данных документов. Приложение Chat, ИИ-помощник по обмену знаниями, использует Firestore для хранения данных о сообщениях, отправленных в чате.
- Pub/Sub : Pub/Sub — это асинхронный и масштабируемый сервис обмена сообщениями, который разделяет сервисы, создающие сообщения, и сервисы, обрабатывающие эти сообщения. Приложение Chat, работающее на основе ИИ, использует Pub/Sub для получения событий подписки из чат-групп.
- Eventarc : Eventarc позволяет создавать архитектуры, управляемые событиями, без необходимости внедрения, настройки или поддержки базовой инфраструктуры. Приложение Chat для помощника по знаниям на основе ИИ использует Eventarc для маршрутизации событий из Pub/Sub в чат-пространство и облачную функцию, которая получает и обрабатывает события подписки.
- Облачные функции : лёгкий бессерверный вычислительный сервис, позволяющий создавать специализированные автономные функции, которые могут реагировать на взаимодействие в чате и события подписки без необходимости управления сервером или средой выполнения. Приложение чата с ИИ-помощником использует две облачные функции:
-
app
: размещает конечную точку HTTP, в которую Chat отправляет события взаимодействия, а также выступает в качестве вычислительной платформы для запуска логики, которая обрабатывает эти события и реагирует на них. -
eventsApp
: получает и обрабатывает события чат-пространства, такие как сообщения из подписки Pub/Sub.
- Cloud Build : полностью управляемая платформа непрерывной интеграции, доставки и развертывания, которая выполняет автоматизированные сборки.
- Cloud Run : полностью управляемая среда для запуска контейнерных приложений.
-
Подготовьте окружающую среду
В этом разделе показано, как создать и настроить проект 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 Google Workspace Events, API Eventarc и API Cloud Run Admin.
Подтвердите, что вы включаете API в правильном облачном проекте, затем нажмите Далее .
Подтвердите, что вы включаете правильные API, затем нажмите Включить .
gcloud CLI
При необходимости установите текущий проект Cloud на тот, который вы создали:
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 Google Workspace Events, API Eventarc и API Cloud Run Admin:
gcloud services enable chat.googleapis.com \ aiplatform.googleapis.com \ cloudfunctions.googleapis.com \ firestore.googleapis.com \ cloudbuild.googleapis.com \ pubsub.googleapis.com \ workspaceevents.googleapis.com \ eventarc.googleapis.com \ run.googleapis.com
Настройте аутентификацию и авторизацию
Аутентификация и авторизация позволяют приложению Chat получать доступ к ресурсам в Google Workspace и Google Cloud.
В этом руководстве мы опубликуем приложение Google Chat для внутренних целей, чтобы можно было использовать заглушки. Перед внешней публикацией приложения Google Chat замените заглушки на реальные данные для экрана согласия.
Настройте экран согласия OAuth, укажите области действия и зарегистрируйте свое приложение.
В консоли Google Cloud перейдите в > > Брендинг .
Если вы уже настроили, вы можете настроить следующие параметры экрана согласия OAuth в разделах «Брендинг» , «Аудитория» и «Доступ к данным» . Если вы видите сообщение: пока не настроено , нажмите «Начать» :
- В разделе «Информация о приложении» в поле «Имя приложения» введите
AI knowledge assistant
. - В поле «Электронная почта поддержки пользователей» выберите свой адрес электронной почты или соответствующую группу Google.
- Нажмите кнопку «Далее» .
- В разделе «Аудитория» выберите «Внутренняя» . Если выбрать «Внутренняя» невозможно, выберите «Внешняя» .
- Нажмите кнопку «Далее» .
- В разделе «Контактная информация» введите адрес электронной почты , на который вы можете получать уведомления о любых изменениях в вашем проекте.
- Нажмите кнопку «Далее» .
- В разделе Готово ознакомьтесь с Политикой обработки данных пользователей API служб Google и, если вы согласны, выберите Я согласен с Политикой обработки данных пользователей API служб Google .
- Нажмите «Продолжить» .
- Нажмите «Создать» .
- Если вы выбрали тип пользователя «Внешний» , добавьте тестовых пользователей:
- Нажмите Аудитория .
- В разделе Тестовые пользователи нажмите Добавить пользователей .
- Введите свой адрес электронной почты и адрес других авторизованных тестовых пользователей, затем нажмите кнопку «Сохранить» .
- В разделе «Информация о приложении» в поле «Имя приложения» введите
Нажмите «Доступ к данным» > «Добавить или удалить области действия» . Появится панель со списком областей действия для каждого API, которые вы включили в своем проекте Google Cloud.
В разделе «Добавить области вручную» вставьте следующую область:
-
https://www.googleapis.com/auth/chat.messages
-
Нажмите Добавить в таблицу .
Нажмите Обновить .
После выбора областей, необходимых вашему приложению, на странице «Доступ к данным» нажмите кнопку «Сохранить» .
Создайте учетные данные идентификатора клиента OAuth
В консоли Google Cloud перейдите API и службы > Учетные данные .
>Нажмите Создать учетные данные > Идентификатор клиента OAuth .
Нажмите Тип приложения > Веб-приложение .
В поле «Имя» введите имя учётной записи. Оно отображается только в консоли Google Cloud.
В разделе Разрешенные URI перенаправления нажмите Добавить URI .
В URIs 1 введите следующее:
https://REGION-PROJECT_ID.cloudfunctions.net/app/oauth2
Заменить следующее:
- REGION : регион облачной функции, например,
us-central1
. Позже, при создании двух облачных функций, необходимо установить это значение в качестве их региона. - PROJECT_ID : идентификатор созданного вами облачного проекта.
- REGION : регион облачной функции, например,
Нажмите «Создать» .
В созданном окне клиента OAuth нажмите «Загрузить JSON» .
Сохраните загруженный файл как
credentials.json
. Позже, при создании двух облачных функций, включите файлcredentials.json
в каждое развертывание.Нажмите ОК .
Создайте тему Pub/Sub
Тема Pub/Sub работает с API событий Google Workspace, позволяя подписываться на события в пространстве чата, например на сообщения, и уведомлять приложение чата в режиме реального времени.
Вот как создать тему Pub/Sub:
Консоль Google Cloud
В консоли Google Cloud перейдите в Меню > /Подписка .
Нажмите «Создать тему» .
В поле «Идентификатор темы» введите
events-api
.Снимите флажок Добавить подписку по умолчанию .
В разделе Шифрование выберите Ключ шифрования, управляемый Google .
Нажмите «Создать» . Появится тема «Pub/Sub».
Чтобы тема Pub/Sub и API событий Google Workspace работали вместе, предоставьте пользователю Chat IAM разрешение на публикацию сообщений в теме Pub/Sub:
На панели events-api в разделе РАЗРЕШЕНИЯ нажмите Добавить участника .
В разделе Добавить участников в поле Новые участники введите
chat-api-push@system.gserviceaccount.com
.В разделе Назначить роли в разделе Выберите роль выберите Pub/Sub > Издатель Pub/Sub .
Нажмите «Сохранить» .
gcloud CLI
Создайте тему Pub/Sub с идентификатором темы
events-api
:gcloud pubsub topics create events-api
Предоставьте пользователю IAM чата разрешение на размещение сообщений в теме Pub/Sub:
gcloud pubsub topics add-iam-policy-binding events-api \ --member='serviceAccount:chat-api-push@system.gserviceaccount.com' \ --role='roles/pubsub.publisher'
Создать базу данных Firestore
База данных Firestore сохраняет и извлекает данные из чат-зон, например, сообщения. Модель данных не определяется, она неявно задаётся в примере кода файлами model/message.js
и services/firestore-service.js
.
База данных приложения Chat с искусственным интеллектом использует модель данных NoSQL, основанную на документах Модель данных Firestore .
, организованных в коллекции . Подробнее см. в разделеНа следующей диаграмме представлен обзор модели данных приложения Chat для помощника по обмену знаниями на основе ИИ:
Корень содержит две коллекции:
spaces
, где каждый документ представляет собой чат-пространство, к которому добавлено приложение Chat. Каждое сообщение представлено документом в подколлекцииmessages
.users
, где каждый документ представляет пользователя, который добавил приложение чата в пространство чата.
Просмотр коллекций, документов и определений полей
spaces
Чат-пространство, включающее приложение чата с помощником на основе ИИ.
Поля | |
---|---|
Document ID | String Уникальный идентификатор конкретного пространства. Часть имени ресурса пространства в API чата. |
messages | Subcollection of Documents ( Сообщения, отправленные в чате. Соответствует Document ID message в Firebase. |
spaceName | String Уникальное имя пространства в API чата. Соответствует имени ресурса пространства в API чата. |
messages
Сообщения, отправленные в чате.
Поля | |
---|---|
Document ID | String Уникальный идентификатор конкретного сообщения. |
name | String Уникальное имя сообщения в API чата. Соответствует имени ресурса сообщения в API чата. |
text | String Текст сообщения. |
time | String ( Timestamp format) Время создания сообщения. |
users
Пользователи, которые добавили приложение Chat с помощником на основе ИИ в чат-пространство.
Поля | |
---|---|
Document ID | String Уникальный идентификатор конкретного пользователя. |
accessToken | String Токен доступа, предоставленный во время авторизации пользователя OAuth 2.0, используемый для вызова API Google Workspace. |
refreshToken | String Токен обновления, предоставленный во время авторизации пользователя OAuth 2.0. |
Вот как создать базу данных Firestore:
Консоль Google Cloud
В консоли Google Cloud перейдите Firestore .
>Нажмите Создать базу данных .
В разделе «Выберите режим Firestore» нажмите «Основной режим» .
Нажмите «Продолжить» .
Настройте базу данных:
В поле Имя базы данных оставьте идентификатор базы данных
(default)
.В разделе Тип местоположения выберите Регион .
В поле «Регион» укажите регион для вашей базы данных, например,
us-central1
. Для оптимальной производительности выберите то же или близлежащее местоположение, что и для облачных функций приложения «Чат».
Нажмите Создать базу данных .
gcloud CLI
Создайте базу данных Firestore в собственном режиме:
gcloud firestore databases create \ --location=LOCATION \ --type=firestore-native
Замените LOCATION на название региона Firestore , например,
us-central1
. Для оптимальной производительности выберите то же или близлежащее местоположение, что и облачные функции приложения Chat.
Создайте и разверните приложение чата
Теперь, когда ваш проект Google Cloud создан и настроен, вы готовы к сборке и развертыванию приложения Chat. В этом разделе вы выполните следующие действия:
- Создайте и разверните две облачные функции. Одна для реагирования на события взаимодействия в чате, а другая — на события публикации/подписки.
- Создайте и разверните приложение чата на странице конфигурации API Google Chat.
Создание и развертывание облачных функций
В этом разделе вы создадите и развернете две облачные функции, названные:
-
app
: размещает и запускает код приложения Chat, который реагирует на события, полученные от Chat в виде HTTP-запросов. -
eventsApp
: получает и обрабатывает события чат-пространства, такие как сообщения от Pub/Sub.
Вместе эти облачные функции составляют логику приложения чат-помощника на основе ИИ.
При желании перед созданием облачных функций выделите немного времени на просмотр и ознакомление с примером кода, размещенным на GitHub.
Создать и развернуть app
Консоль Google Cloud
Загрузите код с GitHub в виде zip-файла.
Распакуйте загруженный zip-файл.
Извлеченная папка содержит весь репозиторий примеров Google Workspace.
В извлеченной папке перейдите в каталог
google-chat-samples-main/node/ai-knowledge-assistant
.В каталоге
google-chat-samples/node/ai-knowledge-assistant
добавьте файлcredentials.json
, который вы загрузили при создании учетных данных идентификатора клиента OAuth для аутентификации и авторизации.Сожмите содержимое папки
ai-knowledge-assistant
в zip-файл.ZIP-файл должен содержать следующие файлы и папки:
-
.gcloudignore
-
.gitignore
-
README.md
-
deploy.sh
-
env.js
-
events_index.js
-
http_index.js
-
index.js
-
credentials.json
-
package-lock.json
-
package.json
-
controllers/
-
model/
-
services/
-
test/
-
В консоли Google Cloud перейдите Функции облака .
>Убедитесь, что выбран проект Google Cloud для вашего приложения Chat.
Нажмите
Создать функцию .На странице «Создать функцию» настройте свою функцию:
- В разделе Окружающая среда выберите Функция запуска облака .
- В поле Имя функции введите
app
. - В поле «Region» выберите регион, например,
us-central1
. Этот регион должен соответствовать региону, указанному в разрешенном URI перенаправления при создании учётных данных идентификатора клиента OAuth для аутентификации и авторизации. - В поле Тип триггера выберите HTTPS .
- В разделе «Аутентификация» выберите Разрешить неаутентифицированные вызовы .
- Нажмите кнопку «Далее» .
В Runtime выберите Node.js 20 .
В поле «Точка входа» удалите текст по умолчанию и введите
app
.В Исходном коде выберите Загрузка Zip .
В поле «Целевой контейнер» создайте или выберите контейнер:
- Нажмите кнопку «Обзор» .
- Выберите ведро.
- Нажмите Выбрать .
Google Cloud загружает ZIP-архив в этот контейнер и извлекает из него файлы компонентов. Затем Cloud Functions копирует файлы компонентов в Cloud Function.
В Zip file загрузите zip-файл, который вы скачали с GitHub, распаковали и повторно сжали:
- Нажмите кнопку «Обзор» .
- Перейдите к zip-файлу и выберите его.
- Нажмите «Открыть» .
Нажмите Развернуть .
Откроется страница сведений о функциях Cloud Functions , на которой ваша функция будет отображаться с двумя индикаторами выполнения: один для сборки, а другой для сервиса. Когда оба индикатора выполнения исчезнут и вместо них появится галочка, ваша функция будет развернута и готова к работе.
Отредактируйте пример кода, чтобы задать константы:
- На странице сведений о функции облака нажмите кнопку Изменить .
- Нажмите кнопку «Далее» .
- В Исходном коде выберите Встроенный редактор .
- Во встроенном редакторе откройте и отредактируйте файл
env.js
:- Установите значение project на основе идентификатора вашего облачного проекта.
- Установите значение location в соответствии с регионом облачной функции, например
us-central1
.
Нажмите Развернуть .
gcloud CLI
Клонируйте код с GitHub:
git clone https://github.com/googleworkspace/google-chat-samples.git
Перейдите в каталог, в котором находится код этого чат-приложения для помощника по обмену знаниями на основе ИИ:
cd google-chat-samples/node/ai-knowledge-assistant
В каталоге
google-chat-samples/node/ai-knowledge-assistant
добавьте файлcredentials.json
, который вы загрузили при создании учетных данных идентификатора клиента OAuth для аутентификации и авторизации.Отредактируйте файл
env.js
, чтобы задать переменные среды:- Установите значение project на основе идентификатора вашего облачного проекта.
- Установите значение location в соответствии с регионом облачной функции, например
us-central1
.
Развертывание облачной функции в Google Cloud:
gcloud functions deploy app \ --gen2 \ --region=REGION \ --runtime=nodejs20 \ --source=. \ --entry-point=app \ --trigger-http \ --allow-unauthenticated
Замените REGION на значение региона облачной функции, которое соответствует заданному в файле
env.js
, напримерus-central1
.
Создание и развертывание eventsApp
Консоль Google Cloud
В консоли Google Cloud перейдите Функции облака .
>Убедитесь, что выбран проект Google Cloud для вашего приложения Chat.
Нажмите
Создать функцию .На странице «Создать функцию» настройте свою функцию:
- В разделе Окружающая среда выберите Функция запуска облака .
- В поле Имя функции введите
eventsApp
. - В поле «Region» выберите регион, например,
us-central1
. Этот регион должен соответствовать региону, указанному в разрешенном URI перенаправления при создании учётных данных идентификатора клиента OAuth для аутентификации и авторизации. - В поле Тип триггера выберите Cloud Pub/Sub .
- В теме Cloud Pub/Sub выберите созданное вами имя темы Pub/Sub, имеющее формат
projects/ PROJECT /topics/events-api
, где PROJECT — это идентификатор вашего проекта Cloud. - Если вы видите сообщение, начинающееся с
Service account(s) might not have enough permissions to deploy the function with the selected trigger.
, нажмите Предоставить все . - Нажмите кнопку «Далее» .
В Runtime выберите Node.js 20 .
В поле «Точка входа» удалите текст по умолчанию и введите
eventsApp
.В Исходном коде выберите Zip from Cloud Storage .
В разделе «Расположение облачного хранилища» нажмите кнопку «Обзор» .
Выберите контейнер, в который вы загрузили zip-файл при создании
app
Cloud Function.Щелкните по загруженному вами zip-файлу.
Нажмите Выбрать .
Нажмите Развернуть .
Откроется страница сведений о функциях Cloud Functions , на которой ваша функция будет отображаться с тремя индикаторами выполнения: один для сборки, один для сервиса и один для триггера. Когда все три индикатора выполнения исчезнут и вместо них появится галочка, ваша функция будет развернута и готова к работе.
Отредактируйте пример кода, чтобы задать константы:
- На странице сведений о функции облака нажмите кнопку Изменить .
- Нажмите кнопку «Далее» .
- В Исходном коде выберите Встроенный редактор .
- Во встроенном редакторе откройте и отредактируйте файл
env.js
:- Установите значение project на основе идентификатора вашего облачного проекта.
- Установите значение location в соответствии с регионом облачной функции, например
us-central1
.
Нажмите Развернуть .
gcloud CLI
В gcloud CLI, если вы еще этого не сделали, перейдите в каталог, содержащий код для этого чат-приложения помощника по знаниям на основе ИИ, которое вы ранее клонировали из GitHub:
cd google-chat-samples/node/ai-knowledge-assistant
В каталоге
google-chat-samples/node/ai-knowledge-assistant
добавьте файлcredentials.json
, который вы загрузили при создании учетных данных идентификатора клиента OAuth для аутентификации и авторизации.Отредактируйте файл
env.js
, чтобы задать переменные среды:- Установите значение project на основе идентификатора вашего облачного проекта.
- Установите значение location в соответствии с регионом облачной функции, например
us-central1
.
Развертывание облачной функции в Google Cloud:
gcloud functions deploy eventsApp \ --gen2 \ --region=REGION \ --runtime=nodejs20 \ --source=. \ --entry-point=eventsApp \ --trigger-topic=events-api
Замените REGION на значение региона облачной функции, которое соответствует заданному в файле
env.js
, напримерus-central1
.
Скопируйте URL-адрес триггера функции облака app
.
URL-адрес триггера функции облака app
вставляется в следующем разделе при настройке приложения чата в консоли Google Cloud .
Консоль Google Cloud
В консоли Google Cloud перейдите Функции облака .
>В столбце Имя списка облачных функций нажмите
app
.Нажмите кнопку «Триггер» .
Скопируйте URL-адрес .
gcloud CLI
Опишите функцию облака
app
:gcloud functions describe app
Скопируйте свойство
url
.
Настройте приложение чата в консоли Google Cloud
В этом разделе показано, как настроить API чата в консоли Google Cloud с использованием информации о вашем приложении чата, включая имя приложения чата и URL-адрес триггера облачной функции приложения чата, в которую оно отправляет события взаимодействия с чатом.
В консоли Google Cloud выберите Меню > Google Workspace > Библиотека продуктов > Google Chat API > Управление > Конфигурация .
Дополнительные продуктыВ поле «Имя приложения» введите
AI knowledge assistant
.В поле URL аватара введите
https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/live_help/default/24px.svg
.В поле Описание введите
Answers questions with AI
.Установите переключатель «Включить интерактивные функции» в положение «Вкл.».
В разделе «Функциональность» выберите Присоединяйтесь к пространствам и групповым беседам .
В разделе «Параметры подключения» выберите URL-адрес конечной точки HTTP .
В поле URL конечной точки HTTP вставьте URL-адрес триггера из функции облака
app
в форматеhttps://
REGION-
PROJECT_ID.cloudfunctions.net/app
, где REGION — это регион функции облака, например,us-central1
, а PROJECT_ID — это идентификатор созданного вами проекта облака.В разделе «Видимость» выберите «Сделать это приложение чата доступным для определенных людей и групп в вашем домене Workspace» и введите свой адрес электронной почты.
При желании в разделе Журналы выберите Записывать ошибки в Журнал .
Нажмите «Сохранить» . Появится сообщение о сохранении конфигурации, означающее, что приложение чата готово к тестированию.
Протестируйте приложение чата
Протестируйте приложение Chat с помощником по знаниям на основе ИИ в чат-пространстве с сообщениями, задавая вопросы, на которые приложение Chat с помощником по знаниям на основе ИИ может ответить.
Вот несколько способов протестировать приложение Chat с помощником по обмену знаниями на основе искусственного интеллекта:
- Добавьте приложение чата с помощником на основе знаний ИИ в существующее чат-пространство и задавайте вопросы, которые имеют отношение к этому пространству.
- Создайте чат-пространство и опубликуйте несколько сообщений, которые можно использовать в качестве источника данных. Сообщения можно получать из Gemini , используя подсказку типа
Answer 20 common onboarding questions employees ask their teams.
Или вы можете вставить несколько абзацев из обзорного руководства «Develop with Chat» и задать вопросы по нему.
Для этого урока давайте создадим чат-пространство и вставим несколько абзацев из обзорного руководства «Develop with Chat» .
Откройте Google Чат.
Создайте чат-пространство:
Нажмите > «Создать пространство» .
новый чат»В поле Имя пространства введите
Testing AI knowledge assistant app
.В разделе Для чего это пространство? выберите Сотрудничество .
В разделе «Настройки доступа» выберите, кто может получить доступ к пространству.
Нажмите «Создать» .
Добавьте сообщения для использования в качестве источника данных:
В веб-браузере откройте обзорное руководство по разработке с помощью чата .
Скопируйте и вставьте содержимое руководства в созданное вами пространство чата.
Добавьте приложение Chat для помощника на основе знаний ИИ:
В строке написания сообщения введите
@AI knowledge assistant
и в появившемся меню предложений выберите приложение «AI Knowledge Assistant Chat» и нажмитеenter
.Появится сообщение с вопросом, хотите ли вы добавить приложение Chat для обмена знаниями на основе искусственного интеллекта в пространство. Нажмите «Добавить в пространство» .
Если вы впервые добавляете приложение Chat в пространство, вам необходимо настроить аутентификацию и авторизацию для приложения Chat:
- Нажмите «Настроить» .
- Откроется новое окно или вкладка браузера с предложением выбрать учётную запись Google. Выберите учётную запись, которую вы используете для тестирования.
- Проверьте разрешения, запрашиваемые приложением Chat на основе ИИ-помощника. Чтобы предоставить их, нажмите «Разрешить» .
- Появится сообщение «
You may close this page now.
. Закройте окно или вкладку браузера и вернитесь в чат.
Задайте вопрос:
В строке написания сообщения введите вопрос, например:
What are Google Chat apps?
Приложение Chat отвечит на вопросы помощника на основе ИИ.
При желании, если ответ неточен или недостаточен, чтобы помочь ИИ улучшить историю разговоров, нажмите
. Получить помощь . Приложение Chat с ИИ-помощником по знаниям укажет менеджера пространства и попросит его ответить на вопрос. В следующий раз приложение Chat с ИИ-помощником по знаниям будет знать ответ!
Соображения, альтернативные варианты архитектуры и дальнейшие шаги
В этом разделе рассматриваются другие способы создания приложения Chat для помощника на основе ИИ.
Firestore, Cloud Storage или вызов списка сообщений в API чата
В этом руководстве рекомендуется хранить данные пространства чата, такие как сообщения, в базе данных Firestore, поскольку это повышает производительность по сравнению с вызовом метода list
ресурса Message
через Chat API каждый раз, когда приложение Chat отвечает на вопрос. Более того, многократный вызов list messages
может привести к превышению квоты API приложением Chat.
Однако если история разговоров в чат-пространстве станет слишком длинной, использование Firestore может стать дорогостоящим.
Cloud Storage — альтернатива Firestore. Каждое пространство, в котором активно приложение Chat с искусственным интеллектом, получает свой собственный объект, а каждый объект представляет собой текстовый файл, содержащий все сообщения в этом пространстве. Преимущество такого подхода заключается в том, что всё содержимое текстового файла можно сразу передать в Vertex AI с Gemini, но недостаток заключается в том, что обновление истории сообщений требует больше усилий, поскольку в Cloud Storage нельзя добавлять данные к объекту, а можно только заменять его. Этот подход не имеет смысла, если вы регулярно обновляете историю сообщений, но он будет хорошим выбором, если вы периодически обновляете историю сообщений пакетно, например, раз в неделю.
Устранение неполадок
Когда приложение или карточка Google Chat возвращает ошибку, в интерфейсе Chat отображается сообщение «Что-то пошло не так» или «Не удалось обработать ваш запрос». Иногда в интерфейсе Chat не отображается сообщение об ошибке, но приложение или карточка Chat выдаёт неожиданный результат; например, сообщение может не появиться.
Хотя сообщение об ошибке может не отображаться в пользовательском интерфейсе чата, при включенном ведении журнала ошибок для приложений чата доступны описательные сообщения об ошибках и данные журнала, которые помогут вам исправить ошибки. Сведения о просмотре, отладке и исправлении ошибок см. в статье «Устранение неполадок и исправление ошибок Google Chat» .
Уборка
Чтобы избежать списания средств с вашего аккаунта Google Cloud за ресурсы, используемые в этом руководстве, мы рекомендуем вам удалить проект Cloud.
- В консоли Google Cloud перейдите на страницу «Управление ресурсами» . Выберите « Меню > «IAM и администрирование» > «Управление ресурсами» .
- В списке проектов выберите проект .
- В диалоговом окне введите идентификатор проекта, а затем нажмите кнопку «Завершить» , чтобы удалить проект.
Похожие темы
- Управляйте проектами с помощью Google Chat, Vertex AI и Firestore
- Реагируйте на инциденты с помощью Google Chat, Vertex AI и Apps Script