Создание дополнения Google Chat с помощью Dialogflow ES

На этой странице рассказывается, как создать приложение Google Chat в виде дополнения Google Workspace, которое использует Dialogflow ES для понимания естественного языка и ответа на нем. Вы также можете использовать Dialogflow CX, который напрямую интегрирован с Google Chat, чтобы создать приложение Dialogflow CX для Google Chat, следуя руководству по Dialogflow CX для Google Chat.

Цели

  • Настройте среду.
  • Создайте и разверните агента Dialogflow ES.
  • Создайте и разверните приложение Chat на основе агента Dialogflow ES.
  • Проверьте приложение Chat.

Требования

Архитектура

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

Архитектура приложения Chat, реализованного с помощью Dialogflow.

На приведенной выше схеме пользователь, взаимодействующий с чат-ботом Dialogflow, получает информацию следующим образом:

  1. Пользователь отправляет сообщение в Chat приложению Chat в прямой переписке или чат-группе.
  2. Виртуальный агент Dialogflow, который находится в , получает и обрабатывает сообщение, чтобы создать ответ.
  3. При необходимости агент Dialogflow может взаимодействовать с внешними сторонними сервисами, например системой управления проектами или инструментом для создания заявок, с помощью веб-перехватчика Dialogflow.
  4. Агент Dialogflow отправляет ответ обратно в сервис приложения Chat в Chat.
  5. Ответ будет отправлен в чат-группу.

Как настроить среду

Прежде чем использовать API Google, их нужно включить в облачном проекте Google Cloud. В одном облачном проекте Google Cloud можно включить один или несколько API.
  1. В Google API Console включите Google Chat API и Dialogflow API.

    Как включить API

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

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

Как создать агента Dialogflow ES

Если у вас нет агента Dialogflow ES:

  1. Откройте консоль Dialogflow ES.
  2. Нажмите Создать агента.
  3. Укажите название, язык по умолчанию и часовой пояс.
  4. Свяжите его с облачным проектом.
  5. Нажмите Создать.
  6. Создайте намерения и сущности, необходимые для диалога в чат-приложении. Начните с намерения "Приветствие".
  7. Запишите идентификатор проекта.

Подробное руководство можно найти в разделе Создание агента.

Как создать приложение Chat и подключить его к агенту Dialogflow

После создания агента Dialogflow ES выполните следующие действия, чтобы превратить его в приложение для чата:

  1. В Google API Console перейдите к Google Chat API. Выполните поиск по запросу "Google Chat API" и нажмите Google Chat API, а затем Управление.

    Перейти к Chat API

  2. Нажмите Настройки и настройте приложение Chat:

    1. В поле Название приложения введите Dialogflow App.
    2. В поле URL аватара введите https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png.
    3. В поле Описание введите Responds to real human conversation.
    4. В разделе Функциональность выберите Присоединяться к чат-группам и групповым чатам.
    5. В разделе Настройки подключения выберите Dialogflow.
    6. В разделе Настройки Dialogflow выберите Dialogflow ES.
    7. Предоставьте доступ к приложению "Чат" определенным пользователям и группам в домене и введите свой адрес электронной почты.
    8. В разделе Журналы выберите Регистрировать ошибки в Logging.
  3. Нажмите Сохранить.

Приложение Chat готово получать сообщения и отвечать на них.

Как протестировать приложение Chat

Протестируйте приложение Dialogflow ES Chat, отправив ему сообщение в Google Chat.

  1. Откройте Google Chat, используя аккаунт Google Workspace, который вы указали, когда добавляли себя в качестве доверенного тестировщика.

    Перейти в Google Chat

  2. Нажмите Новый чат.
  3. В поле Добавьте одного или нескольких пользователей введите название приложения Chat.
  4. Выберите приложение Chat в результатах поиска. Откроется прямая переписка.

  5. В новой прямой переписке с приложением введите Hello и нажмите enter.

    Приложение Dialogflow Chat ответит приветственным сообщением.

Текстовые ответы

Текстовые ответы отправляются в Google Chat в виде текстовых сообщений. С помощью форматирования можно сделать текст полужирным или курсивом, заключив его в определенные символы (облегченная разметка Markdown).

