Вы когда-нибудь запускали локальную LLM и ловили себя на мысли: а сколько же токенов в секунду она выдает прямо сейчас? Или почему память вдруг уперлась в потолок? Встроенные логи в терминале — это как смотреть на приборную панель через замочную скважину. Да, есть Prometheus с Grafana, но настраивать их ради одной модели — все равно что вызывать бригаду сварщиков, чтобы повесить полку.
Недавно наткнулся на проект, который решает эту боль максимально изящно. Один HTML-файл. Без бэкенда, без npm install, без docker. Просто скачал, открыл в браузере — и ты видишь live-метрики своего LLM-сервера. MIT лицензия, открытый код.
Как это выглядит изнутри
Дашборд подключается к эндпоинту вашего сервера — будь то llama.cpp, LM Studio или Ollama — через Server-Sent Events или простой HTTP-опрос. На экране появляются четыре блока:
- Текущая скорость (токенов/сек) с графиком за последнюю минуту
- Загрузка RAM/VRAM — сразу видно, не утекло ли чего
- История запросов: сколько длился, какой промпт, сколько сгенерировано
- Статус модели: загружена, выгружена, ошибка
Всё обновляется в реальном времени, цифры прыгают — почти как пульс у кардиомонитора.
Запуск за 10 секунд
Допустим, у вас уже крутится сервер на Ollama:
ollama serveТеперь открываем дашборд — просто кликаем на файл или кидаем в localhost:
open dashboard.htmlВ браузере видим пульсирующие цифры. Никаких токенов, никаких key — потому что файл общается напрямую с API сервера (по умолчанию localhost:11434, но можно переопределить в настройках).
Если ваш сервер висит на другом порту или требует авторизации — достаточно один раз поправить две строчки в начале файла. Всё расписано комментариями.
Сравните это с типичной настройкой мониторинга через Prometheus: установка, конфигурация scrape config, деплой Grafana, импорт дашборда. Тут — скачал и открыл. И никакого vendor lock-in.
Почему это лучше штатных средств
В llama.cpp есть встроенный флаг --verbose, который плюется в консоль цифрами. Но это просто текст, его не посмотришь на планшете, не вставишь в дашборд для команды. llama-eval полезен для профилирования, но не для постоянного мониторинга. А локальный AI-мониторинг экрана решает совсем другую задачу — следит за тем, что происходит на рабочем столе.
Альтернативы вроде облачных панелей (LangSmith, Weights & Biases) требуют интернета и аккаунта. Этот дашборд полностью замкнут на localhost. Ни один пакет не уйдет наружу.
| Инструмент | Зависимости | Сложность настройки | Реальное время |
|---|---|---|---|
| Данный дашборд | Нет (HTML+JS) | Скачать и открыть | Да |
| Prometheus + Grafana | Много | Высокая | Да |
Встроенный --verbose | Нет | Флаг в команде | Нет (только консоль) |
Кому это реально нужно
- Инженерам, которые тюнят квантование. Вы меняете q4_K_M на q5_K_M, и хотите видеть разницу в скорости без запуска бенчмарков. Как бенчмаркать локальные LLM — отличное дополнение, но живой график токенов/сек даёт ощущение сразу.
- Тем, кто использует AnythingLLM или Open WebUI. Дашборд можно повесить на второй монитор и видеть, не загружен ли сервер, прежде чем слать новый запрос.
- Любителям one-file решений. Если вы когда-нибудь радовались Inline Visualizer или Lemonade v9.2 — этот дашборд из той же породы минимализма.
Пару слов про MIT
Лицензия MIT означает, что вы можете встроить этот дашборд в свой продукт, переписать под себя, раздавать коллегам — и никого не должно волновать авторское право. В сообществе LocalLlama Discord такие инструменты ценят именно за прозрачность.
Кстати, если захотите кастомизировать — код читается за пять минут. Там нет ни одной строчки на фреймворке, чистый ванильный JavaScript. Добавить поддержку нового бэкенда? Пара regex и готово.
Для меня этот дашборд стал той самой «кнопкой SOS», которую можно открыть на любом устройстве в локальной сети, не имея ничего, кроме браузера. И когда на очередном хакатоне кто-то спросит «а что там с перформансом?» — вы просто протягиваете телефон с открытым файлом.