Найти тему

БотоВод: система разработки и интеграции мобильных приложений на базе чат-ботов

Оглавление

Приветствую тебя читатель, эта статья является первой в цикле о разработке чат-ботов на базе нового инструмента БотоВод.
В цикле хочется поднять следующие темы:

  • Знакомство с системой.
  • Установка и настройка файловой версии
  • Публикация и запуск на примере бота "Привет Мир!".
  • Попробуем понять что такое "Управляемый режим".
  • Разработка сервисного чат-бота для перевода голосовых сообщений в текст.

Знакомство.

Ботовод не является чат-ботом или конструктором, это комбайн, содержащий всё необходимое для разработки и запуска мобильного приложения на базе чат-бота, а так же массу сопутствующих инструментов.
БотоВод позволяет быстро и просто создавать, отлаживать и обеспечивать параллельную работу любого количества чат-ботов любой сложности. Архитектурно конфигурация состоит из двух подсистем: сервер и визуальный редактор.
В редакторе создаются "Алгоритмы" — логика приложения , а сервер исполняет заданную логику и обеспечивает взаимодействие с мессенджером.
Важная особенность Ботовода — это подход к чат-боту как к микросервису с чётко обозначенными границам, что позволяет, как из кубиков, собирать и поддерживать большие, сложные и стабильные системы.
Полноценная работа уже обеспечена установкой системы в файловом режиме. При работе с WebHook не требуется SSL и фиксированный IP. Бот «hello» из набора примеров готов к работе сразу после развёртывания файловой базы и регистрации чат-бота в мессенджере.

Ботовод обеспечивает параллельную работу множества алгоритмов и чат-ботов.


Среда разработки имеет следующие инструменты:

  • Визуальный редактор блок-схем для создания общей логики приложения.
  • Редактор кода с подсветкой синтаксиса и автокомплитом, для описания более сложной логики.
  • Управляемый режим, в котором Ботовод по сути является посредником между информационной системой (к примеру 1С:ERP или сайтом) клиента и конечным пользователем.
    Пример: «управляющей системе» (УС) требуется получить от пользователя подтверждение регистрации. УС, через API «просит» Ботовод запустить соответствующий алгоритм. Ботовод начинает общение с клиентом по указанной логике - запрашивает данные, проверяет, уточняет, после чего передаёт результат в управляющую систему.
  • Возможность обмена разработками.
  • Хранение истории версий разработки с возможностью отката.
  • И многое другое, облегчающее и ускоряющее разработку.


Преимущества:

  • высокая скорость разработки
  • наглядность
  • интуитивность
  • масштабируемость
  • универсальность
  • низкая стоимость разработки и поддержки

На данный момент поддерживается Telegram API, но модуль поддержки API может быть адаптирован под работу с любым мессенджером. Телеграм был выбран из-за богатства API и простоты запуска чат-ботов.

Разработчику:

Общее описание:

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

1) Старт диалога:

· Инициируется Пользователем отправкой команды в чат-боте, к примеру «/start», или простого обращения, начинает диалог в мессенджере.

· Инициируется Управляющей системой - через API Ботоводу приходит команда запустить указанный алгоритм для одного или группы пользователей. При этом УС может инициализировать ходящие данные алгоритма.

· Стартует по таймеру, который может устанавливаться и управляющей системой или предыдущим диалогом.

2) При старте диалога открывается «сессия» и до завершения диалога сохраняет данные о пользователе и все накопленные данные.

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

4) Завершение: происходит обработка накопленных данных по заданной логике. В случае запуска диалога управляющей системой данные возвращаются ей.

