Ответьте на вопросы, основанные на разговорах в чате, с помощью приложения Gemini AI Chat

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

Приложение Chat использует все сообщения, отправленные в пространстве, как источник данных и базу знаний: когда кто-то задает вопрос, приложение Chat проверяет ранее опубликованные ответы, а затем публикует один. Если ответ не найден, приложение сообщает, что не может ответить. При каждом ответе пользователи могут нажать кнопку вспомогательного действия, чтобы @упомянуть менеджера пространства и попросить ответ. Используя Gemini AI, приложение Google Chat адаптируется и расширяет свою базу знаний, поскольку оно постоянно обучается на разговорах в пространствах, в которые оно добавлено.

Вот как работает приложение «Чат» в сфере адаптации и поддержки сотрудников:

  • Упоминание приложения-помощника по знаниям на основе искусственного интеллекта добавляет его в раздел.
    Рисунок 1. Чарли добавляет приложение Chat с искусственным интеллектом-помощником в чат-пространство.
  • Дана задает вопрос.
    Рисунок 2. Дана спрашивает, предлагает ли компания обучение публичным выступлениям.
  • Приложение Chat на основе искусственного интеллекта отвечает на этот вопрос.
    Рисунок 3. Приложение Chat с помощником по знаниям на основе искусственного интеллекта предлагает Vertex AI with Gemini ответить на вопрос Даны на основе истории разговоров в чате, а затем делится ответом.

Предпосылки

Цели

  • Создайте приложение чата, которое использует генеративный ИИ для ответов на вопросы на основе знаний, полученных в ходе бесед в чате.
  • С генеративным ИИ:
    • Выявляйте и отвечайте на вопросы сотрудников.
    • Постоянно учитесь на текущих беседах в чате.
  • Прослушивайте и отвечайте на сообщения в чате в режиме реального времени, даже если приложение чата не отправляет сообщения напрямую.
  • Сохранение сообщений путем записи в базу данных Firestore и чтения из нее.
  • Облегчите совместную работу в чате, упомянув менеджеров чата, если ответ на вопрос не найден.

Архитектура

На следующей схеме показана архитектура ресурсов Google Workspace и Google Cloud, используемых приложением Chat на основе искусственного интеллекта.

Архитектурная схема приложения чата для помощника по обмену знаниями на основе искусственного интеллекта

Приложение-чат помощника на основе искусственного интеллекта работает следующим образом:

  • Пользователь добавляет приложение Chat с искусственным интеллектом-помощником в чат-пространство:

    1. Приложение Chat предлагает пользователю, добавившему его в чат, настроить аутентификацию и авторизацию.

    2. Приложение Chat извлекает сообщения из пространства, вызывая метод spaces.messages.list в API Chat, а затем сохраняет извлеченные сообщения в базе данных Firestore.

    3. Приложение Chat вызывает метод subscriptions.create в API событий Google Workspace, чтобы начать прослушивание событий, таких как сообщения в пространстве. Конечная точка уведомления подписки — это тема Pub/Sub, которая использует Eventarc для пересылки события в приложение Chat.

    4. Приложение «Чат» публикует вступительное сообщение в пространстве.

  • Пользователь в чате публикует сообщение:

    1. Приложение Chat получает сообщение в режиме реального времени из темы Pub/Sub.

    2. Приложение «Чат» добавляет сообщение в базу данных Firestore.

      Если пользователь впоследствии редактирует или удаляет сообщение, приложение Chat получает обновленное или удаленное событие в режиме реального времени, а затем обновляет или удаляет сообщение в базе данных Firestore.

    3. Приложение «Чат» отправляет сообщение Vertex AI с помощью Gemini:

      1. Подсказка инструктирует Vertex AI с Gemini проверить, содержит ли сообщение вопрос. Если это так, Gemini отвечает на вопрос на основе истории сообщений пространства чата, сохраненной в Firestore, а затем приложение Google Chat отправляет сообщение в пространство чата. Если нет, не отвечайте.

      2. Если Vertex AI с Gemini отвечает на вопрос, приложение Chat публикует ответ, вызывая метод spaces.messages.create в Chat API, используя аутентификацию приложения.

        Если Vertex AI с Gemini не может ответить на вопрос, приложение Chat публикует сообщение о том, что оно не может найти ответ на этот вопрос в истории чата.

        Сообщения всегда содержат кнопку вспомогательного действия, которую могут нажать пользователи, и тогда приложение Chat @упомянет менеджера пространства с просьбой ответить.

  • Приложение Chat получает уведомление о жизненном цикле от API событий Google Workspace о том, что подписка на Chat Space скоро истечет:

    1. Приложение Chat отправляет запрос на продление подписки, вызывая метод subscriptions.patch в API событий Google Workspace.
  • Приложение «Чат» удаляется из чат-пространства:

    1. Приложение Chat удаляет подписку, вызывая метод subscriptions.delete в API событий Google Workspace.

    2. Приложение 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 Functions использует следующие продукты Google Cloud для создания и размещения вычислительных ресурсов:
    • Cloud Build : полностью управляемая платформа непрерывной интеграции, доставки и развертывания, которая запускает автоматизированные сборки.
    • Cloud Run : полностью управляемая среда для запуска контейнеризированных приложений.

