Добавьте автоматизацию с помощью Dialogflow

Dialogflow — это инструмент распознавания естественного языка (NLU), который обрабатывает вводимые пользователем данные, сопоставляет их с известными намерениями и отвечает соответствующими ответами. Существует две версии Dialogflow. Интегрировав свой агент Business Messages с Dialogflow ES, вы можете легко создать простую автоматизацию, которая позволит начать разработку вашего агента. Благодаря интеграции с Dialogflow CX вы можете создать расширенную автоматизацию для более сложных разговоров.

Агенты Business Messages поддерживают прямую интеграцию с

Чтобы интегрировать агента Business Messages с другими функциями Dialogflow ES или Dialogflow CX , обратитесь к документации каждого продукта.

Когда пользователь отправляет сообщение агенту, имеющему интеграцию с Dialogflow, Business Messages передает сообщение пользователя в Dialogflow и отправляет ответ Dialogflow агенту в объекте сообщения dialogflowResponse . Вы можете настроить агентов на автоматическую отправку ответа Dialogflow пользователю без каких-либо действий с вашей стороны. Подробности см. в разделе «Автоответы» .

Интеграция с диалоговым потоком

Прежде чем вы сможете использовать автоматизацию на основе Dialogflow через Business Messages, вам необходимо включить интеграцию Dialogflow.

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

Для начала вам нужно

  • агент бизнес-сообщений
  • агент Dialogflow в глобальном регионе с корневым языком английский (en)

Если у вас нет агента Dialogflow, создайте его .

Диалоговый поток ES

Прежде чем вы сможете включить интеграцию Dialogflow ES, вам понадобится идентификатор проекта вашего агента Dialogflow. Чтобы найти идентификатор проекта,

  1. Перейдите в консоль Dialogflow .
  2. Выберите агент Dialogflow, которого вы хотите подключить к Business Messages, затем щелкните значок шестеренки. рядом с именем агента.
  3. В разделе «Проект Google» обратите внимание на значение идентификатора проекта .

Диалоговый поток CX

Прежде чем вы сможете включить интеграцию Dialogflow CX, вам понадобится идентификатор проекта и идентификатор агента вашего агента Dialogflow. Чтобы найти эти идентификаторы,

  1. Перейдите в консоль Dialogflow CX .
  2. Выберите проект Dialogflow.
  3. В средстве выбора агента щелкните дополнительное меню. рядом с вашим агентом Dialogflow.
  4. Нажмите «Копировать имя» . При этом полное имя вашего агента копируется в следующем формате: projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID .
  5. Обратите внимание на значения идентификатора проекта и идентификатора агента.

Включить интеграцию

  1. В консоли разработчика Business Communications перейдите в раздел «Интеграции» .
  2. Для Dialogflow нажмите «Включить интеграцию» .
  3. Нажмите «Подключить существующую модель» .
  4. Для выпуска Dialogflow выберите выпуск, который нужно включить.
  5. Введите идентификатор проекта вашего агента Dialogflow.
  6. Чтобы включить Dialogflow CX, также введите идентификатор агента вашего агента Dialogflow.
  7. Если вы хотите, чтобы Business Messages автоматически отвечала пользователям с помощью ответов Dialogflow, выберите «Включить автоответ» .
  8. Нажмите Далее .
  9. Скопируйте адрес электронной почты сервисного аккаунта. Эта учетная запись соединяет ваши бизнес-сообщения и агенты Dialogflow.
  10. В Google Cloud Console выберите проект Dialogflow.
  11. Перейдите к разрешениям IAM .
  12. Нажмите «Добавить» и введите адрес электронной почты учетной записи службы для новых участников .
  13. В поле «Выберите роль» выберите «Редактор агента консоли Dialogflow» .
  14. Нажмите «Добавить другую роль» и выберите «Клиент Dialogflow API» .
  15. Нажмите Сохранить .
  16. В консоли разработчика Business Communications нажмите «Далее» .
  17. Нажмите Начать интеграцию .

Подключение Business Messages и Dialogflow занимает около двух минут.

Обновите интеграцию

  1. В консоли разработчика Business Communications перейдите в раздел «Интеграции» .
  2. Нажмите на значок шестеренки рядом с Dialogflow .
  3. Переключите Включить автоответ в зависимости от того, хотите ли вы, чтобы Business Messages автоматически отвечала пользователям с помощью ответов Dialogflow.