Инструменты для разработчика:

  • Редактор блок схем: Логика приложения описывается предопределёнными блоками. Каждый блок имеет свойства, многие блоки позволяют исполнять код для расширения своего функционала. К примеру блок «Условие» позволяет обрабатывать полученный ответ и осуществлять условный переход. Палитра свойств визуально организована схоже с любым IDE.
  • Редактор кода: Свойство «код», позволяющее описывать любое поведение. В данном свойстве доступны экспортные процедуры серверных модулей конфигурации и управление всеми данными сессии, а так же «глобальными данными» ( нем чуть позже). Код в Ботоводе пишется на привычном зыке 1С. Но для повышения читаемости и скорости разработки разработан инструмент «Сокращений». Объяснять долго, приведу пример: «Сессия.ДанныеСессии.ИДЗаявки» в редакторе выглядит так: «!%ИДЗаявки». Разработчик может самостоятельно добавлять/изменять сокращения.
    Редактор имеет подсветку синтаксиса как в конфигураторе 1С, «сокращения» выделяются желты цветом. Так же присутствует автокомплит с учётом «сокращений», вызываемый по Ctrl+Space.
  • Журнал событий: это отладочный инструмент, здесь ведётся подробный лог работы и ошибок. При возникновении ошибки разработчик может понять, в каком алгоритме, на каком шаге появилась ошибка, видит описание ошибки и код её вызвавший.
  • Управляемый режим: Выше уже описан, но есть один плюс, непосредственно для разработчика. Очень часто разработчик сталкивается с нечестным заказчиком, который под видом тестирования присваивает исходный код, а дальше торгуется, уменьшая гонорар. Управляемый режим позволяет продемонстрировать взаимодействие с системами заказчика без передачи исходников. Так же вы можете сдавать вашу разработку в аренду, просто подключая к API Ботовода, новых заказчиков.
  • Ссылки: Каждый алгоритм это микросервис с чётко обозначенными границами. Плюсы данной архитектуры: простая поддержка, масштабирование и управление. Однажды создав алгоритм вы можете использовать его в разных приложениях, просто создавая на него ссылки и передавая в него необходимые параметры. В стандартной поставке уже присутствует ряд часто используемых алгоритмов таких как: Ввод даты, Ввод данных, Презентация, Карусель...
  • Переходы: Ботовод позволяет осуществлять переходы из алгоритма в алгоритм, для чего существует отдельный блок схемы «Подпрограмма». Переход может быть просто передачей управления, а может быть вызовом подпрограммы, по завершении её работы управление и данные будут переданы в вызывающий алгоритм, вложенность таких вызовов не ограничивается.
  • Права: Ботовод позволяет назначать роли пользователям чат-бота и в соответствии с ними разделять доступ к различным алгоритмам и веткам алгоритмов.
  • Глобальные данные: Инструмент, позволяющий хранить данные между сессиями, такие как настройки, историю. По сути это аналог регистра сведений, но управляемый из пользовательского режима. Механизм предназначен для хранения небольших массивов простых данных и не поддерживает запросов. Создание структуры данных доступно разработчику, наполнение и управление глобальными данными происходит из кода алгоритмов. Глобальные данные могут храниться в разрезе мессенджеров, ботов, алгоритмов и пользователей. Хранить и обрабатывать большие массивы данных следует в управляющей системе.
    Здесь перечислены только основные возможности и инструменты.
  • Общие алгоритмы: это предопределённая группа, содержащая библиотеку часто используемых алгоритмов. В процессе развития проекта содержимое группы будет увеличиваться, также разработчик может наполнять её самостоятельно.

Бизнесу:

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

  1. Заказываете разработку требуемого приложения к примеру «Личный кабинет клиента», которое позволит вашим клиентам самостоятельно создавать заказы и следить за их движением. Согласование логики работы упрощается использованием легко читаемых блок-схем.
  2. Принимаете разработку. Разработчик присылает вам «Пакет» с вашим приложением, Либо подключает вашу систему к своему Ботоводу и демонстрирует его работу.
  3. Вы настраивает свою систему для работы с Ботоводом чрез API, как правило это 10-30 строк кода.

На этом всё. Данная разработка позволит избавить ваших сотрудников от рутинной работы и оптимизировать затраты на персонал.

Бизнес-кейсы:

  • Продажа услуги - интересный пример, в котором ИТ компания разрабатывает чат-ботов и предоставляет к ним доступ на коммерческой основе. Примером такого бота может являться чат-бот "интернет магазин", единожды разработанный он может использоваться любым количеством «управляющих систем». На данный момент биллинговой системы, управляющей реализацией услуг, Ботовод не содержит, но её создание планируется.
  • Call-центр - автономный бот, обрабатывающий обращения клиентов и ,при необходимости, переадресовывающий их на соответствующего сотрудника. Позволяет снять до 80% нагрузки с ваших операторов.
  • Личный кабинет - о нем писалось выше, работает в управляемом режиме.
  • Интернет-магазин - классический интернет магазин, с витриной, подбором по параметрам корзиной оформлением и оплатой заказа, работает в управляемом режиме.
  • Служба Поддержки - позволяет автоматизировать сбор, ранжирование обращений пользователей, а так же информировать о ходе исполнения заявки. Работает автономно.
  • Документооборот - согласование документов через мессенджер. Работает в управляемом режиме, интегрируется с 1С:ЭДО.