Подготовьте окружающую среду

В этом разделе показано, как создать и настроить проект Google Cloud для приложения Chat.

Создайте проект Google Cloud

Консоль Google Cloud

  1. В консоли Google Cloud перейдите в > IAM и администрирование > Создать проект .

    Перейти к созданию проекта

  2. В поле «Название проекта» введите описательное название вашего проекта.

    Необязательно: Чтобы изменить идентификатор проекта , нажмите Изменить . Идентификатор проекта не может быть изменен после его создания, поэтому выберите идентификатор, который соответствует вашим потребностям на весь срок действия проекта.

  3. В поле Местоположение нажмите Обзор , чтобы отобразить потенциальные местоположения для вашего проекта. Затем нажмите Выбрать .
  4. Нажмите «Создать» . Консоль Google Cloud перейдет на страницу панели управления, и ваш проект будет создан в течение нескольких минут.

gcloud CLI

В одной из следующих сред разработки откройте Google Cloud CLI ( gcloud ):

  • Cloud Shell : чтобы использовать онлайн-терминал с уже настроенным интерфейсом командной строки gcloud, активируйте Cloud Shell.
    Активировать Cloud Shell
  • Локальная оболочка : чтобы использовать локальную среду разработки, установите и инициализируйте gcloud CLI.
    Чтобы создать облачный проект, используйте команду gcloud projects create :
    gcloud projects create PROJECT_ID
    Замените PROJECT_ID , указав идентификатор проекта, который вы хотите создать.

Включить выставление счетов для облачного проекта

Консоль Google Cloud

  1. В консоли Google Cloud перейдите в раздел Billing . Нажмите Menu > Billing > My Projects .

    Перейти к выставлению счетов за мои проекты

  2. В поле «Выберите организацию» выберите организацию, связанную с вашим проектом Google Cloud.
  3. В строке проекта откройте меню «Действия» ( ), нажмите «Изменить выставление счетов» и выберите учетную запись Cloud Billing.
  4. Нажмите «Установить учетную запись» .

gcloud CLI

  1. Чтобы получить список доступных платежных аккаунтов, выполните:
    gcloud billing accounts list
  2. Свяжите платежный аккаунт с проектом Google Cloud:
    gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID

    Заменить следующее:

    • PROJECT_ID — это идентификатор облачного проекта, для которого вы хотите включить выставление счетов.
    • BILLING_ACCOUNT_IDидентификатор платежного аккаунта для связи с проектом Google Cloud.

Включить API

Консоль Google Cloud

  1. В консоли 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

  2. Убедитесь, что вы включаете API в правильном облачном проекте, затем нажмите «Далее» .

  3. Подтвердите, что вы включаете правильные API, затем нажмите Включить .

