feat(*): 生图与视频工作台 - 新增独立生成流程并整合平台配置
This commit is contained in:
1 parent
4c1d2b4012
commit
1f3f2c6020
69 files changed
+7108
-87
No files matched your search
@@ -129,7 +129,11 @@ func (s *Service) CreateTask(userID string, req CreateTaskRequest) (*model.Task,
|
||||
if capacityErr != nil {
|
||||
return nil, capacityErr
|
||||
}
|
||||
task := model.Task{ID: newID(), UserID: userID, TraceID: req.TraceID, RequestID: req.RequestID, ProjectID: req.ProjectID, Type: taskType, Status: model.TaskStatusQueued, Stage: "等待队列调度", Progress: 5, Prompt: prompt, Operation: req.Operation, Provider: req.Provider, Model: req.Model}
|
||||
workbenchKind := req.workbenchKind
|
||||
if workbenchKind == "" {
|
||||
workbenchKind = workbenchKindFromTaskInput(normalizedInput, taskType)
|
||||
}
|
||||
task := model.Task{ID: newID(), UserID: userID, TraceID: req.TraceID, RequestID: req.RequestID, ProjectID: req.ProjectID, Type: taskType, WorkbenchKind: workbenchKind, Status: model.TaskStatusQueued, Stage: "等待队列调度", Progress: 5, Prompt: prompt, Operation: req.Operation, Provider: req.Provider, Model: req.Model}
|
||||
if req.admission != nil {
|
||||
task.ID = req.admission.ID
|
||||
task.AgentRunID = req.admission.AgentRunID
|
||||
@@ -328,6 +332,28 @@ func normalizeTaskInput(input map[string]any) (map[string]any, error) {
|
||||
return normalized, nil
|
||||
}
|
||||
|
||||
func workbenchKindFromTaskInput(input map[string]any, taskType string) string {
|
||||
metadata, ok := input["metadata"].(map[string]any)
|
||||
if !ok || metadata["source"] != "workbench" {
|
||||
return ""
|
||||
}
|
||||
kind := stringValue(metadata["workbenchKind"])
|
||||
if stringValue(input["mode"]) != kind {
|
||||
return ""
|
||||
}
|
||||
switch kind {
|
||||
case model.WorkbenchKindImage:
|
||||
if taskType == "canvas_image" {
|
||||
return kind
|
||||
}
|
||||
case model.WorkbenchKindVideo:
|
||||
if taskType == "canvas_video" || strings.HasPrefix(taskType, "video_") {
|
||||
return kind
|
||||
}
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// createTextReplayTask 创建前端自管的文本持久化任务:状态为 text_replay,
|
||||
// 不排队执行、不计 active 队列、不产生计费,仅作为正文增量(text-deltas)的存储容器。
|
||||
func (s *Service) createTextReplayTask(userID string, req CreateTaskRequest, normalizedInput map[string]any) (*model.Task, error) {
|
||||
|
||||
Reference in new issue
Block a user