4. Интересные формы и инпуты
В конструкторе ботов Aimylogic человеку нужно настраивать разные Навыки бота (оформить заказ в интернет-магазине, отвечать на вопросы, иметь подходящее меню, etc). Функционал настройки довольно объемный и сложный. Чтобы процесс создания был понятен человеку без какого-либо ботостроительного опыта, использовала формы с простыми контролами: поля ввода, выпадайки, etc.
Инженерная задача получилась такая: упаковать сложный функционал в простые контролы, но так, чтобы не было путаницы и все выглядело визуально компактно и однозначно.
Так появился формат "таблиц" из "карточек" с простыми контролами, где каждый блок отвечает за какой-то параметр настройки. Блоки можно перемещать, удалять, добавлять новые. Менять в них контент, корректировать поведение бота, задавать свои параметры.
Например, при настройке кнопок в Меню бота. Человек может скорректировать, какой именно навык кнопка запускает и какую реакцию бота в рамках навыка активирует, система отслеживает и предлагает только доступные (если навык жестко связан с реакцией, отредактировать можно только название кнопки). Для других Навыков могут быть выпадайки, позволяющие не только выбрать предзаданный вариант, но и создать свой.
Вообще карточный подход позволяет легко считывать смысловые группы и отделять настройку вспомогательных параметров от параметров Навыков. Например, Навык Авторассылка, когда бот сам отправляет клиенту сообщения по определенному расписанию:
В интерфейсе Базы знаний бота (библиотека вопросов к боту от клиента и его ответов) человек прописывает не только вопрос, но и возможные формулировки. Это нужно, чтобы снизить риск ошибки бота при распознавании. Проф. пользователи могут использовать формат Паттернов — это особый способ записи, своего рода кодирование, которое позволяет модельке распознавания речи реагировать на большее количество вариаций целевых слов, например, игнорировать окончания. Грубый и упрощенный пример: в формате текста для модели будет разница между "кредит" и "кредитЫ", в формате паттерна "%кредит%" она среагирует на любое окончание после "кредит-".
Поскольку формулировки вносятся достаточно быстро и массово, нужен быстрый доступ к обзору и редактированию, составила контрол, который передает сценарий взаимодействия пользователя с системой. Поля ввода объединены в одну таблицу, сохранение введенной формулировки запускается по Enter (и кнопке), новая введенная формулировка добавляется в список сразу же создавая новую пустую строку. В общем, паттерн, напоминающий Excel-таблицу и использующий аффорданс. (А еще сюда можно массово скопировать фразы из внешнего документа и система сама разобьет их на отдельные строки). Подобный инпут потом разошелся по продукту.
В некоторых обстоятельствах у пользователя возникает необходимость отправлять через бота информацию отдельными сообщениями + отправлять разный контент. То есть это одно разовое взаимодействие бота с клиентом, просто с отправкой сообщений друг за другом. Обычные поля ввода и стандартные способы отображения прикрепления файлов в стандартной форме не давали ощущения монолитности конструкции.
Поэтому здесь тоже появилось комбинированное поле ввода, больше похожее на таблицу: можно перемещать блоки с контентом, удалять, добавлять новые, использовать форматирование и прикреплять различный контент (с предупреждением о поддерживаемых каналах).
(Для прикрепленных файлов используется стандартный компонент, его не меняли по задаче).