gcloud CLI

  1. При необходимости установите текущий проект Cloud на тот, который вы создали:

    gcloud config set project PROJECT_ID

    Замените PROJECT_ID на идентификатор созданного вами облачного проекта.

  2. Включите 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 снаружи замените информацию-заполнитель реальной информацией для экрана согласия.

  1. В консоли Google Cloud перейдите в > > Брендинг .

    Перейти к брендингу

  2. Если вы уже настроили, вы можете настроить следующие параметры экрана согласия OAuth в разделе Брендинг , Аудитория и Доступ к данным . Если вы видите сообщение, в котором говорится пока не настроено , нажмите «Начать» :

    1. В разделе «Информация о приложении» в поле «Имя приложения» введите AI knowledge assistant .
    2. В поле «Электронная почта поддержки пользователей» выберите свой адрес электронной почты или соответствующую группу Google.
    3. Нажмите Далее .
    4. В разделе Аудитория выберите Внутренняя . Если вы не можете выбрать Внутренняя , выберите Внешняя .
    5. Нажмите Далее .
    6. В разделе «Контактная информация» введите адрес электронной почты , на который вы можете получать уведомления о любых изменениях в вашем проекте.
    7. Нажмите Далее .
    8. В разделе «Готово » ознакомьтесь с Политикой использования пользовательских данных служб API Google и, если вы согласны, выберите «Я согласен с Политикой использования пользовательских данных служб API Google» .
    9. Нажмите «Продолжить» .
    10. Нажмите «Создать» .
    11. Если вы выбрали Внешний в качестве типа пользователя, добавьте тестовых пользователей:
      1. Нажмите Аудитория .
      2. В разделе Тестовые пользователи нажмите Добавить пользователей .
      3. Введите свой адрес электронной почты и адрес других авторизованных тестовых пользователей, затем нажмите « Сохранить» .
  3. Нажмите Доступ к данным > Добавить или удалить области действия . Появится панель со списком областей действия для каждого API, которые вы включили в своем проекте Google Cloud.

    1. В разделе «Добавить области вручную» вставьте следующую область:

      • https://www.googleapis.com/auth/chat.messages
    2. Нажмите Добавить в таблицу .

    3. Нажмите Обновить .

    4. После выбора областей, необходимых для вашего приложения, на странице «Доступ к данным» нажмите кнопку «Сохранить» .

Создайте учетные данные идентификатора клиента OAuth

  1. В консоли Google Cloud перейдите > API и службы > Учетные данные .

    Перейти к учетным данным

  2. Нажмите Создать учетные данные > Идентификатор клиента OAuth .

  3. Нажмите Тип приложения > Веб-приложение .

  4. В поле Имя введите имя для учетных данных. Это имя отображается только в консоли Google Cloud.

  5. В разделе «Авторизованные URI перенаправления» нажмите «Добавить URI» .

  6. В URI 1 введите следующее:

    https://REGION-PROJECT_ID.cloudfunctions.net/app/oauth2
    

    Заменить следующее:

    • REGION : регион облачной функции, например us-central1 . Позже, когда вы создадите две облачные функции, вы должны будете установить их регион на это значение.
    • PROJECT_ID : идентификатор созданного вами облачного проекта.
  7. Нажмите «Создать» .

  8. В окне созданного клиента OAuth нажмите «Загрузить JSON» .

  9. Сохраните загруженный файл как credentials.json . Позже, когда вы создадите две облачные функции, вы включите файл credentials.json в каждое развертывание.

  10. Нажмите ОК .

Создайте тему Pub/Sub

Тема Pub/Sub работает с API событий Google Workspace, позволяя подписываться на события в пространстве чата, например сообщения, и уведомлять приложение чата в режиме реального времени.

Вот как создать тему Pub/Sub:

