using OrpaonVision.Core.Results; using OrpaonVision.Model.Training; namespace OrpaonVision.ConfigApp.Infrastructure.Services; /// /// 训练任务管理服务接口。 /// public interface ITrainingTaskService { /// /// 创建训练任务。 /// Task> CreateTask(TrainingTaskModel task); /// /// 更新训练任务。 /// Task> UpdateTask(TrainingTaskModel task); /// /// 删除训练任务。 /// Task DeleteTask(Guid taskId); /// /// 获取训练任务详情。 /// Task> GetTaskById(Guid taskId); /// /// 获取训练任务分页列表。 /// Task>> GetTaskPagedList(int pageIndex = 1, int pageSize = 20, TrainingTaskStatus? status = null, string? keyword = null); /// /// 启动训练任务。 /// Task StartTask(Guid taskId, string startedBy); /// /// 暂停训练任务。 /// Task PauseTask(Guid taskId, string pausedBy); /// /// 停止训练任务。 /// Task StopTask(Guid taskId, string stoppedBy); /// /// 取消训练任务。 /// Task CancelTask(Guid taskId, string cancelledBy); /// /// 重新启动训练任务。 /// Task RestartTask(Guid taskId, string restartedBy); /// /// 获取任务运行状态。 /// Task> GetTaskStatus(Guid taskId); /// /// 获取任务进度。 /// Task> GetTaskProgress(Guid taskId); /// /// 获取任务统计信息。 /// Task> GetTaskStatistics(); /// /// 分配任务给用户。 /// Task AssignTask(Guid taskId, Guid assignedToId, string assignedToName, string assignedBy); /// /// 更新任务进度。 /// Task UpdateTaskProgress(Guid taskId, int currentEpoch, double currentLoss, double currentMap, double progress); /// /// 完成训练任务。 /// Task CompleteTask(Guid taskId, string outputModelPath, double finalLoss, double finalMap, string completedBy); /// /// 失败训练任务。 /// Task FailTask(Guid taskId, string errorMessage, string failedBy); } /// /// 训练任务统计信息。 /// public sealed class TrainingTaskStatistics { /// /// 总任务数。 /// public int TotalTasks { get; set; } /// /// 草稿任务数。 /// public int DraftTasks { get; set; } /// /// 等待中任务数。 /// public int PendingTasks { get; set; } /// /// 运行中任务数。 /// public int RunningTasks { get; set; } /// /// 已暂停任务数。 /// public int PausedTasks { get; set; } /// /// 已完成任务数。 /// public int CompletedTasks { get; set; } /// /// 已失败任务数。 /// public int FailedTasks { get; set; } /// /// 已取消任务数。 /// public int CancelledTasks { get; set; } /// /// 今日完成任务数。 /// public int TodayCompletedTasks { get; set; } /// /// 本周完成任务数。 /// public int ThisWeekCompletedTasks { get; set; } /// /// 本月完成任务数。 /// public int ThisMonthCompletedTasks { get; set; } /// /// 平均训练时长(分钟)。 /// public double AverageTrainingMinutes { get; set; } /// /// 成功率(百分比)。 /// public double SuccessRate { get; set; } }