Align with gpustack backend commits 7b57cd3b (add route dimension to
usage breakdown) and 51fd25c8 (use model_route_id as models_called):
* group_by, filters, and BreakdownItem now use the `route` dimension;
`models` filter cascader is replaced with a flat `routes` selector
(routes have no provider/cluster grouping).
* Tab / group_by option / column header keep the user-facing "模型 / Model"
wording — only the underlying data dimension changed.
* Drop cluster_name / provider_type columns from the breakdown table;
drop api_keys_used column per design.
* Fix pre-existing excel export bug in use-export-table — string
dataIndex was lodash-joined char-by-char ("input_tokens" →
"i_n_p_u_t..."), array dataIndex was used as a flat key against nested
rows. Rebuilt around buildSheetMeta that emits a stable field key plus
a formatMap using _.get(row, path) for nested values. Sheet name kept
as `models` to match the visible column label.
23 lines
507 B
TypeScript
23 lines
507 B
TypeScript
import { BreakdownItem } from '../config/types';
|
|
|
|
export const getBreakdownRowKey = (
|
|
record: BreakdownItem,
|
|
type: string
|
|
): string => {
|
|
if (type === 'models') {
|
|
return `${record.route?.label || ''}`;
|
|
}
|
|
|
|
if (type === 'users') {
|
|
return `${record.user.label}`;
|
|
}
|
|
|
|
if (type === 'api_keys') {
|
|
return `${record.api_key.label}`;
|
|
}
|
|
|
|
return `${record.date?.value || ''}-${record.route?.label || ''}-${record.user.label}-${record.api_key.label}`;
|
|
};
|
|
|
|
export default getBreakdownRowKey;
|