feat(dashboard): split top user token usage into prompt/completion

This commit is contained in:
jialin
2026-06-30 14:38:35 +08:00
committed by jialin
parent 2e375c6603
commit a516e6ce72
2 changed files with 80 additions and 29 deletions
@@ -1,20 +1,17 @@
import useQueryTimeSeriesData from '@/pages/usage/services/use-query-timeseries-data';
import { useIntl } from '@umijs/max';
import { useEffect, useMemo } from 'react';
import {
baseColorMap,
DashboardUsageCommonParams,
toUsageRankData
toUsageTokenBreakdownData
} from '../config';
export default function useTopTokenUsageByUser(
commonParams: DashboardUsageCommonParams
) {
const intl = useIntl();
const query = useQueryTimeSeriesData({
key: 'topTokenUsageByUserData'
});
const tokenUsageText = intl.formatMessage({ id: 'dashboard.tokens' });
useEffect(() => {
query
@@ -31,13 +28,19 @@ export default function useTopTokenUsageByUser(
const rankData = useMemo(
() =>
toUsageRankData(
query.detailData,
'user',
tokenUsageText,
baseColorMap.base
),
[query.detailData, tokenUsageText]
toUsageTokenBreakdownData(query.detailData, 'user', [
{
name: 'Prompt Tokens',
key: 'input_tokens',
color: baseColorMap.base
},
{
name: 'Completion Tokens',
key: 'output_tokens',
color: baseColorMap.baseR3
}
]),
[query.detailData]
);
return {