Консоль Google Cloud

  1. В консоли Google Cloud перейдите > Pub /Sub .

    Перейти к Pub/Sub

  2. Нажмите «Создать тему» .

  3. В поле «Идентификатор темы» введите events-api .

  4. Снимите флажок Добавить подписку по умолчанию .

  5. В разделе «Шифрование» выберите «Управляемый Google ключ шифрования» .

  6. Нажмите «Создать» . Появится тема Pub/Sub.

  7. Чтобы эта тема Pub/Sub и API событий Google Workspace работали вместе, предоставьте пользователю Chat IAM разрешение на публикацию в теме Pub/Sub:

    1. На панели events-api в разделе РАЗРЕШЕНИЯ нажмите Добавить участника .

    2. В разделе Добавить участников в поле Новые участники введите chat-api-push@system.gserviceaccount.com .

    3. В разделе Назначить роли в разделе Выберите роль выберите Pub/Sub > Издатель Pub/Sub .

    4. Нажмите «Сохранить» .

gcloud CLI

  1. Создайте тему Pub/Sub с идентификатором темы events-api :

    gcloud pubsub topics create events-api
  2. Предоставьте пользователю 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 для помощника по обмену знаниями на основе искусственного интеллекта:

Модель данных базы данных Firestore.

Корень содержит две коллекции:

  1. spaces , где каждый документ представляет собой пространство чата, к которому добавлено приложение чата. Каждое сообщение представлено документом в подколлекции messages .

  2. users , где каждый документ представляет пользователя, который добавил приложение Chat в пространство Chat.

Просмотр коллекций, документов и определений полей

spaces

Чат-пространство, включающее приложение-помощника по обмену знаниями на базе искусственного интеллекта.

Поля
Document ID String
Уникальный идентификатор определенного пространства. Часть имени ресурса пространства в API чата.
messages Subcollection of Documents ( messages )
Сообщения, отправленные в чате. Соответствует 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

  1. В консоли Google Cloud перейдите > Firestore .

    Перейти в Firestore

  2. Нажмите Создать базу данных .

  3. В разделе «Выберите режим Firestore» выберите «Основной режим» .

  4. Нажмите «Продолжить» .

  5. Настройте базу данных:

    1. В поле «Имя базы данных» оставьте идентификатор базы данных (default) .

    2. В разделе Тип местоположения выберите Регион .

    3. В Region укажите регион для вашей базы данных, например us-central1 . Для лучшей производительности выберите то же или близкое расположение, что и Cloud Functions приложения Chat.

  6. Нажмите Создать базу данных .

gcloud CLI

  • Создайте базу данных Firestore в собственном режиме:

    gcloud firestore databases create \
    --location=LOCATION \
    --type=firestore-native

    Замените LOCATION на имя региона Firestore , например us-central1 . Для лучшей производительности выберите то же или близлежащее местоположение, что и функции облака приложения Chat.

Создайте и разверните приложение чата

Теперь, когда ваш проект Google Cloud создан и настроен, вы готовы построить и развернуть приложение Chat. В этом разделе вы делаете следующее:

  1. Создайте и разверните две облачные функции. Одна для реагирования на события взаимодействия в чате, а другая для реагирования на события Pub/Sub.
  2. Создайте и разверните приложение чата на странице конфигурации API чата Google.

Создание и развертывание облачных функций

В этом разделе вы создадите и развернете две облачные функции, названные:

  • app : размещает и запускает код приложения Chat, который реагирует на события, полученные от Chat в виде HTTP-запросов.
  • eventsApp : получает и обрабатывает события чат-пространства, такие как сообщения от Pub/Sub.

Вместе эти облачные функции составляют логику приложения чата помощника по знаниям на основе искусственного интеллекта.

При желании перед созданием облачных функций уделите время изучению и ознакомлению с примером кода, размещенным на GitHub.

Посмотреть на GitHub

Создать и развернуть app

