package dto import ( "github.com/gogf/gf/v2/frame/g" ) type BuildMessagesReq struct { g.Meta `path:"/buildMessages" method:"post" tags:"提示词处理" summary:"拼接提示词"` ModelName string `p:"modelName" json:"modelName" v:"required#modelName不能为空" dc:"实际请求的网关模型名称"` BuildType int64 `p:"buildType" json:"buildType" v:"required#buildType不能为空" dc:"构建类型:1单轮 2多轮"` SkillName string `p:"skillName" json:"skillName" dc:"技能名称"` CallbackUrl string `p:"callbackUrl" json:"callbackUrl" dc:"回调地址"` NodeId string `p:"nodeId" json:"nodeId" dc:"节点ID"` SessionId string `p:"sessionId" json:"sessionId" dc:"会话ID"` Messages map[string]any `json:"messages" dc:"前端构建好的消息结构"` CustomPrompt string `p:"customPrompt" json:"customPrompt" dc:"用户提示词"` Cause string `p:"cause" json:"cause" dc:"原因"` } type BuildMessagesRes struct { TaskId string `json:"taskId" dc:"任务ID"` } type CallbackReq struct { g.Meta `path:"/callback" method:"post" tags:"提示词处理" summary:"model-gateway 回调" dc:"model-gateway 成功后 POST 回调:callbackUrl/{bizName}"` TaskId string `json:"task_id" v:"required#task_id不能为空" dc:"网关任务ID"` State int `json:"state" dc:"网关任务状态"` OssFile string `json:"oss_file" dc:"结果文件地址"` FileType string `json:"file_type" dc:"结果文件类型"` ErrorMsg string `json:"error_msg" dc:"错误信息"` } // 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:"回调地址(可选,用于后续业务通知)"` RequestPayload map[string]any `p:"requestPayload" json:"requestPayload" dc:"请求负载(透传给模型服务)"` EpicycleId int64 `json:"epicycleId" dc:"轮次ID"` BuildModelName string `json:"buildModelName" json:"buildModelName" dc:"构建模型名称"` } type CreateTaskRes struct { TaskID string `json:"taskId" dc:"任务ID"` } type JobTaskReq struct { g.Meta `path:"/jobTask" method:"post" tags:"任务管理" summary:"定时任务" dc:"循环执行待处理任务,按间隔时间和批次大小处理"` Interval int `json:"interval" dc:"循环间隔(秒)"` BatchSize int `json:"batchSize" dc:"每批执行条数"` PoolSize int `json:"poolSize" dc:"协程池大小"` } type JobTaskRes struct { TotalProcessed int `json:"totalProcessed" dc:"总处理数"` SuccessCount int `json:"successCount" dc:"成功数"` FailCount int `json:"failCount" dc:"失败数"` } 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 GetTaskBatchRes struct { List []GetTaskBatchItem `json:"list" dc:"任务列表"` } type GetTaskBatchItem struct { TaskID string `json:"taskId" dc:"任务ID"` State int `json:"state" dc:"任务状态"` OssFile string `json:"ossFile" dc:"结果文件OSS地址"` } // 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:"模型名称(模糊匹配)"` BizName string `p:"bizName" json:"bizName" 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:"本次抢占并处理的任务数"` }