Skip to main content

Нейропреобразования

Модуль служит для изменения типа существующей визуализации на дашборде при помощи интеллектуального помощника FastBot.

Концепт

Используя чат с FastBot пользователь может за несколько секунд изменить тип визуализации. Бот подскажет подходящий тип, поможет подготовить необходимые данные.

Фронтовая часть модуля включает в себя функционал по удалению изменяемой визуализации и размещению на её месте новой с полученными в результате нейропреобразования параметрами.

ML-разработка

Модель получает на входе набор характеристик выбранных пользователем визуализаций: набор информации, отправляемой в Echart для отрисовки; а также текстовый запрос от пользователя, который центральная модель определила как запрос на преобразование визуализации. На выходе должна возвращать новый набор параметров для подготовки визуализаций на фронте.

Модель состоит из 2 модулей. Первый модуль использует обработку текстов на естественном языке (nlp). Второй модуль выполняет задачу классификации по результатам работы первого модуля.

Цель первого модуля - интерпретация текстового запроса от пользователя в рамках элементов визуализации.

Цель второго модуля - выбор финального типа визуализации и определение используемых в нем полей.

Входные данные - набор общих параметров:

  • Уникальные идентификаторы преобразуемых визуализаций
  • Используемые поля из модели данных с их типами в разрезах, показателях, дополнительных секциях (ширина пузырька, разрезы в шапке) для каждой отдельной визуализации отдельным списком.
  • Все поля из всех моделей данных отдельным списком (вне зависимости от того, используются ли они в визуализациях или нет).
  • Запрос от пользователя вида "измени тип данной визуализации", "хочу видеть вместо этого графика таблицу", "преобразуй столбчатую диаграмму в каскадную", "поменяй плоские таблицы на сводные". Запрос от пользователя, который центральная модель определила в данную секцию, может содержать задания и для других модулей, например: "смени таблицу с обычной на сводную и скругли её углы"; однако все не имеющие отношение к данному модулю элементы запроса должны быть отсечены как лишние.

Первый модуль

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

Типы, которые могут быть указаны пользователем (возможные ключевые слова в запросе, в т.ч. и на англ.):

  • Определяет как столбчатую диаграмму (Bar) - диаграмма, столбчатая диаграмма, комбинированная диаграмма (часть показателей как столбцы), столбы/столбцы/столбики и синонимы.
  • Определяет как линейную диаграмму (Line) - комбинированная диаграмма, линейная диаграмма (часть показателей как линии), график, линейный график, линия, пунктир, пунктирный график, точки.
  • Определяет как круговую диаграмму (PieChart) - круговая диаграмма, круг, пирог, роза, пай чарт
  • Определяет как водопад (Waterfall) - водопад, каскад, каскадная диаграмма, ватерфалл (в т.ч. с использованием букв "о", одной "л" и т.п.)
  • Определяет как дерево (TreeMap) - дерево, иерархия, иерархическая диаграмма, вложенная диаграмма, тримап (тримэп и т.п.)
  • Определяет как пузырьковую диаграмму (Bubble) - точечная диаграмма, пузырьки, пузырьковая диаграмма, шарики, бабл (и т.п.)
  • Определяет как таблицу (Table) - таблица, плоская таблица, сводная таблица, ячейки, сетка, тэйбл (табла и т.п.)

Барьеры для преобразования:

  • Слишком мало выбрано полей - возвращает ошибку "Вы выбрали слишком мало полей для данного типа визуализации. Пожалуйста, выберите необходимые поля в данных к визуализации, напишите их в чат или позвольте мне выбрать вместо Вас!" на фронт и переходит в режим ожидания ответа от пользователя.
  • Слишком много выбрано полей - возвращает ошибку "Вы выбрали слишком много полей для данного типа визуализации. Пожалуйста, удалите ненужные поля в данных к визуализации, напишите их в чат или позвольте мне убрать вместо Вас!" на фронт и переходит в режим ожидания ответа от пользователя. 
  • Как минимум одно поле имеет неподходящий тип данных - возвращает ошибку "Невозможно использовать поля {список полей} для построения запрашиваемой визуализации. Пожалуйста, удалите одно или несколько из этих полей в данных к визуализации, выберите другой тип преобразования или позвольте сделать это за Вас!" на фронт и переходит в режим ожидания ответа от пользователя.

Второй модуль

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

  • Тип визуализации определен пользователем и нет никаких барьеров - данный модуль пропускается.
  • Тип визуализации определен пользователем, но есть барьеры, преодоление которых человек доверил машине: 
    • Есть лишние поля - модуль удаляет эти поля
    • Не хватает полей - модуль анализирует необходимые для заполнения элементы визуализации (разрезы, показатели) и согласно доступному типу, контексту запроса и неиспользуемым в выбранной визуализации полям назначает такие поля в подходящие разрезы и показатели (логика аналогична нейровизуализации, где входной массив данных - неиспользуемые поля)
    • Есть поля с неподходящим типом данных - если пользователь просит избавиться от них, то см. п. "Есть лишние поля". Если пользователь просит модель саму определить подходящий тип, включая эти поля, то см. п. "Тип визуализации не определен"
  • Тип визуализации не определен пользователем вручную - модуль определяет наиболее подходящий тип визуализации, опираясь на используемые в визуализации поля (логика аналогична нейровизуализации, где входной массив данных - используемые поля)

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

Выход модели:

  • Ключевое слово Replace
  • Идентификаторы затронутых визуализаций
  • Тип визуализации (ключевое слово Bar/Line/Table/PieChart и др.)
  • Используемые поля (с указанием места использования - разрез или показатель)