// columns.ts import { AutoTooltip } from '@gpustack/core-ui'; import { useIntl } from '@umijs/max'; import { useMemo } from 'react'; import DeletedTag from '../components/deleted-tag'; import { BreakdownItem as ListItem } from '../config/types'; const useModelsColumns = () => { const intl = useIntl(); return useMemo(() => { return [ { title: intl.formatMessage({ id: 'common.table.name' }), dataIndex: ['api_key', 'identity', 'value', 'api_key_name'], key: 'api_key_name', render: (text: string, record: ListItem) => ( {text}}> {text} {record.api_key?.deleted && ( )} ) }, { title: intl.formatMessage({ id: 'usage.tabs.users' }), dataIndex: ['api_key', 'identity', 'value', 'user_name'], key: 'user_name', render: (text: string, record: ListItem) => ( {text || '-'} ) }, { title: intl.formatMessage({ id: 'usage.filter.modelsUsed' }), dataIndex: 'models_called', key: 'models_called', sorter: true, render: (text: string, record: ListItem) => ( {text || '-'} ) }, { title: intl.formatMessage({ id: 'usage.filter.inputTokens' }), dataIndex: 'input_tokens', key: 'input_tokens', sorter: true, render: (text: string[], record: ListItem) => ( {text} ) }, { title: ( {intl.formatMessage({ id: 'usage.table.inputTokensCached' })} ), dataIndex: 'input_cached_tokens', key: 'input_cached_tokens', sorter: true, render: (text: number, record: ListItem) => ( {text ?? '-'} ) }, { title: intl.formatMessage({ id: 'usage.filter.outputTokens' }), dataIndex: 'output_tokens', key: 'output_tokens', render: (text: string[], record: ListItem) => ( {text} ) }, { title: intl.formatMessage({ id: 'usage.filter.totalTokens' }), dataIndex: 'total_tokens', key: 'total_tokens', sorter: true, ellipsis: { showTitle: false }, render: (text: number) => {text} }, { title: intl.formatMessage({ id: 'usage.filter.apiRequests' }), dataIndex: 'api_requests', key: 'api_requests', sorter: true, ellipsis: { showTitle: false }, render: (text: number) => {text} }, { title: intl.formatMessage({ id: 'usage.table.lastActive' }), dataIndex: 'last_active', key: 'last_active', ellipsis: { showTitle: false }, render: (text: number) => {text} } ]; }, [intl]); }; export default useModelsColumns;