Browse Source

提交代码。

Signed-off-by: zouap <zouap@pcl.ac.cn>
pull/2480/head
zouap 3 years ago
parent
commit
f42e727740
5 changed files with 148 additions and 11 deletions
  1. +1
    -0
      models/ai_model_manage.go
  2. +101
    -0
      routers/repo/ai_model_manage.go
  3. +3
    -0
      routers/routes/routes.go
  4. +1
    -1
      templates/repo/cloudbrain/benchmark/index.tmpl
  5. +42
    -10
      templates/repo/modelmanage/convertIndex.tmpl

+ 1
- 0
models/ai_model_manage.go View File

@@ -54,6 +54,7 @@ type AiModelManageConvert struct {
InputShape string `xorm:"varchar(2000)"` InputShape string `xorm:"varchar(2000)"`
InputDataFormat string `xorm:"NOT NULL"` InputDataFormat string `xorm:"NOT NULL"`
Description string `xorm:"varchar(2000)"` Description string `xorm:"varchar(2000)"`
Path string `xorm:"varchar(400) NOT NULL"`
CreatedUnix timeutil.TimeStamp `xorm:"created"` CreatedUnix timeutil.TimeStamp `xorm:"created"`
UpdatedUnix timeutil.TimeStamp `xorm:"updated"` UpdatedUnix timeutil.TimeStamp `xorm:"updated"`
UserName string UserName string


+ 101
- 0
routers/repo/ai_model_manage.go View File

@@ -25,6 +25,7 @@ const (
tplModelManageConvertIndex = "repo/modelmanage/convertIndex" tplModelManageConvertIndex = "repo/modelmanage/convertIndex"
tplModelManageDownload = "repo/modelmanage/download" tplModelManageDownload = "repo/modelmanage/download"
tplModelInfo = "repo/modelmanage/showinfo" tplModelInfo = "repo/modelmanage/showinfo"
tplModelConvertInfo = "repo/modelmanage/convertshowinfo"
MODEL_LATEST = 1 MODEL_LATEST = 1
MODEL_NOT_LATEST = 0 MODEL_NOT_LATEST = 0
) )
@@ -146,6 +147,39 @@ func SaveNewNameModel(ctx *context.Context) {
log.Info("save model end.") log.Info("save model end.")
} }


func SaveModelConvert(ctx *context.Context) {
log.Info("save model start.")
if !ctx.Repo.CanWrite(models.UnitTypeModelManage) {
ctx.JSON(403, ctx.Tr("repo.model_noright"))
return
}
name := ctx.Query("name")
desc := ctx.Query("desc")
modelId := ctx.Query("modelId")
SrcEngine := ctx.QueryInt("SrcEngine")
InputShape := ctx.Query("inputshape")
InputDataFormat := ctx.Query("inputdataformat")
DestFormat := ctx.QueryInt("DestFormat")
NetOutputFormat := ctx.QueryInt("NetOutputFormat")

uuid := uuid.NewV4()
id := uuid.String()
modelConvert := &models.AiModelManageConvert{
ID: id,
Name: name,
Description: desc,
SrcEngine: SrcEngine,
RepoId: ctx.Repo.Repository.ID,
ModelId: modelId,
DestFormat: DestFormat,
NetOutputFormat: NetOutputFormat,
InputShape: InputShape,
InputDataFormat: InputDataFormat,
UserId: ctx.User.ID,
}
models.SaveModelConvert(modelConvert)
}

func SaveModel(ctx *context.Context) { func SaveModel(ctx *context.Context) {
log.Info("save model start.") log.Info("save model start.")
JobId := ctx.Query("JobId") JobId := ctx.Query("JobId")
@@ -226,6 +260,19 @@ func downloadModelFromCloudBrainOne(modelUUID string, jobName string, parentDir
} }
} }


func DeleteModelConvert(ctx *context.Context) {
log.Info("delete model convert start.")
id := ctx.Query("ID")
err := models.DeleteModelConvertById(id)
if err != nil {
ctx.JSON(500, err.Error())
} else {
ctx.JSON(200, map[string]string{
"result_code": "0",
})
}
}

