api/api_fs_model.go (143 lines of code) (raw):
package api
import (
"context"
"strconv"
paifeaturestore "github.com/alibabacloud-go/paifeaturestore-20230621/v4/client"
"github.com/aliyun/aliyun-pai-featurestore-go-sdk/v2/constants"
"github.com/antihax/optional"
)
// Linger please
var (
_ context.Context
)
type FsModelApiService service
/*
FsModelApiService Get Model By ID
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param modelId
@return InlineResponse20086
*/
func (a *FsModelApiService) GetModelByID(modelId string) (GetModelResponse, error) {
var (
localVarReturnValue GetModelResponse
)
response, err := a.client.GetModelFeature(&a.client.instanceId, &modelId)
if err != nil {
return localVarReturnValue, err
}
mid, _ := strconv.Atoi(modelId)
model := Model{
ModelId: mid,
ProjectName: *response.Body.ProjectName,
Name: *response.Body.Name,
}
if id, err := strconv.Atoi(*response.Body.ProjectId); err == nil {
model.ProjectId = id
}
if response.Body.LabelPriorityLevel != nil {
model.LabelPriorityLevel = int(*response.Body.LabelPriorityLevel)
}
var features []*ModelFeatures
for _, featureItem := range response.Body.Features {
feature := ModelFeatures{
FeatureViewName: *featureItem.FeatureViewName,
Name: *featureItem.Name,
}
if featureItem.AliasName != nil && *featureItem.AliasName != "" && *featureItem.AliasName != feature.Name {
feature.AliasName = *featureItem.AliasName
}
if id, err := strconv.Atoi(*featureItem.FeatureViewId); err == nil {
feature.FeatureViewId = id
}
switch *featureItem.Type {
case "INT32":
feature.Type = int32(constants.FS_INT32)
case "INT64":
feature.Type = int32(constants.FS_INT64)
case "FLOAT":
feature.Type = int32(constants.FS_FLOAT)
case "DOUBLE":
feature.Type = int32(constants.FS_DOUBLE)
case "BOOLEAN":
feature.Type = int32(constants.FS_BOOLEAN)
case "TIMESTAMP":
feature.Type = int32(constants.FS_TIMESTAMP)
case "ARRAY<INT32>":
feature.Type = int32(constants.FS_ARRAY_INT32)
case "ARRAY<INT64>":
feature.Type = int32(constants.FS_ARRAY_INT64)
case "ARRAY<FLOAT>":
feature.Type = int32(constants.FS_ARRAY_FLOAT)
case "ARRAY<DOUBLE>":
feature.Type = int32(constants.FS_ARRAY_DOUBLE)
case "ARRAY<STRING>":
feature.Type = int32(constants.FS_ARRAY_STRING)
case "ARRAY<ARRAY<FLOAT>>":
feature.Type = int32(constants.FS_ARRAY_ARRAY_FLOAT)
case "MAP<INT32,INT32>":
feature.Type = int32(constants.FS_MAP_INT32_INT32)
case "MAP<INT32,INT64>":
feature.Type = int32(constants.FS_MAP_INT32_INT64)
case "MAP<INT32,FLOAT>":
feature.Type = int32(constants.FS_MAP_INT32_FLOAT)
case "MAP<INT32,DOUBLE>":
feature.Type = int32(constants.FS_MAP_INT32_DOUBLE)
case "MAP<INT32,STRING>":
feature.Type = int32(constants.FS_MAP_INT32_STRING)
case "MAP<INT64,INT32>":
feature.Type = int32(constants.FS_MAP_INT64_INT32)
case "MAP<INT64,INT64>":
feature.Type = int32(constants.FS_MAP_INT64_INT64)
case "MAP<INT64,FLOAT>":
feature.Type = int32(constants.FS_MAP_INT64_FLOAT)
case "MAP<INT64,DOUBLE>":
feature.Type = int32(constants.FS_MAP_INT64_DOUBLE)
case "MAP<INT64,STRING>":
feature.Type = int32(constants.FS_MAP_INT64_STRING)
case "MAP<STRING,INT32>":
feature.Type = int32(constants.FS_MAP_STRING_INT32)
case "MAP<STRING,INT64>":
feature.Type = int32(constants.FS_MAP_STRING_INT64)
case "MAP<STRING,FLOAT>":
feature.Type = int32(constants.FS_MAP_STRING_FLOAT)
case "MAP<STRING,DOUBLE>":
feature.Type = int32(constants.FS_MAP_STRING_DOUBLE)
case "MAP<STRING,STRING>":
feature.Type = int32(constants.FS_MAP_STRING_STRING)
default:
feature.Type = int32(constants.FS_STRING)
}
features = append(features, &feature)
}
model.Features = features
localVarReturnValue.Model = &model
return localVarReturnValue, nil
}
/*
FsModelApiService List Models
* @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
* @param optional nil or *FsModelApiListModelsOpts - Optional Parameters:
* @param "Pagesize" (optional.Int32) -
* @param "Pagenumber" (optional.Int32) -
* @param "ProjectId" (optional.Int32) -
@return InlineResponse20085
*/
type FsModelApiListModelsOpts struct {
Pagesize optional.Int32
Pagenumber optional.Int32
ProjectId optional.Int32
}
func (a *FsModelApiService) ListModels(pagesize, pagenumber int, projectId string) (ListModelsResponse, error) {
var (
localVarReturnValue ListModelsResponse
)
request := paifeaturestore.ListModelFeaturesRequest{}
request.SetPageSize(int32(pagesize))
request.SetPageNumber(int32(pagenumber))
request.SetProjectId(projectId)
response, err := a.client.ListModelFeatures(&a.client.instanceId, &request)
if err != nil {
return localVarReturnValue, err
}
localVarReturnValue.TotalCount = int(*response.Body.TotalCount)
var models []*Model
for _, modelFeature := range response.Body.ModelFeatures {
if id, err := strconv.Atoi(*modelFeature.ModelFeatureId); err == nil {
model := Model{
ModelId: id,
Name: *modelFeature.Name,
ProjectName: *modelFeature.ProjectName,
}
if id, err := strconv.Atoi(*modelFeature.ProjectId); err == nil {
model.ProjectId = id
}
models = append(models, &model)
}
}
localVarReturnValue.Models = models
return localVarReturnValue, nil
}