Ответ на текстовое сообщение выглядит так же, как ответ по умолчанию в консоли Dialogflow. Однако необработанный ответ API будет выглядеть немного иначе. Также задается конфигурация платформы GOOGLE_HANGOUTS, что может быть полезно при создании агентов для нескольких интеграций.

"fulfillmentMessages": [
{
   "text": {
   "text": [
        "This is a test."
   ]
},
  "platform": "GOOGLE_HANGOUTS"
},

кредитные карты;

Ответы на карточки отправляются в Google Chat в виде сообщений с карточками.

Изображения

Ответы с изображениями отправляются в Google Chat в виде виджетов изображений Google Chat.

Специальная полезная нагрузка

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

Google Chat Custom Payload позволяет создавать более сложные карточки. Одна карточка может содержать один или несколько разделов. У каждого раздела может быть заголовок. В справочном руководстве по картам Chat, созданным с помощью дополнений Google Workspace, можно найти примеры сочетаний, которые можно создать с помощью этого инструмента. Однако при использовании собственных полезных нагрузок вам придется указывать формат JSON.

Ниже приведен пример специальной полезной нагрузки для создания сообщения с карточкой:

{ "hangouts": { "hostAppDataAction": { "chatDataAction": {
  "createMessageAction": { "message": { "cardsV2": [{
    "cardId": "pizza",
    "card": {
      "header": {
        "title": "Pizza Delivery Customer Support",
        "subtitle": "pizzadelivery@example.com",
        "imageUrl": "https://goo.gl/aeDtrS"
      },
      "sections": [{ "widgets": [{ "textParagraph": {
        "text": " Your pizza is here!"
      }}]}]
    }
  }]}}
}}}}

Ограничения и рекомендации

  • При использовании дополнений Google Workspace с Dialogflow объекты событий чата имеют следующие ограничения и особенности:
    • События в приложении Home. Поддержка событий APP_HOME пока недоступна.
    • Входные данные запроса Dialogflow. Текст, отправленный в качестве входных данных запроса агенту Dialogflow, зависит от типа события:
      • MESSAGE: значение поля argumentText из сообщения чата.
      • APP_COMMAND: строка "APP_COMMAND_PAYLOAD".
      • ADDED_TO_SPACE – отправляется событие приветствия по умолчанию.
      • REMOVED_FROM_SPACE: строка "REMOVED_FROM_SPACE_PAYLOAD".
      • CARD_CLICKED: строка "BUTTON_CLICKED_PAYLOAD".
      • WIDGET_UPDATED: строка "WIDGET_UPDATED_PAYLOAD" (используется для автозаполнения).
    • Полная полезная нагрузка события. Полная полезная нагрузка JSON события взаимодействия в чате отправляется в Dialogflow в поле WebhookRequest.payload. Вы можете получить доступ к этой информации в веб-перехватчике Dialogflow. Подробнее о запросах webhook в Dialogflow ES…
  • Что нужно учитывать при обработке команд и получении данных из карточек или диалоговых окон:
  • Предварительный просмотр ссылок не поддерживается.
  • Если агент Dialogflow отвечает одним сообщением, оно отправляется в Google Chat синхронно. Если агент Dialogflow отвечает несколькими сообщениями, все они отправляются в Chat асинхронно с помощью метода create ресурса spaces.messages в Chat API. Метод вызывается один раз для каждого сообщения.
  • При использовании интеграции Dialogflow ES с Chat агент Dialogflow и приложение Chat должны быть настроены в одном и том же облачном проекте Google Cloud.

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

Чтобы отладить приложение Chat, сначала проверьте журналы ошибок. Поскольку в этом приложении используется Dialogflow, вам доступны следующие ресурсы для ведения журналов и устранения неполадок:

Организовать

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

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

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

  2. В списке проектов выберите проект, который хотите удалить, и нажмите Удалить .
  3. В диалоговом окне введите идентификатор проекта и нажмите Закрыть, чтобы удалить проект.
  • Dialogflow CX – это ещё один способ использовать Dialogflow с приложением Chat.