func DeleteModel(ctx *context.Context) { func DeleteModel(ctx *context.Context) {
log.Info("delete model start.") log.Info("delete model start.")
id := ctx.Query("ID") id := ctx.Query("ID")
@@ -520,6 +567,15 @@ func ShowModelInfo(ctx *context.Context) {
ctx.HTML(200, tplModelInfo) ctx.HTML(200, tplModelInfo)
} }


func ShowModelConvertInfo(ctx *context.Context) {
ctx.Data["ID"] = ctx.Query("ID")
ctx.Data["name"] = ctx.Query("name")
ctx.Data["isModelManage"] = true
ctx.Data["ModelManageAccess"] = ctx.Repo.CanWrite(models.UnitTypeModelManage)

ctx.HTML(200, tplModelConvertInfo)
}

func ShowSingleModel(ctx *context.Context) { func ShowSingleModel(ctx *context.Context) {
name := ctx.Query("name") name := ctx.Query("name")


@@ -623,6 +679,7 @@ func ConvertModelTemplate(ctx *context.Context) {
ctx.Data["MODEL_COUNT"] = 0 ctx.Data["MODEL_COUNT"] = 0
ctx.Data["ModelManageAccess"] = ctx.Repo.CanWrite(models.UnitTypeModelManage) ctx.Data["ModelManageAccess"] = ctx.Repo.CanWrite(models.UnitTypeModelManage)
ctx.Data["TRAIN_COUNT"] = 0 ctx.Data["TRAIN_COUNT"] = 0

ctx.HTML(200, tplModelManageConvertIndex) ctx.HTML(200, tplModelManageConvertIndex)
} }


@@ -660,6 +717,50 @@ func isOper(ctx *context.Context, modelUserId int64) bool {
return false return false
} }


func ShowModelConvertPageInfo(ctx *context.Context) {
log.Info("ShowModelConvertInfo start.")
if !isQueryRight(ctx) {
ctx.NotFound(ctx.Req.URL.RequestURI(), nil)
return
}
page := ctx.QueryInt("page")
if page <= 0 {
page = 1
}
pageSize := ctx.QueryInt("pageSize")
if pageSize <= 0 {
pageSize = setting.UI.IssuePagingNum
}
repoId := ctx.Repo.Repository.ID
modelResult, count, err := models.QueryModelConvert(&models.AiModelQueryOptions{
ListOptions: models.ListOptions{
Page: page,
PageSize: pageSize,
},
RepoID: repoId,
})
if err != nil {
ctx.ServerError("Cloudbrain", err)
return
}
userIds := make([]int64, len(modelResult))
for i, model := range modelResult {
model.IsCanOper = isOper(ctx, model.UserId)
model.IsCanDelete = isCanDelete(ctx, model.UserId)
userIds[i] = model.UserId
}
userNameMap := queryUserName(userIds)
for _, model := range modelResult {
value := userNameMap[model.UserId]
if value != nil {
model.UserName = value.Name
model.UserRelAvatarLink = value.RelAvatarLink()
}
}
ctx.Data["Tasks"] = modelResult

}

func ShowModelPageInfo(ctx *context.Context) { func ShowModelPageInfo(ctx *context.Context) {
log.Info("ShowModelInfo start.") log.Info("ShowModelInfo start.")
if !isQueryRight(ctx) { if !isQueryRight(ctx) {


+ 3
- 0
routers/routes/routes.go View File

@@ -1077,12 +1077,15 @@ func RegisterRoutes(m *macaron.Macaron) {
}, context.RepoRef()) }, context.RepoRef())
m.Group("/modelmanage", func() { m.Group("/modelmanage", func() {
m.Post("/create_model", reqRepoModelManageWriter, repo.SaveModel) m.Post("/create_model", reqRepoModelManageWriter, repo.SaveModel)
m.Post("/create_model_convert", reqRepoModelManageWriter, repo.SaveModelConvert)
m.Post("/create_new_model", repo.SaveNewNameModel) m.Post("/create_new_model", repo.SaveNewNameModel)
m.Delete("/delete_model", repo.DeleteModel) m.Delete("/delete_model", repo.DeleteModel)
m.Delete("/delete_model_convert", repo.DeleteModelConvert)
m.Put("/modify_model", repo.ModifyModelInfo) m.Put("/modify_model", repo.ModifyModelInfo)
m.Get("/show_model", reqRepoModelManageReader, repo.ShowModelTemplate) m.Get("/show_model", reqRepoModelManageReader, repo.ShowModelTemplate)
m.Get("/convert_model", reqRepoModelManageReader, repo.ConvertModelTemplate) m.Get("/convert_model", reqRepoModelManageReader, repo.ConvertModelTemplate)
m.Get("/show_model_info", repo.ShowModelInfo) m.Get("/show_model_info", repo.ShowModelInfo)
m.Get("/show_model_convert_info", repo.ShowModelConvertInfo)
m.Get("/show_model_info_api", repo.ShowSingleModel) m.Get("/show_model_info_api", repo.ShowSingleModel)
m.Get("/show_model_api", repo.ShowModelPageInfo) m.Get("/show_model_api", repo.ShowModelPageInfo)
m.Get("/show_model_child_api", repo.ShowOneVersionOtherModel) m.Get("/show_model_child_api", repo.ShowOneVersionOtherModel)


+ 1
- 1
templates/repo/cloudbrain/benchmark/index.tmpl View File

@@ -67,7 +67,7 @@
<div class="dataset list"> <div class="dataset list">


<!-- 表头 --> <!-- 表头 -->
<div class="ui grid stackable" style="background: #f0f0f0;;">
<div class="ui grid stackable" style="background: #f0f0f0;">
<div class="row"> <div class="row">
<div class="three wide column padding0"> <div class="three wide column padding0">
<span style="margin:0 6px">{{$.i18n.Tr "repo.cloudbrain_task"}}</span> <span style="margin:0 6px">{{$.i18n.Tr "repo.cloudbrain_task"}}</span>


+ 42
- 10
templates/repo/modelmanage/convertIndex.tmpl View File

@@ -67,6 +67,32 @@
</div> </div>
</div> </div>
</div> </div>
{{range .Tasks}}
<div class="ui grid stackable item">
<div class="row">
<div class="three wide column padding0">
<a class="title" href="{{$.Link}}/modelmanage/show_model_convert_info?id={{.ID}}" title="{{.Name}}" style="font-size: 14px;">
<span class="fitted" style="width: 90%;vertical-align: middle;">{{.Name}}</span>
</a>
</div>
</div>
</div>
{{end}}

<div id="app" style="margin-top: 2rem;">
<div class="center">
<el-pagination
background
@current-change="handleCurrentChange"
:current-page="page"
:page-sizes="[10]"
:page-size="10"
layout="total, sizes, prev, pager, next, jumper"
:total="{{.Page.Paginater.Total}}">
</el-pagination>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
@@ -198,16 +224,22 @@
var modelData; var modelData;


$('#submitId').click(function(){ $('#submitId').click(function(){
let name = $('#model_convert_name').val()
let desc = $('#Description').val()
let modelId = $('#ModelVersion').val()
let SrcEngine = $('#SrcEngine').val();
let inputshape = $('#inputshape').val();
let inputdataformat = $('#inputdataformat').val();
let DestFormat = $('#DestFormat').val();
let NetOutputFormat = $('#NetOutputFormat').val();
console.log("name=" + name + " desc=" + desc + " modelId=" + modelId + " SrcEngine=" + SrcEngine);
console.log("inputshape=" + inputshape + " inputdataformat=" + inputdataformat + " DestFormat=" + DestFormat + " NetOutputFormat=" + NetOutputFormat);
let data={};
data['name']= $('#model_convert_name').val()
data['desc']= $('#Description').val()
data['modelId'] = $('#ModelVersion').val()
data['SrcEngine'] = $('#SrcEngine').val();
data['inputshape']= $('#inputshape').val();
data['inputdataformat']= $('#inputdataformat').val();
data['DestFormat'] = $('#DestFormat').val();
data['NetOutputFormat']= $('#NetOutputFormat').val();
console.log("name=" + data['name'] + " desc=" + data['desc'] + " modelId=" + data['modelId'] + " SrcEngine=" + data['SrcEngine']);
console.log("inputshape=" + data['inputshape'] + " inputdataformat=" + data['inputdataformat'] + " DestFormat=" + data['DestFormat'] + " NetOutputFormat=" + data['NetOutputFormat']);
$('.ui.modal.second').modal('hide');
$.post(`${repolink}/modelmanage/create_model_convert?repoId=${repoId}`,data,(result) => {
console.log("result=" + result);
})
}) })


function createModelName(){ function createModelName(){


Loading…
Cancel
Save