Issue #4479 coordenação de estatísticas de uso de tokens
Contexto
A issue #4479 solicita visibilidade diária do consumo de tokens do Qwen Code. O escopo foi esclarecido na thread da issue para preferir um comando CLI, suporte a exportação, resumos mensais e consumo de tokens por modelo. Um comentário de mantenedor também mencionou coordenação com trabalhos de estatísticas adjacentes:
- #4252: métricas de tempo de geração em
/statscomo TTFT, duração da geração, e TPS. - #4182: contadores de sessão sem conteúdo para diagnóstico de memória.
Decisões de coordenação
-
Usar
/stats, não um novo comando de nível superior. O uso de tokens é exposto como/stats daily,/stats monthlye/stats export, de modo que compartilhe a superfície de comandos de estatísticas existente com estatísticas de sessão e métricas futuras de geração. -
Persistir contadores de tokens como JSONL local. Cada resposta da API anexa um registro sem conteúdo a
usage/token-usage-AAAA-MM.jsonlno diretório de execução. Isso satisfaz agregação diária/mensal sem adicionar SQLite como nova dependência. -
Manter a semântica de tempo da #4252 separada. Resumos de uso de tokens podem incluir
apiDurationMs, que é a duração ponta a ponta da resposta da API existente proveniente de telemetria. É nomeado deliberadamente como duração da API e não deve ser apresentado como duração da geração, TTFT ou TPS. A #4252 continua sendo a responsável pelas métricas de tempo de geração. -
Manter os limites de privacidade e diagnóstico de memória da #4182. Registros de uso armazenam apenas contadores agregados e dimensões estáveis: data local, mês, id de sessão, modelo, tipo de autenticação, origem, contadores de tokens e duração da API. Eles não armazenam texto de prompt, texto de resposta, conteúdo de ferramentas, caminhos de projeto, ids de prompt ou ids de resposta.
-
Exportação permanece apenas agregada. Exportações em CSV e JSON são resumos, não exportações de transcrição bruta. Elas agrupam por total, modelo, tipo de autenticação, modelo/tipo de autenticação e origem.
Não objetivos
- Não implementar a instrumentação de TTFT/TPS/duração de geração da #4252 aqui.
- Não estender
/doctor memoryou implementar a #4182 nesta alteração. - Não adicionar um comando de barra separado de nível superior para uso de tokens.