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

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

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

Вот как приложение Chat работает в пространстве адаптации и поддержки сотрудников:

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

Предварительные условия

Цели

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

Архитектура

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

Схема архитектуры приложения Chat Assistant Knowledge Assistant

Приложение чата «Помощник по знаниям AI» работает следующим образом:

  • Пользователь добавляет приложение Chat Assistant Knowledge Assistant в пространство чата:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2. Приложение Chat удаляет данные пространства Chat из Firestore.

Ознакомьтесь с продуктами, используемыми приложением Chat Assistant Knowledge Assistant

Приложение Chat AI Knowledge Assistant использует следующие продукты Google Workspace и Google Cloud:

  • Vertex AI API с Gemini: генеративная платформа искусственного интеллекта на базе Gemini. Чат-помощник по знаниям в области искусственного интеллекта использует API-интерфейс Vertex AI с Gemini для распознавания, понимания и ответа на вопросы сотрудников.
  • Chat API : API для разработки приложений Google Chat, которые получают события взаимодействия в чате, например сообщения, и отвечают на них. Приложение Chat Assistant Knowledge Assistant использует Chat API для следующих целей:
    • Получать и отвечать на события взаимодействия, отправленные Chat.
    • Список сообщений, отправленных в пространстве.
    • Публикуйте ответы на вопросы пользователей в пространстве.
    • Настройте атрибуты, определяющие, как оно будет отображаться в чате, например имя и изображение аватара.
  • API событий Google Workspace : этот API позволяет вам подписываться на события и управлять уведомлениями об изменениях в приложениях Google Workspace. Приложение Chat с ИИ-помощником использует API Google Workspace Events для прослушивания сообщений, опубликованных в чате, чтобы оно могло обнаруживать вопросы и отвечать на них, даже если они не упоминаются.
  • Firestore : бессерверная база данных документов. Приложение Chat с помощником по знаниям AI использует Firestore для хранения данных о сообщениях, отправленных в чат-пространстве.
  • Pub/Sub : Pub/Sub — это асинхронная и масштабируемая служба обмена сообщениями, которая отделяет службы, создающие сообщения, от служб, обрабатывающих эти сообщения. Приложение Chat помощника по знаниям AI использует Pub/Sub для получения событий подписки из пространств Chat.
  • Eventarc : Eventarc позволяет создавать архитектуры, управляемые событиями, без необходимости внедрять, настраивать или поддерживать базовую инфраструктуру. Приложение Chat Assistant знаний AI использует Eventarc для маршрутизации событий из Pub/Sub в пространство чата и облачную функцию, которая получает и обрабатывает события подписки.
  • Облачные функции : облегченная бессерверная вычислительная служба, которая позволяет создавать одноцелевые автономные функции, которые могут реагировать на взаимодействие в чате и события подписки без необходимости управлять сервером или средой выполнения. Приложение Chat Assistant 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

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

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

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

Консоль Google Cloud

  1. В консоли Google Cloud перейдите в раздел «Оплата» . Нажмите Меню > Оплата > проекты .

    Перейти к оплате за мои проекты

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

интерфейс командной строки gcloud

  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 облачных функций, API Firestore, API Cloud Build, API Pub/Sub, API событий Google Workspace, API Eventarc и Cloud Run. API администратора.

    Включите API

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

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

интерфейс командной строки gcloud

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

    gcloud config set project PROJECT_ID
    

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

  2. Включите API Google Chat, API Vertex AI, API облачных функций, API Firestore, API Cloud Build, API Pub/Sub, API событий Google Workspace, API Eventarc и API администратора Cloud Run:

    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. > API и службы > Экран согласия OAuth .

    Перейдите на экран согласия OAuth.

  2. В разделе «Тип пользователя» выберите «Внутренний» , затем нажмите «Создать» .

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

  4. В разделе «Электронная почта поддержки пользователей» выберите свой адрес электронной почты или соответствующую группу Google.

  5. В разделе «Контактная информация разработчика» введите свой адрес электронной почты.

  6. Нажмите «Сохранить и продолжить» .

  7. Нажмите «Добавить или удалить области» . Появится панель со списком областей действия для каждого API, который вы включили в своем облачном проекте.

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

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

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

  11. Нажмите «Сохранить и продолжить» .

  12. Просмотрите сводную информацию о регистрации приложения, затем нажмите « Вернуться на панель управления» .

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

  1. > 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. Сохраните загруженный файл как client_secrets.json . Позже, когда вы создаете две облачные функции, вы включаете файл client_secrets.json в каждое развертывание.

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

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

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

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

Консоль Google Cloud

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

    Перейти в паб/саб

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

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

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

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

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

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

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

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

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

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

интерфейс командной строки gcloud

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

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

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

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

spaces

Пространство чата, включающее приложение Chat Assistant Knowledge Assistant.

Поля
Document ID String
Уникальный идентификатор конкретного пространства. Часть имени ресурса пространства в Chat 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. В консоли > Firestore .

    Перейти в Firestore

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

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

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

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

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

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

    3. В поле «Регион» укажите регион для вашей базы данных, например us-central1 . Для достижения наилучшей производительности выберите то же или близлежащее местоположение, где находятся облачные функции приложения Chat.

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

