Коротко о редакторе ботов

Коротко о редакторе ботов

var_null
Автоматизированные чат-системы все чаще и чаще находят свое применение в IT сфере. В качестве справочной системы ими можно оснастить web портал, а интернет магазин или сайт коммерческой фирмы может задействовать возможности таких систем для предоставлении информации о товарах и услугах. Мессенджеры также не остались без влияния необходимости диалоговых систем - возможность создания ботов предусматривается уже разработчиками самих мессенджеров, а не только отдельными пользователями-любителями. В результате работы в этом направлении появляются сами боты, каталоги ботов, группы, описывающие их возможности и функции.. - в общем всё для того, чтобы пользователь пользуясь продуктом имел возможность объяснить этому продукту что он хочет и как. В качестве примеров диалоговых ботов можно вспомнить kilfish и их официального бота в telegram, который проводит конкурсы и выводит список из 10 последних проигранных в заведениях композиций или @vincibot - бота из того же мессенджера, который обрабатывает при помощи нейронных сетей загруженные в него фотографии. Однако разработка диалоговых систем дело непростое и требует определенных знаний и навыков, - если возникает необходимость их создания - приходится писать свой каркас, вникая в особенности API, поддерживающие разработку ботов или заказывать такую разработку у частных фирм. Несколько последних месяцев я разрабатываю online редактор, позволяющий быстро описать структуру, которая может быть использована для диалоговых систем вроде online консультантов. На этой неделе я включил в возможности редактора работу с ботами мессенджера telegram, а на прошлой - работу с Вконтакте. Также редактор можно использовать для проектирования справочных систем на сайт в виде меню или чата. Дополнительной возможностью является быстрое проектирование навигационного меню для сайтов. В этом очерке я хотел бы поделиться с тем как устроена система и как ее можно использовать. Я крайне редко пишу тексты и возможно у меня получится кривенько, но я постараюсь донести общий смысл и идею своего хобби. Итак: Структура и навигация по диалогу: Идея, которую я положил в основе разработки редактора такова, что структура диалога "чат-системы" в упрощенном виде представляет собой иерархию команд, а сам диалог - перемещение по такому дереву. Таким образом, находять в любом узле дерева мы можем подняться на уровень выше (если это не корень иерархии), войти внутрь узла (если внутри нет узлов, то просто получить по текущему узлу все данные) или переместиться на произвольный узел с помощью "гиперссылки".
Трудности с которыми я столкнулся: Я достаточно долго выбирал модель, общую для всех диалоговых систем - аналогичных редакторов я не встречал и опыт заимствовать было не у кого. Нужно было понять что общего у структурированного меню и у чат-бота, а где начинаются различия и что можно сделать универсальным для всех имеющихся (возможно в будущем добавленных) типов. На текущий момент продуктами редактора могут быть: - Чат-бот консультант на сайт. Для установки консультанта достаточно вставить сгенерированный системой код (iframe) в свой HTML код как это бывает в случае установки счетчиков или кода видео, например, с youtube. Результатом будет окошко чата, в котором пользователь сможет читать информацию и задавать вопросы, кликая по "ссылкам" (командам) в тексте, получая таким образом новую информацию или навигируясь по дереву диалога (например, чтобы вернуться на уровень вверх). К ответам бота можно прикреплять медиавложения в виде изображений и аудио. Так же предусматривается распознавание команд сторонним скриптом, а так же получения контента со стороннего, например, php скрипта. Можно подключить свой css для изменения внешнего вида чат окна. Есть API для получения и отправки данных.
- Меню на сайт. Для установки собранного в редакторе меню достаточно подключить в свой HTML .js файл и код, сгенерированный системой (как и в предыдущем случае). Меню поддерживает вложенность + возможность описаний пунктов и медиавложения в виде изображений и аудио. На сайте я выложил демо файлы и записал видео с тем как такое меню разработать. Можно подключить свой css для изменения внешнего вида чат окна. Есть API для получения данных меню. Также меню можно использовать как справочную систему на сайте ( в редакторе есть ссылки на примеры такого использования).
- Бот консультант Вконтакте и мессенджере telegram. С помощью редактора можно описать структуру команд и ответов бота и последовав инструкции по получению ключа доступа подключить бота к аккаунту Вконтакте или боту в telegram. В обоих случаях доступны медиа вложения к ответам чат-ботов в виде изображений и аудио. В случае с ботом telegram команды будут отображаться в виде кнопочек, но разработчики Вконтакте не предусмотрели таких механизмов и команды пользователю придется вводить вручную. Ссылки на примеры использования есть на сайте редактора.
Бот Вконтакте: Бот в telegram:
Общее и различия: Для любого из перечисленных вариантов используется один и тот же конструктор иерархии команд с минимальными отклонениями в виде специфических полей. Например, у коменд меню есть дополнительное поле, в которое можно указать данные из какого файла будут подгружены при нажатии на этот пункт меню. Отличия есть и на уровне настроек "бота". Например, меню на сайт не требует ключа доступа к аккаунта, а у telegram бота он есть. Любая из реализаций конструктора поддерживает медиавложения в виде изображений и аудио: в случае справочной системы картинка подгрузится в тег img по абсолютной ссылке, а в случае бота Вконтакте (или telegram) будет сначала загружена на сервер социальной сети (или мессенджера), а потом прикреплена к сообщению, которое отправится в ответ на команду конечного пользователя. Таким образом основа работы со структурой одна и та же, а реализация для каждого из конкретных случаев скрыта от глаз разработчика и позволяет сосредоточить внимание над логикой диалога. Подключаемость: Типы "меню" и "бот консультант на сайт" - вставляются в HTML код. Мне показалась эта идея неплохой - ею пользуются и видео-хостинги вроде youtube и счетчики поисковых систем и сайты типа fontawesome. К тому же у iframe вставки, мне показалось, есть неоспоримый плюс, заключающийся в том, что если внутри подключаемого js кода есть ошибки - они никак не затрагивают выполнение основного js кода. Возможно стоит пересмотреть концепцию установки конечного продукта, но пока не увижу достаточно доводов - смысла наверное нет. Работа с редактором: Для того чтобы начать работу с редактором достаточно авторизоваться и выбрать тип бота для работы. Авторизация (и регистрация в системе) происходит через социальную сеть Вконтакте; дополнительных данных в виде email и т.д. от пользователя не требуется. Основная работа происходит в двух вкладках редактора: Вкладка "Боты" и вкладка "Команды". Первая вкладка содержит список текущих диалоговых систем и структур типа меню, а вторая - все что относится к работе с командами выбранного бота - описания, порядок команд, медиавложения, пути для обработки команд и для выдачи контента. Слева от центрального блока редактора в случае с чат-ботом и меню можно увидеть результат работы. В случае с telegram это будет просто ссылка на бота. Ссылка на сам редактор - http://q99920bs.bget.ru/all/s_radoid/dialogs/dialogs.php