|
@@ -25,12 +25,6 @@ import { ProviderBadge } from '@/components/provider-badge'
|
|
|
import { StatusBadge } from '@/components/status-badge'
|
|
import { StatusBadge } from '@/components/status-badge'
|
|
|
import { TableId } from '@/components/table-id'
|
|
import { TableId } from '@/components/table-id'
|
|
|
import { Checkbox } from '@/components/ui/checkbox'
|
|
import { Checkbox } from '@/components/ui/checkbox'
|
|
|
-import {
|
|
|
|
|
- Tooltip,
|
|
|
|
|
- TooltipContent,
|
|
|
|
|
- TooltipProvider,
|
|
|
|
|
- TooltipTrigger,
|
|
|
|
|
-} from '@/components/ui/tooltip'
|
|
|
|
|
import { PERMISSION_CODES, hasPermissionCode } from '@/lib/admin-permissions'
|
|
import { PERMISSION_CODES, hasPermissionCode } from '@/lib/admin-permissions'
|
|
|
import { formatTimestampToDate } from '@/lib/format'
|
|
import { formatTimestampToDate } from '@/lib/format'
|
|
|
import { getLobeIcon } from '@/lib/lobe-icon'
|
|
import { getLobeIcon } from '@/lib/lobe-icon'
|
|
@@ -38,7 +32,6 @@ import { useAuthStore } from '@/stores/auth-store'
|
|
|
|
|
|
|
|
import {
|
|
import {
|
|
|
getModelStatusConfig,
|
|
getModelStatusConfig,
|
|
|
- getNameRuleConfig,
|
|
|
|
|
getQuotaTypeConfig,
|
|
getQuotaTypeConfig,
|
|
|
} from '../constants'
|
|
} from '../constants'
|
|
|
import { parseModelTags, formatEndpointsDisplay } from '../lib'
|
|
import { parseModelTags, formatEndpointsDisplay } from '../lib'
|
|
@@ -64,7 +57,6 @@ export function useModelsColumns(vendors: Vendor[] = []): ColumnDef<Model>[] {
|
|
|
hasPermissionCode(currentUser, PERMISSION_CODES.MODELS_DISABLE)
|
|
hasPermissionCode(currentUser, PERMISSION_CODES.MODELS_DISABLE)
|
|
|
|
|
|
|
|
// Get translated configs
|
|
// Get translated configs
|
|
|
- const NAME_RULE_CONFIG = getNameRuleConfig(t)
|
|
|
|
|
const MODEL_STATUS_CONFIG = getModelStatusConfig(t)
|
|
const MODEL_STATUS_CONFIG = getModelStatusConfig(t)
|
|
|
const QUOTA_TYPE_CONFIG = getQuotaTypeConfig(t)
|
|
const QUOTA_TYPE_CONFIG = getQuotaTypeConfig(t)
|
|
|
|
|
|
|
@@ -143,72 +135,6 @@ export function useModelsColumns(vendors: Vendor[] = []): ColumnDef<Model>[] {
|
|
|
minSize: 200,
|
|
minSize: 200,
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
- // Name Rule column
|
|
|
|
|
- {
|
|
|
|
|
- accessorKey: 'name_rule',
|
|
|
|
|
- header: t('Match Type'),
|
|
|
|
|
- cell: ({ row }) => {
|
|
|
|
|
- const rule = row.getValue('name_rule') as 0 | 1 | 2 | 3
|
|
|
|
|
- const model = row.original
|
|
|
|
|
- const config = NAME_RULE_CONFIG[rule]
|
|
|
|
|
-
|
|
|
|
|
- let label = config.label
|
|
|
|
|
- if (rule !== 0 && model.matched_count) {
|
|
|
|
|
- label = `${config.label} (${model.matched_count})`
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- const badge = (
|
|
|
|
|
- <StatusBadge
|
|
|
|
|
- variant={
|
|
|
|
|
- (config.color === 'error' ? 'danger' : config.color) as
|
|
|
|
|
- | 'neutral'
|
|
|
|
|
- | 'success'
|
|
|
|
|
- | 'warning'
|
|
|
|
|
- | 'danger'
|
|
|
|
|
- | 'info'
|
|
|
|
|
- }
|
|
|
|
|
- size='sm'
|
|
|
|
|
- className='-ml-1.5 max-w-none shrink-0'
|
|
|
|
|
- >
|
|
|
|
|
- {label}
|
|
|
|
|
- </StatusBadge>
|
|
|
|
|
- )
|
|
|
|
|
-
|
|
|
|
|
- // Show tooltip with matched models for non-exact rules
|
|
|
|
|
- if (
|
|
|
|
|
- rule !== 0 &&
|
|
|
|
|
- model.matched_models &&
|
|
|
|
|
- model.matched_models.length > 0
|
|
|
|
|
- ) {
|
|
|
|
|
- const matchedBadges = model.matched_models.map((m) => (
|
|
|
|
|
- <StatusBadge key={m} label={m} autoColor={m} size='sm' />
|
|
|
|
|
- ))
|
|
|
|
|
-
|
|
|
|
|
- return (
|
|
|
|
|
- <TooltipProvider>
|
|
|
|
|
- <Tooltip>
|
|
|
|
|
- <TooltipTrigger
|
|
|
|
|
- render={<div className='inline-flex max-w-full min-w-0' />}
|
|
|
|
|
- >
|
|
|
|
|
- {badge}
|
|
|
|
|
- </TooltipTrigger>
|
|
|
|
|
- <TooltipContent
|
|
|
|
|
- side='top'
|
|
|
|
|
- className='border-border bg-popover max-h-48 max-w-[320px] overflow-y-auto p-2'
|
|
|
|
|
- >
|
|
|
|
|
- <div className='flex flex-wrap gap-1'>{matchedBadges}</div>
|
|
|
|
|
- </TooltipContent>
|
|
|
|
|
- </Tooltip>
|
|
|
|
|
- </TooltipProvider>
|
|
|
|
|
- )
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- return badge
|
|
|
|
|
- },
|
|
|
|
|
- size: 100,
|
|
|
|
|
- enableSorting: false,
|
|
|
|
|
- },
|
|
|
|
|
-
|
|
|
|
|
// Status column
|
|
// Status column
|
|
|
{
|
|
{
|
|
|
accessorKey: 'status',
|
|
accessorKey: 'status',
|