package entity import "github.com/gogf/gf/v2/os/gtime" // ModelTraining 训练任务:runner 启动训练进程,轮询解析 epoch 日志更新进度/指标, // 日志尾部截断存 log_tail;pid 用于取消与存活探测。 // 状态机 queued → running → success/failed(queued=GPU 忙排队,轮询晋级启动)。 type ModelTraining struct { Id int64 `json:"id" orm:"id" description:"自增主键"` Name string `json:"name" orm:"name" description:"任务名"` Status string `json:"status" orm:"status" description:"queued|running|success|failed"` Variant string `json:"variant" orm:"variant" description:"档位 s(高识别)|n(高性能)"` DatasetId int64 `json:"datasetId" orm:"dataset_id" description:"来源数据集(综合任务=0)"` Kind string `json:"kind" orm:"kind" description:"species 单物种|combined 多物种综合"` DatasetIds string `json:"datasetIds" orm:"dataset_ids" description:"综合任务覆盖的数据集 id JSON 数组"` Imgsz int `json:"imgsz" orm:"imgsz" description:"训练分辨率"` Epochs int `json:"epochs" orm:"epochs" description:"目标轮数"` Batch int `json:"batch" orm:"batch" description:"batch size"` Device string `json:"device" orm:"device" description:"训练设备"` CurrentEpoch int `json:"currentEpoch" orm:"current_epoch" description:"当前轮数"` TotalEpochs int `json:"totalEpochs" orm:"total_epochs" description:"实际总轮数(完成时写)"` Metrics string `json:"metrics" orm:"metrics" description:"JSON {p,r,map50}"` LogTail string `json:"logTail" orm:"log_tail" description:"日志尾部(截断)"` Pid int `json:"pid" orm:"pid" description:"训练进程 pid"` Error string `json:"error" orm:"error" description:"失败原因"` StartedAt *gtime.Time `json:"startedAt" orm:"started_at" description:"开始时间"` FinishedAt *gtime.Time `json:"finishedAt" orm:"finished_at" description:"结束时间"` CreatedAt *gtime.Time `json:"createdAt" orm:"created_at" description:"创建时间"` }