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"` //是否多选 }