В этом руководстве показано, как создать приложение Google Chat, которое отвечает на вопросы, основанные на разговорах в чат-пространствах с помощью генеративного ИИ на базе Vertex AI с Gemini. Приложение Chat использует API Google Workspace Events плюс Pub/Sub для распознавания и ответа на вопросы, размещенные в чат-пространствах в режиме реального времени, даже если это не указано.
Приложение 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 billing к проекту Cloud. Чтобы узнать, есть ли у вас доступ, см. Разрешения, необходимые для включения billing .
- Используйте неаутентифицированные вызовы функций 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
в API Chat, а затем сохраняет извлеченные сообщения в базе данных Firestore.Приложение Chat вызывает метод
subscriptions.create
в API событий Google Workspace, чтобы начать прослушивание событий, таких как сообщения в пространстве. Конечная точка уведомления подписки — это тема Pub/Sub, которая использует Eventarc для пересылки события в приложение Chat.Приложение «Чат» публикует вступительное сообщение в пространстве.
Пользователь в чате публикует сообщение:
Приложение Chat получает сообщение в режиме реального времени из темы Pub/Sub.
Приложение «Чат» добавляет сообщение в базу данных Firestore.
Если пользователь впоследствии редактирует или удаляет сообщение, приложение Chat получает обновленное или удаленное событие в режиме реального времени, а затем обновляет или удаляет сообщение в базе данных 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 Space скоро истечет:
- Приложение Chat отправляет запрос на продление подписки, вызывая метод
subscriptions.patch
в API событий Google Workspace.
- Приложение Chat отправляет запрос на продление подписки, вызывая метод
Приложение «Чат» удаляется из чат-пространства:
Приложение Chat удаляет подписку, вызывая метод
subscriptions.delete
в API событий Google Workspace.Приложение Chat удаляет данные чат-пространства из Firestore.
Ознакомьтесь с продуктами, используемыми в приложении чата AI Knowledge Assistant
Приложение Chat для помощника по знаниям на основе искусственного интеллекта использует следующие продукты Google Workspace и Google Cloud:
- Vertex AI API с Gemini: Генеративная платформа ИИ на базе Gemini. Приложение чата помощника по знаниям ИИ использует Vertex AI API с Gemini для распознавания, понимания и ответа на вопросы сотрудников.
- Chat API : API для разработки приложений Google Chat, которые получают и реагируют на события взаимодействия Chat, такие как сообщения. Приложение Chat с искусственным интеллектом использует Chat API для:
- Получайте и отвечайте на события взаимодействия, отправленные через чат.
- Список сообщений, отправленных в чате.
- Публикуйте ответы на вопросы пользователей в теме.
- Настройте атрибуты, определяющие, как он будет выглядеть в чате, например имя и изображение аватара.
- API событий Google Workspace : этот API позволяет вам подписываться на события и управлять уведомлениями об изменениях в приложениях Google Workspace. Приложение Chat AI Knowledge Assistant использует API событий Google Workspace для прослушивания сообщений, размещенных в пространстве Chat, чтобы он мог обнаруживать и отвечать на вопросы, даже если они не упомянуты.
- Firestore : бессерверная база данных документов. Приложение Chat с помощником по знаниям AI использует Firestore для хранения данных о сообщениях, отправленных в пространстве Chat.
- Pub/Sub : Pub/Sub — это асинхронная и масштабируемая служба обмена сообщениями, которая разделяет службы, создающие сообщения, и службы, обрабатывающие эти сообщения. Приложение Chat для помощника по знаниям AI использует Pub/Sub для получения событий подписки из пространств Chat.
- Eventarc : Eventarc позволяет вам создавать архитектуры, управляемые событиями, без необходимости внедрения, настройки или обслуживания базовой инфраструктуры. Приложение Chat для помощника по знаниям AI использует Eventarc для маршрутизации событий из Pub/Sub в пространство Chat и функцию Cloud, которая получает и обрабатывает события подписки.
- Облачные функции : легкая серверная вычислительная служба, которая позволяет вам создавать одноцелевые, автономные функции, которые могут реагировать на взаимодействие чата и события подписки без необходимости управления сервером или средой выполнения. Приложение чата AI Knowledge Assistant использует две облачные функции, названные:
-
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 перейдите в раздел Billing . Нажмите Menu > Billing > My Projects .
- В поле «Выберите организацию» выберите организацию, связанную с вашим проектом 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 на идентификатор созданного вами облачного проекта.
Включите 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:
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» .
В URI 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 перейдите Pub /Sub .
>Нажмите «Создать тему» .
В поле «Идентификатор темы» введите
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 помощника по знаниям AI использует модель данных NoSQL на основе документов Модель данных Firestore .
, организованных в коллекции . Чтобы узнать больше, см.На следующей диаграмме представлен обзор модели данных приложения Chat для помощника по обмену знаниями на основе искусственного интеллекта:
Корень содержит две коллекции:
spaces
, где каждый документ представляет собой пространство чата, к которому добавлено приложение чата. Каждое сообщение представлено документом в подколлекцииmessages
.users
, где каждый документ представляет пользователя, который добавил приложение Chat в пространство Chat.
Просмотр коллекций, документов и определений полей
spaces
Чат-пространство, включающее приложение-помощника по обмену знаниями на базе искусственного интеллекта.
Поля | |
---|---|
Document ID | String Уникальный идентификатор определенного пространства. Часть имени ресурса пространства в API чата. |
messages | Subcollection of Documents ( Сообщения, отправленные в чате. Соответствует Document ID message в Firebase. |
spaceName | String Уникальное имя пространства в Chat API. Соответствует имени ресурса пространства в Chat API. |
messages
Сообщения, отправленные в чате.
Поля | |
---|---|
Document ID | String Уникальный идентификатор конкретного сообщения. |
name | String Уникальное имя сообщения в Chat API. Соответствует имени ресурса сообщения в Chat API. |
text | String Текст сообщения. |
time | String ( Timestamp format) Время создания сообщения. |
users
Пользователи, которые добавили приложение чата с помощником по знаниям на основе искусственного интеллекта в чат-пространство.
Поля | |
---|---|
Document ID | String Уникальный идентификатор конкретного пользователя. |
accessToken | String Токен доступа, предоставленный во время авторизации пользователя OAuth 2.0, используемый для вызова API Google Workspace. |
refreshToken | String Токен обновления, предоставленный во время авторизации пользователя OAuth 2.0. |
Вот как создать базу данных Firestore:
Консоль Google Cloud
В консоли Google Cloud перейдите Firestore .
>Нажмите Создать базу данных .
В разделе «Выберите режим Firestore» выберите «Основной режим» .
Нажмите «Продолжить» .
Настройте базу данных:
В поле «Имя базы данных» оставьте идентификатор базы данных
(default)
.В разделе Тип местоположения выберите Регион .
В Region укажите регион для вашей базы данных, например
us-central1
. Для лучшей производительности выберите то же или близкое расположение, что и Cloud Functions приложения Chat.
Нажмите Создать базу данных .
gcloud CLI
Создайте базу данных Firestore в собственном режиме:
gcloud firestore databases create \ --location=LOCATION \ --type=firestore-native
Замените LOCATION на имя региона Firestore , например
us-central1
. Для лучшей производительности выберите то же или близлежащее местоположение, что и функции облака приложения Chat.
Создайте и разверните приложение чата
Теперь, когда ваш проект Google Cloud создан и настроен, вы готовы построить и развернуть приложение Chat. В этом разделе вы делаете следующее:
- Создайте и разверните две облачные функции. Одна для реагирования на события взаимодействия в чате, а другая для реагирования на события Pub/Sub.
- Создайте и разверните приложение чата на странице конфигурации API чата Google.
Создание и развертывание облачных функций
В этом разделе вы создадите и развернете две облачные функции, названные:
-
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-файл.
- Нажмите «Открыть» .
Нажмите «Развернуть» .
Откроется страница сведений о функциях облака , и ваша функция появится с двумя индикаторами прогресса: один для сборки и один для сервиса. Когда оба индикатора прогресса исчезнут и будут заменены галочкой, ваша функция развернута и готова.
Отредактируйте пример кода, чтобы задать константы:
- На странице сведений о функции облака нажмите «Изменить» .
- Нажмите Далее .
- В Исходном коде выберите Встроенный редактор .
- Во встроенном редакторе откройте и отредактируйте файл
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 из облачного хранилища .
В разделе «Расположение облачного хранилища» нажмите «Обзор» .
Выберите контейнер, в который вы загрузили zip-файл при создании
app
Cloud Function.Нажмите на загруженный вами zip-файл.
Нажмите Выбрать .
Нажмите «Развернуть» .
Откроется страница сведений о функциях облака , и ваша функция появится с тремя индикаторами прогресса: один для сборки, один для службы и один для триггера. Когда все три индикатора прогресса исчезнут и будут заменены галочкой, ваша функция будет развернута и готова.
Отредактируйте пример кода, чтобы задать константы:
- На странице сведений о функции облака нажмите «Изменить» .
- Нажмите Далее .
- В Исходном коде выберите Встроенный редактор .
- Во встроенном редакторе откройте и отредактируйте файл
env.js
:- Установите значение project на ваш идентификатор облачного проекта.
- Установите значение location в соответствии с регионом облачной функции, например
us-central1
.
Нажмите «Развернуть» .
gcloud CLI
В интерфейсе командной строки gcloud, если вы еще не сделали этого, перейдите в каталог, содержащий код для этого приложения-чата AI Knowledge Assistant, которое вы ранее клонировали с 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 с помощником по обмену знаниями на основе искусственного интеллекта:
- Добавьте приложение чата с помощником по знаниям на основе искусственного интеллекта в существующее чат-пространство и задавайте вопросы, имеющие отношение к этому пространству.
- Создайте чат-пространство и опубликуйте несколько сообщений для использования в качестве источника данных. Сообщения можно получать из Gemini с помощью подсказки типа
Answer 20 common onboarding questions employees ask their teams.
Или вы можете вставить несколько абзацев из руководства по обзору разработки с помощью чата, а затем задать вопросы по нему.
Для этого урока давайте создадим чат-пространство и вставим несколько абзацев из обзорного руководства «Разработка с помощью чата» .
Откройте Google Чат.
Создайте чат-пространство:
Нажмите > «Создать пространство» .
новый чат»В поле Имя пространства введите
Testing AI knowledge assistant app
.В разделе «Для чего это пространство?» выберите «Сотрудничество» .
В разделе «Настройки доступа» выберите, кто может получить доступ к пространству.
Нажмите «Создать» .
Добавьте сообщения для использования в качестве источника данных:
В веб-браузере откройте обзорное руководство по разработке с помощью чата .
Скопируйте и вставьте содержимое руководства в созданное вами чат-пространство.
Добавьте приложение чата с помощником на основе знаний ИИ:
В строке написания сообщения введите
@AI knowledge assistant
и в появившемся меню подсказок выберите приложение «Чат AI knowledge assistant» и нажмитеenter
.Появится сообщение с вопросом, хотите ли вы добавить приложение чата AI Knowledge Assistant в пространство. Нажмите Добавить в пространство .
Если вы впервые добавляете приложение Chat в пространство, вам необходимо настроить аутентификацию и авторизацию для приложения Chat:
- Нажмите «Настроить» .
- Откроется новое окно или вкладка браузера, в которой вам будет предложено выбрать учетную запись Google. Выберите учетную запись, с которой вы проводите тестирование.
- Проверьте разрешения, которые запрашивает приложение AI Knowledge Assistant Chat. Чтобы предоставить их, нажмите Разрешить .
- Появится сообщение «
You may close this page now.
Закройте окно или вкладку браузера и вернитесь в чат.
Задайте вопрос:
В строке написания сообщения введите вопрос, например:
What are Google Chat apps?
Приложение Chat отслеживает знания и навыки помощника на основе искусственного интеллекта.
При желании, если ответ не точен или недостаточен, чтобы помочь улучшить историю разговоров ИИ, нажмите
Получить помощь . Приложение чата помощника ИИ по знаниям упоминает менеджера пространства и просит его ответить на вопрос. В следующий раз приложение чата помощника ИИ по знаниям будет знать ответ!
Соображения, альтернативные варианты архитектуры и следующие шаги
В этом разделе рассматриваются другие способы создания приложения-помощника по обмену знаниями на основе искусственного интеллекта (ИИ).
Firestore, Cloud Storage или вызов списка сообщений в API чата
В этом руководстве рекомендуется хранить данные пространства чата, такие как сообщения, в базе данных Firestore, поскольку это повышает производительность по сравнению с вызовом метода list
на ресурсе Message
с помощью API чата каждый раз, когда приложение чата отвечает на вопрос. Кроме того, повторный вызов list messages
может привести к тому, что приложение чата достигнет пределов квоты API.
Однако если история разговоров в чат-пространстве станет слишком длинной, использование Firestore может стать дорогостоящим.
Cloud Storage — альтернатива Firestore. Каждое пространство, в котором активно приложение Chat помощника по знаниям AI, получает свой собственный объект, а каждый объект — это текстовый файл, содержащий все сообщения в пространстве. Преимущество этого подхода в том, что полное содержимое текстового файла можно сразу передать в Vertex AI с Gemini, но недостаток в том, что требуется больше работы для обновления истории разговоров, поскольку вы не можете добавлять объекты в Cloud Storage, а только заменять их. Этот подход не имеет смысла, если вы регулярно обновляете историю сообщений, но он будет хорошим выбором, если вы периодически обновляете историю сообщений пакетно, скажем, раз в неделю.
Устранение неполадок
Когда приложение или карта Google Chat возвращает ошибку, интерфейс Chat отображает сообщение «Что-то пошло не так» или «Не удалось обработать ваш запрос». Иногда интерфейс Chat не отображает никаких сообщений об ошибках, но приложение или карта Chat выдает неожиданный результат; например, сообщение карты может не отображаться.
Хотя сообщение об ошибке может не отображаться в пользовательском интерфейсе чата, описательные сообщения об ошибках и данные журнала доступны, чтобы помочь вам исправить ошибки, когда включено ведение журнала ошибок для приложений чата. Для получения справки по просмотру, отладке и исправлению ошибок см. Устранение неполадок и исправление ошибок Google Chat .
Очистить
Чтобы избежать списания средств с вашего аккаунта Google Cloud за ресурсы, используемые в этом руководстве, мы рекомендуем вам удалить проект Cloud.
- В консоли Cloud Google перейдите на страницу управления ресурсами . Нажмите IAM & Admin > Управление ресурсами . >
- В списке проектов выберите проект, который вы хотите удалить, а затем нажмите Delete .
- В диалоговом окне введите идентификатор проекта, а затем нажмите «Выключить», чтобы удалить проект.
Похожие темы
- Управление проектами с Google Chat, Vertex AI и Firestore
- Ответьте на инциденты с Google Chat, Vertex AI и Script Apps