114 lines
5.3 KiB
Go
114 lines
5.3 KiB
Go
package dto
|
||
|
||
import "github.com/gogf/gf/v2/frame/g"
|
||
|
||
// CreateTaskReq 创建异步任务
|
||
type CreateTaskReq struct {
|
||
g.Meta `path:"/createTask" method:"post" tags:"任务管理" summary:"创建异步任务" dc:"创建异步任务并返回任务ID;创建成功后会立即异步尝试执行当前任务,执行成功后按回调配置触发钩子"`
|
||
ModelName string `p:"modelName" json:"modelName" v:"required#modelName不能为空" dc:"模型名称"`
|
||
BizName string `p:"bizName" json:"bizName" dc:"业务名称(调用方模块/系统,用于统计)"`
|
||
CallbackUrl string `p:"callbackUrl" json:"callbackUrl" dc:"回调地址(可选,用于后续业务通知)"`
|
||
InputRef string `p:"inputRef" json:"inputRef" dc:"输入引用(如OSS/文件引用等)"`
|
||
RequestPayload map[string]any `p:"requestPayload" json:"requestPayload" dc:"请求负载(透传给模型服务)"`
|
||
EpicycleId int64 `json:"epicycleId" dc:"轮次ID"`
|
||
BuildType int64 `json:"buildType" dc:"构建类型:1-提示词构建 2-节点构建"`
|
||
}
|
||
|
||
type CreateTaskRes struct {
|
||
TaskID string `json:"taskId" dc:"任务ID"`
|
||
}
|
||
|
||
type ModelTaskCallbackReq struct {
|
||
g.Meta `path:"/modelCallback" method:"post" tags:"异步任务" summary:"模型任务回调通知"`
|
||
TaskID string `json:"id" dc:"任务ID"`
|
||
Status string `json:"status" dc:"queued/running/succeeded/failed/expired"`
|
||
Content map[string]any `json:"content,omitempty" dc:"任务结果内容"`
|
||
Usage map[string]any `json:"usage,omitempty" dc:"token用量"`
|
||
}
|
||
|
||
type ModelTaskCallbackRes struct {
|
||
Success bool `json:"success" dc:"是否接收成功"`
|
||
}
|
||
|
||
// QueryPendingTasksReq 批量轮询请求
|
||
type QueryPendingTasksReq struct {
|
||
g.Meta `path:"/queryPending" method:"get" tags:"异步任务" summary:"批量轮询进行中的任务"`
|
||
Limit int `p:"limit" json:"limit" dc:"查询数量,默认10"`
|
||
}
|
||
|
||
// QueryPendingTasksRes 批量轮询响应
|
||
type QueryPendingTasksRes struct {
|
||
Total int `json:"total" dc:"本次查询数量"`
|
||
Results []QueryTaskItem `json:"results" dc:"查询结果列表"`
|
||
}
|
||
|
||
// QueryTaskItem 单个任务查询结果
|
||
type QueryTaskItem struct {
|
||
TaskID string `json:"taskId" dc:"任务ID"`
|
||
Status string `json:"status" dc:"任务状态"`
|
||
Content map[string]any `json:"content,omitempty" dc:"结果内容"`
|
||
Usage map[string]any `json:"usage,omitempty" dc:"token用量"`
|
||
}
|
||
|
||
// GetTaskResultReq 获取结果(只返回 oss 地址)
|
||
type GetTaskResultReq struct {
|
||
g.Meta `path:"/getTaskResult" method:"get" tags:"任务管理" summary:"获取任务结果" dc:"根据任务ID获取结果(只返回OSS地址)"`
|
||
TaskID string `p:"taskId" json:"taskId" v:"required#taskwId不能为空" dc:"任务ID"`
|
||
}
|
||
|
||
type GetTaskResultRes struct {
|
||
OssFile string `json:"ossFile" dc:"结果文件OSS地址"`
|
||
State int `json:"state" dc:"任务状态"`
|
||
}
|
||
|
||
// GetTaskBatchReq 批量查询任务(并对成功任务标记为已下载)
|
||
type GetTaskBatchReq struct {
|
||
g.Meta `path:"/getTaskBatch" method:"post" tags:"任务管理" summary:"批量查询任务" dc:"批量查询任务状态与OSS地址;对成功(state=2)的任务自动标记为已下载(state=4),并写入保留到期时间"`
|
||
TaskIDs []string `p:"taskIds" json:"taskIds" v:"required#taskIds不能为空" dc:"任务ID列表"`
|
||
}
|
||
|
||
type GetTaskBatchItem struct {
|
||
TaskID string `json:"taskId" dc:"任务ID"`
|
||
State int `json:"state" dc:"任务状态"`
|
||
OssFile string `json:"ossFile" dc:"结果文件OSS地址"`
|
||
}
|
||
|
||
type GetTaskBatchRes struct {
|
||
List []GetTaskBatchItem `json:"list" dc:"任务列表"`
|
||
}
|
||
|
||
// ListTaskReq 任务列表分页查询
|
||
type ListTaskReq struct {
|
||
g.Meta `path:"/listTask" method:"get" tags:"任务管理" summary:"任务列表" dc:"分页查询任务列表,支持按状态/模型名称/task_id过滤"`
|
||
PageNum int `p:"pageNum" json:"pageNum" dc:"页码(默认1)"`
|
||
PageSize int `p:"pageSize" json:"pageSize" dc:"每页条数(默认10)"`
|
||
ModelName string `p:"modelName" json:"modelName" dc:"模型名称(模糊匹配)"`
|
||
TaskID string `p:"taskId" json:"taskId" dc:"任务ID(模糊匹配)"`
|
||
State *int `p:"state" json:"state" dc:"任务状态(0/1/2/3/4,可选)"`
|
||
}
|
||
|
||
type ListTaskRes struct {
|
||
List any `json:"list" dc:"列表数据"`
|
||
Total int64 `json:"total" dc:"总数"`
|
||
}
|
||
|
||
// RunWorkReq 手动触发 worker 执行一次(由上层定时任务调用)
|
||
type RunWorkReq struct {
|
||
g.Meta `path:"/runWork" method:"post" tags:"任务管理" summary:"执行一次Worker" dc:"手动触发一次Worker抢占并处理排队中的任务;适合处理 createTask 立即执行时未处理到的任务以及积压队列"`
|
||
BatchSize int `p:"batchSize" json:"batchSize" dc:"本次抢占任务数量(默认10)"`
|
||
Goroutines int `p:"goroutines" json:"goroutines" dc:"本次并发数(默认1)"`
|
||
}
|
||
|
||
type RunWorkRes struct {
|
||
Claimed int `json:"claimed" dc:"本次抢占并处理的任务数"`
|
||
}
|
||
|
||
// CleanWorkReq 手动触发 cleaner 执行一次(由上层定时任务调用)
|
||
type CleanWorkReq struct {
|
||
g.Meta `path:"/cleanWork" method:"post" tags:"任务管理" summary:"执行一次Cleaner" dc:"手动触发一次清理/重试(用于由上层定时任务控制)"`
|
||
}
|
||
|
||
type CleanWorkRes struct {
|
||
Ok bool `json:"ok" dc:"是否执行成功"`
|
||
}
|