Экономия:

  1. Если работу сотрудника можно формализовать значит её можно автоматизировать, в целом это позволит сэкономить расходы на персонал.
  2. Ботовод позволяет сэкономить на лицензиях 1С, вся работа с мессенджером построена через HTTP сервис, требующий столько лицензий, сколько пользователей обслуживаются одновременно. Как показывает практика, Бот «Личный кабинет», на обслуживающий 100 пользователей в активном режиме использует только одну клиентскую лицензию! В планах доработка, позволяющая принудительно ограничивать очередь входящих запросов заданным количеством потоков, что не позволит занимать более указанного количества клиентских лицензий.
  3. Ботовод может работать без стороннего софта, что освобождает вас от трат на лицензий WindowsServer и MSSQL Server.
  4. Разработку на Ботоводе может вести специалист с минимальным опытом в 1С.
  5. Ботовод позволяет собирать ваше решение из готовых алгоритмов (аналог подключаемых библиотек прочих языков программирования), с каждым днём библиотека «Общих алгоритмов» расширяется.

Из опыта использования чат-бот запрашивающий местоположение, статус и документы по перевозке у водителя экспедитора, позволяет экономить 200-400 тысяч рублей в месяц, избавляя логистов от рутины, минимизируя человеческий фактор, ускоряя оборачиваемость средств за счет оперативности движения документов.

Краткий экскурс по интерфейсу:

Механизм "Контрольные показатели"
Механизм "Контрольные показатели"

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

Настройка показателя
Настройка показателя

Автоматизировать реакцию на нештатные ситуации к примеру при проблемах с API-gate мессенджера оповестить Администратора или самостоятельно предпринять какие-либо действия.

Журнал событий
Журнал событий

Журнал событий аналог журнала регистрации но интерактивный и с более расширенной аналитикой.

Клонирование ботов
Клонирование ботов

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

Редактор структуры глобальных данных
Редактор структуры глобальных данных

Глобальные данные позволяют интерактивно создавать структуры данных (аналог регистров сведений и констант) и сохранять в них данные между сессиями пользователей. К примеру Бот "Конкурс", привлекающий в канал клиентов на базе реферальных ссылок, использует этот механизм для хранения настроек и подсчета победителя.
Важно: механизм не является заменой регистрам, а предназначен для хранения небольших массивов данных т.к. имеет ряд ограничений в силу своей архитектуры.

Редактор данных
Редактор данных

Данные могут храниться в разрезе ботов, алгоритмов и клиентов.

Редактор кода
Редактор кода

Редактор кода помогает описать сложную логику. Содержит инструменты "Сокращения" и "Шаблоны" помогающие ускорить разработку и сделать код максимально читаемым.

Редактор блок-схем
Редактор блок-схем

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

Сообщение
Сообщение

Сообщение - текст сообщения может быть задан жестко или вычисляться динамически.

Меню
Меню

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

Процедура
Процедура

Процедура - выполняет вычисления. Часто используется в начале алгоритма для инициализации и в конце для подготовки результата.

Функция
Функция

Функция - классический условный переход в зависимости от выполненных вычислений.

Вложенный процесс
Вложенный процесс

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

Задержка
Задержка

Задержка - величина задержки может быть или абсолютной, при указании конкретной даты и времени, или относительной.

Резюме:

  • Ботовод это простая мощная и гибкая система
  • Не требует знания API мессенджера
  • Микросервисная архитектура позволяет реализовать и запустить идею любой сложности
  • Позволяет легко интегрироваться с любыми системами
  • Распространяется свободно
  • Демо-версия не ограничена по функционалу
  • Проект пережил 2 серьезных реинкарнации и архитектура решения вполне зрелая.

https://botovod.org
@BotovodLandingBot