Агенты Business Messages поддерживают прямую интеграцию с
- Dialogflow ES: боты для сопоставления намерений и часто задаваемых вопросов
- Dialogflow CX: сопоставление намерений и передача обслуживания в режиме реального времени
Чтобы интегрировать агент Business Messages с другими функциями Dialogflow ES или Dialogflow CX , обратитесь к документации каждого продукта.
Когда пользователь отправляет сообщение агенту с интеграцией Dialogflow, Business Messages передает пользовательское сообщение в Dialogflow и отправляет ответ Dialogflow агенту в объекте сообщения dialogflowResponse
. Вы можете настроить агенты для автоматической отправки ответа Dialogflow пользователю без каких-либо действий с вашей стороны. Подробнее см. в разделе Автоответы .
Интеграция диалогового потока
Прежде чем вы сможете использовать автоматизацию на основе Dialogflow через Business Messages, вам необходимо включить интеграцию Dialogflow.
Предпосылки
Для начала вам нужно
- агент деловых сообщений
- агент Dialogflow в регионе Global с корневым языком английский (en)
Если у вас нет агента Dialogflow, создайте его .
Диалогфлоу ЕС
Прежде чем вы сможете включить интеграцию Dialogflow ES, вам потребуется идентификатор проекта вашего агента Dialogflow. Чтобы найти идентификатор проекта,
- Перейдите в консоль Dialogflow .
- Выберите агент Dialogflow, который вы хотите подключить к Business Messages, затем щелкните значок шестеренки. рядом с именем агента.
- В разделе Google Project обратите внимание на значение идентификатора проекта .
Диалоговый поток CX
Прежде чем вы сможете включить интеграцию Dialogflow CX, вам потребуется идентификатор проекта вашего агента Dialogflow и идентификатор агента. Чтобы найти эти идентификаторы,
- Перейдите к консоли Dialogflow CX .
- Выберите свой проект Dialogflow.
- В средстве выбора агента щелкните дополнительное меню. рядом с вашим агентом Dialogflow.
- Щелкните Копировать имя . При этом будет скопировано полное имя вашего агента в следующем формате:
projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID
. - Обратите внимание на значения идентификатора проекта и идентификатора агента.
Включить интеграцию
- В консоли разработчика Business Communications перейдите к Integrations .
- Для Dialogflow щелкните Включить интеграцию .
- Щелкните Подключить существующую модель .
- Для версии Dialogflow выберите версию для включения.
- Введите идентификатор проекта вашего агента Dialogflow.
- Чтобы включить Dialogflow CX, также введите идентификатор вашего агента Dialogflow.
- Если вы хотите, чтобы Business Messages автоматически отвечал пользователям с помощью ответов Dialogflow, выберите Включить автоответчик .
- Нажмите «Далее» .
- Скопируйте адрес электронной почты сервисного аккаунта. Эта учетная запись связывает ваши деловые сообщения и агенты Dialogflow.
- В Google Cloud Console выберите свой проект Dialogflow.
- Перейдите к разрешениям IAM .
- Щелкните Добавить и введите адрес электронной почты сервисного аккаунта для новых участников .
- Для выбора роли выберите Редактор агента консоли Dialogflow .
- Нажмите « Добавить другую роль » и выберите «Клиент Dialogflow API» .
- Нажмите Сохранить .
- В консоли разработчика Business Communications щелкните Далее .
- Нажмите Начать интеграцию .
Подключение Business Messages и Dialogflow занимает около двух минут.
Обновите интеграцию
- В консоли разработчика Business Communications перейдите к Integrations .
- Щелкните значок шестеренки рядом с диалоговым окном .
- Переключите Включить автоматический ответ в зависимости от того, хотите ли вы, чтобы Business Messages автоматически отвечал пользователям с помощью ответов Dialogflow.
Переключение между версиями Dialogflow
Агент Business Messages может одновременно поддерживать только одну интеграцию Dialogflow. Чтобы переключиться с одной редакции Dialogflow на другую, вам необходимо отключить текущую интеграцию, прежде чем включать новую.
Отключить интеграцию
- В консоли разработчика Business Communications перейдите к Integrations .
- Щелкните значок шестеренки рядом с диалоговым окном .
- Щелкните Отключить интеграцию .
- Щелкните Отключить .
Отключение существующей интеграции 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,
- Файлы должны содержать вопросы в первом столбце и ответы во втором без заголовка.
- Файлы должны использовать запятые в качестве разделителей.
Создайте бота для часто задаваемых вопросов
- В консоли разработчика Business Communications перейдите к Integrations .
- В разделе База знаний (FAQ) щелкните Создать базу знаний .
- Введите имя базы знаний, затем нажмите « Далее ».
- Выберите тип Mime .
- Добавьте документ знаний.
- Если вы выбрали HTML для Mime-типа , введите общедоступный URL-адрес вашего FAQ в поле URL -адрес.
- Если вы выбрали CSV для типа Mime , нажмите « Загрузить » и выберите файл CSV.
- Нажмите « Добавить» и завершите .
Чтобы добавить в бот 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 сопоставляет ответ с текстовым сообщением. Если доступен связанный, но другой ответ, в сообщении отображается предложение «Просмотреть другой ответ». Если нет, сообщение включает вопрос и предлагаемые ответы, спрашивающие, удовлетворило ли сообщение запрос пользователя.
Автоматический ответ с намеренным ответом
Ответы о намерениях могут включать один или несколько следующих ответов.
- Dialogflow ES: текст , пользовательская полезная нагрузка
- Dialogflow CX: текст , пользовательская полезная нагрузка , передача агента в режиме реального времени
Если ответ о намерении имеет совпадение с наивысшим уровнем достоверности, применяется следующее.
- Если в ответе есть хотя бы одно текстовое значение, 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 . |