Консоль Google Cloud

  1. Загрузите код с GitHub в виде zip-файла.

    Загрузить zip-файл

  2. Извлеките загруженный zip-файл.

    Извлеченная папка содержит весь репозиторий примеров Google Workspace.

  3. В извлеченной папке перейдите в каталог google-chat-samples-main/node/ai-knowledge-assistant .

  4. В каталоге google-chat-samples/node/ai-knowledge-assistant добавьте файл credentials.json , который вы скачали при создании учетных данных идентификатора клиента OAuth для аутентификации и авторизации.

  5. Сожмите содержимое папки 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/
  6. В консоли Google Cloud перейдите > Функции облака .

    Перейти к облачным функциям

    Убедитесь, что выбран проект Google Cloud для вашего приложения Chat.

  7. Нажмите Создать функцию .

  8. На странице «Создать функцию» настройте свою функцию:

    1. В разделе «Среда» выберите «Функция запуска облака» .
    2. В поле Имя функции введите app .
    3. В Region выберите регион, например us-central1 . Этот регион должен соответствовать региону, который вы указали в URI авторизованного перенаправления при создании учетных данных идентификатора клиента OAuth для аутентификации и авторизации.
    4. В поле «Тип триггера» выберите HTTPS .
    5. В разделе «Аутентификация» выберите «Разрешить неаутентифицированные вызовы» .
    6. Нажмите Далее .
  9. В разделе Runtime выберите Node.js 20 .

  10. В поле «Точка входа» удалите текст по умолчанию и введите app .

  11. В Исходном коде выберите Загрузить Zip .

  12. В разделе «Целевой контейнер» создайте или выберите контейнер:

    1. Нажмите «Обзор» .
    2. Выберите ведро.
    3. Нажмите Выбрать .

    Google Cloud загружает zip-файл и извлекает файлы компонентов в этом бакете. Затем Cloud Functions копирует файлы компонентов в Cloud Function.

  13. В Zip file загрузите zip-файл, который вы скачали с GitHub, распаковали и повторно сжали:

    1. Нажмите «Обзор» .
    2. Найдите и выберите zip-файл.
    3. Нажмите «Открыть» .
  14. Нажмите «Развернуть» .

    Откроется страница сведений о функциях облака , и ваша функция появится с двумя индикаторами прогресса: один для сборки и один для сервиса. Когда оба индикатора прогресса исчезнут и будут заменены галочкой, ваша функция развернута и готова.

  15. Отредактируйте пример кода, чтобы задать константы:

    1. На странице сведений о функции облака нажмите «Изменить» .
    2. Нажмите Далее .
    3. В Исходном коде выберите Встроенный редактор .
    4. Во встроенном редакторе откройте и отредактируйте файл env.js :
      1. Установите значение project на ваш идентификатор облачного проекта.
      2. Установите значение location в соответствии с регионом облачной функции, например us-central1 .
  16. Нажмите «Развернуть» .

gcloud CLI

  1. Клонируйте код с GitHub:

    git clone https://github.com/googleworkspace/google-chat-samples.git
  2. Перейдите в каталог, в котором находится код этого чат-приложения для помощника по обмену знаниями на основе искусственного интеллекта:

    cd google-chat-samples/node/ai-knowledge-assistant
  3. В каталоге google-chat-samples/node/ai-knowledge-assistant добавьте файл credentials.json , который вы скачали при создании учетных данных идентификатора клиента OAuth для аутентификации и авторизации.

  4. Отредактируйте файл env.js , чтобы задать переменные среды:

    1. Установите значение project на ваш идентификатор облачного проекта.
    2. Установите значение location в соответствии с регионом облачной функции, например us-central1 .
  5. Развертывание облачной функции в 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

  1. В консоли Google Cloud перейдите > Функции облака .

    Перейти к облачным функциям

    Убедитесь, что выбран проект Google Cloud для вашего приложения Chat.

  2. Нажмите Создать функцию .

  3. На странице «Создать функцию» настройте свою функцию:

    1. В разделе «Среда» выберите «Функция запуска облака» .
    2. В поле Имя функции введите eventsApp .
    3. В Region выберите регион, например us-central1 . Этот регион должен соответствовать региону, который вы указали в URI авторизованного перенаправления при создании учетных данных идентификатора клиента OAuth для аутентификации и авторизации.
    4. В поле «Тип триггера» выберите Cloud Pub/Sub .
    5. В теме Cloud Pub/Sub выберите созданное вами имя темы Pub/Sub, имеющее формат projects/ PROJECT /topics/events-api , где PROJECT — это идентификатор вашего проекта Cloud.
    6. Если вы видите сообщение, начинающееся с Service account(s) might not have enough permissions to deploy the function with the selected trigger. , нажмите Предоставить все .
    7. Нажмите Далее .
  4. В разделе Runtime выберите Node.js 20 .

  5. В поле «Точка входа» удалите текст по умолчанию и введите eventsApp .

  6. В Исходном коде выберите Zip из облачного хранилища .

  7. В разделе «Расположение облачного хранилища» нажмите «Обзор» .

  8. Выберите контейнер, в который вы загрузили zip-файл при создании app Cloud Function.

  9. Нажмите на загруженный вами zip-файл.

  10. Нажмите Выбрать .

  11. Нажмите «Развернуть» .

    Откроется страница сведений о функциях облака , и ваша функция появится с тремя индикаторами прогресса: один для сборки, один для службы и один для триггера. Когда все три индикатора прогресса исчезнут и будут заменены галочкой, ваша функция будет развернута и готова.

  12. Отредактируйте пример кода, чтобы задать константы:

    1. На странице сведений о функции облака нажмите «Изменить» .
    2. Нажмите Далее .
    3. В Исходном коде выберите Встроенный редактор .
    4. Во встроенном редакторе откройте и отредактируйте файл env.js :
      1. Установите значение project на ваш идентификатор облачного проекта.
      2. Установите значение location в соответствии с регионом облачной функции, например us-central1 .
  13. Нажмите «Развернуть» .

