10 базовых принципов настройки чат ботов Dialogflow ES на русском
Перевод официальной документации Google Cloud Dialogflow ES basics
Dialogflow — это платформа для понимания естественного языка, которая позволяет легко проектировать и интегрировать разговорный пользовательский интерфейс в вашем мобильное приложение, сайте, устройстве, боте, интерактивную систему голосового ответа и т. д. Используя Dialogflow, вы можете предоставить пользователям новые и привлекательные способы взаимодействия с вашим продуктом.
Dialogflow может анализировать несколько типов входных данных от ваших клиентов, включая текстовые или аудиовходы (например, с телефона или голосовой записи). Он также может реагировать на ваших клиентов несколькими способами, либо с помощью текста, либо с помощью синтетической речи.
Основы Dialogflow ES
На этой странице описываются основы использования Dialogflow ES. Вы должны прочитать эту страницу, прежде чем переходить к любым другим документам.
Помогите пользователям общаться с вашими сервисами: сайтами и страницами в социальных сетях
Традиционные компьютерные интерфейсы требуют структурированного и формального ввода для правильной работы, что делает использование этих интерфейсов неестественным и иногда затруднительным. Если конечные пользователи не могут легко понять этот структурированный ввод, им трудно понять, что делать. В идеале, ваши интерфейсы должны определить, чего хотят ваши конечные пользователи, общаясь на естественном языке, который они используют.
Например, рассмотрим простой запрос пользователя типа «Какой прогноз погоды сегодня?». Другие пользователи могут задать этот вопрос по другому:
- Какая сейчас погода?
- Какая температура будет завтра в Сан-Франциско?
- Какая будет погода 21-го числа?
Даже с этими простыми вопросами вы можете видеть, что разговорный опыт трудно реализовать. Интерпретация и обработка естественного языка требует очень надежного синтаксического анализатора языка. Dialogflow справляется с этим за вас, так что вы можете обеспечить высокое качество общения с конечным пользователем.
Агенты операторы | Agents
Агент Dialogflow — это виртуальный оператор, который обрабатывает разговоры с клиентами. Это модуль понимания естественного языка, который понимает нюансы человеческого языка. Dialogflow переводит текст или аудио клиента во время разговора в структурированные данные, которые могут быть понятны вашим приложениям и службам. Вы разрабатываете и создаете оператора Dialogflow для обработки диалогов, необходимых для вашего сервиса.
Агент оператор Dialogflow похож на оператора человеческого центра обработки вызовов. Вы обучаете их обоих обрабатывать скрипты диалога, и ваше обучение не должно быть слишком трудоемким и детальным.
Намерения | Intents
Намерение классифицирует намерение конечного пользователя для одной темы диалога. Для каждого агента вы определяете много намерений, где ваши объединенные намерения могут обрабатывать полный разговор. Когда конечный пользователь пишет или говорит что-то, называемое обращением клиента, Dialogflow сопоставляет выражение конечного пользователя с наилучшим намерением в вашем агенте. Сопоставление тем или намерений также известно как классификация намерений.
Например, можно создать погодный агент, который распознает и отвечает на вопросы конечных пользователей о погоде. Скорее всего, вы определили бы намерение для вопросов о прогнозе погоды. Если конечный пользователь говорит: «каков прогноз?», Dialogflow сопоставит это выражение конечного пользователя с намерением прогноза. Вы также можете определить свое намерение извлечь полезную информацию из выражения конечного пользователя, например время или местоположение для желаемого прогноза погоды. Эти извлеченные данные важны для вашей системы, чтобы выполнить запрос погоды для конечного пользователя.
Агент, извлекающий данные из выражения конечного пользователя, запрашивающего погоду
Основное намерение содержит следующее:
Обучающие фразы: Это примеры фраз для того, что могут сказать конечные пользователи. Когда выражение конечного пользователя напоминает одну из этих фраз, Dialogflow соответствует намерению. Вам не нужно определять все возможные примеры, потому что встроенное машинное обучение Dialogflow расширяет ваш список другими, похожими фразами.
Действие: вы можете определить действие для каждого намерения. Когда намерение совпадает, Dialogflow предоставляет действие вашей системе, и вы можете использовать это действие для запуска определенных действий, определенных в вашей системе.
Параметры: когда намерение сопоставляется во время выполнения, Dialogflow предоставляет извлеченные значения из выражения конечного пользователя в качестве параметров. Каждый параметр имеет тип, называемый типом сущности, который определяет, как именно извлекаются данные. В отличие от исходных данных конечного пользователя, параметры представляют собой структурированные данные, которые можно легко использовать для выполнения некоторой логики или генерирования ответов.
Ответы: вы определяете текстовые, речевые или визуальные ответы для возврата конечному пользователю. Они могут предоставить конечному пользователю ответы, запросить у него дополнительную информацию или прервать беседу.
Сущности |
Каждый параметр намерения имеет тип, называемый типом сущности, который точно определяет, как извлекаются данные из выражения конечного пользователя.
Dialogflow предоставляет предопределенные системные сущности, которые могут соответствовать многим общим типам данных. Например, существуют системные сущности для сопоставления дат, времени, цветов, адресов электронной почты и т. д. Вы также можете создавать свои собственные пользовательские сущности для сопоставления пользовательских данных. Например, можно определить овощную сущность, которая может сопоставлять типы овощей, доступных для покупки у агента продуктового магазина.
Контексты |
Контексты диалогового потока аналогичны контексту естественного языка. Если человек говорит вам: «они оранжевые», вам нужен контекст, чтобы понять, что «они» имеют в виду. Аналогично, чтобы Dialogflow мог обрабатывать подобное выражение конечного пользователя, ему необходимо предоставить контекст, чтобы правильно соответствовать намерению.
Используя контексты, вы можете управлять потоком разговора. Вы можете настроить контексты для намерения, установив входные и выходные контексты, которые идентифицируются строковыми именами. Когда намерение сопоставляется, все настроенные выходные контексты для этого намерения становятся активными. Хотя все контексты активны, Dialogflow с большей вероятностью будет соответствовать намерениям, настроенным с входными контекстами, которые соответствуют текущим активным контекстам.
На следующей диаграмме показан пример, в котором используется контекст для банковского агента.
Схема взаимодействия пользователя с интентами и контекстом.
Конечный пользователь запрашивает информацию о своем текущем счете.
Dialogflow сопоставляет это выражение конечного пользователя с намерением CheckingInfo. Это намерение имеет проверяющий выходной контекст, так что этот контекст становится активным.
Агент запрашивает у конечного пользователя тип информации, которую он хочет получить о своем расчетном счете.
Конечный пользователь отвечает «мой баланс».
Dialogflow сопоставляет это выражение конечного пользователя с намерением CheckingBalance. Это намерение имеет проверяющий входной контекст, который должен быть активен, чтобы соответствовать этому намерению. Аналогичное намерение SavingsBalance может также существовать для сопоставления того же выражения конечного пользователя, когда активен контекст сбережений.
После того как ваша система выполнит необходимые запросы к базе данных, агент ответит балансом текущего счета.
Последующие намерения |
Последующие намерения можно использовать для автоматической установки контекстов для пар намерений. Последующее намерение является дочерним по отношению к связанному с ним родительскому намерению. При создании последующего намерения выходной контекст автоматически добавляется к родительскому намерению, а входной контекст с тем же именем добавляется к последующему намерению. Последующее намерение сопоставляется только тогда, когда родительское намерение сопоставляется в предыдущем разговорном повороте. Вы также можете создать несколько уровней вложенных последующих намерений.
Dialogflow обеспечивает множество предопределенных последующих намерений для общих пользовательских ответов типа «Да», «нет» или «отмена». Вы также можете создать свои собственные последующие намерения для обработки пользовательских ответов.
Консоль Dialogflow
Dialogflow предоставляет веб-интерфейс пользователя, называемый консолью Dialogflow (посетите документацию, откройте консоль). Эта консоль используется для создания, сборки и тестирования агентов.
Консоль Dialogflow отличается от консоли Google Cloud Platform (GCP) (посетите документацию, откройте консоль). Консоль Dialogflow используется для управления агентами Dialogflow, а консоль GCP-для управления специфичными для GCP настройками Dialogflow (например, выставлением счетов) и другими ресурсами GCP.
В большинстве случаев для создания агентов следует использовать консоль Dialogflow, но также можно использовать API Dialogflow для создания агентов для расширенных сценариев.
Взаимодействие пользователей с интеграциями |
Dialogflow интегрируется со многими популярными диалоговыми платформами, такими как Google Assistant, Slack и Facebook Messenger. Если вы хотите создать агент для одной из этих платформ, вам следует использовать один из множества вариантов интеграции. Прямые взаимодействия с конечными пользователями обрабатываются за вас, поэтому вы можете сосредоточиться на создании своего агента. Каждая интеграция обрабатывает взаимодействие с конечными пользователями специфичным для платформы способом, поэтому подробные сведения см. В документации для вашей платформы интеграции.
Исполнение для интеграции |
По умолчанию агент реагирует на совпадающее намерение статическим ответом. Если вы используете один из вариантов интеграции, вы можете обеспечить более динамичный отклик с помощью fulfillment. Когда вы включаете выполнение для намерения, Dialogflow реагирует на это намерение вызовом определенной вами службы. Например, если конечный пользователь хочет запланировать стрижку на пятницу, ваша служба может проверить вашу базу данных и ответить конечному пользователю информацией о доступности на пятницу.
Каждое намерение имеет настройку для включения выполнения. Если намерение требует какого-либо действия со стороны вашей системы или динамической реакции, вы должны включить выполнение для этого намерения. Если сопоставляется намерение без включенного выполнения, Dialogflow использует статический ответ, определенный для этого намерения.
Когда сопоставляется намерение с включенным выполнением, Dialogflow отправляет запрос в службу webhook с информацией о сопоставленном намерении. Ваша система может выполнять любые необходимые действия и отвечать на диалоговый поток информацией о том, как действовать дальше. На следующей диаграмме показан процесс обработки для выполнения.
Диаграмма, показывающая поток для выполнения |
Конечный пользователь вводит или произносит выражение.
Dialogflow сопоставляет выражение конечного пользователя с намерением и извлекает параметры.
Dialogflow отправляет запрос веб-перехватчик на свой сервис веб-перехватчик. Это сообщение содержит информацию о согласованном намерении, действии, параметрах и ответе, определенном для этого намерения.
Ваша служба выполняет необходимые действия, например запросы к базе данных или внешние вызовы API.
Ваша служба отправляет ответное сообщение webhook в Dialogflow. Это сообщение содержит ответ, который должен быть отправлен конечному пользователю.
Dialogflow отправляет ответ конечному пользователю.
Конечный пользователь видит или слышит ответ.
Диаграмма, показывающая поток для API |
Конечный пользователь вводит или произносит выражение.
Ваша служба отправляет это выражение конечного пользователя в Dialogflow в сообщении запроса обнаружения намерения.
Dialogflow отправляет вашей службе ответное сообщение об обнаружении намерения. Это сообщение содержит информацию о согласованном намерении, действии, параметрах и ответе, определенном для этого намерения.
Ваша служба выполняет необходимые действия, например запросы к базе данных или внешние вызовы API.
Ваша служба отправляет ответ конечному пользователю.
Конечный пользователь видит или слышит ответ.