Переключение между редакциями Dialogflow

Агент Business Messages может одновременно поддерживать только одну интеграцию Dialogflow. Чтобы переключиться с одной версии Dialogflow на другую, вам необходимо отключить текущую интеграцию, прежде чем включать новую.

Отключить интеграцию

  1. В консоли разработчика Business Communications перейдите в раздел «Интеграции» .
  2. Нажмите на значок шестеренки рядом с Dialogflow .
  3. Нажмите Отключить интеграцию .
  4. Нажмите «Отключить» .

Отключение существующей интеграции Dialogflow занимает около одной минуты.

Включите новую интеграцию Dialogflow, выполнив следующие действия .

Соответствие намерений

После включения интеграции Dialogflow для агента Business Messages ваш агент сможет использовать настроенные намерения вашего проекта Dialogflow, чтобы понимать вопросы пользователей и отвечать на них без необходимости писать код. Чтобы узнать больше о намерениях, см. документацию для Dialogflow ES и Dialogflow CX .

Настройте намерения Dialogflow для каждого варианта диалога, который вы собираетесь поддерживать посредством автоматизации. Агенты Business Messages полагаются на Dialogflow для понимания сообщений пользователей.

При вызове API-интерфейсов Dialogflow Business Messages передает полезные данные пользовательского сообщения в ваши намерения и веб-перехватчик выполнения. Если сообщение пользователя соответствует намерению, вы можете получить доступ к этим полезным данным в формате Struct в поле business_messages_payload в QueryParameters .

Полезная нагрузка содержит все поля из сообщения пользователя , кроме DialogflowResponse .

Для Dialogflow CX Business Messages также передает параметр сеанса channel со значением google_business_messages в ваши намерения, и вы можете ссылаться на него в своем агенте в следующем формате: $session.params.channel .

Этот параметр можно использовать для добавления условий к выполнению Dialogflow для поддержки нескольких каналов в одном агенте Dialogflow.

Дополнительные сведения о параметрах запроса см. в справочниках по Dialogflow ES и Dialogflow CX .

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

При создании моделей NLU в Dialogflow вы можете настроить различные типы ответов для намерения. Business Messages поддерживает ответ по умолчанию, который может включать следующее:

  • Текст
  • Пользовательская полезная нагрузка
  • Передача управления живым агентом (только Dialogflow CX)

Пользовательские полезные данные должны соответствовать допустимому объекту ответа на сообщение JSON Business Messages . При настройке пользовательских ответов полезных данных для намерения Business Messages игнорирует следующие поля:

  • name
  • messageId
  • representative

См. следующие примеры ответов.

Текст с предложениями

{
  "text": "Hello World!",
  "fallback": "Hello World!\n\nReply with \"Hello\" or \"Hi!\"",
  "suggestions": [
    {
      "reply": {
        "text": "Hello",
        "postbackData": "hello-formal"
      }
    },
    {
      "reply": {
        "text": "Hi!",
        "postbackData": "hello-informal"
      }
    }
  ]
}

Богатая карта

{
  "fallback": "Hello, world!\nSent with Business Messages\n\nReply with \"Suggestion #1\" or \"Suggestion #2\"",
  "richCard": {
    "standaloneCard": {
      "cardContent": {
        "title": "Hello, world!",
        "description": "Sent with Business Messages.",
        "media": {
          "height": "TALL",
          "contentInfo":{
            "altText": "Google logo",
            "fileUrl": "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png",
            "forceRefresh": "false"
          }
        },
        "suggestions": [
          {
            "reply": {
              "text": "Suggestion #1",
              "postbackData": "suggestion_1"
            }
          },
          {
            "reply": {
              "text": "Suggestion #2",
              "postbackData": "suggestion_2"
            }
          }
        ]
      }
    }
  }
}
{
  "fallback": "Card #1\nThe description for card #1\n\nCard #2\nThe description for card #2\n\nReply with \"Card #1\" or \"Card #2\"",
  "richCard": {
    "carouselCard": {
      "cardWidth": "MEDIUM",
      "cardContents": [
        {
          "title": "Card #1",
          "description": "The description for card #1",
          "suggestions": [
            {
              "reply": {
                "text": "Card #1",
                "postbackData": "card_1"
              }
            }
          ],
          "media": {
            "height": "MEDIUM",
            "contentInfo": {
              "fileUrl": "https://my.files/cute-dog.jpg",
              "forceRefresh": false
            }
          }
        },
        {
          "title": "Card #2",
          "description": "The description for card #2",
          "suggestions": [
            {
              "reply": {
                "text": "Card #2",
                "postbackData": "card_2"
              }
            }
          ],
          "media": {
            "height": "MEDIUM",
            "contentInfo": {
              "fileUrl": "https://my.files/elephant.jpg",
              "forceRefresh": false
            }
          }
        }
      ]
    }
  }
}

