Как бесплатно создать командного чат-бота на DialogFlow

Речь пойдет именно о кнопочном (командном) боте, а не разговорном.

Сейчас многие ассоциируют сервис DialogFlow, как платформу для написания простых диалоговых чат-ботов с ограниченным функционалом. Соответственно и вся информация по этой теме освещает вопросы построения «умных» диалогов. Но при этом DialogFlow довольно мощный ресурс, на котором можно реализовать достойного чат-бота, который не только может поддержать разговор, но и способен реагировать на команды пользователей.

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

Как начать пользоваться сервисом DialogFlow и запустить первого бота с интеграцией в один клик рассказывать не буду. Подобной информации достаточно в открытых источниках. Сразу перейду к процессу реализации кнопочного меню.

Реализовать кнопки меню можно двумя способами:

1. При помощи стандартного «ADD RESPONSES».

Возьмем любой уже созданный интент либо создадим новый. В исходящем контексте прописываем новый параметр, например, «menu».

​чат-бот на dialogflow Антон Токарев

Цифра 5 означает время жизни данного контекста. В данном случае контекст будет работать до 5-ти реакций пользователя. Это значение можно изменить на какое угодно по желанию в зависимости от задачи.

В нашем интенте находим кнопку «Add response» и выбираем «Quick Replies».

​чат-бот на dialogflow Антон Токарев

В строке «Title» указываем любой текст, который будет отправляться в чат перед выводом меню с кнопками. Это может быть, например, призыв к действию или указание на выбор пункта меню.

В строке ниже указывается непосредственно название кнопки (не более 20-и символов). Последующие кнопки просто добавляем в строках ниже. Таким образом можно добавить любое количество кнопок, которые будут располагаться в том же порядке в чате.

Для каждой кнопки создаем одноименный отдельный интент. Во входящем контексте таких интентов должен быть параметр «menu», который мы указывали в нашем основном интенте.

​чат-бот на dialogflow Антон Токарев

Контекст позволяет нам связать наши команды меню с действиями бота на эти команды.

Особенностью такого варианта добавления меню является отправка пользователем текста с названием кнопки в чат при ее нажатии. Т.е. когда пользователь нажмет кнопку «Консультация» он фактически отправит в чат текст «Консультация». Для отработки ботом этой команды необходимо добавить текстовый ответ, ссылку или картинку в интент «Консультация».

В Viber, например, это выглядит так:

​чат-бот на dialogflow Антон Токарев

Недостатком такого меню является отсутствие редиректа пользователя сразу при нажатии кнопки. Ссылку для перехода можно только отправить в чат. Также недоступны такие возможности при нажатии кнопки, как: отправка номера телефона пользователя в чат, открытия витрины с товарами и т.д. Но все это можно реализовать при помощи «Custom Payload». О чем и пойдет речь ниже.

1. При помощи «Custom Payload».

Данный способ предусматривает использование кода. Но уже готовый код можно получить в открытых ресурсах (о них речь пойдет ниже). И немного отредактировав его, можно создать крутое меню без навыков программирования. Расмотрим это способ на примере меню в мессенджере Viber.

Выбираем в интенте пункт «Custom Payload».

​чат-бот на dialogflow Антон Токарев

Перед нами открывается рабочая область , куда и будем вставлять код кнопок меню. Теперь вопрос, где же взять этот код, если не писать самому? Все очень просто. Идем на официальный сайт Viber для разработчиков (ссылка будет в конце статьи) и в Viber Api Documentation находим keyboard examples.

​чат-бот на dialogflow Антон Токарев

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

Ниже пример такой реализации.

​чат-бот на dialogflow Антон Токарев
​чат-бот на dialogflow Антон Токарев

Антон Токарев - основатель botpol.space

0
10 комментариев
Написать комментарий...
Сергей Стаценко

Dialogflow интересный сервис в плане самостоятельного построения чат ботов. Только создать бота с функцией автоворонки не получится. 
Если делать для мессенджер маркетинга и реально зантматься построением воронок продаж, то лучше использовать платные конструкторы или заказывать разработку чат бота у профессионалов.

А так спасибо за статью, было интересно!

Ответить
Развернуть ветку
Антон Токарев
Автор

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

Ответить
Развернуть ветку
Андрей Гощевский

Получается, для продвинутого пользователя со знанием кода - слишком примитивно. Для непродвинутого - слишком сложно. Либо нужно нарваться на супертолковую инструкцию, чтобы решиться что-то воплощать на таком конструкторе. У меня был опыт таких попыток на flow.xo с хорошей видеоинструкцией. Потратил тьму времени без внятного результата. Так же и с другими платформами, которые все равно после бесплатного периода включают счетчик. 
У всякого конструктора есть свои ограничения и недостатки. Жалко тратить время на недоразвитые варианты. Я для себя после долгих мытарств выбрал конструктор, где обалденный функционал сочетается с простыми инструкциями. И что приятно - конструктор русский. Платный.
Бесплатные и даже платные конструкторы не идеальны. И среди них приходится выбирать лучший. Дерзайте. DialogFlow совсем не образец совершенства.

Ответить
Развернуть ветку
Антон Токарев
Автор

Хочу заметить, что именно открытый API DialogFlow используют многие русские, бесплатные конструкторы для распознавания текста и работы с контекстом. И абсолютно согласен, что легче и удобнее воспользоваться платным сервисом, если не хочешь разбираться в более глубоких технических вопросах. Не зря же они берут за это деньги, поэтому каждый выбирает удобный ему способ. 

Ответить
Развернуть ветку
Андрей Гощевский

Спасибо за информацию про API. Учту в дальнейшем. 🖐️

Ответить
Развернуть ветку
Алексей из LOADING.express

Хороший и полезный материал! Спасибо!

Ответить
Развернуть ветку
Yuriy Lvov

1. Где найти именно рабочий! вариант Dialogflow + личные сообщения вконтакте?
2. Как отправить в Dialogflow фото собеседнику?

Ответить
Развернуть ветку
Антон Токарев
Автор

Юрий, вы путаете сервис DialogFlow с агрегаторами мессенджеров. Ни первое, ни второе в нем сделать нельзя. Все взаимодействие происходит с ботом, по ранее заданному сценарию. Если в вашем алгоритме есть отправка фото пользователю в ответ на его действие, то бот отправит это фото, ранее загруженное в респонс на DialogFlow. 

Ответить
Развернуть ветку
Yuriy Lvov

А Как в Dialogflow закончить диалог с пользователем после нужной фразы?
Пообщались, дошли до нужного момента, а дальше пусть пишет а в ответ тишина.

Ответить
Развернуть ветку
Yuriy Lvov

"то бот отправит это фото, ранее загруженное в респонс на DialogFlow. " Это как можно сделать? Там вроде только код можно вписать а загружать файлы вроде нельзя. 

Ответить
Развернуть ветку
7 комментариев
Раскрывать всегда