Добавьте автоматизации с помощью 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 в регионе Global с корневым языком английский (en)

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

Диалогфлоу ЕС

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

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

Диалоговый поток 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 перейдите к Integrations .
  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 перейдите к Integrations .
  2. Щелкните значок шестеренки рядом с диалоговым окном .
  3. Переключите Включить автоматический ответ в зависимости от того, хотите ли вы, чтобы Business Messages автоматически отвечал пользователям с помощью ответов Dialogflow.

Переключение между версиями Dialogflow

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

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

  1. В консоли разработчика Business Communications перейдите к Integrations .
  2. Щелкните значок шестеренки рядом с диалоговым окном .
  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)

Настраиваемая полезная нагрузка должна соответствовать допустимому объекту ответа на сообщение Business Messages JSON . При настройке настраиваемых ответов полезной нагрузки для намерения 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 и Dialogflow создают необходимую инфраструктуру для понимания и ответа на вопросы пользователей без необходимости написания кода.

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

Предпосылки

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

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

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

Для HTML-файлов

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

Для файлов CSV,

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

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

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

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

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

Автоответы

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

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

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

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

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

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

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

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

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

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

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

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

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

Диалогфлоу ЕС

Для ботов часто задаваемых вопросов, если нет совпадения с ответом на часто задаваемые вопросы, 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?"
        }
      ]
    }
  ]
}

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 пользовательские сообщения, которые получает агент, включают объект dialogflowResponse . Ваш веб-перехватчик получает полезные данные для всех пользовательских сообщений независимо от того, ответили ли Business Messages на сообщение от вашего имени автоматически. Чтобы проверить наличие автоответа, посмотрите значение поля autoResponded и решите, нужно ли вам отвечать пользователю.

Диалогфлоу ЕС

...
"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. Если полезная нагрузка не имеет допустимой структуры объекта 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. Если полезная нагрузка не имеет допустимой структуры объекта JSON для бизнес-сообщений, error описывает проблему.
error Описание ошибки с сообщением о выполнении намерения.
liveAgentHandoff Настраиваемые метаданные для процедуры передачи обслуживания живого агента.
autoResponded Отвечали ли Business Messages пользователю автоматически ответом от Dialogflow.
message Полезная нагрузка автоответа.
responseSource Источник автоответа. См. ResponseSource .