From 74eeba4bbc575ac89a9db28d35b1c0bf22626061 Mon Sep 17 00:00:00 2001 From: "zhuangjiaqi.777" Date: Mon, 9 Feb 2026 22:11:31 +0800 Subject: [PATCH 01/17] feat: filter with evalset item --- .../coze/loop/data/domain/filter.thrift | 78 +++++++++++++++++++ .../coze.loop.evaluation.eval_set.thrift | 2 + 2 files changed, 80 insertions(+) create mode 100644 idl/thrift/coze/loop/data/domain/filter.thrift diff --git a/idl/thrift/coze/loop/data/domain/filter.thrift b/idl/thrift/coze/loop/data/domain/filter.thrift new file mode 100644 index 000000000..d283e57d5 --- /dev/null +++ b/idl/thrift/coze/loop/data/domain/filter.thrift @@ -0,0 +1,78 @@ +namespace go stone.fornax.ml_flow.domain.filter + +typedef string QueryType +const QueryType query_type_match = "match" +const QueryType query_type_not_match = "not_match" +const QueryType query_type_eq = "eq" +const QueryType query_type_not_eq = "not_eq" +const QueryType query_type_lte= "lte" +const QueryType query_type_gte = "gte" +const QueryType query_type_lt = "lt" +const QueryType query_type_gt = "gt" +const QueryType query_type_exist = "exist" +const QueryType query_type_not_exist = "not_exist" +const QueryType query_type_in = "in" +const QueryType query_type_not_in = "not_in" +const QueryType query_type_is_null = "is_null" +const QueryType query_type_not_null = "not_null" + +typedef string QueryRelation +const QueryRelation query_relation_and = "and" +const QueryRelation query_relation_or = "or" + +typedef string FieldType +const FieldType field_type_string = "string" +const FieldType field_type_long = "long" +const FieldType field_type_double = "double" +const FieldType field_type_bool = "bool" +const FieldType field_type_float = "float" +const FieldType field_type_tag = "tag" +const FieldType field_type_integer = "integer" + + + + +struct FilterField { + 1: required string field_name, + 2: required FieldType field_type, + 3: optional list values, + 4: optional QueryType query_type, + 5: optional QueryRelation query_and_or, + 6: optional Filter sub_filter +} + +struct Filter { + 1: optional QueryRelation query_and_or, + 2: required list filter_fields +} + +struct FieldOptions { + 1: optional list i32_field_option (agw.key = "i32") + 2: optional list i64_field_option (agw.js_conv = "str" agw.key = "i64") + 3: optional list f64_field_option (agw.key = "f64") + 4: optional list string_field_option (agw.key = "string") + 5: optional list obj_field_option (agw.key = "obj") +} + +struct ObjectFieldOption { + 1: required i64 id + 2: required string display_name +} + +struct FieldMeta { + // 字段类型 + 1: required FieldType field_type + // 当前字段支持的操作类型 + 2: required list query_types + 3: required string display_name + // 支持的可选项 + 4: optional FieldOptions field_options + + 5: optional bool exist // 当前字段在schema中是否存在 +} + +struct FieldMetaInfoData { + // 字段元信息 + 1: required map field_metas +} + diff --git a/idl/thrift/coze/loop/evaluation/coze.loop.evaluation.eval_set.thrift b/idl/thrift/coze/loop/evaluation/coze.loop.evaluation.eval_set.thrift index 64ba18719..9b298271c 100644 --- a/idl/thrift/coze/loop/evaluation/coze.loop.evaluation.eval_set.thrift +++ b/idl/thrift/coze/loop/evaluation/coze.loop.evaluation.eval_set.thrift @@ -5,6 +5,7 @@ include "domain/eval_set.thrift" include "domain/common.thrift" include "../data/domain/dataset.thrift" include "../data/domain/dataset_job.thrift" +include "../data/domain/filter.thrift" struct CreateEvaluationSetRequest { 1: required i64 workspace_id (api.js_conv="true", go.tag='json:"workspace_id"'), @@ -293,6 +294,7 @@ struct ListEvaluationSetItemsRequest { 103: optional list order_bys, 200: optional list item_id_not_in (api.js_conv="true", go.tag='json:"item_id_not_in"') + 201: optional filter.Filter filter // item 过滤条件 255: optional base.Base Base } From 6b8c31534a37114d3195679dba9be3692fe5ceac Mon Sep 17 00:00:00 2001 From: "zhuangjiaqi.777" Date: Mon, 9 Feb 2026 22:32:16 +0800 Subject: [PATCH 02/17] feat: order by --- .../coze/loop/evaluation/coze.loop.evaluation.eval_set.thrift | 2 +- idl/thrift/coze/loop/evaluation/domain/common.thrift | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/idl/thrift/coze/loop/evaluation/coze.loop.evaluation.eval_set.thrift b/idl/thrift/coze/loop/evaluation/coze.loop.evaluation.eval_set.thrift index 9b298271c..36158a526 100644 --- a/idl/thrift/coze/loop/evaluation/coze.loop.evaluation.eval_set.thrift +++ b/idl/thrift/coze/loop/evaluation/coze.loop.evaluation.eval_set.thrift @@ -291,7 +291,7 @@ struct ListEvaluationSetItemsRequest { 100: optional i32 page_number, 101: optional i32 page_size, // 分页大小 (0, 200],默认为 20 102: optional string page_token - 103: optional list order_bys, + 103: optional list order_bys, // 排列顺序,默认按照 updated_at 顺序排列,目前仅支持按照一个字段排序,该字段必须是 field key 或 item 元信息中的 created_at 或 updated_at 200: optional list item_id_not_in (api.js_conv="true", go.tag='json:"item_id_not_in"') 201: optional filter.Filter filter // item 过滤条件 diff --git a/idl/thrift/coze/loop/evaluation/domain/common.thrift b/idl/thrift/coze/loop/evaluation/domain/common.thrift index 4ed4dbe11..666e5affd 100644 --- a/idl/thrift/coze/loop/evaluation/domain/common.thrift +++ b/idl/thrift/coze/loop/evaluation/domain/common.thrift @@ -61,6 +61,8 @@ struct Image { struct OrderBy { 1: optional string field, 2: optional bool is_asc, + + 100: optional bool is_field_key, // 用于区分当前字段是否是 field key,仅在评测集场景下生效 } enum Role { From cb976fccd46ba7731174c99b63aea5c81d83a5b6 Mon Sep 17 00:00:00 2001 From: "zhuangjiaqi.777" Date: Mon, 9 Feb 2026 22:45:59 +0800 Subject: [PATCH 03/17] chore: kitex gen --- .../api/handler/coze/loop/apis/wire_gen.go | 1 + .../loop/evaluation/domain/common/common.go | 82 ++++++++++++++++++- .../loop/evaluation/domain/common/k-common.go | 53 ++++++++++++ .../eval_set/coze.loop.evaluation.eval_set.go | 78 +++++++++++++++++- ...coze.loop.evaluation.eval_set_validator.go | 5 ++ .../k-coze.loop.evaluation.eval_set.go | 57 +++++++++++++ 6 files changed, 271 insertions(+), 5 deletions(-) diff --git a/backend/api/handler/coze/loop/apis/wire_gen.go b/backend/api/handler/coze/loop/apis/wire_gen.go index b0ce0120b..a7dcb28b3 100644 --- a/backend/api/handler/coze/loop/apis/wire_gen.go +++ b/backend/api/handler/coze/loop/apis/wire_gen.go @@ -8,6 +8,7 @@ package apis import ( "context" + "github.com/cloudwego/kitex/pkg/endpoint" "github.com/coze-dev/coze-loop/backend/infra/ck" "github.com/coze-dev/coze-loop/backend/infra/db" diff --git a/backend/kitex_gen/coze/loop/evaluation/domain/common/common.go b/backend/kitex_gen/coze/loop/evaluation/domain/common/common.go index e28bfc994..6be78690d 100644 --- a/backend/kitex_gen/coze/loop/evaluation/domain/common/common.go +++ b/backend/kitex_gen/coze/loop/evaluation/domain/common/common.go @@ -2666,6 +2666,8 @@ func (p *Image) Field10DeepEqual(src *dataset.StorageProvider) bool { type OrderBy struct { Field *string `thrift:"field,1,optional" frugal:"1,optional,string" form:"field" json:"field,omitempty" query:"field"` IsAsc *bool `thrift:"is_asc,2,optional" frugal:"2,optional,bool" form:"is_asc" json:"is_asc,omitempty" query:"is_asc"` + // 用于区分当前字段是否是 field key,仅在评测集场景下生效 + IsFieldKey *bool `thrift:"is_field_key,100,optional" frugal:"100,optional,bool" form:"is_field_key" json:"is_field_key,omitempty" query:"is_field_key"` } func NewOrderBy() *OrderBy { @@ -2698,16 +2700,32 @@ func (p *OrderBy) GetIsAsc() (v bool) { } return *p.IsAsc } + +var OrderBy_IsFieldKey_DEFAULT bool + +func (p *OrderBy) GetIsFieldKey() (v bool) { + if p == nil { + return + } + if !p.IsSetIsFieldKey() { + return OrderBy_IsFieldKey_DEFAULT + } + return *p.IsFieldKey +} func (p *OrderBy) SetField(val *string) { p.Field = val } func (p *OrderBy) SetIsAsc(val *bool) { p.IsAsc = val } +func (p *OrderBy) SetIsFieldKey(val *bool) { + p.IsFieldKey = val +} var fieldIDToName_OrderBy = map[int16]string{ - 1: "field", - 2: "is_asc", + 1: "field", + 2: "is_asc", + 100: "is_field_key", } func (p *OrderBy) IsSetField() bool { @@ -2718,6 +2736,10 @@ func (p *OrderBy) IsSetIsAsc() bool { return p.IsAsc != nil } +func (p *OrderBy) IsSetIsFieldKey() bool { + return p.IsFieldKey != nil +} + func (p *OrderBy) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -2752,6 +2774,14 @@ func (p *OrderBy) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 100: + if fieldTypeId == thrift.BOOL { + if err = p.ReadField100(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } default: if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError @@ -2803,6 +2833,17 @@ func (p *OrderBy) ReadField2(iprot thrift.TProtocol) error { p.IsAsc = _field return nil } +func (p *OrderBy) ReadField100(iprot thrift.TProtocol) error { + + var _field *bool + if v, err := iprot.ReadBool(); err != nil { + return err + } else { + _field = &v + } + p.IsFieldKey = _field + return nil +} func (p *OrderBy) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 @@ -2818,6 +2859,10 @@ func (p *OrderBy) Write(oprot thrift.TProtocol) (err error) { fieldId = 2 goto WriteFieldError } + if err = p.writeField100(oprot); err != nil { + fieldId = 100 + goto WriteFieldError + } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -2872,6 +2917,24 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } +func (p *OrderBy) writeField100(oprot thrift.TProtocol) (err error) { + if p.IsSetIsFieldKey() { + if err = oprot.WriteFieldBegin("is_field_key", thrift.BOOL, 100); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteBool(*p.IsFieldKey); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 100 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 100 end error: ", p), err) +} func (p *OrderBy) String() string { if p == nil { @@ -2893,6 +2956,9 @@ func (p *OrderBy) DeepEqual(ano *OrderBy) bool { if !p.Field2DeepEqual(ano.IsAsc) { return false } + if !p.Field100DeepEqual(ano.IsFieldKey) { + return false + } return true } @@ -2920,6 +2986,18 @@ func (p *OrderBy) Field2DeepEqual(src *bool) bool { } return true } +func (p *OrderBy) Field100DeepEqual(src *bool) bool { + + if p.IsFieldKey == src { + return true + } else if p.IsFieldKey == nil || src == nil { + return false + } + if *p.IsFieldKey != *src { + return false + } + return true +} type Message struct { Role *Role `thrift:"role,1,optional" frugal:"1,optional,Role" mapstructure:"role" form:"role" json:"role,omitempty" query:"role"` diff --git a/backend/kitex_gen/coze/loop/evaluation/domain/common/k-common.go b/backend/kitex_gen/coze/loop/evaluation/domain/common/k-common.go index 5c101a144..ad7738a15 100644 --- a/backend/kitex_gen/coze/loop/evaluation/domain/common/k-common.go +++ b/backend/kitex_gen/coze/loop/evaluation/domain/common/k-common.go @@ -1891,6 +1891,20 @@ func (p *OrderBy) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 100: + if fieldTypeId == thrift.BOOL { + l, err = p.FastReadField100(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } default: l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -1937,6 +1951,20 @@ func (p *OrderBy) FastReadField2(buf []byte) (int, error) { return offset, nil } +func (p *OrderBy) FastReadField100(buf []byte) (int, error) { + offset := 0 + + var _field *bool + if v, l, err := thrift.Binary.ReadBool(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.IsFieldKey = _field + return offset, nil +} + func (p *OrderBy) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } @@ -1945,6 +1973,7 @@ func (p *OrderBy) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField100(buf[offset:], w) offset += p.fastWriteField1(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) @@ -1956,6 +1985,7 @@ func (p *OrderBy) BLength() int { if p != nil { l += p.field1Length() l += p.field2Length() + l += p.field100Length() } l += thrift.Binary.FieldStopLength() return l @@ -1979,6 +2009,15 @@ func (p *OrderBy) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { return offset } +func (p *OrderBy) fastWriteField100(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetIsFieldKey() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.BOOL, 100) + offset += thrift.Binary.WriteBool(buf[offset:], *p.IsFieldKey) + } + return offset +} + func (p *OrderBy) field1Length() int { l := 0 if p.IsSetField() { @@ -1997,6 +2036,15 @@ func (p *OrderBy) field2Length() int { return l } +func (p *OrderBy) field100Length() int { + l := 0 + if p.IsSetIsFieldKey() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.BoolLength() + } + return l +} + func (p *OrderBy) DeepCopy(s interface{}) error { src, ok := s.(*OrderBy) if !ok { @@ -2016,6 +2064,11 @@ func (p *OrderBy) DeepCopy(s interface{}) error { p.IsAsc = &tmp } + if src.IsFieldKey != nil { + tmp := *src.IsFieldKey + p.IsFieldKey = &tmp + } + return nil } diff --git a/backend/kitex_gen/coze/loop/evaluation/eval_set/coze.loop.evaluation.eval_set.go b/backend/kitex_gen/coze/loop/evaluation/eval_set/coze.loop.evaluation.eval_set.go index f6c93a187..7c0446367 100644 --- a/backend/kitex_gen/coze/loop/evaluation/eval_set/coze.loop.evaluation.eval_set.go +++ b/backend/kitex_gen/coze/loop/evaluation/eval_set/coze.loop.evaluation.eval_set.go @@ -11,6 +11,7 @@ import ( "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/data/domain/dataset_job" "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/evaluation/domain/common" "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/evaluation/domain/eval_set" + "github.com/coze-dev/coze-loop/backend/kitex_gen/stone/fornax/ml_flow/domain/filter" "strings" ) @@ -13082,11 +13083,14 @@ type ListEvaluationSetItemsRequest struct { VersionID *int64 `thrift:"version_id,3,optional" frugal:"3,optional,i64" json:"version_id" form:"version_id" query:"version_id"` PageNumber *int32 `thrift:"page_number,100,optional" frugal:"100,optional,i32" form:"page_number" json:"page_number,omitempty" query:"page_number"` // 分页大小 (0, 200],默认为 20 - PageSize *int32 `thrift:"page_size,101,optional" frugal:"101,optional,i32" form:"page_size" json:"page_size,omitempty" query:"page_size"` - PageToken *string `thrift:"page_token,102,optional" frugal:"102,optional,string" form:"page_token" json:"page_token,omitempty" query:"page_token"` + PageSize *int32 `thrift:"page_size,101,optional" frugal:"101,optional,i32" form:"page_size" json:"page_size,omitempty" query:"page_size"` + PageToken *string `thrift:"page_token,102,optional" frugal:"102,optional,string" form:"page_token" json:"page_token,omitempty" query:"page_token"` + // 排列顺序,默认按照 updated_at 顺序排列,目前仅支持按照一个字段排序,该字段必须是 field key 或 item 元信息中的 created_at 或 updated_at OrderBys []*common.OrderBy `thrift:"order_bys,103,optional" frugal:"103,optional,list" form:"order_bys" json:"order_bys,omitempty" query:"order_bys"` ItemIDNotIn []int64 `thrift:"item_id_not_in,200,optional" frugal:"200,optional,list" json:"item_id_not_in" form:"item_id_not_in" query:"item_id_not_in"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` + // item 过滤条件 + Filter *filter.Filter `thrift:"filter,201,optional" frugal:"201,optional,filter.Filter" form:"filter" json:"filter,omitempty" query:"filter"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } func NewListEvaluationSetItemsRequest() *ListEvaluationSetItemsRequest { @@ -13182,6 +13186,18 @@ func (p *ListEvaluationSetItemsRequest) GetItemIDNotIn() (v []int64) { return p.ItemIDNotIn } +var ListEvaluationSetItemsRequest_Filter_DEFAULT *filter.Filter + +func (p *ListEvaluationSetItemsRequest) GetFilter() (v *filter.Filter) { + if p == nil { + return + } + if !p.IsSetFilter() { + return ListEvaluationSetItemsRequest_Filter_DEFAULT + } + return p.Filter +} + var ListEvaluationSetItemsRequest_Base_DEFAULT *base.Base func (p *ListEvaluationSetItemsRequest) GetBase() (v *base.Base) { @@ -13217,6 +13233,9 @@ func (p *ListEvaluationSetItemsRequest) SetOrderBys(val []*common.OrderBy) { func (p *ListEvaluationSetItemsRequest) SetItemIDNotIn(val []int64) { p.ItemIDNotIn = val } +func (p *ListEvaluationSetItemsRequest) SetFilter(val *filter.Filter) { + p.Filter = val +} func (p *ListEvaluationSetItemsRequest) SetBase(val *base.Base) { p.Base = val } @@ -13230,6 +13249,7 @@ var fieldIDToName_ListEvaluationSetItemsRequest = map[int16]string{ 102: "page_token", 103: "order_bys", 200: "item_id_not_in", + 201: "filter", 255: "Base", } @@ -13257,6 +13277,10 @@ func (p *ListEvaluationSetItemsRequest) IsSetItemIDNotIn() bool { return p.ItemIDNotIn != nil } +func (p *ListEvaluationSetItemsRequest) IsSetFilter() bool { + return p.Filter != nil +} + func (p *ListEvaluationSetItemsRequest) IsSetBase() bool { return p.Base != nil } @@ -13347,6 +13371,14 @@ func (p *ListEvaluationSetItemsRequest) Read(iprot thrift.TProtocol) (err error) } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 201: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField201(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } case 255: if fieldTypeId == thrift.STRUCT { if err = p.ReadField255(iprot); err != nil { @@ -13507,6 +13539,14 @@ func (p *ListEvaluationSetItemsRequest) ReadField200(iprot thrift.TProtocol) err p.ItemIDNotIn = _field return nil } +func (p *ListEvaluationSetItemsRequest) ReadField201(iprot thrift.TProtocol) error { + _field := filter.NewFilter() + if err := _field.Read(iprot); err != nil { + return err + } + p.Filter = _field + return nil +} func (p *ListEvaluationSetItemsRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { @@ -13554,6 +13594,10 @@ func (p *ListEvaluationSetItemsRequest) Write(oprot thrift.TProtocol) (err error fieldId = 200 goto WriteFieldError } + if err = p.writeField201(oprot); err != nil { + fieldId = 201 + goto WriteFieldError + } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -13732,6 +13776,24 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 200 end error: ", p), err) } +func (p *ListEvaluationSetItemsRequest) writeField201(oprot thrift.TProtocol) (err error) { + if p.IsSetFilter() { + if err = oprot.WriteFieldBegin("filter", thrift.STRUCT, 201); err != nil { + goto WriteFieldBeginError + } + if err := p.Filter.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 201 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 201 end error: ", p), err) +} func (p *ListEvaluationSetItemsRequest) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { @@ -13789,6 +13851,9 @@ func (p *ListEvaluationSetItemsRequest) DeepEqual(ano *ListEvaluationSetItemsReq if !p.Field200DeepEqual(ano.ItemIDNotIn) { return false } + if !p.Field201DeepEqual(ano.Filter) { + return false + } if !p.Field255DeepEqual(ano.Base) { return false } @@ -13883,6 +13948,13 @@ func (p *ListEvaluationSetItemsRequest) Field200DeepEqual(src []int64) bool { } return true } +func (p *ListEvaluationSetItemsRequest) Field201DeepEqual(src *filter.Filter) bool { + + if !p.Filter.DeepEqual(src) { + return false + } + return true +} func (p *ListEvaluationSetItemsRequest) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { diff --git a/backend/kitex_gen/coze/loop/evaluation/eval_set/coze.loop.evaluation.eval_set_validator.go b/backend/kitex_gen/coze/loop/evaluation/eval_set/coze.loop.evaluation.eval_set_validator.go index 349402bd9..8026de6b8 100644 --- a/backend/kitex_gen/coze/loop/evaluation/eval_set/coze.loop.evaluation.eval_set_validator.go +++ b/backend/kitex_gen/coze/loop/evaluation/eval_set/coze.loop.evaluation.eval_set_validator.go @@ -458,6 +458,11 @@ func (p *BatchDeleteEvaluationSetItemsResponse) IsValid() error { return nil } func (p *ListEvaluationSetItemsRequest) IsValid() error { + if p.Filter != nil { + if err := p.Filter.IsValid(); err != nil { + return fmt.Errorf("field Filter not valid, %w", err) + } + } if p.Base != nil { if err := p.Base.IsValid(); err != nil { return fmt.Errorf("field Base not valid, %w", err) diff --git a/backend/kitex_gen/coze/loop/evaluation/eval_set/k-coze.loop.evaluation.eval_set.go b/backend/kitex_gen/coze/loop/evaluation/eval_set/k-coze.loop.evaluation.eval_set.go index d9c024743..c32bc57e0 100644 --- a/backend/kitex_gen/coze/loop/evaluation/eval_set/k-coze.loop.evaluation.eval_set.go +++ b/backend/kitex_gen/coze/loop/evaluation/eval_set/k-coze.loop.evaluation.eval_set.go @@ -16,6 +16,7 @@ import ( "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/data/domain/dataset_job" "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/evaluation/domain/common" "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/evaluation/domain/eval_set" + "github.com/coze-dev/coze-loop/backend/kitex_gen/stone/fornax/ml_flow/domain/filter" ) var ( @@ -24,6 +25,7 @@ var ( _ = dataset_job.KitexUnusedProtection _ = common.KitexUnusedProtection _ = eval_set.KitexUnusedProtection + _ = filter.KitexUnusedProtection ) // unused protection @@ -9708,6 +9710,20 @@ func (p *ListEvaluationSetItemsRequest) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 201: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField201(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } case 255: if fieldTypeId == thrift.STRUCT { l, err = p.FastReadField255(buf[offset:]) @@ -9884,6 +9900,18 @@ func (p *ListEvaluationSetItemsRequest) FastReadField200(buf []byte) (int, error return offset, nil } +func (p *ListEvaluationSetItemsRequest) FastReadField201(buf []byte) (int, error) { + offset := 0 + _field := filter.NewFilter() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Filter = _field + return offset, nil +} + func (p *ListEvaluationSetItemsRequest) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBase() @@ -9911,6 +9939,7 @@ func (p *ListEvaluationSetItemsRequest) FastWriteNocopy(buf []byte, w thrift.Noc offset += p.fastWriteField102(buf[offset:], w) offset += p.fastWriteField103(buf[offset:], w) offset += p.fastWriteField200(buf[offset:], w) + offset += p.fastWriteField201(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) @@ -9928,6 +9957,7 @@ func (p *ListEvaluationSetItemsRequest) BLength() int { l += p.field102Length() l += p.field103Length() l += p.field200Length() + l += p.field201Length() l += p.field255Length() } l += thrift.Binary.FieldStopLength() @@ -10016,6 +10046,15 @@ func (p *ListEvaluationSetItemsRequest) fastWriteField200(buf []byte, w thrift.N return offset } +func (p *ListEvaluationSetItemsRequest) fastWriteField201(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetFilter() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 201) + offset += p.Filter.FastWriteNocopy(buf[offset:], w) + } + return offset +} + func (p *ListEvaluationSetItemsRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetBase() { @@ -10099,6 +10138,15 @@ func (p *ListEvaluationSetItemsRequest) field200Length() int { return l } +func (p *ListEvaluationSetItemsRequest) field201Length() int { + l := 0 + if p.IsSetFilter() { + l += thrift.Binary.FieldBeginLength() + l += p.Filter.BLength() + } + return l +} + func (p *ListEvaluationSetItemsRequest) field255Length() int { l := 0 if p.IsSetBase() { @@ -10165,6 +10213,15 @@ func (p *ListEvaluationSetItemsRequest) DeepCopy(s interface{}) error { } } + var _filter *filter.Filter + if src.Filter != nil { + _filter = &filter.Filter{} + if err := _filter.DeepCopy(src.Filter); err != nil { + return err + } + } + p.Filter = _filter + var _base *base.Base if src.Base != nil { _base = &base.Base{} From 2ce1d7efec4ea3345c44e0a596fa8b4486068651 Mon Sep 17 00:00:00 2001 From: "zhuangjiaqi.777" Date: Mon, 9 Feb 2026 22:46:58 +0800 Subject: [PATCH 04/17] chore: kitex gen --- .../fornax/ml_flow/domain/filter/filter.go | 2430 +++++++++++++++++ .../ml_flow/domain/filter/filter_validator.go | 51 + .../fornax/ml_flow/domain/filter/k-consts.go | 4 + .../fornax/ml_flow/domain/filter/k-filter.go | 1803 ++++++++++++ 4 files changed, 4288 insertions(+) create mode 100644 backend/kitex_gen/stone/fornax/ml_flow/domain/filter/filter.go create mode 100644 backend/kitex_gen/stone/fornax/ml_flow/domain/filter/filter_validator.go create mode 100644 backend/kitex_gen/stone/fornax/ml_flow/domain/filter/k-consts.go create mode 100644 backend/kitex_gen/stone/fornax/ml_flow/domain/filter/k-filter.go diff --git a/backend/kitex_gen/stone/fornax/ml_flow/domain/filter/filter.go b/backend/kitex_gen/stone/fornax/ml_flow/domain/filter/filter.go new file mode 100644 index 000000000..df79d0ee6 --- /dev/null +++ b/backend/kitex_gen/stone/fornax/ml_flow/domain/filter/filter.go @@ -0,0 +1,2430 @@ +// Code generated by thriftgo (0.4.1). DO NOT EDIT. + +package filter + +import ( + "fmt" + "github.com/apache/thrift/lib/go/thrift" + "strings" +) + +const ( + QueryTypeMatch = "match" + + QueryTypeNotMatch = "not_match" + + QueryTypeEq = "eq" + + QueryTypeNotEq = "not_eq" + + QueryTypeLte = "lte" + + QueryTypeGte = "gte" + + QueryTypeLt = "lt" + + QueryTypeGt = "gt" + + QueryTypeExist = "exist" + + QueryTypeNotExist = "not_exist" + + QueryTypeIn = "in" + + QueryTypeNotIn = "not_in" + + QueryTypeIsNull = "is_null" + + QueryTypeNotNull = "not_null" + + QueryRelationAnd = "and" + + QueryRelationOr = "or" + + FieldTypeString = "string" + + FieldTypeLong = "long" + + FieldTypeDouble = "double" + + FieldTypeBool = "bool" + + FieldTypeFloat = "float" + + FieldTypeTag = "tag" + + FieldTypeInteger = "integer" +) + +type QueryType = string + +type QueryRelation = string + +type FieldType = string + +type FilterField struct { + FieldName string `thrift:"field_name,1,required" frugal:"1,required,string" form:"field_name,required" json:"field_name,required" query:"field_name,required"` + FieldType FieldType `thrift:"field_type,2,required" frugal:"2,required,string" form:"field_type,required" json:"field_type,required" query:"field_type,required"` + Values []string `thrift:"values,3,optional" frugal:"3,optional,list" form:"values" json:"values,omitempty" query:"values"` + QueryType *QueryType `thrift:"query_type,4,optional" frugal:"4,optional,string" form:"query_type" json:"query_type,omitempty" query:"query_type"` + QueryAndOr *QueryRelation `thrift:"query_and_or,5,optional" frugal:"5,optional,string" form:"query_and_or" json:"query_and_or,omitempty" query:"query_and_or"` + SubFilter *Filter `thrift:"sub_filter,6,optional" frugal:"6,optional,Filter" form:"sub_filter" json:"sub_filter,omitempty" query:"sub_filter"` +} + +func NewFilterField() *FilterField { + return &FilterField{} +} + +func (p *FilterField) InitDefault() { +} + +func (p *FilterField) GetFieldName() (v string) { + if p != nil { + return p.FieldName + } + return +} + +func (p *FilterField) GetFieldType() (v FieldType) { + if p != nil { + return p.FieldType + } + return +} + +var FilterField_Values_DEFAULT []string + +func (p *FilterField) GetValues() (v []string) { + if p == nil { + return + } + if !p.IsSetValues() { + return FilterField_Values_DEFAULT + } + return p.Values +} + +var FilterField_QueryType_DEFAULT QueryType + +func (p *FilterField) GetQueryType() (v QueryType) { + if p == nil { + return + } + if !p.IsSetQueryType() { + return FilterField_QueryType_DEFAULT + } + return *p.QueryType +} + +var FilterField_QueryAndOr_DEFAULT QueryRelation + +func (p *FilterField) GetQueryAndOr() (v QueryRelation) { + if p == nil { + return + } + if !p.IsSetQueryAndOr() { + return FilterField_QueryAndOr_DEFAULT + } + return *p.QueryAndOr +} + +var FilterField_SubFilter_DEFAULT *Filter + +func (p *FilterField) GetSubFilter() (v *Filter) { + if p == nil { + return + } + if !p.IsSetSubFilter() { + return FilterField_SubFilter_DEFAULT + } + return p.SubFilter +} +func (p *FilterField) SetFieldName(val string) { + p.FieldName = val +} +func (p *FilterField) SetFieldType(val FieldType) { + p.FieldType = val +} +func (p *FilterField) SetValues(val []string) { + p.Values = val +} +func (p *FilterField) SetQueryType(val *QueryType) { + p.QueryType = val +} +func (p *FilterField) SetQueryAndOr(val *QueryRelation) { + p.QueryAndOr = val +} +func (p *FilterField) SetSubFilter(val *Filter) { + p.SubFilter = val +} + +var fieldIDToName_FilterField = map[int16]string{ + 1: "field_name", + 2: "field_type", + 3: "values", + 4: "query_type", + 5: "query_and_or", + 6: "sub_filter", +} + +func (p *FilterField) IsSetValues() bool { + return p.Values != nil +} + +func (p *FilterField) IsSetQueryType() bool { + return p.QueryType != nil +} + +func (p *FilterField) IsSetQueryAndOr() bool { + return p.QueryAndOr != nil +} + +func (p *FilterField) IsSetSubFilter() bool { + return p.SubFilter != nil +} + +func (p *FilterField) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + var issetFieldName bool = false + var issetFieldType bool = false + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + issetFieldName = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + issetFieldType = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.LIST { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 4: + if fieldTypeId == thrift.STRING { + if err = p.ReadField4(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 5: + if fieldTypeId == thrift.STRING { + if err = p.ReadField5(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 6: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField6(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + if !issetFieldName { + fieldId = 1 + goto RequiredFieldNotSetError + } + + if !issetFieldType { + fieldId = 2 + goto RequiredFieldNotSetError + } + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_FilterField[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +RequiredFieldNotSetError: + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_FilterField[fieldId])) +} + +func (p *FilterField) ReadField1(iprot thrift.TProtocol) error { + + var _field string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = v + } + p.FieldName = _field + return nil +} +func (p *FilterField) ReadField2(iprot thrift.TProtocol) error { + + var _field FieldType + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = v + } + p.FieldType = _field + return nil +} +func (p *FilterField) ReadField3(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]string, 0, size) + for i := 0; i < size; i++ { + + var _elem string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _elem = v + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.Values = _field + return nil +} +func (p *FilterField) ReadField4(iprot thrift.TProtocol) error { + + var _field *QueryType + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.QueryType = _field + return nil +} +func (p *FilterField) ReadField5(iprot thrift.TProtocol) error { + + var _field *QueryRelation + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.QueryAndOr = _field + return nil +} +func (p *FilterField) ReadField6(iprot thrift.TProtocol) error { + _field := NewFilter() + if err := _field.Read(iprot); err != nil { + return err + } + p.SubFilter = _field + return nil +} + +func (p *FilterField) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("FilterField"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + if err = p.writeField4(oprot); err != nil { + fieldId = 4 + goto WriteFieldError + } + if err = p.writeField5(oprot); err != nil { + fieldId = 5 + goto WriteFieldError + } + if err = p.writeField6(oprot); err != nil { + fieldId = 6 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *FilterField) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("field_name", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(p.FieldName); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *FilterField) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("field_type", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(p.FieldType); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *FilterField) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetValues() { + if err = oprot.WriteFieldBegin("values", thrift.LIST, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRING, len(p.Values)); err != nil { + return err + } + for _, v := range p.Values { + if err := oprot.WriteString(v); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} +func (p *FilterField) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetQueryType() { + if err = oprot.WriteFieldBegin("query_type", thrift.STRING, 4); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.QueryType); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) +} +func (p *FilterField) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetQueryAndOr() { + if err = oprot.WriteFieldBegin("query_and_or", thrift.STRING, 5); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.QueryAndOr); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) +} +func (p *FilterField) writeField6(oprot thrift.TProtocol) (err error) { + if p.IsSetSubFilter() { + if err = oprot.WriteFieldBegin("sub_filter", thrift.STRUCT, 6); err != nil { + goto WriteFieldBeginError + } + if err := p.SubFilter.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) +} + +func (p *FilterField) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("FilterField(%+v)", *p) + +} + +func (p *FilterField) DeepEqual(ano *FilterField) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.FieldName) { + return false + } + if !p.Field2DeepEqual(ano.FieldType) { + return false + } + if !p.Field3DeepEqual(ano.Values) { + return false + } + if !p.Field4DeepEqual(ano.QueryType) { + return false + } + if !p.Field5DeepEqual(ano.QueryAndOr) { + return false + } + if !p.Field6DeepEqual(ano.SubFilter) { + return false + } + return true +} + +func (p *FilterField) Field1DeepEqual(src string) bool { + + if strings.Compare(p.FieldName, src) != 0 { + return false + } + return true +} +func (p *FilterField) Field2DeepEqual(src FieldType) bool { + + if strings.Compare(p.FieldType, src) != 0 { + return false + } + return true +} +func (p *FilterField) Field3DeepEqual(src []string) bool { + + if len(p.Values) != len(src) { + return false + } + for i, v := range p.Values { + _src := src[i] + if strings.Compare(v, _src) != 0 { + return false + } + } + return true +} +func (p *FilterField) Field4DeepEqual(src *QueryType) bool { + + if p.QueryType == src { + return true + } else if p.QueryType == nil || src == nil { + return false + } + if strings.Compare(*p.QueryType, *src) != 0 { + return false + } + return true +} +func (p *FilterField) Field5DeepEqual(src *QueryRelation) bool { + + if p.QueryAndOr == src { + return true + } else if p.QueryAndOr == nil || src == nil { + return false + } + if strings.Compare(*p.QueryAndOr, *src) != 0 { + return false + } + return true +} +func (p *FilterField) Field6DeepEqual(src *Filter) bool { + + if !p.SubFilter.DeepEqual(src) { + return false + } + return true +} + +type Filter struct { + QueryAndOr *QueryRelation `thrift:"query_and_or,1,optional" frugal:"1,optional,string" form:"query_and_or" json:"query_and_or,omitempty" query:"query_and_or"` + FilterFields []*FilterField `thrift:"filter_fields,2,required" frugal:"2,required,list" form:"filter_fields,required" json:"filter_fields,required" query:"filter_fields,required"` +} + +func NewFilter() *Filter { + return &Filter{} +} + +func (p *Filter) InitDefault() { +} + +var Filter_QueryAndOr_DEFAULT QueryRelation + +func (p *Filter) GetQueryAndOr() (v QueryRelation) { + if p == nil { + return + } + if !p.IsSetQueryAndOr() { + return Filter_QueryAndOr_DEFAULT + } + return *p.QueryAndOr +} + +func (p *Filter) GetFilterFields() (v []*FilterField) { + if p != nil { + return p.FilterFields + } + return +} +func (p *Filter) SetQueryAndOr(val *QueryRelation) { + p.QueryAndOr = val +} +func (p *Filter) SetFilterFields(val []*FilterField) { + p.FilterFields = val +} + +var fieldIDToName_Filter = map[int16]string{ + 1: "query_and_or", + 2: "filter_fields", +} + +func (p *Filter) IsSetQueryAndOr() bool { + return p.QueryAndOr != nil +} + +func (p *Filter) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + var issetFilterFields bool = false + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.LIST { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + issetFilterFields = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + if !issetFilterFields { + fieldId = 2 + goto RequiredFieldNotSetError + } + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_Filter[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +RequiredFieldNotSetError: + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_Filter[fieldId])) +} + +func (p *Filter) ReadField1(iprot thrift.TProtocol) error { + + var _field *QueryRelation + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.QueryAndOr = _field + return nil +} +func (p *Filter) ReadField2(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*FilterField, 0, size) + values := make([]FilterField, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.FilterFields = _field + return nil +} + +func (p *Filter) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("Filter"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *Filter) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetQueryAndOr() { + if err = oprot.WriteFieldBegin("query_and_or", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.QueryAndOr); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *Filter) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("filter_fields", thrift.LIST, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.FilterFields)); err != nil { + return err + } + for _, v := range p.FilterFields { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} + +func (p *Filter) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("Filter(%+v)", *p) + +} + +func (p *Filter) DeepEqual(ano *Filter) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.QueryAndOr) { + return false + } + if !p.Field2DeepEqual(ano.FilterFields) { + return false + } + return true +} + +func (p *Filter) Field1DeepEqual(src *QueryRelation) bool { + + if p.QueryAndOr == src { + return true + } else if p.QueryAndOr == nil || src == nil { + return false + } + if strings.Compare(*p.QueryAndOr, *src) != 0 { + return false + } + return true +} +func (p *Filter) Field2DeepEqual(src []*FilterField) bool { + + if len(p.FilterFields) != len(src) { + return false + } + for i, v := range p.FilterFields { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} + +type FieldOptions struct { + I32FieldOption []int32 `thrift:"i32_field_option,1,optional" frugal:"1,optional,list" form:"i32_field_option" json:"i32_field_option,omitempty" query:"i32_field_option"` + I64FieldOption []int64 `thrift:"i64_field_option,2,optional" frugal:"2,optional,list" form:"i64_field_option" json:"i64_field_option,omitempty" query:"i64_field_option"` + F64FieldOption []float64 `thrift:"f64_field_option,3,optional" frugal:"3,optional,list" form:"f64_field_option" json:"f64_field_option,omitempty" query:"f64_field_option"` + StringFieldOption []string `thrift:"string_field_option,4,optional" frugal:"4,optional,list" form:"string_field_option" json:"string_field_option,omitempty" query:"string_field_option"` + ObjFieldOption []*ObjectFieldOption `thrift:"obj_field_option,5,optional" frugal:"5,optional,list" form:"obj_field_option" json:"obj_field_option,omitempty" query:"obj_field_option"` +} + +func NewFieldOptions() *FieldOptions { + return &FieldOptions{} +} + +func (p *FieldOptions) InitDefault() { +} + +var FieldOptions_I32FieldOption_DEFAULT []int32 + +func (p *FieldOptions) GetI32FieldOption() (v []int32) { + if p == nil { + return + } + if !p.IsSetI32FieldOption() { + return FieldOptions_I32FieldOption_DEFAULT + } + return p.I32FieldOption +} + +var FieldOptions_I64FieldOption_DEFAULT []int64 + +func (p *FieldOptions) GetI64FieldOption() (v []int64) { + if p == nil { + return + } + if !p.IsSetI64FieldOption() { + return FieldOptions_I64FieldOption_DEFAULT + } + return p.I64FieldOption +} + +var FieldOptions_F64FieldOption_DEFAULT []float64 + +func (p *FieldOptions) GetF64FieldOption() (v []float64) { + if p == nil { + return + } + if !p.IsSetF64FieldOption() { + return FieldOptions_F64FieldOption_DEFAULT + } + return p.F64FieldOption +} + +var FieldOptions_StringFieldOption_DEFAULT []string + +func (p *FieldOptions) GetStringFieldOption() (v []string) { + if p == nil { + return + } + if !p.IsSetStringFieldOption() { + return FieldOptions_StringFieldOption_DEFAULT + } + return p.StringFieldOption +} + +var FieldOptions_ObjFieldOption_DEFAULT []*ObjectFieldOption + +func (p *FieldOptions) GetObjFieldOption() (v []*ObjectFieldOption) { + if p == nil { + return + } + if !p.IsSetObjFieldOption() { + return FieldOptions_ObjFieldOption_DEFAULT + } + return p.ObjFieldOption +} +func (p *FieldOptions) SetI32FieldOption(val []int32) { + p.I32FieldOption = val +} +func (p *FieldOptions) SetI64FieldOption(val []int64) { + p.I64FieldOption = val +} +func (p *FieldOptions) SetF64FieldOption(val []float64) { + p.F64FieldOption = val +} +func (p *FieldOptions) SetStringFieldOption(val []string) { + p.StringFieldOption = val +} +func (p *FieldOptions) SetObjFieldOption(val []*ObjectFieldOption) { + p.ObjFieldOption = val +} + +var fieldIDToName_FieldOptions = map[int16]string{ + 1: "i32_field_option", + 2: "i64_field_option", + 3: "f64_field_option", + 4: "string_field_option", + 5: "obj_field_option", +} + +func (p *FieldOptions) IsSetI32FieldOption() bool { + return p.I32FieldOption != nil +} + +func (p *FieldOptions) IsSetI64FieldOption() bool { + return p.I64FieldOption != nil +} + +func (p *FieldOptions) IsSetF64FieldOption() bool { + return p.F64FieldOption != nil +} + +func (p *FieldOptions) IsSetStringFieldOption() bool { + return p.StringFieldOption != nil +} + +func (p *FieldOptions) IsSetObjFieldOption() bool { + return p.ObjFieldOption != nil +} + +func (p *FieldOptions) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.LIST { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.LIST { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.LIST { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 4: + if fieldTypeId == thrift.LIST { + if err = p.ReadField4(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 5: + if fieldTypeId == thrift.LIST { + if err = p.ReadField5(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_FieldOptions[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *FieldOptions) ReadField1(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]int32, 0, size) + for i := 0; i < size; i++ { + + var _elem int32 + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + _elem = v + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.I32FieldOption = _field + return nil +} +func (p *FieldOptions) ReadField2(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]int64, 0, size) + for i := 0; i < size; i++ { + + var _elem int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _elem = v + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.I64FieldOption = _field + return nil +} +func (p *FieldOptions) ReadField3(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]float64, 0, size) + for i := 0; i < size; i++ { + + var _elem float64 + if v, err := iprot.ReadDouble(); err != nil { + return err + } else { + _elem = v + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.F64FieldOption = _field + return nil +} +func (p *FieldOptions) ReadField4(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]string, 0, size) + for i := 0; i < size; i++ { + + var _elem string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _elem = v + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.StringFieldOption = _field + return nil +} +func (p *FieldOptions) ReadField5(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*ObjectFieldOption, 0, size) + values := make([]ObjectFieldOption, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.ObjFieldOption = _field + return nil +} + +func (p *FieldOptions) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("FieldOptions"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + if err = p.writeField4(oprot); err != nil { + fieldId = 4 + goto WriteFieldError + } + if err = p.writeField5(oprot); err != nil { + fieldId = 5 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *FieldOptions) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetI32FieldOption() { + if err = oprot.WriteFieldBegin("i32_field_option", thrift.LIST, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.I32, len(p.I32FieldOption)); err != nil { + return err + } + for _, v := range p.I32FieldOption { + if err := oprot.WriteI32(v); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *FieldOptions) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetI64FieldOption() { + if err = oprot.WriteFieldBegin("i64_field_option", thrift.LIST, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.I64, len(p.I64FieldOption)); err != nil { + return err + } + for _, v := range p.I64FieldOption { + if err := oprot.WriteI64(v); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *FieldOptions) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetF64FieldOption() { + if err = oprot.WriteFieldBegin("f64_field_option", thrift.LIST, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.DOUBLE, len(p.F64FieldOption)); err != nil { + return err + } + for _, v := range p.F64FieldOption { + if err := oprot.WriteDouble(v); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} +func (p *FieldOptions) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetStringFieldOption() { + if err = oprot.WriteFieldBegin("string_field_option", thrift.LIST, 4); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRING, len(p.StringFieldOption)); err != nil { + return err + } + for _, v := range p.StringFieldOption { + if err := oprot.WriteString(v); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) +} +func (p *FieldOptions) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetObjFieldOption() { + if err = oprot.WriteFieldBegin("obj_field_option", thrift.LIST, 5); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.ObjFieldOption)); err != nil { + return err + } + for _, v := range p.ObjFieldOption { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) +} + +func (p *FieldOptions) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("FieldOptions(%+v)", *p) + +} + +func (p *FieldOptions) DeepEqual(ano *FieldOptions) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.I32FieldOption) { + return false + } + if !p.Field2DeepEqual(ano.I64FieldOption) { + return false + } + if !p.Field3DeepEqual(ano.F64FieldOption) { + return false + } + if !p.Field4DeepEqual(ano.StringFieldOption) { + return false + } + if !p.Field5DeepEqual(ano.ObjFieldOption) { + return false + } + return true +} + +func (p *FieldOptions) Field1DeepEqual(src []int32) bool { + + if len(p.I32FieldOption) != len(src) { + return false + } + for i, v := range p.I32FieldOption { + _src := src[i] + if v != _src { + return false + } + } + return true +} +func (p *FieldOptions) Field2DeepEqual(src []int64) bool { + + if len(p.I64FieldOption) != len(src) { + return false + } + for i, v := range p.I64FieldOption { + _src := src[i] + if v != _src { + return false + } + } + return true +} +func (p *FieldOptions) Field3DeepEqual(src []float64) bool { + + if len(p.F64FieldOption) != len(src) { + return false + } + for i, v := range p.F64FieldOption { + _src := src[i] + if v != _src { + return false + } + } + return true +} +func (p *FieldOptions) Field4DeepEqual(src []string) bool { + + if len(p.StringFieldOption) != len(src) { + return false + } + for i, v := range p.StringFieldOption { + _src := src[i] + if strings.Compare(v, _src) != 0 { + return false + } + } + return true +} +func (p *FieldOptions) Field5DeepEqual(src []*ObjectFieldOption) bool { + + if len(p.ObjFieldOption) != len(src) { + return false + } + for i, v := range p.ObjFieldOption { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} + +type ObjectFieldOption struct { + ID int64 `thrift:"id,1,required" frugal:"1,required,i64" form:"id,required" json:"id,required" query:"id,required"` + DisplayName string `thrift:"display_name,2,required" frugal:"2,required,string" form:"display_name,required" json:"display_name,required" query:"display_name,required"` +} + +func NewObjectFieldOption() *ObjectFieldOption { + return &ObjectFieldOption{} +} + +func (p *ObjectFieldOption) InitDefault() { +} + +func (p *ObjectFieldOption) GetID() (v int64) { + if p != nil { + return p.ID + } + return +} + +func (p *ObjectFieldOption) GetDisplayName() (v string) { + if p != nil { + return p.DisplayName + } + return +} +func (p *ObjectFieldOption) SetID(val int64) { + p.ID = val +} +func (p *ObjectFieldOption) SetDisplayName(val string) { + p.DisplayName = val +} + +var fieldIDToName_ObjectFieldOption = map[int16]string{ + 1: "id", + 2: "display_name", +} + +func (p *ObjectFieldOption) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + var issetID bool = false + var issetDisplayName bool = false + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.I64 { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + issetID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + issetDisplayName = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + if !issetID { + fieldId = 1 + goto RequiredFieldNotSetError + } + + if !issetDisplayName { + fieldId = 2 + goto RequiredFieldNotSetError + } + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ObjectFieldOption[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +RequiredFieldNotSetError: + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ObjectFieldOption[fieldId])) +} + +func (p *ObjectFieldOption) ReadField1(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.ID = _field + return nil +} +func (p *ObjectFieldOption) ReadField2(iprot thrift.TProtocol) error { + + var _field string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = v + } + p.DisplayName = _field + return nil +} + +func (p *ObjectFieldOption) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ObjectFieldOption"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *ObjectFieldOption) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("id", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.ID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *ObjectFieldOption) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("display_name", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(p.DisplayName); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} + +func (p *ObjectFieldOption) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ObjectFieldOption(%+v)", *p) + +} + +func (p *ObjectFieldOption) DeepEqual(ano *ObjectFieldOption) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.ID) { + return false + } + if !p.Field2DeepEqual(ano.DisplayName) { + return false + } + return true +} + +func (p *ObjectFieldOption) Field1DeepEqual(src int64) bool { + + if p.ID != src { + return false + } + return true +} +func (p *ObjectFieldOption) Field2DeepEqual(src string) bool { + + if strings.Compare(p.DisplayName, src) != 0 { + return false + } + return true +} + +type FieldMeta struct { + // 字段类型 + FieldType FieldType `thrift:"field_type,1,required" frugal:"1,required,string" form:"field_type,required" json:"field_type,required" query:"field_type,required"` + // 当前字段支持的操作类型 + QueryTypes []QueryType `thrift:"query_types,2,required" frugal:"2,required,list" form:"query_types,required" json:"query_types,required" query:"query_types,required"` + DisplayName string `thrift:"display_name,3,required" frugal:"3,required,string" form:"display_name,required" json:"display_name,required" query:"display_name,required"` + // 支持的可选项 + FieldOptions *FieldOptions `thrift:"field_options,4,optional" frugal:"4,optional,FieldOptions" form:"field_options" json:"field_options,omitempty" query:"field_options"` + // 当前字段在schema中是否存在 + Exist *bool `thrift:"exist,5,optional" frugal:"5,optional,bool" form:"exist" json:"exist,omitempty" query:"exist"` +} + +func NewFieldMeta() *FieldMeta { + return &FieldMeta{} +} + +func (p *FieldMeta) InitDefault() { +} + +func (p *FieldMeta) GetFieldType() (v FieldType) { + if p != nil { + return p.FieldType + } + return +} + +func (p *FieldMeta) GetQueryTypes() (v []QueryType) { + if p != nil { + return p.QueryTypes + } + return +} + +func (p *FieldMeta) GetDisplayName() (v string) { + if p != nil { + return p.DisplayName + } + return +} + +var FieldMeta_FieldOptions_DEFAULT *FieldOptions + +func (p *FieldMeta) GetFieldOptions() (v *FieldOptions) { + if p == nil { + return + } + if !p.IsSetFieldOptions() { + return FieldMeta_FieldOptions_DEFAULT + } + return p.FieldOptions +} + +var FieldMeta_Exist_DEFAULT bool + +func (p *FieldMeta) GetExist() (v bool) { + if p == nil { + return + } + if !p.IsSetExist() { + return FieldMeta_Exist_DEFAULT + } + return *p.Exist +} +func (p *FieldMeta) SetFieldType(val FieldType) { + p.FieldType = val +} +func (p *FieldMeta) SetQueryTypes(val []QueryType) { + p.QueryTypes = val +} +func (p *FieldMeta) SetDisplayName(val string) { + p.DisplayName = val +} +func (p *FieldMeta) SetFieldOptions(val *FieldOptions) { + p.FieldOptions = val +} +func (p *FieldMeta) SetExist(val *bool) { + p.Exist = val +} + +var fieldIDToName_FieldMeta = map[int16]string{ + 1: "field_type", + 2: "query_types", + 3: "display_name", + 4: "field_options", + 5: "exist", +} + +func (p *FieldMeta) IsSetFieldOptions() bool { + return p.FieldOptions != nil +} + +func (p *FieldMeta) IsSetExist() bool { + return p.Exist != nil +} + +func (p *FieldMeta) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + var issetFieldType bool = false + var issetQueryTypes bool = false + var issetDisplayName bool = false + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + issetFieldType = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.LIST { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + issetQueryTypes = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.STRING { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + issetDisplayName = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 4: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField4(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 5: + if fieldTypeId == thrift.BOOL { + if err = p.ReadField5(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + if !issetFieldType { + fieldId = 1 + goto RequiredFieldNotSetError + } + + if !issetQueryTypes { + fieldId = 2 + goto RequiredFieldNotSetError + } + + if !issetDisplayName { + fieldId = 3 + goto RequiredFieldNotSetError + } + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_FieldMeta[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +RequiredFieldNotSetError: + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_FieldMeta[fieldId])) +} + +func (p *FieldMeta) ReadField1(iprot thrift.TProtocol) error { + + var _field FieldType + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = v + } + p.FieldType = _field + return nil +} +func (p *FieldMeta) ReadField2(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]QueryType, 0, size) + for i := 0; i < size; i++ { + + var _elem QueryType + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _elem = v + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.QueryTypes = _field + return nil +} +func (p *FieldMeta) ReadField3(iprot thrift.TProtocol) error { + + var _field string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = v + } + p.DisplayName = _field + return nil +} +func (p *FieldMeta) ReadField4(iprot thrift.TProtocol) error { + _field := NewFieldOptions() + if err := _field.Read(iprot); err != nil { + return err + } + p.FieldOptions = _field + return nil +} +func (p *FieldMeta) ReadField5(iprot thrift.TProtocol) error { + + var _field *bool + if v, err := iprot.ReadBool(); err != nil { + return err + } else { + _field = &v + } + p.Exist = _field + return nil +} + +func (p *FieldMeta) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("FieldMeta"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + if err = p.writeField4(oprot); err != nil { + fieldId = 4 + goto WriteFieldError + } + if err = p.writeField5(oprot); err != nil { + fieldId = 5 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *FieldMeta) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("field_type", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(p.FieldType); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *FieldMeta) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("query_types", thrift.LIST, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRING, len(p.QueryTypes)); err != nil { + return err + } + for _, v := range p.QueryTypes { + if err := oprot.WriteString(v); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} +func (p *FieldMeta) writeField3(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("display_name", thrift.STRING, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(p.DisplayName); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} +func (p *FieldMeta) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetFieldOptions() { + if err = oprot.WriteFieldBegin("field_options", thrift.STRUCT, 4); err != nil { + goto WriteFieldBeginError + } + if err := p.FieldOptions.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) +} +func (p *FieldMeta) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetExist() { + if err = oprot.WriteFieldBegin("exist", thrift.BOOL, 5); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteBool(*p.Exist); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) +} + +func (p *FieldMeta) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("FieldMeta(%+v)", *p) + +} + +func (p *FieldMeta) DeepEqual(ano *FieldMeta) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.FieldType) { + return false + } + if !p.Field2DeepEqual(ano.QueryTypes) { + return false + } + if !p.Field3DeepEqual(ano.DisplayName) { + return false + } + if !p.Field4DeepEqual(ano.FieldOptions) { + return false + } + if !p.Field5DeepEqual(ano.Exist) { + return false + } + return true +} + +func (p *FieldMeta) Field1DeepEqual(src FieldType) bool { + + if strings.Compare(p.FieldType, src) != 0 { + return false + } + return true +} +func (p *FieldMeta) Field2DeepEqual(src []QueryType) bool { + + if len(p.QueryTypes) != len(src) { + return false + } + for i, v := range p.QueryTypes { + _src := src[i] + if strings.Compare(v, _src) != 0 { + return false + } + } + return true +} +func (p *FieldMeta) Field3DeepEqual(src string) bool { + + if strings.Compare(p.DisplayName, src) != 0 { + return false + } + return true +} +func (p *FieldMeta) Field4DeepEqual(src *FieldOptions) bool { + + if !p.FieldOptions.DeepEqual(src) { + return false + } + return true +} +func (p *FieldMeta) Field5DeepEqual(src *bool) bool { + + if p.Exist == src { + return true + } else if p.Exist == nil || src == nil { + return false + } + if *p.Exist != *src { + return false + } + return true +} + +type FieldMetaInfoData struct { + // 字段元信息 + FieldMetas map[string]*FieldMeta `thrift:"field_metas,1,required" frugal:"1,required,map" form:"field_metas,required" json:"field_metas,required" query:"field_metas,required"` +} + +func NewFieldMetaInfoData() *FieldMetaInfoData { + return &FieldMetaInfoData{} +} + +func (p *FieldMetaInfoData) InitDefault() { +} + +func (p *FieldMetaInfoData) GetFieldMetas() (v map[string]*FieldMeta) { + if p != nil { + return p.FieldMetas + } + return +} +func (p *FieldMetaInfoData) SetFieldMetas(val map[string]*FieldMeta) { + p.FieldMetas = val +} + +var fieldIDToName_FieldMetaInfoData = map[int16]string{ + 1: "field_metas", +} + +func (p *FieldMetaInfoData) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + var issetFieldMetas bool = false + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.MAP { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + issetFieldMetas = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + if !issetFieldMetas { + fieldId = 1 + goto RequiredFieldNotSetError + } + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_FieldMetaInfoData[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +RequiredFieldNotSetError: + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_FieldMetaInfoData[fieldId])) +} + +func (p *FieldMetaInfoData) ReadField1(iprot thrift.TProtocol) error { + _, _, size, err := iprot.ReadMapBegin() + if err != nil { + return err + } + _field := make(map[string]*FieldMeta, size) + values := make([]FieldMeta, size) + for i := 0; i < size; i++ { + var _key string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _key = v + } + + _val := &values[i] + _val.InitDefault() + if err := _val.Read(iprot); err != nil { + return err + } + + _field[_key] = _val + } + if err := iprot.ReadMapEnd(); err != nil { + return err + } + p.FieldMetas = _field + return nil +} + +func (p *FieldMetaInfoData) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("FieldMetaInfoData"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *FieldMetaInfoData) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("field_metas", thrift.MAP, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteMapBegin(thrift.STRING, thrift.STRUCT, len(p.FieldMetas)); err != nil { + return err + } + for k, v := range p.FieldMetas { + if err := oprot.WriteString(k); err != nil { + return err + } + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteMapEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} + +func (p *FieldMetaInfoData) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("FieldMetaInfoData(%+v)", *p) + +} + +func (p *FieldMetaInfoData) DeepEqual(ano *FieldMetaInfoData) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.FieldMetas) { + return false + } + return true +} + +func (p *FieldMetaInfoData) Field1DeepEqual(src map[string]*FieldMeta) bool { + + if len(p.FieldMetas) != len(src) { + return false + } + for k, v := range p.FieldMetas { + _src := src[k] + if !v.DeepEqual(_src) { + return false + } + } + return true +} diff --git a/backend/kitex_gen/stone/fornax/ml_flow/domain/filter/filter_validator.go b/backend/kitex_gen/stone/fornax/ml_flow/domain/filter/filter_validator.go new file mode 100644 index 000000000..820a40527 --- /dev/null +++ b/backend/kitex_gen/stone/fornax/ml_flow/domain/filter/filter_validator.go @@ -0,0 +1,51 @@ +// Code generated by Validator v0.2.6. DO NOT EDIT. + +package filter + +import ( + "bytes" + "fmt" + "reflect" + "regexp" + "strings" + "time" +) + +// unused protection +var ( + _ = fmt.Formatter(nil) + _ = (*bytes.Buffer)(nil) + _ = (*strings.Builder)(nil) + _ = reflect.Type(nil) + _ = (*regexp.Regexp)(nil) + _ = time.Nanosecond +) + +func (p *FilterField) IsValid() error { + if p.SubFilter != nil { + if err := p.SubFilter.IsValid(); err != nil { + return fmt.Errorf("field SubFilter not valid, %w", err) + } + } + return nil +} +func (p *Filter) IsValid() error { + return nil +} +func (p *FieldOptions) IsValid() error { + return nil +} +func (p *ObjectFieldOption) IsValid() error { + return nil +} +func (p *FieldMeta) IsValid() error { + if p.FieldOptions != nil { + if err := p.FieldOptions.IsValid(); err != nil { + return fmt.Errorf("field FieldOptions not valid, %w", err) + } + } + return nil +} +func (p *FieldMetaInfoData) IsValid() error { + return nil +} diff --git a/backend/kitex_gen/stone/fornax/ml_flow/domain/filter/k-consts.go b/backend/kitex_gen/stone/fornax/ml_flow/domain/filter/k-consts.go new file mode 100644 index 000000000..93e417d1f --- /dev/null +++ b/backend/kitex_gen/stone/fornax/ml_flow/domain/filter/k-consts.go @@ -0,0 +1,4 @@ +package filter + +// KitexUnusedProtection is used to prevent 'imported and not used' error. +var KitexUnusedProtection = struct{}{} diff --git a/backend/kitex_gen/stone/fornax/ml_flow/domain/filter/k-filter.go b/backend/kitex_gen/stone/fornax/ml_flow/domain/filter/k-filter.go new file mode 100644 index 000000000..e62b6bad1 --- /dev/null +++ b/backend/kitex_gen/stone/fornax/ml_flow/domain/filter/k-filter.go @@ -0,0 +1,1803 @@ +// Code generated by Kitex v0.13.1. DO NOT EDIT. + +package filter + +import ( + "bytes" + "fmt" + "reflect" + "strings" + + "github.com/cloudwego/gopkg/protocol/thrift" + kutils "github.com/cloudwego/kitex/pkg/utils" +) + +// unused protection +var ( + _ = fmt.Formatter(nil) + _ = (*bytes.Buffer)(nil) + _ = (*strings.Builder)(nil) + _ = reflect.Type(nil) + _ = thrift.STOP +) + +func (p *FilterField) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + var issetFieldName bool = false + var issetFieldType bool = false + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetFieldName = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetFieldType = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 4: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField4(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 5: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField5(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 6: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField6(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + if !issetFieldName { + fieldId = 1 + goto RequiredFieldNotSetError + } + + if !issetFieldType { + fieldId = 2 + goto RequiredFieldNotSetError + } + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_FilterField[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +RequiredFieldNotSetError: + return offset, thrift.NewProtocolException(thrift.INVALID_DATA, fmt.Sprintf("required field %s is not set", fieldIDToName_FilterField[fieldId])) +} + +func (p *FilterField) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = v + } + p.FieldName = _field + return offset, nil +} + +func (p *FilterField) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field FieldType + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = v + } + p.FieldType = _field + return offset, nil +} + +func (p *FilterField) FastReadField3(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]string, 0, size) + for i := 0; i < size; i++ { + var _elem string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _elem = v + } + + _field = append(_field, _elem) + } + p.Values = _field + return offset, nil +} + +func (p *FilterField) FastReadField4(buf []byte) (int, error) { + offset := 0 + + var _field *QueryType + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.QueryType = _field + return offset, nil +} + +func (p *FilterField) FastReadField5(buf []byte) (int, error) { + offset := 0 + + var _field *QueryRelation + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.QueryAndOr = _field + return offset, nil +} + +func (p *FilterField) FastReadField6(buf []byte) (int, error) { + offset := 0 + _field := NewFilter() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.SubFilter = _field + return offset, nil +} + +func (p *FilterField) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *FilterField) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + offset += p.fastWriteField4(buf[offset:], w) + offset += p.fastWriteField5(buf[offset:], w) + offset += p.fastWriteField6(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *FilterField) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + l += p.field4Length() + l += p.field5Length() + l += p.field6Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *FilterField) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, p.FieldName) + return offset +} + +func (p *FilterField) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, p.FieldType) + return offset +} + +func (p *FilterField) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetValues() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 3) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.Values { + length++ + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, v) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRING, length) + } + return offset +} + +func (p *FilterField) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetQueryType() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 4) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.QueryType) + } + return offset +} + +func (p *FilterField) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetQueryAndOr() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 5) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.QueryAndOr) + } + return offset +} + +func (p *FilterField) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSubFilter() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 6) + offset += p.SubFilter.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *FilterField) field1Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(p.FieldName) + return l +} + +func (p *FilterField) field2Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(p.FieldType) + return l +} + +func (p *FilterField) field3Length() int { + l := 0 + if p.IsSetValues() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.Values { + _ = v + l += thrift.Binary.StringLengthNocopy(v) + } + } + return l +} + +func (p *FilterField) field4Length() int { + l := 0 + if p.IsSetQueryType() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.QueryType) + } + return l +} + +func (p *FilterField) field5Length() int { + l := 0 + if p.IsSetQueryAndOr() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.QueryAndOr) + } + return l +} + +func (p *FilterField) field6Length() int { + l := 0 + if p.IsSetSubFilter() { + l += thrift.Binary.FieldBeginLength() + l += p.SubFilter.BLength() + } + return l +} + +func (p *FilterField) DeepCopy(s interface{}) error { + src, ok := s.(*FilterField) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.FieldName != "" { + p.FieldName = kutils.StringDeepCopy(src.FieldName) + } + + p.FieldType = src.FieldType + + if src.Values != nil { + p.Values = make([]string, 0, len(src.Values)) + for _, elem := range src.Values { + var _elem string + if elem != "" { + _elem = kutils.StringDeepCopy(elem) + } + p.Values = append(p.Values, _elem) + } + } + + if src.QueryType != nil { + tmp := *src.QueryType + p.QueryType = &tmp + } + + if src.QueryAndOr != nil { + tmp := *src.QueryAndOr + p.QueryAndOr = &tmp + } + + var _subFilter *Filter + if src.SubFilter != nil { + _subFilter = &Filter{} + if err := _subFilter.DeepCopy(src.SubFilter); err != nil { + return err + } + } + p.SubFilter = _subFilter + + return nil +} + +func (p *Filter) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + var issetFilterFields bool = false + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetFilterFields = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + if !issetFilterFields { + fieldId = 2 + goto RequiredFieldNotSetError + } + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_Filter[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +RequiredFieldNotSetError: + return offset, thrift.NewProtocolException(thrift.INVALID_DATA, fmt.Sprintf("required field %s is not set", fieldIDToName_Filter[fieldId])) +} + +func (p *Filter) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field *QueryRelation + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.QueryAndOr = _field + return offset, nil +} + +func (p *Filter) FastReadField2(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]*FilterField, 0, size) + values := make([]FilterField, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + if l, err := _elem.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + + _field = append(_field, _elem) + } + p.FilterFields = _field + return offset, nil +} + +func (p *Filter) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *Filter) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *Filter) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *Filter) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetQueryAndOr() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.QueryAndOr) + } + return offset +} + +func (p *Filter) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 2) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.FilterFields { + length++ + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) + return offset +} + +func (p *Filter) field1Length() int { + l := 0 + if p.IsSetQueryAndOr() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.QueryAndOr) + } + return l +} + +func (p *Filter) field2Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.FilterFields { + _ = v + l += v.BLength() + } + return l +} + +func (p *Filter) DeepCopy(s interface{}) error { + src, ok := s.(*Filter) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.QueryAndOr != nil { + tmp := *src.QueryAndOr + p.QueryAndOr = &tmp + } + + if src.FilterFields != nil { + p.FilterFields = make([]*FilterField, 0, len(src.FilterFields)) + for _, elem := range src.FilterFields { + var _elem *FilterField + if elem != nil { + _elem = &FilterField{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.FilterFields = append(p.FilterFields, _elem) + } + } + + return nil +} + +func (p *FieldOptions) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 4: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField4(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 5: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField5(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_FieldOptions[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *FieldOptions) FastReadField1(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]int32, 0, size) + for i := 0; i < size; i++ { + var _elem int32 + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _elem = v + } + + _field = append(_field, _elem) + } + p.I32FieldOption = _field + return offset, nil +} + +func (p *FieldOptions) FastReadField2(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]int64, 0, size) + for i := 0; i < size; i++ { + var _elem int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _elem = v + } + + _field = append(_field, _elem) + } + p.I64FieldOption = _field + return offset, nil +} + +func (p *FieldOptions) FastReadField3(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]float64, 0, size) + for i := 0; i < size; i++ { + var _elem float64 + if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _elem = v + } + + _field = append(_field, _elem) + } + p.F64FieldOption = _field + return offset, nil +} + +func (p *FieldOptions) FastReadField4(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]string, 0, size) + for i := 0; i < size; i++ { + var _elem string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _elem = v + } + + _field = append(_field, _elem) + } + p.StringFieldOption = _field + return offset, nil +} + +func (p *FieldOptions) FastReadField5(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]*ObjectFieldOption, 0, size) + values := make([]ObjectFieldOption, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() + if l, err := _elem.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + + _field = append(_field, _elem) + } + p.ObjFieldOption = _field + return offset, nil +} + +func (p *FieldOptions) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *FieldOptions) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + offset += p.fastWriteField4(buf[offset:], w) + offset += p.fastWriteField5(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *FieldOptions) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + l += p.field4Length() + l += p.field5Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *FieldOptions) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetI32FieldOption() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 1) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.I32FieldOption { + length++ + offset += thrift.Binary.WriteI32(buf[offset:], v) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.I32, length) + } + return offset +} + +func (p *FieldOptions) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetI64FieldOption() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 2) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.I64FieldOption { + length++ + offset += thrift.Binary.WriteI64(buf[offset:], v) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.I64, length) + } + return offset +} + +func (p *FieldOptions) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetF64FieldOption() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 3) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.F64FieldOption { + length++ + offset += thrift.Binary.WriteDouble(buf[offset:], v) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.DOUBLE, length) + } + return offset +} + +func (p *FieldOptions) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetStringFieldOption() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 4) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.StringFieldOption { + length++ + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, v) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRING, length) + } + return offset +} + +func (p *FieldOptions) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetObjFieldOption() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 5) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.ObjFieldOption { + length++ + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) + } + return offset +} + +func (p *FieldOptions) field1Length() int { + l := 0 + if p.IsSetI32FieldOption() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + l += + thrift.Binary.I32Length() * len(p.I32FieldOption) + } + return l +} + +func (p *FieldOptions) field2Length() int { + l := 0 + if p.IsSetI64FieldOption() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + l += + thrift.Binary.I64Length() * len(p.I64FieldOption) + } + return l +} + +func (p *FieldOptions) field3Length() int { + l := 0 + if p.IsSetF64FieldOption() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + l += + thrift.Binary.DoubleLength() * len(p.F64FieldOption) + } + return l +} + +func (p *FieldOptions) field4Length() int { + l := 0 + if p.IsSetStringFieldOption() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.StringFieldOption { + _ = v + l += thrift.Binary.StringLengthNocopy(v) + } + } + return l +} + +func (p *FieldOptions) field5Length() int { + l := 0 + if p.IsSetObjFieldOption() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.ObjFieldOption { + _ = v + l += v.BLength() + } + } + return l +} + +func (p *FieldOptions) DeepCopy(s interface{}) error { + src, ok := s.(*FieldOptions) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.I32FieldOption != nil { + p.I32FieldOption = make([]int32, 0, len(src.I32FieldOption)) + for _, elem := range src.I32FieldOption { + var _elem int32 + _elem = elem + p.I32FieldOption = append(p.I32FieldOption, _elem) + } + } + + if src.I64FieldOption != nil { + p.I64FieldOption = make([]int64, 0, len(src.I64FieldOption)) + for _, elem := range src.I64FieldOption { + var _elem int64 + _elem = elem + p.I64FieldOption = append(p.I64FieldOption, _elem) + } + } + + if src.F64FieldOption != nil { + p.F64FieldOption = make([]float64, 0, len(src.F64FieldOption)) + for _, elem := range src.F64FieldOption { + var _elem float64 + _elem = elem + p.F64FieldOption = append(p.F64FieldOption, _elem) + } + } + + if src.StringFieldOption != nil { + p.StringFieldOption = make([]string, 0, len(src.StringFieldOption)) + for _, elem := range src.StringFieldOption { + var _elem string + if elem != "" { + _elem = kutils.StringDeepCopy(elem) + } + p.StringFieldOption = append(p.StringFieldOption, _elem) + } + } + + if src.ObjFieldOption != nil { + p.ObjFieldOption = make([]*ObjectFieldOption, 0, len(src.ObjFieldOption)) + for _, elem := range src.ObjFieldOption { + var _elem *ObjectFieldOption + if elem != nil { + _elem = &ObjectFieldOption{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.ObjFieldOption = append(p.ObjFieldOption, _elem) + } + } + + return nil +} + +func (p *ObjectFieldOption) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + var issetID bool = false + var issetDisplayName bool = false + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetID = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetDisplayName = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + if !issetID { + fieldId = 1 + goto RequiredFieldNotSetError + } + + if !issetDisplayName { + fieldId = 2 + goto RequiredFieldNotSetError + } + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ObjectFieldOption[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +RequiredFieldNotSetError: + return offset, thrift.NewProtocolException(thrift.INVALID_DATA, fmt.Sprintf("required field %s is not set", fieldIDToName_ObjectFieldOption[fieldId])) +} + +func (p *ObjectFieldOption) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = v + } + p.ID = _field + return offset, nil +} + +func (p *ObjectFieldOption) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = v + } + p.DisplayName = _field + return offset, nil +} + +func (p *ObjectFieldOption) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ObjectFieldOption) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ObjectFieldOption) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ObjectFieldOption) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) + offset += thrift.Binary.WriteI64(buf[offset:], p.ID) + return offset +} + +func (p *ObjectFieldOption) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, p.DisplayName) + return offset +} + +func (p *ObjectFieldOption) field1Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + return l +} + +func (p *ObjectFieldOption) field2Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(p.DisplayName) + return l +} + +func (p *ObjectFieldOption) DeepCopy(s interface{}) error { + src, ok := s.(*ObjectFieldOption) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + p.ID = src.ID + + if src.DisplayName != "" { + p.DisplayName = kutils.StringDeepCopy(src.DisplayName) + } + + return nil +} + +func (p *FieldMeta) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + var issetFieldType bool = false + var issetQueryTypes bool = false + var issetDisplayName bool = false + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetFieldType = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetQueryTypes = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetDisplayName = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 4: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField4(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 5: + if fieldTypeId == thrift.BOOL { + l, err = p.FastReadField5(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + if !issetFieldType { + fieldId = 1 + goto RequiredFieldNotSetError + } + + if !issetQueryTypes { + fieldId = 2 + goto RequiredFieldNotSetError + } + + if !issetDisplayName { + fieldId = 3 + goto RequiredFieldNotSetError + } + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_FieldMeta[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +RequiredFieldNotSetError: + return offset, thrift.NewProtocolException(thrift.INVALID_DATA, fmt.Sprintf("required field %s is not set", fieldIDToName_FieldMeta[fieldId])) +} + +func (p *FieldMeta) FastReadField1(buf []byte) (int, error) { + offset := 0 + + var _field FieldType + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = v + } + p.FieldType = _field + return offset, nil +} + +func (p *FieldMeta) FastReadField2(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]QueryType, 0, size) + for i := 0; i < size; i++ { + var _elem QueryType + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _elem = v + } + + _field = append(_field, _elem) + } + p.QueryTypes = _field + return offset, nil +} + +func (p *FieldMeta) FastReadField3(buf []byte) (int, error) { + offset := 0 + + var _field string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = v + } + p.DisplayName = _field + return offset, nil +} + +func (p *FieldMeta) FastReadField4(buf []byte) (int, error) { + offset := 0 + _field := NewFieldOptions() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.FieldOptions = _field + return offset, nil +} + +func (p *FieldMeta) FastReadField5(buf []byte) (int, error) { + offset := 0 + + var _field *bool + if v, l, err := thrift.Binary.ReadBool(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.Exist = _field + return offset, nil +} + +func (p *FieldMeta) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *FieldMeta) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField5(buf[offset:], w) + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + offset += p.fastWriteField4(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *FieldMeta) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + l += p.field4Length() + l += p.field5Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *FieldMeta) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 1) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, p.FieldType) + return offset +} + +func (p *FieldMeta) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 2) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.QueryTypes { + length++ + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, v) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRING, length) + return offset +} + +func (p *FieldMeta) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, p.DisplayName) + return offset +} + +func (p *FieldMeta) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetFieldOptions() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 4) + offset += p.FieldOptions.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *FieldMeta) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetExist() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.BOOL, 5) + offset += thrift.Binary.WriteBool(buf[offset:], *p.Exist) + } + return offset +} + +func (p *FieldMeta) field1Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(p.FieldType) + return l +} + +func (p *FieldMeta) field2Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.QueryTypes { + _ = v + l += thrift.Binary.StringLengthNocopy(v) + } + return l +} + +func (p *FieldMeta) field3Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(p.DisplayName) + return l +} + +func (p *FieldMeta) field4Length() int { + l := 0 + if p.IsSetFieldOptions() { + l += thrift.Binary.FieldBeginLength() + l += p.FieldOptions.BLength() + } + return l +} + +func (p *FieldMeta) field5Length() int { + l := 0 + if p.IsSetExist() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.BoolLength() + } + return l +} + +func (p *FieldMeta) DeepCopy(s interface{}) error { + src, ok := s.(*FieldMeta) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + p.FieldType = src.FieldType + + if src.QueryTypes != nil { + p.QueryTypes = make([]QueryType, 0, len(src.QueryTypes)) + for _, elem := range src.QueryTypes { + var _elem QueryType + _elem = elem + p.QueryTypes = append(p.QueryTypes, _elem) + } + } + + if src.DisplayName != "" { + p.DisplayName = kutils.StringDeepCopy(src.DisplayName) + } + + var _fieldOptions *FieldOptions + if src.FieldOptions != nil { + _fieldOptions = &FieldOptions{} + if err := _fieldOptions.DeepCopy(src.FieldOptions); err != nil { + return err + } + } + p.FieldOptions = _fieldOptions + + if src.Exist != nil { + tmp := *src.Exist + p.Exist = &tmp + } + + return nil +} + +func (p *FieldMetaInfoData) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + var issetFieldMetas bool = false + for { + fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + switch fieldId { + case 1: + if fieldTypeId == thrift.MAP { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetFieldMetas = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + } + + if !issetFieldMetas { + fieldId = 1 + goto RequiredFieldNotSetError + } + return offset, nil +ReadFieldBeginError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_FieldMetaInfoData[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +RequiredFieldNotSetError: + return offset, thrift.NewProtocolException(thrift.INVALID_DATA, fmt.Sprintf("required field %s is not set", fieldIDToName_FieldMetaInfoData[fieldId])) +} + +func (p *FieldMetaInfoData) FastReadField1(buf []byte) (int, error) { + offset := 0 + + _, _, size, l, err := thrift.Binary.ReadMapBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make(map[string]*FieldMeta, size) + values := make([]FieldMeta, size) + for i := 0; i < size; i++ { + var _key string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _key = v + } + + _val := &values[i] + _val.InitDefault() + if l, err := _val.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + + _field[_key] = _val + } + p.FieldMetas = _field + return offset, nil +} + +func (p *FieldMetaInfoData) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *FieldMetaInfoData) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *FieldMetaInfoData) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *FieldMetaInfoData) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.MAP, 1) + mapBeginOffset := offset + offset += thrift.Binary.MapBeginLength() + var length int + for k, v := range p.FieldMetas { + length++ + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, k) + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteMapBegin(buf[mapBeginOffset:], thrift.STRING, thrift.STRUCT, length) + return offset +} + +func (p *FieldMetaInfoData) field1Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.MapBeginLength() + for k, v := range p.FieldMetas { + _, _ = k, v + + l += thrift.Binary.StringLengthNocopy(k) + l += v.BLength() + } + return l +} + +func (p *FieldMetaInfoData) DeepCopy(s interface{}) error { + src, ok := s.(*FieldMetaInfoData) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.FieldMetas != nil { + p.FieldMetas = make(map[string]*FieldMeta, len(src.FieldMetas)) + for key, val := range src.FieldMetas { + var _key string + if key != "" { + _key = kutils.StringDeepCopy(key) + } + + var _val *FieldMeta + if val != nil { + _val = &FieldMeta{} + if err := _val.DeepCopy(val); err != nil { + return err + } + } + + p.FieldMetas[_key] = _val + } + } + + return nil +} From e6c0f6a86c907353e28e4a32af10d9ffc68ec66f Mon Sep 17 00:00:00 2001 From: "zhuangjiaqi.777" Date: Wed, 11 Feb 2026 14:08:31 +0800 Subject: [PATCH 05/17] feat: filter --- .../evaluation/application/convertor/common/common.go | 10 ++++++---- .../evaluation/application/evaluation_set_app.go | 1 + .../modules/evaluation/domain/component/rpc/dataset.go | 1 + backend/modules/evaluation/domain/entity/common.go | 9 +++++++-- backend/modules/evaluation/domain/entity/param.go | 1 + .../domain/service/evaluation_set_item_impl.go | 1 + 6 files changed, 17 insertions(+), 6 deletions(-) diff --git a/backend/modules/evaluation/application/convertor/common/common.go b/backend/modules/evaluation/application/convertor/common/common.go index 18cb91b4f..6cdc1d0f7 100644 --- a/backend/modules/evaluation/application/convertor/common/common.go +++ b/backend/modules/evaluation/application/convertor/common/common.go @@ -247,8 +247,9 @@ func ConvertOrderByDTO2DO(order *commondto.OrderBy) *commonentity.OrderBy { return nil } return &commonentity.OrderBy{ - Field: order.Field, - IsAsc: order.IsAsc, + Field: order.Field, + IsAsc: order.IsAsc, + IsFieldKey: order.IsFieldKey, } } @@ -258,8 +259,9 @@ func ConvertOrderByDO2DTO(order *commonentity.OrderBy) *commondto.OrderBy { return nil } return &commondto.OrderBy{ - Field: order.Field, - IsAsc: order.IsAsc, + Field: order.Field, + IsAsc: order.IsAsc, + IsFieldKey: order.IsFieldKey, } } diff --git a/backend/modules/evaluation/application/evaluation_set_app.go b/backend/modules/evaluation/application/evaluation_set_app.go index 62d5cd429..3c3e23c2d 100644 --- a/backend/modules/evaluation/application/evaluation_set_app.go +++ b/backend/modules/evaluation/application/evaluation_set_app.go @@ -515,6 +515,7 @@ func (e *EvaluationSetApplicationImpl) ListEvaluationSetItems(ctx context.Contex PageNumber: req.PageNumber, PageSize: req.PageSize, OrderBys: common.ConvertOrderByDTO2DOs(req.OrderBys), + Filter: req.Filter, }) if err != nil { return nil, err diff --git a/backend/modules/evaluation/domain/component/rpc/dataset.go b/backend/modules/evaluation/domain/component/rpc/dataset.go index 536174a3e..fa6ea8884 100644 --- a/backend/modules/evaluation/domain/component/rpc/dataset.go +++ b/backend/modules/evaluation/domain/component/rpc/dataset.go @@ -93,6 +93,7 @@ type ListDatasetItemsParam struct { PageToken *string OrderBys []*entity.OrderBy ItemIDsNotIn []int64 + Filter *entity.Filter } type BatchGetDatasetItemsParam struct { diff --git a/backend/modules/evaluation/domain/entity/common.go b/backend/modules/evaluation/domain/entity/common.go index 37e8e97a6..e8a65c8f0 100644 --- a/backend/modules/evaluation/domain/entity/common.go +++ b/backend/modules/evaluation/domain/entity/common.go @@ -8,8 +8,12 @@ import ( "time" "github.com/bytedance/gg/gptr" + "github.com/coze-dev/coze-loop/backend/kitex_gen/stone/fornax/ml_flow/domain/filter" ) +type Filter = filter.Filter +type FilterField = filter.FilterField + // ContentType 定义内容类型 type ContentType string @@ -116,8 +120,9 @@ type Audio struct { // OrderBy 排序结构体 type OrderBy struct { - Field *string `json:"field,omitempty"` - IsAsc *bool `json:"is_asc,omitempty"` + Field *string `json:"field,omitempty"` + IsAsc *bool `json:"is_asc,omitempty"` + IsFieldKey *bool `json:"is_field_key,omitempty"` } const ( diff --git a/backend/modules/evaluation/domain/entity/param.go b/backend/modules/evaluation/domain/entity/param.go index 783859b6f..eb05122af 100644 --- a/backend/modules/evaluation/domain/entity/param.go +++ b/backend/modules/evaluation/domain/entity/param.go @@ -55,6 +55,7 @@ type ListEvaluationSetItemsParam struct { PageToken *string OrderBys []*OrderBy ItemIDsNotIn []int64 + Filter *Filter } type BatchGetEvaluationSetItemsParam struct { SpaceID int64 diff --git a/backend/modules/evaluation/domain/service/evaluation_set_item_impl.go b/backend/modules/evaluation/domain/service/evaluation_set_item_impl.go index 4094e4f48..73c9c5ff1 100644 --- a/backend/modules/evaluation/domain/service/evaluation_set_item_impl.go +++ b/backend/modules/evaluation/domain/service/evaluation_set_item_impl.go @@ -77,6 +77,7 @@ func (d *EvaluationSetItemServiceImpl) ListEvaluationSetItems(ctx context.Contex PageToken: param.PageToken, OrderBys: param.OrderBys, ItemIDsNotIn: param.ItemIDsNotIn, + Filter: param.Filter, } if param.VersionID == nil { return d.datasetRPCAdapter.ListDatasetItems(ctx, listParam) From aa200994baee98d970ecc456af9eda7963ad30cf Mon Sep 17 00:00:00 2001 From: "zhuangjiaqi.777" Date: Wed, 11 Feb 2026 21:27:56 +0800 Subject: [PATCH 06/17] chore: filter enum --- .../coze/loop/data/domain/filter.thrift | 46 +++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/idl/thrift/coze/loop/data/domain/filter.thrift b/idl/thrift/coze/loop/data/domain/filter.thrift index d283e57d5..92ce39463 100644 --- a/idl/thrift/coze/loop/data/domain/filter.thrift +++ b/idl/thrift/coze/loop/data/domain/filter.thrift @@ -1,33 +1,33 @@ namespace go stone.fornax.ml_flow.domain.filter typedef string QueryType -const QueryType query_type_match = "match" -const QueryType query_type_not_match = "not_match" -const QueryType query_type_eq = "eq" -const QueryType query_type_not_eq = "not_eq" -const QueryType query_type_lte= "lte" -const QueryType query_type_gte = "gte" -const QueryType query_type_lt = "lt" -const QueryType query_type_gt = "gt" -const QueryType query_type_exist = "exist" -const QueryType query_type_not_exist = "not_exist" -const QueryType query_type_in = "in" -const QueryType query_type_not_in = "not_in" -const QueryType query_type_is_null = "is_null" -const QueryType query_type_not_null = "not_null" +const QueryType QueryType_Match = "match" +const QueryType QueryType_NotMatch = "not_match" +const QueryType QueryType_Eq = "eq" +const QueryType QueryType_NotEq = "not_eq" +const QueryType QueryType_Lte= "lte" +const QueryType QueryType_Gte = "gte" +const QueryType QueryType_Lt = "lt" +const QueryType QueryType_Gt = "gt" +const QueryType QueryType_Exist = "exist" +const QueryType QueryType_NotExist = "not_exist" +const QueryType QueryType_In = "in" +const QueryType QueryType_NotIn = "not_in" +const QueryType QueryType_IsNull = "is_null" +const QueryType QueryType_NotNull = "not_null" typedef string QueryRelation -const QueryRelation query_relation_and = "and" -const QueryRelation query_relation_or = "or" +const QueryRelation QueryRelation_And = "and" +const QueryRelation QueryRelation_Or = "or" typedef string FieldType -const FieldType field_type_string = "string" -const FieldType field_type_long = "long" -const FieldType field_type_double = "double" -const FieldType field_type_bool = "bool" -const FieldType field_type_float = "float" -const FieldType field_type_tag = "tag" -const FieldType field_type_integer = "integer" +const FieldType FieldType_String = "string" +const FieldType FieldType_Long = "long" +const FieldType FieldType_Double = "double" +const FieldType FieldType_Bool = "bool" +const FieldType FieldType_Float = "float" +const FieldType FieldType_Tag = "tag" +const FieldType FieldType_Integer = "integer" From 674e9fa717c107eb2e7774f7f1cab1243822f784 Mon Sep 17 00:00:00 2001 From: "zhuangjiaqi.777" Date: Thu, 12 Feb 2026 11:33:04 +0800 Subject: [PATCH 07/17] chore: add ts enum tag --- idl/thrift/coze/loop/data/domain/filter.thrift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/idl/thrift/coze/loop/data/domain/filter.thrift b/idl/thrift/coze/loop/data/domain/filter.thrift index 92ce39463..ed4eb0f79 100644 --- a/idl/thrift/coze/loop/data/domain/filter.thrift +++ b/idl/thrift/coze/loop/data/domain/filter.thrift @@ -1,6 +1,6 @@ namespace go stone.fornax.ml_flow.domain.filter -typedef string QueryType +typedef string QueryType (ts.enum="true") const QueryType QueryType_Match = "match" const QueryType QueryType_NotMatch = "not_match" const QueryType QueryType_Eq = "eq" @@ -16,11 +16,11 @@ const QueryType QueryType_NotIn = "not_in" const QueryType QueryType_IsNull = "is_null" const QueryType QueryType_NotNull = "not_null" -typedef string QueryRelation +typedef string QueryRelation (ts.enum="true") const QueryRelation QueryRelation_And = "and" const QueryRelation QueryRelation_Or = "or" -typedef string FieldType +typedef string FieldType (ts.enum="true") const FieldType FieldType_String = "string" const FieldType FieldType_Long = "long" const FieldType FieldType_Double = "double" From 428b0bcf5e19dac050085b2ea93c3947b2c006ff Mon Sep 17 00:00:00 2001 From: "zhuangjiaqi.777" Date: Fri, 13 Feb 2026 14:43:51 +0800 Subject: [PATCH 08/17] feat: return filter total --- backend/go.mod | 2 +- .../data/dataset/coze.loop.data.dataset.go | 154 ++++++++++++ .../data/dataset/k-coze.loop.data.dataset.go | 106 ++++++++ .../eval_set/coze.loop.evaluation.eval_set.go | 77 ++++++ .../k-coze.loop.evaluation.eval_set.go | 53 ++++ .../application/eval_openapi_app.go | 2 +- .../application/evaluation_set_app.go | 3 +- .../domain/component/rpc/dataset.go | 4 +- .../component/rpc/mocks/data_provider.go | 236 +++++++++--------- .../domain/service/evaluation_set_item.go | 2 +- .../service/evaluation_set_item_impl.go | 4 +- .../domain/service/expt_annotate_impl.go | 2 +- .../service/expt_run_scheduler_mode_impl.go | 2 +- .../evaluation/infra/rpc/data/dataset.go | 20 +- .../loop/data/coze.loop.data.dataset.thrift | 2 + .../coze.loop.evaluation.eval_set.thrift | 1 + 16 files changed, 530 insertions(+), 140 deletions(-) diff --git a/backend/go.mod b/backend/go.mod index 27b853e23..eef881f11 100644 --- a/backend/go.mod +++ b/backend/go.mod @@ -170,7 +170,7 @@ require ( github.com/go-sql-driver/mysql v1.9.2 // indirect github.com/gocraft/dbr/v2 v2.7.2 // indirect github.com/golang-jwt/jwt v3.2.2+incompatible // indirect - github.com/golang/mock v1.6.0 // indirect + github.com/golang/mock v1.6.0 github.com/golang/protobuf v1.5.4 // indirect github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5 // indirect github.com/google/s2a-go v0.1.8 // indirect diff --git a/backend/kitex_gen/coze/loop/data/dataset/coze.loop.data.dataset.go b/backend/kitex_gen/coze/loop/data/dataset/coze.loop.data.dataset.go index 03a2ae745..067c09f79 100644 --- a/backend/kitex_gen/coze/loop/data/dataset/coze.loop.data.dataset.go +++ b/backend/kitex_gen/coze/loop/data/dataset/coze.loop.data.dataset.go @@ -17444,6 +17444,7 @@ type ListDatasetItemsResponse struct { /* pagination */ NextPageToken *string `thrift:"next_page_token,100,optional" frugal:"100,optional,string" form:"next_page_token" json:"next_page_token,omitempty" query:"next_page_token"` Total *int64 `thrift:"total,101,optional" frugal:"101,optional,i64" json:"total" form:"total" query:"total"` + FilterTotal *int64 `thrift:"filter_total,102,optional" frugal:"102,optional,i64" json:"fliter_total" form:"filter_total" query:"filter_total"` BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` } @@ -17490,6 +17491,18 @@ func (p *ListDatasetItemsResponse) GetTotal() (v int64) { return *p.Total } +var ListDatasetItemsResponse_FilterTotal_DEFAULT int64 + +func (p *ListDatasetItemsResponse) GetFilterTotal() (v int64) { + if p == nil { + return + } + if !p.IsSetFilterTotal() { + return ListDatasetItemsResponse_FilterTotal_DEFAULT + } + return *p.FilterTotal +} + var ListDatasetItemsResponse_BaseResp_DEFAULT *base.BaseResp func (p *ListDatasetItemsResponse) GetBaseResp() (v *base.BaseResp) { @@ -17510,6 +17523,9 @@ func (p *ListDatasetItemsResponse) SetNextPageToken(val *string) { func (p *ListDatasetItemsResponse) SetTotal(val *int64) { p.Total = val } +func (p *ListDatasetItemsResponse) SetFilterTotal(val *int64) { + p.FilterTotal = val +} func (p *ListDatasetItemsResponse) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } @@ -17518,6 +17534,7 @@ var fieldIDToName_ListDatasetItemsResponse = map[int16]string{ 1: "items", 100: "next_page_token", 101: "total", + 102: "filter_total", 255: "BaseResp", } @@ -17533,6 +17550,10 @@ func (p *ListDatasetItemsResponse) IsSetTotal() bool { return p.Total != nil } +func (p *ListDatasetItemsResponse) IsSetFilterTotal() bool { + return p.FilterTotal != nil +} + func (p *ListDatasetItemsResponse) IsSetBaseResp() bool { return p.BaseResp != nil } @@ -17579,6 +17600,14 @@ func (p *ListDatasetItemsResponse) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 102: + if fieldTypeId == thrift.I64 { + if err = p.ReadField102(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } case 255: if fieldTypeId == thrift.STRUCT { if err = p.ReadField255(iprot); err != nil { @@ -17661,6 +17690,17 @@ func (p *ListDatasetItemsResponse) ReadField101(iprot thrift.TProtocol) error { p.Total = _field return nil } +func (p *ListDatasetItemsResponse) ReadField102(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.FilterTotal = _field + return nil +} func (p *ListDatasetItemsResponse) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { @@ -17688,6 +17728,10 @@ func (p *ListDatasetItemsResponse) Write(oprot thrift.TProtocol) (err error) { fieldId = 101 goto WriteFieldError } + if err = p.writeField102(oprot); err != nil { + fieldId = 102 + goto WriteFieldError + } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -17772,6 +17816,24 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 101 end error: ", p), err) } +func (p *ListDatasetItemsResponse) writeField102(oprot thrift.TProtocol) (err error) { + if p.IsSetFilterTotal() { + if err = oprot.WriteFieldBegin("filter_total", thrift.I64, 102); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.FilterTotal); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 102 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 102 end error: ", p), err) +} func (p *ListDatasetItemsResponse) writeField255(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -17812,6 +17874,9 @@ func (p *ListDatasetItemsResponse) DeepEqual(ano *ListDatasetItemsResponse) bool if !p.Field101DeepEqual(ano.Total) { return false } + if !p.Field102DeepEqual(ano.FilterTotal) { + return false + } if !p.Field255DeepEqual(ano.BaseResp) { return false } @@ -17855,6 +17920,18 @@ func (p *ListDatasetItemsResponse) Field101DeepEqual(src *int64) bool { } return true } +func (p *ListDatasetItemsResponse) Field102DeepEqual(src *int64) bool { + + if p.FilterTotal == src { + return true + } else if p.FilterTotal == nil || src == nil { + return false + } + if *p.FilterTotal != *src { + return false + } + return true +} func (p *ListDatasetItemsResponse) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { @@ -18587,6 +18664,7 @@ type ListDatasetItemsByVersionResponse struct { /* pagination */ NextPageToken *string `thrift:"next_page_token,100,optional" frugal:"100,optional,string" json:"next_page_token" form:"next_page_token" query:"next_page_token"` Total *int64 `thrift:"total,101,optional" frugal:"101,optional,i64" json:"total" form:"total" query:"total"` + FilterTotal *int64 `thrift:"filter_total,102,optional" frugal:"102,optional,i64" json:"fliter_total" form:"filter_total" query:"filter_total"` BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` } @@ -18633,6 +18711,18 @@ func (p *ListDatasetItemsByVersionResponse) GetTotal() (v int64) { return *p.Total } +var ListDatasetItemsByVersionResponse_FilterTotal_DEFAULT int64 + +func (p *ListDatasetItemsByVersionResponse) GetFilterTotal() (v int64) { + if p == nil { + return + } + if !p.IsSetFilterTotal() { + return ListDatasetItemsByVersionResponse_FilterTotal_DEFAULT + } + return *p.FilterTotal +} + var ListDatasetItemsByVersionResponse_BaseResp_DEFAULT *base.BaseResp func (p *ListDatasetItemsByVersionResponse) GetBaseResp() (v *base.BaseResp) { @@ -18653,6 +18743,9 @@ func (p *ListDatasetItemsByVersionResponse) SetNextPageToken(val *string) { func (p *ListDatasetItemsByVersionResponse) SetTotal(val *int64) { p.Total = val } +func (p *ListDatasetItemsByVersionResponse) SetFilterTotal(val *int64) { + p.FilterTotal = val +} func (p *ListDatasetItemsByVersionResponse) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } @@ -18661,6 +18754,7 @@ var fieldIDToName_ListDatasetItemsByVersionResponse = map[int16]string{ 1: "items", 100: "next_page_token", 101: "total", + 102: "filter_total", 255: "BaseResp", } @@ -18676,6 +18770,10 @@ func (p *ListDatasetItemsByVersionResponse) IsSetTotal() bool { return p.Total != nil } +func (p *ListDatasetItemsByVersionResponse) IsSetFilterTotal() bool { + return p.FilterTotal != nil +} + func (p *ListDatasetItemsByVersionResponse) IsSetBaseResp() bool { return p.BaseResp != nil } @@ -18722,6 +18820,14 @@ func (p *ListDatasetItemsByVersionResponse) Read(iprot thrift.TProtocol) (err er } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 102: + if fieldTypeId == thrift.I64 { + if err = p.ReadField102(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } case 255: if fieldTypeId == thrift.STRUCT { if err = p.ReadField255(iprot); err != nil { @@ -18804,6 +18910,17 @@ func (p *ListDatasetItemsByVersionResponse) ReadField101(iprot thrift.TProtocol) p.Total = _field return nil } +func (p *ListDatasetItemsByVersionResponse) ReadField102(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.FilterTotal = _field + return nil +} func (p *ListDatasetItemsByVersionResponse) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { @@ -18831,6 +18948,10 @@ func (p *ListDatasetItemsByVersionResponse) Write(oprot thrift.TProtocol) (err e fieldId = 101 goto WriteFieldError } + if err = p.writeField102(oprot); err != nil { + fieldId = 102 + goto WriteFieldError + } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -18915,6 +19036,24 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 101 end error: ", p), err) } +func (p *ListDatasetItemsByVersionResponse) writeField102(oprot thrift.TProtocol) (err error) { + if p.IsSetFilterTotal() { + if err = oprot.WriteFieldBegin("filter_total", thrift.I64, 102); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.FilterTotal); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 102 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 102 end error: ", p), err) +} func (p *ListDatasetItemsByVersionResponse) writeField255(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -18955,6 +19094,9 @@ func (p *ListDatasetItemsByVersionResponse) DeepEqual(ano *ListDatasetItemsByVer if !p.Field101DeepEqual(ano.Total) { return false } + if !p.Field102DeepEqual(ano.FilterTotal) { + return false + } if !p.Field255DeepEqual(ano.BaseResp) { return false } @@ -18998,6 +19140,18 @@ func (p *ListDatasetItemsByVersionResponse) Field101DeepEqual(src *int64) bool { } return true } +func (p *ListDatasetItemsByVersionResponse) Field102DeepEqual(src *int64) bool { + + if p.FilterTotal == src { + return true + } else if p.FilterTotal == nil || src == nil { + return false + } + if *p.FilterTotal != *src { + return false + } + return true +} func (p *ListDatasetItemsByVersionResponse) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { diff --git a/backend/kitex_gen/coze/loop/data/dataset/k-coze.loop.data.dataset.go b/backend/kitex_gen/coze/loop/data/dataset/k-coze.loop.data.dataset.go index e59633e87..d859f3991 100644 --- a/backend/kitex_gen/coze/loop/data/dataset/k-coze.loop.data.dataset.go +++ b/backend/kitex_gen/coze/loop/data/dataset/k-coze.loop.data.dataset.go @@ -12737,6 +12737,20 @@ func (p *ListDatasetItemsResponse) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 102: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField102(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } case 255: if fieldTypeId == thrift.STRUCT { l, err = p.FastReadField255(buf[offset:]) @@ -12822,6 +12836,20 @@ func (p *ListDatasetItemsResponse) FastReadField101(buf []byte) (int, error) { return offset, nil } +func (p *ListDatasetItemsResponse) FastReadField102(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.FilterTotal = _field + return offset, nil +} + func (p *ListDatasetItemsResponse) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBaseResp() @@ -12842,6 +12870,7 @@ func (p *ListDatasetItemsResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWr offset := 0 if p != nil { offset += p.fastWriteField101(buf[offset:], w) + offset += p.fastWriteField102(buf[offset:], w) offset += p.fastWriteField1(buf[offset:], w) offset += p.fastWriteField100(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) @@ -12856,6 +12885,7 @@ func (p *ListDatasetItemsResponse) BLength() int { l += p.field1Length() l += p.field100Length() l += p.field101Length() + l += p.field102Length() l += p.field255Length() } l += thrift.Binary.FieldStopLength() @@ -12896,6 +12926,15 @@ func (p *ListDatasetItemsResponse) fastWriteField101(buf []byte, w thrift.Nocopy return offset } +func (p *ListDatasetItemsResponse) fastWriteField102(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetFilterTotal() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 102) + offset += thrift.Binary.WriteI64(buf[offset:], *p.FilterTotal) + } + return offset +} + func (p *ListDatasetItemsResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) @@ -12934,6 +12973,15 @@ func (p *ListDatasetItemsResponse) field101Length() int { return l } +func (p *ListDatasetItemsResponse) field102Length() int { + l := 0 + if p.IsSetFilterTotal() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + func (p *ListDatasetItemsResponse) field255Length() int { l := 0 l += thrift.Binary.FieldBeginLength() @@ -12975,6 +13023,11 @@ func (p *ListDatasetItemsResponse) DeepCopy(s interface{}) error { p.Total = &tmp } + if src.FilterTotal != nil { + tmp := *src.FilterTotal + p.FilterTotal = &tmp + } + var _baseResp *base.BaseResp if src.BaseResp != nil { _baseResp = &base.BaseResp{} @@ -13572,6 +13625,20 @@ func (p *ListDatasetItemsByVersionResponse) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 102: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField102(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } case 255: if fieldTypeId == thrift.STRUCT { l, err = p.FastReadField255(buf[offset:]) @@ -13657,6 +13724,20 @@ func (p *ListDatasetItemsByVersionResponse) FastReadField101(buf []byte) (int, e return offset, nil } +func (p *ListDatasetItemsByVersionResponse) FastReadField102(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.FilterTotal = _field + return offset, nil +} + func (p *ListDatasetItemsByVersionResponse) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBaseResp() @@ -13677,6 +13758,7 @@ func (p *ListDatasetItemsByVersionResponse) FastWriteNocopy(buf []byte, w thrift offset := 0 if p != nil { offset += p.fastWriteField101(buf[offset:], w) + offset += p.fastWriteField102(buf[offset:], w) offset += p.fastWriteField1(buf[offset:], w) offset += p.fastWriteField100(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) @@ -13691,6 +13773,7 @@ func (p *ListDatasetItemsByVersionResponse) BLength() int { l += p.field1Length() l += p.field100Length() l += p.field101Length() + l += p.field102Length() l += p.field255Length() } l += thrift.Binary.FieldStopLength() @@ -13731,6 +13814,15 @@ func (p *ListDatasetItemsByVersionResponse) fastWriteField101(buf []byte, w thri return offset } +func (p *ListDatasetItemsByVersionResponse) fastWriteField102(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetFilterTotal() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 102) + offset += thrift.Binary.WriteI64(buf[offset:], *p.FilterTotal) + } + return offset +} + func (p *ListDatasetItemsByVersionResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) @@ -13769,6 +13861,15 @@ func (p *ListDatasetItemsByVersionResponse) field101Length() int { return l } +func (p *ListDatasetItemsByVersionResponse) field102Length() int { + l := 0 + if p.IsSetFilterTotal() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + func (p *ListDatasetItemsByVersionResponse) field255Length() int { l := 0 l += thrift.Binary.FieldBeginLength() @@ -13810,6 +13911,11 @@ func (p *ListDatasetItemsByVersionResponse) DeepCopy(s interface{}) error { p.Total = &tmp } + if src.FilterTotal != nil { + tmp := *src.FilterTotal + p.FilterTotal = &tmp + } + var _baseResp *base.BaseResp if src.BaseResp != nil { _baseResp = &base.BaseResp{} diff --git a/backend/kitex_gen/coze/loop/evaluation/eval_set/coze.loop.evaluation.eval_set.go b/backend/kitex_gen/coze/loop/evaluation/eval_set/coze.loop.evaluation.eval_set.go index 7c0446367..8ba1488e6 100644 --- a/backend/kitex_gen/coze/loop/evaluation/eval_set/coze.loop.evaluation.eval_set.go +++ b/backend/kitex_gen/coze/loop/evaluation/eval_set/coze.loop.evaluation.eval_set.go @@ -13967,6 +13967,7 @@ type ListEvaluationSetItemsResponse struct { Items []*eval_set.EvaluationSetItem `thrift:"items,1,optional" frugal:"1,optional,list" form:"items" json:"items,omitempty" query:"items"` Total *int64 `thrift:"total,100,optional" frugal:"100,optional,i64" json:"total" form:"total" query:"total"` NextPageToken *string `thrift:"next_page_token,101,optional" frugal:"101,optional,string" form:"next_page_token" json:"next_page_token,omitempty" query:"next_page_token"` + FilterTotal *int64 `thrift:"filterTotal,102,optional" frugal:"102,optional,i64" json:"filter_total" form:"filterTotal" query:"filterTotal"` BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` } @@ -14013,6 +14014,18 @@ func (p *ListEvaluationSetItemsResponse) GetNextPageToken() (v string) { return *p.NextPageToken } +var ListEvaluationSetItemsResponse_FilterTotal_DEFAULT int64 + +func (p *ListEvaluationSetItemsResponse) GetFilterTotal() (v int64) { + if p == nil { + return + } + if !p.IsSetFilterTotal() { + return ListEvaluationSetItemsResponse_FilterTotal_DEFAULT + } + return *p.FilterTotal +} + var ListEvaluationSetItemsResponse_BaseResp_DEFAULT *base.BaseResp func (p *ListEvaluationSetItemsResponse) GetBaseResp() (v *base.BaseResp) { @@ -14033,6 +14046,9 @@ func (p *ListEvaluationSetItemsResponse) SetTotal(val *int64) { func (p *ListEvaluationSetItemsResponse) SetNextPageToken(val *string) { p.NextPageToken = val } +func (p *ListEvaluationSetItemsResponse) SetFilterTotal(val *int64) { + p.FilterTotal = val +} func (p *ListEvaluationSetItemsResponse) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } @@ -14041,6 +14057,7 @@ var fieldIDToName_ListEvaluationSetItemsResponse = map[int16]string{ 1: "items", 100: "total", 101: "next_page_token", + 102: "filterTotal", 255: "BaseResp", } @@ -14056,6 +14073,10 @@ func (p *ListEvaluationSetItemsResponse) IsSetNextPageToken() bool { return p.NextPageToken != nil } +func (p *ListEvaluationSetItemsResponse) IsSetFilterTotal() bool { + return p.FilterTotal != nil +} + func (p *ListEvaluationSetItemsResponse) IsSetBaseResp() bool { return p.BaseResp != nil } @@ -14102,6 +14123,14 @@ func (p *ListEvaluationSetItemsResponse) Read(iprot thrift.TProtocol) (err error } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 102: + if fieldTypeId == thrift.I64 { + if err = p.ReadField102(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } case 255: if fieldTypeId == thrift.STRUCT { if err = p.ReadField255(iprot); err != nil { @@ -14184,6 +14213,17 @@ func (p *ListEvaluationSetItemsResponse) ReadField101(iprot thrift.TProtocol) er p.NextPageToken = _field return nil } +func (p *ListEvaluationSetItemsResponse) ReadField102(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.FilterTotal = _field + return nil +} func (p *ListEvaluationSetItemsResponse) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { @@ -14211,6 +14251,10 @@ func (p *ListEvaluationSetItemsResponse) Write(oprot thrift.TProtocol) (err erro fieldId = 101 goto WriteFieldError } + if err = p.writeField102(oprot); err != nil { + fieldId = 102 + goto WriteFieldError + } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -14295,6 +14339,24 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 101 end error: ", p), err) } +func (p *ListEvaluationSetItemsResponse) writeField102(oprot thrift.TProtocol) (err error) { + if p.IsSetFilterTotal() { + if err = oprot.WriteFieldBegin("filterTotal", thrift.I64, 102); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.FilterTotal); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 102 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 102 end error: ", p), err) +} func (p *ListEvaluationSetItemsResponse) writeField255(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -14335,6 +14397,9 @@ func (p *ListEvaluationSetItemsResponse) DeepEqual(ano *ListEvaluationSetItemsRe if !p.Field101DeepEqual(ano.NextPageToken) { return false } + if !p.Field102DeepEqual(ano.FilterTotal) { + return false + } if !p.Field255DeepEqual(ano.BaseResp) { return false } @@ -14378,6 +14443,18 @@ func (p *ListEvaluationSetItemsResponse) Field101DeepEqual(src *string) bool { } return true } +func (p *ListEvaluationSetItemsResponse) Field102DeepEqual(src *int64) bool { + + if p.FilterTotal == src { + return true + } else if p.FilterTotal == nil || src == nil { + return false + } + if *p.FilterTotal != *src { + return false + } + return true +} func (p *ListEvaluationSetItemsResponse) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { diff --git a/backend/kitex_gen/coze/loop/evaluation/eval_set/k-coze.loop.evaluation.eval_set.go b/backend/kitex_gen/coze/loop/evaluation/eval_set/k-coze.loop.evaluation.eval_set.go index c32bc57e0..1e1536b70 100644 --- a/backend/kitex_gen/coze/loop/evaluation/eval_set/k-coze.loop.evaluation.eval_set.go +++ b/backend/kitex_gen/coze/loop/evaluation/eval_set/k-coze.loop.evaluation.eval_set.go @@ -10293,6 +10293,20 @@ func (p *ListEvaluationSetItemsResponse) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 102: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField102(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } case 255: if fieldTypeId == thrift.STRUCT { l, err = p.FastReadField255(buf[offset:]) @@ -10378,6 +10392,20 @@ func (p *ListEvaluationSetItemsResponse) FastReadField101(buf []byte) (int, erro return offset, nil } +func (p *ListEvaluationSetItemsResponse) FastReadField102(buf []byte) (int, error) { + offset := 0 + + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.FilterTotal = _field + return offset, nil +} + func (p *ListEvaluationSetItemsResponse) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBaseResp() @@ -10398,6 +10426,7 @@ func (p *ListEvaluationSetItemsResponse) FastWriteNocopy(buf []byte, w thrift.No offset := 0 if p != nil { offset += p.fastWriteField100(buf[offset:], w) + offset += p.fastWriteField102(buf[offset:], w) offset += p.fastWriteField1(buf[offset:], w) offset += p.fastWriteField101(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) @@ -10412,6 +10441,7 @@ func (p *ListEvaluationSetItemsResponse) BLength() int { l += p.field1Length() l += p.field100Length() l += p.field101Length() + l += p.field102Length() l += p.field255Length() } l += thrift.Binary.FieldStopLength() @@ -10452,6 +10482,15 @@ func (p *ListEvaluationSetItemsResponse) fastWriteField101(buf []byte, w thrift. return offset } +func (p *ListEvaluationSetItemsResponse) fastWriteField102(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetFilterTotal() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 102) + offset += thrift.Binary.WriteI64(buf[offset:], *p.FilterTotal) + } + return offset +} + func (p *ListEvaluationSetItemsResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) @@ -10490,6 +10529,15 @@ func (p *ListEvaluationSetItemsResponse) field101Length() int { return l } +func (p *ListEvaluationSetItemsResponse) field102Length() int { + l := 0 + if p.IsSetFilterTotal() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + func (p *ListEvaluationSetItemsResponse) field255Length() int { l := 0 l += thrift.Binary.FieldBeginLength() @@ -10531,6 +10579,11 @@ func (p *ListEvaluationSetItemsResponse) DeepCopy(s interface{}) error { p.NextPageToken = &tmp } + if src.FilterTotal != nil { + tmp := *src.FilterTotal + p.FilterTotal = &tmp + } + var _baseResp *base.BaseResp if src.BaseResp != nil { _baseResp = &base.BaseResp{} diff --git a/backend/modules/evaluation/application/eval_openapi_app.go b/backend/modules/evaluation/application/eval_openapi_app.go index 3546abe73..5b51e26bc 100644 --- a/backend/modules/evaluation/application/eval_openapi_app.go +++ b/backend/modules/evaluation/application/eval_openapi_app.go @@ -622,7 +622,7 @@ func (e *EvalOpenAPIApplication) ListEvaluationSetVersionItemsOApi(ctx context.C } // 调用domain服务 - items, total, nextPageToken, err := e.evaluationSetItemService.ListEvaluationSetItems(ctx, &entity.ListEvaluationSetItemsParam{ + items, total, _, nextPageToken, err := e.evaluationSetItemService.ListEvaluationSetItems(ctx, &entity.ListEvaluationSetItemsParam{ SpaceID: req.GetWorkspaceID(), EvaluationSetID: req.GetEvaluationSetID(), VersionID: req.VersionID, diff --git a/backend/modules/evaluation/application/evaluation_set_app.go b/backend/modules/evaluation/application/evaluation_set_app.go index 3c3e23c2d..cad642907 100644 --- a/backend/modules/evaluation/application/evaluation_set_app.go +++ b/backend/modules/evaluation/application/evaluation_set_app.go @@ -508,7 +508,7 @@ func (e *EvaluationSetApplicationImpl) ListEvaluationSetItems(ctx context.Contex return nil, err } // domain调用 - items, total, nextCursor, err := e.evaluationSetItemService.ListEvaluationSetItems(ctx, &entity.ListEvaluationSetItemsParam{ + items, total, filterTotal, nextCursor, err := e.evaluationSetItemService.ListEvaluationSetItems(ctx, &entity.ListEvaluationSetItemsParam{ SpaceID: req.WorkspaceID, EvaluationSetID: req.EvaluationSetID, VersionID: req.VersionID, @@ -524,6 +524,7 @@ func (e *EvaluationSetApplicationImpl) ListEvaluationSetItems(ctx context.Contex return &eval_set.ListEvaluationSetItemsResponse{ Items: evaluation_set.ItemDO2DTOs(items), Total: total, + FilterTotal: filterTotal, NextPageToken: nextCursor, }, nil } diff --git a/backend/modules/evaluation/domain/component/rpc/dataset.go b/backend/modules/evaluation/domain/component/rpc/dataset.go index fa6ea8884..ffeafb022 100644 --- a/backend/modules/evaluation/domain/component/rpc/dataset.go +++ b/backend/modules/evaluation/domain/component/rpc/dataset.go @@ -31,8 +31,8 @@ type IDatasetRPCAdapter interface { BatchUpdateDatasetItems(ctx context.Context, param *BatchUpdateDatasetItemsParam) (errorGroup []*entity.ItemErrorGroup, itemOutputs []*entity.DatasetItemOutput, err error) UpdateDatasetItem(ctx context.Context, spaceID, evaluationSetID, itemID int64, turns []*entity.Turn) (err error) BatchDeleteDatasetItems(ctx context.Context, spaceID, evaluationSetID int64, itemIDs []int64) (err error) - ListDatasetItems(ctx context.Context, param *ListDatasetItemsParam) (items []*entity.EvaluationSetItem, total *int64, nextPageToken *string, err error) - ListDatasetItemsByVersion(ctx context.Context, param *ListDatasetItemsParam) (items []*entity.EvaluationSetItem, total *int64, nextPageToken *string, err error) + ListDatasetItems(ctx context.Context, param *ListDatasetItemsParam) (items []*entity.EvaluationSetItem, total *int64, filterTotal *int64, nextPageToken *string, err error) + ListDatasetItemsByVersion(ctx context.Context, param *ListDatasetItemsParam) (items []*entity.EvaluationSetItem, total *int64, filterTotal *int64, nextPageToken *string, err error) BatchGetDatasetItems(ctx context.Context, param *BatchGetDatasetItemsParam) (items []*entity.EvaluationSetItem, err error) BatchGetDatasetItemsByVersion(ctx context.Context, param *BatchGetDatasetItemsParam) (items []*entity.EvaluationSetItem, err error) ClearEvaluationSetDraftItem(ctx context.Context, spaceID, evaluationSetID int64) (err error) diff --git a/backend/modules/evaluation/domain/component/rpc/mocks/data_provider.go b/backend/modules/evaluation/domain/component/rpc/mocks/data_provider.go index 2768e04d8..4c366d7b5 100644 --- a/backend/modules/evaluation/domain/component/rpc/mocks/data_provider.go +++ b/backend/modules/evaluation/domain/component/rpc/mocks/data_provider.go @@ -1,10 +1,5 @@ // Code generated by MockGen. DO NOT EDIT. // Source: github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/component/rpc (interfaces: IDatasetRPCAdapter) -// -// Generated by this command: -// -// mockgen -destination=mocks/data_provider.go -package=mocks . IDatasetRPCAdapter -// // Package mocks is a generated GoMock package. package mocks @@ -15,14 +10,13 @@ import ( rpc "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/component/rpc" entity "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/entity" - gomock "go.uber.org/mock/gomock" + gomock "github.com/golang/mock/gomock" ) // MockIDatasetRPCAdapter is a mock of IDatasetRPCAdapter interface. type MockIDatasetRPCAdapter struct { ctrl *gomock.Controller recorder *MockIDatasetRPCAdapterMockRecorder - isgomock struct{} } // MockIDatasetRPCAdapterMockRecorder is the mock recorder for MockIDatasetRPCAdapter. @@ -43,9 +37,9 @@ func (m *MockIDatasetRPCAdapter) EXPECT() *MockIDatasetRPCAdapterMockRecorder { } // BatchCreateDatasetItems mocks base method. -func (m *MockIDatasetRPCAdapter) BatchCreateDatasetItems(ctx context.Context, param *rpc.BatchCreateDatasetItemsParam) (map[int64]int64, []*entity.ItemErrorGroup, []*entity.DatasetItemOutput, error) { +func (m *MockIDatasetRPCAdapter) BatchCreateDatasetItems(arg0 context.Context, arg1 *rpc.BatchCreateDatasetItemsParam) (map[int64]int64, []*entity.ItemErrorGroup, []*entity.DatasetItemOutput, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "BatchCreateDatasetItems", ctx, param) + ret := m.ctrl.Call(m, "BatchCreateDatasetItems", arg0, arg1) ret0, _ := ret[0].(map[int64]int64) ret1, _ := ret[1].([]*entity.ItemErrorGroup) ret2, _ := ret[2].([]*entity.DatasetItemOutput) @@ -54,89 +48,89 @@ func (m *MockIDatasetRPCAdapter) BatchCreateDatasetItems(ctx context.Context, pa } // BatchCreateDatasetItems indicates an expected call of BatchCreateDatasetItems. -func (mr *MockIDatasetRPCAdapterMockRecorder) BatchCreateDatasetItems(ctx, param any) *gomock.Call { +func (mr *MockIDatasetRPCAdapterMockRecorder) BatchCreateDatasetItems(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchCreateDatasetItems", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).BatchCreateDatasetItems), ctx, param) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchCreateDatasetItems", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).BatchCreateDatasetItems), arg0, arg1) } // BatchDeleteDatasetItems mocks base method. -func (m *MockIDatasetRPCAdapter) BatchDeleteDatasetItems(ctx context.Context, spaceID, evaluationSetID int64, itemIDs []int64) error { +func (m *MockIDatasetRPCAdapter) BatchDeleteDatasetItems(arg0 context.Context, arg1, arg2 int64, arg3 []int64) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "BatchDeleteDatasetItems", ctx, spaceID, evaluationSetID, itemIDs) + ret := m.ctrl.Call(m, "BatchDeleteDatasetItems", arg0, arg1, arg2, arg3) ret0, _ := ret[0].(error) return ret0 } // BatchDeleteDatasetItems indicates an expected call of BatchDeleteDatasetItems. -func (mr *MockIDatasetRPCAdapterMockRecorder) BatchDeleteDatasetItems(ctx, spaceID, evaluationSetID, itemIDs any) *gomock.Call { +func (mr *MockIDatasetRPCAdapterMockRecorder) BatchDeleteDatasetItems(arg0, arg1, arg2, arg3 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchDeleteDatasetItems", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).BatchDeleteDatasetItems), ctx, spaceID, evaluationSetID, itemIDs) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchDeleteDatasetItems", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).BatchDeleteDatasetItems), arg0, arg1, arg2, arg3) } // BatchGetDatasetItems mocks base method. -func (m *MockIDatasetRPCAdapter) BatchGetDatasetItems(ctx context.Context, param *rpc.BatchGetDatasetItemsParam) ([]*entity.EvaluationSetItem, error) { +func (m *MockIDatasetRPCAdapter) BatchGetDatasetItems(arg0 context.Context, arg1 *rpc.BatchGetDatasetItemsParam) ([]*entity.EvaluationSetItem, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "BatchGetDatasetItems", ctx, param) + ret := m.ctrl.Call(m, "BatchGetDatasetItems", arg0, arg1) ret0, _ := ret[0].([]*entity.EvaluationSetItem) ret1, _ := ret[1].(error) return ret0, ret1 } // BatchGetDatasetItems indicates an expected call of BatchGetDatasetItems. -func (mr *MockIDatasetRPCAdapterMockRecorder) BatchGetDatasetItems(ctx, param any) *gomock.Call { +func (mr *MockIDatasetRPCAdapterMockRecorder) BatchGetDatasetItems(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchGetDatasetItems", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).BatchGetDatasetItems), ctx, param) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchGetDatasetItems", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).BatchGetDatasetItems), arg0, arg1) } // BatchGetDatasetItemsByVersion mocks base method. -func (m *MockIDatasetRPCAdapter) BatchGetDatasetItemsByVersion(ctx context.Context, param *rpc.BatchGetDatasetItemsParam) ([]*entity.EvaluationSetItem, error) { +func (m *MockIDatasetRPCAdapter) BatchGetDatasetItemsByVersion(arg0 context.Context, arg1 *rpc.BatchGetDatasetItemsParam) ([]*entity.EvaluationSetItem, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "BatchGetDatasetItemsByVersion", ctx, param) + ret := m.ctrl.Call(m, "BatchGetDatasetItemsByVersion", arg0, arg1) ret0, _ := ret[0].([]*entity.EvaluationSetItem) ret1, _ := ret[1].(error) return ret0, ret1 } // BatchGetDatasetItemsByVersion indicates an expected call of BatchGetDatasetItemsByVersion. -func (mr *MockIDatasetRPCAdapterMockRecorder) BatchGetDatasetItemsByVersion(ctx, param any) *gomock.Call { +func (mr *MockIDatasetRPCAdapterMockRecorder) BatchGetDatasetItemsByVersion(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchGetDatasetItemsByVersion", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).BatchGetDatasetItemsByVersion), ctx, param) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchGetDatasetItemsByVersion", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).BatchGetDatasetItemsByVersion), arg0, arg1) } // BatchGetDatasets mocks base method. -func (m *MockIDatasetRPCAdapter) BatchGetDatasets(ctx context.Context, spaceID *int64, evaluationSetID []int64, deletedAt *bool) ([]*entity.EvaluationSet, error) { +func (m *MockIDatasetRPCAdapter) BatchGetDatasets(arg0 context.Context, arg1 *int64, arg2 []int64, arg3 *bool) ([]*entity.EvaluationSet, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "BatchGetDatasets", ctx, spaceID, evaluationSetID, deletedAt) + ret := m.ctrl.Call(m, "BatchGetDatasets", arg0, arg1, arg2, arg3) ret0, _ := ret[0].([]*entity.EvaluationSet) ret1, _ := ret[1].(error) return ret0, ret1 } // BatchGetDatasets indicates an expected call of BatchGetDatasets. -func (mr *MockIDatasetRPCAdapterMockRecorder) BatchGetDatasets(ctx, spaceID, evaluationSetID, deletedAt any) *gomock.Call { +func (mr *MockIDatasetRPCAdapterMockRecorder) BatchGetDatasets(arg0, arg1, arg2, arg3 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchGetDatasets", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).BatchGetDatasets), ctx, spaceID, evaluationSetID, deletedAt) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchGetDatasets", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).BatchGetDatasets), arg0, arg1, arg2, arg3) } // BatchGetVersionedDatasets mocks base method. -func (m *MockIDatasetRPCAdapter) BatchGetVersionedDatasets(ctx context.Context, spaceID *int64, versionIDs []int64, deletedAt *bool) ([]*rpc.BatchGetVersionedDatasetsResult, error) { +func (m *MockIDatasetRPCAdapter) BatchGetVersionedDatasets(arg0 context.Context, arg1 *int64, arg2 []int64, arg3 *bool) ([]*rpc.BatchGetVersionedDatasetsResult, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "BatchGetVersionedDatasets", ctx, spaceID, versionIDs, deletedAt) + ret := m.ctrl.Call(m, "BatchGetVersionedDatasets", arg0, arg1, arg2, arg3) ret0, _ := ret[0].([]*rpc.BatchGetVersionedDatasetsResult) ret1, _ := ret[1].(error) return ret0, ret1 } // BatchGetVersionedDatasets indicates an expected call of BatchGetVersionedDatasets. -func (mr *MockIDatasetRPCAdapterMockRecorder) BatchGetVersionedDatasets(ctx, spaceID, versionIDs, deletedAt any) *gomock.Call { +func (mr *MockIDatasetRPCAdapterMockRecorder) BatchGetVersionedDatasets(arg0, arg1, arg2, arg3 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchGetVersionedDatasets", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).BatchGetVersionedDatasets), ctx, spaceID, versionIDs, deletedAt) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchGetVersionedDatasets", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).BatchGetVersionedDatasets), arg0, arg1, arg2, arg3) } // BatchUpdateDatasetItems mocks base method. -func (m *MockIDatasetRPCAdapter) BatchUpdateDatasetItems(ctx context.Context, param *rpc.BatchUpdateDatasetItemsParam) ([]*entity.ItemErrorGroup, []*entity.DatasetItemOutput, error) { +func (m *MockIDatasetRPCAdapter) BatchUpdateDatasetItems(arg0 context.Context, arg1 *rpc.BatchUpdateDatasetItemsParam) ([]*entity.ItemErrorGroup, []*entity.DatasetItemOutput, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "BatchUpdateDatasetItems", ctx, param) + ret := m.ctrl.Call(m, "BatchUpdateDatasetItems", arg0, arg1) ret0, _ := ret[0].([]*entity.ItemErrorGroup) ret1, _ := ret[1].([]*entity.DatasetItemOutput) ret2, _ := ret[2].(error) @@ -144,59 +138,59 @@ func (m *MockIDatasetRPCAdapter) BatchUpdateDatasetItems(ctx context.Context, pa } // BatchUpdateDatasetItems indicates an expected call of BatchUpdateDatasetItems. -func (mr *MockIDatasetRPCAdapterMockRecorder) BatchUpdateDatasetItems(ctx, param any) *gomock.Call { +func (mr *MockIDatasetRPCAdapterMockRecorder) BatchUpdateDatasetItems(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchUpdateDatasetItems", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).BatchUpdateDatasetItems), ctx, param) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchUpdateDatasetItems", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).BatchUpdateDatasetItems), arg0, arg1) } // ClearEvaluationSetDraftItem mocks base method. -func (m *MockIDatasetRPCAdapter) ClearEvaluationSetDraftItem(ctx context.Context, spaceID, evaluationSetID int64) error { +func (m *MockIDatasetRPCAdapter) ClearEvaluationSetDraftItem(arg0 context.Context, arg1, arg2 int64) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ClearEvaluationSetDraftItem", ctx, spaceID, evaluationSetID) + ret := m.ctrl.Call(m, "ClearEvaluationSetDraftItem", arg0, arg1, arg2) ret0, _ := ret[0].(error) return ret0 } // ClearEvaluationSetDraftItem indicates an expected call of ClearEvaluationSetDraftItem. -func (mr *MockIDatasetRPCAdapterMockRecorder) ClearEvaluationSetDraftItem(ctx, spaceID, evaluationSetID any) *gomock.Call { +func (mr *MockIDatasetRPCAdapterMockRecorder) ClearEvaluationSetDraftItem(arg0, arg1, arg2 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ClearEvaluationSetDraftItem", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).ClearEvaluationSetDraftItem), ctx, spaceID, evaluationSetID) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ClearEvaluationSetDraftItem", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).ClearEvaluationSetDraftItem), arg0, arg1, arg2) } // CreateDataset mocks base method. -func (m *MockIDatasetRPCAdapter) CreateDataset(ctx context.Context, param *rpc.CreateDatasetParam) (int64, error) { +func (m *MockIDatasetRPCAdapter) CreateDataset(arg0 context.Context, arg1 *rpc.CreateDatasetParam) (int64, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateDataset", ctx, param) + ret := m.ctrl.Call(m, "CreateDataset", arg0, arg1) ret0, _ := ret[0].(int64) ret1, _ := ret[1].(error) return ret0, ret1 } // CreateDataset indicates an expected call of CreateDataset. -func (mr *MockIDatasetRPCAdapterMockRecorder) CreateDataset(ctx, param any) *gomock.Call { +func (mr *MockIDatasetRPCAdapterMockRecorder) CreateDataset(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateDataset", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).CreateDataset), ctx, param) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateDataset", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).CreateDataset), arg0, arg1) } // CreateDatasetVersion mocks base method. -func (m *MockIDatasetRPCAdapter) CreateDatasetVersion(ctx context.Context, spaceID, evaluationSetID int64, version string, desc *string) (int64, error) { +func (m *MockIDatasetRPCAdapter) CreateDatasetVersion(arg0 context.Context, arg1, arg2 int64, arg3 string, arg4 *string) (int64, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateDatasetVersion", ctx, spaceID, evaluationSetID, version, desc) + ret := m.ctrl.Call(m, "CreateDatasetVersion", arg0, arg1, arg2, arg3, arg4) ret0, _ := ret[0].(int64) ret1, _ := ret[1].(error) return ret0, ret1 } // CreateDatasetVersion indicates an expected call of CreateDatasetVersion. -func (mr *MockIDatasetRPCAdapterMockRecorder) CreateDatasetVersion(ctx, spaceID, evaluationSetID, version, desc any) *gomock.Call { +func (mr *MockIDatasetRPCAdapterMockRecorder) CreateDatasetVersion(arg0, arg1, arg2, arg3, arg4 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateDatasetVersion", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).CreateDatasetVersion), ctx, spaceID, evaluationSetID, version, desc) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateDatasetVersion", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).CreateDatasetVersion), arg0, arg1, arg2, arg3, arg4) } // CreateDatasetWithImport mocks base method. -func (m *MockIDatasetRPCAdapter) CreateDatasetWithImport(ctx context.Context, param *rpc.CreateDatasetWithImportParam) (int64, int64, error) { +func (m *MockIDatasetRPCAdapter) CreateDatasetWithImport(arg0 context.Context, arg1 *rpc.CreateDatasetWithImportParam) (int64, int64, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateDatasetWithImport", ctx, param) + ret := m.ctrl.Call(m, "CreateDatasetWithImport", arg0, arg1) ret0, _ := ret[0].(int64) ret1, _ := ret[1].(int64) ret2, _ := ret[2].(error) @@ -204,74 +198,59 @@ func (m *MockIDatasetRPCAdapter) CreateDatasetWithImport(ctx context.Context, pa } // CreateDatasetWithImport indicates an expected call of CreateDatasetWithImport. -func (mr *MockIDatasetRPCAdapterMockRecorder) CreateDatasetWithImport(ctx, param any) *gomock.Call { +func (mr *MockIDatasetRPCAdapterMockRecorder) CreateDatasetWithImport(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateDatasetWithImport", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).CreateDatasetWithImport), ctx, param) -} - -// ParseImportSourceFile mocks base method. -func (m *MockIDatasetRPCAdapter) ParseImportSourceFile(ctx context.Context, param *entity.ParseImportSourceFileParam) (*entity.ParseImportSourceFileResult, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ParseImportSourceFile", ctx, param) - ret0, _ := ret[0].(*entity.ParseImportSourceFileResult) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ParseImportSourceFile indicates an expected call of ParseImportSourceFile. -func (mr *MockIDatasetRPCAdapterMockRecorder) ParseImportSourceFile(ctx, param any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ParseImportSourceFile", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).ParseImportSourceFile), ctx, param) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateDatasetWithImport", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).CreateDatasetWithImport), arg0, arg1) } // DeleteDataset mocks base method. -func (m *MockIDatasetRPCAdapter) DeleteDataset(ctx context.Context, spaceID, evaluationSetID int64) error { +func (m *MockIDatasetRPCAdapter) DeleteDataset(arg0 context.Context, arg1, arg2 int64) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteDataset", ctx, spaceID, evaluationSetID) + ret := m.ctrl.Call(m, "DeleteDataset", arg0, arg1, arg2) ret0, _ := ret[0].(error) return ret0 } // DeleteDataset indicates an expected call of DeleteDataset. -func (mr *MockIDatasetRPCAdapterMockRecorder) DeleteDataset(ctx, spaceID, evaluationSetID any) *gomock.Call { +func (mr *MockIDatasetRPCAdapterMockRecorder) DeleteDataset(arg0, arg1, arg2 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteDataset", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).DeleteDataset), ctx, spaceID, evaluationSetID) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteDataset", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).DeleteDataset), arg0, arg1, arg2) } // GetDataset mocks base method. -func (m *MockIDatasetRPCAdapter) GetDataset(ctx context.Context, spaceID *int64, evaluationSetID int64, deletedAt *bool) (*entity.EvaluationSet, error) { +func (m *MockIDatasetRPCAdapter) GetDataset(arg0 context.Context, arg1 *int64, arg2 int64, arg3 *bool) (*entity.EvaluationSet, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetDataset", ctx, spaceID, evaluationSetID, deletedAt) + ret := m.ctrl.Call(m, "GetDataset", arg0, arg1, arg2, arg3) ret0, _ := ret[0].(*entity.EvaluationSet) ret1, _ := ret[1].(error) return ret0, ret1 } // GetDataset indicates an expected call of GetDataset. -func (mr *MockIDatasetRPCAdapterMockRecorder) GetDataset(ctx, spaceID, evaluationSetID, deletedAt any) *gomock.Call { +func (mr *MockIDatasetRPCAdapterMockRecorder) GetDataset(arg0, arg1, arg2, arg3 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDataset", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).GetDataset), ctx, spaceID, evaluationSetID, deletedAt) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDataset", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).GetDataset), arg0, arg1, arg2, arg3) } // GetDatasetItemField mocks base method. -func (m *MockIDatasetRPCAdapter) GetDatasetItemField(ctx context.Context, param *rpc.GetDatasetItemFieldParam) (*entity.FieldData, error) { +func (m *MockIDatasetRPCAdapter) GetDatasetItemField(arg0 context.Context, arg1 *rpc.GetDatasetItemFieldParam) (*entity.FieldData, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetDatasetItemField", ctx, param) + ret := m.ctrl.Call(m, "GetDatasetItemField", arg0, arg1) ret0, _ := ret[0].(*entity.FieldData) ret1, _ := ret[1].(error) return ret0, ret1 } // GetDatasetItemField indicates an expected call of GetDatasetItemField. -func (mr *MockIDatasetRPCAdapterMockRecorder) GetDatasetItemField(ctx, param any) *gomock.Call { +func (mr *MockIDatasetRPCAdapterMockRecorder) GetDatasetItemField(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDatasetItemField", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).GetDatasetItemField), ctx, param) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDatasetItemField", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).GetDatasetItemField), arg0, arg1) } // GetDatasetVersion mocks base method. -func (m *MockIDatasetRPCAdapter) GetDatasetVersion(ctx context.Context, spaceID, versionID int64, deletedAt *bool) (*entity.EvaluationSetVersion, *entity.EvaluationSet, error) { +func (m *MockIDatasetRPCAdapter) GetDatasetVersion(arg0 context.Context, arg1, arg2 int64, arg3 *bool) (*entity.EvaluationSetVersion, *entity.EvaluationSet, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetDatasetVersion", ctx, spaceID, versionID, deletedAt) + ret := m.ctrl.Call(m, "GetDatasetVersion", arg0, arg1, arg2, arg3) ret0, _ := ret[0].(*entity.EvaluationSetVersion) ret1, _ := ret[1].(*entity.EvaluationSet) ret2, _ := ret[2].(error) @@ -279,49 +258,51 @@ func (m *MockIDatasetRPCAdapter) GetDatasetVersion(ctx context.Context, spaceID, } // GetDatasetVersion indicates an expected call of GetDatasetVersion. -func (mr *MockIDatasetRPCAdapterMockRecorder) GetDatasetVersion(ctx, spaceID, versionID, deletedAt any) *gomock.Call { +func (mr *MockIDatasetRPCAdapterMockRecorder) GetDatasetVersion(arg0, arg1, arg2, arg3 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDatasetVersion", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).GetDatasetVersion), ctx, spaceID, versionID, deletedAt) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDatasetVersion", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).GetDatasetVersion), arg0, arg1, arg2, arg3) } // ListDatasetItems mocks base method. -func (m *MockIDatasetRPCAdapter) ListDatasetItems(ctx context.Context, param *rpc.ListDatasetItemsParam) ([]*entity.EvaluationSetItem, *int64, *string, error) { +func (m *MockIDatasetRPCAdapter) ListDatasetItems(arg0 context.Context, arg1 *rpc.ListDatasetItemsParam) ([]*entity.EvaluationSetItem, *int64, *int64, *string, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListDatasetItems", ctx, param) + ret := m.ctrl.Call(m, "ListDatasetItems", arg0, arg1) ret0, _ := ret[0].([]*entity.EvaluationSetItem) ret1, _ := ret[1].(*int64) - ret2, _ := ret[2].(*string) - ret3, _ := ret[3].(error) - return ret0, ret1, ret2, ret3 + ret2, _ := ret[2].(*int64) + ret3, _ := ret[3].(*string) + ret4, _ := ret[4].(error) + return ret0, ret1, ret2, ret3, ret4 } // ListDatasetItems indicates an expected call of ListDatasetItems. -func (mr *MockIDatasetRPCAdapterMockRecorder) ListDatasetItems(ctx, param any) *gomock.Call { +func (mr *MockIDatasetRPCAdapterMockRecorder) ListDatasetItems(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListDatasetItems", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).ListDatasetItems), ctx, param) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListDatasetItems", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).ListDatasetItems), arg0, arg1) } // ListDatasetItemsByVersion mocks base method. -func (m *MockIDatasetRPCAdapter) ListDatasetItemsByVersion(ctx context.Context, param *rpc.ListDatasetItemsParam) ([]*entity.EvaluationSetItem, *int64, *string, error) { +func (m *MockIDatasetRPCAdapter) ListDatasetItemsByVersion(arg0 context.Context, arg1 *rpc.ListDatasetItemsParam) ([]*entity.EvaluationSetItem, *int64, *int64, *string, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListDatasetItemsByVersion", ctx, param) + ret := m.ctrl.Call(m, "ListDatasetItemsByVersion", arg0, arg1) ret0, _ := ret[0].([]*entity.EvaluationSetItem) ret1, _ := ret[1].(*int64) - ret2, _ := ret[2].(*string) - ret3, _ := ret[3].(error) - return ret0, ret1, ret2, ret3 + ret2, _ := ret[2].(*int64) + ret3, _ := ret[3].(*string) + ret4, _ := ret[4].(error) + return ret0, ret1, ret2, ret3, ret4 } // ListDatasetItemsByVersion indicates an expected call of ListDatasetItemsByVersion. -func (mr *MockIDatasetRPCAdapterMockRecorder) ListDatasetItemsByVersion(ctx, param any) *gomock.Call { +func (mr *MockIDatasetRPCAdapterMockRecorder) ListDatasetItemsByVersion(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListDatasetItemsByVersion", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).ListDatasetItemsByVersion), ctx, param) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListDatasetItemsByVersion", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).ListDatasetItemsByVersion), arg0, arg1) } // ListDatasetVersions mocks base method. -func (m *MockIDatasetRPCAdapter) ListDatasetVersions(ctx context.Context, spaceID, evaluationSetID int64, pageToken *string, pageNumber, pageSize *int32, versionLike *string, versions []string) ([]*entity.EvaluationSetVersion, *int64, *string, error) { +func (m *MockIDatasetRPCAdapter) ListDatasetVersions(arg0 context.Context, arg1, arg2 int64, arg3 *string, arg4, arg5 *int32, arg6 *string, arg7 []string) ([]*entity.EvaluationSetVersion, *int64, *string, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListDatasetVersions", ctx, spaceID, evaluationSetID, pageToken, pageNumber, pageSize, versionLike, versions) + ret := m.ctrl.Call(m, "ListDatasetVersions", arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7) ret0, _ := ret[0].([]*entity.EvaluationSetVersion) ret1, _ := ret[1].(*int64) ret2, _ := ret[2].(*string) @@ -330,15 +311,15 @@ func (m *MockIDatasetRPCAdapter) ListDatasetVersions(ctx context.Context, spaceI } // ListDatasetVersions indicates an expected call of ListDatasetVersions. -func (mr *MockIDatasetRPCAdapterMockRecorder) ListDatasetVersions(ctx, spaceID, evaluationSetID, pageToken, pageNumber, pageSize, versionLike, versions any) *gomock.Call { +func (mr *MockIDatasetRPCAdapterMockRecorder) ListDatasetVersions(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListDatasetVersions", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).ListDatasetVersions), ctx, spaceID, evaluationSetID, pageToken, pageNumber, pageSize, versionLike, versions) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListDatasetVersions", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).ListDatasetVersions), arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7) } // ListDatasets mocks base method. -func (m *MockIDatasetRPCAdapter) ListDatasets(ctx context.Context, param *rpc.ListDatasetsParam) ([]*entity.EvaluationSet, *int64, *string, error) { +func (m *MockIDatasetRPCAdapter) ListDatasets(arg0 context.Context, arg1 *rpc.ListDatasetsParam) ([]*entity.EvaluationSet, *int64, *string, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListDatasets", ctx, param) + ret := m.ctrl.Call(m, "ListDatasets", arg0, arg1) ret0, _ := ret[0].([]*entity.EvaluationSet) ret1, _ := ret[1].(*int64) ret2, _ := ret[2].(*string) @@ -347,15 +328,30 @@ func (m *MockIDatasetRPCAdapter) ListDatasets(ctx context.Context, param *rpc.Li } // ListDatasets indicates an expected call of ListDatasets. -func (mr *MockIDatasetRPCAdapterMockRecorder) ListDatasets(ctx, param any) *gomock.Call { +func (mr *MockIDatasetRPCAdapterMockRecorder) ListDatasets(arg0, arg1 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListDatasets", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).ListDatasets), arg0, arg1) +} + +// ParseImportSourceFile mocks base method. +func (m *MockIDatasetRPCAdapter) ParseImportSourceFile(arg0 context.Context, arg1 *entity.ParseImportSourceFileParam) (*entity.ParseImportSourceFileResult, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ParseImportSourceFile", arg0, arg1) + ret0, _ := ret[0].(*entity.ParseImportSourceFileResult) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ParseImportSourceFile indicates an expected call of ParseImportSourceFile. +func (mr *MockIDatasetRPCAdapterMockRecorder) ParseImportSourceFile(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListDatasets", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).ListDatasets), ctx, param) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ParseImportSourceFile", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).ParseImportSourceFile), arg0, arg1) } // QueryItemSnapshotMappings mocks base method. -func (m *MockIDatasetRPCAdapter) QueryItemSnapshotMappings(ctx context.Context, spaceID, datasetID int64, versionID *int64) ([]*entity.ItemSnapshotFieldMapping, string, error) { +func (m *MockIDatasetRPCAdapter) QueryItemSnapshotMappings(arg0 context.Context, arg1, arg2 int64, arg3 *int64) ([]*entity.ItemSnapshotFieldMapping, string, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "QueryItemSnapshotMappings", ctx, spaceID, datasetID, versionID) + ret := m.ctrl.Call(m, "QueryItemSnapshotMappings", arg0, arg1, arg2, arg3) ret0, _ := ret[0].([]*entity.ItemSnapshotFieldMapping) ret1, _ := ret[1].(string) ret2, _ := ret[2].(error) @@ -363,49 +359,49 @@ func (m *MockIDatasetRPCAdapter) QueryItemSnapshotMappings(ctx context.Context, } // QueryItemSnapshotMappings indicates an expected call of QueryItemSnapshotMappings. -func (mr *MockIDatasetRPCAdapterMockRecorder) QueryItemSnapshotMappings(ctx, spaceID, datasetID, versionID any) *gomock.Call { +func (mr *MockIDatasetRPCAdapterMockRecorder) QueryItemSnapshotMappings(arg0, arg1, arg2, arg3 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "QueryItemSnapshotMappings", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).QueryItemSnapshotMappings), ctx, spaceID, datasetID, versionID) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "QueryItemSnapshotMappings", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).QueryItemSnapshotMappings), arg0, arg1, arg2, arg3) } // UpdateDataset mocks base method. -func (m *MockIDatasetRPCAdapter) UpdateDataset(ctx context.Context, spaceID, evaluationSetID int64, name, desc *string) error { +func (m *MockIDatasetRPCAdapter) UpdateDataset(arg0 context.Context, arg1, arg2 int64, arg3, arg4 *string) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateDataset", ctx, spaceID, evaluationSetID, name, desc) + ret := m.ctrl.Call(m, "UpdateDataset", arg0, arg1, arg2, arg3, arg4) ret0, _ := ret[0].(error) return ret0 } // UpdateDataset indicates an expected call of UpdateDataset. -func (mr *MockIDatasetRPCAdapterMockRecorder) UpdateDataset(ctx, spaceID, evaluationSetID, name, desc any) *gomock.Call { +func (mr *MockIDatasetRPCAdapterMockRecorder) UpdateDataset(arg0, arg1, arg2, arg3, arg4 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateDataset", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).UpdateDataset), ctx, spaceID, evaluationSetID, name, desc) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateDataset", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).UpdateDataset), arg0, arg1, arg2, arg3, arg4) } // UpdateDatasetItem mocks base method. -func (m *MockIDatasetRPCAdapter) UpdateDatasetItem(ctx context.Context, spaceID, evaluationSetID, itemID int64, turns []*entity.Turn) error { +func (m *MockIDatasetRPCAdapter) UpdateDatasetItem(arg0 context.Context, arg1, arg2, arg3 int64, arg4 []*entity.Turn) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateDatasetItem", ctx, spaceID, evaluationSetID, itemID, turns) + ret := m.ctrl.Call(m, "UpdateDatasetItem", arg0, arg1, arg2, arg3, arg4) ret0, _ := ret[0].(error) return ret0 } // UpdateDatasetItem indicates an expected call of UpdateDatasetItem. -func (mr *MockIDatasetRPCAdapterMockRecorder) UpdateDatasetItem(ctx, spaceID, evaluationSetID, itemID, turns any) *gomock.Call { +func (mr *MockIDatasetRPCAdapterMockRecorder) UpdateDatasetItem(arg0, arg1, arg2, arg3, arg4 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateDatasetItem", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).UpdateDatasetItem), ctx, spaceID, evaluationSetID, itemID, turns) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateDatasetItem", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).UpdateDatasetItem), arg0, arg1, arg2, arg3, arg4) } // UpdateDatasetSchema mocks base method. -func (m *MockIDatasetRPCAdapter) UpdateDatasetSchema(ctx context.Context, spaceID, evaluationSetID int64, schemas []*entity.FieldSchema) error { +func (m *MockIDatasetRPCAdapter) UpdateDatasetSchema(arg0 context.Context, arg1, arg2 int64, arg3 []*entity.FieldSchema) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateDatasetSchema", ctx, spaceID, evaluationSetID, schemas) + ret := m.ctrl.Call(m, "UpdateDatasetSchema", arg0, arg1, arg2, arg3) ret0, _ := ret[0].(error) return ret0 } // UpdateDatasetSchema indicates an expected call of UpdateDatasetSchema. -func (mr *MockIDatasetRPCAdapterMockRecorder) UpdateDatasetSchema(ctx, spaceID, evaluationSetID, schemas any) *gomock.Call { +func (mr *MockIDatasetRPCAdapterMockRecorder) UpdateDatasetSchema(arg0, arg1, arg2, arg3 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateDatasetSchema", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).UpdateDatasetSchema), ctx, spaceID, evaluationSetID, schemas) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateDatasetSchema", reflect.TypeOf((*MockIDatasetRPCAdapter)(nil).UpdateDatasetSchema), arg0, arg1, arg2, arg3) } diff --git a/backend/modules/evaluation/domain/service/evaluation_set_item.go b/backend/modules/evaluation/domain/service/evaluation_set_item.go index 3110c6abd..60254c433 100644 --- a/backend/modules/evaluation/domain/service/evaluation_set_item.go +++ b/backend/modules/evaluation/domain/service/evaluation_set_item.go @@ -15,7 +15,7 @@ type EvaluationSetItemService interface { UpdateEvaluationSetItem(ctx context.Context, spaceID, evaluationSetID, itemID int64, turns []*entity.Turn) (err error) BatchUpdateEvaluationSetItems(ctx context.Context, param *entity.BatchUpdateEvaluationSetItemsParam) (errors []*entity.ItemErrorGroup, itemOutputs []*entity.DatasetItemOutput, err error) BatchDeleteEvaluationSetItems(ctx context.Context, spaceID, evaluationSetID int64, itemIDs []int64) (err error) - ListEvaluationSetItems(ctx context.Context, param *entity.ListEvaluationSetItemsParam) (items []*entity.EvaluationSetItem, total *int64, nextPageToken *string, err error) + ListEvaluationSetItems(ctx context.Context, param *entity.ListEvaluationSetItemsParam) (items []*entity.EvaluationSetItem, total *int64, filterTotal *int64, nextPageToken *string, err error) BatchGetEvaluationSetItems(ctx context.Context, param *entity.BatchGetEvaluationSetItemsParam) (items []*entity.EvaluationSetItem, err error) ClearEvaluationSetDraftItem(ctx context.Context, spaceID, evaluationSetID int64) (err error) GetEvaluationSetItemField(ctx context.Context, param *entity.GetEvaluationSetItemFieldParam) (fieldData *entity.FieldData, err error) diff --git a/backend/modules/evaluation/domain/service/evaluation_set_item_impl.go b/backend/modules/evaluation/domain/service/evaluation_set_item_impl.go index 73c9c5ff1..0249fcaa3 100644 --- a/backend/modules/evaluation/domain/service/evaluation_set_item_impl.go +++ b/backend/modules/evaluation/domain/service/evaluation_set_item_impl.go @@ -64,9 +64,9 @@ func (d *EvaluationSetItemServiceImpl) BatchDeleteEvaluationSetItems(ctx context return d.datasetRPCAdapter.BatchDeleteDatasetItems(ctx, spaceID, evaluationSetID, itemIDs) } -func (d *EvaluationSetItemServiceImpl) ListEvaluationSetItems(ctx context.Context, param *entity.ListEvaluationSetItemsParam) (items []*entity.EvaluationSetItem, total *int64, nextPageToken *string, err error) { +func (d *EvaluationSetItemServiceImpl) ListEvaluationSetItems(ctx context.Context, param *entity.ListEvaluationSetItemsParam) (items []*entity.EvaluationSetItem, total *int64, filterTotal *int64, nextPageToken *string, err error) { if param == nil { - return nil, nil, nil, errorx.NewByCode(errno.CommonInternalErrorCode) + return nil, nil, nil, nil, errorx.NewByCode(errno.CommonInternalErrorCode) } listParam := &rpc.ListDatasetItemsParam{ SpaceID: param.SpaceID, diff --git a/backend/modules/evaluation/domain/service/expt_annotate_impl.go b/backend/modules/evaluation/domain/service/expt_annotate_impl.go index 4ec801fdd..f5d6fd218 100644 --- a/backend/modules/evaluation/domain/service/expt_annotate_impl.go +++ b/backend/modules/evaluation/domain/service/expt_annotate_impl.go @@ -58,7 +58,7 @@ func (e ExptAnnotateServiceImpl) CreateExptTurnResultTagRefs(ctx context.Context return err } - _, total, _, err := e.evaluationSetItemService.ListEvaluationSetItems(ctx, &entity.ListEvaluationSetItemsParam{ + _, total, _, _, err := e.evaluationSetItemService.ListEvaluationSetItems(ctx, &entity.ListEvaluationSetItemsParam{ SpaceID: ref.SpaceID, EvaluationSetID: expt.EvalSetID, VersionID: ptr.Of(expt.EvalSetVersionID), diff --git a/backend/modules/evaluation/domain/service/expt_run_scheduler_mode_impl.go b/backend/modules/evaluation/domain/service/expt_run_scheduler_mode_impl.go index 7e4e639a7..be7a1d66d 100644 --- a/backend/modules/evaluation/domain/service/expt_run_scheduler_mode_impl.go +++ b/backend/modules/evaluation/domain/service/expt_run_scheduler_mode_impl.go @@ -174,7 +174,7 @@ func (e *ExptSubmitExec) ExptStart(ctx context.Context, event *entity.ExptSchedu logs.CtxInfo(ctx, "ExptSubmitExec.ExptStart scan item, expt_id: %v, expt_run_id: %v, eval_set_id: %v, eval_set_ver_id: %v, page: %v, limit: %v, cur_cnt: %v, total: %v", event.ExptID, event.ExptRunID, evalSetID, evalSetVersionID, page, pageSize, itemCnt, total) - items, t, _, err := e.evaluationSetItemService.ListEvaluationSetItems(ctx, &entity.ListEvaluationSetItemsParam{ + items, t, _, _, err := e.evaluationSetItemService.ListEvaluationSetItems(ctx, &entity.ListEvaluationSetItemsParam{ SpaceID: event.SpaceID, EvaluationSetID: evalSetID, VersionID: &evalSetVersionID, diff --git a/backend/modules/evaluation/infra/rpc/data/dataset.go b/backend/modules/evaluation/infra/rpc/data/dataset.go index 78a1eb59a..7c6488a9a 100644 --- a/backend/modules/evaluation/infra/rpc/data/dataset.go +++ b/backend/modules/evaluation/infra/rpc/data/dataset.go @@ -358,7 +358,7 @@ func (a *DatasetRPCAdapter) BatchDeleteDatasetItems(ctx context.Context, spaceID return nil } -func (a *DatasetRPCAdapter) ListDatasetItems(ctx context.Context, param *rpc.ListDatasetItemsParam) (items []*entity.EvaluationSetItem, total *int64, nextPageToken *string, err error) { +func (a *DatasetRPCAdapter) ListDatasetItems(ctx context.Context, param *rpc.ListDatasetItemsParam) (items []*entity.EvaluationSetItem, total *int64, filterTotal *int64, nextPageToken *string, err error) { resp, err := a.client.ListDatasetItems(ctx, &dataset.ListDatasetItemsRequest{ WorkspaceID: ¶m.SpaceID, DatasetID: param.EvaluationSetID, @@ -370,18 +370,18 @@ func (a *DatasetRPCAdapter) ListDatasetItems(ctx context.Context, param *rpc.Lis // ItemIDsNotIn: param.ItemIDsNotIn, }) if err != nil { - return nil, nil, nil, err + return nil, nil, nil, nil, err } if resp == nil { - return nil, nil, nil, errorx.NewByCode(errno.CommonRPCErrorCode) + return nil, nil, nil, nil, errorx.NewByCode(errno.CommonRPCErrorCode) } if resp.BaseResp != nil && resp.BaseResp.StatusCode != 0 { - return nil, nil, nil, errorx.NewByCode(resp.BaseResp.StatusCode, errorx.WithExtraMsg(resp.BaseResp.StatusMessage)) + return nil, nil, nil, nil, errorx.NewByCode(resp.BaseResp.StatusCode, errorx.WithExtraMsg(resp.BaseResp.StatusMessage)) } - return convert2EvaluationSetItems(ctx, resp.Items), resp.Total, resp.NextPageToken, nil + return convert2EvaluationSetItems(ctx, resp.Items), resp.Total, resp.FilterTotal, resp.NextPageToken, nil } -func (a *DatasetRPCAdapter) ListDatasetItemsByVersion(ctx context.Context, param *rpc.ListDatasetItemsParam) (items []*entity.EvaluationSetItem, total *int64, nextPageToken *string, err error) { +func (a *DatasetRPCAdapter) ListDatasetItemsByVersion(ctx context.Context, param *rpc.ListDatasetItemsParam) (items []*entity.EvaluationSetItem, total *int64, filterTotal *int64, nextPageToken *string, err error) { resp, err := a.client.ListDatasetItemsByVersion(ctx, &dataset.ListDatasetItemsByVersionRequest{ WorkspaceID: ¶m.SpaceID, DatasetID: param.EvaluationSetID, @@ -392,15 +392,15 @@ func (a *DatasetRPCAdapter) ListDatasetItemsByVersion(ctx context.Context, param OrderBys: convert2DatasetOrderBys(ctx, param.OrderBys), }) if err != nil { - return nil, nil, nil, err + return nil, nil, nil, nil, err } if resp == nil { - return nil, nil, nil, errorx.NewByCode(errno.CommonRPCErrorCode) + return nil, nil, nil, nil, errorx.NewByCode(errno.CommonRPCErrorCode) } if resp.BaseResp != nil && resp.BaseResp.StatusCode != 0 { - return nil, nil, nil, errorx.NewByCode(resp.BaseResp.StatusCode, errorx.WithExtraMsg(resp.BaseResp.StatusMessage)) + return nil, nil, nil, nil, errorx.NewByCode(resp.BaseResp.StatusCode, errorx.WithExtraMsg(resp.BaseResp.StatusMessage)) } - return convert2EvaluationSetItems(ctx, resp.Items), resp.Total, resp.NextPageToken, nil + return convert2EvaluationSetItems(ctx, resp.Items), resp.Total, resp.FilterTotal, resp.NextPageToken, nil } func (a *DatasetRPCAdapter) BatchGetDatasetItems(ctx context.Context, param *rpc.BatchGetDatasetItemsParam) (items []*entity.EvaluationSetItem, err error) { diff --git a/idl/thrift/coze/loop/data/coze.loop.data.dataset.thrift b/idl/thrift/coze/loop/data/coze.loop.data.dataset.thrift index 51a7d965c..f1c600d1f 100644 --- a/idl/thrift/coze/loop/data/coze.loop.data.dataset.thrift +++ b/idl/thrift/coze/loop/data/coze.loop.data.dataset.thrift @@ -350,6 +350,7 @@ struct ListDatasetItemsResponse { /* pagination */ 100: optional string next_page_token 101: optional i64 total (api.js_conv="true", go.tag='json:"total"') + 102: optional i64 filter_total (api.js_conv="true", go.tag='json:"fliter_total"') 255: base.BaseResp BaseResp } @@ -374,6 +375,7 @@ struct ListDatasetItemsByVersionResponse { /* pagination */ 100: optional string next_page_token (api.js_conv="true", go.tag='json:"next_page_token"'), 101: optional i64 total (api.js_conv="true", go.tag='json:"total"') + 102: optional i64 filter_total (api.js_conv="true", go.tag='json:"fliter_total"') 255: base.BaseResp BaseResp } diff --git a/idl/thrift/coze/loop/evaluation/coze.loop.evaluation.eval_set.thrift b/idl/thrift/coze/loop/evaluation/coze.loop.evaluation.eval_set.thrift index 36158a526..a91d7f445 100644 --- a/idl/thrift/coze/loop/evaluation/coze.loop.evaluation.eval_set.thrift +++ b/idl/thrift/coze/loop/evaluation/coze.loop.evaluation.eval_set.thrift @@ -304,6 +304,7 @@ struct ListEvaluationSetItemsResponse { 100: optional i64 total (api.js_conv="true", go.tag='json:"total"'), 101: optional string next_page_token + 102: optional i64 filterTotal (agw.js_conv = "str", go.tag='json:"filter_total"') 255: base.BaseResp BaseResp } From e8ee3f024e2df9ea5e50b971f889857935380863 Mon Sep 17 00:00:00 2001 From: "zhuangjiaqi.777" Date: Fri, 13 Feb 2026 15:25:09 +0800 Subject: [PATCH 09/17] chore: json tag --- .../coze/loop/data/dataset/coze.loop.data.dataset.go | 4 ++-- idl/thrift/coze/loop/data/coze.loop.data.dataset.thrift | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/backend/kitex_gen/coze/loop/data/dataset/coze.loop.data.dataset.go b/backend/kitex_gen/coze/loop/data/dataset/coze.loop.data.dataset.go index 067c09f79..95fa71686 100644 --- a/backend/kitex_gen/coze/loop/data/dataset/coze.loop.data.dataset.go +++ b/backend/kitex_gen/coze/loop/data/dataset/coze.loop.data.dataset.go @@ -17444,7 +17444,7 @@ type ListDatasetItemsResponse struct { /* pagination */ NextPageToken *string `thrift:"next_page_token,100,optional" frugal:"100,optional,string" form:"next_page_token" json:"next_page_token,omitempty" query:"next_page_token"` Total *int64 `thrift:"total,101,optional" frugal:"101,optional,i64" json:"total" form:"total" query:"total"` - FilterTotal *int64 `thrift:"filter_total,102,optional" frugal:"102,optional,i64" json:"fliter_total" form:"filter_total" query:"filter_total"` + FilterTotal *int64 `thrift:"filter_total,102,optional" frugal:"102,optional,i64" json:"filter_total" form:"filter_total" query:"filter_total"` BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` } @@ -18664,7 +18664,7 @@ type ListDatasetItemsByVersionResponse struct { /* pagination */ NextPageToken *string `thrift:"next_page_token,100,optional" frugal:"100,optional,string" json:"next_page_token" form:"next_page_token" query:"next_page_token"` Total *int64 `thrift:"total,101,optional" frugal:"101,optional,i64" json:"total" form:"total" query:"total"` - FilterTotal *int64 `thrift:"filter_total,102,optional" frugal:"102,optional,i64" json:"fliter_total" form:"filter_total" query:"filter_total"` + FilterTotal *int64 `thrift:"filter_total,102,optional" frugal:"102,optional,i64" json:"filter_total" form:"filter_total" query:"filter_total"` BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` } diff --git a/idl/thrift/coze/loop/data/coze.loop.data.dataset.thrift b/idl/thrift/coze/loop/data/coze.loop.data.dataset.thrift index f1c600d1f..0557964b3 100644 --- a/idl/thrift/coze/loop/data/coze.loop.data.dataset.thrift +++ b/idl/thrift/coze/loop/data/coze.loop.data.dataset.thrift @@ -350,7 +350,7 @@ struct ListDatasetItemsResponse { /* pagination */ 100: optional string next_page_token 101: optional i64 total (api.js_conv="true", go.tag='json:"total"') - 102: optional i64 filter_total (api.js_conv="true", go.tag='json:"fliter_total"') + 102: optional i64 filter_total (api.js_conv="true", go.tag='json:"filter_total"') 255: base.BaseResp BaseResp } @@ -375,7 +375,7 @@ struct ListDatasetItemsByVersionResponse { /* pagination */ 100: optional string next_page_token (api.js_conv="true", go.tag='json:"next_page_token"'), 101: optional i64 total (api.js_conv="true", go.tag='json:"total"') - 102: optional i64 filter_total (api.js_conv="true", go.tag='json:"fliter_total"') + 102: optional i64 filter_total (api.js_conv="true", go.tag='json:"filter_total"') 255: base.BaseResp BaseResp } From 4bba9682ca5bfb07e7f091dffc3c7b31620dda86 Mon Sep 17 00:00:00 2001 From: "zhuangjiaqi.777" Date: Fri, 13 Feb 2026 15:55:11 +0800 Subject: [PATCH 10/17] fix: field name --- .../coze/loop/evaluation/coze.loop.evaluation.eval_set.thrift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/idl/thrift/coze/loop/evaluation/coze.loop.evaluation.eval_set.thrift b/idl/thrift/coze/loop/evaluation/coze.loop.evaluation.eval_set.thrift index a91d7f445..8fb4b7b06 100644 --- a/idl/thrift/coze/loop/evaluation/coze.loop.evaluation.eval_set.thrift +++ b/idl/thrift/coze/loop/evaluation/coze.loop.evaluation.eval_set.thrift @@ -304,7 +304,7 @@ struct ListEvaluationSetItemsResponse { 100: optional i64 total (api.js_conv="true", go.tag='json:"total"'), 101: optional string next_page_token - 102: optional i64 filterTotal (agw.js_conv = "str", go.tag='json:"filter_total"') + 102: optional i64 filter_total (agw.js_conv = "str", go.tag='json:"filter_total"') 255: base.BaseResp BaseResp } From 3ecccf57155119db9bf3592ab4d29e1c7f7d6e4e Mon Sep 17 00:00:00 2001 From: "zhuangjiaqi.777" Date: Thu, 26 Feb 2026 17:18:38 +0800 Subject: [PATCH 11/17] chore: ut --- .../component/rpc/mocks/data_provider.go | 2 +- .../service/mocks/evaluation_set_item.go | 77 +++++++++---------- 2 files changed, 37 insertions(+), 42 deletions(-) diff --git a/backend/modules/evaluation/domain/component/rpc/mocks/data_provider.go b/backend/modules/evaluation/domain/component/rpc/mocks/data_provider.go index 4c366d7b5..ddbd4dbba 100644 --- a/backend/modules/evaluation/domain/component/rpc/mocks/data_provider.go +++ b/backend/modules/evaluation/domain/component/rpc/mocks/data_provider.go @@ -10,7 +10,7 @@ import ( rpc "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/component/rpc" entity "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/entity" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" ) // MockIDatasetRPCAdapter is a mock of IDatasetRPCAdapter interface. diff --git a/backend/modules/evaluation/domain/service/mocks/evaluation_set_item.go b/backend/modules/evaluation/domain/service/mocks/evaluation_set_item.go index 1bbc91d01..dc90498fa 100644 --- a/backend/modules/evaluation/domain/service/mocks/evaluation_set_item.go +++ b/backend/modules/evaluation/domain/service/mocks/evaluation_set_item.go @@ -1,10 +1,5 @@ // Code generated by MockGen. DO NOT EDIT. // Source: github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/service (interfaces: EvaluationSetItemService) -// -// Generated by this command: -// -// mockgen -destination=mocks/evaluation_set_item.go -package=mocks . EvaluationSetItemService -// // Package mocks is a generated GoMock package. package mocks @@ -21,7 +16,6 @@ import ( type MockEvaluationSetItemService struct { ctrl *gomock.Controller recorder *MockEvaluationSetItemServiceMockRecorder - isgomock struct{} } // MockEvaluationSetItemServiceMockRecorder is the mock recorder for MockEvaluationSetItemService. @@ -42,9 +36,9 @@ func (m *MockEvaluationSetItemService) EXPECT() *MockEvaluationSetItemServiceMoc } // BatchCreateEvaluationSetItems mocks base method. -func (m *MockEvaluationSetItemService) BatchCreateEvaluationSetItems(ctx context.Context, param *entity.BatchCreateEvaluationSetItemsParam) (map[int64]int64, []*entity.ItemErrorGroup, []*entity.DatasetItemOutput, error) { +func (m *MockEvaluationSetItemService) BatchCreateEvaluationSetItems(arg0 context.Context, arg1 *entity.BatchCreateEvaluationSetItemsParam) (map[int64]int64, []*entity.ItemErrorGroup, []*entity.DatasetItemOutput, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "BatchCreateEvaluationSetItems", ctx, param) + ret := m.ctrl.Call(m, "BatchCreateEvaluationSetItems", arg0, arg1) ret0, _ := ret[0].(map[int64]int64) ret1, _ := ret[1].([]*entity.ItemErrorGroup) ret2, _ := ret[2].([]*entity.DatasetItemOutput) @@ -53,44 +47,44 @@ func (m *MockEvaluationSetItemService) BatchCreateEvaluationSetItems(ctx context } // BatchCreateEvaluationSetItems indicates an expected call of BatchCreateEvaluationSetItems. -func (mr *MockEvaluationSetItemServiceMockRecorder) BatchCreateEvaluationSetItems(ctx, param any) *gomock.Call { +func (mr *MockEvaluationSetItemServiceMockRecorder) BatchCreateEvaluationSetItems(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchCreateEvaluationSetItems", reflect.TypeOf((*MockEvaluationSetItemService)(nil).BatchCreateEvaluationSetItems), ctx, param) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchCreateEvaluationSetItems", reflect.TypeOf((*MockEvaluationSetItemService)(nil).BatchCreateEvaluationSetItems), arg0, arg1) } // BatchDeleteEvaluationSetItems mocks base method. -func (m *MockEvaluationSetItemService) BatchDeleteEvaluationSetItems(ctx context.Context, spaceID, evaluationSetID int64, itemIDs []int64) error { +func (m *MockEvaluationSetItemService) BatchDeleteEvaluationSetItems(arg0 context.Context, arg1, arg2 int64, arg3 []int64) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "BatchDeleteEvaluationSetItems", ctx, spaceID, evaluationSetID, itemIDs) + ret := m.ctrl.Call(m, "BatchDeleteEvaluationSetItems", arg0, arg1, arg2, arg3) ret0, _ := ret[0].(error) return ret0 } // BatchDeleteEvaluationSetItems indicates an expected call of BatchDeleteEvaluationSetItems. -func (mr *MockEvaluationSetItemServiceMockRecorder) BatchDeleteEvaluationSetItems(ctx, spaceID, evaluationSetID, itemIDs any) *gomock.Call { +func (mr *MockEvaluationSetItemServiceMockRecorder) BatchDeleteEvaluationSetItems(arg0, arg1, arg2, arg3 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchDeleteEvaluationSetItems", reflect.TypeOf((*MockEvaluationSetItemService)(nil).BatchDeleteEvaluationSetItems), ctx, spaceID, evaluationSetID, itemIDs) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchDeleteEvaluationSetItems", reflect.TypeOf((*MockEvaluationSetItemService)(nil).BatchDeleteEvaluationSetItems), arg0, arg1, arg2, arg3) } // BatchGetEvaluationSetItems mocks base method. -func (m *MockEvaluationSetItemService) BatchGetEvaluationSetItems(ctx context.Context, param *entity.BatchGetEvaluationSetItemsParam) ([]*entity.EvaluationSetItem, error) { +func (m *MockEvaluationSetItemService) BatchGetEvaluationSetItems(arg0 context.Context, arg1 *entity.BatchGetEvaluationSetItemsParam) ([]*entity.EvaluationSetItem, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "BatchGetEvaluationSetItems", ctx, param) + ret := m.ctrl.Call(m, "BatchGetEvaluationSetItems", arg0, arg1) ret0, _ := ret[0].([]*entity.EvaluationSetItem) ret1, _ := ret[1].(error) return ret0, ret1 } // BatchGetEvaluationSetItems indicates an expected call of BatchGetEvaluationSetItems. -func (mr *MockEvaluationSetItemServiceMockRecorder) BatchGetEvaluationSetItems(ctx, param any) *gomock.Call { +func (mr *MockEvaluationSetItemServiceMockRecorder) BatchGetEvaluationSetItems(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchGetEvaluationSetItems", reflect.TypeOf((*MockEvaluationSetItemService)(nil).BatchGetEvaluationSetItems), ctx, param) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchGetEvaluationSetItems", reflect.TypeOf((*MockEvaluationSetItemService)(nil).BatchGetEvaluationSetItems), arg0, arg1) } // BatchUpdateEvaluationSetItems mocks base method. -func (m *MockEvaluationSetItemService) BatchUpdateEvaluationSetItems(ctx context.Context, param *entity.BatchUpdateEvaluationSetItemsParam) ([]*entity.ItemErrorGroup, []*entity.DatasetItemOutput, error) { +func (m *MockEvaluationSetItemService) BatchUpdateEvaluationSetItems(arg0 context.Context, arg1 *entity.BatchUpdateEvaluationSetItemsParam) ([]*entity.ItemErrorGroup, []*entity.DatasetItemOutput, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "BatchUpdateEvaluationSetItems", ctx, param) + ret := m.ctrl.Call(m, "BatchUpdateEvaluationSetItems", arg0, arg1) ret0, _ := ret[0].([]*entity.ItemErrorGroup) ret1, _ := ret[1].([]*entity.DatasetItemOutput) ret2, _ := ret[2].(error) @@ -98,67 +92,68 @@ func (m *MockEvaluationSetItemService) BatchUpdateEvaluationSetItems(ctx context } // BatchUpdateEvaluationSetItems indicates an expected call of BatchUpdateEvaluationSetItems. -func (mr *MockEvaluationSetItemServiceMockRecorder) BatchUpdateEvaluationSetItems(ctx, param any) *gomock.Call { +func (mr *MockEvaluationSetItemServiceMockRecorder) BatchUpdateEvaluationSetItems(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchUpdateEvaluationSetItems", reflect.TypeOf((*MockEvaluationSetItemService)(nil).BatchUpdateEvaluationSetItems), ctx, param) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchUpdateEvaluationSetItems", reflect.TypeOf((*MockEvaluationSetItemService)(nil).BatchUpdateEvaluationSetItems), arg0, arg1) } // ClearEvaluationSetDraftItem mocks base method. -func (m *MockEvaluationSetItemService) ClearEvaluationSetDraftItem(ctx context.Context, spaceID, evaluationSetID int64) error { +func (m *MockEvaluationSetItemService) ClearEvaluationSetDraftItem(arg0 context.Context, arg1, arg2 int64) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ClearEvaluationSetDraftItem", ctx, spaceID, evaluationSetID) + ret := m.ctrl.Call(m, "ClearEvaluationSetDraftItem", arg0, arg1, arg2) ret0, _ := ret[0].(error) return ret0 } // ClearEvaluationSetDraftItem indicates an expected call of ClearEvaluationSetDraftItem. -func (mr *MockEvaluationSetItemServiceMockRecorder) ClearEvaluationSetDraftItem(ctx, spaceID, evaluationSetID any) *gomock.Call { +func (mr *MockEvaluationSetItemServiceMockRecorder) ClearEvaluationSetDraftItem(arg0, arg1, arg2 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ClearEvaluationSetDraftItem", reflect.TypeOf((*MockEvaluationSetItemService)(nil).ClearEvaluationSetDraftItem), ctx, spaceID, evaluationSetID) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ClearEvaluationSetDraftItem", reflect.TypeOf((*MockEvaluationSetItemService)(nil).ClearEvaluationSetDraftItem), arg0, arg1, arg2) } // GetEvaluationSetItemField mocks base method. -func (m *MockEvaluationSetItemService) GetEvaluationSetItemField(ctx context.Context, param *entity.GetEvaluationSetItemFieldParam) (*entity.FieldData, error) { +func (m *MockEvaluationSetItemService) GetEvaluationSetItemField(arg0 context.Context, arg1 *entity.GetEvaluationSetItemFieldParam) (*entity.FieldData, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetEvaluationSetItemField", ctx, param) + ret := m.ctrl.Call(m, "GetEvaluationSetItemField", arg0, arg1) ret0, _ := ret[0].(*entity.FieldData) ret1, _ := ret[1].(error) return ret0, ret1 } // GetEvaluationSetItemField indicates an expected call of GetEvaluationSetItemField. -func (mr *MockEvaluationSetItemServiceMockRecorder) GetEvaluationSetItemField(ctx, param any) *gomock.Call { +func (mr *MockEvaluationSetItemServiceMockRecorder) GetEvaluationSetItemField(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetEvaluationSetItemField", reflect.TypeOf((*MockEvaluationSetItemService)(nil).GetEvaluationSetItemField), ctx, param) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetEvaluationSetItemField", reflect.TypeOf((*MockEvaluationSetItemService)(nil).GetEvaluationSetItemField), arg0, arg1) } // ListEvaluationSetItems mocks base method. -func (m *MockEvaluationSetItemService) ListEvaluationSetItems(ctx context.Context, param *entity.ListEvaluationSetItemsParam) ([]*entity.EvaluationSetItem, *int64, *string, error) { +func (m *MockEvaluationSetItemService) ListEvaluationSetItems(arg0 context.Context, arg1 *entity.ListEvaluationSetItemsParam) ([]*entity.EvaluationSetItem, *int64, *int64, *string, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListEvaluationSetItems", ctx, param) + ret := m.ctrl.Call(m, "ListEvaluationSetItems", arg0, arg1) ret0, _ := ret[0].([]*entity.EvaluationSetItem) ret1, _ := ret[1].(*int64) - ret2, _ := ret[2].(*string) - ret3, _ := ret[3].(error) - return ret0, ret1, ret2, ret3 + ret2, _ := ret[2].(*int64) + ret3, _ := ret[3].(*string) + ret4, _ := ret[4].(error) + return ret0, ret1, ret2, ret3, ret4 } // ListEvaluationSetItems indicates an expected call of ListEvaluationSetItems. -func (mr *MockEvaluationSetItemServiceMockRecorder) ListEvaluationSetItems(ctx, param any) *gomock.Call { +func (mr *MockEvaluationSetItemServiceMockRecorder) ListEvaluationSetItems(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListEvaluationSetItems", reflect.TypeOf((*MockEvaluationSetItemService)(nil).ListEvaluationSetItems), ctx, param) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListEvaluationSetItems", reflect.TypeOf((*MockEvaluationSetItemService)(nil).ListEvaluationSetItems), arg0, arg1) } // UpdateEvaluationSetItem mocks base method. -func (m *MockEvaluationSetItemService) UpdateEvaluationSetItem(ctx context.Context, spaceID, evaluationSetID, itemID int64, turns []*entity.Turn) error { +func (m *MockEvaluationSetItemService) UpdateEvaluationSetItem(arg0 context.Context, arg1, arg2, arg3 int64, arg4 []*entity.Turn) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateEvaluationSetItem", ctx, spaceID, evaluationSetID, itemID, turns) + ret := m.ctrl.Call(m, "UpdateEvaluationSetItem", arg0, arg1, arg2, arg3, arg4) ret0, _ := ret[0].(error) return ret0 } // UpdateEvaluationSetItem indicates an expected call of UpdateEvaluationSetItem. -func (mr *MockEvaluationSetItemServiceMockRecorder) UpdateEvaluationSetItem(ctx, spaceID, evaluationSetID, itemID, turns any) *gomock.Call { +func (mr *MockEvaluationSetItemServiceMockRecorder) UpdateEvaluationSetItem(arg0, arg1, arg2, arg3, arg4 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateEvaluationSetItem", reflect.TypeOf((*MockEvaluationSetItemService)(nil).UpdateEvaluationSetItem), ctx, spaceID, evaluationSetID, itemID, turns) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateEvaluationSetItem", reflect.TypeOf((*MockEvaluationSetItemService)(nil).UpdateEvaluationSetItem), arg0, arg1, arg2, arg3, arg4) } From d565586ee9ab7b6415b41c5417bc0a17abbbf83d Mon Sep 17 00:00:00 2001 From: "zhuangjiaqi.777" Date: Thu, 26 Feb 2026 17:27:30 +0800 Subject: [PATCH 12/17] chore: ut --- .../service/evaluation_set_item_impl_test.go | 38 ++++++++++--------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/backend/modules/evaluation/domain/service/evaluation_set_item_impl_test.go b/backend/modules/evaluation/domain/service/evaluation_set_item_impl_test.go index 8373abbe0..191133c90 100644 --- a/backend/modules/evaluation/domain/service/evaluation_set_item_impl_test.go +++ b/backend/modules/evaluation/domain/service/evaluation_set_item_impl_test.go @@ -214,13 +214,14 @@ func TestEvaluationSetItemServiceImpl_ListEvaluationSetItems(t *testing.T) { service := NewEvaluationSetItemServiceImpl(mockDatasetRPCAdapter) tests := []struct { - name string - param *entity.ListEvaluationSetItemsParam - mockSetup func() - wantItems []*entity.EvaluationSetItem - wantTotal *int64 - wantNextToken *string - wantErr bool + name string + param *entity.ListEvaluationSetItemsParam + mockSetup func() + wantItems []*entity.EvaluationSetItem + wantTotal *int64 + wantFilterTotal *int64 + wantNextToken *string + wantErr bool }{ { name: "成功列出项目 - 无版本ID", @@ -234,14 +235,15 @@ func TestEvaluationSetItemServiceImpl_ListEvaluationSetItems(t *testing.T) { ListDatasetItems(gomock.Any(), gomock.Any()). Return([]*entity.EvaluationSetItem{ {ID: 1, ItemKey: "item1"}, - }, gptr.Of[int64](1), gptr.Of("next_token"), nil) + }, gptr.Of[int64](1), gptr.Of[int64](1), gptr.Of("next_token"), nil) }, wantItems: []*entity.EvaluationSetItem{ {ID: 1, ItemKey: "item1"}, }, - wantTotal: gptr.Of[int64](1), - wantNextToken: gptr.Of("next_token"), - wantErr: false, + wantTotal: gptr.Of[int64](1), + wantFilterTotal: gptr.Of[int64](1), + wantNextToken: gptr.Of("next_token"), + wantErr: false, }, { name: "成功列出项目 - 有版本ID", @@ -255,12 +257,13 @@ func TestEvaluationSetItemServiceImpl_ListEvaluationSetItems(t *testing.T) { ListDatasetItemsByVersion(gomock.Any(), gomock.Any()). Return([]*entity.EvaluationSetItem{ {ID: 1, ItemKey: "item1"}, - }, gptr.Of[int64](1), nil, nil) + }, gptr.Of[int64](1), gptr.Of[int64](1), nil, nil) }, - wantItems: []*entity.EvaluationSetItem{{ID: 1, ItemKey: "item1"}}, - wantTotal: gptr.Of[int64](1), - wantNextToken: nil, - wantErr: false, + wantItems: []*entity.EvaluationSetItem{{ID: 1, ItemKey: "item1"}}, + wantTotal: gptr.Of[int64](1), + wantFilterTotal: gptr.Of[int64](1), + wantNextToken: nil, + wantErr: false, }, { name: "列出失败 - 参数为空", @@ -274,7 +277,7 @@ func TestEvaluationSetItemServiceImpl_ListEvaluationSetItems(t *testing.T) { t.Run(tt.name, func(t *testing.T) { tt.mockSetup() - items, total, nextToken, err := service.ListEvaluationSetItems(context.Background(), tt.param) + items, total, filterTotal, nextToken, err := service.ListEvaluationSetItems(context.Background(), tt.param) if tt.wantErr { assert.Error(t, err) return @@ -283,6 +286,7 @@ func TestEvaluationSetItemServiceImpl_ListEvaluationSetItems(t *testing.T) { assert.NoError(t, err) assert.Equal(t, tt.wantItems, items) assert.Equal(t, tt.wantTotal, total) + assert.Equal(t, tt.wantFilterTotal, filterTotal) assert.Equal(t, tt.wantNextToken, nextToken) }) } From 57c96af82ff763dc238bd2cda319e2bfd85f546e Mon Sep 17 00:00:00 2001 From: "zhuangjiaqi.777" Date: Thu, 26 Feb 2026 17:54:24 +0800 Subject: [PATCH 13/17] chore: format --- backend/go.mod | 2 +- backend/modules/evaluation/domain/entity/common.go | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/backend/go.mod b/backend/go.mod index eef881f11..27b853e23 100644 --- a/backend/go.mod +++ b/backend/go.mod @@ -170,7 +170,7 @@ require ( github.com/go-sql-driver/mysql v1.9.2 // indirect github.com/gocraft/dbr/v2 v2.7.2 // indirect github.com/golang-jwt/jwt v3.2.2+incompatible // indirect - github.com/golang/mock v1.6.0 + github.com/golang/mock v1.6.0 // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5 // indirect github.com/google/s2a-go v0.1.8 // indirect diff --git a/backend/modules/evaluation/domain/entity/common.go b/backend/modules/evaluation/domain/entity/common.go index e8a65c8f0..7ac7a3fa2 100644 --- a/backend/modules/evaluation/domain/entity/common.go +++ b/backend/modules/evaluation/domain/entity/common.go @@ -11,8 +11,10 @@ import ( "github.com/coze-dev/coze-loop/backend/kitex_gen/stone/fornax/ml_flow/domain/filter" ) -type Filter = filter.Filter -type FilterField = filter.FilterField +type ( + Filter = filter.Filter + FilterField = filter.FilterField +) // ContentType 定义内容类型 type ContentType string From c940aa5ceaf3f5a0fa24d06be54f9b3bca6a98e5 Mon Sep 17 00:00:00 2001 From: "zhuangjiaqi.777" Date: Thu, 26 Feb 2026 18:50:58 +0800 Subject: [PATCH 14/17] chore: ut --- .../evaluation/domain/service/expt_annotate_impl_test.go | 2 +- .../domain/service/expt_run_scheduler_mode_impl_test.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/modules/evaluation/domain/service/expt_annotate_impl_test.go b/backend/modules/evaluation/domain/service/expt_annotate_impl_test.go index f90892d7d..ca3aa5692 100644 --- a/backend/modules/evaluation/domain/service/expt_annotate_impl_test.go +++ b/backend/modules/evaluation/domain/service/expt_annotate_impl_test.go @@ -67,7 +67,7 @@ func TestExptAnnotateServiceImpl_CreateExptTurnResultTagRefs(t *testing.T) { svc.evaluationSetItemService.(*svcMocks.MockEvaluationSetItemService).EXPECT(). ListEvaluationSetItems(ctx, gomock.Any()). - Return(nil, ptr.Of(int64((1))), nil, nil).Times(1) + Return(nil, ptr.Of(int64((1))), ptr.Of(int64((1))), nil, nil).Times(1) svc.repo.(*repoMocks.MockIExptAnnotateRepo).EXPECT(). CreateExptTurnResultTagRefs(ctx, gomock.Any()). diff --git a/backend/modules/evaluation/domain/service/expt_run_scheduler_mode_impl_test.go b/backend/modules/evaluation/domain/service/expt_run_scheduler_mode_impl_test.go index 67dc835ed..e9eb99205 100644 --- a/backend/modules/evaluation/domain/service/expt_run_scheduler_mode_impl_test.go +++ b/backend/modules/evaluation/domain/service/expt_run_scheduler_mode_impl_test.go @@ -367,7 +367,7 @@ func TestExptSubmitExec_ExptStart(t *testing.T) { f.evaluationSetItemService.EXPECT().ListEvaluationSetItems(gomock.Any(), gomock.Any()).Return([]*entity.EvaluationSetItem{ {ItemID: 1, Turns: []*entity.Turn{{ID: 1}}}, {ItemID: 2, Turns: []*entity.Turn{{ID: 2}}}, - }, ptr.Of(int64(2)), nil, nil).Times(1) + }, ptr.Of(int64(2)), ptr.Of(int64(2)), nil, nil).Times(1) f.idgenerator.EXPECT().GenMultiIDs(gomock.Any(), gomock.Any()).Return([]int64{1, 2, 3, 4}, nil).Times(1) f.exptTurnResultRepo.EXPECT().BatchCreateNX(gomock.Any(), gomock.Any()).Return(nil).Times(1) f.exptItemResultRepo.EXPECT().BatchCreateNX(gomock.Any(), gomock.Any()).Return(nil).Times(1) From 771a78a2d91f52953512aff0c0c5590bddfa7083 Mon Sep 17 00:00:00 2001 From: "zhuangjiaqi.777" Date: Thu, 26 Feb 2026 22:33:04 +0800 Subject: [PATCH 15/17] chore: ut --- .../modules/evaluation/application/eval_openapi_app_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/modules/evaluation/application/eval_openapi_app_test.go b/backend/modules/evaluation/application/eval_openapi_app_test.go index ccb74775e..799ac1842 100755 --- a/backend/modules/evaluation/application/eval_openapi_app_test.go +++ b/backend/modules/evaluation/application/eval_openapi_app_test.go @@ -1340,7 +1340,7 @@ func TestEvalOpenAPIApplication_ListEvaluationSetVersionItemsOApi(t *testing.T) set := &entity.EvaluationSet{ID: evaluationSetID, SpaceID: workspaceID} evalSetSvc.EXPECT().GetEvaluationSet(gomock.Any(), gomock.Any(), evaluationSetID, gomock.Any()).Return(set, nil) auth.EXPECT().AuthorizationWithoutSPI(gomock.Any(), gomock.AssignableToTypeOf(&rpc.AuthorizationWithoutSPIParam{})).Return(nil) - itemSvc.EXPECT().ListEvaluationSetItems(gomock.Any(), gomock.AssignableToTypeOf(&entity.ListEvaluationSetItemsParam{})).Return(nil, nil, nil, errors.New("list error")) + itemSvc.EXPECT().ListEvaluationSetItems(gomock.Any(), gomock.AssignableToTypeOf(&entity.ListEvaluationSetItemsParam{})).Return(nil, nil, nil, nil, errors.New("list error")) }, wantErr: -1, }, @@ -1358,7 +1358,7 @@ func TestEvalOpenAPIApplication_ListEvaluationSetVersionItemsOApi(t *testing.T) items := []*entity.EvaluationSetItem{{ID: 1}, {ID: 2}} total := gptr.Of(int64(2)) next := gptr.Of("cursor") - itemSvc.EXPECT().ListEvaluationSetItems(gomock.Any(), gomock.AssignableToTypeOf(&entity.ListEvaluationSetItemsParam{})).Return(items, total, next, nil) + itemSvc.EXPECT().ListEvaluationSetItems(gomock.Any(), gomock.AssignableToTypeOf(&entity.ListEvaluationSetItemsParam{})).Return(items, total, total, next, nil) }, wantLen: 2, }, From b5b6f439df04bc1bc485a69842977d3b8bcdf984 Mon Sep 17 00:00:00 2001 From: "zhuangjiaqi.777" Date: Fri, 27 Feb 2026 11:49:24 +0800 Subject: [PATCH 16/17] dev --- backend/modules/prompt/application/debug.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/backend/modules/prompt/application/debug.go b/backend/modules/prompt/application/debug.go index f9e96d65c..b9a65f7f7 100644 --- a/backend/modules/prompt/application/debug.go +++ b/backend/modules/prompt/application/debug.go @@ -234,8 +234,10 @@ func (p *PromptDebugApplicationImpl) doDebugStreaming(ctx context.Context, req * // execute resultStream := make(chan *entity.Reply) errChan := make(chan error) + replyChan := make(chan *entity.Reply, 1) goroutine.GoSafe(ctx, func() { var executeErr error + var localReply *entity.Reply defer func() { e := recover() if e != nil { @@ -247,13 +249,15 @@ func (p *PromptDebugApplicationImpl) doDebugStreaming(ctx context.Context, req * errChan <- executeErr } close(errChan) + replyChan <- localReply + close(replyChan) }() defer func() { // 写入调试记录 logErr := p.saveDebugLog(context.WithoutCancel(ctx), saveDebugLogParam{ prompt: prompt, startTime: startTime, - result: aggregatedReply, + result: localReply, err: executeErr, singleStepDebug: req.GetSingleStepDebug(), }) @@ -269,7 +273,7 @@ func (p *PromptDebugApplicationImpl) doDebugStreaming(ctx context.Context, req * if executeErr != nil { return } - aggregatedReply, executeErr = p.promptService.ExecuteStreaming(ctx, service.ExecuteStreamingParam{ + localReply, executeErr = p.promptService.ExecuteStreaming(ctx, service.ExecuteStreamingParam{ ExecuteParam: service.ExecuteParam{ Prompt: prompt, Messages: messages, @@ -333,6 +337,7 @@ func (p *PromptDebugApplicationImpl) doDebugStreaming(ctx context.Context, req * logs.CtxError(ctx, "debug streaming failed, err=%v", err) } } + aggregatedReply = <-replyChan return aggregatedReply, err } } From 16b7bf0e8b6dfa6347353dd0f07c886fb7a9f864 Mon Sep 17 00:00:00 2001 From: "zhuangjiaqi.777" Date: Fri, 27 Feb 2026 13:13:07 +0800 Subject: [PATCH 17/17] Revert "dev" This reverts commit cb8eacbfc3fc76be3977e2aa31c7bc6eb5f9e8e1. --- backend/modules/prompt/application/debug.go | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/backend/modules/prompt/application/debug.go b/backend/modules/prompt/application/debug.go index b9a65f7f7..f9e96d65c 100644 --- a/backend/modules/prompt/application/debug.go +++ b/backend/modules/prompt/application/debug.go @@ -234,10 +234,8 @@ func (p *PromptDebugApplicationImpl) doDebugStreaming(ctx context.Context, req * // execute resultStream := make(chan *entity.Reply) errChan := make(chan error) - replyChan := make(chan *entity.Reply, 1) goroutine.GoSafe(ctx, func() { var executeErr error - var localReply *entity.Reply defer func() { e := recover() if e != nil { @@ -249,15 +247,13 @@ func (p *PromptDebugApplicationImpl) doDebugStreaming(ctx context.Context, req * errChan <- executeErr } close(errChan) - replyChan <- localReply - close(replyChan) }() defer func() { // 写入调试记录 logErr := p.saveDebugLog(context.WithoutCancel(ctx), saveDebugLogParam{ prompt: prompt, startTime: startTime, - result: localReply, + result: aggregatedReply, err: executeErr, singleStepDebug: req.GetSingleStepDebug(), }) @@ -273,7 +269,7 @@ func (p *PromptDebugApplicationImpl) doDebugStreaming(ctx context.Context, req * if executeErr != nil { return } - localReply, executeErr = p.promptService.ExecuteStreaming(ctx, service.ExecuteStreamingParam{ + aggregatedReply, executeErr = p.promptService.ExecuteStreaming(ctx, service.ExecuteStreamingParam{ ExecuteParam: service.ExecuteParam{ Prompt: prompt, Messages: messages, @@ -337,7 +333,6 @@ func (p *PromptDebugApplicationImpl) doDebugStreaming(ctx context.Context, req * logs.CtxError(ctx, "debug streaming failed, err=%v", err) } } - aggregatedReply = <-replyChan return aggregatedReply, err } }