|
|
@@ -17,6 +17,70 @@ import ( |
|
|
|
uuid "github.com/satori/go.uuid" |
|
|
|
) |
|
|
|
|
|
|
|
func SaveModelByParameters(trainTaskId int64, name string, version string, label string, description string, userId int64) { |
|
|
|
aiTasks, _, err := models.Cloudbrains(&models.CloudbrainsOptions{ |
|
|
|
JobID: trainTaskId, |
|
|
|
}) |
|
|
|
if err != nil { |
|
|
|
log.Info("query task error." + err.Error()) |
|
|
|
//ctx.Error(500, fmt.Sprintf("query cloud brain train task error. %v", err)) |
|
|
|
return |
|
|
|
} |
|
|
|
uuid := uuid.NewV4() |
|
|
|
id := uuid.String() |
|
|
|
modelPath := id |
|
|
|
parent := id |
|
|
|
var modelSize int64 |
|
|
|
cloudType := models.TypeCloudBrainTwo |
|
|
|
|
|
|
|
if len(aiTasks) != 1 { |
|
|
|
log.Info("query task error. len=" + fmt.Sprint(len(aiTasks))) |
|
|
|
//ctx.Error(500, fmt.Sprintf("query cloud brain train task error. %v", err)) |
|
|
|
return |
|
|
|
} |
|
|
|
aiTask := aiTasks[0] |
|
|
|
log.Info("find task name:" + aiTask.JobName) |
|
|
|
aimodels := models.QueryModelByName(name, userId) |
|
|
|
if len(aimodels) > 0 { |
|
|
|
for _, model := range aimodels { |
|
|
|
if model.ID == model.Parent { |
|
|
|
parent = model.ID |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
cloudType = aiTask.Cloudbrain.Type |
|
|
|
//download model zip //train type |
|
|
|
if cloudType == models.TypeCloudBrainTrainJob { |
|
|
|
modelPath, modelSize, err = downloadModelFromCloudBrainTwo(id, aiTask.JobName, "") |
|
|
|
if err == nil { |
|
|
|
|
|
|
|
} else { |
|
|
|
log.Info("download model from CloudBrainTwo faild." + err.Error()) |
|
|
|
//ctx.Error(500, fmt.Sprintf("%v", err)) |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
model := &models.AiModelManage{ |
|
|
|
ID: id, |
|
|
|
Version: version, |
|
|
|
Label: label, |
|
|
|
Name: name, |
|
|
|
Description: description, |
|
|
|
Parent: parent, |
|
|
|
Type: cloudType, |
|
|
|
Path: modelPath, |
|
|
|
Size: modelSize, |
|
|
|
AttachmentId: aiTask.Uuid, |
|
|
|
RepoId: aiTask.RepoID, |
|
|
|
UserId: userId, |
|
|
|
} |
|
|
|
|
|
|
|
models.SaveModelToDb(model) |
|
|
|
|
|
|
|
log.Info("save model end.") |
|
|
|
} |
|
|
|
|
|
|
|
func SaveModel(ctx *context.Context) { |
|
|
|
log.Info("save model start.") |
|
|
|
trainTaskId := ctx.QueryInt64("TrainTask") |
|
|
|