gcloud CLI

  1. В интерфейсе командной строки gcloud, если вы еще не сделали этого, перейдите в каталог, содержащий код для этого приложения-чата AI Knowledge Assistant, которое вы ранее клонировали с GitHub:

    cd google-chat-samples/node/ai-knowledge-assistant
  2. В каталоге google-chat-samples/node/ai-knowledge-assistant добавьте файл credentials.json , который вы скачали при создании учетных данных идентификатора клиента OAuth для аутентификации и авторизации.

  3. Отредактируйте файл env.js , чтобы задать переменные среды:

    1. Установите значение project на ваш идентификатор облачного проекта.
    2. Установите значение location в соответствии с регионом облачной функции, например us-central1 .
  4. Развертывание облачной функции в 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

  1. В консоли Google Cloud перейдите > Функции облака .

    Перейти к облачным функциям

  2. В столбце Имя списка облачных функций нажмите app .

  3. Нажмите кнопку «Триггер» .

  4. Скопируйте URL-адрес .

gcloud CLI

  1. Опишите функцию облака app :

    gcloud functions describe app
  2. Скопируйте свойство url .

Настройте приложение чата в консоли Google Cloud

В этом разделе показано, как настроить API чата в консоли Google Cloud с использованием информации о вашем приложении чата, включая имя приложения чата и URL-адрес триггера облачной функции приложения чата, на которую оно отправляет события взаимодействия с чатом.

  1. В консоли Google Cloud нажмите Меню Дополнительные продукты > Google Workspace > Библиотека продуктов > Google Chat API > Управление > Конфигурация .

    Перейти к настройке API чата

  2. В поле «Имя приложения» введите AI knowledge assistant .

  3. В поле URL аватара введите https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/live_help/default/24px.svg .

  4. В поле Описание введите Answers questions with AI .

  5. Установите переключатель «Включить интерактивные функции» в положение «Вкл.».

  6. В разделе «Функциональность» выберите «Присоединяйтесь к пространствам и групповым беседам» .

  7. В разделе «Параметры подключения» выберите URL-адрес конечной точки HTTP .

  8. В поле URL конечной точки HTTP вставьте URL-адрес триггера из функции облака app в формате https:// REGION - PROJECT_ID .cloudfunctions.net/app , где REGION — это регион функции облака, например us-central1 , а PROJECT_ID — это идентификатор созданного вами проекта облака.

  9. В разделе «Видимость» выберите «Сделать это приложение чата доступным для определенных людей и групп в вашем домене Workspace» и введите свой адрес электронной почты.

  10. При желании в разделе Журналы выберите Записывать ошибки в Журнал .

  11. Нажмите Сохранить . Появится сообщение о сохраненной конфигурации, означающее, что приложение чата готово к тестированию.

