package vo
|
|
import (
|
"strings"
|
"time"
|
"vamicro/appcenter-service/models"
|
)
|
|
type SdkVo struct {
|
models.Sdk
|
Args []models.SdkArg `json:"args"` //算法参数
|
}
|
|
type SdkRegisterVo struct {
|
Id string `json:"id"`
|
SdkType string `json:"sdk_type"`//人脸检测:FaceDetect,人脸提取:FaceExtract,人脸比对:FaceCompare,行为:Yolo
|
SdkName string `json:"sdk_name"` //算法名称
|
Args []SdkRegisterArgVo `json:"args"` //算法参数
|
Icon string `json:"icon"` //算法图标
|
Url string `json:"url"` //算法下载地址
|
IconBlob string `json:"iconBlob"` //图片
|
IconBlob2 string `json:"iconBlob2"` //第二套图片
|
Version string `json:"version"` //版本号
|
EnTrack bool `json:"enTrack"`
|
ArgDef string `json:"argDef"`
|
RuleSo string `json:"rule_so"`
|
BaseVersion string `json:"baseVersion"`
|
}
|
|
type SdkRegisterArgVo struct {
|
Scope string `json:"scope"`
|
models.SdkArg
|
|
Dics []SdkArgDic `json:"dics"` //如果此算法参数是被选项,需要将参数枚举值写入到字典表中
|
}
|
|
type SdkArgDic struct {
|
Value string `json:"value"`
|
Name string `json:"name"`
|
Sort int `json:"sort"`
|
}
|
|
func (sra *SdkRegisterArgVo) Copy2SdkArg() models.SdkArg {
|
return sra.SdkArg
|
}
|
|
func (sv *SdkRegisterVo)Copy2Sdk() models.Sdk {
|
argDef := strings.Replace(sv.ArgDef, "\\u003c", "<", -1)
|
argDef = strings.Replace(argDef, "\\u003e", ">", -1)
|
argDef = strings.Replace(argDef, "\\u0026", "&", -1)
|
return models.Sdk{
|
Id :sv.Id,
|
IpcId :"",
|
SdkType :sv.SdkType,
|
SdkName :sv.SdkName,
|
Icon :sv.Icon,
|
Url :sv.Url,
|
CreateTime :time.Now().Format("2006-01-02 15:04:05"),
|
CreateBy :"basic",
|
UpdateTime :time.Now().Format("2006-01-02 15:04:05"),
|
Enable :true,
|
DelFlag :0,
|
IconBlob: sv.IconBlob,
|
IconBlob2: sv.IconBlob2,
|
Version: sv.Version,
|
EnTrack: sv.EnTrack,
|
ArgDef: argDef,
|
RuleSo: sv.RuleSo,
|
BaseVersion: sv.BaseVersion,
|
}
|
}
|
|
type SdkArgDefault struct {
|
SdkId string `json:"sdkId" binding:"required"`
|
DefArgs []ArgDefault `json:"defArgs" binding:"required"`
|
}
|
|
type ArgDefault struct {
|
ArgType string `json:"arg_type" example:"标签:label,目标:target"`
|
Alias string `json:"alias" example:"参数别名,例如:confidence"`
|
Name string `json:"name" example:"参数名,例如:置信度"`
|
Type string `json:"type" example:"类型,值:value,选项:option"`
|
Operators []OperatorKV `json:"operators"`
|
DefaultValue string `json:"default_value" example:"默认值"`
|
Unit string `json:"unit" example:"单位"`
|
Range string `json:"range" example:"取值范围,例如:[1,100]"`
|
Sort int `json:"sort"`
|
|
Config ArgConfig `json:"config"`
|
}
|
|
type OperatorKV struct {
|
Operator string `json:"operator"`
|
Name string `json:"name"`
|
}
|
|
type ArgConfig struct {
|
IsShow bool `json:"isShow"` //是否可见
|
IsConfigurable bool `json:"isConfigurable"` //是否可配
|
IsOptional bool `json:"isOptional"` //是否可选
|
IsMulti bool `json:"isMulti"` //是否多选
|
}
|