# Conflicts: # templates/repo/modelarts/trainjob/version_new.tmpltags/v1.22.9.1^2^2
| @@ -71,6 +71,7 @@ const ( | |||||
| ModelArtsStopping ModelArtsJobStatus = "STOPPING" //停止中 | ModelArtsStopping ModelArtsJobStatus = "STOPPING" //停止中 | ||||
| ModelArtsStopped ModelArtsJobStatus = "STOPPED" //停止 | ModelArtsStopped ModelArtsJobStatus = "STOPPED" //停止 | ||||
| ModelArtsUnavailable ModelArtsJobStatus = "UNAVAILABLE" //故障 | ModelArtsUnavailable ModelArtsJobStatus = "UNAVAILABLE" //故障 | ||||
| ModelArtsDeleting ModelArtsJobStatus = "DELETING" //删除中 | |||||
| ModelArtsDeleted ModelArtsJobStatus = "DELETED" //已删除 | ModelArtsDeleted ModelArtsJobStatus = "DELETED" //已删除 | ||||
| ModelArtsResizing ModelArtsJobStatus = "RESIZING" //规格变更中 | ModelArtsResizing ModelArtsJobStatus = "RESIZING" //规格变更中 | ||||
| ModelArtsResizFailed ModelArtsJobStatus = "RESIZE_FAILED" //规格变更失败 | ModelArtsResizFailed ModelArtsJobStatus = "RESIZE_FAILED" //规格变更失败 | ||||
| @@ -1097,6 +1098,7 @@ type DatasetDownload struct { | |||||
| DatasetName string `json:"dataset_name"` | DatasetName string `json:"dataset_name"` | ||||
| DatasetDownloadLink string `json:"dataset_download_link"` | DatasetDownloadLink string `json:"dataset_download_link"` | ||||
| RepositoryLink string `json:"repository_link"` | RepositoryLink string `json:"repository_link"` | ||||
| IsDelete bool `json:"is_delete"` | |||||
| } | } | ||||
| type DataSource struct { | type DataSource struct { | ||||
| @@ -1951,9 +1953,9 @@ func GetCloudbrainCountByUserID(userID int64, jobType string) (int, error) { | |||||
| func GetCloudbrainRunCountByRepoID(repoID int64) (int, error) { | func GetCloudbrainRunCountByRepoID(repoID int64) (int, error) { | ||||
| count, err := x.In("status", JobWaiting, JobRunning, ModelArtsCreateQueue, ModelArtsCreating, ModelArtsStarting, | count, err := x.In("status", JobWaiting, JobRunning, ModelArtsCreateQueue, ModelArtsCreating, ModelArtsStarting, | ||||
| ModelArtsReadyToStart, ModelArtsResizing, ModelArtsStartQueuing, ModelArtsRunning, ModelArtsRestarting, ModelArtsTrainJobInit, | |||||
| ModelArtsReadyToStart, ModelArtsResizing, ModelArtsStartQueuing, ModelArtsRunning, ModelArtsDeleting, ModelArtsRestarting, ModelArtsTrainJobInit, | |||||
| ModelArtsTrainJobImageCreating, ModelArtsTrainJobSubmitTrying, ModelArtsTrainJobWaiting, ModelArtsTrainJobRunning, ModelArtsStopping, ModelArtsResizing, | ModelArtsTrainJobImageCreating, ModelArtsTrainJobSubmitTrying, ModelArtsTrainJobWaiting, ModelArtsTrainJobRunning, ModelArtsStopping, ModelArtsResizing, | ||||
| ModelArtsTrainJobScaling, ModelArtsTrainJobCheckInit, ModelArtsTrainJobCheckRunning, ModelArtsTrainJobCheckRunningCompleted).And("repo_id = ?", repoID).Count(new(Cloudbrain)) | |||||
| ModelArtsTrainJobScaling, ModelArtsTrainJobCheckInit, ModelArtsTrainJobCheckRunning, ModelArtsTrainJobKilling, ModelArtsTrainJobCheckRunningCompleted).And("repo_id = ?", repoID).Count(new(Cloudbrain)) | |||||
| return int(count), err | return int(count), err | ||||
| } | } | ||||
| @@ -121,22 +121,20 @@ func (datasets DatasetList) loadAttachmentAttributes(opts *SearchDatasetOptions) | |||||
| for i := range datasets { | for i := range datasets { | ||||
| if attachment.DatasetID == datasets[i].ID { | if attachment.DatasetID == datasets[i].ID { | ||||
| if opts.StarByMe { | |||||
| if !attachment.IsPrivate{ | |||||
| datasets[i].Attachments = append(datasets[i].Attachments, attachment) | |||||
| }else{ | |||||
| permission, ok := permissionMap[datasets[i].ID] | permission, ok := permissionMap[datasets[i].ID] | ||||
| if !ok { | if !ok { | ||||
| permission = false | permission = false | ||||
| datasets[i].Repo.GetOwner() | datasets[i].Repo.GetOwner() | ||||
| if datasets[i].Repo.Owner.IsOrganization() { | |||||
| if datasets[i].Repo.Owner.IsUserPartOfOrg(opts.User.ID) { | |||||
| log.Info("user is member of org.") | |||||
| permission = true | |||||
| } | |||||
| } | |||||
| if !permission { | if !permission { | ||||
| isCollaborator, _ := datasets[i].Repo.IsCollaborator(opts.User.ID) | isCollaborator, _ := datasets[i].Repo.IsCollaborator(opts.User.ID) | ||||
| if isCollaborator { | |||||
| isInRepoTeam,_:=datasets[i].Repo.IsInRepoTeam(opts.User.ID) | |||||
| if isCollaborator ||isInRepoTeam { | |||||
| log.Info("Collaborator user may visit the attach.") | log.Info("Collaborator user may visit the attach.") | ||||
| permission = true | permission = true | ||||
| } | } | ||||
| @@ -147,11 +145,7 @@ func (datasets DatasetList) loadAttachmentAttributes(opts *SearchDatasetOptions) | |||||
| if permission { | if permission { | ||||
| datasets[i].Attachments = append(datasets[i].Attachments, attachment) | datasets[i].Attachments = append(datasets[i].Attachments, attachment) | ||||
| } else if !attachment.IsPrivate { | |||||
| datasets[i].Attachments = append(datasets[i].Attachments, attachment) | |||||
| } | } | ||||
| } else { | |||||
| datasets[i].Attachments = append(datasets[i].Attachments, attachment) | |||||
| } | } | ||||
| } | } | ||||
| @@ -130,6 +130,20 @@ func (repo *Repository) IsCollaborator(userID int64) (bool, error) { | |||||
| return repo.isCollaborator(x, userID) | return repo.isCollaborator(x, userID) | ||||
| } | } | ||||
| func (repo *Repository) IsInRepoTeam(userID int64) (bool, error) { | |||||
| teams,err:=repo.GetRepoTeams() | |||||
| if err!=nil || len(teams)==0{ | |||||
| return false,err | |||||
| } | |||||
| for _,team :=range teams{ | |||||
| if team.IsMember(userID){ | |||||
| return true,nil | |||||
| } | |||||
| } | |||||
| return false,nil | |||||
| } | |||||
| func (repo *Repository) changeCollaborationAccessMode(e Engine, uid int64, mode AccessMode) error { | func (repo *Repository) changeCollaborationAccessMode(e Engine, uid int64, mode AccessMode) error { | ||||
| // Discard invalid input | // Discard invalid input | ||||
| if mode <= AccessModeNone || mode > AccessModeOwner { | if mode <= AccessModeNone || mode > AccessModeOwner { | ||||
| @@ -959,6 +959,7 @@ unfavorite=Unlike | |||||
| favorite=Like | favorite=Like | ||||
| disassociate=Disassociate | disassociate=Disassociate | ||||
| benchmark_dataset_tip=Note: first use the dataset function to upload the model, and then select the model from the dataset list. | benchmark_dataset_tip=Note: first use the dataset function to upload the model, and then select the model from the dataset list. | ||||
| file_deleted=The file has been deleted | |||||
| [repo] | [repo] | ||||
| owner = Owner | owner = Owner | ||||
| @@ -1140,7 +1141,7 @@ modelarts.train_job.compute_node=Compute Node | |||||
| modelarts.create_model = Create Model | modelarts.create_model = Create Model | ||||
| modelarts.model_label=Model Label | modelarts.model_label=Model Label | ||||
| modelarts.infer_dataset = Inference Dataset | modelarts.infer_dataset = Inference Dataset | ||||
| modelarts.train_job.label_place=Input labels, multiple labels are separated by spaces | |||||
| modelarts.train_job.basic_info=Basic Info | modelarts.train_job.basic_info=Basic Info | ||||
| modelarts.train_job.job_status=Job Status | modelarts.train_job.job_status=Job Status | ||||
| @@ -1221,7 +1222,10 @@ model_Evaluation_not_created = Model evaluation has not been created | |||||
| repo_not_initialized = Code version: You have not initialized the code repository, please <a href="%s"> initialized </a> first ; | repo_not_initialized = Code version: You have not initialized the code repository, please <a href="%s"> initialized </a> first ; | ||||
| debug_task_running_limit =Running time: no more than 4 hours, it will automatically stop if it exceeds 4 hours; | debug_task_running_limit =Running time: no more than 4 hours, it will automatically stop if it exceeds 4 hours; | ||||
| dataset_desc = Dataset: Cloud Brain 1 provides CPU/GPU,Cloud Brain 2 provides Ascend NPU.And dataset also needs to be uploaded to the corresponding environment; | dataset_desc = Dataset: Cloud Brain 1 provides CPU/GPU,Cloud Brain 2 provides Ascend NPU.And dataset also needs to be uploaded to the corresponding environment; | ||||
| platform_instructions = Instructions for use: You can refer to the <a href="https://git.openi.org.cn/zeizei/OpenI_Learning"> OpenI_Learning </a> course of Openi AI collaboration platform. | |||||
| platform_instructions = Instructions for use: You can refer to the <a href="https://git.openi.org.cn/zeizei/OpenI_Learning"> OpenI_Learning </a> course of Qizhi AI collaboration platform. | |||||
| platform_instructions1 = Instructions for use: You can refer to the | |||||
| platform_instructions2 = OpenI_Learning | |||||
| platform_instructions3 = course of Openi AI collaboration platform. | |||||
| model_not_exist = Model file: You do not have a model file yet, please generate and <a href="%s/modelmanage/show_model">export the model</a> through the <a href="%s/modelarts/train-job">training task</a> first ; | model_not_exist = Model file: You do not have a model file yet, please generate and <a href="%s/modelmanage/show_model">export the model</a> through the <a href="%s/modelarts/train-job">training task</a> first ; | ||||
| benchmark_leaderboards = Benchmark leaderboards | benchmark_leaderboards = Benchmark leaderboards | ||||
| @@ -1244,11 +1248,11 @@ model.convert=Model Transformation | |||||
| model.list=Model List | model.list=Model List | ||||
| model.manage.create_new_convert_task=Create Model Transformation Task | model.manage.create_new_convert_task=Create Model Transformation Task | ||||
| model.manage.notcreatemodel=No model has been created. | |||||
| model.manage.notcreatemodel=No model has been created | |||||
| model.manage.init1=Code version: You have not initialized the code repository, please | model.manage.init1=Code version: You have not initialized the code repository, please | ||||
| model.manage.init2=initialized first ; | model.manage.init2=initialized first ; | ||||
| model.manage.createtrainjob_tip=Training task: you haven't created a training task, please create it first | model.manage.createtrainjob_tip=Training task: you haven't created a training task, please create it first | ||||
| model.manage.createtrainjob=Training task | |||||
| model.manage.createtrainjob=Training task. | |||||
| model.manage.delete=Delete Model | model.manage.delete=Delete Model | ||||
| model.manage.delete_confirm=Are you sure to delete this model? Once this model is deleted, it cannot be restored. | model.manage.delete_confirm=Are you sure to delete this model? Once this model is deleted, it cannot be restored. | ||||
| model.manage.select.trainjob=Select train task | model.manage.select.trainjob=Select train task | ||||
| @@ -1260,9 +1264,9 @@ model.manage.modellabel=Model label | |||||
| model.manage.modeldesc=Model description | model.manage.modeldesc=Model description | ||||
| model.manage.baseinfo=Base Information | model.manage.baseinfo=Base Information | ||||
| modelconvert.notcreate=No model conversion task has been created. | modelconvert.notcreate=No model conversion task has been created. | ||||
| modelconvert.importfirst1=Please import first | |||||
| modelconvert.importfirst2=download model | |||||
| modelconvert.importfirst3=, then converts it. | |||||
| modelconvert.importfirst1=Please import the | |||||
| modelconvert.importfirst2=model | |||||
| modelconvert.importfirst3=first, then converts it. | |||||
| modelconvert.download=Download | modelconvert.download=Download | ||||
| modelconvert.taskname=Task name | modelconvert.taskname=Task name | ||||
| modelconvert.modelname=Model name | modelconvert.modelname=Model name | ||||
| @@ -965,6 +965,7 @@ unfavorite=取消收藏 | |||||
| favorite=收藏 | favorite=收藏 | ||||
| disassociate=取消关联 | disassociate=取消关联 | ||||
| benchmark_dataset_tip=说明:先使用数据集功能上传模型,然后从数据集列表选模型。 | benchmark_dataset_tip=说明:先使用数据集功能上传模型,然后从数据集列表选模型。 | ||||
| file_deleted=文件已经被删除 | |||||
| [repo] | [repo] | ||||
| owner=拥有者 | owner=拥有者 | ||||
| @@ -1235,6 +1236,10 @@ repo_not_initialized = 代码版本:您还没有初始化代码仓库,请先 | |||||
| debug_task_running_limit = 运行时长:最长不超过4个小时,超过4个小时将自动停止; | debug_task_running_limit = 运行时长:最长不超过4个小时,超过4个小时将自动停止; | ||||
| dataset_desc = 数据集:云脑1提供 CPU / GPU 资源,云脑2提供 Ascend NPU 资源,调试使用的数据集也需要上传到对应的环境; | dataset_desc = 数据集:云脑1提供 CPU / GPU 资源,云脑2提供 Ascend NPU 资源,调试使用的数据集也需要上传到对应的环境; | ||||
| platform_instructions = 使用说明:可以参考启智AI协作平台<a href="https://git.openi.org.cn/zeizei/OpenI_Learning">小白训练营课程</a>。 | platform_instructions = 使用说明:可以参考启智AI协作平台<a href="https://git.openi.org.cn/zeizei/OpenI_Learning">小白训练营课程</a>。 | ||||
| platform_instructions1 = 使用说明:可以参考启智AI协作平台 | |||||
| platform_instructions2 = 小白训练营课程 | |||||
| platform_instructions3 = 。 | |||||
| model_not_exist = 模型文件:您还没有模型文件,请先通过<a href="%s/modelarts/train-job">训练任务</a>产生并 <a href="%s/modelmanage/show_model">导出模型</a> ; | model_not_exist = 模型文件:您还没有模型文件,请先通过<a href="%s/modelarts/train-job">训练任务</a>产生并 <a href="%s/modelmanage/show_model">导出模型</a> ; | ||||
| benchmark_leaderboards = 基准测试排行榜 | benchmark_leaderboards = 基准测试排行榜 | ||||
| @@ -1261,7 +1266,7 @@ model.manage.notcreatemodel=未创建过模型 | |||||
| model.manage.init1=代码版本:您还没有初始化代码仓库,请先 | model.manage.init1=代码版本:您还没有初始化代码仓库,请先 | ||||
| model.manage.init2=创建代码版本; | model.manage.init2=创建代码版本; | ||||
| model.manage.createtrainjob_tip=训练任务:您还没创建过训练任务,请先创建 | model.manage.createtrainjob_tip=训练任务:您还没创建过训练任务,请先创建 | ||||
| model.manage.createtrainjob=训练任务 | |||||
| model.manage.createtrainjob=训练任务。 | |||||
| model.manage.delete=删除模型 | model.manage.delete=删除模型 | ||||
| model.manage.delete_confirm=你确认删除该模型么?此模型一旦删除不可恢复。 | model.manage.delete_confirm=你确认删除该模型么?此模型一旦删除不可恢复。 | ||||
| model.manage.select.trainjob=选择训练任务 | model.manage.select.trainjob=选择训练任务 | ||||
| @@ -1274,7 +1279,7 @@ model.manage.modeldesc=模型描述 | |||||
| model.manage.baseinfo=基本信息 | model.manage.baseinfo=基本信息 | ||||
| modelconvert.notcreate=未创建过模型转换任务 | modelconvert.notcreate=未创建过模型转换任务 | ||||
| modelconvert.importfirst1=请您先导入 | modelconvert.importfirst1=请您先导入 | ||||
| modelconvert.importfirst2=模型下载 | |||||
| modelconvert.importfirst2=模型 | |||||
| modelconvert.importfirst3=,然后再对其进行转换。 | modelconvert.importfirst3=,然后再对其进行转换。 | ||||
| modelconvert.download=下载 | modelconvert.download=下载 | ||||
| modelconvert.taskname=任务名称 | modelconvert.taskname=任务名称 | ||||
| @@ -766,7 +766,7 @@ func cloudBrainShow(ctx *context.Context, tpName base.TplName, jobType models.Jo | |||||
| } | } | ||||
| } | } | ||||
| ctx.Data["datasetDownload"] = GetCloudBrainDataSetInfo(task.Uuid, false) | |||||
| ctx.Data["datasetDownload"] = GetCloudBrainDataSetInfo(task.Uuid, task.DatasetName, false) | |||||
| ctx.Data["task"] = task | ctx.Data["task"] = task | ||||
| labelName := strings.Fields(task.LabelName) | labelName := strings.Fields(task.LabelName) | ||||
| ctx.Data["LabelName"] = labelName | ctx.Data["LabelName"] = labelName | ||||
| @@ -45,15 +45,10 @@ func newFilterPrivateAttachments(ctx *context.Context, list []*models.Attachment | |||||
| repo.GetOwner() | repo.GetOwner() | ||||
| } | } | ||||
| permission := false | permission := false | ||||
| if repo.Owner.IsOrganization() && ctx.User != nil { | |||||
| if repo.Owner.IsUserPartOfOrg(ctx.User.ID) { | |||||
| log.Info("user is member of org.") | |||||
| permission = true | |||||
| } | |||||
| } | |||||
| if !permission && ctx.User != nil { | if !permission && ctx.User != nil { | ||||
| isCollaborator, _ := repo.IsCollaborator(ctx.User.ID) | isCollaborator, _ := repo.IsCollaborator(ctx.User.ID) | ||||
| if isCollaborator { | |||||
| isInRepoTeam,_:=repo.IsInRepoTeam(ctx.User.ID) | |||||
| if isCollaborator ||isInRepoTeam { | |||||
| log.Info("Collaborator user may visit the attach.") | log.Info("Collaborator user may visit the attach.") | ||||
| permission = true | permission = true | ||||
| } | } | ||||
| @@ -740,7 +740,7 @@ func GrampusTrainJobShow(ctx *context.Context) { | |||||
| taskList = append(taskList, task) | taskList = append(taskList, task) | ||||
| prepareSpec4Show(ctx, task) | prepareSpec4Show(ctx, task) | ||||
| ctx.Data["version_list_task"] = taskList | ctx.Data["version_list_task"] = taskList | ||||
| ctx.Data["datasetDownload"] = GetCloudBrainDataSetInfo(task.Uuid, false) | |||||
| ctx.Data["datasetDownload"] = GetCloudBrainDataSetInfo(task.Uuid, task.DatasetName, false) | |||||
| ctx.Data["canDownload"] = cloudbrain.CanModifyJob(ctx, task) | ctx.Data["canDownload"] = cloudbrain.CanModifyJob(ctx, task) | ||||
| ctx.Data["displayJobName"] = task.DisplayJobName | ctx.Data["displayJobName"] = task.DisplayJobName | ||||
| @@ -293,7 +293,7 @@ func NotebookShow(ctx *context.Context) { | |||||
| datasetDownload := make([]models.DatasetDownload, 0) | datasetDownload := make([]models.DatasetDownload, 0) | ||||
| if ctx.IsSigned { | if ctx.IsSigned { | ||||
| if task.Uuid != "" && task.UserID == ctx.User.ID { | if task.Uuid != "" && task.UserID == ctx.User.ID { | ||||
| datasetDownload = GetCloudBrainDataSetInfo(task.Uuid, true) | |||||
| datasetDownload = GetCloudBrainDataSetInfo(task.Uuid, task.DatasetName, true) | |||||
| } | } | ||||
| } | } | ||||
| user, err := models.GetUserByID(task.UserID) | user, err := models.GetUserByID(task.UserID) | ||||
| @@ -322,36 +322,52 @@ func NotebookShow(ctx *context.Context) { | |||||
| ctx.HTML(200, tplModelArtsNotebookShow) | ctx.HTML(200, tplModelArtsNotebookShow) | ||||
| } | } | ||||
| func GetCloudBrainDataSetInfo(uuid string, isNeedDown bool) []models.DatasetDownload { | |||||
| func GetCloudBrainDataSetInfo(uuid string, datasetname string, isNeedDown bool) []models.DatasetDownload { | |||||
| datasetDownload := make([]models.DatasetDownload, 0) | datasetDownload := make([]models.DatasetDownload, 0) | ||||
| if len(uuid) == 0 { | |||||
| return datasetDownload | |||||
| } | |||||
| uuidList := strings.Split(uuid, ";") | uuidList := strings.Split(uuid, ";") | ||||
| for _, uuidStr := range uuidList { | |||||
| datasetnameList := strings.Split(datasetname, ";") | |||||
| for i, uuidStr := range uuidList { | |||||
| name := "" | |||||
| link := "" | |||||
| url := "" | |||||
| isDelete := false | |||||
| attachment, err := models.GetAttachmentByUUID(uuidStr) | attachment, err := models.GetAttachmentByUUID(uuidStr) | ||||
| if err != nil { | if err != nil { | ||||
| log.Error("GetAttachmentByUUID failed:%v", err.Error()) | log.Error("GetAttachmentByUUID failed:%v", err.Error()) | ||||
| return datasetDownload | |||||
| } | |||||
| dataset, err := models.GetDatasetByID(attachment.DatasetID) | |||||
| if err != nil { | |||||
| log.Error("GetDatasetByID failed:%v", err.Error()) | |||||
| return datasetDownload | |||||
| } | |||||
| repo, err := models.GetRepositoryByID(dataset.RepoID) | |||||
| if err != nil { | |||||
| log.Error("GetRepositoryByID failed:%v", err.Error()) | |||||
| return datasetDownload | |||||
| } | |||||
| url := "" | |||||
| if isNeedDown { | |||||
| url = attachment.S3DownloadURL() | |||||
| if len(datasetnameList) <= i || len(datasetname) == 0 { | |||||
| continue | |||||
| } | |||||
| name = datasetnameList[i] | |||||
| isDelete = true | |||||
| } else { | |||||
| name = attachment.Name | |||||
| dataset, err := models.GetDatasetByID(attachment.DatasetID) | |||||
| if err != nil { | |||||
| log.Error("GetDatasetByID failed:%v", err.Error()) | |||||
| } else { | |||||
| repo, err := models.GetRepositoryByID(dataset.RepoID) | |||||
| if err != nil { | |||||
| log.Error("GetRepositoryByID failed:%v", err.Error()) | |||||
| } else { | |||||
| link = repo.Link() + "/datasets" | |||||
| } | |||||
| } | |||||
| if isNeedDown { | |||||
| url = attachment.S3DownloadURL() | |||||
| } | |||||
| } | } | ||||
| datasetDownload = append(datasetDownload, models.DatasetDownload{ | datasetDownload = append(datasetDownload, models.DatasetDownload{ | ||||
| DatasetName: attachment.Name, | |||||
| DatasetName: name, | |||||
| DatasetDownloadLink: url, | DatasetDownloadLink: url, | ||||
| RepositoryLink: repo.Link() + "/datasets", | |||||
| RepositoryLink: link, | |||||
| IsDelete: isDelete, | |||||
| }) | }) | ||||
| } | } | ||||
| log.Info("dataset length=" + fmt.Sprint(len(datasetDownload))) | |||||
| return datasetDownload | return datasetDownload | ||||
| } | } | ||||
| @@ -947,14 +963,17 @@ func trainJobNewVersionDataPrepare(ctx *context.Context) error { | |||||
| } | } | ||||
| _, _, datasetNames, _, err := getDatasUrlListByUUIDS(task.Uuid) | _, _, datasetNames, _, err := getDatasUrlListByUUIDS(task.Uuid) | ||||
| if err != nil { | if err != nil { | ||||
| ctx.ServerError("GetAllUserAttachments failed:", err) | |||||
| return err | |||||
| log.Info("query dataset error," + err.Error()) | |||||
| //ctx.ServerError("GetAllUserAttachments failed:", err) | |||||
| //return err | |||||
| } else { | |||||
| ctx.Data["dataset_name"] = datasetNames | |||||
| } | } | ||||
| ctx.Data["branches"] = branches | ctx.Data["branches"] = branches | ||||
| ctx.Data["branch_name"] = task.BranchName | ctx.Data["branch_name"] = task.BranchName | ||||
| ctx.Data["description"] = task.Description | ctx.Data["description"] = task.Description | ||||
| ctx.Data["boot_file"] = task.BootFile | ctx.Data["boot_file"] = task.BootFile | ||||
| ctx.Data["dataset_name"] = datasetNames | |||||
| ctx.Data["work_server_number"] = task.WorkServerNumber | ctx.Data["work_server_number"] = task.WorkServerNumber | ||||
| ctx.Data["flavor_name"] = task.FlavorName | ctx.Data["flavor_name"] = task.FlavorName | ||||
| ctx.Data["engine_name"] = task.EngineName | ctx.Data["engine_name"] = task.EngineName | ||||
| @@ -1807,7 +1826,7 @@ func TrainJobShow(ctx *context.Context) { | |||||
| } else { | } else { | ||||
| VersionListTasks[i].Parameters = "" | VersionListTasks[i].Parameters = "" | ||||
| } | } | ||||
| datasetList = append(datasetList, GetCloudBrainDataSetInfo(task.Uuid, false)) | |||||
| datasetList = append(datasetList, GetCloudBrainDataSetInfo(task.Uuid, task.DatasetName, false)) | |||||
| VersionListTasks[i].CanDel = cloudbrain.CanDeleteJob(ctx, &task.Cloudbrain) | VersionListTasks[i].CanDel = cloudbrain.CanDeleteJob(ctx, &task.Cloudbrain) | ||||
| VersionListTasks[i].CanModify = cloudbrain.CanModifyJob(ctx, &task.Cloudbrain) | VersionListTasks[i].CanModify = cloudbrain.CanModifyJob(ctx, &task.Cloudbrain) | ||||
| @@ -2536,7 +2555,7 @@ func InferenceJobShow(ctx *context.Context) { | |||||
| ctx.Data["displayJobName"] = task.DisplayJobName | ctx.Data["displayJobName"] = task.DisplayJobName | ||||
| ctx.Data["task"] = task | ctx.Data["task"] = task | ||||
| ctx.Data["canDownload"] = cloudbrain.CanModifyJob(ctx, task) | ctx.Data["canDownload"] = cloudbrain.CanModifyJob(ctx, task) | ||||
| ctx.Data["datasetDownload"] = GetCloudBrainDataSetInfo(task.Uuid, false) | |||||
| ctx.Data["datasetDownload"] = GetCloudBrainDataSetInfo(task.Uuid, task.DatasetName, false) | |||||
| tempUids := []int64{} | tempUids := []int64{} | ||||
| tempUids = append(tempUids, task.UserID) | tempUids = append(tempUids, task.UserID) | ||||
| JobCreater, err := models.GetUserNamesByIDs(tempUids) | JobCreater, err := models.GetUserNamesByIDs(tempUids) | ||||
| @@ -18,7 +18,7 @@ | |||||
| ></i> | ></i> | ||||
| <span id="gpu-nums" style="font-size: 12px" | <span id="gpu-nums" style="font-size: 12px" | ||||
| >{{.ctx.i18n.Tr "repo.wait_count_start"}} | >{{.ctx.i18n.Tr "repo.wait_count_start"}} | ||||
| {{if .type}} | |||||
| {{if .ctx.QueuesDetail}} | |||||
| {{ $gpuQueue }} | {{ $gpuQueue }} | ||||
| {{else}} | {{else}} | ||||
| {{.ctx.WaitCount}} | {{.ctx.WaitCount}} | ||||
| @@ -500,7 +500,13 @@ | |||||
| <tbody> | <tbody> | ||||
| {{range $m ,$n := $.datasetDownload}} | {{range $m ,$n := $.datasetDownload}} | ||||
| <tr> | <tr> | ||||
| <td style="word-wrap: break-word;word-break: break-all;"><a href="{{.RepositoryLink}}" target="_blank">{{.DatasetName}}</a></td> | |||||
| <td style="word-wrap: break-word;word-break: break-all;"> | |||||
| {{if eq .IsDelete true}} | |||||
| {{.DatasetName}}({{$.i18n.Tr "dataset.file_deleted"}}) | |||||
| {{else}} | |||||
| <a href="{{.RepositoryLink}}" target="_blank">{{.DatasetName}}</a> | |||||
| {{end}} | |||||
| </td> | |||||
| </tr> | </tr> | ||||
| {{end}} | {{end}} | ||||
| @@ -496,7 +496,13 @@ | |||||
| <tbody> | <tbody> | ||||
| {{range $m ,$n := $.datasetDownload}} | {{range $m ,$n := $.datasetDownload}} | ||||
| <tr> | <tr> | ||||
| <td style="word-wrap: break-word;word-break: break-all;"><a href="{{.RepositoryLink}}" target="_blank">{{.DatasetName}}</a></td> | |||||
| <td style="word-wrap: break-word;word-break: break-all;"> | |||||
| {{if eq .IsDelete true}} | |||||
| {{.DatasetName}}({{$.i18n.Tr "dataset.file_deleted"}}) | |||||
| {{else}} | |||||
| <a href="{{.RepositoryLink}}" target="_blank">{{.DatasetName}}</a> | |||||
| {{end}} | |||||
| </td> | |||||
| </tr> | </tr> | ||||
| {{end}} | {{end}} | ||||
| @@ -464,7 +464,13 @@ | |||||
| <tbody> | <tbody> | ||||
| {{range $m ,$n := $.datasetDownload}} | {{range $m ,$n := $.datasetDownload}} | ||||
| <tr> | <tr> | ||||
| <td style="word-wrap: break-word;word-break: break-all;"><a href="{{.RepositoryLink}}" target="_blank">{{.DatasetName}}</a></td> | |||||
| <td style="word-wrap: break-word;word-break: break-all;"> | |||||
| {{if eq .IsDelete true}} | |||||
| {{.DatasetName}}({{$.i18n.Tr "dataset.file_deleted"}}) | |||||
| {{else}} | |||||
| <a href="{{.RepositoryLink}}" target="_blank">{{.DatasetName}}</a> | |||||
| {{end}} | |||||
| </td> | |||||
| </tr> | </tr> | ||||
| {{end}} | {{end}} | ||||
| @@ -594,7 +600,7 @@ | |||||
| <input type="hidden" name="trainTaskCreate" value="true"> | <input type="hidden" name="trainTaskCreate" value="true"> | ||||
| <div class="required inline field"> | <div class="required inline field"> | ||||
| <label>{{.i18n.Tr "repo.model.manage.createtrainjob"}}</label> | |||||
| <label>{{.i18n.Tr "repo.modelarts.train_job"}}</label> | |||||
| <input type="hidden" class="width83" id="JobId" name="JobId" readonly required> | <input type="hidden" class="width83" id="JobId" name="JobId" readonly required> | ||||
| <input type="hidden" id="VersionName" name="VersionName" value="V0001"> | <input type="hidden" id="VersionName" name="VersionName" value="V0001"> | ||||
| <input style="width: 45%;" id="JobName" readonly required> | <input style="width: 45%;" id="JobName" readonly required> | ||||
| @@ -419,7 +419,12 @@ | |||||
| <td class="ti-text-form-content"> | <td class="ti-text-form-content"> | ||||
| <div class="text-span text-span-w"> | <div class="text-span text-span-w"> | ||||
| {{range $m ,$n := $.datasetDownload}} | {{range $m ,$n := $.datasetDownload}} | ||||
| <a href="{{.RepositoryLink}}" target="_blank">{{.DatasetName}}</a> | |||||
| {{if eq .IsDelete true}} | |||||
| {{.DatasetName}}({{$.i18n.Tr "dataset.file_deleted"}}) | |||||
| {{else}} | |||||
| <a href="{{.RepositoryLink}}" target="_blank">{{.DatasetName}}</a> | |||||
| {{end}} | |||||
| {{end}} | {{end}} | ||||
| </div> | </div> | ||||
| </td> | </td> | ||||
| @@ -551,7 +556,7 @@ | |||||
| <input type="hidden" name="trainTaskCreate" value="true"> | <input type="hidden" name="trainTaskCreate" value="true"> | ||||
| <div class="required inline field"> | <div class="required inline field"> | ||||
| <label>{{.i18n.Tr "repo.model.manage.createtrainjob"}}</label> | |||||
| <label>{{.i18n.Tr "repo.modelarts.train_job"}}</label> | |||||
| <input type="hidden" class="width83" id="JobId" name="JobId" readonly required> | <input type="hidden" class="width83" id="JobId" name="JobId" readonly required> | ||||
| <input type="hidden" id="VersionName" name="VersionName" value="V0001"> | <input type="hidden" id="VersionName" name="VersionName" value="V0001"> | ||||
| <input style="width: 45%;" id="JobName" readonly required> | <input style="width: 45%;" id="JobName" readonly required> | ||||
| @@ -441,7 +441,14 @@ td, th { | |||||
| <tbody> | <tbody> | ||||
| {{range $m ,$n := $.datasetDownload}} | {{range $m ,$n := $.datasetDownload}} | ||||
| <tr> | <tr> | ||||
| <td style="word-wrap: break-word;word-break: break-all;"><a href="{{.RepositoryLink}}" target="_blank">{{.DatasetName}}</a></td> | |||||
| <td style="word-wrap: break-word;word-break: break-all;"> | |||||
| {{if eq .IsDelete true}} | |||||
| {{.DatasetName}}({{$.i18n.Tr "dataset.file_deleted"}}) | |||||
| {{else}} | |||||
| <a href="{{.RepositoryLink}}" target="_blank">{{.DatasetName}}</a> | |||||
| {{end}} | |||||
| </td> | |||||
| </tr> | </tr> | ||||
| {{end}} | {{end}} | ||||
| @@ -439,7 +439,14 @@ | |||||
| <tbody> | <tbody> | ||||
| {{range $.datasetDownload}} | {{range $.datasetDownload}} | ||||
| <tr> | <tr> | ||||
| <td style="word-wrap: break-word;word-break: break-all;"><a href="{{.RepositoryLink}}" target="_blank">{{.DatasetName}}</a></td> | |||||
| <td style="word-wrap: break-word;word-break: break-all;"> | |||||
| {{if eq .IsDelete true}} | |||||
| {{.DatasetName}}({{$.i18n.Tr "dataset.file_deleted"}}) | |||||
| {{else}} | |||||
| <a href="{{.RepositoryLink}}" target="_blank">{{.DatasetName}}</a> | |||||
| {{end}} | |||||
| </td> | |||||
| <td style="word-wrap: break-word;word-break: break-all;">{{.DatasetDownloadLink}}</td> | <td style="word-wrap: break-word;word-break: break-all;">{{.DatasetDownloadLink}}</td> | ||||
| <td class="center aligned"><a class="ui poping up clipboard" id="clipboard-btn-dataset" data-original="{{$.i18n.Tr "repo.copy_link"}}" data-success="{{$.i18n.Tr "repo.copy_link_success"}}" data-error="{{$.i18n.Tr "repo.copy_link_error"}}" data-content="{{$.i18n.Tr "repo.copy_link"}}" data-variation="inverted tiny" data-clipboard-text="{{.DatasetDownloadLink}}">{{$.i18n.Tr "dataset.download_copy"}}</a></td> | <td class="center aligned"><a class="ui poping up clipboard" id="clipboard-btn-dataset" data-original="{{$.i18n.Tr "repo.copy_link"}}" data-success="{{$.i18n.Tr "repo.copy_link_success"}}" data-error="{{$.i18n.Tr "repo.copy_link_error"}}" data-content="{{$.i18n.Tr "repo.copy_link"}}" data-variation="inverted tiny" data-clipboard-text="{{.DatasetDownloadLink}}">{{$.i18n.Tr "dataset.download_copy"}}</a></td> | ||||
| </tr> | </tr> | ||||
| @@ -506,7 +506,13 @@ | |||||
| {{if eq $k $m}} | {{if eq $k $m}} | ||||
| {{range $f ,$g := $n}} | {{range $f ,$g := $n}} | ||||
| <tr> | <tr> | ||||
| <td style="word-wrap: break-word;word-break: break-all;"><a href="{{.RepositoryLink}}" target="_blank">{{.DatasetName}}</a></td> | |||||
| <td style="word-wrap: break-word;word-break: break-all;"> | |||||
| {{if eq .IsDelete true}} | |||||
| {{.DatasetName}}({{$.i18n.Tr "dataset.file_deleted"}}) | |||||
| {{else}} | |||||
| <a href="{{.RepositoryLink}}" target="_blank">{{.DatasetName}}</a> | |||||
| {{end}} | |||||
| </td> | |||||
| </tr> | </tr> | ||||
| {{end}} | {{end}} | ||||
| {{end}} | {{end}} | ||||
| @@ -621,7 +627,7 @@ | |||||
| <div class="two inline fields "> | <div class="two inline fields "> | ||||
| <div class="required ten wide field"> | <div class="required ten wide field"> | ||||
| <label style="margin-left: -23px;">{{.i18n.Tr "repo.model.manage.createtrainjob"}}</label> | |||||
| <label style="margin-left: -23px;">{{.i18n.Tr "repo.modelarts.train_job"}}</label> | |||||
| <input type="hidden" class="width83" id="JobId" name="JobId" readonly required> | <input type="hidden" class="width83" id="JobId" name="JobId" readonly required> | ||||
| <input class="width83" id="JobName" readonly required> | <input class="width83" id="JobName" readonly required> | ||||
| @@ -72,7 +72,7 @@ | |||||
| {{end}} | {{end}} | ||||
| <input type="hidden" id="ai_engine_name" name="engine_names" value=""> | <input type="hidden" id="ai_engine_name" name="engine_names" value=""> | ||||
| <input type="hidden" id="ai_flaver_name" name="flaver_names" value=""> | <input type="hidden" id="ai_flaver_name" name="flaver_names" value=""> | ||||
| <input type="hidden" id="display_job_name" name="display_job_name" value="{{.display_job_name}}"> | |||||
| <input type="hidden" id="display_job_name" name="display_job_name" value="{{.display_job_name}}"> | |||||
| <h4 class="unite title ui header ">{{.i18n.Tr "repo.modelarts.train_job.basic_info"}}:</h4> | <h4 class="unite title ui header ">{{.i18n.Tr "repo.modelarts.train_job.basic_info"}}:</h4> | ||||
| <div class="required min_title inline field"> | <div class="required min_title inline field"> | ||||
| <label class="" style="font-weight: normal;">{{.i18n.Tr "cloudbrain.resource_cluster"}}</label> | <label class="" style="font-weight: normal;">{{.i18n.Tr "cloudbrain.resource_cluster"}}</label> | ||||
| @@ -107,7 +107,7 @@ | |||||
| d="M3 2.992C3 2.444 3.445 2 3.993 2h16.014a1 1 0 0 1 .993.992v18.016a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992zM19 11V4H5v7h14zm0 2H5v7h14v-7zM9 6h6v2H9V6zm0 9h6v2H9v-2z" /> | d="M3 2.992C3 2.444 3.445 2 3.993 2h16.014a1 1 0 0 1 .993.992v18.016a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 21.008V2.992zM19 11V4H5v7h14zm0 2H5v7h14v-7zM9 6h6v2H9V6zm0 9h6v2H9v-2z" /> | ||||
| </svg> | </svg> | ||||
| Ascend NPU</a> | Ascend NPU</a> | ||||
| </div> | |||||
| </div> | |||||
| </div> | </div> | ||||
| <div style="display: flex;align-items: center;margin-left: 156px;margin-top: -0.5rem;"> | <div style="display: flex;align-items: center;margin-left: 156px;margin-top: -0.5rem;"> | ||||
| {{template "custom/task_wait_count" .}} | {{template "custom/task_wait_count" .}} | ||||
| @@ -556,7 +556,7 @@ | |||||
| $("input#ai_flaver_name").val(name2) | $("input#ai_flaver_name").val(name2) | ||||
| } | } | ||||
| validate() | validate() | ||||
| $('.ui.create_train_job.green.button').click(function(e) { | $('.ui.create_train_job.green.button').click(function(e) { | ||||
| get_name() | get_name() | ||||
| @@ -50,9 +50,9 @@ | |||||
| <div class="bgtask-content-header">{{$.i18n.Tr "repo.modelconvert.notcreate"}}</div> | <div class="bgtask-content-header">{{$.i18n.Tr "repo.modelconvert.notcreate"}}</div> | ||||
| <div class="bgtask-content"> | <div class="bgtask-content"> | ||||
| {{if eq .MODEL_COUNT 0}} | {{if eq .MODEL_COUNT 0}} | ||||
| <div class="bgtask-content-txt">{{$.i18n.Tr "repo.modelconvert.importfirst1"}}<a href="{{.RepoLink}}/modelmanage/show_model">{{$.i18n.Tr "repo.modelconvert.importfirst2"}}</a>{{$.i18n.Tr "repo.modelconvert.importfirst3"}}</div> | |||||
| <div class="bgtask-content-txt">{{$.i18n.Tr "repo.modelconvert.importfirst1"}}<a href="{{.RepoLink}}/modelmanage/show_model"> {{$.i18n.Tr "repo.modelconvert.importfirst2"}} </a>{{$.i18n.Tr "repo.modelconvert.importfirst3"}}</div> | |||||
| {{end}} | {{end}} | ||||
| <div class="bgtask-content-txt">{{$.i18n.Tr "repo.platform_instructions"}}</div> | |||||
| <div class="bgtask-content-txt">{{$.i18n.Tr "repo.platform_instructions1"}}<a href="https://git.openi.org.cn/zeizei/OpenI_Learning"> {{$.i18n.Tr "repo.platform_instructions2"}} </a>{{$.i18n.Tr "repo.platform_instructions3"}}</div> | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| @@ -71,9 +71,9 @@ | |||||
| {{end}} | {{end}} | ||||
| {{if eq $.TRAIN_COUNT 0}} | {{if eq $.TRAIN_COUNT 0}} | ||||
| <div class="bgtask-content-txt">{{$.i18n.Tr "repo.model.manage.createtrainjob_tip"}}<a | <div class="bgtask-content-txt">{{$.i18n.Tr "repo.model.manage.createtrainjob_tip"}}<a | ||||
| href="{{.RepoLink}}/modelarts/train-job">{{$.i18n.Tr "repo.model.manage.createtrainjob"}}</a>。</div> | |||||
| href="{{.RepoLink}}/modelarts/train-job"> {{$.i18n.Tr "repo.model.manage.createtrainjob"}}</a></div> | |||||
| {{end}} | {{end}} | ||||
| <div class="bgtask-content-txt">{{$.i18n.Tr "repo.platform_instructions"}}</a></div> | |||||
| <div class="bgtask-content-txt">{{$.i18n.Tr "repo.platform_instructions1"}}<a href="https://git.openi.org.cn/zeizei/OpenI_Learning"> {{$.i18n.Tr "repo.platform_instructions2"}} </a>{{$.i18n.Tr "repo.platform_instructions3"}}</div> | |||||
| </div> | </div> | ||||
| <div style="display: none;"> | <div style="display: none;"> | ||||
| @@ -330,7 +330,7 @@ | |||||
| .modal({ | .modal({ | ||||
| centered: false, | centered: false, | ||||
| onShow: function () { | onShow: function () { | ||||
| $('#model_header').text("导入新模型") | |||||
| $('#model_header').text({{.i18n.Tr "repo.model.manage.import_new_model"}}) | |||||
| $('input[name="Version"]').addClass('model_disabled') | $('input[name="Version"]').addClass('model_disabled') | ||||
| $('.ui.dimmer').css({ "background-color": "rgb(136, 136, 136,0.7)" }) | $('.ui.dimmer').css({ "background-color": "rgb(136, 136, 136,0.7)" }) | ||||
| $("#job-name").empty() | $("#job-name").empty() | ||||
| @@ -125,7 +125,7 @@ | |||||
| </td> | </td> | ||||
| </tr> | </tr> | ||||
| <tr> | <tr> | ||||
| <td class="ti-text-form-label text-width80">{{$.i18n.Tr "repo.model.manage.createtrainjob"}}</td> | |||||
| <td class="ti-text-form-label text-width80">{{$.i18n.Tr "repo.modelarts.train_job"}}</td> | |||||
| <td class="ti-text-form-content word-elipsis"> | <td class="ti-text-form-content word-elipsis"> | ||||
| <a id="DisplayJobNameHref" class="title" style="font-size: 14px;" target="_blank"> | <a id="DisplayJobNameHref" class="title" style="font-size: 14px;" target="_blank"> | ||||
| <span id="DisplayJobName" class="fitted" style="width: 90%;vertical-align: middle;"></span> | <span id="DisplayJobName" class="fitted" style="width: 90%;vertical-align: middle;"></span> | ||||
| @@ -197,11 +197,12 @@ export default { | |||||
| this.getModelList() | this.getModelList() | ||||
| }, | }, | ||||
| showcreateVue(name,version,label){ | showcreateVue(name,version,label){ | ||||
| let title= this.i18n.model_create_version_title; | |||||
| $('.ui.modal.second') | $('.ui.modal.second') | ||||
| .modal({ | .modal({ | ||||
| centered: false, | centered: false, | ||||
| onShow:function(){ | onShow:function(){ | ||||
| $('#model_header').text("创建模型新版本") | |||||
| $('#model_header').text(title) | |||||
| $('input[name="Name"]').addClass('model_disabled') | $('input[name="Name"]').addClass('model_disabled') | ||||
| $('input[name="Name"]').attr('readonly','readonly') | $('input[name="Name"]').attr('readonly','readonly') | ||||
| $('input[name="modelSelectedFile"]').attr('readonly','readonly') | $('input[name="modelSelectedFile"]').attr('readonly','readonly') | ||||
| @@ -248,7 +248,7 @@ | |||||
| > | > | ||||
| <el-tabs v-model="activeName"> | <el-tabs v-model="activeName"> | ||||
| <el-tab-pane :label="i18n.public_dataset" name="first"> | <el-tab-pane :label="i18n.public_dataset" name="first"> | ||||
| <el-row v-loading="loadingPublicPage"> | |||||
| <el-row v-loading="loadingPublicPage" style="min-height: 50px"> | |||||
| <el-checkbox-group | <el-checkbox-group | ||||
| v-model="checkList" | v-model="checkList" | ||||
| style="font-size: 14px; line-height: 1" | style="font-size: 14px; line-height: 1" | ||||
| @@ -546,7 +546,7 @@ | |||||
| > | > | ||||
| {{ i18n.dataset_selected }} | {{ i18n.dataset_selected }} | ||||
| </div> | </div> | ||||
| <div style="flex: 1; margin-top: 1.5rem"> | |||||
| <div style="flex: 1; margin: 1.5rem 0; overflow-y: auto"> | |||||
| <el-checkbox-group v-model="checkList"> | <el-checkbox-group v-model="checkList"> | ||||
| <el-checkbox | <el-checkbox | ||||
| v-for="(item, index) in selectDatasetArray" | v-for="(item, index) in selectDatasetArray" | ||||
| @@ -985,7 +985,10 @@ export default { | |||||
| let hasSelectDatasetName = $(".cloudbrain-type") | let hasSelectDatasetName = $(".cloudbrain-type") | ||||
| .data("dataset-name") | .data("dataset-name") | ||||
| .split(";"); | .split(";"); | ||||
| if (this.hasSelectDatasetList.length !== 0) { | |||||
| if ( | |||||
| this.hasSelectDatasetList.length !== 0 && | |||||
| hasSelectDatasetName[0] !== "" | |||||
| ) { | |||||
| this.saveStatusList = this.hasSelectDatasetList; | this.saveStatusList = this.hasSelectDatasetList; | ||||
| this.checkList = hasSelectDatasetName; | this.checkList = hasSelectDatasetName; | ||||
| this.hasSelectDatasetList.forEach((item, index) => { | this.hasSelectDatasetList.forEach((item, index) => { | ||||
| @@ -95,6 +95,8 @@ export const i18nVue = { | |||||
| model_create_new_ver: "创建新版本", | model_create_new_ver: "创建新版本", | ||||
| model_download: "下载", | model_download: "下载", | ||||
| model_delete: "删除", | model_delete: "删除", | ||||
| model_create_title: "导入新模型", | |||||
| model_create_version_title: "创建模型新版本", | |||||
| }, | }, | ||||
| US: { | US: { | ||||
| computer_vision: "computer vision", | computer_vision: "computer vision", | ||||
| @@ -152,7 +154,7 @@ export const i18nVue = { | |||||
| dataset_instructions_for_use: | dataset_instructions_for_use: | ||||
| "Instructions for use: You can refer to OpenI AI Collaboration Platform ", | "Instructions for use: You can refer to OpenI AI Collaboration Platform ", | ||||
| dataset_camp_course: " Newcomer Training Camp Course", | |||||
| dataset_camp_course: " OpenI_Learning", | |||||
| dataset_link_success: "Linked dataset succeeded!", | dataset_link_success: "Linked dataset succeeded!", | ||||
| dataset_link_failed: "Linked dataset Failed!", | dataset_link_failed: "Linked dataset Failed!", | ||||
| dataset_over_nums: "Linked over ? datasets!", | dataset_over_nums: "Linked over ? datasets!", | ||||
| @@ -196,5 +198,7 @@ export const i18nVue = { | |||||
| model_create_new_ver: "New Version", | model_create_new_ver: "New Version", | ||||
| model_download: "Download", | model_download: "Download", | ||||
| model_delete: "Delete", | model_delete: "Delete", | ||||
| model_create_title: "Import new model", | |||||
| model_create_version_title: "Create a new version of the model", | |||||
| }, | }, | ||||
| }; | }; | ||||