feat: 添加平台管理、计算模块适配器及前端页面更新

- 新增 platform API 端点和存储
- 新增 llama_factory 适配器
- 新增前端 compute、guide、system 等视图页面
- 新增 echarts 插件和 mock 数据
- 更新 Docker 配置、后端配置及文档
- 更新前端路由、API、侧边栏等组件

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
wuyongtao
2026-07-21 09:23:43 +08:00
parent 2c1e08a271
commit a67ca2c19c
43 changed files with 3632 additions and 814 deletions

View File

@@ -0,0 +1,85 @@
import { get, post, put } from '../request'
export interface ComputeNode {
id: string
code: string
name: string
api_base_url: string
file_gateway_url: string
enabled: boolean
scheduler_status: string
scheduler_weight: number
tags: string[]
gpu_count: number
current_running_jobs: number
max_parallel_jobs: number
data_root: string
model_root: string
log_root: string
last_health_check_at?: string
}
export interface ComputeGpu {
id: number
node_id: string
node_code: string
node_name: string
name: string
uuid: string
status: string
gpu_percent: number
memory_used_gb: number
memory_total_gb: number
memory_percent: number
temperature: number
power_w: number
power_limit_w: number
processes?: Array<{
pid: number
name: string
memory_used_gb: number
task_name?: string
user?: string
}>
}
export interface ComputeQueueItem {
id: string
name: string
status: string
progress: number
compute_node_id?: string
gpus: number[]
create_time?: string
}
export interface ResourceReplica {
id: string
node_id: string
resource_type: string
resource_id: string
local_path: string
status: string
sync_status: string
create_time: string
}
export const getComputeNodes = () => get<ComputeNode[]>('/compute/nodes')
export const updateComputeNode = (id: string, data: Partial<ComputeNode>) =>
put<ComputeNode>(`/compute/nodes/${id}`, data)
export const testComputeNode = (id: string) =>
post<{ node_id: string; success: boolean; latency_ms: number }>(`/compute/nodes/${id}/test-connection`)
export const enableComputeNode = (id: string) => post<ComputeNode>(`/compute/nodes/${id}/enable`)
export const disableComputeNode = (id: string) => post<ComputeNode>(`/compute/nodes/${id}/disable`)
export const drainComputeNode = (id: string) => post<ComputeNode>(`/compute/nodes/${id}/drain`)
export const getComputeGpus = () => get<ComputeGpu[]>('/compute/gpus')
export const getComputeQueue = () => get<ComputeQueueItem[]>('/compute/queue')
export const getNodeReplicas = (id: string) => get<ResourceReplica[]>(`/compute/nodes/${id}/replicas`)