Files
selectel-ml-tui/CHANGELOG.md
T
2026-09-02 16:41:10 +03:00

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.