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);