'use client'; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter } from '@/components/ui/dialog'; import { Button } from '@/components/ui/button'; import { Label } from '@/components/ui/label'; import { Badge } from '@/components/ui/badge'; import { Card } from '@/components/ui/card'; import { Progress } from '@/components/ui/progress'; import { toast } from 'sonner'; import { Brain, BarChart3, Link, Package, Terminal, CheckCircle, GitBranch, Copy, Eye, } from 'lucide-react'; interface ModelService { id: string; name: string; version: string; type: string; format: string; description: string; author: string; createTime: string; lastUpdateTime: string; status: string; endpoint: string; accessLevel: string; tags: string[]; accuracy?: number; inferenceTime?: number; requestCount: number; successRate: number; dependencies: string[]; } interface ModelDetailDialogProps { open: boolean; onOpenChange: (open: boolean) => void; model: ModelService | null; } export function ModelDetailDialog({ open, onOpenChange, model }: ModelDetailDialogProps) { const handleCopyEndpoint = async (endpoint: string) => { try { await navigator.clipboard.writeText(endpoint); toast.success('端点已复制到剪贴板'); } catch (error) { toast.error('复制失败,请重试'); } }; const handleTestModel = () => { toast.success('模型测试成功,推理正常'); }; const getAccessLevelIcon = (level: string) => { switch (level) { case '公开': return '🌐'; case '私有': return '🔒'; case '团队共享': return '👥'; default: return '🔒'; } }; if (!model) return null; return ( 模型详情 - {model.name} 查看模型完整信息、元数据和运行状态
{/* 基本信息 */}

基本信息

{/* 模型名称 - 大字体显示 */}

{model.name}

{model.version}

{model.type}

{model.format}

{model.description}

{getAccessLevelIcon(model.accessLevel)} {model.accessLevel}

{model.tags.map((tag, idx) => ( {tag} ))}
{/* 性能指标 */}

性能指标

模型准确率

{model.accuracy}%

推理时间

{model.inferenceTime}ms

平均响应

调用次数

{model.requestCount.toLocaleString()}

总计

成功率

{model.successRate}%

{/* API端点信息 */}

API端点

{model.endpoint}

POST

application/json

{/* 依赖包列表 */}

依赖包 ({model.dependencies.length}个)

{model.dependencies.map((dep, idx) => (
{dep}
))}
{/* 调用示例 */}

API调用示例

{`# Python调用示例
import requests

url = "${model.endpoint}"
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_API_KEY"
}

payload = {
    "data": [
        [25.3, 65.2, 45820, 3.2, 1013.2, 18.5, 45.3, 2.3]
    ]
}

response = requests.post(url, json=payload, headers=headers)
result = response.json()

print(f"预测结果: {result['prediction']}")
print(f"置信度: {result['confidence']}%")`}
); }