Введение в DialogFlow: сущности и параметры

Введение в DialogFlow: сущности и параметры
16.03.2020 Алексей Малыгин

Продолжаем улучшать нашего чат-бота, реализованного на платформе DialogFlow. Ранее мы создали несколько правил, познакомились с режимом тренировки и чат-бот научился давать более-менее внятную реакцию на сообщения пользователя.

Следующий, достаточно важный блок функционала DialogFlow – это сущности (entities). По сути, сущности – это различные формы написания одной и той же фразы или слова. Синонимы. В моем примере чат-бота (экскурсовод по Иерусалиму), я в сущностях могу описать синонимы экскурсии. Например, “тур”, “поездка”, “посмотреть места” и так далее.

Как же агент использует сущности?

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

В процессе формирования правил вы наверняка обращали внимание, что некоторые слова автоматически помечаются другим цветом. Это и есть параметры. В качестве параметров DialogFlow выделяет города и другие локации, даты, числа, а также все, что описано в сущностях.

Далее, эти параметры вы можете использовать в разделе “Action and parameters” при создании правил. Постараюсь объяснить.

Например, мы задаем вопрос пользователю: “В каком городе или гостинице вы проживаете?”

Пользователь отвечает: “Я в гостинице Hilton”.

Слово “Hilton” выделяется в отдельный параметр и мы сможем обращаться к значению этого параметра в любом месте диалога. В моем примере, после того как пользователь закажет экскурсию, чат-бот может написать что-то вроде: “Автобус вас заберет из Hilton завтра, в 07:00”.

Надеюсь, с этим более-менее понятно.

Теперь давайте откроем любое правило из раздела “Intents” и остановим внимание на самом первом блоке, под названием “Contexts”.

Контексты – это некая сессия, в которой хранится информация из предыдущего разговора пользователя и бота. Попытаюсь объяснить. У вас есть несколько правил (intent). Правила реагируют на определенные фразы. Если вам очень важная последовательность запуска правил, то в этому случае нужно использовать контексты. Представьте, ваш чат-бот продает билеты на экскурсию. Вы же не можете сначала предложить пользователю купить билет, а только потом рассказать про экскурсию и взять у него контактные данные. Важна некоторая последовательно. Для соблюдения последовательности можно использовать контексты.

Контекст – это больше, чем просто метка. Это некий массив данных, который хранит в себе переменные и их значения из предыдущего шага. Но, не будем усложнять.

Посмотрите на мой пример. У меня есть два правила. Первое правило рассказывает о достопримечательностях города и формате экскурсий. Второе – присылает пользователю расписание и предлагает совершить заказ. Я не хочу, чтобы второе правило запустилось, если пользователь введет ключевое слово. Значит мне нужно добавить контекст (я назвал его “test”) и в этом случае агент проверяет как ключевые слова (training phrases), так и наличие входящего контекста.

А в первое правило я также добавлю контекст “test”, но только в виде исходящего контекста.

Следующий блок в правилах, который мы ранее не затрагивали – “Events”. С помощью этого блока, можно сделать так, чтобы правило выполнялось только при наступлении события.

Например, если выбрать “Telegram Welcome”, то правило выполнится только при первом общении пользователя с ботом, когда пользователь выполнит команду /start. В основном Google Assistance обладает большим количеством базовых событий. Но вы можете создавать события и самостоятельно. Это затронем в следующих материалах.

А как быть, если хочется выслать пользователю не просто текст, а картинку или даже кнопки? В ManyChat мы привыкли делать это в несколько кликов. В DialogFlow все немного сложнее и запутаннее, но тем не менее он все это умеет.

Посмотрим внимательнее на блок “Responses”, где можно настроить реакцию (ответы) бота на сообщения пользователя. Имейте ввиду, что если вы настраиваете DialogFlow на интеграцию с несколькими мессенджерами, то возможности этих мессенджеров могут заметно отличаться друг от друга. Например, в Telegram или Facebook Messenger вы можете оформить ответ бота в виде “карусели”… тогда как Slack или Viber ничего подобного не умеют.

Вот здесь вам и пригодятся специфические ответы для каждого мессенджера. Нажмите на “+” рядом с “Default”, выберите мессенджер и настройте ответ в нужном вам формате. В итоге, у вас получится разный формат вывода для разных мессенджеров, которые интегрированы с агентом.

И еще один блок, который мы пропустили в предыдущих статьях – “Fulfillment”.

Этот блок используется для подключения DialogFlow к сторонним сервисам и “общения” с ними. Например, агент может принять запрос от пользователя, отправить запрос на сторонний сервер (например, к базе данных) и получить выборку оттуда.

Конечно, без программирования не обойтись. Не переживайте, к “Fulfillment” мы вернемся в более расширенной версии уроков и разберемся подробнее.

Надеюсь, я вас не слишком загрузил DialogFlow. Дальше будет еще интереснее :)

 

Часть №5: Dialogflow и тонкие настройки
Подписаться
Уведомить о
guest
3 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
Игорь Калина
Игорь Калина
7 месяцев назад

Благодарю! Очень крутой материал. Особенно помогают видео, где подкрепляешь тему визуально. Замечу, первый раз создаю чат-бота, и не все получается с первого раза сделать написанное в статье, но прочитав и посмотрев ролик несколько раз за три дня, бот неплохо выходит.

trackback

[…] Часть #1, Часть #2, Часть #3, Часть #4. […]

trackback

[…] Часть №4: Dialogflow сущности и параметры […]

3
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x