Перейти к содержанию

Управление пользовательскими графиками

Glarus BI позволяет системным администраторам загружать собственные визуализации в виде JS-плагинов. Каждый плагин становится доступен внутри визуализации «Свой график». Данные запроса передаются в загруженный JavaScript-пакет, который отрисовывает диаграмму произвольным способом — средствами SVG, Canvas, WebGL, через сторонние библиотеки (echarts, d3, plotly) или с использованием WebAssembly.

Плагины могут быть как написаны разработчиком на TypeScript/JavaScript, так и генерироваться администраторами с применением средств искусственного интеллекта в интерфейсе Glarus BI (требуется интеграция с ИИ-агентом) или в отдельном приложении для генерации кода с использованием документации разработчика.

Мы предоставляем несколько демонстрационных плагинов:

Плагин Описание
Hello World Минимальный плагин: отображает приветствие, число строк и значение первой ячейки первой записи. Нет требований к данным, должен работать с любым запросом.
Радар Визуализация "Радар": запрос должен содержать как минимум один столбец измерений (метку оси) и три или более числовых показателя. Отображается только первая строка (для примера). Запрос должен возвращать минимум одну ось.
Сводная таблица Классическая двухмерная сводная таблица с возможностью подсчёта итогов по строкам, столбцам и линейной тепловой картой ячеек.

Распакуйте содержимое zip-файла после загрузки.

Загрузка плагина в Glarus BI через графический интерфейс

Чтобы плагин отображался в выборе визуализаций, администратор должен загрузить его в подразделе «Пользовательские графики». Потребуются 2 файла:

  • файл пакета pluigin.js;
  • файл манифеста manifest.json.

Порядок действий:

  1. Открыть Управление > Свои графики.
  2. Загрузить файл пакета plugin.js и файл манифеста manifest.json.
  3. Нажать кнопку «Загрузить плагин».

Плагин должен появиться в реестре – таблице под элементами загрузки, в блоке «Установленные плагины».

Проверка работоспособности плагина

Чтобы проверить работоспособность плагина после загрузки:

  1. Открыть любой сохранённый запрос.
  2. На правой панели выбрать тип визуализации «Свой график».
  3. На вкладке «Плагин» убедиться в появлении новой строки.
  4. Попытаться воспользоваться плагином как обычной визуализацией, изменив запрос, чтобы соответствовать требованиям плагина к данным.

Редактирование плагина

Обновление через «Магазин» и настроенная администратором ИИ-доработка заменяют пакет на месте; условия описаны в разделе библиотеки плагинов. Для ручной замены собственного пакета с тем же slug сначала уберите все использования и удалите прежний плагин. Повторная ручная загрузка с существующим slug отклоняется. При таком способе замены потребуется заново выбрать новый плагин в карточках:

  1. Найдите запросы с текущим плагином и замените визуализацию.
  2. Удалите плагин из используемых в Управление > Свои графики. Система будет блокировать удаление, если ещё есть запросы с текущим плагином.
  3. Создайте или загрузите новый плагин, уже исправленный.
  4. Проверьте работоспособность плагина.
  5. Поочерёдно выберите запросы, в которых нужна новая визуализация и в настройках "Свой график" выберите плагин из списка (или попросите его выбрать пользователей, которым нужна новая визуализация). Каждый запрос потребуется сохранить.

Удаление плагина

Для удаления плагина:

  1. Открыть Управление > Свои графики.
  2. В реестре «Установленные плагины» найти плагин по названию.
  3. Убедиться, что плагин не используется в запросах и на дашбордах. Информация об использовании выводится в реестре плагинов.
  4. Нажать кнопку «Удалить».

Плагины, которые уже выбраны в запросах, система не позволит удалить. В таких записях кнопка удаления будет неактивна.

Генерация плагинов с использованием ИИ

Для работы ИИ-функционала требуется настроить интеграцию с большой языковой моделью DeepSeek.

В разделе администрирования доступна функция «Сгенерировать с ИИ»:

  1. Пользователь вводит текстовый запрос («Диаграмма Ганта», «Sankey с настраиваемыми цветами», «Радар с легендой справа» и т. п.).

  2. Серверная часть передаёт запрос языковой модели (DeepSeek) через потоковое соединение (SSE).

  3. На клиентской стороне отображается интерфейс с постепенным появлением текста по мере генерации.

  4. Серверная часть в фоновом режиме проверяет полученный ответ: парсинг JSON, валидацию схемы манифеста, попытку выполнения пакета. При неудаче запрос к модели повторяется (до четырёх попыток).

  5. После успешной проверки плагин автоматически сохраняется в реестр и становится доступен в списке.

Аналогичная функция реализована для доработки существующего плагина: команда «измени цвет на синий» или «добавь подсказку с процентами» приводит к повторной генерации с использованием текущего манифеста и пакета.

В таблице приведены настройки генерации плагина с помощью DeepSeek:

Настройка Назначение
glarus-deepseek-api-key Ключ API DeepSeek
glarus-deepseek-model Идентификатор модели (по умолчанию deepseek-chat)
glarus-deepseek-max-tokens Ограничение длины ответа модели в токенах
glarus-deepseek-max-prompt-chars Ограничение длины пользовательского запроса в символах
glarus-deepseek-max-bundle-chars Ограничение длины пакета при доработке
glarus-deepseek-system-prompt Системный запрос (по умолчанию загружается из начальных данных)

