import AutoTooltip from '@/components/auto-tooltip';
import PageTools from '@/components/page-tools';
import { modelCategoriesMap } from '@/pages/llmodels/config';
import { convertFileSize } from '@/utils';
import { useIntl } from '@umijs/max';
import { Col, Row, Table } from 'antd';
import { memo, useContext } from 'react';
import { DashboardContext } from '../config/dashboard-context';
const NACategories = [
modelCategoriesMap.llm,
modelCategoriesMap.embedding,
modelCategoriesMap.reranker
];
const ActiveTable = () => {
const intl = useIntl();
const data = useContext(DashboardContext).active_models || [];
const modelColumns = [
{
title: intl.formatMessage({ id: 'common.table.name' }),
dataIndex: 'name',
key: 'name',
ellipsis: true,
render: (text: any, record: any) => {
return (
{text}
);
}
},
{
title: intl.formatMessage({ id: 'dashboard.allocatevram' }),
dataIndex: 'resource_claim.memory',
key: 'vram',
ellipsis: true,
render: (text: any, record: any) => {
return (
{convertFileSize(record.resource_claim?.vram || 0)} /{' '}
{convertFileSize(record.resource_claim?.ram || 0)}
);
}
},
{
title: intl.formatMessage({ id: 'models.form.replicas' }),
dataIndex: 'instance_count',
key: 'instance_count'
},
{
title: intl.formatMessage({ id: 'dashboard.tokens' }),
dataIndex: 'token_count',
key: 'token_count',
ellipsis: true,
render: (text: any, record: any) => {
let val = text;
if (!text) {
val = !NACategories.includes(record.categories?.[0]) ? 'N/A' : 0;
}
return (
{val}
);
}
}
];
return (
{intl.formatMessage({ id: 'dashboard.activeModels' })}
}
right={false}
/>
);
};
export default memo(ActiveTable);