интерфейс командной строки gcloud

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

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

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

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

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

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

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

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

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

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

При желании, прежде чем создавать облачные функции, просмотрите и ознакомьтесь с примером кода, размещенным на 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 добавьте файл client_secrets.json , который вы скачали при создании учетных данных идентификатора клиента OAuth для аутентификации и авторизации.

  5. Сожмите содержимое папки ai-knowledge-assistant в zip-файл.

    Корневой каталог zip-файла должен содержать следующие файлы и папки:

    • .gcloudignore
    • .gitignore
    • README.md
    • deploy.sh
    • env.js
    • events_index.js
    • http_index.js
    • index.js
    • client_secrets.json
    • package-lock.json
    • package.json
    • controllers/
    • model/
    • services/
    • test/
  6. > Функции облака .

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

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

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

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

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

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

  11. В разделе «Исходный код» выберите «Загрузка Zip» .

  12. В сегменте назначения создайте или выберите сегмент:

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

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

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

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

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

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

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

интерфейс командной строки gcloud

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

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

    cd google-chat-samples/node/ai-knowledge-assistant
    
  3. В каталог google-chat-samples/node/ai-knowledge-assistant добавьте файл client_secrets.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. > Функции облака .

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

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

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

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

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

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

  6. В разделе «Исходный код» выберите «Zip from Cloud Storage» .

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

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

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

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

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

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

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

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

интерфейс командной строки gcloud

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

    cd google-chat-samples/node/ai-knowledge-assistant
    
  2. В каталог google-chat-samples/node/ai-knowledge-assistant добавьте файл client_secrets.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 в следующем разделе при настройке приложения Chat в консоли Google Cloud .

Консоль Google Cloud

  1. > Функции облака .

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

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

  3. Нажмите «Триггер» .

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

интерфейс командной строки gcloud

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

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

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

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

  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 готово к тестированию.

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

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

Вот несколько способов протестировать приложение Chat Assistant Knowledge Assistant:

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

В этом уроке давайте создадим пространство чата и вставим несколько абзацев из обзорного руководства по разработке с помощью чата .

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

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

  2. Создайте чат-группу:

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

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

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

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

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

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

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

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

  4. Добавьте приложение Chat Assistant Knowledge Assistant:

    1. На панели создания сообщения введите @AI knowledge assistant , в появившемся меню предложений выберите приложение Chat AI Knowledge Assistant и нажмите enter .

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

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

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

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

    2. Приложение чата с помощником по знаниям AI отвечает.

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

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

В этом разделе рассматриваются другие способы создания приложения Chat Assistant Knowledge Assistant.

Firestore, Cloud Storage или вызов списка сообщений в Chat API

В этом руководстве рекомендуется хранить данные пространства чата, такие как сообщения, в базе данных Firestore, поскольку это повышает производительность по сравнению с вызовом метода list в ресурсе Message с помощью Chat API каждый раз, когда приложение Chat отвечает на вопрос. Кроме того, повторный вызов list messages может привести к тому, что приложение Chat достигнет ограничений квоты API.

Однако если история разговоров в чате становится слишком длинной, использование Firestore может стать дорогостоящим.

Облачное хранилище — альтернатива Firestore. Каждое пространство, в котором активно приложение чата AI Knowledge Assistant, получает свой собственный объект, и каждый объект представляет собой текстовый файл, содержащий все сообщения в пространстве. Преимущество этого подхода заключается в том, что все содержимое текстового файла можно сразу передать в Vertex AI с помощью Gemini, но недостатком является то, что для обновления истории разговоров требуется больше усилий, поскольку вы не можете добавить его к объекту в облаке. Память, только заменить. Этот подход не имеет смысла, если вы регулярно обновляете историю сообщений, но было бы хорошим выбором, если бы вы периодически обновляли историю сообщений пакетно, скажем, раз в неделю.

Устранение неполадок

Когда приложение или карточка Google Chat возвращает ошибку, в интерфейсе Chat отображается сообщение «Что-то пошло не так». или «Невозможно обработать ваш запрос». Иногда в пользовательском интерфейсе чата не отображается сообщение об ошибке, но приложение или карточка чата выдает неожиданный результат; например, сообщение с карточкой может не появиться.

Хотя сообщение об ошибке может не отображаться в пользовательском интерфейсе чата, доступны описательные сообщения об ошибках и данные журнала, которые помогут вам исправить ошибки, если включено ведение журнала ошибок для приложений чата. Информацию о просмотре, отладке и исправлении ошибок см. в разделе «Устранение неполадок и исправление ошибок Google Chat» .

Очистить

Чтобы избежать списания средств с вашей учетной записи Google Cloud за ресурсы, используемые в этом руководстве, мы рекомендуем вам удалить проект Cloud.

  1. В консоли Google Cloud перейдите на страницу «Управление ресурсами» . Нажмите Меню > IAM и администрирование > ресурсами .

    Зайдите в диспетчер ресурсов

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