Архитектура Dialogflow

Архитектура Dialogflow
28.05.2021 Алексей Малыгин

В процессе общения с клиентами я пришел к выводу, что большинство людей неправильно понимают архитектуру Dialogflow. Особенно это касается тех, кто уже имел дело с ManyChat и подобными конструкторами чат-ботов. Я решил написать небольшую статью про архитектуру Dialogflow с акцентом на взаимодействие человека и агента.

На мой взгляд, есть 4 момента, которые вам нужно понять, чтобы получить правильное представление об архитектуре Dialogflow.

1. Запрос-ответ

В основе Dialogflow лежит запрос пользователя и его обработка.

  1. Пользователь отправляет запрос агенту Dialogflow.
  2. Включается модуль обработки естественного языка.
  3. Dialogflow отправляет ответ пользователю.

Почему это важно?

Очень часто чат-ботов приравнивают к сервисам рассылки и вся суть “автоматизации” задачи сводится к бомбардировке пользователя сообщениями по расписанию. Парадигма “сначала запрос, потом ответ” дает понять, что рассылка не поддерживается в Dialogflow и единственный способ отправить пользователю сообщение вне диалога – использование API.

Для этого вам понадобится:

  • знание API того мессенджера, с которым интегрирован Dialogflow
  • сервер, на котором будет размещаться программный код для работы с API

Сложно? Если вам нужны рассылки, то лучше пройти мимо Dialogflow. В тех же ManyChat или Smart Sender реализовать рассылку и поддерживать ее (редактировать контент, управлять расписанием и цепочками диалогов) значительно проще.

2. Сопоставление намерений (mapping)

Вторая концепция, которую вам нужно понять – это работа намерений.

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

Чтобы понять, как на самом деле работает сопоставление намерений, вам необходимо изучить такие ключевые функции, как сущности, контексты, параметры и т.д. Рекомендую посмотреть видео на моем YouTube-канале.

После того, как Dialogflow сопоставит запрос пользователя с одним из заранее определенных намерений, он отправит ответ (который также заранее указан создателем бота) обратно пользователю.

3. Fulfillment

Как только Dialogflow сопоставит запрос пользователя с одним из заранее определенных намерений, ему, возможно, придется выполнить некоторую бизнес-логику перед отправкой ответа.

Вместо создания разветвленных блоков, характерных другим платформам для создания чат-ботов, разработчики Dialogflow решили использовать концепцию под названием Fulfillment (выполнение).

Вот как это работает:

  1. Dialogflow распознает запрос пользователя и извлекает структурированную информацию из него.
  2. Структурированная информация отправляется в некоторый программный код, работающий на отдельном хостинге, который поддерживается создателем бота. Этот код называется webhook.
  3. Вебхук выполняет необходимую бизнес-логику.
  4. Возвращает ответ вашему агенту Dialogflow в определенном формате.
  5. Dialogflow анализирует ответ, извлекает соответствующую информацию и формирует ответ, который уже и будет показан пользователю.

4. Интеграция

В дополнение к перечисленным выше концепциям, Dialogflow предоставляет собственный API.

Этот API позволяет программно отправлять запросы вашим агентам Dialogflow. Запрос будет сопоставлен с намерением, и соответствующий ответ будет отправлен стороне, которая обращалась к Dialogflow по API.

Это означает, что вы можете “встроить” агент Dialogflow в свои существующие приложения и службы. Это может быть что угодно. От веб-сайта до мобильного приложения или компьютерной игры.

Вывод

Важно помнить, что задача Dialogflow – заменить живого человека при общении. Если вы выбрали Dialogflow для создания бота, старайтесь отказаться от сложных разветвленных цепочек диалога. Стройте работу бота так, чтобы пользователь мог получить нужный результат одним-двумя касаниями.

Но если не обойтись без бизнес-логики, то хочу дать несколько советов.

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

2. Если ваша бизнес-логика довольно проста, то код обработчика запросов можно разместить внутри агента Dialogflow, используя Inline editor.

Начните с чего-то совсем простого, например FAQ-бота. Составьте список самых распространенных вопросов, которые задают вам пользователи, выпишите ответы и составьте по этой схеме намерения (интенты). Ну а далее улучшайте структуру бота, наращивайте фукнционал и осваивайте интеграцию Dialogflow с другими сервисами.

Если будут вопросы – пишите в комментариях под статьей или мне в Telegram и не забывайте подписаться на YouTube-канал, чтобы у меня был стимул записывать новые обучающие видео.

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x