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