Передача живого агента

{
  "metadata": {}
}

Часто задаваемые вопросы по ботам

После включения интеграции Dialogflow ES для агента Business Messages вы можете создать бота для часто задаваемых вопросов. Когда вы предоставляете вопросы и ответы в виде поддерживаемого документа знаний, Business Messages и Dialogflow создают необходимую инфраструктуру для понимания вопросов пользователей и ответов на них без необходимости писать код.

Чтобы увидеть работу бота FAQ, пообщайтесь с ботом Business Messages FAQ Bot .

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

Прежде чем создавать бота для часто задаваемых вопросов, вам необходимо, чтобы ваши вопросы и ответы были доступны в виде информационного документа (максимум 50 МБ): общедоступного файла HTML или файла CSV.

Как правило, документы знаний

  • В ответы можно включать ограниченную разметку, как указано в Rich text .
  • Максимальный размер 50 МБ.
  • Не должно превышать 2000 пар вопрос/ответ.
  • Не поддерживайте повторяющиеся вопросы с разными ответами.

Для HTML-файлов

  • Файлы с общедоступных URL-адресов должны быть просканированы индексатором поиска Google, чтобы они существовали в индексе поиска. Проверить это можно с помощью Google Search Console . Обратите внимание, что индексатор не поддерживает актуальность вашего контента. Вы должны явно обновлять свой документ при изменении исходного содержимого.
  • Dialogflow удаляет HTML-теги из контента при создании ответов. По этой причине лучше избегать HTML-тегов и по возможности использовать простой текст.
  • Файлы с одной парой вопрос/ответ не поддерживаются.

Для файлов CSV:

  • Файлы должны содержать вопросы в первом столбце и ответы во втором, без заголовка.
  • В качестве разделителей в файлах должны использоваться запятые.

Создать бота для часто задаваемых вопросов

  1. В консоли разработчика Business Communications перейдите в раздел «Интеграции» .
  2. В разделе «База знаний (часто задаваемые вопросы)» нажмите «Создать базу знаний» .
  3. Введите имя базы знаний, затем нажмите «Далее» .
  4. Выберите тип Mime .
  5. Добавьте документ знаний.
    • Если вы выбрали HTML для типа Mime , введите общедоступный URL-адрес для часто задаваемых вопросов в URL-адресе .
    • Если вы выбрали CSV для типа Mime , нажмите «Загрузить» и выберите файл CSV.
  6. Нажмите «Добавить» и завершите .

Чтобы добавить дополнительные документы в FAQ-бот, нажмите кнопку «Добавить документы» .

После того, как вы выполните эти шаги, Business Messages включит объект dialogflowResponse в сообщения пользователя, которые он отправляет вашему агенту. Если вы включите автоматический ответ , Business Messages отвечает пользователю парой вопрос/ответ, которая имеет наивысший показатель matchConfidence по сравнению с сообщением пользователя.

Автоответы

Если вы включите автоответ во время интеграции Dialogflow, Business Messages автоматически ответит пользователю через Dialogflow. Ваш агент Business Messages отвечает с наивысшим уровнем достоверности. При интеграции Dialogflow ES, если есть совпадения как с ответом на часто задаваемые вопросы, так и с пользовательским намерением, Business Messages отвечает совпадением, имеющим самый высокий уровень достоверности.

Business Messages помечает все сообщения с автоматическим ответом как исходящие от представителей BOT . Если ваш агент поддерживает живых агентов , Business Messages приостанавливает автоматические ответы после событий REPRESENTATIVE_JOINED и возобновляет автоматические ответы после событий REPRESENTATIVE_LEFT . См. Передача от бота к действующему агенту .

