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

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

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

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

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

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

Цели

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

Архитектура

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

Архитектурная схема приложения «Чат-помощник на основе искусственного интеллекта»

Приложение «Чат» с искусственным интеллектом работает следующим образом:

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

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

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

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

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

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

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

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

      Если пользователь впоследствии редактирует или удаляет сообщение, приложение чата получает событие обновления или удаления в режиме реального времени и затем обновляет или удаляет сообщение в базе данных 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 выводит сообщение о том, что не может найти ответ на этот вопрос в истории чата.

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

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

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

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

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

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

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

Консоль Google Cloud

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

    Перейдите в раздел «Создать проект».

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

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

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

gcloud CLI

В одной из следующих сред разработки получите доступ к интерфейсу командной строки Google Cloud ( 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 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 включите 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

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

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

gcloud CLI

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

    gcloud config set project PROJECT_ID

    Замените PROJECT_ID на идентификатор проекта Cloud, который вы создали.

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

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

    Перейти к разделу «Брендинг»

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

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

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

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

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

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

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

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

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

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

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

Консоль Google Cloud

  1. В > Публикация /Подписка .

    Перейти в раздел "Публикация/Подписка"

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

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

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

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

  6. Нажмите «Создать» . Отобразится тема «Публикация/Подписка».

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

    1. В панели events-api в разделе PERMISSIONS нажмите Add Principal .

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

    3. В разделе «Назначение ролей» , в поле «Выберите роль» , выберите «Издатель/Подписчик» > «Издатель/Подписчик» .

    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 .

База данных приложения «Чат-помощник с искусственным интеллектом» использует модель данных NoSQL, основанную на документах , организованных в коллекции . Для получения дополнительной информации см. модель данных Firestore .

На следующей диаграмме представлен общий обзор модели данных приложения «Чат-помощник на основе искусственного интеллекта»:

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

Корневой каталог содержит две коллекции:

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

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

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

spaces

Чат-пространство, включающее приложение Chat с искусственным интеллектом в качестве помощника.

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

  1. В > Firestore .

    Перейдите в Firestore

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

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

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

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

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

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

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

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

gcloud CLI

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

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

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

Создайте и разверните приложение «Чат».

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

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

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

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

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

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

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

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

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

Консоль Google Cloud

  1. Скачайте код с GitHub в виде ZIP-файла.

    Скачайте zip-файл

  2. Распакуйте загруженный zip-файл.

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

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

  4. В каталоге add-ons-samples/node/chat/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. В > Cloud Functions .

    Перейдите в раздел «Облачные функции».

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

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

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

    1. В разделе «Окружение» выберите «Функция запуска в облаке» .
    2. В поле «Имя функции» введите app .
    3. В поле «Регион» выберите регион, например, 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. Нажмите «Развернуть» .

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

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

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

gcloud CLI

  1. Скопируйте код с GitHub:

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

    cd add-ons-samples/node/chat/ai-knowledge-assistant
  3. В каталоге add-ons-samples/node/chat/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. В > Cloud Functions .

    Перейдите в раздел «Облачные функции».

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

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

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

    1. В разделе «Окружение» выберите «Функция запуска в облаке» .
    2. В поле "Имя функции" введите eventsApp .
    3. В поле «Регион» выберите регион, например, 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. В разделе «Среда выполнения» выберите Node.js 20 .

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

  6. В разделе «Исходный код» выберите ZIP-архив из облачного хранилища .

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

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

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

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

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

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

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

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

gcloud CLI

  1. В командной строке gcloud, если вы еще не там, перейдите в каталог, содержащий код этого приложения-помощника по обмену знаниями на основе ИИ, которое вы ранее клонировали из GitHub:

    cd add-ons-samples/node/chat/ai-knowledge-assistant
  2. В каталоге add-ons-samples/node/chat/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 .

В следующем разделе при настройке приложения «Чат» в консоли Google Cloud вам нужно будет вставить URL-адрес триггера app Cloud Function.

Консоль Google Cloud

  1. В > Cloud Functions .

    Перейдите в раздел «Облачные функции».

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

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

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

gcloud CLI

  1. Опишите app Cloud Function:

    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. Скопируйте адрес электронной почты учетной записи службы . Этот адрес электронной почты понадобится вам при авторизации дополнения для вызова вашей функции.

  9. В разделе «Триггеры» выберите «Использовать общий URL-адрес конечной точки HTTP для всех триггеров» .

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

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

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

  13. Нажмите «Сохранить» . Появится сообщение о сохранении конфигурации.

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

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

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

Вот несколько способов протестировать приложение 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. В веб-браузере перейдите к руководству по разработке с использованием Chat .

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

  4. Добавьте приложение «Чат» с ИИ-помощником:

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

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

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

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

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

    2. Приложение «Чат-помощник с искусственным интеллектом» отвечает на вопросы.

Рассмотрение вариантов, альтернативные архитектурные решения и дальнейшие шаги.

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

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.

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

    Go to Resource Manager

  2. In the project list, select the project you want to delete and then click Delete .
  3. In the dialog, type the project ID and then click Shut down to delete the project.