Метаданные генерации (исходный запрос, число попыток, время генерации, идентификатор модели) отображаются в списке плагинов.

Библиотека плагинов: версии, обновление, перенос

«Установленные плагины» — общая библиотека пользовательских визуализаций экземпляра. Администратор открывает настройки администрирования → «Свои графики» → «Установленные». Установленный плагин выбирается как «Свой график» в вопросах и карточках дашбордов, к которым у пользователя есть доступ.

В реестре видны название, slug, «Версия» из поля version манифеста, пользователь, создавший или установивший текущую сборку («Кто»), время и продолжительность операции генерации или установки, последнее изменение и «Используется в». У загруженного вручную плагина сведения о генерации могут отсутствовать. Список использований включает вопросы, дашборды и рассылки/оповещения. Для каждой категории показывается не больше пяти объектов; счётчик складывается из этих ограниченных списков и не служит полным аудитом большой библиотеки.

Используемый плагин удалить нельзя. Пока на него ссылается хотя бы один объект, удаление отклоняется; сначала нужно убрать ссылки. Это ограничение относится и к ИИ-доработке. ИИ настраивается администратором: для генерации и доработки пользовательских графиков нужен настроенный провайдер DeepSeek.

  1. Обновление из магазина. Откройте «Магазин». Если версия в каталоге выше установленной, появляется «Обновить». Пакет и манифест заменяются на месте с сохранением идентификатора, на который ссылаются вопросы и дашборды. Для той же или более старой версии показывается статус «Уже установлено», а не кнопка повторной установки. Сохранение идентификатора сохраняет ссылки, но совместимость настроек и данных с новой реализацией виджета нужно проверить.
  2. ИИ-доработка. Для неиспользуемого плагина настроенная ИИ-доработка также заменяет пакет на месте с сохранением идентификатора. Доработка используемого плагина отклоняется; это отличается от обновления через магазин.
  3. Перенос файлов. Нажмите «Скачать сборку и манифест». Сохраняются два файла: <slug>-<version>.bundle.js и <slug>-<version>.manifest.json. На другом экземпляре откройте «Свои графики» → «Установленные», выберите оба файла и нажмите «Загрузить плагин». Либо установите тот же виджет из каталога.

Формат переноса — JS-пакет и JSON-манифест, а не готовый вопрос или дашборд. После загрузки на другой экземпляр плагин получает собственный идентификатор; при переносе самих карточек нужно заново проверить выбор плагина. Ручная загрузка при уже существующем slug отклоняется с ошибкой 409, она не заменяет установленный плагин.

Истории версий и встроенного отката нет. Для используемого каталожного виджета удаление и повторная загрузка не являются способом обновления: воспользуйтесь магазином. См. «Каталог виджетов Glarus» и ограничения разработки плагинов.

Каталог виджетов Glarus

Публичный каталог виджетов Glarus содержит готовые визуализации на Apache ECharts. Для опубликованных пакетов в каталоге указаны лицензия Apache-2.0 и совместимость «Glarus BI 52.2+ / 57.2+». Эти сведения относятся к конкретному пакету; проверяйте его карточку и используемую версию приложения.

Машиночитаемый каталог catalog.json содержит записи с полями slug, name, version, description, compatibility, license, manifestUrl и bundleUrl. Последние два поля указывают на JSON-манифест и автономный JS-пакет.

  1. Администратор открывает настройки администрирования → «Свои графики» → «Магазин». Текущий путь страницы — /admin/settings/custom-charts; прежний /admin/glarus/custom-charts перенаправляет на него.
  2. У нового виджета нажмите «Установить». При более высокой версии в каталоге появится «Обновить»; иначе показан статус «Уже установлено».
  3. После установки выберите виджет в типе визуализации «Свой график». Правила обновления и переноса описаны в разделе библиотеки плагинов.

Каталог, пакет и манифест для установки получает сервер Glarus BI. Браузер обращается к API своего экземпляра; значки каталога при этом могут загружаться непосредственно с внешнего адреса. Для установки серверу нужен сетевой доступ к каталогу и файлам пакета, а для показа внешних значков браузеру — к их адресам.

Администратор задаёт адрес каталога настройкой glarus-plugin-store-url или переменной окружения MB_GLARUS_PLUGIN_STORE_URL. Можно указать зеркало catalog.json; относительные ссылки на файлы разрешаются относительно его адреса. Для загрузки пакета адреса manifestUrl и bundleUrl должны использовать HTTP(S) и разрешаться в публичные IP-адреса: localhost и частные адреса файлов отклоняются. Одного внутреннего зеркала с такими файлами недостаточно для полностью изолированного контура; в этом случае используйте перенос пары файлов вручную.

Каталог курирует Glarus. Самостоятельная публикация сторонними авторами и интерфейс модерации сообщества не предусмотрены. В блоке «Нужен свой виджет?» на странице каталога ссылка «Напишите нам» ведёт к форме обратной связи для запроса разработки.

Дополнительная информация