Автоматический ответ с ответом на часто задаваемые вопросы

При интеграции Dialogflow ES, если ответ на часто задаваемые вопросы имеет самый высокий уровень достоверности, Business Messages сопоставляет ответ с текстовым сообщением. Если доступен похожий, но другой ответ, в сообщении отображается предложение «Просмотреть другой ответ». В противном случае сообщение включает вопрос и предлагаемые ответы, спрашивающие, удовлетворяет ли сообщение запрос пользователя.

Автоматический ответ с намеренным ответом

Ответы на намерение могут включать в себя один или несколько из следующих ответов.

Если ответ о намерении имеет наивысший уровень достоверности, применяется следующее.

  • Если в ответе есть хотя бы одно текстовое значение, Business Messages сопоставляет это значение с текстовым сообщением.
  • Если ответ содержит хотя бы одну пользовательскую полезную нагрузку с допустимой структурой объекта JSON Business Messages, Business Messages создает сообщение, используя предоставленный объект JSON.
  • Если в ответе содержится хотя бы один ответ на передачу обслуживания живого агента, см. раздел Автоматический ответ на запрос живого агента .

Поскольку Dialogflow может включать в себя несколько ответов в одном совпадении по намерению, Business Messages отправляет каждый текст, пользовательскую полезную нагрузку или ответ на передачу обслуживания живого агента как отдельное сообщение. Если в совпадении по намерению имеется несколько сообщений, но некоторые из них имеют неверный формат, Business Messages отправляет действительные сообщения только в качестве автоответов.

Автоматический ответ на запрос живого агента

Dialogflow CX поддерживает ответ на передачу обслуживания Live-агента . Он сигнализирует о том, что разговор следует передать представителю-человеку, и позволяет передавать пользовательские метаданные для процедуры передачи. Если ответ о намерении имеет наивысший уровень достоверности и включает передачу обслуживания Live-агента, Business Messages отправляет событие, запрошенное действующим агентом, на ваш веб-перехватчик. Чтобы обработать это событие, см. раздел Передача от бота к действующему агенту .

Автоматический ответ с резервным сообщением

Если Dialogflow не получает совпадения с высоким уровнем достоверности, Business Messages отправляет резервный ответ. Резервные варианты обрабатываются по-разному в Dialogflow ES и Dialogflow CX.

Диалоговый поток ES

Если для ботов часто задаваемых вопросов нет соответствия ответу на часто задаваемые вопросы, Business Messages отправляет резервное сообщение о том, что не удалось найти ответ.

Если для настроенных намерений нет соответствия ответу о намерении, Business Messages отправляет резервный ответ о намерении . Вы можете использовать резервный текст, предоставленный Dialogflow, или настроить резервный вариант с помощью дополнительного текста и пользовательских полезных данных.

Вот пример резервного ответа о намерении, который может получить ваш вебхук:

{
  "intentResponses": [
    {
      "intentName": "projects/df-integration/agent/intents/12345",
      "intentDisplayName": "Default Fallback Intent",
      "intentDetectionConfidence": "1.0",
      "fulfillmentMessages": [
        {
          "text": "One more time?"
        }
      ]
    }
  ]
}

Dialogflow предварительно заполняет intent_name и intent_display_name .

Диалоговый поток CX

Dialogflow CX обрабатывает ответы на резервные намерения как встроенные события . Если совпадения с ответом о намерении нет, Business Messages отправляет резервное сообщение из события по умолчанию «Нет соответствия» в Dialogflow. Вы можете использовать резервный текст, предоставленный Dialogflow, или настроить резервный вариант с дополнительным текстом, настраиваемыми полезными данными и параметрами передачи активного агента.

Вот пример резервного ответа о намерении, который может получить ваш вебхук:

{
  "intentResponses": [
    {
      "intentName": "sys.no-match-default",
      "intentDisplayName": "Default Fallback Intent",
      "intentDetectionConfidence": "0.3",
      "fulfillmentMessages": [
        {
          "text": "I missed that, say that again?"
        }
      ]
    }
  ]
}

В бизнес-сообщениях жестко запрограммированы intent_name и intent_display_name .

Поля, специфичные для Dialogflow