Протестируйте приложение чата

Протестируйте приложение чата с помощником по знаниям на основе ИИ в чат-пространстве с сообщениями, задавая вопросы, на которые приложение чата с помощником по знаниям на основе ИИ может ответить.

Вот несколько способов протестировать приложение Chat с помощником по обмену знаниями на основе искусственного интеллекта:

  • Добавьте приложение чата с помощником по знаниям на основе искусственного интеллекта в существующее чат-пространство и задавайте вопросы, имеющие отношение к этому пространству.
  • Создайте чат-пространство и опубликуйте несколько сообщений для использования в качестве источника данных. Сообщения можно получать из Gemini с помощью подсказки типа Answer 20 common onboarding questions employees ask their teams. Или вы можете вставить несколько абзацев из руководства по обзору разработки с помощью чата, а затем задать вопросы по нему.

Для этого урока давайте создадим чат-пространство и вставим несколько абзацев из обзорного руководства «Разработка с помощью чата» .

  1. Откройте Google Чат.

    Перейти в Google Чат

  2. Создайте чат-пространство:

    1. Нажмите новый чат» > «Создать пространство» .

    2. В поле Имя пространства введите Testing AI knowledge assistant app .

    3. В разделе «Для чего это пространство?» выберите «Сотрудничество» .

    4. В разделе «Настройки доступа» выберите, кто может получить доступ к пространству.

    5. Нажмите «Создать» .

  3. Добавьте сообщения для использования в качестве источника данных:

    1. В веб-браузере откройте обзорное руководство по разработке с помощью чата .

    2. Скопируйте и вставьте содержимое руководства в созданное вами чат-пространство.

  4. Добавьте приложение чата с помощником на основе знаний ИИ:

    1. В строке написания сообщения введите @AI knowledge assistant и в появившемся меню подсказок выберите приложение «Чат AI knowledge assistant» и нажмите enter .

    2. Появится сообщение с вопросом, хотите ли вы добавить приложение чата AI Knowledge Assistant в пространство. Нажмите Добавить в пространство .

    3. Если вы впервые добавляете приложение Chat в пространство, вам необходимо настроить аутентификацию и авторизацию для приложения Chat:

      1. Нажмите «Настроить» .
      2. Откроется новое окно или вкладка браузера, в которой вам будет предложено выбрать учетную запись Google. Выберите учетную запись, с которой вы проводите тестирование.
      3. Проверьте разрешения, которые запрашивает приложение AI Knowledge Assistant Chat. Чтобы предоставить их, нажмите Разрешить .
      4. Появится сообщение « You may close this page now. Закройте окно или вкладку браузера и вернитесь в чат.
  5. Задайте вопрос:

    1. В строке написания сообщения введите вопрос, например: What are Google Chat apps?

    2. Приложение Chat отслеживает знания и навыки помощника на основе искусственного интеллекта.

    3. При желании, если ответ не точен или недостаточен, чтобы помочь улучшить историю разговоров ИИ, нажмите Получить помощь . Приложение чата помощника ИИ по знаниям упоминает менеджера пространства и просит его ответить на вопрос. В следующий раз приложение чата помощника ИИ по знаниям будет знать ответ!

Соображения, альтернативные варианты архитектуры и следующие шаги

В этом разделе рассматриваются другие способы создания приложения-помощника по обмену знаниями на основе искусственного интеллекта (ИИ).

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.

  1. В консоли Cloud Google перейдите на страницу управления ресурсами . Нажмите > IAM & Admin > Управление ресурсами .

    Перейти к менеджеру ресурсов

  2. В списке проектов выберите проект, который вы хотите удалить, а затем нажмите Delete .
  3. В диалоговом окне введите идентификатор проекта, а затем нажмите «Выключить», чтобы удалить проект.