6.2 KiB
6.2 KiB
Changelog
Все заметные изменения проекта selectel-ml-tui.
1.0.3 — 2026-08-19
Полноценный вывод данных из Gateway API ИИ-роутера (IAM).
Добавлено
- Парсинг реальной схемы Gateway API:
/overview→ потребление за месяц (сумма в нанорублях, запросы, токены всего, input/output/cache read/cache write), бюджет роутера (лимит/расход/ остаток);/metrics→ метрики за 24 ч (доступностьsuccess_rate_pct, TTFT и задержка в секундах→мс, запросы, токены) иby_model— по моделям (запросы/доступность/TTFT);/keys→ лимиты и расход по API-ключам (имя, префикс, статус, лимит, потрачено, остаток).
- Новый экран «API-ключи и лимиты» (клавиша
k) и панель бюджета на главном экране. - Модели: добавлены поля
requests,tokens_total,avg_latency_ms; новые моделиApiKeyUsage,BudgetInfo.
Исправлено
- «Потрачено за месяц» берётся из Gateway Overview (совпадает с вкладкой «Обзор»), биллинг — фолбэк при отсутствии IAM.
SettingsScreenне перезаписывает конфиг, если интервал не менялся.
1.0.2 — 2026-08-19
Исправление отображения данных и прав на файлы конфигурации.
Исправлено
- Сумма за месяц: раньше
endобрезался до начала текущего дня — сегодняшние расходы не входили в сумму. Теперьend= текущий момент (naive datetime), сумма включает текущий день. - История: в историю записывалась месячная сумма как «точка дня». Теперь сохраняется дневная стоимость (отдельно показывается «Сегодня»).
- Токены/модели: при отсутствии IAM (нет сервисного пользователя) поля Input/Output/Cache больше не показывают вводящие в заблуждение нули — выводится пояснение «Токены и модели — только через IAM».
Примечание
- Gateway API (токены по моделям, каталог моделей) требует IAM-токен сервисного
пользователя. В аккаунте нет сервисных пользователей — необходимо создать его
в панели (my.selectel.ru → IAM → Сервисные пользователи) и настроить через
selectel-ml-tui config. credentials.json/config.tomlдолжны принадлежать текущему пользователю (права 0600). Запуск отroot/sudoсоздаёт файлы с владельцем root, из-за чего обычный запуск падает сPermissionError— исправляетсяchown.
1.0.1 — 2026-08-19
Исправление: крах при запуске, если в config.toml (или env
SELCTEL_REFRESH_INTERVAL) указан refresh_interval < 10.
Исправлено
load_settings()больше не бросаетValidationErrorна некорректных значениях:refresh_intervalприводится к допустимому диапазону (минимум 10 секунд), мусорные значения — к умолчанию 60.- Мастер
selectel-ml-tui configотклоняет интервал < 10 (повторный запрос).
1.0.0 — 2026-08-19
Релиз, готовый к использованию.
Добавлено
- TUI-дашборд (Textual): потребление за месяц, метрики за 24 часа, таблица
«По моделям», статус
online/offlineв заголовке, автообновление. - Экраны: История (бар-график + таблица по дням, периоды 7/30/90), Детали модели (Enter в таблице моделей), Настройки (интервал обновления, «Очистить кэш», пути, маскированный токен).
- API-клиенты: Billing Statistics (стоимость), Gateway API (токены/метрики), IAM (получение и кэширование токена с автообновлением).
- Модели данных (pydantic) с валидацией и форматированием чисел.
- Локальный SQLite-кэш: снимки потребления/метрик/моделей, история по дням (upsert), очистка старых записей (TTL 180 дней), экспорт CSV/JSON.
- CLI:
config(интерактивный мастер),run,export,doctor(диагностика окружения);python -m selectel_ml_tui. - Адаптация под Ubuntu и macOS: скрипты установки,
scripts/run.sh, диагностикаTERM/LANG/UTF-8, CI (GitHub Actions: ubuntu + macos). - Упаковка: однофайловый бинарник через PyInstaller (
make build).
Качество
- 89 тестов, покрытие 91% (порог 80%).
- ruff (flake8/isort/format), mypy strict — без ошибок.
- Подсказка при первом запуске без токена, FAQ и troubleshooting в README.