Skip to Content
ДизайнIssue #4479 координация статистики использования токенов

Issue #4479 координация статистики использования токенов

Контекст

Issue #4477 запрашивает видимость ежедневного потребления токенов Qwen Code. В ходе обсуждения в треде было уточнено, что предпочтительнее реализовать команду CLI, поддержку экспорта, ежемесячные сводки и потребление токенов по моделям. В комментарии мейнтейнера также была отмечена необходимость координации со смежными работами по статистике:

  • #4252: метрики времени генерации в /stats, такие как TTFT, длительность генерации и TPS.
  • #4182: счетчики масштаба сессии без содержимого для диагностики памяти.

Решения по координации

  1. Использовать /stats, а не новую команду верхнего уровня. Использование токенов отображается через /stats daily, /stats monthly и /stats export, что позволяет использовать существующую поверхность команд статистики совместно со статистикой сессий и будущими метриками генерации.

  2. Хранить счетчики токенов в локальном JSONL. Каждый ответ API добавляет одну запись без содержимого в usage/token-usage-YYYY-MM.jsonl в рабочем каталоге. Это обеспечивает ежедневную и ежемесячную агрегацию без добавления SQLite в качестве новой зависимости.

  3. Сохранить семантику времени #4252 отдельно. Сводки использования токенов могут включать apiDurationMs — существующую сквозную длительность ответа API из телеметрии. Она намеренно названа длительностью API и не должна представляться как длительность генерации, TTFT или TPS. #4252 остаётся ответственным за метрики времени генерации.

  4. Соблюдать границы конфиденциальности и диагностики памяти из #4182. Записи об использовании хранят только агрегированные счетчики и стабильные измерения: локальная дата, месяц, идентификатор сессии, модель, тип аутентификации, источник, счетчики токенов и длительность API. Они не хранят текст запроса, текст ответа, содержимое инструментов, пути проектов, идентификаторы запросов или идентификаторы ответов.

  5. Экспорт остаётся только агрегированным. Экспорт в CSV и JSON — это сводки, а не экспорт сырых транскриптов. Они группируются по общему итогу, модели, типу аутентификации, модели/типу аутентификации и источнику.

Нецелевые задачи

  • Не реализовывать инструментарий TTFT/TPS/длительности генерации из #4252 в рамках этой задачи.
  • Не расширять /doctor memory и не реализовывать #4182 в этом изменении.
  • Не добавлять отдельную команду слэша верхнего уровня для токенов.
Last updated on