После включения интеграции Dialogflow пользовательские сообщения, получаемые агентом, включают объект dialogflowResponse . Ваш вебхук получает полезные данные для всех сообщений пользователя независимо от того, ответил ли Business Messages автоматически на сообщение от вашего имени. Чтобы проверить наличие автоответа, просмотрите значение поля autoResponded и решите, нужно ли вам отвечать пользователю.

Диалоговый поток ES

...
"dialogflowResponse": {
  "queryText": "TEXT",
  "intentResponse": {
    "intentName": "INTENT_ID",
    "intentDisplayName": "INTENT_NAME",
    "intentDetectionConfidence": "CONFIDENCE_NUMERIC",
    "fulfillmentMessages": [{
      "text": "FULFILLMENT_TEXT",
      "jsonPayload": "JSON",
      "error": "ERROR_STATUS",
    }],
  "faqResponse": {
    "userQuestion": "USER_QUESTION",
    "answers": [{
      "faqQuestion": "FAQ_QUESTION",
      "faqAnswer": "FAQ_ANSWER",
      "matchConfidenceLevel": "CONFIDENCE_LEVEL",
      "matchConfidence": "CONFIDENCE_NUMERIC",
    }],
  },
  "autoResponded": "BOOLEAN",
  "autoRespondedMessages": [{
    "message": "MESSAGE_JSON",
    "responseSource": "SOURCE",
  }],
},
...
Поле Описание
queryText Исходный диалоговый текст запроса. Если для модели Dialogflow включено автоматическое исправление орфографии, queryText содержит исправленный пользовательский ввод.
intentName Уникальный идентификатор совпадающего намерения.
intentDisplayName Имя совпадающего намерения.
intentDetectionConfidence Числовой рейтинг достоверности соответствия между queryText и intentName .
text Текстовый ответ.
jsonPayload Пользовательский ответ полезной нагрузки. Эта строка соответствует пользовательским полезным данным, определенным в Dialogflow. Если полезная нагрузка не имеет допустимой структуры объекта Business Messages JSON, проблема описывает error .
error Описание ошибки с сообщением о выполнении намерения.
userQuestion Вопрос, заданный пользователем, анализируемый Dialogflow.
faqQuestion Вопрос из Dialogflow соответствует вопросу пользователя.
faqAnswer Ответ от Dialogflow соответствует вопросу пользователя.
matchConfidenceLevel Уровень достоверности совпадения между userQuestion и faqQuestion .
matchConfidence Числовой рейтинг уверенности в совпадении между userQuestion и faqQuestion .
autoResponded Независимо от того, автоматически ли Business Messages ответила пользователю ответом от Dialogflow.
message Полезная нагрузка автоответчика.
responseSource Источник автоответа. См. ResponseSource .

Диалоговый поток CX

...
"dialogflowResponse": {
  "queryText": "TEXT",
  "intentResponse": {
    "intentName": "INTENT_ID",
    "intentDisplayName": "INTENT_NAME",
    "intentDetectionConfidence": "CONFIDENCE_NUMERIC",
    "fulfillmentMessages": [{
      "text": "FULFILLMENT_TEXT",
      "jsonPayload": "JSON",
      "error": "ERROR_STATUS",
      "liveAgentHandoff": {
        "metadata": {}
      }
    }],
  "autoResponded": "BOOLEAN",
  "autoRespondedMessages": [{
    "message": "MESSAGE_JSON",
    "responseSource": "SOURCE",
  }],
},
...
Поле Описание
queryText Исходный диалоговый текст запроса. Если для модели Dialogflow включено автоматическое исправление орфографии, queryText содержит исправленный пользовательский ввод.
intentName Уникальный идентификатор совпадающего намерения.
intentDisplayName Имя совпадающего намерения.
intentDetectionConfidence Числовой рейтинг достоверности соответствия между queryText и intentName .
text Текстовый ответ.
jsonPayload Пользовательский ответ полезной нагрузки. Эта строка соответствует пользовательской полезной нагрузке, определенной в Dialogflow. Если полезные данные не имеют допустимой структуры объекта Business Messages JSON, проблема описывает error .
error Описание ошибки с сообщением о выполнении намерения.
liveAgentHandoff Пользовательские метаданные для процедуры передачи обслуживания действующего агента.
autoResponded Независимо от того, автоматически ли Business Messages ответила пользователю ответом от Dialogflow.
message Полезная нагрузка автоответчика.
responseSource Источник автоответа. См. ResponseSource .