В этом руководстве показано, как создать приложение Google Chat, которое отвечает на вопросы, основанные на разговорах в чатах, с помощью генеративного ИИ на базе Vertex AI и Gemini. Приложение Chat использует API событий Google Workspace и Pub/Sub для распознавания и ответа на вопросы, размещенные в чатах, в режиме реального времени, даже если они не были упомянуты.
Приложение «Чат» использует все сообщения, отправленные в пространстве, в качестве источника данных и базы знаний: когда кто-то задает вопрос, приложение «Чат» проверяет наличие ранее полученных ответов и затем предоставляет один из них. Если ответ не найден, оно сообщает, что не может ответить. Используя Gemini AI, приложение Google Chat адаптируется и расширяет свою базу знаний, постоянно обучаясь на диалогах в пространствах, куда оно было добавлено.
Вот как работает приложение «Чат» в контексте адаптации и поддержки сотрудников:

Рисунок 1. Чарли добавляет приложение «Чат» с искусственным интеллектом в пространство чата. 
Рисунок 2. Дана спрашивает, предлагает ли компания тренинги по публичным выступлениям. 
Рисунок 3. Приложение Chat, использующее искусственный интеллект для помощи в построении чата, предлагает Vertex AI с Gemini ответить на вопрос Даны, основываясь на истории переписки в чате, а затем выводит ответ.
Предварительные требования
Корпоративный аккаунт Google Workspace с доступом к Google Chat .
Для выполнения следующих действий необходим доступ к сервисам Google Cloud:
- Создайте проект в Google Cloud.
- Привяжите учетную запись Google Cloud для выставления счетов к проекту Cloud. Чтобы узнать, есть ли у вас доступ, см. раздел «Разрешения, необходимые для включения выставления счетов» .
- Используйте неаутентифицированные вызовы Google Cloud Function , что можно проверить, определив, использует ли ваша организация Google Cloud ограниченный доступ к ресурсам домена .
При необходимости обратитесь к администратору Google Cloud за доступом или разрешением.
Если вы используете Google Cloud CLI , вам потребуется среда разработки Node.js, настроенная для работы с gcloud CLI. См. раздел «Настройка среды разработки Node.js» .
Цели
- Разработайте чат-приложение, использующее генеративный искусственный интеллект для ответа на вопросы на основе знаний, которыми обмениваются участники чата.
- С помощью генеративного ИИ:
- Выявлять и отвечать на вопросы сотрудников.
- Постоянно учитесь на основе текущих обсуждений в чате.
- Отслеживайте и отвечайте на сообщения в чате в режиме реального времени, даже если в чат-приложение не поступают прямые сообщения.
- Сохранение сообщений осуществляется путем записи и чтения данных из базы данных Firestore.
- Облегчите сотрудничество в чате, упомянув администраторов чата, если ответ на ваш вопрос не найден.
Архитектура
На следующей диаграмме показана архитектура ресурсов Google Workspace и Google Cloud, используемых приложением чата с искусственным интеллектом.
Приложение «Чат» с искусственным интеллектом работает следующим образом:
Пользователь добавляет приложение «Чат» с искусственным интеллектом в пространство чата:
Приложение «Чат» предлагает пользователю, добавившему его в чат, настроить аутентификацию и авторизацию.
Приложение «Чат» получает сообщения из пространства, вызывая метод
spaces.messages.listв API чата, а затем сохраняет полученные сообщения в базе данных Firestore.Приложение «Чат» вызывает метод
subscriptions.createиз API событий Google Workspace, чтобы начать прослушивание событий, таких как сообщения в пространстве. Конечная точка уведомлений подписки представляет собой тему Pub/Sub, которая использует Eventarc для пересылки события в приложение «Чат».Приложение «Чат» публикует вводное сообщение в этом пространстве.
Пользователь в чате отправляет сообщение:
Приложение «Чат» получает сообщение в режиме реального времени из темы 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 выводит сообщение о том, что не может найти ответ на этот вопрос в истории чата.
Приложение «Чат» получает уведомление о жизненном цикле от API событий Google Workspace о том, что срок действия подписки на пространство «Чат» скоро истечет:
- Приложение «Чат» отправляет запрос на продление подписки, вызывая метод
subscriptions.patchв API событий Google Workspace.
- Приложение «Чат» отправляет запрос на продление подписки, вызывая метод
Приложение «Чат» удалено из пространства чата:
Приложение «Чат» удаляет подписку, вызывая метод
subscriptions.deleteиз API событий Google Workspace.Приложение «Чат» удаляет данные из пространства чата из Firestore.
Ознакомьтесь с продуктами, используемыми приложением чата с ИИ-помощником.
Приложение «Чат» с искусственным интеллектом использует следующие продукты Google Workspace и Google Cloud:
- Vertex AI API с Gemini: платформа генеративного ИИ на базе Gemini. Приложение Chat, использующее ИИ-помощник, применяет Vertex AI API с Gemini для распознавания, понимания и ответа на вопросы сотрудников.
- API чата : API для разработки приложений Google Chat, которые получают и обрабатывают события взаимодействия в чате, такие как сообщения. Приложение Chat, использующее искусственный интеллект в качестве помощника, применяет API чата для:
- Получать и обрабатывать события взаимодействия, отправляемые чатом.
- Список сообщений, отправленных в этом пространстве.
- Размещайте ответы на вопросы пользователей в специальном разделе.
- Настройте атрибуты, определяющие внешний вид в чате, такие как имя и изображение аватара.
- API событий Google Workspace : Этот API позволяет подписываться на события и управлять уведомлениями об изменениях в приложениях Google Workspace. Приложение чата с ИИ-помощником использует API событий Google Workspace для отслеживания сообщений, размещенных в чате, чтобы обнаруживать и отвечать на вопросы, даже если они не упоминаются.
- Firestore : Бессерверная база данных документов. Приложение чата с искусственным интеллектом использует Firestore для хранения данных о сообщениях, отправленных в чате.
- Pub/Sub : Pub/Sub — это асинхронный и масштабируемый сервис обмена сообщениями, который отделяет сервисы, генерирующие сообщения, от сервисов, обрабатывающих эти сообщения. Приложение Chat, использующее искусственный интеллект в качестве помощника, применяет Pub/Sub для получения событий подписки из чат-пространств.
- Eventarc : Eventarc позволяет создавать архитектуры, управляемые событиями, без необходимости внедрения, настройки или обслуживания базовой инфраструктуры. Приложение Chat, использующее искусственный интеллект для работы с чатом, применяет Eventarc для маршрутизации событий из системы публикации/подписки в пространство чата и облачную функцию, которая получает и обрабатывает события подписки.
- Cloud Functions : Легковесный бессерверный вычислительный сервис, позволяющий создавать отдельные автономные функции, способные реагировать на события взаимодействия в чате и подписки без необходимости управления сервером или средой выполнения. Приложение чата с ИИ-помощником использует две облачные функции:
-
app: размещает HTTP-конечную точку, на которую чат отправляет события взаимодействия, и служит вычислительной платформой для выполнения логики, которая обрабатывает эти события и реагирует на них. -
eventsApp: Принимает и обрабатывает события в чате, такие как сообщения из подписки Pub/Sub.
- Cloud Build : Полностью управляемая платформа непрерывной интеграции, доставки и развертывания, которая запускает автоматизированные сборки.
- Cloud Run : Полностью управляемая среда для запуска контейнеризированных приложений.
-
Подготовьте окружающую среду
В этом разделе показано, как создать и настроить проект Google Cloud для приложения «Чат».
Создайте проект в Google Cloud.
Консоль Google Cloud
- В консоли Google Cloud перейдите в > IAM и администрирование > Создать проект .
- В поле «Название проекта» введите описательное название для вашего проекта.
Необязательно: чтобы изменить идентификатор проекта , нажмите «Редактировать» . Идентификатор проекта нельзя изменить после его создания, поэтому выберите идентификатор, который будет соответствовать вашим потребностям на протяжении всего срока действия проекта.
- В поле «Местоположение» нажмите «Обзор» , чтобы отобразить возможные места для вашего проекта. Затем нажмите «Выбрать» .
- Нажмите «Создать» . Консоль Google Cloud перенаправит вас на страницу «Панель управления», и ваш проект будет создан в течение нескольких минут.
gcloud CLI
В одной из следующих сред разработки получите доступ к интерфейсу командной строки Google Cloud ( 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 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 включите 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 в правильном облачном проекте, затем нажмите «Далее» .
Убедитесь, что вы включаете правильные API, затем нажмите «Включить» .
gcloud CLI
При необходимости установите в качестве текущего облачного проекта тот, который вы создали:
gcloud config set project PROJECT_IDЗамените PROJECT_ID на идентификатор проекта 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:
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
Настройте аутентификацию и авторизацию.
Аутентификация и авторизация позволяют приложению «Чат» получать доступ к ресурсам в Google Workspace и Google Cloud.
В этом руководстве вы публикуете приложение Google Chat внутри компании, поэтому использование информации-заполнителя допустимо. Перед публикацией приложения Google Chat за пределами компании замените информацию-заполнитель реальной информацией на экране согласия.
Настройте экран согласия OAuth, укажите области действия и зарегистрируйте свое приложение.
В консоли Google Cloud перейдите в >Google Auth platform > Брендинг .
Если вы уже настроилиGoogle Auth platformВы можете настроить следующие параметры экрана согласия OAuth в разделах «Брендинг» , «Аудитория» и «Доступ к данным» . Если вы видите сообщение, в котором говорится... Google Auth platform Если конфигурация еще не выполнена , нажмите «Начать» :
- В разделе «Информация о приложении» , в поле «Название приложения» введите
AI knowledge assistant. - В разделе «Электронная почта службы поддержки пользователей» выберите свой адрес электронной почты или соответствующую группу Google.
- Нажмите «Далее» .
- В разделе «Аудитория» выберите «Внутренняя» . Если выбрать «Внутренняя» невозможно, выберите «Внешняя» .
- Нажмите «Далее» .
- В поле «Контактная информация» укажите адрес электронной почты , на который вы сможете получать уведомления об изменениях в вашем проекте.
- Нажмите «Далее» .
- В разделе «Завершить » ознакомьтесь с Политикой использования пользовательских данных сервисов Google API и, если вы согласны, выберите «Я согласен с Политикой использования пользовательских данных сервисов Google API» .
- Нажмите «Продолжить» .
- Нажмите «Создать» .
- Если для типа пользователя выбран «Внешний» , добавьте тестовых пользователей:
- Нажмите «Аудитория» .
- В разделе «Проверка пользователей» нажмите «Добавить пользователей» .
- Введите свой адрес электронной почты и имена других авторизованных пользователей, участвующих в тестировании, затем нажмите «Сохранить» .
- В разделе «Информация о приложении» , в поле «Название приложения» введите
Нажмите «Доступ к данным» > «Добавить или удалить области действия ». Откроется панель со списком областей действия для каждого API, который вы включили в своем проекте Google Cloud.
В разделе «Добавить области действия вручную» вставьте следующую область действия:
-
https://www.googleapis.com/auth/chat.messages
-
Нажмите «Добавить в таблицу» .
Нажмите «Обновить» .
После выбора областей доступа, необходимых для вашего приложения, на странице «Доступ к данным» нажмите «Сохранить» .
Создание учетных данных клиента OAuth
В > 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
В > Публикация /Подписка .
Нажмите «Создать тему» .
В поле «Идентификатор темы» введите
events-api.Снимите флажок «Добавить подписку по умолчанию» .
В разделе «Шифрование» выберите ключ шифрования, управляемый Google .
Нажмите «Создать» . Отобразится тема «Публикация/Подписка».
Для совместной работы этой темы Pub/Sub и API событий Google Workspace предоставьте пользователю IAM в чате разрешение на публикацию сообщений в тему Pub/Sub:
В панели events-api в разделе PERMISSIONS нажмите Add Principal .
В разделе «Добавить субъекты» , в поле «Новые субъекты» введите
chat-api-push@system.gserviceaccount.com.В разделе «Назначение ролей» , в поле «Выберите роль» , выберите «Издатель/Подписчик» > «Издатель/Подписчик» .
Нажмите « Сохранить ».
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 .
База данных приложения «Чат-помощник с искусственным интеллектом» использует модель данных NoSQL, основанную на документах , организованных в коллекции . Для получения дополнительной информации см. модель данных Firestore .
На следующей диаграмме представлен общий обзор модели данных приложения «Чат-помощник на основе искусственного интеллекта»:
Корневой каталог содержит две коллекции:
spaces, где каждый документ представляет собой пространство чата, в которое добавлено приложение чата. Каждое сообщение представлено документом в подколлекцииmessages.users, где каждый документ представляет пользователя, который добавил приложение «Чат» в пространство чата.
Просмотр определений коллекций, документов и полей.
spaces
Чат-пространство, включающее приложение Chat с искусственным интеллектом в качестве помощника.
| Поля | |
|---|---|
Document ID | StringУникальный идентификатор конкретного пространства. Часть имени ресурса пространства в Chat 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
Пользователи, которые добавили приложение «Чат-помощник с искусственным интеллектом» в пространство чата.
| Поля | |
|---|---|
Document ID | StringУникальный идентификатор конкретного пользователя. |
accessToken | StringТокен доступа, выданный в процессе авторизации пользователя по протоколу OAuth 2.0, используется для вызова API Google Workspace. |
refreshToken | StringТокен обновления, выдаваемый в процессе авторизации пользователя по протоколу OAuth 2.0. |
Вот как создать базу данных Firestore:
Консоль Google Cloud
В > Firestore .
Нажмите «Создать базу данных» .
В разделе «Выберите режим Firestore» нажмите «Нативный режим» .
Нажмите «Продолжить» .
Настройте базу данных:
В поле «Назовите свою базу данных» оставьте идентификатор базы данных
(default).В разделе «Тип местоположения» выберите «Регион» .
В поле «Регион» укажите регион для вашей базы данных, например,
us-central1. Для оптимальной производительности выберите то же или близкое местоположение, что и облачные функции приложения «Чат».
Нажмите «Создать базу данных» .
gcloud CLI
Создайте базу данных Firestore в нативном режиме:
gcloud firestore databases create \ --location=LOCATION \ --type=firestore-nativeЗамените LOCATION на название региона Firestore , например,
us-central1. Для оптимальной производительности выберите то же или близкое местоположение, что и облачные функции приложения «Чат».
Создайте и разверните приложение «Чат».
Теперь, когда ваш проект Google Cloud создан и настроен, вы готовы к сборке и развертыванию приложения «Чат». В этом разделе вы выполните следующие действия:
- Создайте и разверните две облачные функции. Одна будет реагировать на события взаимодействия в чате, а другая — на события публикации/подписки.
- Создайте и разверните приложение чата на странице конфигурации Google Chat API.
Создайте и разверните облачные функции.
В этом разделе вы создадите и развернете две облачные функции с именами:
-
app: размещает и запускает код приложения «Чат», который отвечает на события, полученные от чата в виде HTTP-запросов. -
eventsApp: Принимает и обрабатывает события в чате, такие как сообщения от подписчиков/издателей.
Вместе эти облачные функции составляют логику приложения чата с искусственным интеллектом.
При желании, прежде чем создавать облачные функции, уделите немного времени изучению и ознакомлению с примером кода, размещенным на GitHub.
Создайте и разверните app
Консоль Google Cloud
Скачайте код с GitHub в виде ZIP-файла.
Распакуйте загруженный zip-файл.
Извлеченная папка содержит весь репозиторий примеров Google Workspace.
В извлеченной папке перейдите в каталог
add-ons-samples-main/node/chat/ai-knowledge-assistant.В каталоге
add-ons-samples/node/chat/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/
-
В > Cloud Functions .
Перейдите в раздел «Облачные функции».
Убедитесь, что для вашего приложения чата выбран проект Google Cloud.
Нажмите кнопку Создать функцию" .
На странице «Создать функцию» настройте свою функцию:
- В разделе «Окружение» выберите «Функция запуска в облаке» .
- В поле «Имя функции» введите
app. - В поле «Регион» выберите регион, например,
us-central1. Этот регион должен совпадать с регионом, указанным в разрешенном URI перенаправления при создании учетных данных OAuth для аутентификации и авторизации. - В поле «Тип триггера» выберите HTTPS .
- В разделе «Аутентификация» выберите «Разрешить неаутентифицированные вызовы» .
- Нажмите «Далее» .
В разделе «Среда выполнения» выберите Node.js 20 .
В поле "Точка входа " удалите текст по умолчанию и введите
app.В разделе «Исходный код» выберите «Загрузка ZIP-архива» .
В поле «Целевой сегмент» создайте или выберите сегмент:
- Нажмите «Обзор» .
- Выберите ведро.
- Нажмите «Выбрать» .
Google Cloud загружает ZIP-файл и извлекает файлы компонентов из этого хранилища. Затем Cloud Functions копирует файлы компонентов в свою функцию Cloud Function.
В папке ZIP-файл загрузите ZIP-файл, который вы скачали с GitHub, распаковали и повторно сжали:
- Нажмите «Обзор» .
- Перейдите к нужному ZIP-файлу и выберите его.
- Нажмите «Открыть» .
Нажмите «Развернуть» .
Открывается страница с подробной информацией о Cloud Functions , и ваша функция отображается с двумя индикаторами выполнения: один для сборки, другой для сервиса. Когда оба индикатора выполнения исчезнут и будут заменены галочкой, ваша функция развернута и готова к работе.
Отредактируйте пример кода, чтобы задать константы:
- На странице с подробной информацией о облачной функции нажмите «Редактировать» .
- Нажмите «Далее» .
- В разделе «Исходный код» выберите «Встроенный редактор» .
- Встроенный редактор откройте и отредактируйте файл
env.js:- Установите значение параметра project равным идентификатору вашего облачного проекта.
- Установите значение параметра location равным региону облачной функции, например,
us-central1.
Нажмите «Развернуть» .
gcloud CLI
Скопируйте код с GitHub:
git clone https://github.com/googleworkspace/add-ons-samples.gitПерейдите в каталог, содержащий код этого приложения-чата с искусственным интеллектом:
cd add-ons-samples/node/chat/ai-knowledge-assistantВ каталоге
add-ons-samples/node/chat/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
В > Cloud Functions .
Перейдите в раздел «Облачные функции».
Убедитесь, что для вашего приложения чата выбран проект Google Cloud.
Нажмите кнопку Создать функцию" .
На странице «Создать функцию» настройте свою функцию:
- В разделе «Окружение» выберите «Функция запуска в облаке» .
- В поле "Имя функции" введите
eventsApp. - В поле «Регион» выберите регион, например,
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., нажмите «Предоставить все» . - Нажмите «Далее» .
В разделе «Среда выполнения» выберите Node.js 20 .
В поле "Точка входа" удалите текст по умолчанию и введите
eventsApp.В разделе «Исходный код» выберите ZIP-архив из облачного хранилища .
В разделе «Расположение облачного хранилища» нажмите «Обзор» .
Выберите хранилище, в которое вы загрузили ZIP-файл при создании облачной функции
app.Нажмите на загруженный вами ZIP-файл.
Нажмите «Выбрать» .
Нажмите «Развернуть» .
Открывается страница с подробной информацией о Cloud Functions , и ваша функция отображается с тремя индикаторами выполнения: один для сборки, один для сервиса и один для триггера. Когда все три индикатора выполнения исчезнут и будут заменены галочкой, ваша функция развернута и готова к работе.
Отредактируйте пример кода, чтобы задать константы:
- На странице с подробной информацией о облачной функции нажмите «Редактировать» .
- Нажмите «Далее» .
- В разделе «Исходный код» выберите «Встроенный редактор» .
- Встроенный редактор откройте и отредактируйте файл
env.js:- Установите значение параметра project равным идентификатору вашего облачного проекта.
- Установите значение параметра location равным региону облачной функции, например,
us-central1.
Нажмите «Развернуть» .
gcloud CLI
В командной строке gcloud, если вы еще не там, перейдите в каталог, содержащий код этого приложения-помощника по обмену знаниями на основе ИИ, которое вы ранее клонировали из GitHub:
cd add-ons-samples/node/chat/ai-knowledge-assistantВ каталоге
add-ons-samples/node/chat/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 .
В следующем разделе при настройке приложения «Чат» в консоли Google Cloud вам нужно будет вставить URL-адрес триггера app Cloud Function.
Консоль Google Cloud
В > Cloud Functions .
В столбце «Имя» списка облачных функций нажмите
app.Нажмите кнопку «Триггер» .
Скопируйте URL-адрес .
gcloud CLI
Опишите
appCloud Function: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
-адреса HTTP-конечной точки вставьте URL-адрес триггера облачной функцииappв форматеhttps://.cloudfunctions.net/appгде REGION REGION это регион облачной функции, например PROJECT_IDus-central1, а PROJECT_ID — идентификатор проекта , созданного вами в облачной среде.В разделе «Видимость» выберите «Сделать это приложение Google Chat доступным для определенных людей и групп в вашем домене» и введите свой адрес электронной почты.
При желании в разделе «Журналы» выберите пункт «Записывать ошибки в журнал» .
Нажмите «Сохранить» . Появится сообщение о сохранении конфигурации.
Приложение «Чат» готово к приему и ответам на сообщения в чате.
Протестируйте приложение для чата
Протестируйте приложение чата с искусственным интеллектом в режиме реального времени, задавая вопросы, на которые приложение сможет ответить.
Вот несколько способов протестировать приложение Chat с искусственным интеллектом:
- Добавьте приложение «Чат-помощник с искусственным интеллектом» в существующее пространство чата и задавайте вопросы, актуальные для этого пространства.
- Создайте пространство для чата и опубликуйте несколько сообщений, которые будут использоваться в качестве источника данных. Сообщения можно получать из Gemini с помощью подсказки, например
Answer 20 common onboarding questions employees ask their teams.Или вы можете скопировать несколько абзацев из руководства по разработке с использованием чата и задать вопросы по ним.
В этом уроке давайте создадим пространство для чата и вставим несколько абзацев из руководства по разработке с использованием чата .
Откройте Google Чат.
Создайте чат:
Нажмите новый чат» > «Создать пространство» .
В поле «Название пространства» введите
Testing AI knowledge assistant app.В разделе « Для чего предназначено это пространство?» выберите «Сотрудничество» .
В разделе «Настройки доступа» выберите, кто может получить доступ к пространству.
Нажмите «Создать» .
Добавьте сообщения для использования в качестве источника данных:
В веб-браузере перейдите к руководству по разработке с использованием Chat .
Скопируйте и вставьте содержимое руководства в созданное вами пространство чата.
Добавьте приложение «Чат» с ИИ-помощником:
В строке ввода сообщения наберите
@AI knowledge assistant, в появившемся меню подсказок выберите приложение «Чат AI knowledge assistant» и нажмитеenter.Появится сообщение с вопросом, хотите ли вы добавить приложение «Чат» с искусственным интеллектом в это пространство. Нажмите «Добавить в пространство» .
Если вы впервые добавляете приложение «Чат» в пространство, необходимо настроить аутентификацию и авторизацию для приложения «Чат»:
- Нажмите «Настроить» .
- Откроется новое окно или вкладка браузера, в которой вам будет предложено выбрать учетную запись Google. Выберите учетную запись, с которой вы проводите тестирование.
- Проверьте разрешения, запрашиваемые приложением чата с ИИ-помощником. Чтобы предоставить их, нажмите «Разрешить» .
- Появляется сообщение:
You may close this page now.Закройте окно или вкладку браузера и вернитесь в чат.
Задайте вопрос:
В строке ввода сообщения напишите вопрос, например:
What are Google Chat apps?Приложение «Чат-помощник с искусственным интеллектом» отвечает на вопросы.
Рассмотрение вариантов, альтернативные архитектурные решения и дальнейшие шаги.
В этом разделе рассматриваются другие способы создания приложения «Чат-помощник на основе искусственного интеллекта».
Firestore, облачное хранилище или вызов функции «Список сообщений» в Chat API.
В этом руководстве рекомендуется хранить данные пространства чата, такие как сообщения, в базе данных Firestore, поскольку это повышает производительность по сравнению с вызовом метода list ресурса Message с помощью Chat API каждый раз, когда приложение чата отвечает на вопрос. Кроме того, многократный вызов list messages может привести к превышению лимитов квоты API приложением чата.
Однако, если история переписки в чате становится слишком длинной, использование Firestore может стать дорогостоящим.
Cloud Storage — это альтернатива Firestore. Каждое пространство, в котором активно приложение чата с искусственным интеллектом, получает свой собственный объект, и каждый объект представляет собой текстовый файл, содержащий все сообщения в этом пространстве. Преимущество такого подхода заключается в том, что все содержимое текстового файла может быть передано в Vertex AI с помощью Gemini за один раз, но недостаток состоит в том, что обновление истории переписки требует больше усилий, поскольку в Cloud Storage нельзя добавлять данные к объекту, только заменять его. Этот подход не имеет смысла, если вы регулярно обновляете историю сообщений, но он будет хорошим выбором, если вы периодически обновляете историю сообщений пакетами, например, раз в неделю.
Устранение неполадок
Когда приложение или карточка Google Chat выдает ошибку, интерфейс чата отображает сообщение «Что-то пошло не так» или «Не удалось обработать ваш запрос». Иногда интерфейс чата не отображает никаких сообщений об ошибке, но приложение или карточка чата выдает неожиданный результат; например, сообщение на карточке может не появиться.
Хотя сообщение об ошибке может не отображаться в пользовательском интерфейсе чата, подробные сообщения об ошибках и данные журнала доступны для исправления ошибок, если включено ведение журнала ошибок для приложений чата. Для получения помощи по просмотру, отладке и исправлению ошибок см. раздел «Устранение неполадок и исправление ошибок Google Chat» .
Уборка
Чтобы избежать списания средств с вашего аккаунта Google Cloud за ресурсы, использованные в этом руководстве, мы рекомендуем удалить проект Cloud.
- В консоли Google Cloud перейдите на страницу «Управление ресурсами» > IAM и администрирование > Управление ресурсами .
- In the project list, select the project you want to delete and then click Delete .
- In the dialog, type the project ID and then click Shut down to delete the project.
Похожие темы
- Планируйте поездки с помощью ИИ-агента, доступного во всем Google Workspace.
- Respond to incidents with Google Chat, Vertex AI, Apps Script, and user authentication
- Manage projects with Google Chat, Vertex AI, and Firestore
- Fact-check statements with an ADK AI agent and Gemini model
- Integrate fundamental AI concepts in Chat apps
- Build a Chat app as a Google Workspace add-on with Apps Script