# Conflicts: # templates/repo/modelarts/trainjob/version_new.tmpltags/v1.22.9.1^2^2
@@ -71,6 +71,7 @@ const ( | |||
ModelArtsStopping ModelArtsJobStatus = "STOPPING" //停止中 | |||
ModelArtsStopped ModelArtsJobStatus = "STOPPED" //停止 | |||
ModelArtsUnavailable ModelArtsJobStatus = "UNAVAILABLE" //故障 | |||
ModelArtsDeleting ModelArtsJobStatus = "DELETING" //删除中 | |||
ModelArtsDeleted ModelArtsJobStatus = "DELETED" //已删除 | |||
ModelArtsResizing ModelArtsJobStatus = "RESIZING" //规格变更中 | |||
ModelArtsResizFailed ModelArtsJobStatus = "RESIZE_FAILED" //规格变更失败 | |||
@@ -1097,6 +1098,7 @@ type DatasetDownload struct { | |||
DatasetName string `json:"dataset_name"` | |||
DatasetDownloadLink string `json:"dataset_download_link"` | |||
RepositoryLink string `json:"repository_link"` | |||
IsDelete bool `json:"is_delete"` | |||
} | |||
type DataSource struct { | |||
@@ -1951,9 +1953,9 @@ func GetCloudbrainCountByUserID(userID int64, jobType string) (int, error) { | |||
func GetCloudbrainRunCountByRepoID(repoID int64) (int, error) { | |||
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, | |||
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 | |||
} | |||
@@ -121,22 +121,20 @@ func (datasets DatasetList) loadAttachmentAttributes(opts *SearchDatasetOptions) | |||
for i := range datasets { | |||
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] | |||
if !ok { | |||
permission = false | |||
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 { | |||
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.") | |||
permission = true | |||
} | |||
@@ -147,11 +145,7 @@ func (datasets DatasetList) loadAttachmentAttributes(opts *SearchDatasetOptions) | |||
if permission { | |||
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) | |||
} | |||
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 { | |||
// Discard invalid input | |||
if mode <= AccessModeNone || mode > AccessModeOwner { | |||
@@ -959,6 +959,7 @@ unfavorite=Unlike | |||
favorite=Like | |||
disassociate=Disassociate | |||
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] | |||
owner = Owner | |||
@@ -1140,7 +1141,7 @@ modelarts.train_job.compute_node=Compute Node | |||
modelarts.create_model = Create Model | |||
modelarts.model_label=Model Label | |||
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.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 ; | |||
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; | |||
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 ; | |||
benchmark_leaderboards = Benchmark leaderboards | |||
@@ -1244,11 +1248,11 @@ model.convert=Model Transformation | |||
model.list=Model List | |||
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.init2=initialized 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_confirm=Are you sure to delete this model? Once this model is deleted, it cannot be restored. | |||
model.manage.select.trainjob=Select train task | |||
@@ -1260,9 +1264,9 @@ model.manage.modellabel=Model label | |||
model.manage.modeldesc=Model description | |||
model.manage.baseinfo=Base Information | |||
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.taskname=Task name | |||
modelconvert.modelname=Model name | |||
@@ -965,6 +965,7 @@ unfavorite=取消收藏 | |||
favorite=收藏 | |||
disassociate=取消关联 | |||
benchmark_dataset_tip=说明:先使用数据集功能上传模型,然后从数据集列表选模型。 | |||
file_deleted=文件已经被删除 | |||
[repo] | |||
owner=拥有者 | |||
@@ -1235,6 +1236,10 @@ repo_not_initialized = 代码版本:您还没有初始化代码仓库,请先 | |||
debug_task_running_limit = 运行时长:最长不超过4个小时,超过4个小时将自动停止; | |||
dataset_desc = 数据集:云脑1提供 CPU / GPU 资源,云脑2提供 Ascend NPU 资源,调试使用的数据集也需要上传到对应的环境; | |||
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> ; | |||
benchmark_leaderboards = 基准测试排行榜 | |||
@@ -1261,7 +1266,7 @@ model.manage.notcreatemodel=未创建过模型 | |||
model.manage.init1=代码版本:您还没有初始化代码仓库,请先 | |||
model.manage.init2=创建代码版本; | |||
model.manage.createtrainjob_tip=训练任务:您还没创建过训练任务,请先创建 | |||
model.manage.createtrainjob=训练任务 | |||
model.manage.createtrainjob=训练任务。 | |||
model.manage.delete=删除模型 | |||
model.manage.delete_confirm=你确认删除该模型么?此模型一旦删除不可恢复。 | |||
model.manage.select.trainjob=选择训练任务 | |||
@@ -1274,7 +1279,7 @@ model.manage.modeldesc=模型描述 | |||
model.manage.baseinfo=基本信息 | |||
modelconvert.notcreate=未创建过模型转换任务 | |||
modelconvert.importfirst1=请您先导入 | |||
modelconvert.importfirst2=模型下载 | |||
modelconvert.importfirst2=模型 | |||
modelconvert.importfirst3=,然后再对其进行转换。 | |||
modelconvert.download=下载 | |||
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 | |||
labelName := strings.Fields(task.LabelName) | |||
ctx.Data["LabelName"] = labelName | |||
@@ -45,15 +45,10 @@ func newFilterPrivateAttachments(ctx *context.Context, list []*models.Attachment | |||
repo.GetOwner() | |||
} | |||
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 { | |||
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.") | |||
permission = true | |||
} | |||
@@ -740,7 +740,7 @@ func GrampusTrainJobShow(ctx *context.Context) { | |||
taskList = append(taskList, task) | |||
prepareSpec4Show(ctx, task) | |||
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["displayJobName"] = task.DisplayJobName | |||
@@ -293,7 +293,7 @@ func NotebookShow(ctx *context.Context) { | |||
datasetDownload := make([]models.DatasetDownload, 0) | |||
if ctx.IsSigned { | |||
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) | |||
@@ -322,36 +322,52 @@ func NotebookShow(ctx *context.Context) { | |||
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) | |||
if len(uuid) == 0 { | |||
return datasetDownload | |||
} | |||
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) | |||
if err != nil { | |||
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{ | |||
DatasetName: attachment.Name, | |||
DatasetName: name, | |||
DatasetDownloadLink: url, | |||
RepositoryLink: repo.Link() + "/datasets", | |||
RepositoryLink: link, | |||
IsDelete: isDelete, | |||
}) | |||
} | |||
log.Info("dataset length=" + fmt.Sprint(len(datasetDownload))) | |||
return datasetDownload | |||
} | |||
@@ -947,14 +963,17 @@ func trainJobNewVersionDataPrepare(ctx *context.Context) error { | |||
} | |||
_, _, datasetNames, _, err := getDatasUrlListByUUIDS(task.Uuid) | |||
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["branch_name"] = task.BranchName | |||
ctx.Data["description"] = task.Description | |||
ctx.Data["boot_file"] = task.BootFile | |||
ctx.Data["dataset_name"] = datasetNames | |||
ctx.Data["work_server_number"] = task.WorkServerNumber | |||
ctx.Data["flavor_name"] = task.FlavorName | |||
ctx.Data["engine_name"] = task.EngineName | |||
@@ -1807,7 +1826,7 @@ func TrainJobShow(ctx *context.Context) { | |||
} else { | |||
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].CanModify = cloudbrain.CanModifyJob(ctx, &task.Cloudbrain) | |||
@@ -2536,7 +2555,7 @@ func InferenceJobShow(ctx *context.Context) { | |||
ctx.Data["displayJobName"] = task.DisplayJobName | |||
ctx.Data["task"] = 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 = append(tempUids, task.UserID) | |||
JobCreater, err := models.GetUserNamesByIDs(tempUids) | |||
@@ -18,7 +18,7 @@ | |||
></i> | |||
<span id="gpu-nums" style="font-size: 12px" | |||
>{{.ctx.i18n.Tr "repo.wait_count_start"}} | |||
{{if .type}} | |||
{{if .ctx.QueuesDetail}} | |||
{{ $gpuQueue }} | |||
{{else}} | |||
{{.ctx.WaitCount}} | |||
@@ -500,7 +500,13 @@ | |||
<tbody> | |||
{{range $m ,$n := $.datasetDownload}} | |||
<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> | |||
{{end}} | |||
@@ -496,7 +496,13 @@ | |||
<tbody> | |||
{{range $m ,$n := $.datasetDownload}} | |||
<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> | |||
{{end}} | |||
@@ -464,7 +464,13 @@ | |||
<tbody> | |||
{{range $m ,$n := $.datasetDownload}} | |||
<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> | |||
{{end}} | |||
@@ -594,7 +600,7 @@ | |||
<input type="hidden" name="trainTaskCreate" value="true"> | |||
<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" id="VersionName" name="VersionName" value="V0001"> | |||
<input style="width: 45%;" id="JobName" readonly required> | |||
@@ -419,7 +419,12 @@ | |||
<td class="ti-text-form-content"> | |||
<div class="text-span text-span-w"> | |||
{{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}} | |||
</div> | |||
</td> | |||
@@ -551,7 +556,7 @@ | |||
<input type="hidden" name="trainTaskCreate" value="true"> | |||
<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" id="VersionName" name="VersionName" value="V0001"> | |||
<input style="width: 45%;" id="JobName" readonly required> | |||
@@ -441,7 +441,14 @@ td, th { | |||
<tbody> | |||
{{range $m ,$n := $.datasetDownload}} | |||
<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> | |||
{{end}} | |||
@@ -439,7 +439,14 @@ | |||
<tbody> | |||
{{range $.datasetDownload}} | |||
<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 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> | |||
@@ -506,7 +506,13 @@ | |||
{{if eq $k $m}} | |||
{{range $f ,$g := $n}} | |||
<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> | |||
{{end}} | |||
{{end}} | |||
@@ -621,7 +627,7 @@ | |||
<div class="two inline fields "> | |||
<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 class="width83" id="JobName" readonly required> | |||
@@ -72,7 +72,7 @@ | |||
{{end}} | |||
<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="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> | |||
<div class="required min_title inline field"> | |||
<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" /> | |||
</svg> | |||
Ascend NPU</a> | |||
</div> | |||
</div> | |||
</div> | |||
<div style="display: flex;align-items: center;margin-left: 156px;margin-top: -0.5rem;"> | |||
{{template "custom/task_wait_count" .}} | |||
@@ -556,7 +556,7 @@ | |||
$("input#ai_flaver_name").val(name2) | |||
} | |||
validate() | |||
$('.ui.create_train_job.green.button').click(function(e) { | |||
get_name() | |||
@@ -50,9 +50,9 @@ | |||
<div class="bgtask-content-header">{{$.i18n.Tr "repo.modelconvert.notcreate"}}</div> | |||
<div class="bgtask-content"> | |||
{{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}} | |||
<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> | |||
@@ -71,9 +71,9 @@ | |||
{{end}} | |||
{{if eq $.TRAIN_COUNT 0}} | |||
<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}} | |||
<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 style="display: none;"> | |||
@@ -330,7 +330,7 @@ | |||
.modal({ | |||
centered: false, | |||
onShow: function () { | |||
$('#model_header').text("导入新模型") | |||
$('#model_header').text({{.i18n.Tr "repo.model.manage.import_new_model"}}) | |||
$('input[name="Version"]').addClass('model_disabled') | |||
$('.ui.dimmer').css({ "background-color": "rgb(136, 136, 136,0.7)" }) | |||
$("#job-name").empty() | |||
@@ -125,7 +125,7 @@ | |||
</td> | |||
</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"> | |||
<a id="DisplayJobNameHref" class="title" style="font-size: 14px;" target="_blank"> | |||
<span id="DisplayJobName" class="fitted" style="width: 90%;vertical-align: middle;"></span> | |||
@@ -197,11 +197,12 @@ export default { | |||
this.getModelList() | |||
}, | |||
showcreateVue(name,version,label){ | |||
let title= this.i18n.model_create_version_title; | |||
$('.ui.modal.second') | |||
.modal({ | |||
centered: false, | |||
onShow:function(){ | |||
$('#model_header').text("创建模型新版本") | |||
$('#model_header').text(title) | |||
$('input[name="Name"]').addClass('model_disabled') | |||
$('input[name="Name"]').attr('readonly','readonly') | |||
$('input[name="modelSelectedFile"]').attr('readonly','readonly') | |||
@@ -248,7 +248,7 @@ | |||
> | |||
<el-tabs v-model="activeName"> | |||
<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 | |||
v-model="checkList" | |||
style="font-size: 14px; line-height: 1" | |||
@@ -546,7 +546,7 @@ | |||
> | |||
{{ i18n.dataset_selected }} | |||
</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 | |||
v-for="(item, index) in selectDatasetArray" | |||
@@ -985,7 +985,10 @@ export default { | |||
let hasSelectDatasetName = $(".cloudbrain-type") | |||
.data("dataset-name") | |||
.split(";"); | |||
if (this.hasSelectDatasetList.length !== 0) { | |||
if ( | |||
this.hasSelectDatasetList.length !== 0 && | |||
hasSelectDatasetName[0] !== "" | |||
) { | |||
this.saveStatusList = this.hasSelectDatasetList; | |||
this.checkList = hasSelectDatasetName; | |||
this.hasSelectDatasetList.forEach((item, index) => { | |||
@@ -95,6 +95,8 @@ export const i18nVue = { | |||
model_create_new_ver: "创建新版本", | |||
model_download: "下载", | |||
model_delete: "删除", | |||
model_create_title: "导入新模型", | |||
model_create_version_title: "创建模型新版本", | |||
}, | |||
US: { | |||
computer_vision: "computer vision", | |||
@@ -152,7 +154,7 @@ export const i18nVue = { | |||
dataset_instructions_for_use: | |||
"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_failed: "Linked dataset Failed!", | |||
dataset_over_nums: "Linked over ? datasets!", | |||
@@ -196,5 +198,7 @@ export const i18nVue = { | |||
model_create_new_ver: "New Version", | |||
model_download: "Download", | |||
model_delete: "Delete", | |||
model_create_title: "Import new model", | |||
model_create_version_title: "Create a new version of the model", | |||
}, | |||
}; |