import { memo } from 'react' import { useTranslation } from 'react-i18next' import { cn } from '@/lib/utils' import { formatLatency, formatThroughput } from '../lib/mock-stats' export type ModelPerfBadgeData = { avg_latency_ms: number success_rate: number avg_tps: number } export interface ModelPerfBadgeProps extends React.HTMLAttributes { perf: ModelPerfBadgeData | undefined } function formatCompactThroughput(tps: number): string { return formatThroughput(tps).replace(' t/s', 'tps') } export const ModelPerfBadge = memo(function ModelPerfBadge( props: ModelPerfBadgeProps ) { const { t } = useTranslation() if (!props.perf) { return null } const { avg_latency_ms, avg_tps, success_rate } = props.perf let statusColor = 'bg-emerald-500' if (success_rate < 99) { statusColor = 'bg-red-500' } else if (success_rate < 99.9) { statusColor = 'bg-amber-500' } return (
{t('Latency short')}
{avg_latency_ms > 0 ? formatLatency(avg_latency_ms) : '—'}
{t('Throughput short')}
{formatCompactThroughput(avg_tps)}
{t('Status short')}
) })