diff --git a/backend/api/handler/coze/loop/apis/experiment_service.go b/backend/api/handler/coze/loop/apis/experiment_service.go index e615f7248..1d2a16655 100644 --- a/backend/api/handler/coze/loop/apis/experiment_service.go +++ b/backend/api/handler/coze/loop/apis/experiment_service.go @@ -222,3 +222,105 @@ func GetAnalysisRecordFeedbackVote(ctx context.Context, c *app.RequestContext) { func CalculateExperimentAggrResult(ctx context.Context, c *app.RequestContext) { invokeAndRender(ctx, c, localExptSvc.CalculateExperimentAggrResult_) } + +// CreateExperimentTemplate . +// @router /api/evaluation/v1/experiment_templates/create [POST] +func CreateExperimentTemplate(ctx context.Context, c *app.RequestContext) { + var err error + var req expt.CreateExperimentTemplateRequest + err = c.BindAndValidate(&req) + if err != nil { + c.String(consts.StatusBadRequest, err.Error()) + return + } + + resp := new(expt.CreateExperimentTemplateResponse) + + c.JSON(consts.StatusOK, resp) +} + +// UpdateExperimentTemplate . +// @router /api/evaluation/v1/experiment_templates/:template_id [PATCH] +func UpdateExperimentTemplate(ctx context.Context, c *app.RequestContext) { + var err error + var req expt.UpdateExperimentTemplateRequest + err = c.BindAndValidate(&req) + if err != nil { + c.String(consts.StatusBadRequest, err.Error()) + return + } + + resp := new(expt.UpdateExperimentTemplateResponse) + + c.JSON(consts.StatusOK, resp) +} + +// DeleteExperimentTemplate . +// @router /api/evaluation/v1/experiment_templates/:template_id [DELETE] +func DeleteExperimentTemplate(ctx context.Context, c *app.RequestContext) { + var err error + var req expt.DeleteExperimentTemplateRequest + err = c.BindAndValidate(&req) + if err != nil { + c.String(consts.StatusBadRequest, err.Error()) + return + } + + resp := new(expt.DeleteExperimentTemplateResponse) + + c.JSON(consts.StatusOK, resp) +} + +// ListExperimentTemplates . +// @router /api/evaluation/v1/experiment_templates/list [POST] +func ListExperimentTemplates(ctx context.Context, c *app.RequestContext) { + var err error + var req expt.ListExperimentTemplatesRequest + err = c.BindAndValidate(&req) + if err != nil { + c.String(consts.StatusBadRequest, err.Error()) + return + } + + resp := new(expt.ListExperimentTemplatesResponse) + + c.JSON(consts.StatusOK, resp) +} + +// BatchGetExperimentTemplate . +// @router /api/evaluation/v1/experiment_templates/:template_id [GET] +func BatchGetExperimentTemplate(ctx context.Context, c *app.RequestContext) { + var err error + var req expt.BatchGetExperimentTemplateRequest + err = c.BindAndValidate(&req) + if err != nil { + c.String(consts.StatusBadRequest, err.Error()) + return + } + + resp := new(expt.BatchGetExperimentTemplateResponse) + + c.JSON(consts.StatusOK, resp) +} + +// UpdateExperimentTemplateMeta . +// @router /api/evaluation/v1/experiment_templates/update_meta [POST] +func UpdateExperimentTemplateMeta(ctx context.Context, c *app.RequestContext) { + var err error + var req expt.UpdateExperimentTemplateMetaRequest + err = c.BindAndValidate(&req) + if err != nil { + c.String(consts.StatusBadRequest, err.Error()) + return + } + + resp := new(expt.UpdateExperimentTemplateMetaResponse) + + c.JSON(consts.StatusOK, resp) +} + +// CheckExperimentTemplateName . +// @router /api/evaluation/v1/experiment_templates/check_name [POST] +func CheckExperimentTemplateName(ctx context.Context, c *app.RequestContext) { + invokeAndRender(ctx, c, localExptSvc.CheckExperimentTemplateName) +} diff --git a/backend/api/handler/coze/loop/apis/experiment_service_test.go b/backend/api/handler/coze/loop/apis/experiment_service_test.go index 803325426..c7a2d505e 100755 --- a/backend/api/handler/coze/loop/apis/experiment_service_test.go +++ b/backend/api/handler/coze/loop/apis/experiment_service_test.go @@ -62,6 +62,91 @@ func TestExperimentServiceHandlers(t *testing.T) { expectedStatus: http.StatusBadRequest, description: "测试UpsertExptTurnResultFilter无效JSON", }, + // 实验模板相关 handler 测试 + { + name: "CreateExperimentTemplate_ValidRequest", + handler: CreateExperimentTemplate, + requestBody: `{"workspace_id": 123}`, + expectedStatus: http.StatusOK, + description: "测试CreateExperimentTemplate有效请求", + }, + { + name: "CreateExperimentTemplate_InvalidJSON", + handler: CreateExperimentTemplate, + requestBody: `{invalid json}`, + expectedStatus: http.StatusBadRequest, + description: "测试CreateExperimentTemplate无效JSON", + }, + { + name: "UpdateExperimentTemplate_ValidRequest", + handler: UpdateExperimentTemplate, + requestBody: `{"workspace_id": 123, "template_id": 1}`, + expectedStatus: http.StatusOK, + description: "测试UpdateExperimentTemplate有效请求", + }, + { + name: "UpdateExperimentTemplate_InvalidJSON", + handler: UpdateExperimentTemplate, + requestBody: `{invalid json}`, + expectedStatus: http.StatusBadRequest, + description: "测试UpdateExperimentTemplate无效JSON", + }, + { + name: "DeleteExperimentTemplate_ValidRequest", + handler: DeleteExperimentTemplate, + requestBody: `{"workspace_id": 123, "template_id": 1}`, + expectedStatus: http.StatusOK, + description: "测试DeleteExperimentTemplate有效请求", + }, + { + name: "DeleteExperimentTemplate_InvalidJSON", + handler: DeleteExperimentTemplate, + requestBody: `{invalid json}`, + expectedStatus: http.StatusBadRequest, + description: "测试DeleteExperimentTemplate无效JSON", + }, + { + name: "ListExperimentTemplates_ValidRequest", + handler: ListExperimentTemplates, + requestBody: `{"workspace_id": 123}`, + expectedStatus: http.StatusOK, + description: "测试ListExperimentTemplates有效请求", + }, + { + name: "ListExperimentTemplates_InvalidJSON", + handler: ListExperimentTemplates, + requestBody: `{invalid json}`, + expectedStatus: http.StatusBadRequest, + description: "测试ListExperimentTemplates无效JSON", + }, + { + name: "BatchGetExperimentTemplate_ValidRequest", + handler: BatchGetExperimentTemplate, + requestBody: `{"workspace_id": 123, "template_ids": [1,2,3]}`, + expectedStatus: http.StatusOK, + description: "测试BatchGetExperimentTemplate有效请求", + }, + { + name: "BatchGetExperimentTemplate_InvalidJSON", + handler: BatchGetExperimentTemplate, + requestBody: `{invalid json}`, + expectedStatus: http.StatusBadRequest, + description: "测试BatchGetExperimentTemplate无效JSON", + }, + { + name: "UpdateExperimentTemplateMeta_ValidRequest", + handler: UpdateExperimentTemplateMeta, + requestBody: `{"workspace_id": 123, "template_id": 1}`, + expectedStatus: http.StatusOK, + description: "测试UpdateExperimentTemplateMeta有效请求", + }, + { + name: "UpdateExperimentTemplateMeta_InvalidJSON", + handler: UpdateExperimentTemplateMeta, + requestBody: `{invalid json}`, + expectedStatus: http.StatusBadRequest, + description: "测试UpdateExperimentTemplateMeta无效JSON", + }, // InsightAnalysisExperiment 测试 // { // name: "InsightAnalysisExperiment_ValidRequest", @@ -208,6 +293,13 @@ func TestHandlerResponseFormat(t *testing.T) { }{ {"ListExperimentStats", ListExperimentStats, `{"workspace_id": 123}`}, {"UpsertExptTurnResultFilter", UpsertExptTurnResultFilter, `{}`}, + // 实验模板相关 handler + {"CreateExperimentTemplate", CreateExperimentTemplate, `{"workspace_id": 123}`}, + {"UpdateExperimentTemplate", UpdateExperimentTemplate, `{"workspace_id": 123, "template_id": 1}`}, + {"DeleteExperimentTemplate", DeleteExperimentTemplate, `{"workspace_id": 123, "template_id": 1}`}, + {"ListExperimentTemplates", ListExperimentTemplates, `{"workspace_id": 123}`}, + {"BatchGetExperimentTemplate", BatchGetExperimentTemplate, `{"workspace_id": 123, "template_ids": [1,2,3]}`}, + {"UpdateExperimentTemplateMeta", UpdateExperimentTemplateMeta, `{"workspace_id": 123, "template_id": 1}`}, // {"InsightAnalysisExperiment", InsightAnalysisExperiment, `{}`}, // {"ListExptInsightAnalysisRecord", ListExptInsightAnalysisRecord, `{}`}, // {"DeleteExptInsightAnalysisRecord", DeleteExptInsightAnalysisRecord, `{}`}, diff --git a/backend/api/handler/coze/loop/apis/wire_gen.go b/backend/api/handler/coze/loop/apis/wire_gen.go index 6466e80d9..6f0460673 100644 --- a/backend/api/handler/coze/loop/apis/wire_gen.go +++ b/backend/api/handler/coze/loop/apis/wire_gen.go @@ -123,7 +123,7 @@ func InitLLMHandler(ctx context.Context, idgen2 idgen.IIDGenerator, db2 db.Provi func InitEvaluationHandler(ctx context.Context, idgen2 idgen.IIDGenerator, db2 db.Provider, ckDb ck.Provider, cmdable redis.Cmdable, configFactory conf.IConfigLoaderFactory, mqFactory mq.IFactory, client datasetservice.Client, promptClient promptmanageservice.Client, pec promptexecuteservice.Client, authClient authservice.Client, meter metrics.Meter, auditClient audit.IAuditService, llmClient llmruntimeservice.Client, userClient userservice.Client, benefitSvc benefit.IBenefitService, limiterFactory limiter.IRateLimiterFactory, fileClient fileservice.Client, tagClient tagservice.Client, objectStorage fileserver.ObjectStorage, plainLimiterFactory limiter.IPlainRateLimiterFactory, tracerFactory func() observabilitytraceservice.Client) (*EvaluationHandler, error) { evaluationSetService := application4.InitEvaluationSetApplication(client, authClient, meter, userClient) - evaluatorService, err := application4.InitEvaluatorApplication(ctx, idgen2, authClient, db2, configFactory, mqFactory, llmClient, meter, userClient, auditClient, cmdable, benefitSvc, limiterFactory, fileClient, plainLimiterFactory) + evaluatorService, err := application4.InitEvaluatorApplication(ctx, idgen2, authClient, db2, configFactory, mqFactory, llmClient, meter, userClient, auditClient, cmdable, benefitSvc, limiterFactory, fileClient, plainLimiterFactory, ckDb, tagClient, promptClient, pec, client, tracerFactory) if err != nil { return nil, err } diff --git a/backend/api/router/coze/loop/apis/coze.loop.apis.go b/backend/api/router/coze/loop/apis/coze.loop.apis.go index 40910aff3..b96ecbcd1 100644 --- a/backend/api/router/coze/loop/apis/coze.loop.apis.go +++ b/backend/api/router/coze/loop/apis/coze.loop.apis.go @@ -171,6 +171,14 @@ func Register(r *server.Hertz, handler *apis.APIHandler) { _evaluators.POST("/list_tags", append(_listevaluatortagsMw(handler), apis.ListEvaluatorTags)...) _evaluators.POST("/list_template", append(_listtemplatesMw(handler), apis.ListTemplates)...) _evaluators.POST("/validate", append(_validateevaluatorMw(handler), apis.ValidateEvaluator)...) + _v11.POST("/experiment_templates", append(_experiment_templatesMw(handler), apis.CreateExperimentTemplate)...) + _experiment_templates := _v11.Group("/experiment_templates", _experiment_templatesMw(handler)...) + _experiment_templates.POST("/batch_get", append(_batchgetexperimenttemplateMw(handler), apis.BatchGetExperimentTemplate)...) + _experiment_templates.POST("/check_name", append(_checkexperimenttemplatenameMw(handler), apis.CheckExperimentTemplateName)...) + _experiment_templates.POST("/list", append(_listexperimenttemplatesMw(handler), apis.ListExperimentTemplates)...) + _experiment_templates.DELETE("/:template_id", append(_deleteexperimenttemplateMw(handler), apis.DeleteExperimentTemplate)...) + _experiment_templates.PATCH("/:template_id", append(_updateexperimenttemplateMw(handler), apis.UpdateExperimentTemplate)...) + _experiment_templates.POST("/update_meta", append(_updateexperimenttemplatemetaMw(handler), apis.UpdateExperimentTemplateMeta)...) { _eval_target_records := _v11.Group("/eval_target_records", _eval_target_recordsMw(handler)...) _eval_target_records.POST("/batch_get", append(_batchgetevaltargetrecordsMw(handler), apis.BatchGetEvalTargetRecords)...) diff --git a/backend/api/router/coze/loop/apis/middleware.go b/backend/api/router/coze/loop/apis/middleware.go index 0479644f5..cc7d44220 100644 --- a/backend/api/router/coze/loop/apis/middleware.go +++ b/backend/api/router/coze/loop/apis/middleware.go @@ -1770,26 +1770,51 @@ func _pre_spanMw(handler *apis.APIHandler) []app.HandlerFunc { return nil } +func _experiment_templatesMw(handler *apis.APIHandler) []app.HandlerFunc { + // your code... + return nil +} + func _listprespanoapiMw(handler *apis.APIHandler) []app.HandlerFunc { // your code... return nil } +func _createexperimenttemplateMw(handler *apis.APIHandler) []app.HandlerFunc { + // your code... + return nil +} + func _createevaluationsetwithimportMw(handler *apis.APIHandler) []app.HandlerFunc { // your code... return nil } +func _listexperimenttemplatesMw(handler *apis.APIHandler) []app.HandlerFunc { + // your code... + return nil +} + func _insight_analysis_records0Mw(handler *apis.APIHandler) []app.HandlerFunc { // your code... return nil } +func _deleteexperimenttemplateMw(handler *apis.APIHandler) []app.HandlerFunc { + // your code... + return nil +} + func _insight_analysis_record_id0Mw(handler *apis.APIHandler) []app.HandlerFunc { // your code... return nil } +func _updateexperimenttemplateMw(handler *apis.APIHandler) []app.HandlerFunc { + // your code... + return nil +} + func _getanalysisrecordfeedbackvoteMw(handler *apis.APIHandler) []app.HandlerFunc { // your code... return nil @@ -1804,3 +1829,23 @@ func _calculateexperimentaggrresultMw(handler *apis.APIHandler) []app.HandlerFun // your code... return nil } + +func _getexperimenttemplateMw(handler *apis.APIHandler) []app.HandlerFunc { + // your code... + return nil +} + +func _batchgetexperimenttemplateMw(handler *apis.APIHandler) []app.HandlerFunc { + // your code... + return nil +} + +func _updateexperimenttemplatemetaMw(handler *apis.APIHandler) []app.HandlerFunc { + // your code... + return nil +} + +func _checkexperimenttemplatenameMw(handler *apis.APIHandler) []app.HandlerFunc { + // your code... + return nil +} diff --git a/backend/infra/platestwrite/latest_write_tracker.go b/backend/infra/platestwrite/latest_write_tracker.go index 69b6cd859..fcc568b15 100644 --- a/backend/infra/platestwrite/latest_write_tracker.go +++ b/backend/infra/platestwrite/latest_write_tracker.go @@ -137,6 +137,7 @@ const ( ResourceTypeTarget ResourceType = "eval_target" ResourceTypeTargetVersion ResourceType = "eval_target_version" ResourceTypeEvaluator ResourceType = "evaluator" + ResourceTypeExptTemplate ResourceType = "expt_template" ResourceTypeExptInsightAnalysisRecord ResourceType = "expt_insight_analysis_record" ResourceTypeExptInsightAnalysisFeedback ResourceType = "expt_insight_analysis_feedback" diff --git a/backend/kitex_gen/coze/loop/apis/experimentservice/client.go b/backend/kitex_gen/coze/loop/apis/experimentservice/client.go index f3eeeea5f..6551202e4 100644 --- a/backend/kitex_gen/coze/loop/apis/experimentservice/client.go +++ b/backend/kitex_gen/coze/loop/apis/experimentservice/client.go @@ -44,6 +44,13 @@ type Client interface { FeedbackExptInsightAnalysisReport(ctx context.Context, req *expt.FeedbackExptInsightAnalysisReportRequest, callOptions ...callopt.Option) (r *expt.FeedbackExptInsightAnalysisReportResponse, err error) ListExptInsightAnalysisComment(ctx context.Context, req *expt.ListExptInsightAnalysisCommentRequest, callOptions ...callopt.Option) (r *expt.ListExptInsightAnalysisCommentResponse, err error) GetAnalysisRecordFeedbackVote(ctx context.Context, req *expt.GetAnalysisRecordFeedbackVoteRequest, callOptions ...callopt.Option) (r *expt.GetAnalysisRecordFeedbackVoteResponse, err error) + CreateExperimentTemplate(ctx context.Context, req *expt.CreateExperimentTemplateRequest, callOptions ...callopt.Option) (r *expt.CreateExperimentTemplateResponse, err error) + BatchGetExperimentTemplate(ctx context.Context, req *expt.BatchGetExperimentTemplateRequest, callOptions ...callopt.Option) (r *expt.BatchGetExperimentTemplateResponse, err error) + UpdateExperimentTemplateMeta(ctx context.Context, req *expt.UpdateExperimentTemplateMetaRequest, callOptions ...callopt.Option) (r *expt.UpdateExperimentTemplateMetaResponse, err error) + UpdateExperimentTemplate(ctx context.Context, req *expt.UpdateExperimentTemplateRequest, callOptions ...callopt.Option) (r *expt.UpdateExperimentTemplateResponse, err error) + DeleteExperimentTemplate(ctx context.Context, req *expt.DeleteExperimentTemplateRequest, callOptions ...callopt.Option) (r *expt.DeleteExperimentTemplateResponse, err error) + ListExperimentTemplates(ctx context.Context, req *expt.ListExperimentTemplatesRequest, callOptions ...callopt.Option) (r *expt.ListExperimentTemplatesResponse, err error) + CheckExperimentTemplateName(ctx context.Context, req *expt.CheckExperimentTemplateNameRequest, callOptions ...callopt.Option) (r *expt.CheckExperimentTemplateNameResponse, err error) } // NewClient creates a client for the service defined in IDL. @@ -239,3 +246,38 @@ func (p *kExperimentServiceClient) GetAnalysisRecordFeedbackVote(ctx context.Con ctx = client.NewCtxWithCallOptions(ctx, callOptions) return p.kClient.GetAnalysisRecordFeedbackVote(ctx, req) } + +func (p *kExperimentServiceClient) CreateExperimentTemplate(ctx context.Context, req *expt.CreateExperimentTemplateRequest, callOptions ...callopt.Option) (r *expt.CreateExperimentTemplateResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.CreateExperimentTemplate(ctx, req) +} + +func (p *kExperimentServiceClient) BatchGetExperimentTemplate(ctx context.Context, req *expt.BatchGetExperimentTemplateRequest, callOptions ...callopt.Option) (r *expt.BatchGetExperimentTemplateResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.BatchGetExperimentTemplate(ctx, req) +} + +func (p *kExperimentServiceClient) UpdateExperimentTemplateMeta(ctx context.Context, req *expt.UpdateExperimentTemplateMetaRequest, callOptions ...callopt.Option) (r *expt.UpdateExperimentTemplateMetaResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.UpdateExperimentTemplateMeta(ctx, req) +} + +func (p *kExperimentServiceClient) UpdateExperimentTemplate(ctx context.Context, req *expt.UpdateExperimentTemplateRequest, callOptions ...callopt.Option) (r *expt.UpdateExperimentTemplateResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.UpdateExperimentTemplate(ctx, req) +} + +func (p *kExperimentServiceClient) DeleteExperimentTemplate(ctx context.Context, req *expt.DeleteExperimentTemplateRequest, callOptions ...callopt.Option) (r *expt.DeleteExperimentTemplateResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.DeleteExperimentTemplate(ctx, req) +} + +func (p *kExperimentServiceClient) ListExperimentTemplates(ctx context.Context, req *expt.ListExperimentTemplatesRequest, callOptions ...callopt.Option) (r *expt.ListExperimentTemplatesResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.ListExperimentTemplates(ctx, req) +} + +func (p *kExperimentServiceClient) CheckExperimentTemplateName(ctx context.Context, req *expt.CheckExperimentTemplateNameRequest, callOptions ...callopt.Option) (r *expt.CheckExperimentTemplateNameResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.CheckExperimentTemplateName(ctx, req) +} diff --git a/backend/kitex_gen/coze/loop/apis/experimentservice/experimentservice.go b/backend/kitex_gen/coze/loop/apis/experimentservice/experimentservice.go index b17d10223..40e4759b5 100644 --- a/backend/kitex_gen/coze/loop/apis/experimentservice/experimentservice.go +++ b/backend/kitex_gen/coze/loop/apis/experimentservice/experimentservice.go @@ -245,6 +245,55 @@ var serviceMethods = map[string]kitex.MethodInfo{ false, kitex.WithStreamingMode(kitex.StreamingNone), ), + "CreateExperimentTemplate": kitex.NewMethodInfo( + createExperimentTemplateHandler, + newExperimentServiceCreateExperimentTemplateArgs, + newExperimentServiceCreateExperimentTemplateResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), + "BatchGetExperimentTemplate": kitex.NewMethodInfo( + batchGetExperimentTemplateHandler, + newExperimentServiceBatchGetExperimentTemplateArgs, + newExperimentServiceBatchGetExperimentTemplateResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), + "UpdateExperimentTemplateMeta": kitex.NewMethodInfo( + updateExperimentTemplateMetaHandler, + newExperimentServiceUpdateExperimentTemplateMetaArgs, + newExperimentServiceUpdateExperimentTemplateMetaResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), + "UpdateExperimentTemplate": kitex.NewMethodInfo( + updateExperimentTemplateHandler, + newExperimentServiceUpdateExperimentTemplateArgs, + newExperimentServiceUpdateExperimentTemplateResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), + "DeleteExperimentTemplate": kitex.NewMethodInfo( + deleteExperimentTemplateHandler, + newExperimentServiceDeleteExperimentTemplateArgs, + newExperimentServiceDeleteExperimentTemplateResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), + "ListExperimentTemplates": kitex.NewMethodInfo( + listExperimentTemplatesHandler, + newExperimentServiceListExperimentTemplatesArgs, + newExperimentServiceListExperimentTemplatesResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), + "CheckExperimentTemplateName": kitex.NewMethodInfo( + checkExperimentTemplateNameHandler, + newExperimentServiceCheckExperimentTemplateNameArgs, + newExperimentServiceCheckExperimentTemplateNameResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), } var ( @@ -905,6 +954,139 @@ func newExperimentServiceGetAnalysisRecordFeedbackVoteResult() interface{} { return expt.NewExperimentServiceGetAnalysisRecordFeedbackVoteResult() } +func createExperimentTemplateHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*expt.ExperimentServiceCreateExperimentTemplateArgs) + realResult := result.(*expt.ExperimentServiceCreateExperimentTemplateResult) + success, err := handler.(expt.ExperimentService).CreateExperimentTemplate(ctx, realArg.Req) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newExperimentServiceCreateExperimentTemplateArgs() interface{} { + return expt.NewExperimentServiceCreateExperimentTemplateArgs() +} + +func newExperimentServiceCreateExperimentTemplateResult() interface{} { + return expt.NewExperimentServiceCreateExperimentTemplateResult() +} + +func batchGetExperimentTemplateHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*expt.ExperimentServiceBatchGetExperimentTemplateArgs) + realResult := result.(*expt.ExperimentServiceBatchGetExperimentTemplateResult) + success, err := handler.(expt.ExperimentService).BatchGetExperimentTemplate(ctx, realArg.Req) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newExperimentServiceBatchGetExperimentTemplateArgs() interface{} { + return expt.NewExperimentServiceBatchGetExperimentTemplateArgs() +} + +func newExperimentServiceBatchGetExperimentTemplateResult() interface{} { + return expt.NewExperimentServiceBatchGetExperimentTemplateResult() +} + +func updateExperimentTemplateMetaHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*expt.ExperimentServiceUpdateExperimentTemplateMetaArgs) + realResult := result.(*expt.ExperimentServiceUpdateExperimentTemplateMetaResult) + success, err := handler.(expt.ExperimentService).UpdateExperimentTemplateMeta(ctx, realArg.Req) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newExperimentServiceUpdateExperimentTemplateMetaArgs() interface{} { + return expt.NewExperimentServiceUpdateExperimentTemplateMetaArgs() +} + +func newExperimentServiceUpdateExperimentTemplateMetaResult() interface{} { + return expt.NewExperimentServiceUpdateExperimentTemplateMetaResult() +} + +func updateExperimentTemplateHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*expt.ExperimentServiceUpdateExperimentTemplateArgs) + realResult := result.(*expt.ExperimentServiceUpdateExperimentTemplateResult) + success, err := handler.(expt.ExperimentService).UpdateExperimentTemplate(ctx, realArg.Req) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newExperimentServiceUpdateExperimentTemplateArgs() interface{} { + return expt.NewExperimentServiceUpdateExperimentTemplateArgs() +} + +func newExperimentServiceUpdateExperimentTemplateResult() interface{} { + return expt.NewExperimentServiceUpdateExperimentTemplateResult() +} + +func deleteExperimentTemplateHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*expt.ExperimentServiceDeleteExperimentTemplateArgs) + realResult := result.(*expt.ExperimentServiceDeleteExperimentTemplateResult) + success, err := handler.(expt.ExperimentService).DeleteExperimentTemplate(ctx, realArg.Req) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newExperimentServiceDeleteExperimentTemplateArgs() interface{} { + return expt.NewExperimentServiceDeleteExperimentTemplateArgs() +} + +func newExperimentServiceDeleteExperimentTemplateResult() interface{} { + return expt.NewExperimentServiceDeleteExperimentTemplateResult() +} + +func listExperimentTemplatesHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*expt.ExperimentServiceListExperimentTemplatesArgs) + realResult := result.(*expt.ExperimentServiceListExperimentTemplatesResult) + success, err := handler.(expt.ExperimentService).ListExperimentTemplates(ctx, realArg.Req) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newExperimentServiceListExperimentTemplatesArgs() interface{} { + return expt.NewExperimentServiceListExperimentTemplatesArgs() +} + +func newExperimentServiceListExperimentTemplatesResult() interface{} { + return expt.NewExperimentServiceListExperimentTemplatesResult() +} + +func checkExperimentTemplateNameHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*expt.ExperimentServiceCheckExperimentTemplateNameArgs) + realResult := result.(*expt.ExperimentServiceCheckExperimentTemplateNameResult) + success, err := handler.(expt.ExperimentService).CheckExperimentTemplateName(ctx, realArg.Req) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newExperimentServiceCheckExperimentTemplateNameArgs() interface{} { + return expt.NewExperimentServiceCheckExperimentTemplateNameArgs() +} + +func newExperimentServiceCheckExperimentTemplateNameResult() interface{} { + return expt.NewExperimentServiceCheckExperimentTemplateNameResult() +} + type kClient struct { c client.Client sc client.Streaming @@ -1246,3 +1428,73 @@ func (p *kClient) GetAnalysisRecordFeedbackVote(ctx context.Context, req *expt.G } return _result.GetSuccess(), nil } + +func (p *kClient) CreateExperimentTemplate(ctx context.Context, req *expt.CreateExperimentTemplateRequest) (r *expt.CreateExperimentTemplateResponse, err error) { + var _args expt.ExperimentServiceCreateExperimentTemplateArgs + _args.Req = req + var _result expt.ExperimentServiceCreateExperimentTemplateResult + if err = p.c.Call(ctx, "CreateExperimentTemplate", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + +func (p *kClient) BatchGetExperimentTemplate(ctx context.Context, req *expt.BatchGetExperimentTemplateRequest) (r *expt.BatchGetExperimentTemplateResponse, err error) { + var _args expt.ExperimentServiceBatchGetExperimentTemplateArgs + _args.Req = req + var _result expt.ExperimentServiceBatchGetExperimentTemplateResult + if err = p.c.Call(ctx, "BatchGetExperimentTemplate", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + +func (p *kClient) UpdateExperimentTemplateMeta(ctx context.Context, req *expt.UpdateExperimentTemplateMetaRequest) (r *expt.UpdateExperimentTemplateMetaResponse, err error) { + var _args expt.ExperimentServiceUpdateExperimentTemplateMetaArgs + _args.Req = req + var _result expt.ExperimentServiceUpdateExperimentTemplateMetaResult + if err = p.c.Call(ctx, "UpdateExperimentTemplateMeta", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + +func (p *kClient) UpdateExperimentTemplate(ctx context.Context, req *expt.UpdateExperimentTemplateRequest) (r *expt.UpdateExperimentTemplateResponse, err error) { + var _args expt.ExperimentServiceUpdateExperimentTemplateArgs + _args.Req = req + var _result expt.ExperimentServiceUpdateExperimentTemplateResult + if err = p.c.Call(ctx, "UpdateExperimentTemplate", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + +func (p *kClient) DeleteExperimentTemplate(ctx context.Context, req *expt.DeleteExperimentTemplateRequest) (r *expt.DeleteExperimentTemplateResponse, err error) { + var _args expt.ExperimentServiceDeleteExperimentTemplateArgs + _args.Req = req + var _result expt.ExperimentServiceDeleteExperimentTemplateResult + if err = p.c.Call(ctx, "DeleteExperimentTemplate", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + +func (p *kClient) ListExperimentTemplates(ctx context.Context, req *expt.ListExperimentTemplatesRequest) (r *expt.ListExperimentTemplatesResponse, err error) { + var _args expt.ExperimentServiceListExperimentTemplatesArgs + _args.Req = req + var _result expt.ExperimentServiceListExperimentTemplatesResult + if err = p.c.Call(ctx, "ListExperimentTemplates", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + +func (p *kClient) CheckExperimentTemplateName(ctx context.Context, req *expt.CheckExperimentTemplateNameRequest) (r *expt.CheckExperimentTemplateNameResponse, err error) { + var _args expt.ExperimentServiceCheckExperimentTemplateNameArgs + _args.Req = req + var _result expt.ExperimentServiceCheckExperimentTemplateNameResult + if err = p.c.Call(ctx, "CheckExperimentTemplateName", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} diff --git a/backend/kitex_gen/coze/loop/evaluation/domain/evaluator/evaluator.go b/backend/kitex_gen/coze/loop/evaluation/domain/evaluator/evaluator.go index d1a736491..f2b67210f 100644 --- a/backend/kitex_gen/coze/loop/evaluation/domain/evaluator/evaluator.go +++ b/backend/kitex_gen/coze/loop/evaluation/domain/evaluator/evaluator.go @@ -3784,9 +3784,11 @@ func (p *EvaluatorContent) Field103DeepEqual(src *CustomRPCEvaluator) bool { // 明确有顺序的 evaluator 与版本映射元素 type EvaluatorIDVersionItem struct { - EvaluatorID *int64 `thrift:"evaluator_id,1,optional" frugal:"1,optional,i64" json:"evaluator_id" form:"evaluator_id" query:"evaluator_id"` - Version *string `thrift:"version,2,optional" frugal:"2,optional,string" json:"version" form:"version" query:"version"` - RunConfig *EvaluatorRunConfig `thrift:"run_config,3,optional" frugal:"3,optional,EvaluatorRunConfig" json:"run_config" form:"run_config" query:"run_config"` + EvaluatorID *int64 `thrift:"evaluator_id,1,optional" frugal:"1,optional,i64" json:"evaluator_id" form:"evaluator_id" query:"evaluator_id"` + Version *string `thrift:"version,2,optional" frugal:"2,optional,string" json:"version" form:"version" query:"version"` + RunConfig *EvaluatorRunConfig `thrift:"run_config,3,optional" frugal:"3,optional,EvaluatorRunConfig" json:"run_config" form:"run_config" query:"run_config"` + EvaluatorVersionID *int64 `thrift:"evaluator_version_id,4,optional" frugal:"4,optional,i64" json:"evaluator_version_id" form:"evaluator_version_id" query:"evaluator_version_id"` + ScoreWeight *float64 `thrift:"score_weight,5,optional" frugal:"5,optional,double" json:"score_weight" form:"score_weight" query:"score_weight"` } func NewEvaluatorIDVersionItem() *EvaluatorIDVersionItem { @@ -3831,6 +3833,30 @@ func (p *EvaluatorIDVersionItem) GetRunConfig() (v *EvaluatorRunConfig) { } return p.RunConfig } + +var EvaluatorIDVersionItem_EvaluatorVersionID_DEFAULT int64 + +func (p *EvaluatorIDVersionItem) GetEvaluatorVersionID() (v int64) { + if p == nil { + return + } + if !p.IsSetEvaluatorVersionID() { + return EvaluatorIDVersionItem_EvaluatorVersionID_DEFAULT + } + return *p.EvaluatorVersionID +} + +var EvaluatorIDVersionItem_ScoreWeight_DEFAULT float64 + +func (p *EvaluatorIDVersionItem) GetScoreWeight() (v float64) { + if p == nil { + return + } + if !p.IsSetScoreWeight() { + return EvaluatorIDVersionItem_ScoreWeight_DEFAULT + } + return *p.ScoreWeight +} func (p *EvaluatorIDVersionItem) SetEvaluatorID(val *int64) { p.EvaluatorID = val } @@ -3840,11 +3866,19 @@ func (p *EvaluatorIDVersionItem) SetVersion(val *string) { func (p *EvaluatorIDVersionItem) SetRunConfig(val *EvaluatorRunConfig) { p.RunConfig = val } +func (p *EvaluatorIDVersionItem) SetEvaluatorVersionID(val *int64) { + p.EvaluatorVersionID = val +} +func (p *EvaluatorIDVersionItem) SetScoreWeight(val *float64) { + p.ScoreWeight = val +} var fieldIDToName_EvaluatorIDVersionItem = map[int16]string{ 1: "evaluator_id", 2: "version", 3: "run_config", + 4: "evaluator_version_id", + 5: "score_weight", } func (p *EvaluatorIDVersionItem) IsSetEvaluatorID() bool { @@ -3859,6 +3893,14 @@ func (p *EvaluatorIDVersionItem) IsSetRunConfig() bool { return p.RunConfig != nil } +func (p *EvaluatorIDVersionItem) IsSetEvaluatorVersionID() bool { + return p.EvaluatorVersionID != nil +} + +func (p *EvaluatorIDVersionItem) IsSetScoreWeight() bool { + return p.ScoreWeight != nil +} + func (p *EvaluatorIDVersionItem) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -3901,6 +3943,22 @@ func (p *EvaluatorIDVersionItem) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 4: + if fieldTypeId == thrift.I64 { + if err = p.ReadField4(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 5: + if fieldTypeId == thrift.DOUBLE { + 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 @@ -3960,6 +4018,28 @@ func (p *EvaluatorIDVersionItem) ReadField3(iprot thrift.TProtocol) error { p.RunConfig = _field return nil } +func (p *EvaluatorIDVersionItem) ReadField4(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.EvaluatorVersionID = _field + return nil +} +func (p *EvaluatorIDVersionItem) ReadField5(iprot thrift.TProtocol) error { + + var _field *float64 + if v, err := iprot.ReadDouble(); err != nil { + return err + } else { + _field = &v + } + p.ScoreWeight = _field + return nil +} func (p *EvaluatorIDVersionItem) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 @@ -3979,6 +4059,14 @@ func (p *EvaluatorIDVersionItem) Write(oprot thrift.TProtocol) (err error) { 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 @@ -4051,6 +4139,42 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } +func (p *EvaluatorIDVersionItem) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetEvaluatorVersionID() { + if err = oprot.WriteFieldBegin("evaluator_version_id", thrift.I64, 4); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.EvaluatorVersionID); 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 *EvaluatorIDVersionItem) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetScoreWeight() { + if err = oprot.WriteFieldBegin("score_weight", thrift.DOUBLE, 5); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteDouble(*p.ScoreWeight); 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 *EvaluatorIDVersionItem) String() string { if p == nil { @@ -4075,6 +4199,12 @@ func (p *EvaluatorIDVersionItem) DeepEqual(ano *EvaluatorIDVersionItem) bool { if !p.Field3DeepEqual(ano.RunConfig) { return false } + if !p.Field4DeepEqual(ano.EvaluatorVersionID) { + return false + } + if !p.Field5DeepEqual(ano.ScoreWeight) { + return false + } return true } @@ -4109,6 +4239,30 @@ func (p *EvaluatorIDVersionItem) Field3DeepEqual(src *EvaluatorRunConfig) bool { } return true } +func (p *EvaluatorIDVersionItem) Field4DeepEqual(src *int64) bool { + + if p.EvaluatorVersionID == src { + return true + } else if p.EvaluatorVersionID == nil || src == nil { + return false + } + if *p.EvaluatorVersionID != *src { + return false + } + return true +} +func (p *EvaluatorIDVersionItem) Field5DeepEqual(src *float64) bool { + + if p.ScoreWeight == src { + return true + } else if p.ScoreWeight == nil || src == nil { + return false + } + if *p.ScoreWeight != *src { + return false + } + return true +} type EvaluatorInfo struct { Benchmark *string `thrift:"benchmark,1,optional" frugal:"1,optional,string" json:"benchmark" form:"benchmark" query:"benchmark"` diff --git a/backend/kitex_gen/coze/loop/evaluation/domain/evaluator/k-evaluator.go b/backend/kitex_gen/coze/loop/evaluation/domain/evaluator/k-evaluator.go index 1f2cf66a0..f9c47c88c 100644 --- a/backend/kitex_gen/coze/loop/evaluation/domain/evaluator/k-evaluator.go +++ b/backend/kitex_gen/coze/loop/evaluation/domain/evaluator/k-evaluator.go @@ -2647,6 +2647,34 @@ func (p *EvaluatorIDVersionItem) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 4: + if fieldTypeId == thrift.I64 { + 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.DOUBLE { + 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 @@ -2705,6 +2733,34 @@ func (p *EvaluatorIDVersionItem) FastReadField3(buf []byte) (int, error) { return offset, nil } +func (p *EvaluatorIDVersionItem) FastReadField4(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.EvaluatorVersionID = _field + return offset, nil +} + +func (p *EvaluatorIDVersionItem) FastReadField5(buf []byte) (int, error) { + offset := 0 + + var _field *float64 + if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.ScoreWeight = _field + return offset, nil +} + func (p *EvaluatorIDVersionItem) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } @@ -2713,6 +2769,8 @@ func (p *EvaluatorIDVersionItem) FastWriteNocopy(buf []byte, w thrift.NocopyWrit offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField4(buf[offset:], w) + offset += p.fastWriteField5(buf[offset:], w) offset += p.fastWriteField2(buf[offset:], w) offset += p.fastWriteField3(buf[offset:], w) } @@ -2726,6 +2784,8 @@ func (p *EvaluatorIDVersionItem) BLength() int { l += p.field1Length() l += p.field2Length() l += p.field3Length() + l += p.field4Length() + l += p.field5Length() } l += thrift.Binary.FieldStopLength() return l @@ -2758,6 +2818,24 @@ func (p *EvaluatorIDVersionItem) fastWriteField3(buf []byte, w thrift.NocopyWrit return offset } +func (p *EvaluatorIDVersionItem) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetEvaluatorVersionID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 4) + offset += thrift.Binary.WriteI64(buf[offset:], *p.EvaluatorVersionID) + } + return offset +} + +func (p *EvaluatorIDVersionItem) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetScoreWeight() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.DOUBLE, 5) + offset += thrift.Binary.WriteDouble(buf[offset:], *p.ScoreWeight) + } + return offset +} + func (p *EvaluatorIDVersionItem) field1Length() int { l := 0 if p.IsSetEvaluatorID() { @@ -2785,6 +2863,24 @@ func (p *EvaluatorIDVersionItem) field3Length() int { return l } +func (p *EvaluatorIDVersionItem) field4Length() int { + l := 0 + if p.IsSetEvaluatorVersionID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *EvaluatorIDVersionItem) field5Length() int { + l := 0 + if p.IsSetScoreWeight() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.DoubleLength() + } + return l +} + func (p *EvaluatorIDVersionItem) DeepCopy(s interface{}) error { src, ok := s.(*EvaluatorIDVersionItem) if !ok { @@ -2813,6 +2909,16 @@ func (p *EvaluatorIDVersionItem) DeepCopy(s interface{}) error { } p.RunConfig = _runConfig + if src.EvaluatorVersionID != nil { + tmp := *src.EvaluatorVersionID + p.EvaluatorVersionID = &tmp + } + + if src.ScoreWeight != nil { + tmp := *src.ScoreWeight + p.ScoreWeight = &tmp + } + return nil } diff --git a/backend/kitex_gen/coze/loop/evaluation/domain/expt/expt.go b/backend/kitex_gen/coze/loop/evaluation/domain/expt/expt.go index 3fdb99e7b..8b47e4896 100644 --- a/backend/kitex_gen/coze/loop/evaluation/domain/expt/expt.go +++ b/backend/kitex_gen/coze/loop/evaluation/domain/expt/expt.go @@ -512,7 +512,10 @@ const ( // 目前使用固定key:output_tokens FieldType_OutputTokens FieldType = 62 // 目前使用固定key:total_tokens - FieldType_TotalTokens FieldType = 63 + FieldType_TotalTokens FieldType = 63 + FieldType_ExperimentTemplateID FieldType = 70 + FieldType_EvaluatorWeightedScore FieldType = 71 + FieldType_UpdatedBy FieldType = 72 ) func (p FieldType) String() string { @@ -579,6 +582,12 @@ func (p FieldType) String() string { return "OutputTokens" case FieldType_TotalTokens: return "TotalTokens" + case FieldType_ExperimentTemplateID: + return "ExperimentTemplateID" + case FieldType_EvaluatorWeightedScore: + return "EvaluatorWeightedScore" + case FieldType_UpdatedBy: + return "UpdatedBy" } return "" } @@ -647,6 +656,12 @@ func FieldTypeFromString(s string) (FieldType, error) { return FieldType_OutputTokens, nil case "TotalTokens": return FieldType_TotalTokens, nil + case "ExperimentTemplateID": + return FieldType_ExperimentTemplateID, nil + case "EvaluatorWeightedScore": + return FieldType_EvaluatorWeightedScore, nil + case "UpdatedBy": + return FieldType_UpdatedBy, nil } return FieldType(0), fmt.Errorf("not a valid FieldType string") } @@ -975,6 +990,10 @@ type Experiment struct { SourceID *string `thrift:"source_id,43,optional" frugal:"43,optional,string" form:"source_id" json:"source_id,omitempty" query:"source_id"` // 补充的评估器id+version关联评估器方式,和evaluator_version_ids共同使用,兼容老逻辑 EvaluatorIDVersionList []*evaluator.EvaluatorIDVersionItem `thrift:"evaluator_id_version_list,51,optional" frugal:"51,optional,list" form:"evaluator_id_version_list" json:"evaluator_id_version_list,omitempty" query:"evaluator_id_version_list"` + ExptTemplateMeta *ExptTemplateMeta `thrift:"expt_template_meta,60,optional" frugal:"60,optional,ExptTemplateMeta" form:"expt_template_meta" json:"expt_template_meta,omitempty" query:"expt_template_meta"` + // 评估器得分加权配置 + ScoreWeightConfig *ExptScoreWeight `thrift:"score_weight_config,61,optional" frugal:"61,optional,ExptScoreWeight" form:"score_weight_config" json:"score_weight_config,omitempty" query:"score_weight_config"` + EnableWeightedScore *bool `thrift:"enable_weighted_score,62,optional" frugal:"62,optional,bool" form:"enable_weighted_score" json:"enable_weighted_score,omitempty" query:"enable_weighted_score"` } func NewExperiment() *Experiment { @@ -1307,6 +1326,42 @@ func (p *Experiment) GetEvaluatorIDVersionList() (v []*evaluator.EvaluatorIDVers } return p.EvaluatorIDVersionList } + +var Experiment_ExptTemplateMeta_DEFAULT *ExptTemplateMeta + +func (p *Experiment) GetExptTemplateMeta() (v *ExptTemplateMeta) { + if p == nil { + return + } + if !p.IsSetExptTemplateMeta() { + return Experiment_ExptTemplateMeta_DEFAULT + } + return p.ExptTemplateMeta +} + +var Experiment_ScoreWeightConfig_DEFAULT *ExptScoreWeight + +func (p *Experiment) GetScoreWeightConfig() (v *ExptScoreWeight) { + if p == nil { + return + } + if !p.IsSetScoreWeightConfig() { + return Experiment_ScoreWeightConfig_DEFAULT + } + return p.ScoreWeightConfig +} + +var Experiment_EnableWeightedScore_DEFAULT bool + +func (p *Experiment) GetEnableWeightedScore() (v bool) { + if p == nil { + return + } + if !p.IsSetEnableWeightedScore() { + return Experiment_EnableWeightedScore_DEFAULT + } + return *p.EnableWeightedScore +} func (p *Experiment) SetID(val *int64) { p.ID = val } @@ -1388,6 +1443,15 @@ func (p *Experiment) SetSourceID(val *string) { func (p *Experiment) SetEvaluatorIDVersionList(val []*evaluator.EvaluatorIDVersionItem) { p.EvaluatorIDVersionList = val } +func (p *Experiment) SetExptTemplateMeta(val *ExptTemplateMeta) { + p.ExptTemplateMeta = val +} +func (p *Experiment) SetScoreWeightConfig(val *ExptScoreWeight) { + p.ScoreWeightConfig = val +} +func (p *Experiment) SetEnableWeightedScore(val *bool) { + p.EnableWeightedScore = val +} var fieldIDToName_Experiment = map[int16]string{ 1: "id", @@ -1417,6 +1481,9 @@ var fieldIDToName_Experiment = map[int16]string{ 42: "source_type", 43: "source_id", 51: "evaluator_id_version_list", + 60: "expt_template_meta", + 61: "score_weight_config", + 62: "enable_weighted_score", } func (p *Experiment) IsSetID() bool { @@ -1527,6 +1594,18 @@ func (p *Experiment) IsSetEvaluatorIDVersionList() bool { return p.EvaluatorIDVersionList != nil } +func (p *Experiment) IsSetExptTemplateMeta() bool { + return p.ExptTemplateMeta != nil +} + +func (p *Experiment) IsSetScoreWeightConfig() bool { + return p.ScoreWeightConfig != nil +} + +func (p *Experiment) IsSetEnableWeightedScore() bool { + return p.EnableWeightedScore != nil +} + func (p *Experiment) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -1761,6 +1840,30 @@ func (p *Experiment) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 60: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField60(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 61: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField61(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 62: + if fieldTypeId == thrift.BOOL { + if err = p.ReadField62(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 @@ -2120,6 +2223,33 @@ func (p *Experiment) ReadField51(iprot thrift.TProtocol) error { p.EvaluatorIDVersionList = _field return nil } +func (p *Experiment) ReadField60(iprot thrift.TProtocol) error { + _field := NewExptTemplateMeta() + if err := _field.Read(iprot); err != nil { + return err + } + p.ExptTemplateMeta = _field + return nil +} +func (p *Experiment) ReadField61(iprot thrift.TProtocol) error { + _field := NewExptScoreWeight() + if err := _field.Read(iprot); err != nil { + return err + } + p.ScoreWeightConfig = _field + return nil +} +func (p *Experiment) ReadField62(iprot thrift.TProtocol) error { + + var _field *bool + if v, err := iprot.ReadBool(); err != nil { + return err + } else { + _field = &v + } + p.EnableWeightedScore = _field + return nil +} func (p *Experiment) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 @@ -2235,6 +2365,18 @@ func (p *Experiment) Write(oprot thrift.TProtocol) (err error) { fieldId = 51 goto WriteFieldError } + if err = p.writeField60(oprot); err != nil { + fieldId = 60 + goto WriteFieldError + } + if err = p.writeField61(oprot); err != nil { + fieldId = 61 + goto WriteFieldError + } + if err = p.writeField62(oprot); err != nil { + fieldId = 62 + goto WriteFieldError + } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -2771,6 +2913,60 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 51 end error: ", p), err) } +func (p *Experiment) writeField60(oprot thrift.TProtocol) (err error) { + if p.IsSetExptTemplateMeta() { + if err = oprot.WriteFieldBegin("expt_template_meta", thrift.STRUCT, 60); err != nil { + goto WriteFieldBeginError + } + if err := p.ExptTemplateMeta.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 60 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 60 end error: ", p), err) +} +func (p *Experiment) writeField61(oprot thrift.TProtocol) (err error) { + if p.IsSetScoreWeightConfig() { + if err = oprot.WriteFieldBegin("score_weight_config", thrift.STRUCT, 61); err != nil { + goto WriteFieldBeginError + } + if err := p.ScoreWeightConfig.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 61 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 61 end error: ", p), err) +} +func (p *Experiment) writeField62(oprot thrift.TProtocol) (err error) { + if p.IsSetEnableWeightedScore() { + if err = oprot.WriteFieldBegin("enable_weighted_score", thrift.BOOL, 62); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteBool(*p.EnableWeightedScore); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 62 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 62 end error: ", p), err) +} func (p *Experiment) String() string { if p == nil { @@ -2867,6 +3063,15 @@ func (p *Experiment) DeepEqual(ano *Experiment) bool { if !p.Field51DeepEqual(ano.EvaluatorIDVersionList) { return false } + if !p.Field60DeepEqual(ano.ExptTemplateMeta) { + return false + } + if !p.Field61DeepEqual(ano.ScoreWeightConfig) { + return false + } + if !p.Field62DeepEqual(ano.EnableWeightedScore) { + return false + } return true } @@ -3168,63 +3373,154 @@ func (p *Experiment) Field51DeepEqual(src []*evaluator.EvaluatorIDVersionItem) b } return true } +func (p *Experiment) Field60DeepEqual(src *ExptTemplateMeta) bool { -type TokenUsage struct { - InputTokens *int64 `thrift:"input_tokens,1,optional" frugal:"1,optional,i64" json:"input_tokens" form:"input_tokens" query:"input_tokens"` - OutputTokens *int64 `thrift:"output_tokens,2,optional" frugal:"2,optional,i64" json:"output_tokens" form:"output_tokens" query:"output_tokens"` + if !p.ExptTemplateMeta.DeepEqual(src) { + return false + } + return true } +func (p *Experiment) Field61DeepEqual(src *ExptScoreWeight) bool { -func NewTokenUsage() *TokenUsage { - return &TokenUsage{} + if !p.ScoreWeightConfig.DeepEqual(src) { + return false + } + return true } +func (p *Experiment) Field62DeepEqual(src *bool) bool { -func (p *TokenUsage) InitDefault() { + if p.EnableWeightedScore == src { + return true + } else if p.EnableWeightedScore == nil || src == nil { + return false + } + if *p.EnableWeightedScore != *src { + return false + } + return true } -var TokenUsage_InputTokens_DEFAULT int64 +// 实验模板基础信息 +type ExptTemplateMeta struct { + ID *int64 `thrift:"id,1,optional" frugal:"1,optional,i64" json:"id" form:"id" query:"id"` + WorkspaceID *int64 `thrift:"workspace_id,2,optional" frugal:"2,optional,i64" json:"workspace_id" form:"workspace_id" query:"workspace_id"` + Name *string `thrift:"name,3,optional" frugal:"3,optional,string" form:"name" json:"name,omitempty" query:"name"` + Desc *string `thrift:"desc,4,optional" frugal:"4,optional,string" form:"desc" json:"desc,omitempty" query:"desc"` + // 模板对应的实验类型,当前主要为 Offline + ExptType *ExptType `thrift:"expt_type,5,optional" frugal:"5,optional,ExptType" form:"expt_type" json:"expt_type,omitempty" query:"expt_type"` +} -func (p *TokenUsage) GetInputTokens() (v int64) { +func NewExptTemplateMeta() *ExptTemplateMeta { + return &ExptTemplateMeta{} +} + +func (p *ExptTemplateMeta) InitDefault() { +} + +var ExptTemplateMeta_ID_DEFAULT int64 + +func (p *ExptTemplateMeta) GetID() (v int64) { if p == nil { return } - if !p.IsSetInputTokens() { - return TokenUsage_InputTokens_DEFAULT + if !p.IsSetID() { + return ExptTemplateMeta_ID_DEFAULT } - return *p.InputTokens + return *p.ID } -var TokenUsage_OutputTokens_DEFAULT int64 +var ExptTemplateMeta_WorkspaceID_DEFAULT int64 -func (p *TokenUsage) GetOutputTokens() (v int64) { +func (p *ExptTemplateMeta) GetWorkspaceID() (v int64) { if p == nil { return } - if !p.IsSetOutputTokens() { - return TokenUsage_OutputTokens_DEFAULT + if !p.IsSetWorkspaceID() { + return ExptTemplateMeta_WorkspaceID_DEFAULT } - return *p.OutputTokens + return *p.WorkspaceID } -func (p *TokenUsage) SetInputTokens(val *int64) { - p.InputTokens = val + +var ExptTemplateMeta_Name_DEFAULT string + +func (p *ExptTemplateMeta) GetName() (v string) { + if p == nil { + return + } + if !p.IsSetName() { + return ExptTemplateMeta_Name_DEFAULT + } + return *p.Name } -func (p *TokenUsage) SetOutputTokens(val *int64) { - p.OutputTokens = val + +var ExptTemplateMeta_Desc_DEFAULT string + +func (p *ExptTemplateMeta) GetDesc() (v string) { + if p == nil { + return + } + if !p.IsSetDesc() { + return ExptTemplateMeta_Desc_DEFAULT + } + return *p.Desc } -var fieldIDToName_TokenUsage = map[int16]string{ - 1: "input_tokens", - 2: "output_tokens", +var ExptTemplateMeta_ExptType_DEFAULT ExptType + +func (p *ExptTemplateMeta) GetExptType() (v ExptType) { + if p == nil { + return + } + if !p.IsSetExptType() { + return ExptTemplateMeta_ExptType_DEFAULT + } + return *p.ExptType +} +func (p *ExptTemplateMeta) SetID(val *int64) { + p.ID = val +} +func (p *ExptTemplateMeta) SetWorkspaceID(val *int64) { + p.WorkspaceID = val +} +func (p *ExptTemplateMeta) SetName(val *string) { + p.Name = val +} +func (p *ExptTemplateMeta) SetDesc(val *string) { + p.Desc = val +} +func (p *ExptTemplateMeta) SetExptType(val *ExptType) { + p.ExptType = val } -func (p *TokenUsage) IsSetInputTokens() bool { - return p.InputTokens != nil +var fieldIDToName_ExptTemplateMeta = map[int16]string{ + 1: "id", + 2: "workspace_id", + 3: "name", + 4: "desc", + 5: "expt_type", } -func (p *TokenUsage) IsSetOutputTokens() bool { - return p.OutputTokens != nil +func (p *ExptTemplateMeta) IsSetID() bool { + return p.ID != nil } -func (p *TokenUsage) Read(iprot thrift.TProtocol) (err error) { +func (p *ExptTemplateMeta) IsSetWorkspaceID() bool { + return p.WorkspaceID != nil +} + +func (p *ExptTemplateMeta) IsSetName() bool { + return p.Name != nil +} + +func (p *ExptTemplateMeta) IsSetDesc() bool { + return p.Desc != nil +} + +func (p *ExptTemplateMeta) IsSetExptType() bool { + return p.ExptType != nil +} + +func (p *ExptTemplateMeta) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -3258,6 +3554,30 @@ func (p *TokenUsage) Read(iprot thrift.TProtocol) (err error) { } 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 + } + } 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.I32 { + 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 @@ -3277,7 +3597,7 @@ ReadStructBeginError: 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_TokenUsage[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExptTemplateMeta[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -3287,7 +3607,7 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *TokenUsage) ReadField1(iprot thrift.TProtocol) error { +func (p *ExptTemplateMeta) ReadField1(iprot thrift.TProtocol) error { var _field *int64 if v, err := iprot.ReadI64(); err != nil { @@ -3295,10 +3615,10 @@ func (p *TokenUsage) ReadField1(iprot thrift.TProtocol) error { } else { _field = &v } - p.InputTokens = _field + p.ID = _field return nil } -func (p *TokenUsage) ReadField2(iprot thrift.TProtocol) error { +func (p *ExptTemplateMeta) ReadField2(iprot thrift.TProtocol) error { var _field *int64 if v, err := iprot.ReadI64(); err != nil { @@ -3306,24 +3626,70 @@ func (p *TokenUsage) ReadField2(iprot thrift.TProtocol) error { } else { _field = &v } - p.OutputTokens = _field + p.WorkspaceID = _field return nil } +func (p *ExptTemplateMeta) ReadField3(iprot thrift.TProtocol) error { -func (p *TokenUsage) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("TokenUsage"); err != nil { - goto WriteStructBeginError + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v } - if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } + p.Name = _field + return nil +} +func (p *ExptTemplateMeta) ReadField4(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Desc = _field + return nil +} +func (p *ExptTemplateMeta) ReadField5(iprot thrift.TProtocol) error { + + var _field *ExptType + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + tmp := ExptType(v) + _field = &tmp + } + p.ExptType = _field + return nil +} + +func (p *ExptTemplateMeta) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ExptTemplateMeta"); 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 @@ -3342,12 +3708,12 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *TokenUsage) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetInputTokens() { - if err = oprot.WriteFieldBegin("input_tokens", thrift.I64, 1); err != nil { +func (p *ExptTemplateMeta) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetID() { + if err = oprot.WriteFieldBegin("id", thrift.I64, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI64(*p.InputTokens); err != nil { + if err := oprot.WriteI64(*p.ID); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -3360,12 +3726,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *TokenUsage) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetOutputTokens() { - if err = oprot.WriteFieldBegin("output_tokens", thrift.I64, 2); err != nil { +func (p *ExptTemplateMeta) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetWorkspaceID() { + if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI64(*p.OutputTokens); err != nil { + if err := oprot.WriteI64(*p.WorkspaceID); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -3378,237 +3744,337 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } +func (p *ExptTemplateMeta) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetName() { + if err = oprot.WriteFieldBegin("name", thrift.STRING, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Name); 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 *ExptTemplateMeta) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetDesc() { + if err = oprot.WriteFieldBegin("desc", thrift.STRING, 4); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Desc); 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 *ExptTemplateMeta) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetExptType() { + if err = oprot.WriteFieldBegin("expt_type", thrift.I32, 5); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(int32(*p.ExptType)); 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 *TokenUsage) String() string { +func (p *ExptTemplateMeta) String() string { if p == nil { return "" } - return fmt.Sprintf("TokenUsage(%+v)", *p) + return fmt.Sprintf("ExptTemplateMeta(%+v)", *p) } -func (p *TokenUsage) DeepEqual(ano *TokenUsage) bool { +func (p *ExptTemplateMeta) DeepEqual(ano *ExptTemplateMeta) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.InputTokens) { + if !p.Field1DeepEqual(ano.ID) { return false } - if !p.Field2DeepEqual(ano.OutputTokens) { + if !p.Field2DeepEqual(ano.WorkspaceID) { + return false + } + if !p.Field3DeepEqual(ano.Name) { + return false + } + if !p.Field4DeepEqual(ano.Desc) { + return false + } + if !p.Field5DeepEqual(ano.ExptType) { return false } return true } -func (p *TokenUsage) Field1DeepEqual(src *int64) bool { +func (p *ExptTemplateMeta) Field1DeepEqual(src *int64) bool { - if p.InputTokens == src { + if p.ID == src { return true - } else if p.InputTokens == nil || src == nil { + } else if p.ID == nil || src == nil { return false } - if *p.InputTokens != *src { + if *p.ID != *src { return false } return true } -func (p *TokenUsage) Field2DeepEqual(src *int64) bool { +func (p *ExptTemplateMeta) Field2DeepEqual(src *int64) bool { - if p.OutputTokens == src { + if p.WorkspaceID == src { return true - } else if p.OutputTokens == nil || src == nil { + } else if p.WorkspaceID == nil || src == nil { return false } - if *p.OutputTokens != *src { + if *p.WorkspaceID != *src { return false } return true } +func (p *ExptTemplateMeta) Field3DeepEqual(src *string) bool { -type ExptStatistics struct { - EvaluatorAggregateResults []*EvaluatorAggregateResult_ `thrift:"evaluator_aggregate_results,1,optional" frugal:"1,optional,list" form:"evaluator_aggregate_results" json:"evaluator_aggregate_results,omitempty" query:"evaluator_aggregate_results"` - TokenUsage *TokenUsage `thrift:"token_usage,2,optional" frugal:"2,optional,TokenUsage" form:"token_usage" json:"token_usage,omitempty" query:"token_usage"` - CreditCost *float64 `thrift:"credit_cost,3,optional" frugal:"3,optional,double" form:"credit_cost" json:"credit_cost,omitempty" query:"credit_cost"` - PendingTurnCnt *int32 `thrift:"pending_turn_cnt,4,optional" frugal:"4,optional,i32" form:"pending_turn_cnt" json:"pending_turn_cnt,omitempty" query:"pending_turn_cnt"` - SuccessTurnCnt *int32 `thrift:"success_turn_cnt,5,optional" frugal:"5,optional,i32" form:"success_turn_cnt" json:"success_turn_cnt,omitempty" query:"success_turn_cnt"` - FailTurnCnt *int32 `thrift:"fail_turn_cnt,6,optional" frugal:"6,optional,i32" form:"fail_turn_cnt" json:"fail_turn_cnt,omitempty" query:"fail_turn_cnt"` - TerminatedTurnCnt *int32 `thrift:"terminated_turn_cnt,7,optional" frugal:"7,optional,i32" form:"terminated_turn_cnt" json:"terminated_turn_cnt,omitempty" query:"terminated_turn_cnt"` - ProcessingTurnCnt *int32 `thrift:"processing_turn_cnt,8,optional" frugal:"8,optional,i32" form:"processing_turn_cnt" json:"processing_turn_cnt,omitempty" query:"processing_turn_cnt"` + if p.Name == src { + return true + } else if p.Name == nil || src == nil { + return false + } + if strings.Compare(*p.Name, *src) != 0 { + return false + } + return true } +func (p *ExptTemplateMeta) Field4DeepEqual(src *string) bool { -func NewExptStatistics() *ExptStatistics { - return &ExptStatistics{} + if p.Desc == src { + return true + } else if p.Desc == nil || src == nil { + return false + } + if strings.Compare(*p.Desc, *src) != 0 { + return false + } + return true } +func (p *ExptTemplateMeta) Field5DeepEqual(src *ExptType) bool { -func (p *ExptStatistics) InitDefault() { + if p.ExptType == src { + return true + } else if p.ExptType == nil || src == nil { + return false + } + if *p.ExptType != *src { + return false + } + return true } -var ExptStatistics_EvaluatorAggregateResults_DEFAULT []*EvaluatorAggregateResult_ +// 实验三元组配置 +type ExptTuple struct { + EvalSetID *int64 `thrift:"eval_set_id,1,optional" frugal:"1,optional,i64" json:"eval_set_id" form:"eval_set_id" query:"eval_set_id"` + EvalSetVersionID *int64 `thrift:"eval_set_version_id,2,optional" frugal:"2,optional,i64" json:"eval_set_version_id" form:"eval_set_version_id" query:"eval_set_version_id"` + TargetID *int64 `thrift:"target_id,3,optional" frugal:"3,optional,i64" json:"target_id" form:"target_id" query:"target_id"` + TargetVersionID *int64 `thrift:"target_version_id,4,optional" frugal:"4,optional,i64" json:"target_version_id" form:"target_version_id" query:"target_version_id"` + EvaluatorIDVersionItems []*evaluator.EvaluatorIDVersionItem `thrift:"evaluator_id_version_items,6,optional" frugal:"6,optional,list" form:"evaluator_id_version_items" json:"evaluator_id_version_items,omitempty" query:"evaluator_id_version_items"` + EvalSet *eval_set.EvaluationSet `thrift:"eval_set,7,optional" frugal:"7,optional,eval_set.EvaluationSet" form:"eval_set" json:"eval_set,omitempty" query:"eval_set"` + EvalTarget *eval_target.EvalTarget `thrift:"eval_target,8,optional" frugal:"8,optional,eval_target.EvalTarget" form:"eval_target" json:"eval_target,omitempty" query:"eval_target"` + Evaluators []*evaluator.Evaluator `thrift:"evaluators,9,optional" frugal:"9,optional,list" form:"evaluators" json:"evaluators,omitempty" query:"evaluators"` +} -func (p *ExptStatistics) GetEvaluatorAggregateResults() (v []*EvaluatorAggregateResult_) { +func NewExptTuple() *ExptTuple { + return &ExptTuple{} +} + +func (p *ExptTuple) InitDefault() { +} + +var ExptTuple_EvalSetID_DEFAULT int64 + +func (p *ExptTuple) GetEvalSetID() (v int64) { if p == nil { return } - if !p.IsSetEvaluatorAggregateResults() { - return ExptStatistics_EvaluatorAggregateResults_DEFAULT + if !p.IsSetEvalSetID() { + return ExptTuple_EvalSetID_DEFAULT } - return p.EvaluatorAggregateResults + return *p.EvalSetID } -var ExptStatistics_TokenUsage_DEFAULT *TokenUsage +var ExptTuple_EvalSetVersionID_DEFAULT int64 -func (p *ExptStatistics) GetTokenUsage() (v *TokenUsage) { +func (p *ExptTuple) GetEvalSetVersionID() (v int64) { if p == nil { return } - if !p.IsSetTokenUsage() { - return ExptStatistics_TokenUsage_DEFAULT + if !p.IsSetEvalSetVersionID() { + return ExptTuple_EvalSetVersionID_DEFAULT } - return p.TokenUsage + return *p.EvalSetVersionID } -var ExptStatistics_CreditCost_DEFAULT float64 +var ExptTuple_TargetID_DEFAULT int64 -func (p *ExptStatistics) GetCreditCost() (v float64) { +func (p *ExptTuple) GetTargetID() (v int64) { if p == nil { return } - if !p.IsSetCreditCost() { - return ExptStatistics_CreditCost_DEFAULT + if !p.IsSetTargetID() { + return ExptTuple_TargetID_DEFAULT } - return *p.CreditCost + return *p.TargetID } -var ExptStatistics_PendingTurnCnt_DEFAULT int32 +var ExptTuple_TargetVersionID_DEFAULT int64 -func (p *ExptStatistics) GetPendingTurnCnt() (v int32) { +func (p *ExptTuple) GetTargetVersionID() (v int64) { if p == nil { return } - if !p.IsSetPendingTurnCnt() { - return ExptStatistics_PendingTurnCnt_DEFAULT + if !p.IsSetTargetVersionID() { + return ExptTuple_TargetVersionID_DEFAULT } - return *p.PendingTurnCnt + return *p.TargetVersionID } -var ExptStatistics_SuccessTurnCnt_DEFAULT int32 +var ExptTuple_EvaluatorIDVersionItems_DEFAULT []*evaluator.EvaluatorIDVersionItem -func (p *ExptStatistics) GetSuccessTurnCnt() (v int32) { +func (p *ExptTuple) GetEvaluatorIDVersionItems() (v []*evaluator.EvaluatorIDVersionItem) { if p == nil { return } - if !p.IsSetSuccessTurnCnt() { - return ExptStatistics_SuccessTurnCnt_DEFAULT + if !p.IsSetEvaluatorIDVersionItems() { + return ExptTuple_EvaluatorIDVersionItems_DEFAULT } - return *p.SuccessTurnCnt + return p.EvaluatorIDVersionItems } -var ExptStatistics_FailTurnCnt_DEFAULT int32 +var ExptTuple_EvalSet_DEFAULT *eval_set.EvaluationSet -func (p *ExptStatistics) GetFailTurnCnt() (v int32) { +func (p *ExptTuple) GetEvalSet() (v *eval_set.EvaluationSet) { if p == nil { return } - if !p.IsSetFailTurnCnt() { - return ExptStatistics_FailTurnCnt_DEFAULT + if !p.IsSetEvalSet() { + return ExptTuple_EvalSet_DEFAULT } - return *p.FailTurnCnt + return p.EvalSet } -var ExptStatistics_TerminatedTurnCnt_DEFAULT int32 +var ExptTuple_EvalTarget_DEFAULT *eval_target.EvalTarget -func (p *ExptStatistics) GetTerminatedTurnCnt() (v int32) { +func (p *ExptTuple) GetEvalTarget() (v *eval_target.EvalTarget) { if p == nil { return } - if !p.IsSetTerminatedTurnCnt() { - return ExptStatistics_TerminatedTurnCnt_DEFAULT + if !p.IsSetEvalTarget() { + return ExptTuple_EvalTarget_DEFAULT } - return *p.TerminatedTurnCnt + return p.EvalTarget } -var ExptStatistics_ProcessingTurnCnt_DEFAULT int32 +var ExptTuple_Evaluators_DEFAULT []*evaluator.Evaluator -func (p *ExptStatistics) GetProcessingTurnCnt() (v int32) { +func (p *ExptTuple) GetEvaluators() (v []*evaluator.Evaluator) { if p == nil { return } - if !p.IsSetProcessingTurnCnt() { - return ExptStatistics_ProcessingTurnCnt_DEFAULT + if !p.IsSetEvaluators() { + return ExptTuple_Evaluators_DEFAULT } - return *p.ProcessingTurnCnt + return p.Evaluators } -func (p *ExptStatistics) SetEvaluatorAggregateResults(val []*EvaluatorAggregateResult_) { - p.EvaluatorAggregateResults = val +func (p *ExptTuple) SetEvalSetID(val *int64) { + p.EvalSetID = val } -func (p *ExptStatistics) SetTokenUsage(val *TokenUsage) { - p.TokenUsage = val +func (p *ExptTuple) SetEvalSetVersionID(val *int64) { + p.EvalSetVersionID = val } -func (p *ExptStatistics) SetCreditCost(val *float64) { - p.CreditCost = val +func (p *ExptTuple) SetTargetID(val *int64) { + p.TargetID = val } -func (p *ExptStatistics) SetPendingTurnCnt(val *int32) { - p.PendingTurnCnt = val +func (p *ExptTuple) SetTargetVersionID(val *int64) { + p.TargetVersionID = val } -func (p *ExptStatistics) SetSuccessTurnCnt(val *int32) { - p.SuccessTurnCnt = val +func (p *ExptTuple) SetEvaluatorIDVersionItems(val []*evaluator.EvaluatorIDVersionItem) { + p.EvaluatorIDVersionItems = val } -func (p *ExptStatistics) SetFailTurnCnt(val *int32) { - p.FailTurnCnt = val +func (p *ExptTuple) SetEvalSet(val *eval_set.EvaluationSet) { + p.EvalSet = val } -func (p *ExptStatistics) SetTerminatedTurnCnt(val *int32) { - p.TerminatedTurnCnt = val +func (p *ExptTuple) SetEvalTarget(val *eval_target.EvalTarget) { + p.EvalTarget = val } -func (p *ExptStatistics) SetProcessingTurnCnt(val *int32) { - p.ProcessingTurnCnt = val +func (p *ExptTuple) SetEvaluators(val []*evaluator.Evaluator) { + p.Evaluators = val } -var fieldIDToName_ExptStatistics = map[int16]string{ - 1: "evaluator_aggregate_results", - 2: "token_usage", - 3: "credit_cost", - 4: "pending_turn_cnt", - 5: "success_turn_cnt", - 6: "fail_turn_cnt", - 7: "terminated_turn_cnt", - 8: "processing_turn_cnt", +var fieldIDToName_ExptTuple = map[int16]string{ + 1: "eval_set_id", + 2: "eval_set_version_id", + 3: "target_id", + 4: "target_version_id", + 6: "evaluator_id_version_items", + 7: "eval_set", + 8: "eval_target", + 9: "evaluators", } -func (p *ExptStatistics) IsSetEvaluatorAggregateResults() bool { - return p.EvaluatorAggregateResults != nil +func (p *ExptTuple) IsSetEvalSetID() bool { + return p.EvalSetID != nil } -func (p *ExptStatistics) IsSetTokenUsage() bool { - return p.TokenUsage != nil +func (p *ExptTuple) IsSetEvalSetVersionID() bool { + return p.EvalSetVersionID != nil } -func (p *ExptStatistics) IsSetCreditCost() bool { - return p.CreditCost != nil +func (p *ExptTuple) IsSetTargetID() bool { + return p.TargetID != nil } -func (p *ExptStatistics) IsSetPendingTurnCnt() bool { - return p.PendingTurnCnt != nil +func (p *ExptTuple) IsSetTargetVersionID() bool { + return p.TargetVersionID != nil } -func (p *ExptStatistics) IsSetSuccessTurnCnt() bool { - return p.SuccessTurnCnt != nil +func (p *ExptTuple) IsSetEvaluatorIDVersionItems() bool { + return p.EvaluatorIDVersionItems != nil } -func (p *ExptStatistics) IsSetFailTurnCnt() bool { - return p.FailTurnCnt != nil +func (p *ExptTuple) IsSetEvalSet() bool { + return p.EvalSet != nil } -func (p *ExptStatistics) IsSetTerminatedTurnCnt() bool { - return p.TerminatedTurnCnt != nil +func (p *ExptTuple) IsSetEvalTarget() bool { + return p.EvalTarget != nil } -func (p *ExptStatistics) IsSetProcessingTurnCnt() bool { - return p.ProcessingTurnCnt != nil +func (p *ExptTuple) IsSetEvaluators() bool { + return p.Evaluators != nil } -func (p *ExptStatistics) Read(iprot thrift.TProtocol) (err error) { +func (p *ExptTuple) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -3627,7 +4093,7 @@ func (p *ExptStatistics) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.LIST { + if fieldTypeId == thrift.I64 { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } @@ -3635,7 +4101,7 @@ func (p *ExptStatistics) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 2: - if fieldTypeId == thrift.STRUCT { + if fieldTypeId == thrift.I64 { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } @@ -3643,7 +4109,7 @@ func (p *ExptStatistics) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 3: - if fieldTypeId == thrift.DOUBLE { + if fieldTypeId == thrift.I64 { if err = p.ReadField3(iprot); err != nil { goto ReadFieldError } @@ -3651,23 +4117,15 @@ func (p *ExptStatistics) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 4: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.I64 { if err = p.ReadField4(iprot); err != nil { goto ReadFieldError } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 5: - if fieldTypeId == thrift.I32 { - if err = p.ReadField5(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } case 6: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.LIST { if err = p.ReadField6(iprot); err != nil { goto ReadFieldError } @@ -3675,7 +4133,7 @@ func (p *ExptStatistics) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 7: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.STRUCT { if err = p.ReadField7(iprot); err != nil { goto ReadFieldError } @@ -3683,13 +4141,21 @@ func (p *ExptStatistics) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 8: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.STRUCT { if err = p.ReadField8(iprot); err != nil { goto ReadFieldError } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 9: + if fieldTypeId == thrift.LIST { + if err = p.ReadField9(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 @@ -3709,7 +4175,7 @@ ReadStructBeginError: 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_ExptStatistics[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExptTuple[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -3719,107 +4185,116 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExptStatistics) ReadField1(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*EvaluatorAggregateResult_, 0, size) - values := make([]EvaluatorAggregateResult_, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } +func (p *ExptTuple) ReadField1(iprot thrift.TProtocol) error { - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { return err + } else { + _field = &v } - p.EvaluatorAggregateResults = _field + p.EvalSetID = _field return nil } -func (p *ExptStatistics) ReadField2(iprot thrift.TProtocol) error { - _field := NewTokenUsage() - if err := _field.Read(iprot); err != nil { +func (p *ExptTuple) ReadField2(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { return err + } else { + _field = &v } - p.TokenUsage = _field + p.EvalSetVersionID = _field return nil } -func (p *ExptStatistics) ReadField3(iprot thrift.TProtocol) error { +func (p *ExptTuple) ReadField3(iprot thrift.TProtocol) error { - var _field *float64 - if v, err := iprot.ReadDouble(); err != nil { + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { return err } else { _field = &v } - p.CreditCost = _field + p.TargetID = _field return nil } -func (p *ExptStatistics) ReadField4(iprot thrift.TProtocol) error { +func (p *ExptTuple) ReadField4(iprot thrift.TProtocol) error { - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { return err } else { _field = &v } - p.PendingTurnCnt = _field + p.TargetVersionID = _field return nil } -func (p *ExptStatistics) ReadField5(iprot thrift.TProtocol) error { +func (p *ExptTuple) ReadField6(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*evaluator.EvaluatorIDVersionItem, 0, size) + values := make([]evaluator.EvaluatorIDVersionItem, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { return err - } else { - _field = &v } - p.SuccessTurnCnt = _field + p.EvaluatorIDVersionItems = _field return nil } -func (p *ExptStatistics) ReadField6(iprot thrift.TProtocol) error { - - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { +func (p *ExptTuple) ReadField7(iprot thrift.TProtocol) error { + _field := eval_set.NewEvaluationSet() + if err := _field.Read(iprot); err != nil { return err - } else { - _field = &v } - p.FailTurnCnt = _field + p.EvalSet = _field return nil } -func (p *ExptStatistics) ReadField7(iprot thrift.TProtocol) error { - - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { +func (p *ExptTuple) ReadField8(iprot thrift.TProtocol) error { + _field := eval_target.NewEvalTarget() + if err := _field.Read(iprot); err != nil { return err - } else { - _field = &v } - p.TerminatedTurnCnt = _field + p.EvalTarget = _field return nil } -func (p *ExptStatistics) ReadField8(iprot thrift.TProtocol) error { +func (p *ExptTuple) ReadField9(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*evaluator.Evaluator, 0, size) + values := make([]evaluator.Evaluator, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { return err - } else { - _field = &v } - p.ProcessingTurnCnt = _field + p.Evaluators = _field return nil } -func (p *ExptStatistics) Write(oprot thrift.TProtocol) (err error) { +func (p *ExptTuple) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ExptStatistics"); err != nil { + if err = oprot.WriteStructBegin("ExptTuple"); err != nil { goto WriteStructBeginError } if p != nil { @@ -3839,10 +4314,6 @@ func (p *ExptStatistics) Write(oprot thrift.TProtocol) (err error) { 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 @@ -3855,6 +4326,10 @@ func (p *ExptStatistics) Write(oprot thrift.TProtocol) (err error) { fieldId = 8 goto WriteFieldError } + if err = p.writeField9(oprot); err != nil { + fieldId = 9 + goto WriteFieldError + } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -3873,20 +4348,12 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExptStatistics) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetEvaluatorAggregateResults() { - if err = oprot.WriteFieldBegin("evaluator_aggregate_results", thrift.LIST, 1); err != nil { +func (p *ExptTuple) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetEvalSetID() { + if err = oprot.WriteFieldBegin("eval_set_id", thrift.I64, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.EvaluatorAggregateResults)); err != nil { - return err - } - for _, v := range p.EvaluatorAggregateResults { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { + if err := oprot.WriteI64(*p.EvalSetID); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -3899,12 +4366,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExptStatistics) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetTokenUsage() { - if err = oprot.WriteFieldBegin("token_usage", thrift.STRUCT, 2); err != nil { +func (p *ExptTuple) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetEvalSetVersionID() { + if err = oprot.WriteFieldBegin("eval_set_version_id", thrift.I64, 2); err != nil { goto WriteFieldBeginError } - if err := p.TokenUsage.Write(oprot); err != nil { + if err := oprot.WriteI64(*p.EvalSetVersionID); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -3917,12 +4384,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *ExptStatistics) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetCreditCost() { - if err = oprot.WriteFieldBegin("credit_cost", thrift.DOUBLE, 3); err != nil { +func (p *ExptTuple) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetTargetID() { + if err = oprot.WriteFieldBegin("target_id", thrift.I64, 3); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteDouble(*p.CreditCost); err != nil { + if err := oprot.WriteI64(*p.TargetID); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -3935,12 +4402,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *ExptStatistics) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetPendingTurnCnt() { - if err = oprot.WriteFieldBegin("pending_turn_cnt", thrift.I32, 4); err != nil { +func (p *ExptTuple) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetTargetVersionID() { + if err = oprot.WriteFieldBegin("target_version_id", thrift.I64, 4); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI32(*p.PendingTurnCnt); err != nil { + if err := oprot.WriteI64(*p.TargetVersionID); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -3953,30 +4420,20 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) } -func (p *ExptStatistics) writeField5(oprot thrift.TProtocol) (err error) { - if p.IsSetSuccessTurnCnt() { - if err = oprot.WriteFieldBegin("success_turn_cnt", thrift.I32, 5); err != nil { +func (p *ExptTuple) writeField6(oprot thrift.TProtocol) (err error) { + if p.IsSetEvaluatorIDVersionItems() { + if err = oprot.WriteFieldBegin("evaluator_id_version_items", thrift.LIST, 6); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI32(*p.SuccessTurnCnt); err != nil { + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.EvaluatorIDVersionItems)); 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 *ExptStatistics) writeField6(oprot thrift.TProtocol) (err error) { - if p.IsSetFailTurnCnt() { - if err = oprot.WriteFieldBegin("fail_turn_cnt", thrift.I32, 6); err != nil { - goto WriteFieldBeginError + for _, v := range p.EvaluatorIDVersionItems { + if err := v.Write(oprot); err != nil { + return err + } } - if err := oprot.WriteI32(*p.FailTurnCnt); err != nil { + if err := oprot.WriteListEnd(); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -3989,12 +4446,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) } -func (p *ExptStatistics) writeField7(oprot thrift.TProtocol) (err error) { - if p.IsSetTerminatedTurnCnt() { - if err = oprot.WriteFieldBegin("terminated_turn_cnt", thrift.I32, 7); err != nil { +func (p *ExptTuple) writeField7(oprot thrift.TProtocol) (err error) { + if p.IsSetEvalSet() { + if err = oprot.WriteFieldBegin("eval_set", thrift.STRUCT, 7); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI32(*p.TerminatedTurnCnt); err != nil { + if err := p.EvalSet.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -4007,12 +4464,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) } -func (p *ExptStatistics) writeField8(oprot thrift.TProtocol) (err error) { - if p.IsSetProcessingTurnCnt() { - if err = oprot.WriteFieldBegin("processing_turn_cnt", thrift.I32, 8); err != nil { +func (p *ExptTuple) writeField8(oprot thrift.TProtocol) (err error) { + if p.IsSetEvalTarget() { + if err = oprot.WriteFieldBegin("eval_target", thrift.STRUCT, 8); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI32(*p.ProcessingTurnCnt); err != nil { + if err := p.EvalTarget.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -4025,197 +4482,262 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) } - -func (p *ExptStatistics) String() string { - if p == nil { - return "" - } - return fmt.Sprintf("ExptStatistics(%+v)", *p) - +func (p *ExptTuple) writeField9(oprot thrift.TProtocol) (err error) { + if p.IsSetEvaluators() { + if err = oprot.WriteFieldBegin("evaluators", thrift.LIST, 9); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Evaluators)); err != nil { + return err + } + for _, v := range p.Evaluators { + 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 9 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 9 end error: ", p), err) } -func (p *ExptStatistics) DeepEqual(ano *ExptStatistics) bool { +func (p *ExptTuple) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ExptTuple(%+v)", *p) + +} + +func (p *ExptTuple) DeepEqual(ano *ExptTuple) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.EvaluatorAggregateResults) { + if !p.Field1DeepEqual(ano.EvalSetID) { return false } - if !p.Field2DeepEqual(ano.TokenUsage) { + if !p.Field2DeepEqual(ano.EvalSetVersionID) { return false } - if !p.Field3DeepEqual(ano.CreditCost) { + if !p.Field3DeepEqual(ano.TargetID) { return false } - if !p.Field4DeepEqual(ano.PendingTurnCnt) { + if !p.Field4DeepEqual(ano.TargetVersionID) { return false } - if !p.Field5DeepEqual(ano.SuccessTurnCnt) { + if !p.Field6DeepEqual(ano.EvaluatorIDVersionItems) { return false } - if !p.Field6DeepEqual(ano.FailTurnCnt) { + if !p.Field7DeepEqual(ano.EvalSet) { return false } - if !p.Field7DeepEqual(ano.TerminatedTurnCnt) { + if !p.Field8DeepEqual(ano.EvalTarget) { return false } - if !p.Field8DeepEqual(ano.ProcessingTurnCnt) { + if !p.Field9DeepEqual(ano.Evaluators) { return false } return true } -func (p *ExptStatistics) Field1DeepEqual(src []*EvaluatorAggregateResult_) bool { +func (p *ExptTuple) Field1DeepEqual(src *int64) bool { - if len(p.EvaluatorAggregateResults) != len(src) { + if p.EvalSetID == src { + return true + } else if p.EvalSetID == nil || src == nil { return false } - for i, v := range p.EvaluatorAggregateResults { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } - return true -} -func (p *ExptStatistics) Field2DeepEqual(src *TokenUsage) bool { - - if !p.TokenUsage.DeepEqual(src) { + if *p.EvalSetID != *src { return false } return true } -func (p *ExptStatistics) Field3DeepEqual(src *float64) bool { +func (p *ExptTuple) Field2DeepEqual(src *int64) bool { - if p.CreditCost == src { + if p.EvalSetVersionID == src { return true - } else if p.CreditCost == nil || src == nil { + } else if p.EvalSetVersionID == nil || src == nil { return false } - if *p.CreditCost != *src { + if *p.EvalSetVersionID != *src { return false } return true } -func (p *ExptStatistics) Field4DeepEqual(src *int32) bool { +func (p *ExptTuple) Field3DeepEqual(src *int64) bool { - if p.PendingTurnCnt == src { + if p.TargetID == src { return true - } else if p.PendingTurnCnt == nil || src == nil { + } else if p.TargetID == nil || src == nil { return false } - if *p.PendingTurnCnt != *src { + if *p.TargetID != *src { return false } return true } -func (p *ExptStatistics) Field5DeepEqual(src *int32) bool { +func (p *ExptTuple) Field4DeepEqual(src *int64) bool { - if p.SuccessTurnCnt == src { + if p.TargetVersionID == src { return true - } else if p.SuccessTurnCnt == nil || src == nil { + } else if p.TargetVersionID == nil || src == nil { return false } - if *p.SuccessTurnCnt != *src { + if *p.TargetVersionID != *src { return false } return true } -func (p *ExptStatistics) Field6DeepEqual(src *int32) bool { +func (p *ExptTuple) Field6DeepEqual(src []*evaluator.EvaluatorIDVersionItem) bool { - if p.FailTurnCnt == src { - return true - } else if p.FailTurnCnt == nil || src == nil { + if len(p.EvaluatorIDVersionItems) != len(src) { return false } - if *p.FailTurnCnt != *src { - return false + for i, v := range p.EvaluatorIDVersionItems { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } } return true } -func (p *ExptStatistics) Field7DeepEqual(src *int32) bool { +func (p *ExptTuple) Field7DeepEqual(src *eval_set.EvaluationSet) bool { - if p.TerminatedTurnCnt == src { - return true - } else if p.TerminatedTurnCnt == nil || src == nil { + if !p.EvalSet.DeepEqual(src) { return false } - if *p.TerminatedTurnCnt != *src { + return true +} +func (p *ExptTuple) Field8DeepEqual(src *eval_target.EvalTarget) bool { + + if !p.EvalTarget.DeepEqual(src) { return false } return true } -func (p *ExptStatistics) Field8DeepEqual(src *int32) bool { +func (p *ExptTuple) Field9DeepEqual(src []*evaluator.Evaluator) bool { - if p.ProcessingTurnCnt == src { - return true - } else if p.ProcessingTurnCnt == nil || src == nil { + if len(p.Evaluators) != len(src) { return false } - if *p.ProcessingTurnCnt != *src { - return false + for i, v := range p.Evaluators { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } } return true } -type EvaluatorFmtResult_ struct { - Name *string `thrift:"name,1,optional" frugal:"1,optional,string" form:"name" json:"name,omitempty" query:"name"` - Score *float64 `thrift:"score,2,optional" frugal:"2,optional,double" form:"score" json:"score,omitempty" query:"score"` +// 实验字段映射和运行时参数配置 +type ExptFieldMapping struct { + TargetFieldMapping *TargetFieldMapping `thrift:"target_field_mapping,1,optional" frugal:"1,optional,TargetFieldMapping" form:"target_field_mapping" json:"target_field_mapping,omitempty" query:"target_field_mapping"` + EvaluatorFieldMapping []*EvaluatorFieldMapping `thrift:"evaluator_field_mapping,2,optional" frugal:"2,optional,list" form:"evaluator_field_mapping" json:"evaluator_field_mapping,omitempty" query:"evaluator_field_mapping"` + TargetRuntimeParam *common.RuntimeParam `thrift:"target_runtime_param,3,optional" frugal:"3,optional,common.RuntimeParam" form:"target_runtime_param" json:"target_runtime_param,omitempty" query:"target_runtime_param"` + ItemConcurNum *int32 `thrift:"item_concur_num,4,optional" frugal:"4,optional,i32" form:"item_concur_num" json:"item_concur_num,omitempty" query:"item_concur_num"` } -func NewEvaluatorFmtResult_() *EvaluatorFmtResult_ { - return &EvaluatorFmtResult_{} +func NewExptFieldMapping() *ExptFieldMapping { + return &ExptFieldMapping{} } -func (p *EvaluatorFmtResult_) InitDefault() { +func (p *ExptFieldMapping) InitDefault() { } -var EvaluatorFmtResult__Name_DEFAULT string +var ExptFieldMapping_TargetFieldMapping_DEFAULT *TargetFieldMapping -func (p *EvaluatorFmtResult_) GetName() (v string) { +func (p *ExptFieldMapping) GetTargetFieldMapping() (v *TargetFieldMapping) { if p == nil { return } - if !p.IsSetName() { - return EvaluatorFmtResult__Name_DEFAULT + if !p.IsSetTargetFieldMapping() { + return ExptFieldMapping_TargetFieldMapping_DEFAULT } - return *p.Name + return p.TargetFieldMapping } -var EvaluatorFmtResult__Score_DEFAULT float64 +var ExptFieldMapping_EvaluatorFieldMapping_DEFAULT []*EvaluatorFieldMapping -func (p *EvaluatorFmtResult_) GetScore() (v float64) { +func (p *ExptFieldMapping) GetEvaluatorFieldMapping() (v []*EvaluatorFieldMapping) { if p == nil { return } - if !p.IsSetScore() { - return EvaluatorFmtResult__Score_DEFAULT + if !p.IsSetEvaluatorFieldMapping() { + return ExptFieldMapping_EvaluatorFieldMapping_DEFAULT } - return *p.Score + return p.EvaluatorFieldMapping } -func (p *EvaluatorFmtResult_) SetName(val *string) { - p.Name = val + +var ExptFieldMapping_TargetRuntimeParam_DEFAULT *common.RuntimeParam + +func (p *ExptFieldMapping) GetTargetRuntimeParam() (v *common.RuntimeParam) { + if p == nil { + return + } + if !p.IsSetTargetRuntimeParam() { + return ExptFieldMapping_TargetRuntimeParam_DEFAULT + } + return p.TargetRuntimeParam } -func (p *EvaluatorFmtResult_) SetScore(val *float64) { - p.Score = val + +var ExptFieldMapping_ItemConcurNum_DEFAULT int32 + +func (p *ExptFieldMapping) GetItemConcurNum() (v int32) { + if p == nil { + return + } + if !p.IsSetItemConcurNum() { + return ExptFieldMapping_ItemConcurNum_DEFAULT + } + return *p.ItemConcurNum +} +func (p *ExptFieldMapping) SetTargetFieldMapping(val *TargetFieldMapping) { + p.TargetFieldMapping = val +} +func (p *ExptFieldMapping) SetEvaluatorFieldMapping(val []*EvaluatorFieldMapping) { + p.EvaluatorFieldMapping = val +} +func (p *ExptFieldMapping) SetTargetRuntimeParam(val *common.RuntimeParam) { + p.TargetRuntimeParam = val +} +func (p *ExptFieldMapping) SetItemConcurNum(val *int32) { + p.ItemConcurNum = val } -var fieldIDToName_EvaluatorFmtResult_ = map[int16]string{ - 1: "name", - 2: "score", +var fieldIDToName_ExptFieldMapping = map[int16]string{ + 1: "target_field_mapping", + 2: "evaluator_field_mapping", + 3: "target_runtime_param", + 4: "item_concur_num", } -func (p *EvaluatorFmtResult_) IsSetName() bool { - return p.Name != nil +func (p *ExptFieldMapping) IsSetTargetFieldMapping() bool { + return p.TargetFieldMapping != nil } -func (p *EvaluatorFmtResult_) IsSetScore() bool { - return p.Score != nil +func (p *ExptFieldMapping) IsSetEvaluatorFieldMapping() bool { + return p.EvaluatorFieldMapping != nil } -func (p *EvaluatorFmtResult_) Read(iprot thrift.TProtocol) (err error) { +func (p *ExptFieldMapping) IsSetTargetRuntimeParam() bool { + return p.TargetRuntimeParam != nil +} + +func (p *ExptFieldMapping) IsSetItemConcurNum() bool { + return p.ItemConcurNum != nil +} + +func (p *ExptFieldMapping) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -4234,7 +4756,7 @@ func (p *EvaluatorFmtResult_) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.STRUCT { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } @@ -4242,13 +4764,29 @@ func (p *EvaluatorFmtResult_) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 2: - if fieldTypeId == thrift.DOUBLE { + 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.STRUCT { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 4: + if fieldTypeId == thrift.I32 { + if err = p.ReadField4(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 @@ -4268,7 +4806,7 @@ ReadStructBeginError: 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_EvaluatorFmtResult_[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExptFieldMapping[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -4278,32 +4816,60 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *EvaluatorFmtResult_) ReadField1(iprot thrift.TProtocol) error { +func (p *ExptFieldMapping) ReadField1(iprot thrift.TProtocol) error { + _field := NewTargetFieldMapping() + if err := _field.Read(iprot); err != nil { + return err + } + p.TargetFieldMapping = _field + return nil +} +func (p *ExptFieldMapping) ReadField2(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*EvaluatorFieldMapping, 0, size) + values := make([]EvaluatorFieldMapping, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() - var _field *string - if v, err := iprot.ReadString(); err != nil { + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { return err - } else { - _field = &v } - p.Name = _field + p.EvaluatorFieldMapping = _field return nil } -func (p *EvaluatorFmtResult_) ReadField2(iprot thrift.TProtocol) error { +func (p *ExptFieldMapping) ReadField3(iprot thrift.TProtocol) error { + _field := common.NewRuntimeParam() + if err := _field.Read(iprot); err != nil { + return err + } + p.TargetRuntimeParam = _field + return nil +} +func (p *ExptFieldMapping) ReadField4(iprot thrift.TProtocol) error { - var _field *float64 - if v, err := iprot.ReadDouble(); err != nil { + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { return err } else { _field = &v } - p.Score = _field + p.ItemConcurNum = _field return nil } -func (p *EvaluatorFmtResult_) Write(oprot thrift.TProtocol) (err error) { +func (p *ExptFieldMapping) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("EvaluatorFmtResult"); err != nil { + if err = oprot.WriteStructBegin("ExptFieldMapping"); err != nil { goto WriteStructBeginError } if p != nil { @@ -4315,6 +4881,14 @@ func (p *EvaluatorFmtResult_) Write(oprot thrift.TProtocol) (err error) { 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 = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -4333,12 +4907,12 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *EvaluatorFmtResult_) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetName() { - if err = oprot.WriteFieldBegin("name", thrift.STRING, 1); err != nil { +func (p *ExptFieldMapping) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetTargetFieldMapping() { + if err = oprot.WriteFieldBegin("target_field_mapping", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(*p.Name); err != nil { + if err := p.TargetFieldMapping.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -4351,12 +4925,20 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *EvaluatorFmtResult_) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetScore() { - if err = oprot.WriteFieldBegin("score", thrift.DOUBLE, 2); err != nil { +func (p *ExptFieldMapping) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetEvaluatorFieldMapping() { + if err = oprot.WriteFieldBegin("evaluator_field_mapping", thrift.LIST, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteDouble(*p.Score); err != nil { + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.EvaluatorFieldMapping)); err != nil { + return err + } + for _, v := range p.EvaluatorFieldMapping { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -4369,90 +4951,169 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } +func (p *ExptFieldMapping) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetTargetRuntimeParam() { + if err = oprot.WriteFieldBegin("target_runtime_param", thrift.STRUCT, 3); err != nil { + goto WriteFieldBeginError + } + if err := p.TargetRuntimeParam.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 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} +func (p *ExptFieldMapping) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetItemConcurNum() { + if err = oprot.WriteFieldBegin("item_concur_num", thrift.I32, 4); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.ItemConcurNum); 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 *EvaluatorFmtResult_) String() string { +func (p *ExptFieldMapping) String() string { if p == nil { return "" } - return fmt.Sprintf("EvaluatorFmtResult_(%+v)", *p) + return fmt.Sprintf("ExptFieldMapping(%+v)", *p) } -func (p *EvaluatorFmtResult_) DeepEqual(ano *EvaluatorFmtResult_) bool { +func (p *ExptFieldMapping) DeepEqual(ano *ExptFieldMapping) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.Name) { + if !p.Field1DeepEqual(ano.TargetFieldMapping) { return false } - if !p.Field2DeepEqual(ano.Score) { + if !p.Field2DeepEqual(ano.EvaluatorFieldMapping) { + return false + } + if !p.Field3DeepEqual(ano.TargetRuntimeParam) { + return false + } + if !p.Field4DeepEqual(ano.ItemConcurNum) { return false } return true } -func (p *EvaluatorFmtResult_) Field1DeepEqual(src *string) bool { +func (p *ExptFieldMapping) Field1DeepEqual(src *TargetFieldMapping) bool { - if p.Name == src { - return true - } else if p.Name == nil || src == nil { + if !p.TargetFieldMapping.DeepEqual(src) { return false } - if strings.Compare(*p.Name, *src) != 0 { + return true +} +func (p *ExptFieldMapping) Field2DeepEqual(src []*EvaluatorFieldMapping) bool { + + if len(p.EvaluatorFieldMapping) != len(src) { + return false + } + for i, v := range p.EvaluatorFieldMapping { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} +func (p *ExptFieldMapping) Field3DeepEqual(src *common.RuntimeParam) bool { + + if !p.TargetRuntimeParam.DeepEqual(src) { return false } return true } -func (p *EvaluatorFmtResult_) Field2DeepEqual(src *float64) bool { +func (p *ExptFieldMapping) Field4DeepEqual(src *int32) bool { - if p.Score == src { + if p.ItemConcurNum == src { return true - } else if p.Score == nil || src == nil { + } else if p.ItemConcurNum == nil || src == nil { return false } - if *p.Score != *src { + if *p.ItemConcurNum != *src { return false } return true } -type TargetFieldMapping struct { - FromEvalSet []*FieldMapping `thrift:"from_eval_set,1,optional" frugal:"1,optional,list" form:"from_eval_set" json:"from_eval_set,omitempty" query:"from_eval_set"` +// 实验评估器得分加权配置 +type ExptScoreWeight struct { + EnableWeightedScore *bool `thrift:"enable_weighted_score,1,optional" frugal:"1,optional,bool" form:"enable_weighted_score" json:"enable_weighted_score,omitempty" query:"enable_weighted_score"` + EvaluatorScoreWeights map[int64]float64 `thrift:"evaluator_score_weights,2,optional" frugal:"2,optional,map" form:"evaluator_score_weights" json:"evaluator_score_weights,omitempty" query:"evaluator_score_weights"` } -func NewTargetFieldMapping() *TargetFieldMapping { - return &TargetFieldMapping{} +func NewExptScoreWeight() *ExptScoreWeight { + return &ExptScoreWeight{} } -func (p *TargetFieldMapping) InitDefault() { +func (p *ExptScoreWeight) InitDefault() { } -var TargetFieldMapping_FromEvalSet_DEFAULT []*FieldMapping +var ExptScoreWeight_EnableWeightedScore_DEFAULT bool -func (p *TargetFieldMapping) GetFromEvalSet() (v []*FieldMapping) { +func (p *ExptScoreWeight) GetEnableWeightedScore() (v bool) { if p == nil { return } - if !p.IsSetFromEvalSet() { - return TargetFieldMapping_FromEvalSet_DEFAULT + if !p.IsSetEnableWeightedScore() { + return ExptScoreWeight_EnableWeightedScore_DEFAULT } - return p.FromEvalSet + return *p.EnableWeightedScore } -func (p *TargetFieldMapping) SetFromEvalSet(val []*FieldMapping) { - p.FromEvalSet = val + +var ExptScoreWeight_EvaluatorScoreWeights_DEFAULT map[int64]float64 + +func (p *ExptScoreWeight) GetEvaluatorScoreWeights() (v map[int64]float64) { + if p == nil { + return + } + if !p.IsSetEvaluatorScoreWeights() { + return ExptScoreWeight_EvaluatorScoreWeights_DEFAULT + } + return p.EvaluatorScoreWeights +} +func (p *ExptScoreWeight) SetEnableWeightedScore(val *bool) { + p.EnableWeightedScore = val +} +func (p *ExptScoreWeight) SetEvaluatorScoreWeights(val map[int64]float64) { + p.EvaluatorScoreWeights = val } -var fieldIDToName_TargetFieldMapping = map[int16]string{ - 1: "from_eval_set", +var fieldIDToName_ExptScoreWeight = map[int16]string{ + 1: "enable_weighted_score", + 2: "evaluator_score_weights", } -func (p *TargetFieldMapping) IsSetFromEvalSet() bool { - return p.FromEvalSet != nil +func (p *ExptScoreWeight) IsSetEnableWeightedScore() bool { + return p.EnableWeightedScore != nil } -func (p *TargetFieldMapping) Read(iprot thrift.TProtocol) (err error) { +func (p *ExptScoreWeight) IsSetEvaluatorScoreWeights() bool { + return p.EvaluatorScoreWeights != nil +} + +func (p *ExptScoreWeight) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -4471,13 +5132,21 @@ func (p *TargetFieldMapping) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.LIST { + if fieldTypeId == thrift.BOOL { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 2: + if fieldTypeId == thrift.MAP { + if err = p.ReadField2(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 @@ -4497,7 +5166,7 @@ ReadStructBeginError: 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_TargetFieldMapping[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExptScoreWeight[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -4507,33 +5176,50 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *TargetFieldMapping) ReadField1(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() +func (p *ExptScoreWeight) ReadField1(iprot thrift.TProtocol) error { + + var _field *bool + if v, err := iprot.ReadBool(); err != nil { + return err + } else { + _field = &v + } + p.EnableWeightedScore = _field + return nil +} +func (p *ExptScoreWeight) ReadField2(iprot thrift.TProtocol) error { + _, _, size, err := iprot.ReadMapBegin() if err != nil { return err } - _field := make([]*FieldMapping, 0, size) - values := make([]FieldMapping, size) + _field := make(map[int64]float64, size) for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() + var _key int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _key = v + } - if err := _elem.Read(iprot); err != nil { + var _val float64 + if v, err := iprot.ReadDouble(); err != nil { return err + } else { + _val = v } - _field = append(_field, _elem) + _field[_key] = _val } - if err := iprot.ReadListEnd(); err != nil { + if err := iprot.ReadMapEnd(); err != nil { return err } - p.FromEvalSet = _field + p.EvaluatorScoreWeights = _field return nil } -func (p *TargetFieldMapping) Write(oprot thrift.TProtocol) (err error) { +func (p *ExptScoreWeight) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("TargetFieldMapping"); err != nil { + if err = oprot.WriteStructBegin("ExptScoreWeight"); err != nil { goto WriteStructBeginError } if p != nil { @@ -4541,6 +5227,10 @@ func (p *TargetFieldMapping) Write(oprot thrift.TProtocol) (err error) { fieldId = 1 goto WriteFieldError } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -4559,20 +5249,41 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *TargetFieldMapping) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetFromEvalSet() { - if err = oprot.WriteFieldBegin("from_eval_set", thrift.LIST, 1); err != nil { +func (p *ExptScoreWeight) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetEnableWeightedScore() { + if err = oprot.WriteFieldBegin("enable_weighted_score", thrift.BOOL, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.FromEvalSet)); err != nil { + if err := oprot.WriteBool(*p.EnableWeightedScore); err != nil { return err } - for _, v := range p.FromEvalSet { - if err := v.Write(oprot); err != nil { + 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 *ExptScoreWeight) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetEvaluatorScoreWeights() { + if err = oprot.WriteFieldBegin("evaluator_score_weights", thrift.MAP, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteMapBegin(thrift.I64, thrift.DOUBLE, len(p.EvaluatorScoreWeights)); err != nil { + return err + } + for k, v := range p.EvaluatorScoreWeights { + if err := oprot.WriteI64(k); err != nil { + return err + } + if err := oprot.WriteDouble(v); err != nil { return err } } - if err := oprot.WriteListEnd(); err != nil { + if err := oprot.WriteMapEnd(); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -4581,137 +5292,202 @@ func (p *TargetFieldMapping) writeField1(oprot thrift.TProtocol) (err error) { } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *TargetFieldMapping) String() string { +func (p *ExptScoreWeight) String() string { if p == nil { return "" } - return fmt.Sprintf("TargetFieldMapping(%+v)", *p) + return fmt.Sprintf("ExptScoreWeight(%+v)", *p) } -func (p *TargetFieldMapping) DeepEqual(ano *TargetFieldMapping) bool { +func (p *ExptScoreWeight) DeepEqual(ano *ExptScoreWeight) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.FromEvalSet) { + if !p.Field1DeepEqual(ano.EnableWeightedScore) { + return false + } + if !p.Field2DeepEqual(ano.EvaluatorScoreWeights) { return false } return true } -func (p *TargetFieldMapping) Field1DeepEqual(src []*FieldMapping) bool { +func (p *ExptScoreWeight) Field1DeepEqual(src *bool) bool { - if len(p.FromEvalSet) != len(src) { + if p.EnableWeightedScore == src { + return true + } else if p.EnableWeightedScore == nil || src == nil { return false } - for i, v := range p.FromEvalSet { - _src := src[i] - if !v.DeepEqual(_src) { + if *p.EnableWeightedScore != *src { + return false + } + return true +} +func (p *ExptScoreWeight) Field2DeepEqual(src map[int64]float64) bool { + + if len(p.EvaluatorScoreWeights) != len(src) { + return false + } + for k, v := range p.EvaluatorScoreWeights { + _src := src[k] + if v != _src { return false } } return true } -type EvaluatorFieldMapping struct { - EvaluatorVersionID int64 `thrift:"evaluator_version_id,1,required" frugal:"1,required,i64" json:"evaluator_version_id" form:"evaluator_version_id,required" query:"evaluator_version_id,required"` - FromEvalSet []*FieldMapping `thrift:"from_eval_set,2,optional" frugal:"2,optional,list" form:"from_eval_set" json:"from_eval_set,omitempty" query:"from_eval_set"` - FromTarget []*FieldMapping `thrift:"from_target,3,optional" frugal:"3,optional,list" form:"from_target" json:"from_target,omitempty" query:"from_target"` - EvaluatorIDVersionItem *evaluator.EvaluatorIDVersionItem `thrift:"evaluator_id_version_item,4,optional" frugal:"4,optional,evaluator.EvaluatorIDVersionItem" form:"evaluator_id_version_item" json:"evaluator_id_version_item,omitempty" query:"evaluator_id_version_item"` +type ExptTemplate struct { + Meta *ExptTemplateMeta `thrift:"meta,1,optional" frugal:"1,optional,ExptTemplateMeta" form:"meta" json:"meta,omitempty" query:"meta"` + TripleConfig *ExptTuple `thrift:"triple_config,2,optional" frugal:"2,optional,ExptTuple" form:"triple_config" json:"triple_config,omitempty" query:"triple_config"` + FieldMappingConfig *ExptFieldMapping `thrift:"field_mapping_config,3,optional" frugal:"3,optional,ExptFieldMapping" form:"field_mapping_config" json:"field_mapping_config,omitempty" query:"field_mapping_config"` + ScoreWeightConfig *ExptScoreWeight `thrift:"score_weight_config,4,optional" frugal:"4,optional,ExptScoreWeight" form:"score_weight_config" json:"score_weight_config,omitempty" query:"score_weight_config"` + ExptInfo *ExptInfo `thrift:"expt_info,5,optional" frugal:"5,optional,ExptInfo" form:"expt_info" json:"expt_info,omitempty" query:"expt_info"` + BaseInfo *common.BaseInfo `thrift:"base_info,255,optional" frugal:"255,optional,common.BaseInfo" form:"base_info" json:"base_info,omitempty" query:"base_info"` } -func NewEvaluatorFieldMapping() *EvaluatorFieldMapping { - return &EvaluatorFieldMapping{} +func NewExptTemplate() *ExptTemplate { + return &ExptTemplate{} } -func (p *EvaluatorFieldMapping) InitDefault() { +func (p *ExptTemplate) InitDefault() { } -func (p *EvaluatorFieldMapping) GetEvaluatorVersionID() (v int64) { - if p != nil { - return p.EvaluatorVersionID +var ExptTemplate_Meta_DEFAULT *ExptTemplateMeta + +func (p *ExptTemplate) GetMeta() (v *ExptTemplateMeta) { + if p == nil { + return } - return + if !p.IsSetMeta() { + return ExptTemplate_Meta_DEFAULT + } + return p.Meta } -var EvaluatorFieldMapping_FromEvalSet_DEFAULT []*FieldMapping +var ExptTemplate_TripleConfig_DEFAULT *ExptTuple -func (p *EvaluatorFieldMapping) GetFromEvalSet() (v []*FieldMapping) { +func (p *ExptTemplate) GetTripleConfig() (v *ExptTuple) { if p == nil { return } - if !p.IsSetFromEvalSet() { - return EvaluatorFieldMapping_FromEvalSet_DEFAULT + if !p.IsSetTripleConfig() { + return ExptTemplate_TripleConfig_DEFAULT } - return p.FromEvalSet + return p.TripleConfig } -var EvaluatorFieldMapping_FromTarget_DEFAULT []*FieldMapping +var ExptTemplate_FieldMappingConfig_DEFAULT *ExptFieldMapping -func (p *EvaluatorFieldMapping) GetFromTarget() (v []*FieldMapping) { +func (p *ExptTemplate) GetFieldMappingConfig() (v *ExptFieldMapping) { if p == nil { return } - if !p.IsSetFromTarget() { - return EvaluatorFieldMapping_FromTarget_DEFAULT + if !p.IsSetFieldMappingConfig() { + return ExptTemplate_FieldMappingConfig_DEFAULT } - return p.FromTarget + return p.FieldMappingConfig } -var EvaluatorFieldMapping_EvaluatorIDVersionItem_DEFAULT *evaluator.EvaluatorIDVersionItem +var ExptTemplate_ScoreWeightConfig_DEFAULT *ExptScoreWeight -func (p *EvaluatorFieldMapping) GetEvaluatorIDVersionItem() (v *evaluator.EvaluatorIDVersionItem) { +func (p *ExptTemplate) GetScoreWeightConfig() (v *ExptScoreWeight) { if p == nil { return } - if !p.IsSetEvaluatorIDVersionItem() { - return EvaluatorFieldMapping_EvaluatorIDVersionItem_DEFAULT + if !p.IsSetScoreWeightConfig() { + return ExptTemplate_ScoreWeightConfig_DEFAULT } - return p.EvaluatorIDVersionItem + return p.ScoreWeightConfig } -func (p *EvaluatorFieldMapping) SetEvaluatorVersionID(val int64) { - p.EvaluatorVersionID = val + +var ExptTemplate_ExptInfo_DEFAULT *ExptInfo + +func (p *ExptTemplate) GetExptInfo() (v *ExptInfo) { + if p == nil { + return + } + if !p.IsSetExptInfo() { + return ExptTemplate_ExptInfo_DEFAULT + } + return p.ExptInfo } -func (p *EvaluatorFieldMapping) SetFromEvalSet(val []*FieldMapping) { - p.FromEvalSet = val + +var ExptTemplate_BaseInfo_DEFAULT *common.BaseInfo + +func (p *ExptTemplate) GetBaseInfo() (v *common.BaseInfo) { + if p == nil { + return + } + if !p.IsSetBaseInfo() { + return ExptTemplate_BaseInfo_DEFAULT + } + return p.BaseInfo } -func (p *EvaluatorFieldMapping) SetFromTarget(val []*FieldMapping) { - p.FromTarget = val +func (p *ExptTemplate) SetMeta(val *ExptTemplateMeta) { + p.Meta = val } -func (p *EvaluatorFieldMapping) SetEvaluatorIDVersionItem(val *evaluator.EvaluatorIDVersionItem) { - p.EvaluatorIDVersionItem = val +func (p *ExptTemplate) SetTripleConfig(val *ExptTuple) { + p.TripleConfig = val +} +func (p *ExptTemplate) SetFieldMappingConfig(val *ExptFieldMapping) { + p.FieldMappingConfig = val +} +func (p *ExptTemplate) SetScoreWeightConfig(val *ExptScoreWeight) { + p.ScoreWeightConfig = val +} +func (p *ExptTemplate) SetExptInfo(val *ExptInfo) { + p.ExptInfo = val +} +func (p *ExptTemplate) SetBaseInfo(val *common.BaseInfo) { + p.BaseInfo = val } -var fieldIDToName_EvaluatorFieldMapping = map[int16]string{ - 1: "evaluator_version_id", - 2: "from_eval_set", - 3: "from_target", - 4: "evaluator_id_version_item", +var fieldIDToName_ExptTemplate = map[int16]string{ + 1: "meta", + 2: "triple_config", + 3: "field_mapping_config", + 4: "score_weight_config", + 5: "expt_info", + 255: "base_info", } -func (p *EvaluatorFieldMapping) IsSetFromEvalSet() bool { - return p.FromEvalSet != nil +func (p *ExptTemplate) IsSetMeta() bool { + return p.Meta != nil } -func (p *EvaluatorFieldMapping) IsSetFromTarget() bool { - return p.FromTarget != nil +func (p *ExptTemplate) IsSetTripleConfig() bool { + return p.TripleConfig != nil } -func (p *EvaluatorFieldMapping) IsSetEvaluatorIDVersionItem() bool { - return p.EvaluatorIDVersionItem != nil +func (p *ExptTemplate) IsSetFieldMappingConfig() bool { + return p.FieldMappingConfig != nil } -func (p *EvaluatorFieldMapping) Read(iprot thrift.TProtocol) (err error) { +func (p *ExptTemplate) IsSetScoreWeightConfig() bool { + return p.ScoreWeightConfig != nil +} + +func (p *ExptTemplate) IsSetExptInfo() bool { + return p.ExptInfo != nil +} + +func (p *ExptTemplate) IsSetBaseInfo() bool { + return p.BaseInfo != nil +} + +func (p *ExptTemplate) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetEvaluatorVersionID bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -4728,16 +5504,15 @@ func (p *EvaluatorFieldMapping) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.STRUCT { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } - issetEvaluatorVersionID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } case 2: - if fieldTypeId == thrift.LIST { + if fieldTypeId == thrift.STRUCT { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } @@ -4745,7 +5520,7 @@ func (p *EvaluatorFieldMapping) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 3: - if fieldTypeId == thrift.LIST { + if fieldTypeId == thrift.STRUCT { if err = p.ReadField3(iprot); err != nil { goto ReadFieldError } @@ -4760,6 +5535,22 @@ func (p *EvaluatorFieldMapping) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 5: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField5(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 { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } default: if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError @@ -4773,17 +5564,13 @@ func (p *EvaluatorFieldMapping) Read(iprot thrift.TProtocol) (err error) { goto ReadStructEndError } - if !issetEvaluatorVersionID { - 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_EvaluatorFieldMapping[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExptTemplate[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -4791,79 +5578,60 @@ 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_EvaluatorFieldMapping[fieldId])) } -func (p *EvaluatorFieldMapping) ReadField1(iprot thrift.TProtocol) error { - - var _field int64 - if v, err := iprot.ReadI64(); err != nil { +func (p *ExptTemplate) ReadField1(iprot thrift.TProtocol) error { + _field := NewExptTemplateMeta() + if err := _field.Read(iprot); err != nil { return err - } else { - _field = v } - p.EvaluatorVersionID = _field + p.Meta = _field return nil } -func (p *EvaluatorFieldMapping) ReadField2(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { +func (p *ExptTemplate) ReadField2(iprot thrift.TProtocol) error { + _field := NewExptTuple() + if err := _field.Read(iprot); err != nil { return err } - _field := make([]*FieldMapping, 0, size) - values := make([]FieldMapping, 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 { + p.TripleConfig = _field + return nil +} +func (p *ExptTemplate) ReadField3(iprot thrift.TProtocol) error { + _field := NewExptFieldMapping() + if err := _field.Read(iprot); err != nil { return err } - p.FromEvalSet = _field + p.FieldMappingConfig = _field return nil } -func (p *EvaluatorFieldMapping) ReadField3(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { +func (p *ExptTemplate) ReadField4(iprot thrift.TProtocol) error { + _field := NewExptScoreWeight() + if err := _field.Read(iprot); err != nil { return err } - _field := make([]*FieldMapping, 0, size) - values := make([]FieldMapping, 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 { + p.ScoreWeightConfig = _field + return nil +} +func (p *ExptTemplate) ReadField5(iprot thrift.TProtocol) error { + _field := NewExptInfo() + if err := _field.Read(iprot); err != nil { return err } - p.FromTarget = _field + p.ExptInfo = _field return nil } -func (p *EvaluatorFieldMapping) ReadField4(iprot thrift.TProtocol) error { - _field := evaluator.NewEvaluatorIDVersionItem() +func (p *ExptTemplate) ReadField255(iprot thrift.TProtocol) error { + _field := common.NewBaseInfo() if err := _field.Read(iprot); err != nil { return err } - p.EvaluatorIDVersionItem = _field + p.BaseInfo = _field return nil } -func (p *EvaluatorFieldMapping) Write(oprot thrift.TProtocol) (err error) { +func (p *ExptTemplate) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("EvaluatorFieldMapping"); err != nil { + if err = oprot.WriteStructBegin("ExptTemplate"); err != nil { goto WriteStructBeginError } if p != nil { @@ -4883,6 +5651,14 @@ func (p *EvaluatorFieldMapping) Write(oprot thrift.TProtocol) (err error) { fieldId = 4 goto WriteFieldError } + if err = p.writeField5(oprot); err != nil { + fieldId = 5 + goto WriteFieldError + } + if err = p.writeField255(oprot); err != nil { + fieldId = 255 + goto WriteFieldError + } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -4901,15 +5677,17 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *EvaluatorFieldMapping) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("evaluator_version_id", thrift.I64, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.EvaluatorVersionID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError +func (p *ExptTemplate) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetMeta() { + if err = oprot.WriteFieldBegin("meta", thrift.STRUCT, 1); err != nil { + goto WriteFieldBeginError + } + if err := p.Meta.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } return nil WriteFieldBeginError: @@ -4917,20 +5695,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *EvaluatorFieldMapping) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetFromEvalSet() { - if err = oprot.WriteFieldBegin("from_eval_set", thrift.LIST, 2); err != nil { +func (p *ExptTemplate) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetTripleConfig() { + if err = oprot.WriteFieldBegin("triple_config", thrift.STRUCT, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.FromEvalSet)); err != nil { - return err - } - for _, v := range p.FromEvalSet { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { + if err := p.TripleConfig.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -4943,20 +5713,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *EvaluatorFieldMapping) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetFromTarget() { - if err = oprot.WriteFieldBegin("from_target", thrift.LIST, 3); err != nil { +func (p *ExptTemplate) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetFieldMappingConfig() { + if err = oprot.WriteFieldBegin("field_mapping_config", thrift.STRUCT, 3); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.FromTarget)); err != nil { - return err - } - for _, v := range p.FromTarget { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { + if err := p.FieldMappingConfig.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -4969,12 +5731,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *EvaluatorFieldMapping) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetEvaluatorIDVersionItem() { - if err = oprot.WriteFieldBegin("evaluator_id_version_item", thrift.STRUCT, 4); err != nil { +func (p *ExptTemplate) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetScoreWeightConfig() { + if err = oprot.WriteFieldBegin("score_weight_config", thrift.STRUCT, 4); err != nil { goto WriteFieldBeginError } - if err := p.EvaluatorIDVersionItem.Write(oprot); err != nil { + if err := p.ScoreWeightConfig.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -4987,154 +5749,198 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) } +func (p *ExptTemplate) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetExptInfo() { + if err = oprot.WriteFieldBegin("expt_info", thrift.STRUCT, 5); err != nil { + goto WriteFieldBeginError + } + if err := p.ExptInfo.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 5 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) +} +func (p *ExptTemplate) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBaseInfo() { + if err = oprot.WriteFieldBegin("base_info", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.BaseInfo.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 255 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) +} -func (p *EvaluatorFieldMapping) String() string { +func (p *ExptTemplate) String() string { if p == nil { return "" } - return fmt.Sprintf("EvaluatorFieldMapping(%+v)", *p) + return fmt.Sprintf("ExptTemplate(%+v)", *p) } -func (p *EvaluatorFieldMapping) DeepEqual(ano *EvaluatorFieldMapping) bool { +func (p *ExptTemplate) DeepEqual(ano *ExptTemplate) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.EvaluatorVersionID) { + if !p.Field1DeepEqual(ano.Meta) { return false } - if !p.Field2DeepEqual(ano.FromEvalSet) { + if !p.Field2DeepEqual(ano.TripleConfig) { return false } - if !p.Field3DeepEqual(ano.FromTarget) { + if !p.Field3DeepEqual(ano.FieldMappingConfig) { return false } - if !p.Field4DeepEqual(ano.EvaluatorIDVersionItem) { + if !p.Field4DeepEqual(ano.ScoreWeightConfig) { + return false + } + if !p.Field5DeepEqual(ano.ExptInfo) { + return false + } + if !p.Field255DeepEqual(ano.BaseInfo) { return false } return true } -func (p *EvaluatorFieldMapping) Field1DeepEqual(src int64) bool { +func (p *ExptTemplate) Field1DeepEqual(src *ExptTemplateMeta) bool { - if p.EvaluatorVersionID != src { + if !p.Meta.DeepEqual(src) { return false } return true } -func (p *EvaluatorFieldMapping) Field2DeepEqual(src []*FieldMapping) bool { +func (p *ExptTemplate) Field2DeepEqual(src *ExptTuple) bool { - if len(p.FromEvalSet) != len(src) { + if !p.TripleConfig.DeepEqual(src) { return false } - for i, v := range p.FromEvalSet { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } + return true +} +func (p *ExptTemplate) Field3DeepEqual(src *ExptFieldMapping) bool { + + if !p.FieldMappingConfig.DeepEqual(src) { + return false } return true } -func (p *EvaluatorFieldMapping) Field3DeepEqual(src []*FieldMapping) bool { +func (p *ExptTemplate) Field4DeepEqual(src *ExptScoreWeight) bool { - if len(p.FromTarget) != len(src) { + if !p.ScoreWeightConfig.DeepEqual(src) { return false } - for i, v := range p.FromTarget { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } + return true +} +func (p *ExptTemplate) Field5DeepEqual(src *ExptInfo) bool { + + if !p.ExptInfo.DeepEqual(src) { + return false } return true } -func (p *EvaluatorFieldMapping) Field4DeepEqual(src *evaluator.EvaluatorIDVersionItem) bool { +func (p *ExptTemplate) Field255DeepEqual(src *common.BaseInfo) bool { - if !p.EvaluatorIDVersionItem.DeepEqual(src) { + if !p.BaseInfo.DeepEqual(src) { return false } return true } -type FieldMapping struct { - FieldName *string `thrift:"field_name,1,optional" frugal:"1,optional,string" form:"field_name" json:"field_name,omitempty" query:"field_name"` - ConstValue *string `thrift:"const_value,2,optional" frugal:"2,optional,string" form:"const_value" json:"const_value,omitempty" query:"const_value"` - FromFieldName *string `thrift:"from_field_name,3,optional" frugal:"3,optional,string" form:"from_field_name" json:"from_field_name,omitempty" query:"from_field_name"` +type ExptInfo struct { + CreatedExptCount *int64 `thrift:"created_expt_count,1,optional" frugal:"1,optional,i64" form:"created_expt_count" json:"created_expt_count,omitempty" query:"created_expt_count"` + LatestExptID *int64 `thrift:"latest_expt_id,2,optional" frugal:"2,optional,i64" json:"latest_expt_id" form:"latest_expt_id" query:"latest_expt_id"` + LatestExptStatus *ExptStatus `thrift:"latest_expt_status,3,optional" frugal:"3,optional,ExptStatus" form:"latest_expt_status" json:"latest_expt_status,omitempty" query:"latest_expt_status"` } -func NewFieldMapping() *FieldMapping { - return &FieldMapping{} +func NewExptInfo() *ExptInfo { + return &ExptInfo{} } -func (p *FieldMapping) InitDefault() { +func (p *ExptInfo) InitDefault() { } -var FieldMapping_FieldName_DEFAULT string +var ExptInfo_CreatedExptCount_DEFAULT int64 -func (p *FieldMapping) GetFieldName() (v string) { +func (p *ExptInfo) GetCreatedExptCount() (v int64) { if p == nil { return } - if !p.IsSetFieldName() { - return FieldMapping_FieldName_DEFAULT + if !p.IsSetCreatedExptCount() { + return ExptInfo_CreatedExptCount_DEFAULT } - return *p.FieldName + return *p.CreatedExptCount } -var FieldMapping_ConstValue_DEFAULT string +var ExptInfo_LatestExptID_DEFAULT int64 -func (p *FieldMapping) GetConstValue() (v string) { +func (p *ExptInfo) GetLatestExptID() (v int64) { if p == nil { return } - if !p.IsSetConstValue() { - return FieldMapping_ConstValue_DEFAULT + if !p.IsSetLatestExptID() { + return ExptInfo_LatestExptID_DEFAULT } - return *p.ConstValue + return *p.LatestExptID } -var FieldMapping_FromFieldName_DEFAULT string +var ExptInfo_LatestExptStatus_DEFAULT ExptStatus -func (p *FieldMapping) GetFromFieldName() (v string) { +func (p *ExptInfo) GetLatestExptStatus() (v ExptStatus) { if p == nil { return } - if !p.IsSetFromFieldName() { - return FieldMapping_FromFieldName_DEFAULT + if !p.IsSetLatestExptStatus() { + return ExptInfo_LatestExptStatus_DEFAULT } - return *p.FromFieldName + return *p.LatestExptStatus } -func (p *FieldMapping) SetFieldName(val *string) { - p.FieldName = val +func (p *ExptInfo) SetCreatedExptCount(val *int64) { + p.CreatedExptCount = val } -func (p *FieldMapping) SetConstValue(val *string) { - p.ConstValue = val +func (p *ExptInfo) SetLatestExptID(val *int64) { + p.LatestExptID = val } -func (p *FieldMapping) SetFromFieldName(val *string) { - p.FromFieldName = val +func (p *ExptInfo) SetLatestExptStatus(val *ExptStatus) { + p.LatestExptStatus = val } -var fieldIDToName_FieldMapping = map[int16]string{ - 1: "field_name", - 2: "const_value", - 3: "from_field_name", +var fieldIDToName_ExptInfo = map[int16]string{ + 1: "created_expt_count", + 2: "latest_expt_id", + 3: "latest_expt_status", } -func (p *FieldMapping) IsSetFieldName() bool { - return p.FieldName != nil +func (p *ExptInfo) IsSetCreatedExptCount() bool { + return p.CreatedExptCount != nil } -func (p *FieldMapping) IsSetConstValue() bool { - return p.ConstValue != nil +func (p *ExptInfo) IsSetLatestExptID() bool { + return p.LatestExptID != nil } -func (p *FieldMapping) IsSetFromFieldName() bool { - return p.FromFieldName != nil +func (p *ExptInfo) IsSetLatestExptStatus() bool { + return p.LatestExptStatus != nil } -func (p *FieldMapping) Read(iprot thrift.TProtocol) (err error) { +func (p *ExptInfo) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -5153,7 +5959,7 @@ func (p *FieldMapping) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.I64 { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } @@ -5161,7 +5967,7 @@ func (p *FieldMapping) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 2: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.I64 { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } @@ -5169,7 +5975,7 @@ func (p *FieldMapping) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 3: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.I32 { if err = p.ReadField3(iprot); err != nil { goto ReadFieldError } @@ -5195,7 +6001,7 @@ ReadStructBeginError: 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_FieldMapping[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExptInfo[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -5205,43 +6011,44 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *FieldMapping) ReadField1(iprot thrift.TProtocol) error { +func (p *ExptInfo) ReadField1(iprot thrift.TProtocol) error { - var _field *string - if v, err := iprot.ReadString(); err != nil { + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { return err } else { _field = &v } - p.FieldName = _field + p.CreatedExptCount = _field return nil } -func (p *FieldMapping) ReadField2(iprot thrift.TProtocol) error { +func (p *ExptInfo) ReadField2(iprot thrift.TProtocol) error { - var _field *string - if v, err := iprot.ReadString(); err != nil { + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { return err } else { _field = &v } - p.ConstValue = _field + p.LatestExptID = _field return nil } -func (p *FieldMapping) ReadField3(iprot thrift.TProtocol) error { +func (p *ExptInfo) ReadField3(iprot thrift.TProtocol) error { - var _field *string - if v, err := iprot.ReadString(); err != nil { + var _field *ExptStatus + if v, err := iprot.ReadI32(); err != nil { return err } else { - _field = &v + tmp := ExptStatus(v) + _field = &tmp } - p.FromFieldName = _field + p.LatestExptStatus = _field return nil } -func (p *FieldMapping) Write(oprot thrift.TProtocol) (err error) { +func (p *ExptInfo) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("FieldMapping"); err != nil { + if err = oprot.WriteStructBegin("ExptInfo"); err != nil { goto WriteStructBeginError } if p != nil { @@ -5275,12 +6082,12 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *FieldMapping) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetFieldName() { - if err = oprot.WriteFieldBegin("field_name", thrift.STRING, 1); err != nil { +func (p *ExptInfo) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetCreatedExptCount() { + if err = oprot.WriteFieldBegin("created_expt_count", thrift.I64, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(*p.FieldName); err != nil { + if err := oprot.WriteI64(*p.CreatedExptCount); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -5293,12 +6100,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *FieldMapping) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetConstValue() { - if err = oprot.WriteFieldBegin("const_value", thrift.STRING, 2); err != nil { +func (p *ExptInfo) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetLatestExptID() { + if err = oprot.WriteFieldBegin("latest_expt_id", thrift.I64, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(*p.ConstValue); err != nil { + if err := oprot.WriteI64(*p.LatestExptID); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -5311,12 +6118,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *FieldMapping) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetFromFieldName() { - if err = oprot.WriteFieldBegin("from_field_name", thrift.STRING, 3); err != nil { +func (p *ExptInfo) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetLatestExptStatus() { + if err = oprot.WriteFieldBegin("latest_expt_status", thrift.I32, 3); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(*p.FromFieldName); err != nil { + if err := oprot.WriteI32(int32(*p.LatestExptStatus)); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -5330,125 +6137,125 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *FieldMapping) String() string { +func (p *ExptInfo) String() string { if p == nil { return "" } - return fmt.Sprintf("FieldMapping(%+v)", *p) + return fmt.Sprintf("ExptInfo(%+v)", *p) } -func (p *FieldMapping) DeepEqual(ano *FieldMapping) bool { +func (p *ExptInfo) DeepEqual(ano *ExptInfo) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.FieldName) { + if !p.Field1DeepEqual(ano.CreatedExptCount) { return false } - if !p.Field2DeepEqual(ano.ConstValue) { + if !p.Field2DeepEqual(ano.LatestExptID) { return false } - if !p.Field3DeepEqual(ano.FromFieldName) { + if !p.Field3DeepEqual(ano.LatestExptStatus) { return false } return true } -func (p *FieldMapping) Field1DeepEqual(src *string) bool { +func (p *ExptInfo) Field1DeepEqual(src *int64) bool { - if p.FieldName == src { + if p.CreatedExptCount == src { return true - } else if p.FieldName == nil || src == nil { + } else if p.CreatedExptCount == nil || src == nil { return false } - if strings.Compare(*p.FieldName, *src) != 0 { + if *p.CreatedExptCount != *src { return false } return true } -func (p *FieldMapping) Field2DeepEqual(src *string) bool { +func (p *ExptInfo) Field2DeepEqual(src *int64) bool { - if p.ConstValue == src { + if p.LatestExptID == src { return true - } else if p.ConstValue == nil || src == nil { + } else if p.LatestExptID == nil || src == nil { return false } - if strings.Compare(*p.ConstValue, *src) != 0 { + if *p.LatestExptID != *src { return false } return true } -func (p *FieldMapping) Field3DeepEqual(src *string) bool { +func (p *ExptInfo) Field3DeepEqual(src *ExptStatus) bool { - if p.FromFieldName == src { + if p.LatestExptStatus == src { return true - } else if p.FromFieldName == nil || src == nil { + } else if p.LatestExptStatus == nil || src == nil { return false } - if strings.Compare(*p.FromFieldName, *src) != 0 { + if *p.LatestExptStatus != *src { return false } return true } -type ExptFilterOption struct { - FuzzyName *string `thrift:"fuzzy_name,1,optional" frugal:"1,optional,string" form:"fuzzy_name" json:"fuzzy_name,omitempty" query:"fuzzy_name"` - Filters *Filters `thrift:"filters,10,optional" frugal:"10,optional,Filters" form:"filters" json:"filters,omitempty" query:"filters"` +type TokenUsage struct { + InputTokens *int64 `thrift:"input_tokens,1,optional" frugal:"1,optional,i64" json:"input_tokens" form:"input_tokens" query:"input_tokens"` + OutputTokens *int64 `thrift:"output_tokens,2,optional" frugal:"2,optional,i64" json:"output_tokens" form:"output_tokens" query:"output_tokens"` } -func NewExptFilterOption() *ExptFilterOption { - return &ExptFilterOption{} +func NewTokenUsage() *TokenUsage { + return &TokenUsage{} } -func (p *ExptFilterOption) InitDefault() { +func (p *TokenUsage) InitDefault() { } -var ExptFilterOption_FuzzyName_DEFAULT string +var TokenUsage_InputTokens_DEFAULT int64 -func (p *ExptFilterOption) GetFuzzyName() (v string) { +func (p *TokenUsage) GetInputTokens() (v int64) { if p == nil { return } - if !p.IsSetFuzzyName() { - return ExptFilterOption_FuzzyName_DEFAULT + if !p.IsSetInputTokens() { + return TokenUsage_InputTokens_DEFAULT } - return *p.FuzzyName + return *p.InputTokens } -var ExptFilterOption_Filters_DEFAULT *Filters +var TokenUsage_OutputTokens_DEFAULT int64 -func (p *ExptFilterOption) GetFilters() (v *Filters) { +func (p *TokenUsage) GetOutputTokens() (v int64) { if p == nil { return } - if !p.IsSetFilters() { - return ExptFilterOption_Filters_DEFAULT + if !p.IsSetOutputTokens() { + return TokenUsage_OutputTokens_DEFAULT } - return p.Filters + return *p.OutputTokens } -func (p *ExptFilterOption) SetFuzzyName(val *string) { - p.FuzzyName = val +func (p *TokenUsage) SetInputTokens(val *int64) { + p.InputTokens = val } -func (p *ExptFilterOption) SetFilters(val *Filters) { - p.Filters = val +func (p *TokenUsage) SetOutputTokens(val *int64) { + p.OutputTokens = val } -var fieldIDToName_ExptFilterOption = map[int16]string{ - 1: "fuzzy_name", - 10: "filters", +var fieldIDToName_TokenUsage = map[int16]string{ + 1: "input_tokens", + 2: "output_tokens", } -func (p *ExptFilterOption) IsSetFuzzyName() bool { - return p.FuzzyName != nil +func (p *TokenUsage) IsSetInputTokens() bool { + return p.InputTokens != nil } -func (p *ExptFilterOption) IsSetFilters() bool { - return p.Filters != nil +func (p *TokenUsage) IsSetOutputTokens() bool { + return p.OutputTokens != nil } -func (p *ExptFilterOption) Read(iprot thrift.TProtocol) (err error) { +func (p *TokenUsage) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -5467,16 +6274,16 @@ func (p *ExptFilterOption) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.I64 { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 10: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField10(iprot); err != nil { + case 2: + if fieldTypeId == thrift.I64 { + if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } } else if err = iprot.Skip(fieldTypeId); err != nil { @@ -5501,7 +6308,7 @@ ReadStructBeginError: 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_ExptFilterOption[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_TokenUsage[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -5511,29 +6318,32 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExptFilterOption) ReadField1(iprot thrift.TProtocol) error { +func (p *TokenUsage) ReadField1(iprot thrift.TProtocol) error { - var _field *string - if v, err := iprot.ReadString(); err != nil { + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { return err } else { _field = &v } - p.FuzzyName = _field + p.InputTokens = _field return nil } -func (p *ExptFilterOption) ReadField10(iprot thrift.TProtocol) error { - _field := NewFilters() - if err := _field.Read(iprot); err != nil { +func (p *TokenUsage) ReadField2(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { return err + } else { + _field = &v } - p.Filters = _field + p.OutputTokens = _field return nil } -func (p *ExptFilterOption) Write(oprot thrift.TProtocol) (err error) { +func (p *TokenUsage) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ExptFilterOption"); err != nil { + if err = oprot.WriteStructBegin("TokenUsage"); err != nil { goto WriteStructBeginError } if p != nil { @@ -5541,8 +6351,8 @@ func (p *ExptFilterOption) Write(oprot thrift.TProtocol) (err error) { fieldId = 1 goto WriteFieldError } - if err = p.writeField10(oprot); err != nil { - fieldId = 10 + if err = p.writeField2(oprot); err != nil { + fieldId = 2 goto WriteFieldError } } @@ -5563,12 +6373,12 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExptFilterOption) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetFuzzyName() { - if err = oprot.WriteFieldBegin("fuzzy_name", thrift.STRING, 1); err != nil { +func (p *TokenUsage) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetInputTokens() { + if err = oprot.WriteFieldBegin("input_tokens", thrift.I64, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(*p.FuzzyName); err != nil { + if err := oprot.WriteI64(*p.InputTokens); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -5581,12 +6391,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExptFilterOption) writeField10(oprot thrift.TProtocol) (err error) { - if p.IsSetFilters() { - if err = oprot.WriteFieldBegin("filters", thrift.STRUCT, 10); err != nil { +func (p *TokenUsage) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetOutputTokens() { + if err = oprot.WriteFieldBegin("output_tokens", thrift.I64, 2); err != nil { goto WriteFieldBeginError } - if err := p.Filters.Write(oprot); err != nil { + if err := oprot.WriteI64(*p.OutputTokens); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -5595,131 +6405,241 @@ func (p *ExptFilterOption) writeField10(oprot thrift.TProtocol) (err error) { } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 10 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 10 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *ExptFilterOption) String() string { +func (p *TokenUsage) String() string { if p == nil { return "" } - return fmt.Sprintf("ExptFilterOption(%+v)", *p) + return fmt.Sprintf("TokenUsage(%+v)", *p) } -func (p *ExptFilterOption) DeepEqual(ano *ExptFilterOption) bool { +func (p *TokenUsage) DeepEqual(ano *TokenUsage) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.FuzzyName) { + if !p.Field1DeepEqual(ano.InputTokens) { return false } - if !p.Field10DeepEqual(ano.Filters) { + if !p.Field2DeepEqual(ano.OutputTokens) { return false } return true } -func (p *ExptFilterOption) Field1DeepEqual(src *string) bool { +func (p *TokenUsage) Field1DeepEqual(src *int64) bool { - if p.FuzzyName == src { + if p.InputTokens == src { return true - } else if p.FuzzyName == nil || src == nil { + } else if p.InputTokens == nil || src == nil { return false } - if strings.Compare(*p.FuzzyName, *src) != 0 { + if *p.InputTokens != *src { return false } return true } -func (p *ExptFilterOption) Field10DeepEqual(src *Filters) bool { +func (p *TokenUsage) Field2DeepEqual(src *int64) bool { - if !p.Filters.DeepEqual(src) { + if p.OutputTokens == src { + return true + } else if p.OutputTokens == nil || src == nil { + return false + } + if *p.OutputTokens != *src { return false } return true } -type ItemSystemInfo struct { - RunState *ItemRunState `thrift:"run_state,1,optional" frugal:"1,optional,ItemRunState" form:"run_state" json:"run_state,omitempty" query:"run_state"` - LogID *string `thrift:"log_id,2,optional" frugal:"2,optional,string" form:"log_id" json:"log_id,omitempty" query:"log_id"` - Error *RunError `thrift:"error,3,optional" frugal:"3,optional,RunError" form:"error" json:"error,omitempty" query:"error"` +type ExptStatistics struct { + EvaluatorAggregateResults []*EvaluatorAggregateResult_ `thrift:"evaluator_aggregate_results,1,optional" frugal:"1,optional,list" form:"evaluator_aggregate_results" json:"evaluator_aggregate_results,omitempty" query:"evaluator_aggregate_results"` + TokenUsage *TokenUsage `thrift:"token_usage,2,optional" frugal:"2,optional,TokenUsage" form:"token_usage" json:"token_usage,omitempty" query:"token_usage"` + CreditCost *float64 `thrift:"credit_cost,3,optional" frugal:"3,optional,double" form:"credit_cost" json:"credit_cost,omitempty" query:"credit_cost"` + PendingTurnCnt *int32 `thrift:"pending_turn_cnt,4,optional" frugal:"4,optional,i32" form:"pending_turn_cnt" json:"pending_turn_cnt,omitempty" query:"pending_turn_cnt"` + SuccessTurnCnt *int32 `thrift:"success_turn_cnt,5,optional" frugal:"5,optional,i32" form:"success_turn_cnt" json:"success_turn_cnt,omitempty" query:"success_turn_cnt"` + FailTurnCnt *int32 `thrift:"fail_turn_cnt,6,optional" frugal:"6,optional,i32" form:"fail_turn_cnt" json:"fail_turn_cnt,omitempty" query:"fail_turn_cnt"` + TerminatedTurnCnt *int32 `thrift:"terminated_turn_cnt,7,optional" frugal:"7,optional,i32" form:"terminated_turn_cnt" json:"terminated_turn_cnt,omitempty" query:"terminated_turn_cnt"` + ProcessingTurnCnt *int32 `thrift:"processing_turn_cnt,8,optional" frugal:"8,optional,i32" form:"processing_turn_cnt" json:"processing_turn_cnt,omitempty" query:"processing_turn_cnt"` } -func NewItemSystemInfo() *ItemSystemInfo { - return &ItemSystemInfo{} +func NewExptStatistics() *ExptStatistics { + return &ExptStatistics{} } -func (p *ItemSystemInfo) InitDefault() { +func (p *ExptStatistics) InitDefault() { } -var ItemSystemInfo_RunState_DEFAULT ItemRunState +var ExptStatistics_EvaluatorAggregateResults_DEFAULT []*EvaluatorAggregateResult_ -func (p *ItemSystemInfo) GetRunState() (v ItemRunState) { +func (p *ExptStatistics) GetEvaluatorAggregateResults() (v []*EvaluatorAggregateResult_) { if p == nil { return } - if !p.IsSetRunState() { - return ItemSystemInfo_RunState_DEFAULT + if !p.IsSetEvaluatorAggregateResults() { + return ExptStatistics_EvaluatorAggregateResults_DEFAULT } - return *p.RunState + return p.EvaluatorAggregateResults } -var ItemSystemInfo_LogID_DEFAULT string +var ExptStatistics_TokenUsage_DEFAULT *TokenUsage -func (p *ItemSystemInfo) GetLogID() (v string) { +func (p *ExptStatistics) GetTokenUsage() (v *TokenUsage) { if p == nil { return } - if !p.IsSetLogID() { - return ItemSystemInfo_LogID_DEFAULT + if !p.IsSetTokenUsage() { + return ExptStatistics_TokenUsage_DEFAULT } - return *p.LogID + return p.TokenUsage } -var ItemSystemInfo_Error_DEFAULT *RunError +var ExptStatistics_CreditCost_DEFAULT float64 -func (p *ItemSystemInfo) GetError() (v *RunError) { +func (p *ExptStatistics) GetCreditCost() (v float64) { if p == nil { return } - if !p.IsSetError() { - return ItemSystemInfo_Error_DEFAULT + if !p.IsSetCreditCost() { + return ExptStatistics_CreditCost_DEFAULT } - return p.Error + return *p.CreditCost } -func (p *ItemSystemInfo) SetRunState(val *ItemRunState) { - p.RunState = val + +var ExptStatistics_PendingTurnCnt_DEFAULT int32 + +func (p *ExptStatistics) GetPendingTurnCnt() (v int32) { + if p == nil { + return + } + if !p.IsSetPendingTurnCnt() { + return ExptStatistics_PendingTurnCnt_DEFAULT + } + return *p.PendingTurnCnt } -func (p *ItemSystemInfo) SetLogID(val *string) { - p.LogID = val + +var ExptStatistics_SuccessTurnCnt_DEFAULT int32 + +func (p *ExptStatistics) GetSuccessTurnCnt() (v int32) { + if p == nil { + return + } + if !p.IsSetSuccessTurnCnt() { + return ExptStatistics_SuccessTurnCnt_DEFAULT + } + return *p.SuccessTurnCnt } -func (p *ItemSystemInfo) SetError(val *RunError) { - p.Error = val + +var ExptStatistics_FailTurnCnt_DEFAULT int32 + +func (p *ExptStatistics) GetFailTurnCnt() (v int32) { + if p == nil { + return + } + if !p.IsSetFailTurnCnt() { + return ExptStatistics_FailTurnCnt_DEFAULT + } + return *p.FailTurnCnt } -var fieldIDToName_ItemSystemInfo = map[int16]string{ - 1: "run_state", - 2: "log_id", - 3: "error", +var ExptStatistics_TerminatedTurnCnt_DEFAULT int32 + +func (p *ExptStatistics) GetTerminatedTurnCnt() (v int32) { + if p == nil { + return + } + if !p.IsSetTerminatedTurnCnt() { + return ExptStatistics_TerminatedTurnCnt_DEFAULT + } + return *p.TerminatedTurnCnt } -func (p *ItemSystemInfo) IsSetRunState() bool { - return p.RunState != nil +var ExptStatistics_ProcessingTurnCnt_DEFAULT int32 + +func (p *ExptStatistics) GetProcessingTurnCnt() (v int32) { + if p == nil { + return + } + if !p.IsSetProcessingTurnCnt() { + return ExptStatistics_ProcessingTurnCnt_DEFAULT + } + return *p.ProcessingTurnCnt +} +func (p *ExptStatistics) SetEvaluatorAggregateResults(val []*EvaluatorAggregateResult_) { + p.EvaluatorAggregateResults = val +} +func (p *ExptStatistics) SetTokenUsage(val *TokenUsage) { + p.TokenUsage = val +} +func (p *ExptStatistics) SetCreditCost(val *float64) { + p.CreditCost = val +} +func (p *ExptStatistics) SetPendingTurnCnt(val *int32) { + p.PendingTurnCnt = val +} +func (p *ExptStatistics) SetSuccessTurnCnt(val *int32) { + p.SuccessTurnCnt = val +} +func (p *ExptStatistics) SetFailTurnCnt(val *int32) { + p.FailTurnCnt = val +} +func (p *ExptStatistics) SetTerminatedTurnCnt(val *int32) { + p.TerminatedTurnCnt = val +} +func (p *ExptStatistics) SetProcessingTurnCnt(val *int32) { + p.ProcessingTurnCnt = val } -func (p *ItemSystemInfo) IsSetLogID() bool { - return p.LogID != nil +var fieldIDToName_ExptStatistics = map[int16]string{ + 1: "evaluator_aggregate_results", + 2: "token_usage", + 3: "credit_cost", + 4: "pending_turn_cnt", + 5: "success_turn_cnt", + 6: "fail_turn_cnt", + 7: "terminated_turn_cnt", + 8: "processing_turn_cnt", } -func (p *ItemSystemInfo) IsSetError() bool { - return p.Error != nil +func (p *ExptStatistics) IsSetEvaluatorAggregateResults() bool { + return p.EvaluatorAggregateResults != nil } -func (p *ItemSystemInfo) Read(iprot thrift.TProtocol) (err error) { +func (p *ExptStatistics) IsSetTokenUsage() bool { + return p.TokenUsage != nil +} + +func (p *ExptStatistics) IsSetCreditCost() bool { + return p.CreditCost != nil +} + +func (p *ExptStatistics) IsSetPendingTurnCnt() bool { + return p.PendingTurnCnt != nil +} + +func (p *ExptStatistics) IsSetSuccessTurnCnt() bool { + return p.SuccessTurnCnt != nil +} + +func (p *ExptStatistics) IsSetFailTurnCnt() bool { + return p.FailTurnCnt != nil +} + +func (p *ExptStatistics) IsSetTerminatedTurnCnt() bool { + return p.TerminatedTurnCnt != nil +} + +func (p *ExptStatistics) IsSetProcessingTurnCnt() bool { + return p.ProcessingTurnCnt != nil +} + +func (p *ExptStatistics) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -5738,7 +6658,7 @@ func (p *ItemSystemInfo) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.LIST { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } @@ -5746,7 +6666,7 @@ func (p *ItemSystemInfo) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 2: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.STRUCT { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } @@ -5754,13 +6674,53 @@ func (p *ItemSystemInfo) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 3: - if fieldTypeId == thrift.STRUCT { + if fieldTypeId == thrift.DOUBLE { if err = p.ReadField3(iprot); err != nil { goto ReadFieldError } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 4: + if fieldTypeId == thrift.I32 { + if err = p.ReadField4(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 5: + if fieldTypeId == thrift.I32 { + if err = p.ReadField5(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 6: + if fieldTypeId == thrift.I32 { + if err = p.ReadField6(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 7: + if fieldTypeId == thrift.I32 { + if err = p.ReadField7(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 8: + if fieldTypeId == thrift.I32 { + if err = p.ReadField8(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 @@ -5780,7 +6740,7 @@ ReadStructBeginError: 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_ItemSystemInfo[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExptStatistics[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -5790,56 +6750,142 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ItemSystemInfo) ReadField1(iprot thrift.TProtocol) error { +func (p *ExptStatistics) ReadField1(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*EvaluatorAggregateResult_, 0, size) + values := make([]EvaluatorAggregateResult_, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() - var _field *ItemRunState - if v, err := iprot.ReadI32(); err != nil { + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { return err - } else { - tmp := ItemRunState(v) - _field = &tmp } - p.RunState = _field + p.EvaluatorAggregateResults = _field return nil } -func (p *ItemSystemInfo) ReadField2(iprot thrift.TProtocol) error { +func (p *ExptStatistics) ReadField2(iprot thrift.TProtocol) error { + _field := NewTokenUsage() + if err := _field.Read(iprot); err != nil { + return err + } + p.TokenUsage = _field + return nil +} +func (p *ExptStatistics) ReadField3(iprot thrift.TProtocol) error { - var _field *string - if v, err := iprot.ReadString(); err != nil { + var _field *float64 + if v, err := iprot.ReadDouble(); err != nil { return err } else { _field = &v } - p.LogID = _field + p.CreditCost = _field return nil } -func (p *ItemSystemInfo) ReadField3(iprot thrift.TProtocol) error { - _field := NewRunError() - if err := _field.Read(iprot); err != nil { +func (p *ExptStatistics) ReadField4(iprot thrift.TProtocol) error { + + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { return err + } else { + _field = &v } - p.Error = _field + p.PendingTurnCnt = _field return nil } +func (p *ExptStatistics) ReadField5(iprot thrift.TProtocol) error { -func (p *ItemSystemInfo) Write(oprot thrift.TProtocol) (err error) { - var fieldId int16 - if err = oprot.WriteStructBegin("ItemSystemInfo"); err != nil { - goto WriteStructBeginError + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + _field = &v } - 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 + p.SuccessTurnCnt = _field + return nil +} +func (p *ExptStatistics) ReadField6(iprot thrift.TProtocol) error { + + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + _field = &v + } + p.FailTurnCnt = _field + return nil +} +func (p *ExptStatistics) ReadField7(iprot thrift.TProtocol) error { + + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + _field = &v + } + p.TerminatedTurnCnt = _field + return nil +} +func (p *ExptStatistics) ReadField8(iprot thrift.TProtocol) error { + + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + _field = &v + } + p.ProcessingTurnCnt = _field + return nil +} + +func (p *ExptStatistics) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ExptStatistics"); 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 = p.writeField7(oprot); err != nil { + fieldId = 7 + goto WriteFieldError + } + if err = p.writeField8(oprot); err != nil { + fieldId = 8 + goto WriteFieldError + } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -5858,12 +6904,20 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ItemSystemInfo) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetRunState() { - if err = oprot.WriteFieldBegin("run_state", thrift.I32, 1); err != nil { +func (p *ExptStatistics) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetEvaluatorAggregateResults() { + if err = oprot.WriteFieldBegin("evaluator_aggregate_results", thrift.LIST, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI32(int32(*p.RunState)); err != nil { + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.EvaluatorAggregateResults)); err != nil { + return err + } + for _, v := range p.EvaluatorAggregateResults { + if err := v.Write(oprot); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -5876,12 +6930,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ItemSystemInfo) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetLogID() { - if err = oprot.WriteFieldBegin("log_id", thrift.STRING, 2); err != nil { +func (p *ExptStatistics) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetTokenUsage() { + if err = oprot.WriteFieldBegin("token_usage", thrift.STRUCT, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(*p.LogID); err != nil { + if err := p.TokenUsage.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -5894,12 +6948,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *ItemSystemInfo) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetError() { - if err = oprot.WriteFieldBegin("error", thrift.STRUCT, 3); err != nil { +func (p *ExptStatistics) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetCreditCost() { + if err = oprot.WriteFieldBegin("credit_cost", thrift.DOUBLE, 3); err != nil { goto WriteFieldBeginError } - if err := p.Error.Write(oprot); err != nil { + if err := oprot.WriteDouble(*p.CreditCost); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -5912,115 +6966,289 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } +func (p *ExptStatistics) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetPendingTurnCnt() { + if err = oprot.WriteFieldBegin("pending_turn_cnt", thrift.I32, 4); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.PendingTurnCnt); 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 *ExptStatistics) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetSuccessTurnCnt() { + if err = oprot.WriteFieldBegin("success_turn_cnt", thrift.I32, 5); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.SuccessTurnCnt); 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 *ExptStatistics) writeField6(oprot thrift.TProtocol) (err error) { + if p.IsSetFailTurnCnt() { + if err = oprot.WriteFieldBegin("fail_turn_cnt", thrift.I32, 6); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.FailTurnCnt); 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 *ExptStatistics) writeField7(oprot thrift.TProtocol) (err error) { + if p.IsSetTerminatedTurnCnt() { + if err = oprot.WriteFieldBegin("terminated_turn_cnt", thrift.I32, 7); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.TerminatedTurnCnt); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) +} +func (p *ExptStatistics) writeField8(oprot thrift.TProtocol) (err error) { + if p.IsSetProcessingTurnCnt() { + if err = oprot.WriteFieldBegin("processing_turn_cnt", thrift.I32, 8); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.ProcessingTurnCnt); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) +} -func (p *ItemSystemInfo) String() string { +func (p *ExptStatistics) String() string { if p == nil { return "" } - return fmt.Sprintf("ItemSystemInfo(%+v)", *p) + return fmt.Sprintf("ExptStatistics(%+v)", *p) } -func (p *ItemSystemInfo) DeepEqual(ano *ItemSystemInfo) bool { +func (p *ExptStatistics) DeepEqual(ano *ExptStatistics) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.RunState) { + if !p.Field1DeepEqual(ano.EvaluatorAggregateResults) { return false } - if !p.Field2DeepEqual(ano.LogID) { + if !p.Field2DeepEqual(ano.TokenUsage) { return false } - if !p.Field3DeepEqual(ano.Error) { + if !p.Field3DeepEqual(ano.CreditCost) { + return false + } + if !p.Field4DeepEqual(ano.PendingTurnCnt) { + return false + } + if !p.Field5DeepEqual(ano.SuccessTurnCnt) { + return false + } + if !p.Field6DeepEqual(ano.FailTurnCnt) { + return false + } + if !p.Field7DeepEqual(ano.TerminatedTurnCnt) { + return false + } + if !p.Field8DeepEqual(ano.ProcessingTurnCnt) { return false } return true } -func (p *ItemSystemInfo) Field1DeepEqual(src *ItemRunState) bool { +func (p *ExptStatistics) Field1DeepEqual(src []*EvaluatorAggregateResult_) bool { - if p.RunState == src { - return true - } else if p.RunState == nil || src == nil { + if len(p.EvaluatorAggregateResults) != len(src) { return false } - if *p.RunState != *src { + for i, v := range p.EvaluatorAggregateResults { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} +func (p *ExptStatistics) Field2DeepEqual(src *TokenUsage) bool { + + if !p.TokenUsage.DeepEqual(src) { return false } return true } -func (p *ItemSystemInfo) Field2DeepEqual(src *string) bool { +func (p *ExptStatistics) Field3DeepEqual(src *float64) bool { - if p.LogID == src { + if p.CreditCost == src { return true - } else if p.LogID == nil || src == nil { + } else if p.CreditCost == nil || src == nil { return false } - if strings.Compare(*p.LogID, *src) != 0 { + if *p.CreditCost != *src { return false } return true } -func (p *ItemSystemInfo) Field3DeepEqual(src *RunError) bool { +func (p *ExptStatistics) Field4DeepEqual(src *int32) bool { - if !p.Error.DeepEqual(src) { + if p.PendingTurnCnt == src { + return true + } else if p.PendingTurnCnt == nil || src == nil { + return false + } + if *p.PendingTurnCnt != *src { return false } return true } +func (p *ExptStatistics) Field5DeepEqual(src *int32) bool { -type ExptColumnEvaluator struct { - ExperimentID int64 `thrift:"experiment_id,1,required" frugal:"1,required,i64" json:"experiment_id" form:"experiment_id,required" query:"experiment_id,required"` - ColumnEvaluators []*ColumnEvaluator `thrift:"column_evaluators,2,optional" frugal:"2,optional,list" form:"column_evaluators" json:"column_evaluators,omitempty" query:"column_evaluators"` + if p.SuccessTurnCnt == src { + return true + } else if p.SuccessTurnCnt == nil || src == nil { + return false + } + if *p.SuccessTurnCnt != *src { + return false + } + return true } +func (p *ExptStatistics) Field6DeepEqual(src *int32) bool { -func NewExptColumnEvaluator() *ExptColumnEvaluator { - return &ExptColumnEvaluator{} + if p.FailTurnCnt == src { + return true + } else if p.FailTurnCnt == nil || src == nil { + return false + } + if *p.FailTurnCnt != *src { + return false + } + return true } +func (p *ExptStatistics) Field7DeepEqual(src *int32) bool { -func (p *ExptColumnEvaluator) InitDefault() { + if p.TerminatedTurnCnt == src { + return true + } else if p.TerminatedTurnCnt == nil || src == nil { + return false + } + if *p.TerminatedTurnCnt != *src { + return false + } + return true } +func (p *ExptStatistics) Field8DeepEqual(src *int32) bool { -func (p *ExptColumnEvaluator) GetExperimentID() (v int64) { - if p != nil { - return p.ExperimentID + if p.ProcessingTurnCnt == src { + return true + } else if p.ProcessingTurnCnt == nil || src == nil { + return false } - return + if *p.ProcessingTurnCnt != *src { + return false + } + return true } -var ExptColumnEvaluator_ColumnEvaluators_DEFAULT []*ColumnEvaluator +type EvaluatorFmtResult_ struct { + Name *string `thrift:"name,1,optional" frugal:"1,optional,string" form:"name" json:"name,omitempty" query:"name"` + Score *float64 `thrift:"score,2,optional" frugal:"2,optional,double" form:"score" json:"score,omitempty" query:"score"` +} -func (p *ExptColumnEvaluator) GetColumnEvaluators() (v []*ColumnEvaluator) { +func NewEvaluatorFmtResult_() *EvaluatorFmtResult_ { + return &EvaluatorFmtResult_{} +} + +func (p *EvaluatorFmtResult_) InitDefault() { +} + +var EvaluatorFmtResult__Name_DEFAULT string + +func (p *EvaluatorFmtResult_) GetName() (v string) { if p == nil { return } - if !p.IsSetColumnEvaluators() { - return ExptColumnEvaluator_ColumnEvaluators_DEFAULT + if !p.IsSetName() { + return EvaluatorFmtResult__Name_DEFAULT } - return p.ColumnEvaluators + return *p.Name } -func (p *ExptColumnEvaluator) SetExperimentID(val int64) { - p.ExperimentID = val + +var EvaluatorFmtResult__Score_DEFAULT float64 + +func (p *EvaluatorFmtResult_) GetScore() (v float64) { + if p == nil { + return + } + if !p.IsSetScore() { + return EvaluatorFmtResult__Score_DEFAULT + } + return *p.Score } -func (p *ExptColumnEvaluator) SetColumnEvaluators(val []*ColumnEvaluator) { - p.ColumnEvaluators = val +func (p *EvaluatorFmtResult_) SetName(val *string) { + p.Name = val +} +func (p *EvaluatorFmtResult_) SetScore(val *float64) { + p.Score = val } -var fieldIDToName_ExptColumnEvaluator = map[int16]string{ - 1: "experiment_id", - 2: "column_evaluators", +var fieldIDToName_EvaluatorFmtResult_ = map[int16]string{ + 1: "name", + 2: "score", } -func (p *ExptColumnEvaluator) IsSetColumnEvaluators() bool { - return p.ColumnEvaluators != nil +func (p *EvaluatorFmtResult_) IsSetName() bool { + return p.Name != nil } -func (p *ExptColumnEvaluator) Read(iprot thrift.TProtocol) (err error) { +func (p *EvaluatorFmtResult_) IsSetScore() bool { + return p.Score != nil +} + +func (p *EvaluatorFmtResult_) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetExperimentID bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -6037,16 +7265,15 @@ func (p *ExptColumnEvaluator) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.STRING { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } - issetExperimentID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } case 2: - if fieldTypeId == thrift.LIST { + if fieldTypeId == thrift.DOUBLE { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } @@ -6066,17 +7293,13 @@ func (p *ExptColumnEvaluator) Read(iprot thrift.TProtocol) (err error) { goto ReadStructEndError } - if !issetExperimentID { - 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_ExptColumnEvaluator[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_EvaluatorFmtResult_[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -6084,48 +7307,34 @@ 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_ExptColumnEvaluator[fieldId])) } -func (p *ExptColumnEvaluator) ReadField1(iprot thrift.TProtocol) error { +func (p *EvaluatorFmtResult_) ReadField1(iprot thrift.TProtocol) error { - var _field int64 - if v, err := iprot.ReadI64(); err != nil { + var _field *string + if v, err := iprot.ReadString(); err != nil { return err } else { - _field = v + _field = &v } - p.ExperimentID = _field + p.Name = _field return nil } -func (p *ExptColumnEvaluator) ReadField2(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*ColumnEvaluator, 0, size) - values := make([]ColumnEvaluator, size) - for i := 0; i < size; i++ { - _elem := &values[i] - _elem.InitDefault() - - if err := _elem.Read(iprot); err != nil { - return err - } +func (p *EvaluatorFmtResult_) ReadField2(iprot thrift.TProtocol) error { - _field = append(_field, _elem) - } - if err := iprot.ReadListEnd(); err != nil { + var _field *float64 + if v, err := iprot.ReadDouble(); err != nil { return err + } else { + _field = &v } - p.ColumnEvaluators = _field + p.Score = _field return nil } -func (p *ExptColumnEvaluator) Write(oprot thrift.TProtocol) (err error) { +func (p *EvaluatorFmtResult_) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ExptColumnEvaluator"); err != nil { + if err = oprot.WriteStructBegin("EvaluatorFmtResult"); err != nil { goto WriteStructBeginError } if p != nil { @@ -6155,15 +7364,17 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExptColumnEvaluator) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("experiment_id", thrift.I64, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.ExperimentID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError +func (p *EvaluatorFmtResult_) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetName() { + if err = oprot.WriteFieldBegin("name", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Name); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } return nil WriteFieldBeginError: @@ -6171,20 +7382,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExptColumnEvaluator) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetColumnEvaluators() { - if err = oprot.WriteFieldBegin("column_evaluators", thrift.LIST, 2); err != nil { +func (p *EvaluatorFmtResult_) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetScore() { + if err = oprot.WriteFieldBegin("score", thrift.DOUBLE, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.ColumnEvaluators)); err != nil { - return err - } - for _, v := range p.ColumnEvaluators { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { + if err := oprot.WriteDouble(*p.Score); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -6198,189 +7401,91 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *ExptColumnEvaluator) String() string { +func (p *EvaluatorFmtResult_) String() string { if p == nil { return "" } - return fmt.Sprintf("ExptColumnEvaluator(%+v)", *p) + return fmt.Sprintf("EvaluatorFmtResult_(%+v)", *p) } -func (p *ExptColumnEvaluator) DeepEqual(ano *ExptColumnEvaluator) bool { +func (p *EvaluatorFmtResult_) DeepEqual(ano *EvaluatorFmtResult_) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.ExperimentID) { + if !p.Field1DeepEqual(ano.Name) { return false } - if !p.Field2DeepEqual(ano.ColumnEvaluators) { + if !p.Field2DeepEqual(ano.Score) { return false } return true } -func (p *ExptColumnEvaluator) Field1DeepEqual(src int64) bool { +func (p *EvaluatorFmtResult_) Field1DeepEqual(src *string) bool { - if p.ExperimentID != src { + if p.Name == src { + return true + } else if p.Name == nil || src == nil { + return false + } + if strings.Compare(*p.Name, *src) != 0 { return false } return true } -func (p *ExptColumnEvaluator) Field2DeepEqual(src []*ColumnEvaluator) bool { +func (p *EvaluatorFmtResult_) Field2DeepEqual(src *float64) bool { - if len(p.ColumnEvaluators) != len(src) { + if p.Score == src { + return true + } else if p.Score == nil || src == nil { return false } - for i, v := range p.ColumnEvaluators { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } + if *p.Score != *src { + return false } return true } -type ColumnEvaluator struct { - EvaluatorVersionID int64 `thrift:"evaluator_version_id,1,required" frugal:"1,required,i64" json:"evaluator_version_id" form:"evaluator_version_id,required" query:"evaluator_version_id,required"` - EvaluatorID int64 `thrift:"evaluator_id,2,required" frugal:"2,required,i64" json:"evaluator_id" form:"evaluator_id,required" query:"evaluator_id,required"` - EvaluatorType evaluator.EvaluatorType `thrift:"evaluator_type,3,required" frugal:"3,required,EvaluatorType" form:"evaluator_type,required" json:"evaluator_type,required" query:"evaluator_type,required"` - Name *string `thrift:"name,4,optional" frugal:"4,optional,string" form:"name" json:"name,omitempty" query:"name"` - Version *string `thrift:"version,5,optional" frugal:"5,optional,string" form:"version" json:"version,omitempty" query:"version"` - Description *string `thrift:"description,6,optional" frugal:"6,optional,string" form:"description" json:"description,omitempty" query:"description"` - Builtin *bool `thrift:"builtin,7,optional" frugal:"7,optional,bool" form:"builtin" json:"builtin,omitempty" query:"builtin"` +type TargetFieldMapping struct { + FromEvalSet []*FieldMapping `thrift:"from_eval_set,1,optional" frugal:"1,optional,list" form:"from_eval_set" json:"from_eval_set,omitempty" query:"from_eval_set"` } -func NewColumnEvaluator() *ColumnEvaluator { - return &ColumnEvaluator{} +func NewTargetFieldMapping() *TargetFieldMapping { + return &TargetFieldMapping{} } -func (p *ColumnEvaluator) InitDefault() { +func (p *TargetFieldMapping) InitDefault() { } -func (p *ColumnEvaluator) GetEvaluatorVersionID() (v int64) { - if p != nil { - return p.EvaluatorVersionID - } - return -} +var TargetFieldMapping_FromEvalSet_DEFAULT []*FieldMapping -func (p *ColumnEvaluator) GetEvaluatorID() (v int64) { - if p != nil { - return p.EvaluatorID +func (p *TargetFieldMapping) GetFromEvalSet() (v []*FieldMapping) { + if p == nil { + return } - return -} - -func (p *ColumnEvaluator) GetEvaluatorType() (v evaluator.EvaluatorType) { - if p != nil { - return p.EvaluatorType - } - return -} - -var ColumnEvaluator_Name_DEFAULT string - -func (p *ColumnEvaluator) GetName() (v string) { - if p == nil { - return - } - if !p.IsSetName() { - return ColumnEvaluator_Name_DEFAULT - } - return *p.Name -} - -var ColumnEvaluator_Version_DEFAULT string - -func (p *ColumnEvaluator) GetVersion() (v string) { - if p == nil { - return - } - if !p.IsSetVersion() { - return ColumnEvaluator_Version_DEFAULT - } - return *p.Version -} - -var ColumnEvaluator_Description_DEFAULT string - -func (p *ColumnEvaluator) GetDescription() (v string) { - if p == nil { - return - } - if !p.IsSetDescription() { - return ColumnEvaluator_Description_DEFAULT - } - return *p.Description -} - -var ColumnEvaluator_Builtin_DEFAULT bool - -func (p *ColumnEvaluator) GetBuiltin() (v bool) { - if p == nil { - return - } - if !p.IsSetBuiltin() { - return ColumnEvaluator_Builtin_DEFAULT + if !p.IsSetFromEvalSet() { + return TargetFieldMapping_FromEvalSet_DEFAULT } - return *p.Builtin -} -func (p *ColumnEvaluator) SetEvaluatorVersionID(val int64) { - p.EvaluatorVersionID = val -} -func (p *ColumnEvaluator) SetEvaluatorID(val int64) { - p.EvaluatorID = val -} -func (p *ColumnEvaluator) SetEvaluatorType(val evaluator.EvaluatorType) { - p.EvaluatorType = val -} -func (p *ColumnEvaluator) SetName(val *string) { - p.Name = val -} -func (p *ColumnEvaluator) SetVersion(val *string) { - p.Version = val -} -func (p *ColumnEvaluator) SetDescription(val *string) { - p.Description = val -} -func (p *ColumnEvaluator) SetBuiltin(val *bool) { - p.Builtin = val -} - -var fieldIDToName_ColumnEvaluator = map[int16]string{ - 1: "evaluator_version_id", - 2: "evaluator_id", - 3: "evaluator_type", - 4: "name", - 5: "version", - 6: "description", - 7: "builtin", -} - -func (p *ColumnEvaluator) IsSetName() bool { - return p.Name != nil + return p.FromEvalSet } - -func (p *ColumnEvaluator) IsSetVersion() bool { - return p.Version != nil +func (p *TargetFieldMapping) SetFromEvalSet(val []*FieldMapping) { + p.FromEvalSet = val } -func (p *ColumnEvaluator) IsSetDescription() bool { - return p.Description != nil +var fieldIDToName_TargetFieldMapping = map[int16]string{ + 1: "from_eval_set", } -func (p *ColumnEvaluator) IsSetBuiltin() bool { - return p.Builtin != nil +func (p *TargetFieldMapping) IsSetFromEvalSet() bool { + return p.FromEvalSet != nil } -func (p *ColumnEvaluator) Read(iprot thrift.TProtocol) (err error) { +func (p *TargetFieldMapping) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetEvaluatorVersionID bool = false - var issetEvaluatorID bool = false - var issetEvaluatorType bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -6397,61 +7502,10 @@ func (p *ColumnEvaluator) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.LIST { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } - issetEvaluatorVersionID = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 2: - if fieldTypeId == thrift.I64 { - if err = p.ReadField2(iprot); err != nil { - goto ReadFieldError - } - issetEvaluatorID = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.I32 { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - issetEvaluatorType = true - } 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.STRING { - if err = p.ReadField6(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 7: - if fieldTypeId == thrift.BOOL { - if err = p.ReadField7(iprot); err != nil { - goto ReadFieldError - } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -6468,27 +7522,13 @@ func (p *ColumnEvaluator) Read(iprot thrift.TProtocol) (err error) { goto ReadStructEndError } - if !issetEvaluatorVersionID { - fieldId = 1 - goto RequiredFieldNotSetError - } - - if !issetEvaluatorID { - fieldId = 2 - goto RequiredFieldNotSetError - } - - if !issetEvaluatorType { - 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_ColumnEvaluator[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_TargetFieldMapping[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -6496,60 +7536,2051 @@ 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_ColumnEvaluator[fieldId])) } -func (p *ColumnEvaluator) ReadField1(iprot thrift.TProtocol) error { - - var _field int64 - if v, err := iprot.ReadI64(); err != nil { +func (p *TargetFieldMapping) ReadField1(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { return err - } else { - _field = v } - p.EvaluatorVersionID = _field - return nil -} -func (p *ColumnEvaluator) ReadField2(iprot thrift.TProtocol) error { + _field := make([]*FieldMapping, 0, size) + values := make([]FieldMapping, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() - var _field int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = v - } - p.EvaluatorID = _field - return nil -} -func (p *ColumnEvaluator) ReadField3(iprot thrift.TProtocol) error { + if err := _elem.Read(iprot); err != nil { + return err + } - var _field evaluator.EvaluatorType - if v, err := iprot.ReadI32(); err != nil { + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { return err - } else { - _field = evaluator.EvaluatorType(v) } - p.EvaluatorType = _field + p.FromEvalSet = _field return nil } -func (p *ColumnEvaluator) ReadField4(iprot thrift.TProtocol) error { - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = &v +func (p *TargetFieldMapping) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("TargetFieldMapping"); 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 } - p.Name = _field 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 *ColumnEvaluator) ReadField5(iprot thrift.TProtocol) error { - var _field *string - if v, err := iprot.ReadString(); err != nil { - return err - } else { +func (p *TargetFieldMapping) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetFromEvalSet() { + if err = oprot.WriteFieldBegin("from_eval_set", thrift.LIST, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.FromEvalSet)); err != nil { + return err + } + for _, v := range p.FromEvalSet { + 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 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} + +func (p *TargetFieldMapping) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("TargetFieldMapping(%+v)", *p) + +} + +func (p *TargetFieldMapping) DeepEqual(ano *TargetFieldMapping) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.FromEvalSet) { + return false + } + return true +} + +func (p *TargetFieldMapping) Field1DeepEqual(src []*FieldMapping) bool { + + if len(p.FromEvalSet) != len(src) { + return false + } + for i, v := range p.FromEvalSet { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} + +type EvaluatorFieldMapping struct { + EvaluatorVersionID int64 `thrift:"evaluator_version_id,1,required" frugal:"1,required,i64" json:"evaluator_version_id" form:"evaluator_version_id,required" query:"evaluator_version_id,required"` + FromEvalSet []*FieldMapping `thrift:"from_eval_set,2,optional" frugal:"2,optional,list" form:"from_eval_set" json:"from_eval_set,omitempty" query:"from_eval_set"` + FromTarget []*FieldMapping `thrift:"from_target,3,optional" frugal:"3,optional,list" form:"from_target" json:"from_target,omitempty" query:"from_target"` + EvaluatorIDVersionItem *evaluator.EvaluatorIDVersionItem `thrift:"evaluator_id_version_item,4,optional" frugal:"4,optional,evaluator.EvaluatorIDVersionItem" form:"evaluator_id_version_item" json:"evaluator_id_version_item,omitempty" query:"evaluator_id_version_item"` +} + +func NewEvaluatorFieldMapping() *EvaluatorFieldMapping { + return &EvaluatorFieldMapping{} +} + +func (p *EvaluatorFieldMapping) InitDefault() { +} + +func (p *EvaluatorFieldMapping) GetEvaluatorVersionID() (v int64) { + if p != nil { + return p.EvaluatorVersionID + } + return +} + +var EvaluatorFieldMapping_FromEvalSet_DEFAULT []*FieldMapping + +func (p *EvaluatorFieldMapping) GetFromEvalSet() (v []*FieldMapping) { + if p == nil { + return + } + if !p.IsSetFromEvalSet() { + return EvaluatorFieldMapping_FromEvalSet_DEFAULT + } + return p.FromEvalSet +} + +var EvaluatorFieldMapping_FromTarget_DEFAULT []*FieldMapping + +func (p *EvaluatorFieldMapping) GetFromTarget() (v []*FieldMapping) { + if p == nil { + return + } + if !p.IsSetFromTarget() { + return EvaluatorFieldMapping_FromTarget_DEFAULT + } + return p.FromTarget +} + +var EvaluatorFieldMapping_EvaluatorIDVersionItem_DEFAULT *evaluator.EvaluatorIDVersionItem + +func (p *EvaluatorFieldMapping) GetEvaluatorIDVersionItem() (v *evaluator.EvaluatorIDVersionItem) { + if p == nil { + return + } + if !p.IsSetEvaluatorIDVersionItem() { + return EvaluatorFieldMapping_EvaluatorIDVersionItem_DEFAULT + } + return p.EvaluatorIDVersionItem +} +func (p *EvaluatorFieldMapping) SetEvaluatorVersionID(val int64) { + p.EvaluatorVersionID = val +} +func (p *EvaluatorFieldMapping) SetFromEvalSet(val []*FieldMapping) { + p.FromEvalSet = val +} +func (p *EvaluatorFieldMapping) SetFromTarget(val []*FieldMapping) { + p.FromTarget = val +} +func (p *EvaluatorFieldMapping) SetEvaluatorIDVersionItem(val *evaluator.EvaluatorIDVersionItem) { + p.EvaluatorIDVersionItem = val +} + +var fieldIDToName_EvaluatorFieldMapping = map[int16]string{ + 1: "evaluator_version_id", + 2: "from_eval_set", + 3: "from_target", + 4: "evaluator_id_version_item", +} + +func (p *EvaluatorFieldMapping) IsSetFromEvalSet() bool { + return p.FromEvalSet != nil +} + +func (p *EvaluatorFieldMapping) IsSetFromTarget() bool { + return p.FromTarget != nil +} + +func (p *EvaluatorFieldMapping) IsSetEvaluatorIDVersionItem() bool { + return p.EvaluatorIDVersionItem != nil +} + +func (p *EvaluatorFieldMapping) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + var issetEvaluatorVersionID 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 + } + issetEvaluatorVersionID = 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 + } + } 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.STRUCT { + if err = p.ReadField4(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 !issetEvaluatorVersionID { + 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_EvaluatorFieldMapping[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_EvaluatorFieldMapping[fieldId])) +} + +func (p *EvaluatorFieldMapping) ReadField1(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.EvaluatorVersionID = _field + return nil +} +func (p *EvaluatorFieldMapping) ReadField2(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*FieldMapping, 0, size) + values := make([]FieldMapping, 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.FromEvalSet = _field + return nil +} +func (p *EvaluatorFieldMapping) ReadField3(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*FieldMapping, 0, size) + values := make([]FieldMapping, 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.FromTarget = _field + return nil +} +func (p *EvaluatorFieldMapping) ReadField4(iprot thrift.TProtocol) error { + _field := evaluator.NewEvaluatorIDVersionItem() + if err := _field.Read(iprot); err != nil { + return err + } + p.EvaluatorIDVersionItem = _field + return nil +} + +func (p *EvaluatorFieldMapping) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("EvaluatorFieldMapping"); 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 = 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 *EvaluatorFieldMapping) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("evaluator_version_id", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.EvaluatorVersionID); 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 *EvaluatorFieldMapping) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetFromEvalSet() { + if err = oprot.WriteFieldBegin("from_eval_set", thrift.LIST, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.FromEvalSet)); err != nil { + return err + } + for _, v := range p.FromEvalSet { + 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 *EvaluatorFieldMapping) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetFromTarget() { + if err = oprot.WriteFieldBegin("from_target", thrift.LIST, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.FromTarget)); err != nil { + return err + } + for _, v := range p.FromTarget { + 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 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} +func (p *EvaluatorFieldMapping) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetEvaluatorIDVersionItem() { + if err = oprot.WriteFieldBegin("evaluator_id_version_item", thrift.STRUCT, 4); err != nil { + goto WriteFieldBeginError + } + if err := p.EvaluatorIDVersionItem.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 *EvaluatorFieldMapping) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("EvaluatorFieldMapping(%+v)", *p) + +} + +func (p *EvaluatorFieldMapping) DeepEqual(ano *EvaluatorFieldMapping) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.EvaluatorVersionID) { + return false + } + if !p.Field2DeepEqual(ano.FromEvalSet) { + return false + } + if !p.Field3DeepEqual(ano.FromTarget) { + return false + } + if !p.Field4DeepEqual(ano.EvaluatorIDVersionItem) { + return false + } + return true +} + +func (p *EvaluatorFieldMapping) Field1DeepEqual(src int64) bool { + + if p.EvaluatorVersionID != src { + return false + } + return true +} +func (p *EvaluatorFieldMapping) Field2DeepEqual(src []*FieldMapping) bool { + + if len(p.FromEvalSet) != len(src) { + return false + } + for i, v := range p.FromEvalSet { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} +func (p *EvaluatorFieldMapping) Field3DeepEqual(src []*FieldMapping) bool { + + if len(p.FromTarget) != len(src) { + return false + } + for i, v := range p.FromTarget { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} +func (p *EvaluatorFieldMapping) Field4DeepEqual(src *evaluator.EvaluatorIDVersionItem) bool { + + if !p.EvaluatorIDVersionItem.DeepEqual(src) { + return false + } + return true +} + +type FieldMapping struct { + FieldName *string `thrift:"field_name,1,optional" frugal:"1,optional,string" form:"field_name" json:"field_name,omitempty" query:"field_name"` + ConstValue *string `thrift:"const_value,2,optional" frugal:"2,optional,string" form:"const_value" json:"const_value,omitempty" query:"const_value"` + FromFieldName *string `thrift:"from_field_name,3,optional" frugal:"3,optional,string" form:"from_field_name" json:"from_field_name,omitempty" query:"from_field_name"` +} + +func NewFieldMapping() *FieldMapping { + return &FieldMapping{} +} + +func (p *FieldMapping) InitDefault() { +} + +var FieldMapping_FieldName_DEFAULT string + +func (p *FieldMapping) GetFieldName() (v string) { + if p == nil { + return + } + if !p.IsSetFieldName() { + return FieldMapping_FieldName_DEFAULT + } + return *p.FieldName +} + +var FieldMapping_ConstValue_DEFAULT string + +func (p *FieldMapping) GetConstValue() (v string) { + if p == nil { + return + } + if !p.IsSetConstValue() { + return FieldMapping_ConstValue_DEFAULT + } + return *p.ConstValue +} + +var FieldMapping_FromFieldName_DEFAULT string + +func (p *FieldMapping) GetFromFieldName() (v string) { + if p == nil { + return + } + if !p.IsSetFromFieldName() { + return FieldMapping_FromFieldName_DEFAULT + } + return *p.FromFieldName +} +func (p *FieldMapping) SetFieldName(val *string) { + p.FieldName = val +} +func (p *FieldMapping) SetConstValue(val *string) { + p.ConstValue = val +} +func (p *FieldMapping) SetFromFieldName(val *string) { + p.FromFieldName = val +} + +var fieldIDToName_FieldMapping = map[int16]string{ + 1: "field_name", + 2: "const_value", + 3: "from_field_name", +} + +func (p *FieldMapping) IsSetFieldName() bool { + return p.FieldName != nil +} + +func (p *FieldMapping) IsSetConstValue() bool { + return p.ConstValue != nil +} + +func (p *FieldMapping) IsSetFromFieldName() bool { + return p.FromFieldName != nil +} + +func (p *FieldMapping) 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.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.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } 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 + } + } 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_FieldMapping[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 *FieldMapping) 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 *FieldMapping) ReadField2(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.ConstValue = _field + return nil +} +func (p *FieldMapping) ReadField3(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.FromFieldName = _field + return nil +} + +func (p *FieldMapping) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("FieldMapping"); 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 = 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 *FieldMapping) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetFieldName() { + 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 *FieldMapping) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetConstValue() { + if err = oprot.WriteFieldBegin("const_value", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.ConstValue); 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 *FieldMapping) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetFromFieldName() { + if err = oprot.WriteFieldBegin("from_field_name", thrift.STRING, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.FromFieldName); 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 *FieldMapping) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("FieldMapping(%+v)", *p) + +} + +func (p *FieldMapping) DeepEqual(ano *FieldMapping) 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.ConstValue) { + return false + } + if !p.Field3DeepEqual(ano.FromFieldName) { + return false + } + return true +} + +func (p *FieldMapping) Field1DeepEqual(src *string) bool { + + if p.FieldName == src { + return true + } else if p.FieldName == nil || src == nil { + return false + } + if strings.Compare(*p.FieldName, *src) != 0 { + return false + } + return true +} +func (p *FieldMapping) Field2DeepEqual(src *string) bool { + + if p.ConstValue == src { + return true + } else if p.ConstValue == nil || src == nil { + return false + } + if strings.Compare(*p.ConstValue, *src) != 0 { + return false + } + return true +} +func (p *FieldMapping) Field3DeepEqual(src *string) bool { + + if p.FromFieldName == src { + return true + } else if p.FromFieldName == nil || src == nil { + return false + } + if strings.Compare(*p.FromFieldName, *src) != 0 { + return false + } + return true +} + +type ExptFilterOption struct { + FuzzyName *string `thrift:"fuzzy_name,1,optional" frugal:"1,optional,string" form:"fuzzy_name" json:"fuzzy_name,omitempty" query:"fuzzy_name"` + Filters *Filters `thrift:"filters,10,optional" frugal:"10,optional,Filters" form:"filters" json:"filters,omitempty" query:"filters"` +} + +func NewExptFilterOption() *ExptFilterOption { + return &ExptFilterOption{} +} + +func (p *ExptFilterOption) InitDefault() { +} + +var ExptFilterOption_FuzzyName_DEFAULT string + +func (p *ExptFilterOption) GetFuzzyName() (v string) { + if p == nil { + return + } + if !p.IsSetFuzzyName() { + return ExptFilterOption_FuzzyName_DEFAULT + } + return *p.FuzzyName +} + +var ExptFilterOption_Filters_DEFAULT *Filters + +func (p *ExptFilterOption) GetFilters() (v *Filters) { + if p == nil { + return + } + if !p.IsSetFilters() { + return ExptFilterOption_Filters_DEFAULT + } + return p.Filters +} +func (p *ExptFilterOption) SetFuzzyName(val *string) { + p.FuzzyName = val +} +func (p *ExptFilterOption) SetFilters(val *Filters) { + p.Filters = val +} + +var fieldIDToName_ExptFilterOption = map[int16]string{ + 1: "fuzzy_name", + 10: "filters", +} + +func (p *ExptFilterOption) IsSetFuzzyName() bool { + return p.FuzzyName != nil +} + +func (p *ExptFilterOption) IsSetFilters() bool { + return p.Filters != nil +} + +func (p *ExptFilterOption) 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.STRING { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 10: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField10(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_ExptFilterOption[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 *ExptFilterOption) ReadField1(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.FuzzyName = _field + return nil +} +func (p *ExptFilterOption) ReadField10(iprot thrift.TProtocol) error { + _field := NewFilters() + if err := _field.Read(iprot); err != nil { + return err + } + p.Filters = _field + return nil +} + +func (p *ExptFilterOption) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ExptFilterOption"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField10(oprot); err != nil { + fieldId = 10 + 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 *ExptFilterOption) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetFuzzyName() { + if err = oprot.WriteFieldBegin("fuzzy_name", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.FuzzyName); 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 *ExptFilterOption) writeField10(oprot thrift.TProtocol) (err error) { + if p.IsSetFilters() { + if err = oprot.WriteFieldBegin("filters", thrift.STRUCT, 10); err != nil { + goto WriteFieldBeginError + } + if err := p.Filters.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 10 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 10 end error: ", p), err) +} + +func (p *ExptFilterOption) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ExptFilterOption(%+v)", *p) + +} + +func (p *ExptFilterOption) DeepEqual(ano *ExptFilterOption) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.FuzzyName) { + return false + } + if !p.Field10DeepEqual(ano.Filters) { + return false + } + return true +} + +func (p *ExptFilterOption) Field1DeepEqual(src *string) bool { + + if p.FuzzyName == src { + return true + } else if p.FuzzyName == nil || src == nil { + return false + } + if strings.Compare(*p.FuzzyName, *src) != 0 { + return false + } + return true +} +func (p *ExptFilterOption) Field10DeepEqual(src *Filters) bool { + + if !p.Filters.DeepEqual(src) { + return false + } + return true +} + +type ItemSystemInfo struct { + RunState *ItemRunState `thrift:"run_state,1,optional" frugal:"1,optional,ItemRunState" form:"run_state" json:"run_state,omitempty" query:"run_state"` + LogID *string `thrift:"log_id,2,optional" frugal:"2,optional,string" form:"log_id" json:"log_id,omitempty" query:"log_id"` + Error *RunError `thrift:"error,3,optional" frugal:"3,optional,RunError" form:"error" json:"error,omitempty" query:"error"` +} + +func NewItemSystemInfo() *ItemSystemInfo { + return &ItemSystemInfo{} +} + +func (p *ItemSystemInfo) InitDefault() { +} + +var ItemSystemInfo_RunState_DEFAULT ItemRunState + +func (p *ItemSystemInfo) GetRunState() (v ItemRunState) { + if p == nil { + return + } + if !p.IsSetRunState() { + return ItemSystemInfo_RunState_DEFAULT + } + return *p.RunState +} + +var ItemSystemInfo_LogID_DEFAULT string + +func (p *ItemSystemInfo) GetLogID() (v string) { + if p == nil { + return + } + if !p.IsSetLogID() { + return ItemSystemInfo_LogID_DEFAULT + } + return *p.LogID +} + +var ItemSystemInfo_Error_DEFAULT *RunError + +func (p *ItemSystemInfo) GetError() (v *RunError) { + if p == nil { + return + } + if !p.IsSetError() { + return ItemSystemInfo_Error_DEFAULT + } + return p.Error +} +func (p *ItemSystemInfo) SetRunState(val *ItemRunState) { + p.RunState = val +} +func (p *ItemSystemInfo) SetLogID(val *string) { + p.LogID = val +} +func (p *ItemSystemInfo) SetError(val *RunError) { + p.Error = val +} + +var fieldIDToName_ItemSystemInfo = map[int16]string{ + 1: "run_state", + 2: "log_id", + 3: "error", +} + +func (p *ItemSystemInfo) IsSetRunState() bool { + return p.RunState != nil +} + +func (p *ItemSystemInfo) IsSetLogID() bool { + return p.LogID != nil +} + +func (p *ItemSystemInfo) IsSetError() bool { + return p.Error != nil +} + +func (p *ItemSystemInfo) 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.I32 { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } 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 + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField3(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_ItemSystemInfo[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 *ItemSystemInfo) ReadField1(iprot thrift.TProtocol) error { + + var _field *ItemRunState + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + tmp := ItemRunState(v) + _field = &tmp + } + p.RunState = _field + return nil +} +func (p *ItemSystemInfo) ReadField2(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.LogID = _field + return nil +} +func (p *ItemSystemInfo) ReadField3(iprot thrift.TProtocol) error { + _field := NewRunError() + if err := _field.Read(iprot); err != nil { + return err + } + p.Error = _field + return nil +} + +func (p *ItemSystemInfo) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ItemSystemInfo"); 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 = 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 *ItemSystemInfo) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetRunState() { + if err = oprot.WriteFieldBegin("run_state", thrift.I32, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(int32(*p.RunState)); 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 *ItemSystemInfo) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetLogID() { + if err = oprot.WriteFieldBegin("log_id", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.LogID); 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 *ItemSystemInfo) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetError() { + if err = oprot.WriteFieldBegin("error", thrift.STRUCT, 3); err != nil { + goto WriteFieldBeginError + } + if err := p.Error.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 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} + +func (p *ItemSystemInfo) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ItemSystemInfo(%+v)", *p) + +} + +func (p *ItemSystemInfo) DeepEqual(ano *ItemSystemInfo) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.RunState) { + return false + } + if !p.Field2DeepEqual(ano.LogID) { + return false + } + if !p.Field3DeepEqual(ano.Error) { + return false + } + return true +} + +func (p *ItemSystemInfo) Field1DeepEqual(src *ItemRunState) bool { + + if p.RunState == src { + return true + } else if p.RunState == nil || src == nil { + return false + } + if *p.RunState != *src { + return false + } + return true +} +func (p *ItemSystemInfo) Field2DeepEqual(src *string) bool { + + if p.LogID == src { + return true + } else if p.LogID == nil || src == nil { + return false + } + if strings.Compare(*p.LogID, *src) != 0 { + return false + } + return true +} +func (p *ItemSystemInfo) Field3DeepEqual(src *RunError) bool { + + if !p.Error.DeepEqual(src) { + return false + } + return true +} + +type ExptColumnEvaluator struct { + ExperimentID int64 `thrift:"experiment_id,1,required" frugal:"1,required,i64" json:"experiment_id" form:"experiment_id,required" query:"experiment_id,required"` + ColumnEvaluators []*ColumnEvaluator `thrift:"column_evaluators,2,optional" frugal:"2,optional,list" form:"column_evaluators" json:"column_evaluators,omitempty" query:"column_evaluators"` +} + +func NewExptColumnEvaluator() *ExptColumnEvaluator { + return &ExptColumnEvaluator{} +} + +func (p *ExptColumnEvaluator) InitDefault() { +} + +func (p *ExptColumnEvaluator) GetExperimentID() (v int64) { + if p != nil { + return p.ExperimentID + } + return +} + +var ExptColumnEvaluator_ColumnEvaluators_DEFAULT []*ColumnEvaluator + +func (p *ExptColumnEvaluator) GetColumnEvaluators() (v []*ColumnEvaluator) { + if p == nil { + return + } + if !p.IsSetColumnEvaluators() { + return ExptColumnEvaluator_ColumnEvaluators_DEFAULT + } + return p.ColumnEvaluators +} +func (p *ExptColumnEvaluator) SetExperimentID(val int64) { + p.ExperimentID = val +} +func (p *ExptColumnEvaluator) SetColumnEvaluators(val []*ColumnEvaluator) { + p.ColumnEvaluators = val +} + +var fieldIDToName_ExptColumnEvaluator = map[int16]string{ + 1: "experiment_id", + 2: "column_evaluators", +} + +func (p *ExptColumnEvaluator) IsSetColumnEvaluators() bool { + return p.ColumnEvaluators != nil +} + +func (p *ExptColumnEvaluator) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + var issetExperimentID 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 + } + issetExperimentID = 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 + } + } 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 !issetExperimentID { + 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_ExptColumnEvaluator[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_ExptColumnEvaluator[fieldId])) +} + +func (p *ExptColumnEvaluator) ReadField1(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.ExperimentID = _field + return nil +} +func (p *ExptColumnEvaluator) ReadField2(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*ColumnEvaluator, 0, size) + values := make([]ColumnEvaluator, 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.ColumnEvaluators = _field + return nil +} + +func (p *ExptColumnEvaluator) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ExptColumnEvaluator"); 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 *ExptColumnEvaluator) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("experiment_id", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.ExperimentID); 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 *ExptColumnEvaluator) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetColumnEvaluators() { + if err = oprot.WriteFieldBegin("column_evaluators", thrift.LIST, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.ColumnEvaluators)); err != nil { + return err + } + for _, v := range p.ColumnEvaluators { + 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 *ExptColumnEvaluator) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ExptColumnEvaluator(%+v)", *p) + +} + +func (p *ExptColumnEvaluator) DeepEqual(ano *ExptColumnEvaluator) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.ExperimentID) { + return false + } + if !p.Field2DeepEqual(ano.ColumnEvaluators) { + return false + } + return true +} + +func (p *ExptColumnEvaluator) Field1DeepEqual(src int64) bool { + + if p.ExperimentID != src { + return false + } + return true +} +func (p *ExptColumnEvaluator) Field2DeepEqual(src []*ColumnEvaluator) bool { + + if len(p.ColumnEvaluators) != len(src) { + return false + } + for i, v := range p.ColumnEvaluators { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} + +type ColumnEvaluator struct { + EvaluatorVersionID int64 `thrift:"evaluator_version_id,1,required" frugal:"1,required,i64" json:"evaluator_version_id" form:"evaluator_version_id,required" query:"evaluator_version_id,required"` + EvaluatorID int64 `thrift:"evaluator_id,2,required" frugal:"2,required,i64" json:"evaluator_id" form:"evaluator_id,required" query:"evaluator_id,required"` + EvaluatorType evaluator.EvaluatorType `thrift:"evaluator_type,3,required" frugal:"3,required,EvaluatorType" form:"evaluator_type,required" json:"evaluator_type,required" query:"evaluator_type,required"` + Name *string `thrift:"name,4,optional" frugal:"4,optional,string" form:"name" json:"name,omitempty" query:"name"` + Version *string `thrift:"version,5,optional" frugal:"5,optional,string" form:"version" json:"version,omitempty" query:"version"` + Description *string `thrift:"description,6,optional" frugal:"6,optional,string" form:"description" json:"description,omitempty" query:"description"` + Builtin *bool `thrift:"builtin,7,optional" frugal:"7,optional,bool" form:"builtin" json:"builtin,omitempty" query:"builtin"` +} + +func NewColumnEvaluator() *ColumnEvaluator { + return &ColumnEvaluator{} +} + +func (p *ColumnEvaluator) InitDefault() { +} + +func (p *ColumnEvaluator) GetEvaluatorVersionID() (v int64) { + if p != nil { + return p.EvaluatorVersionID + } + return +} + +func (p *ColumnEvaluator) GetEvaluatorID() (v int64) { + if p != nil { + return p.EvaluatorID + } + return +} + +func (p *ColumnEvaluator) GetEvaluatorType() (v evaluator.EvaluatorType) { + if p != nil { + return p.EvaluatorType + } + return +} + +var ColumnEvaluator_Name_DEFAULT string + +func (p *ColumnEvaluator) GetName() (v string) { + if p == nil { + return + } + if !p.IsSetName() { + return ColumnEvaluator_Name_DEFAULT + } + return *p.Name +} + +var ColumnEvaluator_Version_DEFAULT string + +func (p *ColumnEvaluator) GetVersion() (v string) { + if p == nil { + return + } + if !p.IsSetVersion() { + return ColumnEvaluator_Version_DEFAULT + } + return *p.Version +} + +var ColumnEvaluator_Description_DEFAULT string + +func (p *ColumnEvaluator) GetDescription() (v string) { + if p == nil { + return + } + if !p.IsSetDescription() { + return ColumnEvaluator_Description_DEFAULT + } + return *p.Description +} + +var ColumnEvaluator_Builtin_DEFAULT bool + +func (p *ColumnEvaluator) GetBuiltin() (v bool) { + if p == nil { + return + } + if !p.IsSetBuiltin() { + return ColumnEvaluator_Builtin_DEFAULT + } + return *p.Builtin +} +func (p *ColumnEvaluator) SetEvaluatorVersionID(val int64) { + p.EvaluatorVersionID = val +} +func (p *ColumnEvaluator) SetEvaluatorID(val int64) { + p.EvaluatorID = val +} +func (p *ColumnEvaluator) SetEvaluatorType(val evaluator.EvaluatorType) { + p.EvaluatorType = val +} +func (p *ColumnEvaluator) SetName(val *string) { + p.Name = val +} +func (p *ColumnEvaluator) SetVersion(val *string) { + p.Version = val +} +func (p *ColumnEvaluator) SetDescription(val *string) { + p.Description = val +} +func (p *ColumnEvaluator) SetBuiltin(val *bool) { + p.Builtin = val +} + +var fieldIDToName_ColumnEvaluator = map[int16]string{ + 1: "evaluator_version_id", + 2: "evaluator_id", + 3: "evaluator_type", + 4: "name", + 5: "version", + 6: "description", + 7: "builtin", +} + +func (p *ColumnEvaluator) IsSetName() bool { + return p.Name != nil +} + +func (p *ColumnEvaluator) IsSetVersion() bool { + return p.Version != nil +} + +func (p *ColumnEvaluator) IsSetDescription() bool { + return p.Description != nil +} + +func (p *ColumnEvaluator) IsSetBuiltin() bool { + return p.Builtin != nil +} + +func (p *ColumnEvaluator) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + var issetEvaluatorVersionID bool = false + var issetEvaluatorID bool = false + var issetEvaluatorType 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 + } + issetEvaluatorVersionID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.I64 { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + issetEvaluatorID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.I32 { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + issetEvaluatorType = true + } 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.STRING { + if err = p.ReadField6(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 7: + if fieldTypeId == thrift.BOOL { + if err = p.ReadField7(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 !issetEvaluatorVersionID { + fieldId = 1 + goto RequiredFieldNotSetError + } + + if !issetEvaluatorID { + fieldId = 2 + goto RequiredFieldNotSetError + } + + if !issetEvaluatorType { + 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_ColumnEvaluator[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_ColumnEvaluator[fieldId])) +} + +func (p *ColumnEvaluator) ReadField1(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.EvaluatorVersionID = _field + return nil +} +func (p *ColumnEvaluator) ReadField2(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.EvaluatorID = _field + return nil +} +func (p *ColumnEvaluator) ReadField3(iprot thrift.TProtocol) error { + + var _field evaluator.EvaluatorType + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + _field = evaluator.EvaluatorType(v) + } + p.EvaluatorType = _field + return nil +} +func (p *ColumnEvaluator) ReadField4(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Name = _field + return nil +} +func (p *ColumnEvaluator) ReadField5(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { _field = &v } p.Version = _field @@ -10041,42 +13072,268 @@ func (p *TurnTargetOutput) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } } - if err = iprot.ReadFieldEnd(); err != nil { - goto ReadFieldEndError + 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_TurnTargetOutput[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 *TurnTargetOutput) ReadField1(iprot thrift.TProtocol) error { + _field := eval_target.NewEvalTargetRecord() + if err := _field.Read(iprot); err != nil { + return err + } + p.EvalTargetRecord = _field + return nil +} + +func (p *TurnTargetOutput) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("TurnTargetOutput"); 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 *TurnTargetOutput) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetEvalTargetRecord() { + if err = oprot.WriteFieldBegin("eval_target_record", thrift.STRUCT, 1); err != nil { + goto WriteFieldBeginError + } + if err := p.EvalTargetRecord.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 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} + +func (p *TurnTargetOutput) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("TurnTargetOutput(%+v)", *p) + +} + +func (p *TurnTargetOutput) DeepEqual(ano *TurnTargetOutput) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.EvalTargetRecord) { + return false + } + return true +} + +func (p *TurnTargetOutput) Field1DeepEqual(src *eval_target.EvalTargetRecord) bool { + + if !p.EvalTargetRecord.DeepEqual(src) { + return false + } + return true +} + +type TurnEvaluatorOutput struct { + EvaluatorRecords map[int64]*evaluator.EvaluatorRecord `thrift:"evaluator_records,1" frugal:"1,default,map" json:"evaluator_records" form:"evaluator_records" query:"evaluator_records"` + // 加权汇总得分 + WeightedScore *float64 `thrift:"weighted_score,11,optional" frugal:"11,optional,double" json:"weighted_score" form:"weighted_score" query:"weighted_score"` +} + +func NewTurnEvaluatorOutput() *TurnEvaluatorOutput { + return &TurnEvaluatorOutput{} +} + +func (p *TurnEvaluatorOutput) InitDefault() { +} + +func (p *TurnEvaluatorOutput) GetEvaluatorRecords() (v map[int64]*evaluator.EvaluatorRecord) { + if p != nil { + return p.EvaluatorRecords + } + return +} + +var TurnEvaluatorOutput_WeightedScore_DEFAULT float64 + +func (p *TurnEvaluatorOutput) GetWeightedScore() (v float64) { + if p == nil { + return + } + if !p.IsSetWeightedScore() { + return TurnEvaluatorOutput_WeightedScore_DEFAULT + } + return *p.WeightedScore +} +func (p *TurnEvaluatorOutput) SetEvaluatorRecords(val map[int64]*evaluator.EvaluatorRecord) { + p.EvaluatorRecords = val +} +func (p *TurnEvaluatorOutput) SetWeightedScore(val *float64) { + p.WeightedScore = val +} + +var fieldIDToName_TurnEvaluatorOutput = map[int16]string{ + 1: "evaluator_records", + 11: "weighted_score", +} + +func (p *TurnEvaluatorOutput) IsSetWeightedScore() bool { + return p.WeightedScore != nil +} + +func (p *TurnEvaluatorOutput) 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.MAP { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 11: + if fieldTypeId == thrift.DOUBLE { + if err = p.ReadField11(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_TurnEvaluatorOutput[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 *TurnEvaluatorOutput) ReadField1(iprot thrift.TProtocol) error { + _, _, size, err := iprot.ReadMapBegin() + if err != nil { + return err + } + _field := make(map[int64]*evaluator.EvaluatorRecord, size) + values := make([]evaluator.EvaluatorRecord, size) + for i := 0; i < size; i++ { + var _key int64 + if v, err := iprot.ReadI64(); 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.ReadStructEnd(); err != nil { - goto ReadStructEndError + if err := iprot.ReadMapEnd(); err != nil { + return err } - + p.EvaluatorRecords = _field 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_TurnTargetOutput[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 *TurnEvaluatorOutput) ReadField11(iprot thrift.TProtocol) error { -func (p *TurnTargetOutput) ReadField1(iprot thrift.TProtocol) error { - _field := eval_target.NewEvalTargetRecord() - if err := _field.Read(iprot); err != nil { + var _field *float64 + if v, err := iprot.ReadDouble(); err != nil { return err + } else { + _field = &v } - p.EvalTargetRecord = _field + p.WeightedScore = _field return nil } -func (p *TurnTargetOutput) Write(oprot thrift.TProtocol) (err error) { +func (p *TurnEvaluatorOutput) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("TurnTargetOutput"); err != nil { + if err = oprot.WriteStructBegin("TurnEvaluatorOutput"); err != nil { goto WriteStructBeginError } if p != nil { @@ -10084,6 +13341,10 @@ func (p *TurnTargetOutput) Write(oprot thrift.TProtocol) (err error) { fieldId = 1 goto WriteFieldError } + if err = p.writeField11(oprot); err != nil { + fieldId = 11 + goto WriteFieldError + } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -10102,12 +13363,39 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *TurnTargetOutput) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetEvalTargetRecord() { - if err = oprot.WriteFieldBegin("eval_target_record", thrift.STRUCT, 1); err != nil { +func (p *TurnEvaluatorOutput) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("evaluator_records", thrift.MAP, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteMapBegin(thrift.I64, thrift.STRUCT, len(p.EvaluatorRecords)); err != nil { + return err + } + for k, v := range p.EvaluatorRecords { + if err := oprot.WriteI64(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 *TurnEvaluatorOutput) writeField11(oprot thrift.TProtocol) (err error) { + if p.IsSetWeightedScore() { + if err = oprot.WriteFieldBegin("weighted_score", thrift.DOUBLE, 11); err != nil { goto WriteFieldBeginError } - if err := p.EvalTargetRecord.Write(oprot); err != nil { + if err := oprot.WriteDouble(*p.WeightedScore); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -10116,65 +13404,87 @@ func (p *TurnTargetOutput) writeField1(oprot thrift.TProtocol) (err error) { } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 11 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 11 end error: ", p), err) } -func (p *TurnTargetOutput) String() string { +func (p *TurnEvaluatorOutput) String() string { if p == nil { return "" } - return fmt.Sprintf("TurnTargetOutput(%+v)", *p) + return fmt.Sprintf("TurnEvaluatorOutput(%+v)", *p) } -func (p *TurnTargetOutput) DeepEqual(ano *TurnTargetOutput) bool { +func (p *TurnEvaluatorOutput) DeepEqual(ano *TurnEvaluatorOutput) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.EvalTargetRecord) { + if !p.Field1DeepEqual(ano.EvaluatorRecords) { + return false + } + if !p.Field11DeepEqual(ano.WeightedScore) { return false } return true } -func (p *TurnTargetOutput) Field1DeepEqual(src *eval_target.EvalTargetRecord) bool { +func (p *TurnEvaluatorOutput) Field1DeepEqual(src map[int64]*evaluator.EvaluatorRecord) bool { - if !p.EvalTargetRecord.DeepEqual(src) { + if len(p.EvaluatorRecords) != len(src) { + return false + } + for k, v := range p.EvaluatorRecords { + _src := src[k] + if !v.DeepEqual(_src) { + return false + } + } + return true +} +func (p *TurnEvaluatorOutput) Field11DeepEqual(src *float64) bool { + + if p.WeightedScore == src { + return true + } else if p.WeightedScore == nil || src == nil { + return false + } + if *p.WeightedScore != *src { return false } return true } -type TurnEvaluatorOutput struct { - EvaluatorRecords map[int64]*evaluator.EvaluatorRecord `thrift:"evaluator_records,1" frugal:"1,default,map" json:"evaluator_records" form:"evaluator_records" query:"evaluator_records"` +type TurnAnnotateResult_ struct { + // tag_key_id -> annotate_record + AnnotateRecords map[int64]*AnnotateRecord `thrift:"annotate_records,1" frugal:"1,default,map" json:"annotate_records" form:"annotate_records" query:"annotate_records"` } -func NewTurnEvaluatorOutput() *TurnEvaluatorOutput { - return &TurnEvaluatorOutput{} +func NewTurnAnnotateResult_() *TurnAnnotateResult_ { + return &TurnAnnotateResult_{} } -func (p *TurnEvaluatorOutput) InitDefault() { +func (p *TurnAnnotateResult_) InitDefault() { } -func (p *TurnEvaluatorOutput) GetEvaluatorRecords() (v map[int64]*evaluator.EvaluatorRecord) { +func (p *TurnAnnotateResult_) GetAnnotateRecords() (v map[int64]*AnnotateRecord) { if p != nil { - return p.EvaluatorRecords + return p.AnnotateRecords } return } -func (p *TurnEvaluatorOutput) SetEvaluatorRecords(val map[int64]*evaluator.EvaluatorRecord) { - p.EvaluatorRecords = val +func (p *TurnAnnotateResult_) SetAnnotateRecords(val map[int64]*AnnotateRecord) { + p.AnnotateRecords = val } -var fieldIDToName_TurnEvaluatorOutput = map[int16]string{ - 1: "evaluator_records", +var fieldIDToName_TurnAnnotateResult_ = map[int16]string{ + 1: "annotate_records", } -func (p *TurnEvaluatorOutput) Read(iprot thrift.TProtocol) (err error) { +func (p *TurnAnnotateResult_) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -10219,7 +13529,7 @@ ReadStructBeginError: 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_TurnEvaluatorOutput[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_TurnAnnotateResult_[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -10229,13 +13539,13 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *TurnEvaluatorOutput) ReadField1(iprot thrift.TProtocol) error { +func (p *TurnAnnotateResult_) ReadField1(iprot thrift.TProtocol) error { _, _, size, err := iprot.ReadMapBegin() if err != nil { return err } - _field := make(map[int64]*evaluator.EvaluatorRecord, size) - values := make([]evaluator.EvaluatorRecord, size) + _field := make(map[int64]*AnnotateRecord, size) + values := make([]AnnotateRecord, size) for i := 0; i < size; i++ { var _key int64 if v, err := iprot.ReadI64(); err != nil { @@ -10255,13 +13565,13 @@ func (p *TurnEvaluatorOutput) ReadField1(iprot thrift.TProtocol) error { if err := iprot.ReadMapEnd(); err != nil { return err } - p.EvaluatorRecords = _field + p.AnnotateRecords = _field return nil } -func (p *TurnEvaluatorOutput) Write(oprot thrift.TProtocol) (err error) { +func (p *TurnAnnotateResult_) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("TurnEvaluatorOutput"); err != nil { + if err = oprot.WriteStructBegin("TurnAnnotateResult"); err != nil { goto WriteStructBeginError } if p != nil { @@ -10287,95 +13597,252 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *TurnEvaluatorOutput) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("evaluator_records", thrift.MAP, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteMapBegin(thrift.I64, thrift.STRUCT, len(p.EvaluatorRecords)); err != nil { - return err +func (p *TurnAnnotateResult_) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("annotate_records", thrift.MAP, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteMapBegin(thrift.I64, thrift.STRUCT, len(p.AnnotateRecords)); err != nil { + return err + } + for k, v := range p.AnnotateRecords { + if err := oprot.WriteI64(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 *TurnAnnotateResult_) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("TurnAnnotateResult_(%+v)", *p) + +} + +func (p *TurnAnnotateResult_) DeepEqual(ano *TurnAnnotateResult_) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.AnnotateRecords) { + return false + } + return true +} + +func (p *TurnAnnotateResult_) Field1DeepEqual(src map[int64]*AnnotateRecord) bool { + + if len(p.AnnotateRecords) != len(src) { + return false + } + for k, v := range p.AnnotateRecords { + _src := src[k] + if !v.DeepEqual(_src) { + return false + } + } + return true +} + +type AnnotateRecord struct { + AnnotateRecordID *int64 `thrift:"annotate_record_id,1,optional" frugal:"1,optional,i64" json:"annotate_record_id" form:"annotate_record_id" query:"annotate_record_id"` + // 标签ID + TagKeyID *int64 `thrift:"tag_key_id,2,optional" frugal:"2,optional,i64" json:"tag_key_id" form:"tag_key_id" query:"tag_key_id"` + Score *string `thrift:"score,3,optional" frugal:"3,optional,string" form:"score" json:"score,omitempty" query:"score"` + BooleanOption *string `thrift:"boolean_option,4,optional" frugal:"4,optional,string" form:"boolean_option" json:"boolean_option,omitempty" query:"boolean_option"` + CategoricalOption *string `thrift:"categorical_option,5,optional" frugal:"5,optional,string" form:"categorical_option" json:"categorical_option,omitempty" query:"categorical_option"` + PlainText *string `thrift:"plain_text,6,optional" frugal:"6,optional,string" form:"plain_text" json:"plain_text,omitempty" query:"plain_text"` + TagContentType *tag.TagContentType `thrift:"tag_content_type,7,optional" frugal:"7,optional,string" form:"tag_content_type" json:"tag_content_type,omitempty" query:"tag_content_type"` + // 标签选项值ID + TagValueID *int64 `thrift:"tag_value_id,8,optional" frugal:"8,optional,i64" json:"tag_value_id" form:"tag_value_id" query:"tag_value_id"` +} + +func NewAnnotateRecord() *AnnotateRecord { + return &AnnotateRecord{} +} + +func (p *AnnotateRecord) InitDefault() { +} + +var AnnotateRecord_AnnotateRecordID_DEFAULT int64 + +func (p *AnnotateRecord) GetAnnotateRecordID() (v int64) { + if p == nil { + return + } + if !p.IsSetAnnotateRecordID() { + return AnnotateRecord_AnnotateRecordID_DEFAULT + } + return *p.AnnotateRecordID +} + +var AnnotateRecord_TagKeyID_DEFAULT int64 + +func (p *AnnotateRecord) GetTagKeyID() (v int64) { + if p == nil { + return + } + if !p.IsSetTagKeyID() { + return AnnotateRecord_TagKeyID_DEFAULT + } + return *p.TagKeyID +} + +var AnnotateRecord_Score_DEFAULT string + +func (p *AnnotateRecord) GetScore() (v string) { + if p == nil { + return + } + if !p.IsSetScore() { + return AnnotateRecord_Score_DEFAULT + } + return *p.Score +} + +var AnnotateRecord_BooleanOption_DEFAULT string + +func (p *AnnotateRecord) GetBooleanOption() (v string) { + if p == nil { + return } - for k, v := range p.EvaluatorRecords { - if err := oprot.WriteI64(k); err != nil { - return err - } - if err := v.Write(oprot); err != nil { - return err - } + if !p.IsSetBooleanOption() { + return AnnotateRecord_BooleanOption_DEFAULT } - if err := oprot.WriteMapEnd(); err != nil { - return err + return *p.BooleanOption +} + +var AnnotateRecord_CategoricalOption_DEFAULT string + +func (p *AnnotateRecord) GetCategoricalOption() (v string) { + if p == nil { + return } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError + if !p.IsSetCategoricalOption() { + return AnnotateRecord_CategoricalOption_DEFAULT } - 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) + return *p.CategoricalOption } -func (p *TurnEvaluatorOutput) String() string { +var AnnotateRecord_PlainText_DEFAULT string + +func (p *AnnotateRecord) GetPlainText() (v string) { if p == nil { - return "" + return } - return fmt.Sprintf("TurnEvaluatorOutput(%+v)", *p) - + if !p.IsSetPlainText() { + return AnnotateRecord_PlainText_DEFAULT + } + return *p.PlainText } -func (p *TurnEvaluatorOutput) DeepEqual(ano *TurnEvaluatorOutput) bool { - if p == ano { - return true - } else if p == nil || ano == nil { - return false +var AnnotateRecord_TagContentType_DEFAULT tag.TagContentType + +func (p *AnnotateRecord) GetTagContentType() (v tag.TagContentType) { + if p == nil { + return } - if !p.Field1DeepEqual(ano.EvaluatorRecords) { - return false + if !p.IsSetTagContentType() { + return AnnotateRecord_TagContentType_DEFAULT } - return true + return *p.TagContentType } -func (p *TurnEvaluatorOutput) Field1DeepEqual(src map[int64]*evaluator.EvaluatorRecord) bool { +var AnnotateRecord_TagValueID_DEFAULT int64 - if len(p.EvaluatorRecords) != len(src) { - return false +func (p *AnnotateRecord) GetTagValueID() (v int64) { + if p == nil { + return } - for k, v := range p.EvaluatorRecords { - _src := src[k] - if !v.DeepEqual(_src) { - return false - } + if !p.IsSetTagValueID() { + return AnnotateRecord_TagValueID_DEFAULT } - return true + return *p.TagValueID +} +func (p *AnnotateRecord) SetAnnotateRecordID(val *int64) { + p.AnnotateRecordID = val +} +func (p *AnnotateRecord) SetTagKeyID(val *int64) { + p.TagKeyID = val +} +func (p *AnnotateRecord) SetScore(val *string) { + p.Score = val +} +func (p *AnnotateRecord) SetBooleanOption(val *string) { + p.BooleanOption = val +} +func (p *AnnotateRecord) SetCategoricalOption(val *string) { + p.CategoricalOption = val +} +func (p *AnnotateRecord) SetPlainText(val *string) { + p.PlainText = val +} +func (p *AnnotateRecord) SetTagContentType(val *tag.TagContentType) { + p.TagContentType = val +} +func (p *AnnotateRecord) SetTagValueID(val *int64) { + p.TagValueID = val } -type TurnAnnotateResult_ struct { - // tag_key_id -> annotate_record - AnnotateRecords map[int64]*AnnotateRecord `thrift:"annotate_records,1" frugal:"1,default,map" json:"annotate_records" form:"annotate_records" query:"annotate_records"` +var fieldIDToName_AnnotateRecord = map[int16]string{ + 1: "annotate_record_id", + 2: "tag_key_id", + 3: "score", + 4: "boolean_option", + 5: "categorical_option", + 6: "plain_text", + 7: "tag_content_type", + 8: "tag_value_id", } -func NewTurnAnnotateResult_() *TurnAnnotateResult_ { - return &TurnAnnotateResult_{} +func (p *AnnotateRecord) IsSetAnnotateRecordID() bool { + return p.AnnotateRecordID != nil } -func (p *TurnAnnotateResult_) InitDefault() { +func (p *AnnotateRecord) IsSetTagKeyID() bool { + return p.TagKeyID != nil } -func (p *TurnAnnotateResult_) GetAnnotateRecords() (v map[int64]*AnnotateRecord) { - if p != nil { - return p.AnnotateRecords - } - return +func (p *AnnotateRecord) IsSetScore() bool { + return p.Score != nil } -func (p *TurnAnnotateResult_) SetAnnotateRecords(val map[int64]*AnnotateRecord) { - p.AnnotateRecords = val + +func (p *AnnotateRecord) IsSetBooleanOption() bool { + return p.BooleanOption != nil } -var fieldIDToName_TurnAnnotateResult_ = map[int16]string{ - 1: "annotate_records", +func (p *AnnotateRecord) IsSetCategoricalOption() bool { + return p.CategoricalOption != nil } -func (p *TurnAnnotateResult_) Read(iprot thrift.TProtocol) (err error) { +func (p *AnnotateRecord) IsSetPlainText() bool { + return p.PlainText != nil +} + +func (p *AnnotateRecord) IsSetTagContentType() bool { + return p.TagContentType != nil +} + +func (p *AnnotateRecord) IsSetTagValueID() bool { + return p.TagValueID != nil +} + +func (p *AnnotateRecord) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -10394,13 +13861,69 @@ func (p *TurnAnnotateResult_) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.MAP { + if fieldTypeId == thrift.I64 { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 2: + if fieldTypeId == thrift.I64 { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } 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 + } + } 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.STRING { + if err = p.ReadField6(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 7: + if fieldTypeId == thrift.STRING { + if err = p.ReadField7(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 8: + if fieldTypeId == thrift.I64 { + if err = p.ReadField8(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 @@ -10415,54 +13938,113 @@ func (p *TurnAnnotateResult_) Read(iprot thrift.TProtocol) (err error) { } 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_TurnAnnotateResult_[fieldId]), err) -SkipFieldError: - return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +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_AnnotateRecord[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 *AnnotateRecord) ReadField1(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.AnnotateRecordID = _field + return nil +} +func (p *AnnotateRecord) ReadField2(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.TagKeyID = _field + return nil +} +func (p *AnnotateRecord) ReadField3(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Score = _field + return nil +} +func (p *AnnotateRecord) ReadField4(iprot thrift.TProtocol) error { -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) + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.BooleanOption = _field + return nil } +func (p *AnnotateRecord) ReadField5(iprot thrift.TProtocol) error { -func (p *TurnAnnotateResult_) ReadField1(iprot thrift.TProtocol) error { - _, _, size, err := iprot.ReadMapBegin() - if err != nil { + var _field *string + if v, err := iprot.ReadString(); err != nil { return err + } else { + _field = &v } - _field := make(map[int64]*AnnotateRecord, size) - values := make([]AnnotateRecord, size) - for i := 0; i < size; i++ { - var _key int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _key = v - } + p.CategoricalOption = _field + return nil +} +func (p *AnnotateRecord) ReadField6(iprot thrift.TProtocol) error { - _val := &values[i] - _val.InitDefault() - if err := _val.Read(iprot); err != nil { - return err - } + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.PlainText = _field + return nil +} +func (p *AnnotateRecord) ReadField7(iprot thrift.TProtocol) error { - _field[_key] = _val + var _field *tag.TagContentType + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v } - if err := iprot.ReadMapEnd(); err != nil { + p.TagContentType = _field + return nil +} +func (p *AnnotateRecord) ReadField8(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { return err + } else { + _field = &v } - p.AnnotateRecords = _field + p.TagValueID = _field return nil } -func (p *TurnAnnotateResult_) Write(oprot thrift.TProtocol) (err error) { +func (p *AnnotateRecord) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("TurnAnnotateResult"); err != nil { + if err = oprot.WriteStructBegin("AnnotateRecord"); err != nil { goto WriteStructBeginError } if p != nil { @@ -10470,6 +14052,34 @@ func (p *TurnAnnotateResult_) Write(oprot thrift.TProtocol) (err error) { 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 = p.writeField7(oprot); err != nil { + fieldId = 7 + goto WriteFieldError + } + if err = p.writeField8(oprot); err != nil { + fieldId = 8 + goto WriteFieldError + } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -10488,252 +14098,448 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *TurnAnnotateResult_) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("annotate_records", thrift.MAP, 1); err != nil { - goto WriteFieldBeginError +func (p *AnnotateRecord) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetAnnotateRecordID() { + if err = oprot.WriteFieldBegin("annotate_record_id", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.AnnotateRecordID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } - if err := oprot.WriteMapBegin(thrift.I64, thrift.STRUCT, len(p.AnnotateRecords)); err != nil { - return err + 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 *AnnotateRecord) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetTagKeyID() { + if err = oprot.WriteFieldBegin("tag_key_id", thrift.I64, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.TagKeyID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } - for k, v := range p.AnnotateRecords { - if err := oprot.WriteI64(k); err != nil { + 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 *AnnotateRecord) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetScore() { + if err = oprot.WriteFieldBegin("score", thrift.STRING, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Score); err != nil { return err } - if err := v.Write(oprot); err != nil { + 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 *AnnotateRecord) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetBooleanOption() { + if err = oprot.WriteFieldBegin("boolean_option", thrift.STRING, 4); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.BooleanOption); 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 *AnnotateRecord) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetCategoricalOption() { + if err = oprot.WriteFieldBegin("categorical_option", thrift.STRING, 5); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.CategoricalOption); 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 *AnnotateRecord) writeField6(oprot thrift.TProtocol) (err error) { + if p.IsSetPlainText() { + if err = oprot.WriteFieldBegin("plain_text", thrift.STRING, 6); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.PlainText); 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 *AnnotateRecord) writeField7(oprot thrift.TProtocol) (err error) { + if p.IsSetTagContentType() { + if err = oprot.WriteFieldBegin("tag_content_type", thrift.STRING, 7); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.TagContentType); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) +} +func (p *AnnotateRecord) writeField8(oprot thrift.TProtocol) (err error) { + if p.IsSetTagValueID() { + if err = oprot.WriteFieldBegin("tag_value_id", thrift.I64, 8); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.TagValueID); err != nil { return err } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } - 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) + return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) } -func (p *TurnAnnotateResult_) String() string { +func (p *AnnotateRecord) String() string { if p == nil { return "" } - return fmt.Sprintf("TurnAnnotateResult_(%+v)", *p) + return fmt.Sprintf("AnnotateRecord(%+v)", *p) } -func (p *TurnAnnotateResult_) DeepEqual(ano *TurnAnnotateResult_) bool { +func (p *AnnotateRecord) DeepEqual(ano *AnnotateRecord) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.AnnotateRecords) { + if !p.Field1DeepEqual(ano.AnnotateRecordID) { + return false + } + if !p.Field2DeepEqual(ano.TagKeyID) { + return false + } + if !p.Field3DeepEqual(ano.Score) { + return false + } + if !p.Field4DeepEqual(ano.BooleanOption) { + return false + } + if !p.Field5DeepEqual(ano.CategoricalOption) { + return false + } + if !p.Field6DeepEqual(ano.PlainText) { + return false + } + if !p.Field7DeepEqual(ano.TagContentType) { + return false + } + if !p.Field8DeepEqual(ano.TagValueID) { return false } return true } -func (p *TurnAnnotateResult_) Field1DeepEqual(src map[int64]*AnnotateRecord) bool { +func (p *AnnotateRecord) Field1DeepEqual(src *int64) bool { - if len(p.AnnotateRecords) != len(src) { + if p.AnnotateRecordID == src { + return true + } else if p.AnnotateRecordID == nil || src == nil { return false } - for k, v := range p.AnnotateRecords { - _src := src[k] - if !v.DeepEqual(_src) { - return false - } + if *p.AnnotateRecordID != *src { + return false } return true } +func (p *AnnotateRecord) Field2DeepEqual(src *int64) bool { -type AnnotateRecord struct { - AnnotateRecordID *int64 `thrift:"annotate_record_id,1,optional" frugal:"1,optional,i64" json:"annotate_record_id" form:"annotate_record_id" query:"annotate_record_id"` - // 标签ID - TagKeyID *int64 `thrift:"tag_key_id,2,optional" frugal:"2,optional,i64" json:"tag_key_id" form:"tag_key_id" query:"tag_key_id"` - Score *string `thrift:"score,3,optional" frugal:"3,optional,string" form:"score" json:"score,omitempty" query:"score"` - BooleanOption *string `thrift:"boolean_option,4,optional" frugal:"4,optional,string" form:"boolean_option" json:"boolean_option,omitempty" query:"boolean_option"` - CategoricalOption *string `thrift:"categorical_option,5,optional" frugal:"5,optional,string" form:"categorical_option" json:"categorical_option,omitempty" query:"categorical_option"` - PlainText *string `thrift:"plain_text,6,optional" frugal:"6,optional,string" form:"plain_text" json:"plain_text,omitempty" query:"plain_text"` - TagContentType *tag.TagContentType `thrift:"tag_content_type,7,optional" frugal:"7,optional,string" form:"tag_content_type" json:"tag_content_type,omitempty" query:"tag_content_type"` - // 标签选项值ID - TagValueID *int64 `thrift:"tag_value_id,8,optional" frugal:"8,optional,i64" json:"tag_value_id" form:"tag_value_id" query:"tag_value_id"` + if p.TagKeyID == src { + return true + } else if p.TagKeyID == nil || src == nil { + return false + } + if *p.TagKeyID != *src { + return false + } + return true } +func (p *AnnotateRecord) Field3DeepEqual(src *string) bool { -func NewAnnotateRecord() *AnnotateRecord { - return &AnnotateRecord{} + if p.Score == src { + return true + } else if p.Score == nil || src == nil { + return false + } + if strings.Compare(*p.Score, *src) != 0 { + return false + } + return true } +func (p *AnnotateRecord) Field4DeepEqual(src *string) bool { -func (p *AnnotateRecord) InitDefault() { + if p.BooleanOption == src { + return true + } else if p.BooleanOption == nil || src == nil { + return false + } + if strings.Compare(*p.BooleanOption, *src) != 0 { + return false + } + return true } +func (p *AnnotateRecord) Field5DeepEqual(src *string) bool { -var AnnotateRecord_AnnotateRecordID_DEFAULT int64 + if p.CategoricalOption == src { + return true + } else if p.CategoricalOption == nil || src == nil { + return false + } + if strings.Compare(*p.CategoricalOption, *src) != 0 { + return false + } + return true +} +func (p *AnnotateRecord) Field6DeepEqual(src *string) bool { -func (p *AnnotateRecord) GetAnnotateRecordID() (v int64) { - if p == nil { - return + if p.PlainText == src { + return true + } else if p.PlainText == nil || src == nil { + return false } - if !p.IsSetAnnotateRecordID() { - return AnnotateRecord_AnnotateRecordID_DEFAULT + if strings.Compare(*p.PlainText, *src) != 0 { + return false } - return *p.AnnotateRecordID + return true } +func (p *AnnotateRecord) Field7DeepEqual(src *tag.TagContentType) bool { -var AnnotateRecord_TagKeyID_DEFAULT int64 + if p.TagContentType == src { + return true + } else if p.TagContentType == nil || src == nil { + return false + } + if strings.Compare(*p.TagContentType, *src) != 0 { + return false + } + return true +} +func (p *AnnotateRecord) Field8DeepEqual(src *int64) bool { -func (p *AnnotateRecord) GetTagKeyID() (v int64) { - if p == nil { - return + if p.TagValueID == src { + return true + } else if p.TagValueID == nil || src == nil { + return false } - if !p.IsSetTagKeyID() { - return AnnotateRecord_TagKeyID_DEFAULT + if *p.TagValueID != *src { + return false } - return *p.TagKeyID + return true } -var AnnotateRecord_Score_DEFAULT string +// 实际行级payload +type ExperimentTurnPayload struct { + TurnID int64 `thrift:"turn_id,1" frugal:"1,default,i64" json:"turn_id" form:"turn_id" query:"turn_id"` + // 评测数据集数据 + EvalSet *TurnEvalSet `thrift:"eval_set,2,optional" frugal:"2,optional,TurnEvalSet" form:"eval_set" json:"eval_set,omitempty" query:"eval_set"` + // 评测对象结果 + TargetOutput *TurnTargetOutput `thrift:"target_output,3,optional" frugal:"3,optional,TurnTargetOutput" form:"target_output" json:"target_output,omitempty" query:"target_output"` + // 评测规则执行结果 + EvaluatorOutput *TurnEvaluatorOutput `thrift:"evaluator_output,4,optional" frugal:"4,optional,TurnEvaluatorOutput" form:"evaluator_output" json:"evaluator_output,omitempty" query:"evaluator_output"` + // 评测系统相关数据日志、error + SystemInfo *TurnSystemInfo `thrift:"system_info,5,optional" frugal:"5,optional,TurnSystemInfo" form:"system_info" json:"system_info,omitempty" query:"system_info"` + // 人工标注结果结果 + AnnotateResult_ *TurnAnnotateResult_ `thrift:"annotate_result,6,optional" frugal:"6,optional,TurnAnnotateResult_" form:"annotate_result" json:"annotate_result,omitempty" query:"annotate_result"` + // 轨迹分析结果 + TrajectoryAnalysisResult_ *TrajectoryAnalysisResult_ `thrift:"trajectory_analysis_result,7,optional" frugal:"7,optional,TrajectoryAnalysisResult_" form:"trajectory_analysis_result" json:"trajectory_analysis_result,omitempty" query:"trajectory_analysis_result"` +} -func (p *AnnotateRecord) GetScore() (v string) { +func NewExperimentTurnPayload() *ExperimentTurnPayload { + return &ExperimentTurnPayload{} +} + +func (p *ExperimentTurnPayload) InitDefault() { +} + +func (p *ExperimentTurnPayload) GetTurnID() (v int64) { + if p != nil { + return p.TurnID + } + return +} + +var ExperimentTurnPayload_EvalSet_DEFAULT *TurnEvalSet + +func (p *ExperimentTurnPayload) GetEvalSet() (v *TurnEvalSet) { if p == nil { return } - if !p.IsSetScore() { - return AnnotateRecord_Score_DEFAULT + if !p.IsSetEvalSet() { + return ExperimentTurnPayload_EvalSet_DEFAULT } - return *p.Score + return p.EvalSet } -var AnnotateRecord_BooleanOption_DEFAULT string +var ExperimentTurnPayload_TargetOutput_DEFAULT *TurnTargetOutput -func (p *AnnotateRecord) GetBooleanOption() (v string) { +func (p *ExperimentTurnPayload) GetTargetOutput() (v *TurnTargetOutput) { if p == nil { return } - if !p.IsSetBooleanOption() { - return AnnotateRecord_BooleanOption_DEFAULT + if !p.IsSetTargetOutput() { + return ExperimentTurnPayload_TargetOutput_DEFAULT } - return *p.BooleanOption + return p.TargetOutput } -var AnnotateRecord_CategoricalOption_DEFAULT string +var ExperimentTurnPayload_EvaluatorOutput_DEFAULT *TurnEvaluatorOutput -func (p *AnnotateRecord) GetCategoricalOption() (v string) { +func (p *ExperimentTurnPayload) GetEvaluatorOutput() (v *TurnEvaluatorOutput) { if p == nil { return } - if !p.IsSetCategoricalOption() { - return AnnotateRecord_CategoricalOption_DEFAULT + if !p.IsSetEvaluatorOutput() { + return ExperimentTurnPayload_EvaluatorOutput_DEFAULT } - return *p.CategoricalOption + return p.EvaluatorOutput } -var AnnotateRecord_PlainText_DEFAULT string +var ExperimentTurnPayload_SystemInfo_DEFAULT *TurnSystemInfo -func (p *AnnotateRecord) GetPlainText() (v string) { +func (p *ExperimentTurnPayload) GetSystemInfo() (v *TurnSystemInfo) { if p == nil { return } - if !p.IsSetPlainText() { - return AnnotateRecord_PlainText_DEFAULT + if !p.IsSetSystemInfo() { + return ExperimentTurnPayload_SystemInfo_DEFAULT } - return *p.PlainText + return p.SystemInfo } -var AnnotateRecord_TagContentType_DEFAULT tag.TagContentType +var ExperimentTurnPayload_AnnotateResult__DEFAULT *TurnAnnotateResult_ -func (p *AnnotateRecord) GetTagContentType() (v tag.TagContentType) { +func (p *ExperimentTurnPayload) GetAnnotateResult_() (v *TurnAnnotateResult_) { if p == nil { return } - if !p.IsSetTagContentType() { - return AnnotateRecord_TagContentType_DEFAULT + if !p.IsSetAnnotateResult_() { + return ExperimentTurnPayload_AnnotateResult__DEFAULT } - return *p.TagContentType + return p.AnnotateResult_ } -var AnnotateRecord_TagValueID_DEFAULT int64 +var ExperimentTurnPayload_TrajectoryAnalysisResult__DEFAULT *TrajectoryAnalysisResult_ -func (p *AnnotateRecord) GetTagValueID() (v int64) { +func (p *ExperimentTurnPayload) GetTrajectoryAnalysisResult_() (v *TrajectoryAnalysisResult_) { if p == nil { return } - if !p.IsSetTagValueID() { - return AnnotateRecord_TagValueID_DEFAULT + if !p.IsSetTrajectoryAnalysisResult_() { + return ExperimentTurnPayload_TrajectoryAnalysisResult__DEFAULT } - return *p.TagValueID -} -func (p *AnnotateRecord) SetAnnotateRecordID(val *int64) { - p.AnnotateRecordID = val -} -func (p *AnnotateRecord) SetTagKeyID(val *int64) { - p.TagKeyID = val -} -func (p *AnnotateRecord) SetScore(val *string) { - p.Score = val + return p.TrajectoryAnalysisResult_ } -func (p *AnnotateRecord) SetBooleanOption(val *string) { - p.BooleanOption = val +func (p *ExperimentTurnPayload) SetTurnID(val int64) { + p.TurnID = val } -func (p *AnnotateRecord) SetCategoricalOption(val *string) { - p.CategoricalOption = val +func (p *ExperimentTurnPayload) SetEvalSet(val *TurnEvalSet) { + p.EvalSet = val } -func (p *AnnotateRecord) SetPlainText(val *string) { - p.PlainText = val +func (p *ExperimentTurnPayload) SetTargetOutput(val *TurnTargetOutput) { + p.TargetOutput = val } -func (p *AnnotateRecord) SetTagContentType(val *tag.TagContentType) { - p.TagContentType = val +func (p *ExperimentTurnPayload) SetEvaluatorOutput(val *TurnEvaluatorOutput) { + p.EvaluatorOutput = val } -func (p *AnnotateRecord) SetTagValueID(val *int64) { - p.TagValueID = val +func (p *ExperimentTurnPayload) SetSystemInfo(val *TurnSystemInfo) { + p.SystemInfo = val } - -var fieldIDToName_AnnotateRecord = map[int16]string{ - 1: "annotate_record_id", - 2: "tag_key_id", - 3: "score", - 4: "boolean_option", - 5: "categorical_option", - 6: "plain_text", - 7: "tag_content_type", - 8: "tag_value_id", +func (p *ExperimentTurnPayload) SetAnnotateResult_(val *TurnAnnotateResult_) { + p.AnnotateResult_ = val } - -func (p *AnnotateRecord) IsSetAnnotateRecordID() bool { - return p.AnnotateRecordID != nil +func (p *ExperimentTurnPayload) SetTrajectoryAnalysisResult_(val *TrajectoryAnalysisResult_) { + p.TrajectoryAnalysisResult_ = val } -func (p *AnnotateRecord) IsSetTagKeyID() bool { - return p.TagKeyID != nil +var fieldIDToName_ExperimentTurnPayload = map[int16]string{ + 1: "turn_id", + 2: "eval_set", + 3: "target_output", + 4: "evaluator_output", + 5: "system_info", + 6: "annotate_result", + 7: "trajectory_analysis_result", } -func (p *AnnotateRecord) IsSetScore() bool { - return p.Score != nil +func (p *ExperimentTurnPayload) IsSetEvalSet() bool { + return p.EvalSet != nil } -func (p *AnnotateRecord) IsSetBooleanOption() bool { - return p.BooleanOption != nil +func (p *ExperimentTurnPayload) IsSetTargetOutput() bool { + return p.TargetOutput != nil } -func (p *AnnotateRecord) IsSetCategoricalOption() bool { - return p.CategoricalOption != nil +func (p *ExperimentTurnPayload) IsSetEvaluatorOutput() bool { + return p.EvaluatorOutput != nil } -func (p *AnnotateRecord) IsSetPlainText() bool { - return p.PlainText != nil +func (p *ExperimentTurnPayload) IsSetSystemInfo() bool { + return p.SystemInfo != nil } -func (p *AnnotateRecord) IsSetTagContentType() bool { - return p.TagContentType != nil +func (p *ExperimentTurnPayload) IsSetAnnotateResult_() bool { + return p.AnnotateResult_ != nil } -func (p *AnnotateRecord) IsSetTagValueID() bool { - return p.TagValueID != nil +func (p *ExperimentTurnPayload) IsSetTrajectoryAnalysisResult_() bool { + return p.TrajectoryAnalysisResult_ != nil } -func (p *AnnotateRecord) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentTurnPayload) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -10760,7 +14566,7 @@ func (p *AnnotateRecord) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 2: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.STRUCT { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } @@ -10768,7 +14574,7 @@ func (p *AnnotateRecord) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 3: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.STRUCT { if err = p.ReadField3(iprot); err != nil { goto ReadFieldError } @@ -10776,7 +14582,7 @@ func (p *AnnotateRecord) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 4: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.STRUCT { if err = p.ReadField4(iprot); err != nil { goto ReadFieldError } @@ -10784,7 +14590,7 @@ func (p *AnnotateRecord) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 5: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.STRUCT { if err = p.ReadField5(iprot); err != nil { goto ReadFieldError } @@ -10792,7 +14598,7 @@ func (p *AnnotateRecord) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 6: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.STRUCT { if err = p.ReadField6(iprot); err != nil { goto ReadFieldError } @@ -10800,21 +14606,13 @@ func (p *AnnotateRecord) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 7: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.STRUCT { if err = p.ReadField7(iprot); err != nil { goto ReadFieldError } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 8: - if fieldTypeId == thrift.I64 { - if err = p.ReadField8(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 @@ -10834,7 +14632,7 @@ ReadStructBeginError: 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_AnnotateRecord[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentTurnPayload[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -10844,98 +14642,69 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *AnnotateRecord) ReadField1(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = &v - } - p.AnnotateRecordID = _field - return nil -} -func (p *AnnotateRecord) ReadField2(iprot thrift.TProtocol) error { +func (p *ExperimentTurnPayload) ReadField1(iprot thrift.TProtocol) error { - var _field *int64 + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - _field = &v + _field = v } - p.TagKeyID = _field + p.TurnID = _field return nil } -func (p *AnnotateRecord) ReadField3(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { +func (p *ExperimentTurnPayload) ReadField2(iprot thrift.TProtocol) error { + _field := NewTurnEvalSet() + if err := _field.Read(iprot); err != nil { return err - } else { - _field = &v } - p.Score = _field + p.EvalSet = _field return nil } -func (p *AnnotateRecord) ReadField4(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { +func (p *ExperimentTurnPayload) ReadField3(iprot thrift.TProtocol) error { + _field := NewTurnTargetOutput() + if err := _field.Read(iprot); err != nil { return err - } else { - _field = &v } - p.BooleanOption = _field + p.TargetOutput = _field return nil } -func (p *AnnotateRecord) ReadField5(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { +func (p *ExperimentTurnPayload) ReadField4(iprot thrift.TProtocol) error { + _field := NewTurnEvaluatorOutput() + if err := _field.Read(iprot); err != nil { return err - } else { - _field = &v } - p.CategoricalOption = _field + p.EvaluatorOutput = _field return nil } -func (p *AnnotateRecord) ReadField6(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { +func (p *ExperimentTurnPayload) ReadField5(iprot thrift.TProtocol) error { + _field := NewTurnSystemInfo() + if err := _field.Read(iprot); err != nil { return err - } else { - _field = &v } - p.PlainText = _field + p.SystemInfo = _field return nil } -func (p *AnnotateRecord) ReadField7(iprot thrift.TProtocol) error { - - var _field *tag.TagContentType - if v, err := iprot.ReadString(); err != nil { +func (p *ExperimentTurnPayload) ReadField6(iprot thrift.TProtocol) error { + _field := NewTurnAnnotateResult_() + if err := _field.Read(iprot); err != nil { return err - } else { - _field = &v } - p.TagContentType = _field + p.AnnotateResult_ = _field return nil } -func (p *AnnotateRecord) ReadField8(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { +func (p *ExperimentTurnPayload) ReadField7(iprot thrift.TProtocol) error { + _field := NewTrajectoryAnalysisResult_() + if err := _field.Read(iprot); err != nil { return err - } else { - _field = &v } - p.TagValueID = _field + p.TrajectoryAnalysisResult_ = _field return nil } -func (p *AnnotateRecord) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentTurnPayload) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("AnnotateRecord"); err != nil { + if err = oprot.WriteStructBegin("ExperimentTurnPayload"); err != nil { goto WriteStructBeginError } if p != nil { @@ -10967,10 +14736,6 @@ func (p *AnnotateRecord) Write(oprot thrift.TProtocol) (err error) { fieldId = 7 goto WriteFieldError } - if err = p.writeField8(oprot); err != nil { - fieldId = 8 - goto WriteFieldError - } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -10989,17 +14754,15 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *AnnotateRecord) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetAnnotateRecordID() { - if err = oprot.WriteFieldBegin("annotate_record_id", thrift.I64, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.AnnotateRecordID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } +func (p *ExperimentTurnPayload) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("turn_id", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.TurnID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } return nil WriteFieldBeginError: @@ -11007,12 +14770,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *AnnotateRecord) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetTagKeyID() { - if err = oprot.WriteFieldBegin("tag_key_id", thrift.I64, 2); err != nil { +func (p *ExperimentTurnPayload) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetEvalSet() { + if err = oprot.WriteFieldBegin("eval_set", thrift.STRUCT, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI64(*p.TagKeyID); err != nil { + if err := p.EvalSet.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -11025,12 +14788,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *AnnotateRecord) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetScore() { - if err = oprot.WriteFieldBegin("score", thrift.STRING, 3); err != nil { +func (p *ExperimentTurnPayload) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetTargetOutput() { + if err = oprot.WriteFieldBegin("target_output", thrift.STRUCT, 3); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(*p.Score); err != nil { + if err := p.TargetOutput.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -11043,12 +14806,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *AnnotateRecord) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetBooleanOption() { - if err = oprot.WriteFieldBegin("boolean_option", thrift.STRING, 4); err != nil { +func (p *ExperimentTurnPayload) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetEvaluatorOutput() { + if err = oprot.WriteFieldBegin("evaluator_output", thrift.STRUCT, 4); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(*p.BooleanOption); err != nil { + if err := p.EvaluatorOutput.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -11061,12 +14824,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) } -func (p *AnnotateRecord) writeField5(oprot thrift.TProtocol) (err error) { - if p.IsSetCategoricalOption() { - if err = oprot.WriteFieldBegin("categorical_option", thrift.STRING, 5); err != nil { +func (p *ExperimentTurnPayload) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetSystemInfo() { + if err = oprot.WriteFieldBegin("system_info", thrift.STRUCT, 5); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(*p.CategoricalOption); err != nil { + if err := p.SystemInfo.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -11077,32 +14840,14 @@ func (p *AnnotateRecord) writeField5(oprot thrift.TProtocol) (err error) { 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 *AnnotateRecord) writeField6(oprot thrift.TProtocol) (err error) { - if p.IsSetPlainText() { - if err = oprot.WriteFieldBegin("plain_text", thrift.STRING, 6); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.PlainText); 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 *AnnotateRecord) writeField7(oprot thrift.TProtocol) (err error) { - if p.IsSetTagContentType() { - if err = oprot.WriteFieldBegin("tag_content_type", thrift.STRING, 7); err != nil { + return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) +} +func (p *ExperimentTurnPayload) writeField6(oprot thrift.TProtocol) (err error) { + if p.IsSetAnnotateResult_() { + if err = oprot.WriteFieldBegin("annotate_result", thrift.STRUCT, 6); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(*p.TagContentType); err != nil { + if err := p.AnnotateResult_.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -11111,16 +14856,16 @@ func (p *AnnotateRecord) writeField7(oprot thrift.TProtocol) (err error) { } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) } -func (p *AnnotateRecord) writeField8(oprot thrift.TProtocol) (err error) { - if p.IsSetTagValueID() { - if err = oprot.WriteFieldBegin("tag_value_id", thrift.I64, 8); err != nil { +func (p *ExperimentTurnPayload) writeField7(oprot thrift.TProtocol) (err error) { + if p.IsSetTrajectoryAnalysisResult_() { + if err = oprot.WriteFieldBegin("trajectory_analysis_result", thrift.STRUCT, 7); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI64(*p.TagValueID); err != nil { + if err := p.TrajectoryAnalysisResult_.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -11129,308 +14874,155 @@ func (p *AnnotateRecord) writeField8(oprot thrift.TProtocol) (err error) { } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) } -func (p *AnnotateRecord) String() string { +func (p *ExperimentTurnPayload) String() string { if p == nil { return "" } - return fmt.Sprintf("AnnotateRecord(%+v)", *p) + return fmt.Sprintf("ExperimentTurnPayload(%+v)", *p) } -func (p *AnnotateRecord) DeepEqual(ano *AnnotateRecord) bool { +func (p *ExperimentTurnPayload) DeepEqual(ano *ExperimentTurnPayload) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.AnnotateRecordID) { - return false - } - if !p.Field2DeepEqual(ano.TagKeyID) { + if !p.Field1DeepEqual(ano.TurnID) { return false } - if !p.Field3DeepEqual(ano.Score) { + if !p.Field2DeepEqual(ano.EvalSet) { return false } - if !p.Field4DeepEqual(ano.BooleanOption) { + if !p.Field3DeepEqual(ano.TargetOutput) { return false } - if !p.Field5DeepEqual(ano.CategoricalOption) { + if !p.Field4DeepEqual(ano.EvaluatorOutput) { return false } - if !p.Field6DeepEqual(ano.PlainText) { + if !p.Field5DeepEqual(ano.SystemInfo) { return false } - if !p.Field7DeepEqual(ano.TagContentType) { + if !p.Field6DeepEqual(ano.AnnotateResult_) { return false } - if !p.Field8DeepEqual(ano.TagValueID) { + if !p.Field7DeepEqual(ano.TrajectoryAnalysisResult_) { return false } return true } -func (p *AnnotateRecord) Field1DeepEqual(src *int64) bool { - - if p.AnnotateRecordID == src { - return true - } else if p.AnnotateRecordID == nil || src == nil { - return false - } - if *p.AnnotateRecordID != *src { - return false - } - return true -} -func (p *AnnotateRecord) Field2DeepEqual(src *int64) bool { +func (p *ExperimentTurnPayload) Field1DeepEqual(src int64) bool { - if p.TagKeyID == src { - return true - } else if p.TagKeyID == nil || src == nil { - return false - } - if *p.TagKeyID != *src { + if p.TurnID != src { return false } return true } -func (p *AnnotateRecord) Field3DeepEqual(src *string) bool { +func (p *ExperimentTurnPayload) Field2DeepEqual(src *TurnEvalSet) bool { - if p.Score == src { - return true - } else if p.Score == nil || src == nil { - return false - } - if strings.Compare(*p.Score, *src) != 0 { + if !p.EvalSet.DeepEqual(src) { return false } return true } -func (p *AnnotateRecord) Field4DeepEqual(src *string) bool { +func (p *ExperimentTurnPayload) Field3DeepEqual(src *TurnTargetOutput) bool { - if p.BooleanOption == src { - return true - } else if p.BooleanOption == nil || src == nil { - return false - } - if strings.Compare(*p.BooleanOption, *src) != 0 { + if !p.TargetOutput.DeepEqual(src) { return false } return true } -func (p *AnnotateRecord) Field5DeepEqual(src *string) bool { +func (p *ExperimentTurnPayload) Field4DeepEqual(src *TurnEvaluatorOutput) bool { - if p.CategoricalOption == src { - return true - } else if p.CategoricalOption == nil || src == nil { - return false - } - if strings.Compare(*p.CategoricalOption, *src) != 0 { + if !p.EvaluatorOutput.DeepEqual(src) { return false } return true } -func (p *AnnotateRecord) Field6DeepEqual(src *string) bool { +func (p *ExperimentTurnPayload) Field5DeepEqual(src *TurnSystemInfo) bool { - if p.PlainText == src { - return true - } else if p.PlainText == nil || src == nil { - return false - } - if strings.Compare(*p.PlainText, *src) != 0 { + if !p.SystemInfo.DeepEqual(src) { return false } return true } -func (p *AnnotateRecord) Field7DeepEqual(src *tag.TagContentType) bool { +func (p *ExperimentTurnPayload) Field6DeepEqual(src *TurnAnnotateResult_) bool { - if p.TagContentType == src { - return true - } else if p.TagContentType == nil || src == nil { - return false - } - if strings.Compare(*p.TagContentType, *src) != 0 { + if !p.AnnotateResult_.DeepEqual(src) { return false } return true } -func (p *AnnotateRecord) Field8DeepEqual(src *int64) bool { +func (p *ExperimentTurnPayload) Field7DeepEqual(src *TrajectoryAnalysisResult_) bool { - if p.TagValueID == src { - return true - } else if p.TagValueID == nil || src == nil { - return false - } - if *p.TagValueID != *src { + if !p.TrajectoryAnalysisResult_.DeepEqual(src) { return false } return true } -// 实际行级payload -type ExperimentTurnPayload struct { - TurnID int64 `thrift:"turn_id,1" frugal:"1,default,i64" json:"turn_id" form:"turn_id" query:"turn_id"` - // 评测数据集数据 - EvalSet *TurnEvalSet `thrift:"eval_set,2,optional" frugal:"2,optional,TurnEvalSet" form:"eval_set" json:"eval_set,omitempty" query:"eval_set"` - // 评测对象结果 - TargetOutput *TurnTargetOutput `thrift:"target_output,3,optional" frugal:"3,optional,TurnTargetOutput" form:"target_output" json:"target_output,omitempty" query:"target_output"` - // 评测规则执行结果 - EvaluatorOutput *TurnEvaluatorOutput `thrift:"evaluator_output,4,optional" frugal:"4,optional,TurnEvaluatorOutput" form:"evaluator_output" json:"evaluator_output,omitempty" query:"evaluator_output"` - // 评测系统相关数据日志、error - SystemInfo *TurnSystemInfo `thrift:"system_info,5,optional" frugal:"5,optional,TurnSystemInfo" form:"system_info" json:"system_info,omitempty" query:"system_info"` - // 人工标注结果结果 - AnnotateResult_ *TurnAnnotateResult_ `thrift:"annotate_result,6,optional" frugal:"6,optional,TurnAnnotateResult_" form:"annotate_result" json:"annotate_result,omitempty" query:"annotate_result"` - // 轨迹分析结果 - TrajectoryAnalysisResult_ *TrajectoryAnalysisResult_ `thrift:"trajectory_analysis_result,7,optional" frugal:"7,optional,TrajectoryAnalysisResult_" form:"trajectory_analysis_result" json:"trajectory_analysis_result,omitempty" query:"trajectory_analysis_result"` -} - -func NewExperimentTurnPayload() *ExperimentTurnPayload { - return &ExperimentTurnPayload{} -} - -func (p *ExperimentTurnPayload) InitDefault() { -} - -func (p *ExperimentTurnPayload) GetTurnID() (v int64) { - if p != nil { - return p.TurnID - } - return -} - -var ExperimentTurnPayload_EvalSet_DEFAULT *TurnEvalSet - -func (p *ExperimentTurnPayload) GetEvalSet() (v *TurnEvalSet) { - if p == nil { - return - } - if !p.IsSetEvalSet() { - return ExperimentTurnPayload_EvalSet_DEFAULT - } - return p.EvalSet -} - -var ExperimentTurnPayload_TargetOutput_DEFAULT *TurnTargetOutput - -func (p *ExperimentTurnPayload) GetTargetOutput() (v *TurnTargetOutput) { - if p == nil { - return - } - if !p.IsSetTargetOutput() { - return ExperimentTurnPayload_TargetOutput_DEFAULT - } - return p.TargetOutput -} - -var ExperimentTurnPayload_EvaluatorOutput_DEFAULT *TurnEvaluatorOutput - -func (p *ExperimentTurnPayload) GetEvaluatorOutput() (v *TurnEvaluatorOutput) { - if p == nil { - return - } - if !p.IsSetEvaluatorOutput() { - return ExperimentTurnPayload_EvaluatorOutput_DEFAULT - } - return p.EvaluatorOutput +type TrajectoryAnalysisResult_ struct { + RecordID *int64 `thrift:"record_id,1,optional" frugal:"1,optional,i64" json:"record_id" form:"record_id" query:"record_id"` + Status *InsightAnalysisStatus `thrift:"Status,2,optional" frugal:"2,optional,string" form:"Status" json:"Status,omitempty" query:"Status"` } -var ExperimentTurnPayload_SystemInfo_DEFAULT *TurnSystemInfo - -func (p *ExperimentTurnPayload) GetSystemInfo() (v *TurnSystemInfo) { - if p == nil { - return - } - if !p.IsSetSystemInfo() { - return ExperimentTurnPayload_SystemInfo_DEFAULT - } - return p.SystemInfo +func NewTrajectoryAnalysisResult_() *TrajectoryAnalysisResult_ { + return &TrajectoryAnalysisResult_{} } -var ExperimentTurnPayload_AnnotateResult__DEFAULT *TurnAnnotateResult_ - -func (p *ExperimentTurnPayload) GetAnnotateResult_() (v *TurnAnnotateResult_) { - if p == nil { - return - } - if !p.IsSetAnnotateResult_() { - return ExperimentTurnPayload_AnnotateResult__DEFAULT - } - return p.AnnotateResult_ +func (p *TrajectoryAnalysisResult_) InitDefault() { } -var ExperimentTurnPayload_TrajectoryAnalysisResult__DEFAULT *TrajectoryAnalysisResult_ +var TrajectoryAnalysisResult__RecordID_DEFAULT int64 -func (p *ExperimentTurnPayload) GetTrajectoryAnalysisResult_() (v *TrajectoryAnalysisResult_) { +func (p *TrajectoryAnalysisResult_) GetRecordID() (v int64) { if p == nil { return } - if !p.IsSetTrajectoryAnalysisResult_() { - return ExperimentTurnPayload_TrajectoryAnalysisResult__DEFAULT + if !p.IsSetRecordID() { + return TrajectoryAnalysisResult__RecordID_DEFAULT } - return p.TrajectoryAnalysisResult_ -} -func (p *ExperimentTurnPayload) SetTurnID(val int64) { - p.TurnID = val -} -func (p *ExperimentTurnPayload) SetEvalSet(val *TurnEvalSet) { - p.EvalSet = val -} -func (p *ExperimentTurnPayload) SetTargetOutput(val *TurnTargetOutput) { - p.TargetOutput = val -} -func (p *ExperimentTurnPayload) SetEvaluatorOutput(val *TurnEvaluatorOutput) { - p.EvaluatorOutput = val -} -func (p *ExperimentTurnPayload) SetSystemInfo(val *TurnSystemInfo) { - p.SystemInfo = val -} -func (p *ExperimentTurnPayload) SetAnnotateResult_(val *TurnAnnotateResult_) { - p.AnnotateResult_ = val -} -func (p *ExperimentTurnPayload) SetTrajectoryAnalysisResult_(val *TrajectoryAnalysisResult_) { - p.TrajectoryAnalysisResult_ = val -} - -var fieldIDToName_ExperimentTurnPayload = map[int16]string{ - 1: "turn_id", - 2: "eval_set", - 3: "target_output", - 4: "evaluator_output", - 5: "system_info", - 6: "annotate_result", - 7: "trajectory_analysis_result", -} - -func (p *ExperimentTurnPayload) IsSetEvalSet() bool { - return p.EvalSet != nil + return *p.RecordID } -func (p *ExperimentTurnPayload) IsSetTargetOutput() bool { - return p.TargetOutput != nil -} +var TrajectoryAnalysisResult__Status_DEFAULT InsightAnalysisStatus -func (p *ExperimentTurnPayload) IsSetEvaluatorOutput() bool { - return p.EvaluatorOutput != nil +func (p *TrajectoryAnalysisResult_) GetStatus() (v InsightAnalysisStatus) { + if p == nil { + return + } + if !p.IsSetStatus() { + return TrajectoryAnalysisResult__Status_DEFAULT + } + return *p.Status +} +func (p *TrajectoryAnalysisResult_) SetRecordID(val *int64) { + p.RecordID = val +} +func (p *TrajectoryAnalysisResult_) SetStatus(val *InsightAnalysisStatus) { + p.Status = val } -func (p *ExperimentTurnPayload) IsSetSystemInfo() bool { - return p.SystemInfo != nil +var fieldIDToName_TrajectoryAnalysisResult_ = map[int16]string{ + 1: "record_id", + 2: "Status", } -func (p *ExperimentTurnPayload) IsSetAnnotateResult_() bool { - return p.AnnotateResult_ != nil +func (p *TrajectoryAnalysisResult_) IsSetRecordID() bool { + return p.RecordID != nil } -func (p *ExperimentTurnPayload) IsSetTrajectoryAnalysisResult_() bool { - return p.TrajectoryAnalysisResult_ != nil +func (p *TrajectoryAnalysisResult_) IsSetStatus() bool { + return p.Status != nil } -func (p *ExperimentTurnPayload) Read(iprot thrift.TProtocol) (err error) { +func (p *TrajectoryAnalysisResult_) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -11457,53 +15049,13 @@ func (p *ExperimentTurnPayload) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 2: - if fieldTypeId == thrift.STRUCT { + if fieldTypeId == thrift.STRING { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 3: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } 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.STRUCT { - 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 - } - case 7: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField7(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 @@ -11523,7 +15075,7 @@ ReadStructBeginError: 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_ExperimentTurnPayload[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_TrajectoryAnalysisResult_[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -11533,69 +15085,32 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentTurnPayload) ReadField1(iprot thrift.TProtocol) error { +func (p *TrajectoryAnalysisResult_) ReadField1(iprot thrift.TProtocol) error { - var _field int64 + var _field *int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - _field = v - } - p.TurnID = _field - return nil -} -func (p *ExperimentTurnPayload) ReadField2(iprot thrift.TProtocol) error { - _field := NewTurnEvalSet() - if err := _field.Read(iprot); err != nil { - return err - } - p.EvalSet = _field - return nil -} -func (p *ExperimentTurnPayload) ReadField3(iprot thrift.TProtocol) error { - _field := NewTurnTargetOutput() - if err := _field.Read(iprot); err != nil { - return err - } - p.TargetOutput = _field - return nil -} -func (p *ExperimentTurnPayload) ReadField4(iprot thrift.TProtocol) error { - _field := NewTurnEvaluatorOutput() - if err := _field.Read(iprot); err != nil { - return err - } - p.EvaluatorOutput = _field - return nil -} -func (p *ExperimentTurnPayload) ReadField5(iprot thrift.TProtocol) error { - _field := NewTurnSystemInfo() - if err := _field.Read(iprot); err != nil { - return err - } - p.SystemInfo = _field - return nil -} -func (p *ExperimentTurnPayload) ReadField6(iprot thrift.TProtocol) error { - _field := NewTurnAnnotateResult_() - if err := _field.Read(iprot); err != nil { - return err + _field = &v } - p.AnnotateResult_ = _field + p.RecordID = _field return nil } -func (p *ExperimentTurnPayload) ReadField7(iprot thrift.TProtocol) error { - _field := NewTrajectoryAnalysisResult_() - if err := _field.Read(iprot); err != nil { +func (p *TrajectoryAnalysisResult_) ReadField2(iprot thrift.TProtocol) error { + + var _field *InsightAnalysisStatus + if v, err := iprot.ReadString(); err != nil { return err + } else { + _field = &v } - p.TrajectoryAnalysisResult_ = _field + p.Status = _field return nil } -func (p *ExperimentTurnPayload) Write(oprot thrift.TProtocol) (err error) { +func (p *TrajectoryAnalysisResult_) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ExperimentTurnPayload"); err != nil { + if err = oprot.WriteStructBegin("TrajectoryAnalysisResult"); err != nil { goto WriteStructBeginError } if p != nil { @@ -11607,26 +15122,6 @@ func (p *ExperimentTurnPayload) Write(oprot thrift.TProtocol) (err error) { 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 = p.writeField7(oprot); err != nil { - fieldId = 7 - goto WriteFieldError - } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -11639,106 +15134,18 @@ 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 *ExperimentTurnPayload) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("turn_id", thrift.I64, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.TurnID); 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 *ExperimentTurnPayload) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetEvalSet() { - if err = oprot.WriteFieldBegin("eval_set", thrift.STRUCT, 2); err != nil { - goto WriteFieldBeginError - } - if err := p.EvalSet.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 2 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) -} -func (p *ExperimentTurnPayload) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetTargetOutput() { - if err = oprot.WriteFieldBegin("target_output", thrift.STRUCT, 3); err != nil { - goto WriteFieldBeginError - } - if err := p.TargetOutput.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 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *ExperimentTurnPayload) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetEvaluatorOutput() { - if err = oprot.WriteFieldBegin("evaluator_output", thrift.STRUCT, 4); err != nil { - goto WriteFieldBeginError - } - if err := p.EvaluatorOutput.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 *ExperimentTurnPayload) writeField5(oprot thrift.TProtocol) (err error) { - if p.IsSetSystemInfo() { - if err = oprot.WriteFieldBegin("system_info", thrift.STRUCT, 5); err != nil { - goto WriteFieldBeginError - } - if err := p.SystemInfo.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 5 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), 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 *ExperimentTurnPayload) writeField6(oprot thrift.TProtocol) (err error) { - if p.IsSetAnnotateResult_() { - if err = oprot.WriteFieldBegin("annotate_result", thrift.STRUCT, 6); err != nil { + +func (p *TrajectoryAnalysisResult_) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetRecordID() { + if err = oprot.WriteFieldBegin("record_id", thrift.I64, 1); err != nil { goto WriteFieldBeginError } - if err := p.AnnotateResult_.Write(oprot); err != nil { + if err := oprot.WriteI64(*p.RecordID); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -11747,16 +15154,16 @@ func (p *ExperimentTurnPayload) writeField6(oprot thrift.TProtocol) (err error) } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentTurnPayload) writeField7(oprot thrift.TProtocol) (err error) { - if p.IsSetTrajectoryAnalysisResult_() { - if err = oprot.WriteFieldBegin("trajectory_analysis_result", thrift.STRUCT, 7); err != nil { +func (p *TrajectoryAnalysisResult_) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetStatus() { + if err = oprot.WriteFieldBegin("Status", thrift.STRING, 2); err != nil { goto WriteFieldBeginError } - if err := p.TrajectoryAnalysisResult_.Write(oprot); err != nil { + if err := oprot.WriteString(*p.Status); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -11765,155 +15172,115 @@ func (p *ExperimentTurnPayload) writeField7(oprot thrift.TProtocol) (err error) } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *ExperimentTurnPayload) String() string { +func (p *TrajectoryAnalysisResult_) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentTurnPayload(%+v)", *p) + return fmt.Sprintf("TrajectoryAnalysisResult_(%+v)", *p) } -func (p *ExperimentTurnPayload) DeepEqual(ano *ExperimentTurnPayload) bool { +func (p *TrajectoryAnalysisResult_) DeepEqual(ano *TrajectoryAnalysisResult_) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.TurnID) { - return false - } - if !p.Field2DeepEqual(ano.EvalSet) { - return false - } - if !p.Field3DeepEqual(ano.TargetOutput) { - return false - } - if !p.Field4DeepEqual(ano.EvaluatorOutput) { - return false - } - if !p.Field5DeepEqual(ano.SystemInfo) { - return false - } - if !p.Field6DeepEqual(ano.AnnotateResult_) { - return false - } - if !p.Field7DeepEqual(ano.TrajectoryAnalysisResult_) { - return false - } - return true -} - -func (p *ExperimentTurnPayload) Field1DeepEqual(src int64) bool { - - if p.TurnID != src { + if !p.Field1DeepEqual(ano.RecordID) { return false } - return true -} -func (p *ExperimentTurnPayload) Field2DeepEqual(src *TurnEvalSet) bool { - - if !p.EvalSet.DeepEqual(src) { + if !p.Field2DeepEqual(ano.Status) { return false } return true } -func (p *ExperimentTurnPayload) Field3DeepEqual(src *TurnTargetOutput) bool { - if !p.TargetOutput.DeepEqual(src) { - return false - } - return true -} -func (p *ExperimentTurnPayload) Field4DeepEqual(src *TurnEvaluatorOutput) bool { +func (p *TrajectoryAnalysisResult_) Field1DeepEqual(src *int64) bool { - if !p.EvaluatorOutput.DeepEqual(src) { + if p.RecordID == src { + return true + } else if p.RecordID == nil || src == nil { return false } - return true -} -func (p *ExperimentTurnPayload) Field5DeepEqual(src *TurnSystemInfo) bool { - - if !p.SystemInfo.DeepEqual(src) { + if *p.RecordID != *src { return false } return true } -func (p *ExperimentTurnPayload) Field6DeepEqual(src *TurnAnnotateResult_) bool { +func (p *TrajectoryAnalysisResult_) Field2DeepEqual(src *InsightAnalysisStatus) bool { - if !p.AnnotateResult_.DeepEqual(src) { + if p.Status == src { + return true + } else if p.Status == nil || src == nil { return false } - return true -} -func (p *ExperimentTurnPayload) Field7DeepEqual(src *TrajectoryAnalysisResult_) bool { - - if !p.TrajectoryAnalysisResult_.DeepEqual(src) { + if strings.Compare(*p.Status, *src) != 0 { return false } return true } -type TrajectoryAnalysisResult_ struct { - RecordID *int64 `thrift:"record_id,1,optional" frugal:"1,optional,i64" json:"record_id" form:"record_id" query:"record_id"` - Status *InsightAnalysisStatus `thrift:"Status,2,optional" frugal:"2,optional,string" form:"Status" json:"Status,omitempty" query:"Status"` +type KeywordSearch struct { + Keyword *string `thrift:"keyword,1,optional" frugal:"1,optional,string" form:"keyword" json:"keyword,omitempty" query:"keyword"` + FilterFields []*FilterField `thrift:"filter_fields,2,optional" frugal:"2,optional,list" form:"filter_fields" json:"filter_fields,omitempty" query:"filter_fields"` } -func NewTrajectoryAnalysisResult_() *TrajectoryAnalysisResult_ { - return &TrajectoryAnalysisResult_{} +func NewKeywordSearch() *KeywordSearch { + return &KeywordSearch{} } -func (p *TrajectoryAnalysisResult_) InitDefault() { +func (p *KeywordSearch) InitDefault() { } -var TrajectoryAnalysisResult__RecordID_DEFAULT int64 +var KeywordSearch_Keyword_DEFAULT string -func (p *TrajectoryAnalysisResult_) GetRecordID() (v int64) { +func (p *KeywordSearch) GetKeyword() (v string) { if p == nil { return } - if !p.IsSetRecordID() { - return TrajectoryAnalysisResult__RecordID_DEFAULT + if !p.IsSetKeyword() { + return KeywordSearch_Keyword_DEFAULT } - return *p.RecordID + return *p.Keyword } -var TrajectoryAnalysisResult__Status_DEFAULT InsightAnalysisStatus +var KeywordSearch_FilterFields_DEFAULT []*FilterField -func (p *TrajectoryAnalysisResult_) GetStatus() (v InsightAnalysisStatus) { +func (p *KeywordSearch) GetFilterFields() (v []*FilterField) { if p == nil { return } - if !p.IsSetStatus() { - return TrajectoryAnalysisResult__Status_DEFAULT + if !p.IsSetFilterFields() { + return KeywordSearch_FilterFields_DEFAULT } - return *p.Status + return p.FilterFields } -func (p *TrajectoryAnalysisResult_) SetRecordID(val *int64) { - p.RecordID = val +func (p *KeywordSearch) SetKeyword(val *string) { + p.Keyword = val } -func (p *TrajectoryAnalysisResult_) SetStatus(val *InsightAnalysisStatus) { - p.Status = val +func (p *KeywordSearch) SetFilterFields(val []*FilterField) { + p.FilterFields = val } -var fieldIDToName_TrajectoryAnalysisResult_ = map[int16]string{ - 1: "record_id", - 2: "Status", +var fieldIDToName_KeywordSearch = map[int16]string{ + 1: "keyword", + 2: "filter_fields", } -func (p *TrajectoryAnalysisResult_) IsSetRecordID() bool { - return p.RecordID != nil +func (p *KeywordSearch) IsSetKeyword() bool { + return p.Keyword != nil } -func (p *TrajectoryAnalysisResult_) IsSetStatus() bool { - return p.Status != nil +func (p *KeywordSearch) IsSetFilterFields() bool { + return p.FilterFields != nil } -func (p *TrajectoryAnalysisResult_) Read(iprot thrift.TProtocol) (err error) { +func (p *KeywordSearch) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -11932,7 +15299,7 @@ func (p *TrajectoryAnalysisResult_) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.STRING { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } @@ -11940,7 +15307,7 @@ func (p *TrajectoryAnalysisResult_) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 2: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.LIST { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } @@ -11966,7 +15333,7 @@ ReadStructBeginError: 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_TrajectoryAnalysisResult_[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_KeywordSearch[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -11976,32 +15343,44 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *TrajectoryAnalysisResult_) ReadField1(iprot thrift.TProtocol) error { +func (p *KeywordSearch) ReadField1(iprot thrift.TProtocol) error { - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { + var _field *string + if v, err := iprot.ReadString(); err != nil { return err } else { _field = &v } - p.RecordID = _field + p.Keyword = _field return nil } -func (p *TrajectoryAnalysisResult_) ReadField2(iprot thrift.TProtocol) error { +func (p *KeywordSearch) 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() - var _field *InsightAnalysisStatus - if v, err := iprot.ReadString(); err != nil { + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { return err - } else { - _field = &v } - p.Status = _field + p.FilterFields = _field return nil } -func (p *TrajectoryAnalysisResult_) Write(oprot thrift.TProtocol) (err error) { +func (p *KeywordSearch) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("TrajectoryAnalysisResult"); err != nil { + if err = oprot.WriteStructBegin("KeywordSearch"); err != nil { goto WriteStructBeginError } if p != nil { @@ -12031,12 +15410,12 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *TrajectoryAnalysisResult_) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetRecordID() { - if err = oprot.WriteFieldBegin("record_id", thrift.I64, 1); err != nil { +func (p *KeywordSearch) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetKeyword() { + if err = oprot.WriteFieldBegin("keyword", thrift.STRING, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI64(*p.RecordID); err != nil { + if err := oprot.WriteString(*p.Keyword); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -12049,12 +15428,20 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *TrajectoryAnalysisResult_) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetStatus() { - if err = oprot.WriteFieldBegin("Status", thrift.STRING, 2); err != nil { +func (p *KeywordSearch) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetFilterFields() { + if err = oprot.WriteFieldBegin("filter_fields", thrift.LIST, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(*p.Status); err != nil { + 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 { @@ -12068,110 +15455,111 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *TrajectoryAnalysisResult_) String() string { +func (p *KeywordSearch) String() string { if p == nil { return "" } - return fmt.Sprintf("TrajectoryAnalysisResult_(%+v)", *p) + return fmt.Sprintf("KeywordSearch(%+v)", *p) } -func (p *TrajectoryAnalysisResult_) DeepEqual(ano *TrajectoryAnalysisResult_) bool { +func (p *KeywordSearch) DeepEqual(ano *KeywordSearch) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.RecordID) { + if !p.Field1DeepEqual(ano.Keyword) { return false } - if !p.Field2DeepEqual(ano.Status) { + if !p.Field2DeepEqual(ano.FilterFields) { return false } return true } -func (p *TrajectoryAnalysisResult_) Field1DeepEqual(src *int64) bool { +func (p *KeywordSearch) Field1DeepEqual(src *string) bool { - if p.RecordID == src { + if p.Keyword == src { return true - } else if p.RecordID == nil || src == nil { + } else if p.Keyword == nil || src == nil { return false } - if *p.RecordID != *src { + if strings.Compare(*p.Keyword, *src) != 0 { return false } return true } -func (p *TrajectoryAnalysisResult_) Field2DeepEqual(src *InsightAnalysisStatus) bool { +func (p *KeywordSearch) Field2DeepEqual(src []*FilterField) bool { - if p.Status == src { - return true - } else if p.Status == nil || src == nil { + if len(p.FilterFields) != len(src) { return false } - if strings.Compare(*p.Status, *src) != 0 { - return false + for i, v := range p.FilterFields { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } } return true } - -type KeywordSearch struct { - Keyword *string `thrift:"keyword,1,optional" frugal:"1,optional,string" form:"keyword" json:"keyword,omitempty" query:"keyword"` - FilterFields []*FilterField `thrift:"filter_fields,2,optional" frugal:"2,optional,list" form:"filter_fields" json:"filter_fields,omitempty" query:"filter_fields"` + +type ExperimentFilter struct { + Filters *Filters `thrift:"filters,1,optional" frugal:"1,optional,Filters" form:"filters" json:"filters,omitempty" query:"filters"` + KeywordSearch *KeywordSearch `thrift:"keyword_search,2,optional" frugal:"2,optional,KeywordSearch" form:"keyword_search" json:"keyword_search,omitempty" query:"keyword_search"` } -func NewKeywordSearch() *KeywordSearch { - return &KeywordSearch{} +func NewExperimentFilter() *ExperimentFilter { + return &ExperimentFilter{} } -func (p *KeywordSearch) InitDefault() { +func (p *ExperimentFilter) InitDefault() { } -var KeywordSearch_Keyword_DEFAULT string +var ExperimentFilter_Filters_DEFAULT *Filters -func (p *KeywordSearch) GetKeyword() (v string) { +func (p *ExperimentFilter) GetFilters() (v *Filters) { if p == nil { return } - if !p.IsSetKeyword() { - return KeywordSearch_Keyword_DEFAULT + if !p.IsSetFilters() { + return ExperimentFilter_Filters_DEFAULT } - return *p.Keyword + return p.Filters } -var KeywordSearch_FilterFields_DEFAULT []*FilterField +var ExperimentFilter_KeywordSearch_DEFAULT *KeywordSearch -func (p *KeywordSearch) GetFilterFields() (v []*FilterField) { +func (p *ExperimentFilter) GetKeywordSearch() (v *KeywordSearch) { if p == nil { return } - if !p.IsSetFilterFields() { - return KeywordSearch_FilterFields_DEFAULT + if !p.IsSetKeywordSearch() { + return ExperimentFilter_KeywordSearch_DEFAULT } - return p.FilterFields + return p.KeywordSearch } -func (p *KeywordSearch) SetKeyword(val *string) { - p.Keyword = val +func (p *ExperimentFilter) SetFilters(val *Filters) { + p.Filters = val } -func (p *KeywordSearch) SetFilterFields(val []*FilterField) { - p.FilterFields = val +func (p *ExperimentFilter) SetKeywordSearch(val *KeywordSearch) { + p.KeywordSearch = val } -var fieldIDToName_KeywordSearch = map[int16]string{ - 1: "keyword", - 2: "filter_fields", +var fieldIDToName_ExperimentFilter = map[int16]string{ + 1: "filters", + 2: "keyword_search", } -func (p *KeywordSearch) IsSetKeyword() bool { - return p.Keyword != nil +func (p *ExperimentFilter) IsSetFilters() bool { + return p.Filters != nil } -func (p *KeywordSearch) IsSetFilterFields() bool { - return p.FilterFields != nil +func (p *ExperimentFilter) IsSetKeywordSearch() bool { + return p.KeywordSearch != nil } -func (p *KeywordSearch) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentFilter) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -12190,7 +15578,7 @@ func (p *KeywordSearch) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.STRUCT { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } @@ -12198,7 +15586,7 @@ func (p *KeywordSearch) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 2: - if fieldTypeId == thrift.LIST { + if fieldTypeId == thrift.STRUCT { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } @@ -12224,7 +15612,7 @@ ReadStructBeginError: 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_KeywordSearch[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentFilter[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -12234,44 +15622,26 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *KeywordSearch) ReadField1(iprot thrift.TProtocol) error { - - var _field *string - if v, err := iprot.ReadString(); err != nil { +func (p *ExperimentFilter) ReadField1(iprot thrift.TProtocol) error { + _field := NewFilters() + if err := _field.Read(iprot); err != nil { return err - } else { - _field = &v } - p.Keyword = _field + p.Filters = _field return nil } -func (p *KeywordSearch) 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 { +func (p *ExperimentFilter) ReadField2(iprot thrift.TProtocol) error { + _field := NewKeywordSearch() + if err := _field.Read(iprot); err != nil { return err } - p.FilterFields = _field + p.KeywordSearch = _field return nil } -func (p *KeywordSearch) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentFilter) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("KeywordSearch"); err != nil { + if err = oprot.WriteStructBegin("ExperimentFilter"); err != nil { goto WriteStructBeginError } if p != nil { @@ -12301,12 +15671,12 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *KeywordSearch) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetKeyword() { - if err = oprot.WriteFieldBegin("keyword", thrift.STRING, 1); err != nil { +func (p *ExperimentFilter) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetFilters() { + if err = oprot.WriteFieldBegin("filters", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(*p.Keyword); err != nil { + if err := p.Filters.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -12319,20 +15689,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *KeywordSearch) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetFilterFields() { - if err = oprot.WriteFieldBegin("filter_fields", thrift.LIST, 2); err != nil { +func (p *ExperimentFilter) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetKeywordSearch() { + if err = oprot.WriteFieldBegin("keyword_search", thrift.STRUCT, 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 { + if err := p.KeywordSearch.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -12346,111 +15708,101 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *KeywordSearch) String() string { +func (p *ExperimentFilter) String() string { if p == nil { return "" } - return fmt.Sprintf("KeywordSearch(%+v)", *p) + return fmt.Sprintf("ExperimentFilter(%+v)", *p) } -func (p *KeywordSearch) DeepEqual(ano *KeywordSearch) bool { +func (p *ExperimentFilter) DeepEqual(ano *ExperimentFilter) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.Keyword) { + if !p.Field1DeepEqual(ano.Filters) { return false } - if !p.Field2DeepEqual(ano.FilterFields) { + if !p.Field2DeepEqual(ano.KeywordSearch) { return false } return true } -func (p *KeywordSearch) Field1DeepEqual(src *string) bool { +func (p *ExperimentFilter) Field1DeepEqual(src *Filters) bool { - if p.Keyword == src { - return true - } else if p.Keyword == nil || src == nil { - return false - } - if strings.Compare(*p.Keyword, *src) != 0 { + if !p.Filters.DeepEqual(src) { return false } return true } -func (p *KeywordSearch) Field2DeepEqual(src []*FilterField) bool { +func (p *ExperimentFilter) Field2DeepEqual(src *KeywordSearch) bool { - if len(p.FilterFields) != len(src) { + if !p.KeywordSearch.DeepEqual(src) { return false } - for i, v := range p.FilterFields { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } return true } -type ExperimentFilter struct { +// 实验模板筛选器,字段设计复用实验的 Filters / KeywordSearch 能力 +type ExperimentTemplateFilter struct { Filters *Filters `thrift:"filters,1,optional" frugal:"1,optional,Filters" form:"filters" json:"filters,omitempty" query:"filters"` KeywordSearch *KeywordSearch `thrift:"keyword_search,2,optional" frugal:"2,optional,KeywordSearch" form:"keyword_search" json:"keyword_search,omitempty" query:"keyword_search"` } -func NewExperimentFilter() *ExperimentFilter { - return &ExperimentFilter{} +func NewExperimentTemplateFilter() *ExperimentTemplateFilter { + return &ExperimentTemplateFilter{} } -func (p *ExperimentFilter) InitDefault() { +func (p *ExperimentTemplateFilter) InitDefault() { } -var ExperimentFilter_Filters_DEFAULT *Filters +var ExperimentTemplateFilter_Filters_DEFAULT *Filters -func (p *ExperimentFilter) GetFilters() (v *Filters) { +func (p *ExperimentTemplateFilter) GetFilters() (v *Filters) { if p == nil { return } if !p.IsSetFilters() { - return ExperimentFilter_Filters_DEFAULT + return ExperimentTemplateFilter_Filters_DEFAULT } return p.Filters } -var ExperimentFilter_KeywordSearch_DEFAULT *KeywordSearch +var ExperimentTemplateFilter_KeywordSearch_DEFAULT *KeywordSearch -func (p *ExperimentFilter) GetKeywordSearch() (v *KeywordSearch) { +func (p *ExperimentTemplateFilter) GetKeywordSearch() (v *KeywordSearch) { if p == nil { return } if !p.IsSetKeywordSearch() { - return ExperimentFilter_KeywordSearch_DEFAULT + return ExperimentTemplateFilter_KeywordSearch_DEFAULT } return p.KeywordSearch } -func (p *ExperimentFilter) SetFilters(val *Filters) { +func (p *ExperimentTemplateFilter) SetFilters(val *Filters) { p.Filters = val } -func (p *ExperimentFilter) SetKeywordSearch(val *KeywordSearch) { +func (p *ExperimentTemplateFilter) SetKeywordSearch(val *KeywordSearch) { p.KeywordSearch = val } -var fieldIDToName_ExperimentFilter = map[int16]string{ +var fieldIDToName_ExperimentTemplateFilter = map[int16]string{ 1: "filters", 2: "keyword_search", } -func (p *ExperimentFilter) IsSetFilters() bool { +func (p *ExperimentTemplateFilter) IsSetFilters() bool { return p.Filters != nil } -func (p *ExperimentFilter) IsSetKeywordSearch() bool { +func (p *ExperimentTemplateFilter) IsSetKeywordSearch() bool { return p.KeywordSearch != nil } -func (p *ExperimentFilter) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentTemplateFilter) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -12503,7 +15855,7 @@ ReadStructBeginError: 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_ExperimentFilter[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentTemplateFilter[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -12513,7 +15865,7 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentFilter) ReadField1(iprot thrift.TProtocol) error { +func (p *ExperimentTemplateFilter) ReadField1(iprot thrift.TProtocol) error { _field := NewFilters() if err := _field.Read(iprot); err != nil { return err @@ -12521,7 +15873,7 @@ func (p *ExperimentFilter) ReadField1(iprot thrift.TProtocol) error { p.Filters = _field return nil } -func (p *ExperimentFilter) ReadField2(iprot thrift.TProtocol) error { +func (p *ExperimentTemplateFilter) ReadField2(iprot thrift.TProtocol) error { _field := NewKeywordSearch() if err := _field.Read(iprot); err != nil { return err @@ -12530,9 +15882,9 @@ func (p *ExperimentFilter) ReadField2(iprot thrift.TProtocol) error { return nil } -func (p *ExperimentFilter) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentTemplateFilter) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ExperimentFilter"); err != nil { + if err = oprot.WriteStructBegin("ExperimentTemplateFilter"); err != nil { goto WriteStructBeginError } if p != nil { @@ -12562,7 +15914,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentFilter) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentTemplateFilter) writeField1(oprot thrift.TProtocol) (err error) { if p.IsSetFilters() { if err = oprot.WriteFieldBegin("filters", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError @@ -12580,7 +15932,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentFilter) writeField2(oprot thrift.TProtocol) (err error) { +func (p *ExperimentTemplateFilter) writeField2(oprot thrift.TProtocol) (err error) { if p.IsSetKeywordSearch() { if err = oprot.WriteFieldBegin("keyword_search", thrift.STRUCT, 2); err != nil { goto WriteFieldBeginError @@ -12599,15 +15951,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *ExperimentFilter) String() string { +func (p *ExperimentTemplateFilter) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentFilter(%+v)", *p) + return fmt.Sprintf("ExperimentTemplateFilter(%+v)", *p) } -func (p *ExperimentFilter) DeepEqual(ano *ExperimentFilter) bool { +func (p *ExperimentTemplateFilter) DeepEqual(ano *ExperimentTemplateFilter) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -12622,14 +15974,14 @@ func (p *ExperimentFilter) DeepEqual(ano *ExperimentFilter) bool { return true } -func (p *ExperimentFilter) Field1DeepEqual(src *Filters) bool { +func (p *ExperimentTemplateFilter) Field1DeepEqual(src *Filters) bool { if !p.Filters.DeepEqual(src) { return false } return true } -func (p *ExperimentFilter) Field2DeepEqual(src *KeywordSearch) bool { +func (p *ExperimentTemplateFilter) Field2DeepEqual(src *KeywordSearch) bool { if !p.KeywordSearch.DeepEqual(src) { return false @@ -13823,7 +17175,8 @@ type ExptAggregateResult_ struct { AnnotationResults map[int64]*AnnotationAggregateResult_ `thrift:"annotation_results,4,optional" frugal:"4,optional,map" json:"annotation_results" form:"annotation_results" query:"annotation_results"` EvalTargetAggrResult_ *EvalTargetAggregateResult_ `thrift:"eval_target_aggr_result,5,optional" frugal:"5,optional,EvalTargetAggregateResult_" form:"eval_target_aggr_result" json:"eval_target_aggr_result,omitempty" query:"eval_target_aggr_result"` // timestamp in seconds - UpdateTime *int64 `thrift:"update_time,6,optional" frugal:"6,optional,i64" form:"update_time" json:"update_time,omitempty" query:"update_time"` + UpdateTime *int64 `thrift:"update_time,6,optional" frugal:"6,optional,i64" form:"update_time" json:"update_time,omitempty" query:"update_time"` + WeightedResults []*AggregatorResult_ `thrift:"weighted_results,10,optional" frugal:"10,optional,list" json:"weighted_results" form:"weighted_results" query:"weighted_results"` } func NewExptAggregateResult_() *ExptAggregateResult_ { @@ -13899,6 +17252,18 @@ func (p *ExptAggregateResult_) GetUpdateTime() (v int64) { } return *p.UpdateTime } + +var ExptAggregateResult__WeightedResults_DEFAULT []*AggregatorResult_ + +func (p *ExptAggregateResult_) GetWeightedResults() (v []*AggregatorResult_) { + if p == nil { + return + } + if !p.IsSetWeightedResults() { + return ExptAggregateResult__WeightedResults_DEFAULT + } + return p.WeightedResults +} func (p *ExptAggregateResult_) SetExperimentID(val int64) { p.ExperimentID = val } @@ -13917,14 +17282,18 @@ func (p *ExptAggregateResult_) SetEvalTargetAggrResult_(val *EvalTargetAggregate func (p *ExptAggregateResult_) SetUpdateTime(val *int64) { p.UpdateTime = val } +func (p *ExptAggregateResult_) SetWeightedResults(val []*AggregatorResult_) { + p.WeightedResults = val +} var fieldIDToName_ExptAggregateResult_ = map[int16]string{ - 1: "experiment_id", - 2: "evaluator_results", - 3: "status", - 4: "annotation_results", - 5: "eval_target_aggr_result", - 6: "update_time", + 1: "experiment_id", + 2: "evaluator_results", + 3: "status", + 4: "annotation_results", + 5: "eval_target_aggr_result", + 6: "update_time", + 10: "weighted_results", } func (p *ExptAggregateResult_) IsSetEvaluatorResults() bool { @@ -13947,6 +17316,10 @@ func (p *ExptAggregateResult_) IsSetUpdateTime() bool { return p.UpdateTime != nil } +func (p *ExptAggregateResult_) IsSetWeightedResults() bool { + return p.WeightedResults != nil +} + func (p *ExptAggregateResult_) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -14015,6 +17388,14 @@ func (p *ExptAggregateResult_) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 10: + if fieldTypeId == thrift.LIST { + if err = p.ReadField10(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 @@ -14150,6 +17531,29 @@ func (p *ExptAggregateResult_) ReadField6(iprot thrift.TProtocol) error { p.UpdateTime = _field return nil } +func (p *ExptAggregateResult_) ReadField10(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*AggregatorResult_, 0, size) + values := make([]AggregatorResult_, 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.WeightedResults = _field + return nil +} func (p *ExptAggregateResult_) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 @@ -14181,6 +17585,10 @@ func (p *ExptAggregateResult_) Write(oprot thrift.TProtocol) (err error) { fieldId = 6 goto WriteFieldError } + if err = p.writeField10(oprot); err != nil { + fieldId = 10 + goto WriteFieldError + } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -14327,6 +17735,32 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) } +func (p *ExptAggregateResult_) writeField10(oprot thrift.TProtocol) (err error) { + if p.IsSetWeightedResults() { + if err = oprot.WriteFieldBegin("weighted_results", thrift.LIST, 10); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.WeightedResults)); err != nil { + return err + } + for _, v := range p.WeightedResults { + 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 10 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 10 end error: ", p), err) +} func (p *ExptAggregateResult_) String() string { if p == nil { @@ -14360,6 +17794,9 @@ func (p *ExptAggregateResult_) DeepEqual(ano *ExptAggregateResult_) bool { if !p.Field6DeepEqual(ano.UpdateTime) { return false } + if !p.Field10DeepEqual(ano.WeightedResults) { + return false + } return true } @@ -14427,6 +17864,19 @@ func (p *ExptAggregateResult_) Field6DeepEqual(src *int64) bool { } return true } +func (p *ExptAggregateResult_) Field10DeepEqual(src []*AggregatorResult_) bool { + + if len(p.WeightedResults) != len(src) { + return false + } + for i, v := range p.WeightedResults { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} type EvalTargetAggregateResult_ struct { TargetID *int64 `thrift:"target_id,1,optional" frugal:"1,optional,i64" json:"target_id" form:"target_id" query:"target_id"` diff --git a/backend/kitex_gen/coze/loop/evaluation/domain/expt/expt_validator.go b/backend/kitex_gen/coze/loop/evaluation/domain/expt/expt_validator.go index 64196e67d..908bc2264 100644 --- a/backend/kitex_gen/coze/loop/evaluation/domain/expt/expt_validator.go +++ b/backend/kitex_gen/coze/loop/evaluation/domain/expt/expt_validator.go @@ -52,6 +52,84 @@ func (p *Experiment) IsValid() error { return fmt.Errorf("field TargetRuntimeParam not valid, %w", err) } } + if p.ExptTemplateMeta != nil { + if err := p.ExptTemplateMeta.IsValid(); err != nil { + return fmt.Errorf("field ExptTemplateMeta not valid, %w", err) + } + } + if p.ScoreWeightConfig != nil { + if err := p.ScoreWeightConfig.IsValid(); err != nil { + return fmt.Errorf("field ScoreWeightConfig not valid, %w", err) + } + } + return nil +} +func (p *ExptTemplateMeta) IsValid() error { + return nil +} +func (p *ExptTuple) IsValid() error { + if p.EvalSet != nil { + if err := p.EvalSet.IsValid(); err != nil { + return fmt.Errorf("field EvalSet not valid, %w", err) + } + } + if p.EvalTarget != nil { + if err := p.EvalTarget.IsValid(); err != nil { + return fmt.Errorf("field EvalTarget not valid, %w", err) + } + } + return nil +} +func (p *ExptFieldMapping) IsValid() error { + if p.TargetFieldMapping != nil { + if err := p.TargetFieldMapping.IsValid(); err != nil { + return fmt.Errorf("field TargetFieldMapping not valid, %w", err) + } + } + if p.TargetRuntimeParam != nil { + if err := p.TargetRuntimeParam.IsValid(); err != nil { + return fmt.Errorf("field TargetRuntimeParam not valid, %w", err) + } + } + return nil +} +func (p *ExptScoreWeight) IsValid() error { + return nil +} +func (p *ExptTemplate) IsValid() error { + if p.Meta != nil { + if err := p.Meta.IsValid(); err != nil { + return fmt.Errorf("field Meta not valid, %w", err) + } + } + if p.TripleConfig != nil { + if err := p.TripleConfig.IsValid(); err != nil { + return fmt.Errorf("field TripleConfig not valid, %w", err) + } + } + if p.FieldMappingConfig != nil { + if err := p.FieldMappingConfig.IsValid(); err != nil { + return fmt.Errorf("field FieldMappingConfig not valid, %w", err) + } + } + if p.ScoreWeightConfig != nil { + if err := p.ScoreWeightConfig.IsValid(); err != nil { + return fmt.Errorf("field ScoreWeightConfig not valid, %w", err) + } + } + if p.ExptInfo != nil { + if err := p.ExptInfo.IsValid(); err != nil { + return fmt.Errorf("field ExptInfo not valid, %w", err) + } + } + if p.BaseInfo != nil { + if err := p.BaseInfo.IsValid(); err != nil { + return fmt.Errorf("field BaseInfo not valid, %w", err) + } + } + return nil +} +func (p *ExptInfo) IsValid() error { return nil } func (p *TokenUsage) IsValid() error { @@ -220,6 +298,19 @@ func (p *ExperimentFilter) IsValid() error { } return nil } +func (p *ExperimentTemplateFilter) IsValid() error { + if p.Filters != nil { + if err := p.Filters.IsValid(); err != nil { + return fmt.Errorf("field Filters not valid, %w", err) + } + } + if p.KeywordSearch != nil { + if err := p.KeywordSearch.IsValid(); err != nil { + return fmt.Errorf("field KeywordSearch not valid, %w", err) + } + } + return nil +} func (p *Filters) IsValid() error { return nil } diff --git a/backend/kitex_gen/coze/loop/evaluation/domain/expt/k-expt.go b/backend/kitex_gen/coze/loop/evaluation/domain/expt/k-expt.go index e9d6455f2..801e097f2 100644 --- a/backend/kitex_gen/coze/loop/evaluation/domain/expt/k-expt.go +++ b/backend/kitex_gen/coze/loop/evaluation/domain/expt/k-expt.go @@ -432,6 +432,48 @@ func (p *Experiment) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 60: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField60(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 61: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField61(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 62: + if fieldTypeId == thrift.BOOL { + l, err = p.FastReadField62(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 @@ -865,6 +907,44 @@ func (p *Experiment) FastReadField51(buf []byte) (int, error) { return offset, nil } +func (p *Experiment) FastReadField60(buf []byte) (int, error) { + offset := 0 + _field := NewExptTemplateMeta() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.ExptTemplateMeta = _field + return offset, nil +} + +func (p *Experiment) FastReadField61(buf []byte) (int, error) { + offset := 0 + _field := NewExptScoreWeight() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.ScoreWeightConfig = _field + return offset, nil +} + +func (p *Experiment) FastReadField62(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.EnableWeightedScore = _field + return offset, nil +} + func (p *Experiment) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } @@ -881,6 +961,7 @@ func (p *Experiment) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset += p.fastWriteField27(buf[offset:], w) offset += p.fastWriteField28(buf[offset:], w) offset += p.fastWriteField41(buf[offset:], w) + offset += p.fastWriteField62(buf[offset:], w) offset += p.fastWriteField2(buf[offset:], w) offset += p.fastWriteField3(buf[offset:], w) offset += p.fastWriteField4(buf[offset:], w) @@ -899,6 +980,8 @@ func (p *Experiment) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset += p.fastWriteField42(buf[offset:], w) offset += p.fastWriteField43(buf[offset:], w) offset += p.fastWriteField51(buf[offset:], w) + offset += p.fastWriteField60(buf[offset:], w) + offset += p.fastWriteField61(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset @@ -934,6 +1017,9 @@ func (p *Experiment) BLength() int { l += p.field42Length() l += p.field43Length() l += p.field51Length() + l += p.field60Length() + l += p.field61Length() + l += p.field62Length() } l += thrift.Binary.FieldStopLength() return l @@ -1210,6 +1296,33 @@ func (p *Experiment) fastWriteField51(buf []byte, w thrift.NocopyWriter) int { return offset } +func (p *Experiment) fastWriteField60(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetExptTemplateMeta() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 60) + offset += p.ExptTemplateMeta.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *Experiment) fastWriteField61(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetScoreWeightConfig() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 61) + offset += p.ScoreWeightConfig.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *Experiment) fastWriteField62(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetEnableWeightedScore() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.BOOL, 62) + offset += thrift.Binary.WriteBool(buf[offset:], *p.EnableWeightedScore) + } + return offset +} + func (p *Experiment) field1Length() int { l := 0 if p.IsSetID() { @@ -1467,6 +1580,33 @@ func (p *Experiment) field51Length() int { return l } +func (p *Experiment) field60Length() int { + l := 0 + if p.IsSetExptTemplateMeta() { + l += thrift.Binary.FieldBeginLength() + l += p.ExptTemplateMeta.BLength() + } + return l +} + +func (p *Experiment) field61Length() int { + l := 0 + if p.IsSetScoreWeightConfig() { + l += thrift.Binary.FieldBeginLength() + l += p.ScoreWeightConfig.BLength() + } + return l +} + +func (p *Experiment) field62Length() int { + l := 0 + if p.IsSetEnableWeightedScore() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.BoolLength() + } + return l +} + func (p *Experiment) DeepCopy(s interface{}) error { src, ok := s.(*Experiment) if !ok { @@ -1512,173 +1652,2226 @@ func (p *Experiment) DeepCopy(s interface{}) error { if *src.StatusMessage != "" { tmp = kutils.StringDeepCopy(*src.StatusMessage) } - p.StatusMessage = &tmp + p.StatusMessage = &tmp + } + + if src.StartTime != nil { + tmp := *src.StartTime + p.StartTime = &tmp + } + + if src.EndTime != nil { + tmp := *src.EndTime + p.EndTime = &tmp + } + + if src.ItemConcurNum != nil { + tmp := *src.ItemConcurNum + p.ItemConcurNum = &tmp + } + + if src.EvalSetVersionID != nil { + tmp := *src.EvalSetVersionID + p.EvalSetVersionID = &tmp + } + + if src.TargetVersionID != nil { + tmp := *src.TargetVersionID + p.TargetVersionID = &tmp + } + + if src.EvaluatorVersionIds != nil { + p.EvaluatorVersionIds = make([]int64, 0, len(src.EvaluatorVersionIds)) + for _, elem := range src.EvaluatorVersionIds { + var _elem int64 + _elem = elem + p.EvaluatorVersionIds = append(p.EvaluatorVersionIds, _elem) + } + } + + var _evalSet *eval_set.EvaluationSet + if src.EvalSet != nil { + _evalSet = &eval_set.EvaluationSet{} + if err := _evalSet.DeepCopy(src.EvalSet); err != nil { + return err + } + } + p.EvalSet = _evalSet + + var _evalTarget *eval_target.EvalTarget + if src.EvalTarget != nil { + _evalTarget = &eval_target.EvalTarget{} + if err := _evalTarget.DeepCopy(src.EvalTarget); err != nil { + return err + } + } + p.EvalTarget = _evalTarget + + if src.Evaluators != nil { + p.Evaluators = make([]*evaluator.Evaluator, 0, len(src.Evaluators)) + for _, elem := range src.Evaluators { + var _elem *evaluator.Evaluator + if elem != nil { + _elem = &evaluator.Evaluator{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.Evaluators = append(p.Evaluators, _elem) + } + } + + if src.EvalSetID != nil { + tmp := *src.EvalSetID + p.EvalSetID = &tmp + } + + if src.TargetID != nil { + tmp := *src.TargetID + p.TargetID = &tmp + } + + var _baseInfo *common.BaseInfo + if src.BaseInfo != nil { + _baseInfo = &common.BaseInfo{} + if err := _baseInfo.DeepCopy(src.BaseInfo); err != nil { + return err + } + } + p.BaseInfo = _baseInfo + + var _exptStats *ExptStatistics + if src.ExptStats != nil { + _exptStats = &ExptStatistics{} + if err := _exptStats.DeepCopy(src.ExptStats); err != nil { + return err + } + } + p.ExptStats = _exptStats + + var _targetFieldMapping *TargetFieldMapping + if src.TargetFieldMapping != nil { + _targetFieldMapping = &TargetFieldMapping{} + if err := _targetFieldMapping.DeepCopy(src.TargetFieldMapping); err != nil { + return err + } + } + p.TargetFieldMapping = _targetFieldMapping + + if src.EvaluatorFieldMapping != nil { + p.EvaluatorFieldMapping = make([]*EvaluatorFieldMapping, 0, len(src.EvaluatorFieldMapping)) + for _, elem := range src.EvaluatorFieldMapping { + var _elem *EvaluatorFieldMapping + if elem != nil { + _elem = &EvaluatorFieldMapping{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.EvaluatorFieldMapping = append(p.EvaluatorFieldMapping, _elem) + } + } + + var _targetRuntimeParam *common.RuntimeParam + if src.TargetRuntimeParam != nil { + _targetRuntimeParam = &common.RuntimeParam{} + if err := _targetRuntimeParam.DeepCopy(src.TargetRuntimeParam); err != nil { + return err + } + } + p.TargetRuntimeParam = _targetRuntimeParam + + if src.ExptType != nil { + tmp := *src.ExptType + p.ExptType = &tmp + } + + if src.MaxAliveTime != nil { + tmp := *src.MaxAliveTime + p.MaxAliveTime = &tmp + } + + if src.SourceType != nil { + tmp := *src.SourceType + p.SourceType = &tmp + } + + if src.SourceID != nil { + var tmp string + if *src.SourceID != "" { + tmp = kutils.StringDeepCopy(*src.SourceID) + } + p.SourceID = &tmp + } + + if src.EvaluatorIDVersionList != nil { + p.EvaluatorIDVersionList = make([]*evaluator.EvaluatorIDVersionItem, 0, len(src.EvaluatorIDVersionList)) + for _, elem := range src.EvaluatorIDVersionList { + var _elem *evaluator.EvaluatorIDVersionItem + if elem != nil { + _elem = &evaluator.EvaluatorIDVersionItem{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.EvaluatorIDVersionList = append(p.EvaluatorIDVersionList, _elem) + } + } + + var _exptTemplateMeta *ExptTemplateMeta + if src.ExptTemplateMeta != nil { + _exptTemplateMeta = &ExptTemplateMeta{} + if err := _exptTemplateMeta.DeepCopy(src.ExptTemplateMeta); err != nil { + return err + } + } + p.ExptTemplateMeta = _exptTemplateMeta + + var _scoreWeightConfig *ExptScoreWeight + if src.ScoreWeightConfig != nil { + _scoreWeightConfig = &ExptScoreWeight{} + if err := _scoreWeightConfig.DeepCopy(src.ScoreWeightConfig); err != nil { + return err + } + } + p.ScoreWeightConfig = _scoreWeightConfig + + if src.EnableWeightedScore != nil { + tmp := *src.EnableWeightedScore + p.EnableWeightedScore = &tmp + } + + return nil +} + +func (p *ExptTemplateMeta) 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.I64 { + 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.I64 { + 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.STRING { + 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.I32 { + 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_ExptTemplateMeta[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ExptTemplateMeta) 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 *ExptTemplateMeta) FastReadField2(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.WorkspaceID = _field + return offset, nil +} + +func (p *ExptTemplateMeta) 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.Name = _field + return offset, nil +} + +func (p *ExptTemplateMeta) FastReadField4(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.Desc = _field + return offset, nil +} + +func (p *ExptTemplateMeta) FastReadField5(buf []byte) (int, error) { + offset := 0 + + var _field *ExptType + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + + tmp := ExptType(v) + _field = &tmp + } + p.ExptType = _field + return offset, nil +} + +func (p *ExptTemplateMeta) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ExptTemplateMeta) 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 *ExptTemplateMeta) 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 *ExptTemplateMeta) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) + offset += thrift.Binary.WriteI64(buf[offset:], *p.ID) + } + return offset +} + +func (p *ExptTemplateMeta) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetWorkspaceID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) + offset += thrift.Binary.WriteI64(buf[offset:], *p.WorkspaceID) + } + return offset +} + +func (p *ExptTemplateMeta) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetName() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 3) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Name) + } + return offset +} + +func (p *ExptTemplateMeta) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetDesc() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 4) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Desc) + } + return offset +} + +func (p *ExptTemplateMeta) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetExptType() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 5) + offset += thrift.Binary.WriteI32(buf[offset:], int32(*p.ExptType)) + } + return offset +} + +func (p *ExptTemplateMeta) field1Length() int { + l := 0 + if p.IsSetID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *ExptTemplateMeta) field2Length() int { + l := 0 + if p.IsSetWorkspaceID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *ExptTemplateMeta) field3Length() int { + l := 0 + if p.IsSetName() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Name) + } + return l +} + +func (p *ExptTemplateMeta) field4Length() int { + l := 0 + if p.IsSetDesc() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Desc) + } + return l +} + +func (p *ExptTemplateMeta) field5Length() int { + l := 0 + if p.IsSetExptType() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + } + return l +} + +func (p *ExptTemplateMeta) DeepCopy(s interface{}) error { + src, ok := s.(*ExptTemplateMeta) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.ID != nil { + tmp := *src.ID + p.ID = &tmp + } + + if src.WorkspaceID != nil { + tmp := *src.WorkspaceID + p.WorkspaceID = &tmp + } + + if src.Name != nil { + var tmp string + if *src.Name != "" { + tmp = kutils.StringDeepCopy(*src.Name) + } + p.Name = &tmp + } + + if src.Desc != nil { + var tmp string + if *src.Desc != "" { + tmp = kutils.StringDeepCopy(*src.Desc) + } + p.Desc = &tmp + } + + if src.ExptType != nil { + tmp := *src.ExptType + p.ExptType = &tmp + } + + return nil +} + +func (p *ExptTuple) 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.I64 { + 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.I64 { + 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.I64 { + 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.I64 { + 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 6: + if fieldTypeId == thrift.LIST { + 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 + } + } + case 7: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField7(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 8: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField8(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 9: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField9(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_ExptTuple[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ExptTuple) 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.EvalSetID = _field + return offset, nil +} + +func (p *ExptTuple) FastReadField2(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.EvalSetVersionID = _field + return offset, nil +} + +func (p *ExptTuple) FastReadField3(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.TargetID = _field + return offset, nil +} + +func (p *ExptTuple) FastReadField4(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.TargetVersionID = _field + return offset, nil +} + +func (p *ExptTuple) FastReadField6(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]*evaluator.EvaluatorIDVersionItem, 0, size) + values := make([]evaluator.EvaluatorIDVersionItem, 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.EvaluatorIDVersionItems = _field + return offset, nil +} + +func (p *ExptTuple) FastReadField7(buf []byte) (int, error) { + offset := 0 + _field := eval_set.NewEvaluationSet() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.EvalSet = _field + return offset, nil +} + +func (p *ExptTuple) FastReadField8(buf []byte) (int, error) { + offset := 0 + _field := eval_target.NewEvalTarget() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.EvalTarget = _field + return offset, nil +} + +func (p *ExptTuple) FastReadField9(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]*evaluator.Evaluator, 0, size) + values := make([]evaluator.Evaluator, 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.Evaluators = _field + return offset, nil +} + +func (p *ExptTuple) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ExptTuple) 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.fastWriteField6(buf[offset:], w) + offset += p.fastWriteField7(buf[offset:], w) + offset += p.fastWriteField8(buf[offset:], w) + offset += p.fastWriteField9(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ExptTuple) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + l += p.field4Length() + l += p.field6Length() + l += p.field7Length() + l += p.field8Length() + l += p.field9Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ExptTuple) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetEvalSetID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) + offset += thrift.Binary.WriteI64(buf[offset:], *p.EvalSetID) + } + return offset +} + +func (p *ExptTuple) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetEvalSetVersionID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) + offset += thrift.Binary.WriteI64(buf[offset:], *p.EvalSetVersionID) + } + return offset +} + +func (p *ExptTuple) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetTargetID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 3) + offset += thrift.Binary.WriteI64(buf[offset:], *p.TargetID) + } + return offset +} + +func (p *ExptTuple) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetTargetVersionID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 4) + offset += thrift.Binary.WriteI64(buf[offset:], *p.TargetVersionID) + } + return offset +} + +func (p *ExptTuple) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetEvaluatorIDVersionItems() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 6) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.EvaluatorIDVersionItems { + length++ + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) + } + return offset +} + +func (p *ExptTuple) fastWriteField7(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetEvalSet() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 7) + offset += p.EvalSet.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ExptTuple) fastWriteField8(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetEvalTarget() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 8) + offset += p.EvalTarget.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ExptTuple) fastWriteField9(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetEvaluators() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 9) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.Evaluators { + length++ + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) + } + return offset +} + +func (p *ExptTuple) field1Length() int { + l := 0 + if p.IsSetEvalSetID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *ExptTuple) field2Length() int { + l := 0 + if p.IsSetEvalSetVersionID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *ExptTuple) field3Length() int { + l := 0 + if p.IsSetTargetID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *ExptTuple) field4Length() int { + l := 0 + if p.IsSetTargetVersionID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *ExptTuple) field6Length() int { + l := 0 + if p.IsSetEvaluatorIDVersionItems() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.EvaluatorIDVersionItems { + _ = v + l += v.BLength() + } + } + return l +} + +func (p *ExptTuple) field7Length() int { + l := 0 + if p.IsSetEvalSet() { + l += thrift.Binary.FieldBeginLength() + l += p.EvalSet.BLength() + } + return l +} + +func (p *ExptTuple) field8Length() int { + l := 0 + if p.IsSetEvalTarget() { + l += thrift.Binary.FieldBeginLength() + l += p.EvalTarget.BLength() + } + return l +} + +func (p *ExptTuple) field9Length() int { + l := 0 + if p.IsSetEvaluators() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.Evaluators { + _ = v + l += v.BLength() + } + } + return l +} + +func (p *ExptTuple) DeepCopy(s interface{}) error { + src, ok := s.(*ExptTuple) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.EvalSetID != nil { + tmp := *src.EvalSetID + p.EvalSetID = &tmp + } + + if src.EvalSetVersionID != nil { + tmp := *src.EvalSetVersionID + p.EvalSetVersionID = &tmp + } + + if src.TargetID != nil { + tmp := *src.TargetID + p.TargetID = &tmp + } + + if src.TargetVersionID != nil { + tmp := *src.TargetVersionID + p.TargetVersionID = &tmp + } + + if src.EvaluatorIDVersionItems != nil { + p.EvaluatorIDVersionItems = make([]*evaluator.EvaluatorIDVersionItem, 0, len(src.EvaluatorIDVersionItems)) + for _, elem := range src.EvaluatorIDVersionItems { + var _elem *evaluator.EvaluatorIDVersionItem + if elem != nil { + _elem = &evaluator.EvaluatorIDVersionItem{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.EvaluatorIDVersionItems = append(p.EvaluatorIDVersionItems, _elem) + } + } + + var _evalSet *eval_set.EvaluationSet + if src.EvalSet != nil { + _evalSet = &eval_set.EvaluationSet{} + if err := _evalSet.DeepCopy(src.EvalSet); err != nil { + return err + } + } + p.EvalSet = _evalSet + + var _evalTarget *eval_target.EvalTarget + if src.EvalTarget != nil { + _evalTarget = &eval_target.EvalTarget{} + if err := _evalTarget.DeepCopy(src.EvalTarget); err != nil { + return err + } + } + p.EvalTarget = _evalTarget + + if src.Evaluators != nil { + p.Evaluators = make([]*evaluator.Evaluator, 0, len(src.Evaluators)) + for _, elem := range src.Evaluators { + var _elem *evaluator.Evaluator + if elem != nil { + _elem = &evaluator.Evaluator{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.Evaluators = append(p.Evaluators, _elem) + } + } + + return nil +} + +func (p *ExptFieldMapping) 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.STRUCT { + 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.STRUCT { + 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.I32 { + 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 + } + } + 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_ExptFieldMapping[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ExptFieldMapping) FastReadField1(buf []byte) (int, error) { + offset := 0 + _field := NewTargetFieldMapping() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.TargetFieldMapping = _field + return offset, nil +} + +func (p *ExptFieldMapping) 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([]*EvaluatorFieldMapping, 0, size) + values := make([]EvaluatorFieldMapping, 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.EvaluatorFieldMapping = _field + return offset, nil +} + +func (p *ExptFieldMapping) FastReadField3(buf []byte) (int, error) { + offset := 0 + _field := common.NewRuntimeParam() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.TargetRuntimeParam = _field + return offset, nil +} + +func (p *ExptFieldMapping) FastReadField4(buf []byte) (int, error) { + offset := 0 + + var _field *int32 + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.ItemConcurNum = _field + return offset, nil +} + +func (p *ExptFieldMapping) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ExptFieldMapping) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField4(buf[offset:], w) + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ExptFieldMapping) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + l += p.field4Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ExptFieldMapping) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetTargetFieldMapping() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) + offset += p.TargetFieldMapping.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ExptFieldMapping) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetEvaluatorFieldMapping() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 2) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.EvaluatorFieldMapping { + length++ + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) + } + return offset +} + +func (p *ExptFieldMapping) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetTargetRuntimeParam() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 3) + offset += p.TargetRuntimeParam.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ExptFieldMapping) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetItemConcurNum() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 4) + offset += thrift.Binary.WriteI32(buf[offset:], *p.ItemConcurNum) + } + return offset +} + +func (p *ExptFieldMapping) field1Length() int { + l := 0 + if p.IsSetTargetFieldMapping() { + l += thrift.Binary.FieldBeginLength() + l += p.TargetFieldMapping.BLength() + } + return l +} + +func (p *ExptFieldMapping) field2Length() int { + l := 0 + if p.IsSetEvaluatorFieldMapping() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.EvaluatorFieldMapping { + _ = v + l += v.BLength() + } + } + return l +} + +func (p *ExptFieldMapping) field3Length() int { + l := 0 + if p.IsSetTargetRuntimeParam() { + l += thrift.Binary.FieldBeginLength() + l += p.TargetRuntimeParam.BLength() + } + return l +} + +func (p *ExptFieldMapping) field4Length() int { + l := 0 + if p.IsSetItemConcurNum() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + } + return l +} + +func (p *ExptFieldMapping) DeepCopy(s interface{}) error { + src, ok := s.(*ExptFieldMapping) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + var _targetFieldMapping *TargetFieldMapping + if src.TargetFieldMapping != nil { + _targetFieldMapping = &TargetFieldMapping{} + if err := _targetFieldMapping.DeepCopy(src.TargetFieldMapping); err != nil { + return err + } + } + p.TargetFieldMapping = _targetFieldMapping + + if src.EvaluatorFieldMapping != nil { + p.EvaluatorFieldMapping = make([]*EvaluatorFieldMapping, 0, len(src.EvaluatorFieldMapping)) + for _, elem := range src.EvaluatorFieldMapping { + var _elem *EvaluatorFieldMapping + if elem != nil { + _elem = &EvaluatorFieldMapping{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.EvaluatorFieldMapping = append(p.EvaluatorFieldMapping, _elem) + } + } + + var _targetRuntimeParam *common.RuntimeParam + if src.TargetRuntimeParam != nil { + _targetRuntimeParam = &common.RuntimeParam{} + if err := _targetRuntimeParam.DeepCopy(src.TargetRuntimeParam); err != nil { + return err + } + } + p.TargetRuntimeParam = _targetRuntimeParam + + if src.ItemConcurNum != nil { + tmp := *src.ItemConcurNum + p.ItemConcurNum = &tmp + } + + return nil +} + +func (p *ExptScoreWeight) 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.BOOL { + 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.MAP { + 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 + } + } + 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_ExptScoreWeight[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ExptScoreWeight) FastReadField1(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.EnableWeightedScore = _field + return offset, nil +} + +func (p *ExptScoreWeight) FastReadField2(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[int64]float64, size) + for i := 0; i < size; i++ { + var _key int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _key = v + } + + var _val float64 + if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _val = v + } + + _field[_key] = _val + } + p.EvaluatorScoreWeights = _field + return offset, nil +} + +func (p *ExptScoreWeight) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ExptScoreWeight) 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 *ExptScoreWeight) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ExptScoreWeight) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetEnableWeightedScore() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.BOOL, 1) + offset += thrift.Binary.WriteBool(buf[offset:], *p.EnableWeightedScore) + } + return offset +} + +func (p *ExptScoreWeight) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetEvaluatorScoreWeights() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.MAP, 2) + mapBeginOffset := offset + offset += thrift.Binary.MapBeginLength() + var length int + for k, v := range p.EvaluatorScoreWeights { + length++ + offset += thrift.Binary.WriteI64(buf[offset:], k) + offset += thrift.Binary.WriteDouble(buf[offset:], v) + } + thrift.Binary.WriteMapBegin(buf[mapBeginOffset:], thrift.I64, thrift.DOUBLE, length) + } + return offset +} + +func (p *ExptScoreWeight) field1Length() int { + l := 0 + if p.IsSetEnableWeightedScore() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.BoolLength() + } + return l +} + +func (p *ExptScoreWeight) field2Length() int { + l := 0 + if p.IsSetEvaluatorScoreWeights() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.MapBeginLength() + l += (thrift.Binary.I64Length() + + thrift.Binary.DoubleLength()) * len(p.EvaluatorScoreWeights) + } + return l +} + +func (p *ExptScoreWeight) DeepCopy(s interface{}) error { + src, ok := s.(*ExptScoreWeight) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.EnableWeightedScore != nil { + tmp := *src.EnableWeightedScore + p.EnableWeightedScore = &tmp + } + + if src.EvaluatorScoreWeights != nil { + p.EvaluatorScoreWeights = make(map[int64]float64, len(src.EvaluatorScoreWeights)) + for key, val := range src.EvaluatorScoreWeights { + var _key int64 + _key = key + + var _val float64 + _val = val + + p.EvaluatorScoreWeights[_key] = _val + } + } + + return nil +} + +func (p *ExptTemplate) 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.STRUCT { + 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.STRUCT { + 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.STRUCT { + 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.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.STRUCT { + 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 255: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField255(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_ExptTemplate[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ExptTemplate) FastReadField1(buf []byte) (int, error) { + offset := 0 + _field := NewExptTemplateMeta() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Meta = _field + return offset, nil +} + +func (p *ExptTemplate) FastReadField2(buf []byte) (int, error) { + offset := 0 + _field := NewExptTuple() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.TripleConfig = _field + return offset, nil +} + +func (p *ExptTemplate) FastReadField3(buf []byte) (int, error) { + offset := 0 + _field := NewExptFieldMapping() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.FieldMappingConfig = _field + return offset, nil +} + +func (p *ExptTemplate) FastReadField4(buf []byte) (int, error) { + offset := 0 + _field := NewExptScoreWeight() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.ScoreWeightConfig = _field + return offset, nil +} + +func (p *ExptTemplate) FastReadField5(buf []byte) (int, error) { + offset := 0 + _field := NewExptInfo() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.ExptInfo = _field + return offset, nil +} + +func (p *ExptTemplate) FastReadField255(buf []byte) (int, error) { + offset := 0 + _field := common.NewBaseInfo() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.BaseInfo = _field + return offset, nil +} + +func (p *ExptTemplate) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ExptTemplate) 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.fastWriteField255(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ExptTemplate) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + l += p.field4Length() + l += p.field5Length() + l += p.field255Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ExptTemplate) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetMeta() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) + offset += p.Meta.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ExptTemplate) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetTripleConfig() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 2) + offset += p.TripleConfig.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ExptTemplate) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetFieldMappingConfig() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 3) + offset += p.FieldMappingConfig.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ExptTemplate) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetScoreWeightConfig() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 4) + offset += p.ScoreWeightConfig.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ExptTemplate) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetExptInfo() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 5) + offset += p.ExptInfo.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ExptTemplate) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetBaseInfo() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.BaseInfo.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ExptTemplate) field1Length() int { + l := 0 + if p.IsSetMeta() { + l += thrift.Binary.FieldBeginLength() + l += p.Meta.BLength() + } + return l +} + +func (p *ExptTemplate) field2Length() int { + l := 0 + if p.IsSetTripleConfig() { + l += thrift.Binary.FieldBeginLength() + l += p.TripleConfig.BLength() + } + return l +} + +func (p *ExptTemplate) field3Length() int { + l := 0 + if p.IsSetFieldMappingConfig() { + l += thrift.Binary.FieldBeginLength() + l += p.FieldMappingConfig.BLength() + } + return l +} + +func (p *ExptTemplate) field4Length() int { + l := 0 + if p.IsSetScoreWeightConfig() { + l += thrift.Binary.FieldBeginLength() + l += p.ScoreWeightConfig.BLength() + } + return l +} + +func (p *ExptTemplate) field5Length() int { + l := 0 + if p.IsSetExptInfo() { + l += thrift.Binary.FieldBeginLength() + l += p.ExptInfo.BLength() + } + return l +} + +func (p *ExptTemplate) field255Length() int { + l := 0 + if p.IsSetBaseInfo() { + l += thrift.Binary.FieldBeginLength() + l += p.BaseInfo.BLength() + } + return l +} + +func (p *ExptTemplate) DeepCopy(s interface{}) error { + src, ok := s.(*ExptTemplate) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + var _meta *ExptTemplateMeta + if src.Meta != nil { + _meta = &ExptTemplateMeta{} + if err := _meta.DeepCopy(src.Meta); err != nil { + return err + } + } + p.Meta = _meta + + var _tripleConfig *ExptTuple + if src.TripleConfig != nil { + _tripleConfig = &ExptTuple{} + if err := _tripleConfig.DeepCopy(src.TripleConfig); err != nil { + return err + } + } + p.TripleConfig = _tripleConfig + + var _fieldMappingConfig *ExptFieldMapping + if src.FieldMappingConfig != nil { + _fieldMappingConfig = &ExptFieldMapping{} + if err := _fieldMappingConfig.DeepCopy(src.FieldMappingConfig); err != nil { + return err + } + } + p.FieldMappingConfig = _fieldMappingConfig + + var _scoreWeightConfig *ExptScoreWeight + if src.ScoreWeightConfig != nil { + _scoreWeightConfig = &ExptScoreWeight{} + if err := _scoreWeightConfig.DeepCopy(src.ScoreWeightConfig); err != nil { + return err + } + } + p.ScoreWeightConfig = _scoreWeightConfig + + var _exptInfo *ExptInfo + if src.ExptInfo != nil { + _exptInfo = &ExptInfo{} + if err := _exptInfo.DeepCopy(src.ExptInfo); err != nil { + return err + } + } + p.ExptInfo = _exptInfo + + var _baseInfo *common.BaseInfo + if src.BaseInfo != nil { + _baseInfo = &common.BaseInfo{} + if err := _baseInfo.DeepCopy(src.BaseInfo); err != nil { + return err + } + } + p.BaseInfo = _baseInfo + + return nil +} + +func (p *ExptInfo) 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.I64 { + 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.I64 { + 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.I32 { + 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 + } + } + default: + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } } - if src.StartTime != nil { - tmp := *src.StartTime - p.StartTime = &tmp - } + 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_ExptInfo[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} - if src.EndTime != nil { - tmp := *src.EndTime - p.EndTime = &tmp - } +func (p *ExptInfo) FastReadField1(buf []byte) (int, error) { + offset := 0 - if src.ItemConcurNum != nil { - tmp := *src.ItemConcurNum - p.ItemConcurNum = &tmp + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v } + p.CreatedExptCount = _field + return offset, nil +} - if src.EvalSetVersionID != nil { - tmp := *src.EvalSetVersionID - p.EvalSetVersionID = &tmp - } +func (p *ExptInfo) FastReadField2(buf []byte) (int, error) { + offset := 0 - if src.TargetVersionID != nil { - tmp := *src.TargetVersionID - p.TargetVersionID = &tmp + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v } + p.LatestExptID = _field + return offset, nil +} - if src.EvaluatorVersionIds != nil { - p.EvaluatorVersionIds = make([]int64, 0, len(src.EvaluatorVersionIds)) - for _, elem := range src.EvaluatorVersionIds { - var _elem int64 - _elem = elem - p.EvaluatorVersionIds = append(p.EvaluatorVersionIds, _elem) - } - } +func (p *ExptInfo) FastReadField3(buf []byte) (int, error) { + offset := 0 - var _evalSet *eval_set.EvaluationSet - if src.EvalSet != nil { - _evalSet = &eval_set.EvaluationSet{} - if err := _evalSet.DeepCopy(src.EvalSet); err != nil { - return err - } - } - p.EvalSet = _evalSet + var _field *ExptStatus + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l - var _evalTarget *eval_target.EvalTarget - if src.EvalTarget != nil { - _evalTarget = &eval_target.EvalTarget{} - if err := _evalTarget.DeepCopy(src.EvalTarget); err != nil { - return err - } + tmp := ExptStatus(v) + _field = &tmp } - p.EvalTarget = _evalTarget - - if src.Evaluators != nil { - p.Evaluators = make([]*evaluator.Evaluator, 0, len(src.Evaluators)) - for _, elem := range src.Evaluators { - var _elem *evaluator.Evaluator - if elem != nil { - _elem = &evaluator.Evaluator{} - if err := _elem.DeepCopy(elem); err != nil { - return err - } - } + p.LatestExptStatus = _field + return offset, nil +} - p.Evaluators = append(p.Evaluators, _elem) - } - } +func (p *ExptInfo) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} - if src.EvalSetID != nil { - tmp := *src.EvalSetID - p.EvalSetID = &tmp +func (p *ExptInfo) 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 += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} - if src.TargetID != nil { - tmp := *src.TargetID - p.TargetID = &tmp +func (p *ExptInfo) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() } + l += thrift.Binary.FieldStopLength() + return l +} - var _baseInfo *common.BaseInfo - if src.BaseInfo != nil { - _baseInfo = &common.BaseInfo{} - if err := _baseInfo.DeepCopy(src.BaseInfo); err != nil { - return err - } +func (p *ExptInfo) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetCreatedExptCount() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) + offset += thrift.Binary.WriteI64(buf[offset:], *p.CreatedExptCount) } - p.BaseInfo = _baseInfo + return offset +} - var _exptStats *ExptStatistics - if src.ExptStats != nil { - _exptStats = &ExptStatistics{} - if err := _exptStats.DeepCopy(src.ExptStats); err != nil { - return err - } +func (p *ExptInfo) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetLatestExptID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) + offset += thrift.Binary.WriteI64(buf[offset:], *p.LatestExptID) } - p.ExptStats = _exptStats + return offset +} - var _targetFieldMapping *TargetFieldMapping - if src.TargetFieldMapping != nil { - _targetFieldMapping = &TargetFieldMapping{} - if err := _targetFieldMapping.DeepCopy(src.TargetFieldMapping); err != nil { - return err - } +func (p *ExptInfo) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetLatestExptStatus() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 3) + offset += thrift.Binary.WriteI32(buf[offset:], int32(*p.LatestExptStatus)) } - p.TargetFieldMapping = _targetFieldMapping - - if src.EvaluatorFieldMapping != nil { - p.EvaluatorFieldMapping = make([]*EvaluatorFieldMapping, 0, len(src.EvaluatorFieldMapping)) - for _, elem := range src.EvaluatorFieldMapping { - var _elem *EvaluatorFieldMapping - if elem != nil { - _elem = &EvaluatorFieldMapping{} - if err := _elem.DeepCopy(elem); err != nil { - return err - } - } + return offset +} - p.EvaluatorFieldMapping = append(p.EvaluatorFieldMapping, _elem) - } +func (p *ExptInfo) field1Length() int { + l := 0 + if p.IsSetCreatedExptCount() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() } + return l +} - var _targetRuntimeParam *common.RuntimeParam - if src.TargetRuntimeParam != nil { - _targetRuntimeParam = &common.RuntimeParam{} - if err := _targetRuntimeParam.DeepCopy(src.TargetRuntimeParam); err != nil { - return err - } +func (p *ExptInfo) field2Length() int { + l := 0 + if p.IsSetLatestExptID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() } - p.TargetRuntimeParam = _targetRuntimeParam + return l +} - if src.ExptType != nil { - tmp := *src.ExptType - p.ExptType = &tmp +func (p *ExptInfo) field3Length() int { + l := 0 + if p.IsSetLatestExptStatus() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() } + return l +} - if src.MaxAliveTime != nil { - tmp := *src.MaxAliveTime - p.MaxAliveTime = &tmp +func (p *ExptInfo) DeepCopy(s interface{}) error { + src, ok := s.(*ExptInfo) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) } - if src.SourceType != nil { - tmp := *src.SourceType - p.SourceType = &tmp + if src.CreatedExptCount != nil { + tmp := *src.CreatedExptCount + p.CreatedExptCount = &tmp } - if src.SourceID != nil { - var tmp string - if *src.SourceID != "" { - tmp = kutils.StringDeepCopy(*src.SourceID) - } - p.SourceID = &tmp + if src.LatestExptID != nil { + tmp := *src.LatestExptID + p.LatestExptID = &tmp } - if src.EvaluatorIDVersionList != nil { - p.EvaluatorIDVersionList = make([]*evaluator.EvaluatorIDVersionItem, 0, len(src.EvaluatorIDVersionList)) - for _, elem := range src.EvaluatorIDVersionList { - var _elem *evaluator.EvaluatorIDVersionItem - if elem != nil { - _elem = &evaluator.EvaluatorIDVersionItem{} - if err := _elem.DeepCopy(elem); err != nil { - return err - } - } - - p.EvaluatorIDVersionList = append(p.EvaluatorIDVersionList, _elem) - } + if src.LatestExptStatus != nil { + tmp := *src.LatestExptStatus + p.LatestExptStatus = &tmp } return nil @@ -6711,6 +8904,20 @@ func (p *TurnEvaluatorOutput) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 11: + if fieldTypeId == thrift.DOUBLE { + l, err = p.FastReadField11(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 @@ -6756,9 +8963,23 @@ func (p *TurnEvaluatorOutput) FastReadField1(buf []byte) (int, error) { offset += l } - _field[_key] = _val + _field[_key] = _val + } + p.EvaluatorRecords = _field + return offset, nil +} + +func (p *TurnEvaluatorOutput) FastReadField11(buf []byte) (int, error) { + offset := 0 + + var _field *float64 + if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v } - p.EvaluatorRecords = _field + p.WeightedScore = _field return offset, nil } @@ -6769,6 +8990,7 @@ func (p *TurnEvaluatorOutput) FastWrite(buf []byte) int { func (p *TurnEvaluatorOutput) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { + offset += p.fastWriteField11(buf[offset:], w) offset += p.fastWriteField1(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) @@ -6779,6 +9001,7 @@ func (p *TurnEvaluatorOutput) BLength() int { l := 0 if p != nil { l += p.field1Length() + l += p.field11Length() } l += thrift.Binary.FieldStopLength() return l @@ -6799,6 +9022,15 @@ func (p *TurnEvaluatorOutput) fastWriteField1(buf []byte, w thrift.NocopyWriter) return offset } +func (p *TurnEvaluatorOutput) fastWriteField11(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetWeightedScore() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.DOUBLE, 11) + offset += thrift.Binary.WriteDouble(buf[offset:], *p.WeightedScore) + } + return offset +} + func (p *TurnEvaluatorOutput) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() @@ -6812,6 +9044,15 @@ func (p *TurnEvaluatorOutput) field1Length() int { return l } +func (p *TurnEvaluatorOutput) field11Length() int { + l := 0 + if p.IsSetWeightedScore() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.DoubleLength() + } + return l +} + func (p *TurnEvaluatorOutput) DeepCopy(s interface{}) error { src, ok := s.(*TurnEvaluatorOutput) if !ok { @@ -6836,6 +9077,11 @@ func (p *TurnEvaluatorOutput) DeepCopy(s interface{}) error { } } + if src.WeightedScore != nil { + tmp := *src.WeightedScore + p.WeightedScore = &tmp + } + return nil } @@ -8487,6 +10733,180 @@ func (p *ExperimentFilter) DeepCopy(s interface{}) error { return nil } +func (p *ExperimentTemplateFilter) 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.STRUCT { + 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.STRUCT { + 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 + } + } + 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_ExperimentTemplateFilter[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ExperimentTemplateFilter) FastReadField1(buf []byte) (int, error) { + offset := 0 + _field := NewFilters() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Filters = _field + return offset, nil +} + +func (p *ExperimentTemplateFilter) FastReadField2(buf []byte) (int, error) { + offset := 0 + _field := NewKeywordSearch() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.KeywordSearch = _field + return offset, nil +} + +func (p *ExperimentTemplateFilter) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ExperimentTemplateFilter) 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 *ExperimentTemplateFilter) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ExperimentTemplateFilter) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetFilters() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) + offset += p.Filters.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ExperimentTemplateFilter) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetKeywordSearch() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 2) + offset += p.KeywordSearch.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ExperimentTemplateFilter) field1Length() int { + l := 0 + if p.IsSetFilters() { + l += thrift.Binary.FieldBeginLength() + l += p.Filters.BLength() + } + return l +} + +func (p *ExperimentTemplateFilter) field2Length() int { + l := 0 + if p.IsSetKeywordSearch() { + l += thrift.Binary.FieldBeginLength() + l += p.KeywordSearch.BLength() + } + return l +} + +func (p *ExperimentTemplateFilter) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentTemplateFilter) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + var _filters *Filters + if src.Filters != nil { + _filters = &Filters{} + if err := _filters.DeepCopy(src.Filters); err != nil { + return err + } + } + p.Filters = _filters + + var _keywordSearch *KeywordSearch + if src.KeywordSearch != nil { + _keywordSearch = &KeywordSearch{} + if err := _keywordSearch.DeepCopy(src.KeywordSearch); err != nil { + return err + } + } + p.KeywordSearch = _keywordSearch + + return nil +} + func (p *Filters) FastRead(buf []byte) (int, error) { var err error @@ -9433,6 +11853,20 @@ func (p *ExptAggregateResult_) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 10: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField10(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 @@ -9579,6 +12013,31 @@ func (p *ExptAggregateResult_) FastReadField6(buf []byte) (int, error) { return offset, nil } +func (p *ExptAggregateResult_) FastReadField10(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]*AggregatorResult_, 0, size) + values := make([]AggregatorResult_, 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.WeightedResults = _field + return offset, nil +} + func (p *ExptAggregateResult_) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } @@ -9592,6 +12051,7 @@ func (p *ExptAggregateResult_) FastWriteNocopy(buf []byte, w thrift.NocopyWriter offset += p.fastWriteField3(buf[offset:], w) offset += p.fastWriteField4(buf[offset:], w) offset += p.fastWriteField5(buf[offset:], w) + offset += p.fastWriteField10(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset @@ -9606,6 +12066,7 @@ func (p *ExptAggregateResult_) BLength() int { l += p.field4Length() l += p.field5Length() l += p.field6Length() + l += p.field10Length() } l += thrift.Binary.FieldStopLength() return l @@ -9679,6 +12140,22 @@ func (p *ExptAggregateResult_) fastWriteField6(buf []byte, w thrift.NocopyWriter return offset } +func (p *ExptAggregateResult_) fastWriteField10(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetWeightedResults() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 10) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.WeightedResults { + length++ + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) + } + return offset +} + func (p *ExptAggregateResult_) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() @@ -9743,6 +12220,19 @@ func (p *ExptAggregateResult_) field6Length() int { return l } +func (p *ExptAggregateResult_) field10Length() int { + l := 0 + if p.IsSetWeightedResults() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.WeightedResults { + _ = v + l += v.BLength() + } + } + return l +} + func (p *ExptAggregateResult_) DeepCopy(s interface{}) error { src, ok := s.(*ExptAggregateResult_) if !ok { @@ -9806,6 +12296,21 @@ func (p *ExptAggregateResult_) DeepCopy(s interface{}) error { p.UpdateTime = &tmp } + if src.WeightedResults != nil { + p.WeightedResults = make([]*AggregatorResult_, 0, len(src.WeightedResults)) + for _, elem := range src.WeightedResults { + var _elem *AggregatorResult_ + if elem != nil { + _elem = &AggregatorResult_{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.WeightedResults = append(p.WeightedResults, _elem) + } + } + return nil } diff --git a/backend/kitex_gen/coze/loop/evaluation/experimentservice/client.go b/backend/kitex_gen/coze/loop/evaluation/experimentservice/client.go index f3eeeea5f..6551202e4 100644 --- a/backend/kitex_gen/coze/loop/evaluation/experimentservice/client.go +++ b/backend/kitex_gen/coze/loop/evaluation/experimentservice/client.go @@ -44,6 +44,13 @@ type Client interface { FeedbackExptInsightAnalysisReport(ctx context.Context, req *expt.FeedbackExptInsightAnalysisReportRequest, callOptions ...callopt.Option) (r *expt.FeedbackExptInsightAnalysisReportResponse, err error) ListExptInsightAnalysisComment(ctx context.Context, req *expt.ListExptInsightAnalysisCommentRequest, callOptions ...callopt.Option) (r *expt.ListExptInsightAnalysisCommentResponse, err error) GetAnalysisRecordFeedbackVote(ctx context.Context, req *expt.GetAnalysisRecordFeedbackVoteRequest, callOptions ...callopt.Option) (r *expt.GetAnalysisRecordFeedbackVoteResponse, err error) + CreateExperimentTemplate(ctx context.Context, req *expt.CreateExperimentTemplateRequest, callOptions ...callopt.Option) (r *expt.CreateExperimentTemplateResponse, err error) + BatchGetExperimentTemplate(ctx context.Context, req *expt.BatchGetExperimentTemplateRequest, callOptions ...callopt.Option) (r *expt.BatchGetExperimentTemplateResponse, err error) + UpdateExperimentTemplateMeta(ctx context.Context, req *expt.UpdateExperimentTemplateMetaRequest, callOptions ...callopt.Option) (r *expt.UpdateExperimentTemplateMetaResponse, err error) + UpdateExperimentTemplate(ctx context.Context, req *expt.UpdateExperimentTemplateRequest, callOptions ...callopt.Option) (r *expt.UpdateExperimentTemplateResponse, err error) + DeleteExperimentTemplate(ctx context.Context, req *expt.DeleteExperimentTemplateRequest, callOptions ...callopt.Option) (r *expt.DeleteExperimentTemplateResponse, err error) + ListExperimentTemplates(ctx context.Context, req *expt.ListExperimentTemplatesRequest, callOptions ...callopt.Option) (r *expt.ListExperimentTemplatesResponse, err error) + CheckExperimentTemplateName(ctx context.Context, req *expt.CheckExperimentTemplateNameRequest, callOptions ...callopt.Option) (r *expt.CheckExperimentTemplateNameResponse, err error) } // NewClient creates a client for the service defined in IDL. @@ -239,3 +246,38 @@ func (p *kExperimentServiceClient) GetAnalysisRecordFeedbackVote(ctx context.Con ctx = client.NewCtxWithCallOptions(ctx, callOptions) return p.kClient.GetAnalysisRecordFeedbackVote(ctx, req) } + +func (p *kExperimentServiceClient) CreateExperimentTemplate(ctx context.Context, req *expt.CreateExperimentTemplateRequest, callOptions ...callopt.Option) (r *expt.CreateExperimentTemplateResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.CreateExperimentTemplate(ctx, req) +} + +func (p *kExperimentServiceClient) BatchGetExperimentTemplate(ctx context.Context, req *expt.BatchGetExperimentTemplateRequest, callOptions ...callopt.Option) (r *expt.BatchGetExperimentTemplateResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.BatchGetExperimentTemplate(ctx, req) +} + +func (p *kExperimentServiceClient) UpdateExperimentTemplateMeta(ctx context.Context, req *expt.UpdateExperimentTemplateMetaRequest, callOptions ...callopt.Option) (r *expt.UpdateExperimentTemplateMetaResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.UpdateExperimentTemplateMeta(ctx, req) +} + +func (p *kExperimentServiceClient) UpdateExperimentTemplate(ctx context.Context, req *expt.UpdateExperimentTemplateRequest, callOptions ...callopt.Option) (r *expt.UpdateExperimentTemplateResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.UpdateExperimentTemplate(ctx, req) +} + +func (p *kExperimentServiceClient) DeleteExperimentTemplate(ctx context.Context, req *expt.DeleteExperimentTemplateRequest, callOptions ...callopt.Option) (r *expt.DeleteExperimentTemplateResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.DeleteExperimentTemplate(ctx, req) +} + +func (p *kExperimentServiceClient) ListExperimentTemplates(ctx context.Context, req *expt.ListExperimentTemplatesRequest, callOptions ...callopt.Option) (r *expt.ListExperimentTemplatesResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.ListExperimentTemplates(ctx, req) +} + +func (p *kExperimentServiceClient) CheckExperimentTemplateName(ctx context.Context, req *expt.CheckExperimentTemplateNameRequest, callOptions ...callopt.Option) (r *expt.CheckExperimentTemplateNameResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.CheckExperimentTemplateName(ctx, req) +} diff --git a/backend/kitex_gen/coze/loop/evaluation/experimentservice/experimentservice.go b/backend/kitex_gen/coze/loop/evaluation/experimentservice/experimentservice.go index 1dd148235..29a46d4ea 100644 --- a/backend/kitex_gen/coze/loop/evaluation/experimentservice/experimentservice.go +++ b/backend/kitex_gen/coze/loop/evaluation/experimentservice/experimentservice.go @@ -245,6 +245,55 @@ var serviceMethods = map[string]kitex.MethodInfo{ false, kitex.WithStreamingMode(kitex.StreamingNone), ), + "CreateExperimentTemplate": kitex.NewMethodInfo( + createExperimentTemplateHandler, + newExperimentServiceCreateExperimentTemplateArgs, + newExperimentServiceCreateExperimentTemplateResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), + "BatchGetExperimentTemplate": kitex.NewMethodInfo( + batchGetExperimentTemplateHandler, + newExperimentServiceBatchGetExperimentTemplateArgs, + newExperimentServiceBatchGetExperimentTemplateResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), + "UpdateExperimentTemplateMeta": kitex.NewMethodInfo( + updateExperimentTemplateMetaHandler, + newExperimentServiceUpdateExperimentTemplateMetaArgs, + newExperimentServiceUpdateExperimentTemplateMetaResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), + "UpdateExperimentTemplate": kitex.NewMethodInfo( + updateExperimentTemplateHandler, + newExperimentServiceUpdateExperimentTemplateArgs, + newExperimentServiceUpdateExperimentTemplateResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), + "DeleteExperimentTemplate": kitex.NewMethodInfo( + deleteExperimentTemplateHandler, + newExperimentServiceDeleteExperimentTemplateArgs, + newExperimentServiceDeleteExperimentTemplateResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), + "ListExperimentTemplates": kitex.NewMethodInfo( + listExperimentTemplatesHandler, + newExperimentServiceListExperimentTemplatesArgs, + newExperimentServiceListExperimentTemplatesResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), + "CheckExperimentTemplateName": kitex.NewMethodInfo( + checkExperimentTemplateNameHandler, + newExperimentServiceCheckExperimentTemplateNameArgs, + newExperimentServiceCheckExperimentTemplateNameResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), } var ( @@ -905,6 +954,139 @@ func newExperimentServiceGetAnalysisRecordFeedbackVoteResult() interface{} { return expt.NewExperimentServiceGetAnalysisRecordFeedbackVoteResult() } +func createExperimentTemplateHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*expt.ExperimentServiceCreateExperimentTemplateArgs) + realResult := result.(*expt.ExperimentServiceCreateExperimentTemplateResult) + success, err := handler.(expt.ExperimentService).CreateExperimentTemplate(ctx, realArg.Req) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newExperimentServiceCreateExperimentTemplateArgs() interface{} { + return expt.NewExperimentServiceCreateExperimentTemplateArgs() +} + +func newExperimentServiceCreateExperimentTemplateResult() interface{} { + return expt.NewExperimentServiceCreateExperimentTemplateResult() +} + +func batchGetExperimentTemplateHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*expt.ExperimentServiceBatchGetExperimentTemplateArgs) + realResult := result.(*expt.ExperimentServiceBatchGetExperimentTemplateResult) + success, err := handler.(expt.ExperimentService).BatchGetExperimentTemplate(ctx, realArg.Req) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newExperimentServiceBatchGetExperimentTemplateArgs() interface{} { + return expt.NewExperimentServiceBatchGetExperimentTemplateArgs() +} + +func newExperimentServiceBatchGetExperimentTemplateResult() interface{} { + return expt.NewExperimentServiceBatchGetExperimentTemplateResult() +} + +func updateExperimentTemplateMetaHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*expt.ExperimentServiceUpdateExperimentTemplateMetaArgs) + realResult := result.(*expt.ExperimentServiceUpdateExperimentTemplateMetaResult) + success, err := handler.(expt.ExperimentService).UpdateExperimentTemplateMeta(ctx, realArg.Req) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newExperimentServiceUpdateExperimentTemplateMetaArgs() interface{} { + return expt.NewExperimentServiceUpdateExperimentTemplateMetaArgs() +} + +func newExperimentServiceUpdateExperimentTemplateMetaResult() interface{} { + return expt.NewExperimentServiceUpdateExperimentTemplateMetaResult() +} + +func updateExperimentTemplateHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*expt.ExperimentServiceUpdateExperimentTemplateArgs) + realResult := result.(*expt.ExperimentServiceUpdateExperimentTemplateResult) + success, err := handler.(expt.ExperimentService).UpdateExperimentTemplate(ctx, realArg.Req) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newExperimentServiceUpdateExperimentTemplateArgs() interface{} { + return expt.NewExperimentServiceUpdateExperimentTemplateArgs() +} + +func newExperimentServiceUpdateExperimentTemplateResult() interface{} { + return expt.NewExperimentServiceUpdateExperimentTemplateResult() +} + +func deleteExperimentTemplateHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*expt.ExperimentServiceDeleteExperimentTemplateArgs) + realResult := result.(*expt.ExperimentServiceDeleteExperimentTemplateResult) + success, err := handler.(expt.ExperimentService).DeleteExperimentTemplate(ctx, realArg.Req) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newExperimentServiceDeleteExperimentTemplateArgs() interface{} { + return expt.NewExperimentServiceDeleteExperimentTemplateArgs() +} + +func newExperimentServiceDeleteExperimentTemplateResult() interface{} { + return expt.NewExperimentServiceDeleteExperimentTemplateResult() +} + +func listExperimentTemplatesHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*expt.ExperimentServiceListExperimentTemplatesArgs) + realResult := result.(*expt.ExperimentServiceListExperimentTemplatesResult) + success, err := handler.(expt.ExperimentService).ListExperimentTemplates(ctx, realArg.Req) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newExperimentServiceListExperimentTemplatesArgs() interface{} { + return expt.NewExperimentServiceListExperimentTemplatesArgs() +} + +func newExperimentServiceListExperimentTemplatesResult() interface{} { + return expt.NewExperimentServiceListExperimentTemplatesResult() +} + +func checkExperimentTemplateNameHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*expt.ExperimentServiceCheckExperimentTemplateNameArgs) + realResult := result.(*expt.ExperimentServiceCheckExperimentTemplateNameResult) + success, err := handler.(expt.ExperimentService).CheckExperimentTemplateName(ctx, realArg.Req) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newExperimentServiceCheckExperimentTemplateNameArgs() interface{} { + return expt.NewExperimentServiceCheckExperimentTemplateNameArgs() +} + +func newExperimentServiceCheckExperimentTemplateNameResult() interface{} { + return expt.NewExperimentServiceCheckExperimentTemplateNameResult() +} + type kClient struct { c client.Client sc client.Streaming @@ -1246,3 +1428,73 @@ func (p *kClient) GetAnalysisRecordFeedbackVote(ctx context.Context, req *expt.G } return _result.GetSuccess(), nil } + +func (p *kClient) CreateExperimentTemplate(ctx context.Context, req *expt.CreateExperimentTemplateRequest) (r *expt.CreateExperimentTemplateResponse, err error) { + var _args expt.ExperimentServiceCreateExperimentTemplateArgs + _args.Req = req + var _result expt.ExperimentServiceCreateExperimentTemplateResult + if err = p.c.Call(ctx, "CreateExperimentTemplate", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + +func (p *kClient) BatchGetExperimentTemplate(ctx context.Context, req *expt.BatchGetExperimentTemplateRequest) (r *expt.BatchGetExperimentTemplateResponse, err error) { + var _args expt.ExperimentServiceBatchGetExperimentTemplateArgs + _args.Req = req + var _result expt.ExperimentServiceBatchGetExperimentTemplateResult + if err = p.c.Call(ctx, "BatchGetExperimentTemplate", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + +func (p *kClient) UpdateExperimentTemplateMeta(ctx context.Context, req *expt.UpdateExperimentTemplateMetaRequest) (r *expt.UpdateExperimentTemplateMetaResponse, err error) { + var _args expt.ExperimentServiceUpdateExperimentTemplateMetaArgs + _args.Req = req + var _result expt.ExperimentServiceUpdateExperimentTemplateMetaResult + if err = p.c.Call(ctx, "UpdateExperimentTemplateMeta", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + +func (p *kClient) UpdateExperimentTemplate(ctx context.Context, req *expt.UpdateExperimentTemplateRequest) (r *expt.UpdateExperimentTemplateResponse, err error) { + var _args expt.ExperimentServiceUpdateExperimentTemplateArgs + _args.Req = req + var _result expt.ExperimentServiceUpdateExperimentTemplateResult + if err = p.c.Call(ctx, "UpdateExperimentTemplate", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + +func (p *kClient) DeleteExperimentTemplate(ctx context.Context, req *expt.DeleteExperimentTemplateRequest) (r *expt.DeleteExperimentTemplateResponse, err error) { + var _args expt.ExperimentServiceDeleteExperimentTemplateArgs + _args.Req = req + var _result expt.ExperimentServiceDeleteExperimentTemplateResult + if err = p.c.Call(ctx, "DeleteExperimentTemplate", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + +func (p *kClient) ListExperimentTemplates(ctx context.Context, req *expt.ListExperimentTemplatesRequest) (r *expt.ListExperimentTemplatesResponse, err error) { + var _args expt.ExperimentServiceListExperimentTemplatesArgs + _args.Req = req + var _result expt.ExperimentServiceListExperimentTemplatesResult + if err = p.c.Call(ctx, "ListExperimentTemplates", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + +func (p *kClient) CheckExperimentTemplateName(ctx context.Context, req *expt.CheckExperimentTemplateNameRequest) (r *expt.CheckExperimentTemplateNameResponse, err error) { + var _args expt.ExperimentServiceCheckExperimentTemplateNameArgs + _args.Req = req + var _result expt.ExperimentServiceCheckExperimentTemplateNameResult + if err = p.c.Call(ctx, "CheckExperimentTemplateName", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} diff --git a/backend/kitex_gen/coze/loop/evaluation/expt/coze.loop.evaluation.expt.go b/backend/kitex_gen/coze/loop/evaluation/expt/coze.loop.evaluation.expt.go index 7f96782bf..c9db81e5e 100644 --- a/backend/kitex_gen/coze/loop/evaluation/expt/coze.loop.evaluation.expt.go +++ b/backend/kitex_gen/coze/loop/evaluation/expt/coze.loop.evaluation.expt.go @@ -47,8 +47,12 @@ type CreateExperimentRequest struct { SourceID *string `thrift:"source_id,33,optional" frugal:"33,optional,string" form:"source_id" json:"source_id,omitempty"` // 补充的评估器id+version关联评估器方式,和evaluator_version_ids共同使用,兼容老逻辑 EvaluatorIDVersionList []*evaluator.EvaluatorIDVersionItem `thrift:"evaluator_id_version_list,40,optional" frugal:"40,optional,list" form:"evaluator_id_version_list" json:"evaluator_id_version_list,omitempty"` - Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` + // 是否启用评估器得分加权汇总,以及各评估器的权重配置(key 为 evaluator_version_id,value 为权重) + EnableWeightedScore *bool `thrift:"enable_weighted_score,41,optional" frugal:"41,optional,bool" json:"enable_weighted_score" form:"enable_weighted_score" ` + EvaluatorScoreWeights map[int64]float64 `thrift:"evaluator_score_weights,42,optional" frugal:"42,optional,map" json:"evaluator_score_weights" form:"evaluator_score_weights" ` + ExptTemplateID *int64 `thrift:"expt_template_id,43,optional" frugal:"43,optional,i64" json:"expt_template_id" form:"expt_template_id" ` + Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } func NewCreateExperimentRequest() *CreateExperimentRequest { @@ -281,6 +285,42 @@ func (p *CreateExperimentRequest) GetEvaluatorIDVersionList() (v []*evaluator.Ev return p.EvaluatorIDVersionList } +var CreateExperimentRequest_EnableWeightedScore_DEFAULT bool + +func (p *CreateExperimentRequest) GetEnableWeightedScore() (v bool) { + if p == nil { + return + } + if !p.IsSetEnableWeightedScore() { + return CreateExperimentRequest_EnableWeightedScore_DEFAULT + } + return *p.EnableWeightedScore +} + +var CreateExperimentRequest_EvaluatorScoreWeights_DEFAULT map[int64]float64 + +func (p *CreateExperimentRequest) GetEvaluatorScoreWeights() (v map[int64]float64) { + if p == nil { + return + } + if !p.IsSetEvaluatorScoreWeights() { + return CreateExperimentRequest_EvaluatorScoreWeights_DEFAULT + } + return p.EvaluatorScoreWeights +} + +var CreateExperimentRequest_ExptTemplateID_DEFAULT int64 + +func (p *CreateExperimentRequest) GetExptTemplateID() (v int64) { + if p == nil { + return + } + if !p.IsSetExptTemplateID() { + return CreateExperimentRequest_ExptTemplateID_DEFAULT + } + return *p.ExptTemplateID +} + var CreateExperimentRequest_Session_DEFAULT *common.Session func (p *CreateExperimentRequest) GetSession() (v *common.Session) { @@ -361,6 +401,15 @@ func (p *CreateExperimentRequest) SetSourceID(val *string) { func (p *CreateExperimentRequest) SetEvaluatorIDVersionList(val []*evaluator.EvaluatorIDVersionItem) { p.EvaluatorIDVersionList = val } +func (p *CreateExperimentRequest) SetEnableWeightedScore(val *bool) { + p.EnableWeightedScore = val +} +func (p *CreateExperimentRequest) SetEvaluatorScoreWeights(val map[int64]float64) { + p.EvaluatorScoreWeights = val +} +func (p *CreateExperimentRequest) SetExptTemplateID(val *int64) { + p.ExptTemplateID = val +} func (p *CreateExperimentRequest) SetSession(val *common.Session) { p.Session = val } @@ -388,6 +437,9 @@ var fieldIDToName_CreateExperimentRequest = map[int16]string{ 32: "source_type", 33: "source_id", 40: "evaluator_id_version_list", + 41: "enable_weighted_score", + 42: "evaluator_score_weights", + 43: "expt_template_id", 200: "session", 255: "Base", } @@ -464,6 +516,18 @@ func (p *CreateExperimentRequest) IsSetEvaluatorIDVersionList() bool { return p.EvaluatorIDVersionList != nil } +func (p *CreateExperimentRequest) IsSetEnableWeightedScore() bool { + return p.EnableWeightedScore != nil +} + +func (p *CreateExperimentRequest) IsSetEvaluatorScoreWeights() bool { + return p.EvaluatorScoreWeights != nil +} + +func (p *CreateExperimentRequest) IsSetExptTemplateID() bool { + return p.ExptTemplateID != nil +} + func (p *CreateExperimentRequest) IsSetSession() bool { return p.Session != nil } @@ -644,6 +708,30 @@ func (p *CreateExperimentRequest) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 41: + if fieldTypeId == thrift.BOOL { + if err = p.ReadField41(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 42: + if fieldTypeId == thrift.MAP { + if err = p.ReadField42(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 43: + if fieldTypeId == thrift.I64 { + if err = p.ReadField43(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } case 200: if fieldTypeId == thrift.STRUCT { if err = p.ReadField200(iprot); err != nil { @@ -933,6 +1021,57 @@ func (p *CreateExperimentRequest) ReadField40(iprot thrift.TProtocol) error { p.EvaluatorIDVersionList = _field return nil } +func (p *CreateExperimentRequest) ReadField41(iprot thrift.TProtocol) error { + + var _field *bool + if v, err := iprot.ReadBool(); err != nil { + return err + } else { + _field = &v + } + p.EnableWeightedScore = _field + return nil +} +func (p *CreateExperimentRequest) ReadField42(iprot thrift.TProtocol) error { + _, _, size, err := iprot.ReadMapBegin() + if err != nil { + return err + } + _field := make(map[int64]float64, size) + for i := 0; i < size; i++ { + var _key int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _key = v + } + + var _val float64 + if v, err := iprot.ReadDouble(); err != nil { + return err + } else { + _val = v + } + + _field[_key] = _val + } + if err := iprot.ReadMapEnd(); err != nil { + return err + } + p.EvaluatorScoreWeights = _field + return nil +} +func (p *CreateExperimentRequest) ReadField43(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.ExptTemplateID = _field + return nil +} func (p *CreateExperimentRequest) ReadField200(iprot thrift.TProtocol) error { _field := common.NewSession() if err := _field.Read(iprot); err != nil { @@ -1032,6 +1171,18 @@ func (p *CreateExperimentRequest) Write(oprot thrift.TProtocol) (err error) { fieldId = 40 goto WriteFieldError } + if err = p.writeField41(oprot); err != nil { + fieldId = 41 + goto WriteFieldError + } + if err = p.writeField42(oprot); err != nil { + fieldId = 42 + goto WriteFieldError + } + if err = p.writeField43(oprot); err != nil { + fieldId = 43 + goto WriteFieldError + } if err = p.writeField200(oprot); err != nil { fieldId = 200 goto WriteFieldError @@ -1422,6 +1573,71 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 40 end error: ", p), err) } +func (p *CreateExperimentRequest) writeField41(oprot thrift.TProtocol) (err error) { + if p.IsSetEnableWeightedScore() { + if err = oprot.WriteFieldBegin("enable_weighted_score", thrift.BOOL, 41); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteBool(*p.EnableWeightedScore); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 41 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 41 end error: ", p), err) +} +func (p *CreateExperimentRequest) writeField42(oprot thrift.TProtocol) (err error) { + if p.IsSetEvaluatorScoreWeights() { + if err = oprot.WriteFieldBegin("evaluator_score_weights", thrift.MAP, 42); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteMapBegin(thrift.I64, thrift.DOUBLE, len(p.EvaluatorScoreWeights)); err != nil { + return err + } + for k, v := range p.EvaluatorScoreWeights { + if err := oprot.WriteI64(k); err != nil { + return err + } + if err := oprot.WriteDouble(v); 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 42 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 42 end error: ", p), err) +} +func (p *CreateExperimentRequest) writeField43(oprot thrift.TProtocol) (err error) { + if p.IsSetExptTemplateID() { + if err = oprot.WriteFieldBegin("expt_template_id", thrift.I64, 43); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.ExptTemplateID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 43 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 43 end error: ", p), err) +} func (p *CreateExperimentRequest) writeField200(oprot thrift.TProtocol) (err error) { if p.IsSetSession() { if err = oprot.WriteFieldBegin("session", thrift.STRUCT, 200); err != nil { @@ -1530,6 +1746,15 @@ func (p *CreateExperimentRequest) DeepEqual(ano *CreateExperimentRequest) bool { if !p.Field40DeepEqual(ano.EvaluatorIDVersionList) { return false } + if !p.Field41DeepEqual(ano.EnableWeightedScore) { + return false + } + if !p.Field42DeepEqual(ano.EvaluatorScoreWeights) { + return false + } + if !p.Field43DeepEqual(ano.ExptTemplateID) { + return false + } if !p.Field200DeepEqual(ano.Session) { return false } @@ -1750,6 +1975,43 @@ func (p *CreateExperimentRequest) Field40DeepEqual(src []*evaluator.EvaluatorIDV } return true } +func (p *CreateExperimentRequest) Field41DeepEqual(src *bool) bool { + + if p.EnableWeightedScore == src { + return true + } else if p.EnableWeightedScore == nil || src == nil { + return false + } + if *p.EnableWeightedScore != *src { + return false + } + return true +} +func (p *CreateExperimentRequest) Field42DeepEqual(src map[int64]float64) bool { + + if len(p.EvaluatorScoreWeights) != len(src) { + return false + } + for k, v := range p.EvaluatorScoreWeights { + _src := src[k] + if v != _src { + return false + } + } + return true +} +func (p *CreateExperimentRequest) Field43DeepEqual(src *int64) bool { + + if p.ExptTemplateID == src { + return true + } else if p.ExptTemplateID == nil || src == nil { + return false + } + if *p.ExptTemplateID != *src { + return false + } + return true +} func (p *CreateExperimentRequest) Field200DeepEqual(src *common.Session) bool { if !p.Session.DeepEqual(src) { @@ -2026,9 +2288,12 @@ type SubmitExperimentRequest struct { SourceID *string `thrift:"source_id,33,optional" frugal:"33,optional,string" form:"source_id" json:"source_id,omitempty"` // 补充的评估器id+version关联评估器方式,和evaluator_version_ids共同使用,兼容老逻辑 EvaluatorIDVersionList []*evaluator.EvaluatorIDVersionItem `thrift:"evaluator_id_version_list,40,optional" frugal:"40,optional,list" form:"evaluator_id_version_list" json:"evaluator_id_version_list,omitempty"` - Ext map[string]string `thrift:"ext,100,optional" frugal:"100,optional,map" form:"ext" json:"ext,omitempty"` - Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` + // 是否启用评估器得分加权汇总,以及各评估器的权重配置(key 为 evaluator_version_id,value 为权重) + EnableWeightedScore *bool `thrift:"enable_weighted_score,41,optional" frugal:"41,optional,bool" json:"enable_weighted_score" form:"enable_weighted_score" ` + ExptTemplateID *int64 `thrift:"expt_template_id,42,optional" frugal:"42,optional,i64" json:"expt_template_id" form:"expt_template_id" ` + Ext map[string]string `thrift:"ext,100,optional" frugal:"100,optional,map" form:"ext" json:"ext,omitempty"` + Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } func NewSubmitExperimentRequest() *SubmitExperimentRequest { @@ -2261,6 +2526,30 @@ func (p *SubmitExperimentRequest) GetEvaluatorIDVersionList() (v []*evaluator.Ev return p.EvaluatorIDVersionList } +var SubmitExperimentRequest_EnableWeightedScore_DEFAULT bool + +func (p *SubmitExperimentRequest) GetEnableWeightedScore() (v bool) { + if p == nil { + return + } + if !p.IsSetEnableWeightedScore() { + return SubmitExperimentRequest_EnableWeightedScore_DEFAULT + } + return *p.EnableWeightedScore +} + +var SubmitExperimentRequest_ExptTemplateID_DEFAULT int64 + +func (p *SubmitExperimentRequest) GetExptTemplateID() (v int64) { + if p == nil { + return + } + if !p.IsSetExptTemplateID() { + return SubmitExperimentRequest_ExptTemplateID_DEFAULT + } + return *p.ExptTemplateID +} + var SubmitExperimentRequest_Ext_DEFAULT map[string]string func (p *SubmitExperimentRequest) GetExt() (v map[string]string) { @@ -2353,6 +2642,12 @@ func (p *SubmitExperimentRequest) SetSourceID(val *string) { func (p *SubmitExperimentRequest) SetEvaluatorIDVersionList(val []*evaluator.EvaluatorIDVersionItem) { p.EvaluatorIDVersionList = val } +func (p *SubmitExperimentRequest) SetEnableWeightedScore(val *bool) { + p.EnableWeightedScore = val +} +func (p *SubmitExperimentRequest) SetExptTemplateID(val *int64) { + p.ExptTemplateID = val +} func (p *SubmitExperimentRequest) SetExt(val map[string]string) { p.Ext = val } @@ -2383,6 +2678,8 @@ var fieldIDToName_SubmitExperimentRequest = map[int16]string{ 32: "source_type", 33: "source_id", 40: "evaluator_id_version_list", + 41: "enable_weighted_score", + 42: "expt_template_id", 100: "ext", 200: "session", 255: "Base", @@ -2460,6 +2757,14 @@ func (p *SubmitExperimentRequest) IsSetEvaluatorIDVersionList() bool { return p.EvaluatorIDVersionList != nil } +func (p *SubmitExperimentRequest) IsSetEnableWeightedScore() bool { + return p.EnableWeightedScore != nil +} + +func (p *SubmitExperimentRequest) IsSetExptTemplateID() bool { + return p.ExptTemplateID != nil +} + func (p *SubmitExperimentRequest) IsSetExt() bool { return p.Ext != nil } @@ -2644,6 +2949,22 @@ func (p *SubmitExperimentRequest) Read(iprot thrift.TProtocol) (err error) { } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 41: + if fieldTypeId == thrift.BOOL { + if err = p.ReadField41(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 42: + if fieldTypeId == thrift.I64 { + if err = p.ReadField42(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } case 100: if fieldTypeId == thrift.MAP { if err = p.ReadField100(iprot); err != nil { @@ -2941,6 +3262,28 @@ func (p *SubmitExperimentRequest) ReadField40(iprot thrift.TProtocol) error { p.EvaluatorIDVersionList = _field return nil } +func (p *SubmitExperimentRequest) ReadField41(iprot thrift.TProtocol) error { + + var _field *bool + if v, err := iprot.ReadBool(); err != nil { + return err + } else { + _field = &v + } + p.EnableWeightedScore = _field + return nil +} +func (p *SubmitExperimentRequest) ReadField42(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.ExptTemplateID = _field + return nil +} func (p *SubmitExperimentRequest) ReadField100(iprot thrift.TProtocol) error { _, _, size, err := iprot.ReadMapBegin() if err != nil { @@ -3069,6 +3412,14 @@ func (p *SubmitExperimentRequest) Write(oprot thrift.TProtocol) (err error) { fieldId = 40 goto WriteFieldError } + if err = p.writeField41(oprot); err != nil { + fieldId = 41 + goto WriteFieldError + } + if err = p.writeField42(oprot); err != nil { + fieldId = 42 + goto WriteFieldError + } if err = p.writeField100(oprot); err != nil { fieldId = 100 goto WriteFieldError @@ -3463,6 +3814,42 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 40 end error: ", p), err) } +func (p *SubmitExperimentRequest) writeField41(oprot thrift.TProtocol) (err error) { + if p.IsSetEnableWeightedScore() { + if err = oprot.WriteFieldBegin("enable_weighted_score", thrift.BOOL, 41); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteBool(*p.EnableWeightedScore); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 41 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 41 end error: ", p), err) +} +func (p *SubmitExperimentRequest) writeField42(oprot thrift.TProtocol) (err error) { + if p.IsSetExptTemplateID() { + if err = oprot.WriteFieldBegin("expt_template_id", thrift.I64, 42); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.ExptTemplateID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 42 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 42 end error: ", p), err) +} func (p *SubmitExperimentRequest) writeField100(oprot thrift.TProtocol) (err error) { if p.IsSetExt() { if err = oprot.WriteFieldBegin("ext", thrift.MAP, 100); err != nil { @@ -3600,6 +3987,12 @@ func (p *SubmitExperimentRequest) DeepEqual(ano *SubmitExperimentRequest) bool { if !p.Field40DeepEqual(ano.EvaluatorIDVersionList) { return false } + if !p.Field41DeepEqual(ano.EnableWeightedScore) { + return false + } + if !p.Field42DeepEqual(ano.ExptTemplateID) { + return false + } if !p.Field100DeepEqual(ano.Ext) { return false } @@ -3823,6 +4216,30 @@ func (p *SubmitExperimentRequest) Field40DeepEqual(src []*evaluator.EvaluatorIDV } return true } +func (p *SubmitExperimentRequest) Field41DeepEqual(src *bool) bool { + + if p.EnableWeightedScore == src { + return true + } else if p.EnableWeightedScore == nil || src == nil { + return false + } + if *p.EnableWeightedScore != *src { + return false + } + return true +} +func (p *SubmitExperimentRequest) Field42DeepEqual(src *int64) bool { + + if p.ExptTemplateID == src { + return true + } else if p.ExptTemplateID == nil || src == nil { + return false + } + if *p.ExptTemplateID != *src { + return false + } + return true +} func (p *SubmitExperimentRequest) Field100DeepEqual(src map[string]string) bool { if len(p.Ext) != len(src) { @@ -16592,127 +17009,210 @@ func (p *ListExperimentStatsResponse) Field255DeepEqual(src *base.BaseResp) bool return true } -type UpsertExptTurnResultFilterRequest struct { - WorkspaceID *int64 `thrift:"workspace_id,1,optional" frugal:"1,optional,i64" form:"workspace_id" json:"workspace_id,omitempty" query:"workspace_id"` - ExperimentID *int64 `thrift:"experiment_id,2,optional" frugal:"2,optional,i64" form:"experiment_id" json:"experiment_id,omitempty" query:"experiment_id"` - ItemIds []int64 `thrift:"item_ids,3,optional" frugal:"3,optional,list" form:"item_ids" json:"item_ids,omitempty" query:"item_ids"` - FilterType *UpsertExptTurnResultFilterType `thrift:"filter_type,4,optional" frugal:"4,optional,string" form:"filter_type" json:"filter_type,omitempty" query:"filter_type"` - RetryTimes *int32 `thrift:"retry_times,5,optional" frugal:"5,optional,i32" form:"retry_times" json:"retry_times,omitempty" query:"retry_times"` +// ========================= +// 实验模板相关接口 +// ========================= +type CreateExperimentTemplateRequest struct { + WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` + // 模板结构,与 ExptTemplate 保持一致 + Meta *expt.ExptTemplateMeta `thrift:"meta,10,optional" frugal:"10,optional,expt.ExptTemplateMeta" form:"meta" json:"meta,omitempty"` + TripleConfig *expt.ExptTuple `thrift:"triple_config,11,optional" frugal:"11,optional,expt.ExptTuple" form:"triple_config" json:"triple_config,omitempty"` + FieldMappingConfig *expt.ExptFieldMapping `thrift:"field_mapping_config,12,optional" frugal:"12,optional,expt.ExptFieldMapping" form:"field_mapping_config" json:"field_mapping_config,omitempty"` + // 创建评估对象参数(不在 ExptTemplate 结构中,保留在顶层) + CreateEvalTargetParam *eval_target.CreateEvalTargetParam `thrift:"create_eval_target_param,20,optional" frugal:"20,optional,eval_target.CreateEvalTargetParam" form:"create_eval_target_param" json:"create_eval_target_param,omitempty"` + // 默认评估器并发数(不在 ExptTemplate 结构中,保留在顶层) + DefaultEvaluatorsConcurNum *int32 `thrift:"default_evaluators_concur_num,21,optional" frugal:"21,optional,i32" form:"default_evaluators_concur_num" json:"default_evaluators_concur_num,omitempty"` + // 调度配置(不在 ExptTemplate 结构中,保留在顶层) + ScheduleCron *string `thrift:"schedule_cron,22,optional" frugal:"22,optional,string" form:"schedule_cron" json:"schedule_cron,omitempty"` + Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func NewUpsertExptTurnResultFilterRequest() *UpsertExptTurnResultFilterRequest { - return &UpsertExptTurnResultFilterRequest{} +func NewCreateExperimentTemplateRequest() *CreateExperimentTemplateRequest { + return &CreateExperimentTemplateRequest{} } -func (p *UpsertExptTurnResultFilterRequest) InitDefault() { +func (p *CreateExperimentTemplateRequest) InitDefault() { } -var UpsertExptTurnResultFilterRequest_WorkspaceID_DEFAULT int64 +func (p *CreateExperimentTemplateRequest) GetWorkspaceID() (v int64) { + if p != nil { + return p.WorkspaceID + } + return +} -func (p *UpsertExptTurnResultFilterRequest) GetWorkspaceID() (v int64) { +var CreateExperimentTemplateRequest_Meta_DEFAULT *expt.ExptTemplateMeta + +func (p *CreateExperimentTemplateRequest) GetMeta() (v *expt.ExptTemplateMeta) { if p == nil { return } - if !p.IsSetWorkspaceID() { - return UpsertExptTurnResultFilterRequest_WorkspaceID_DEFAULT + if !p.IsSetMeta() { + return CreateExperimentTemplateRequest_Meta_DEFAULT } - return *p.WorkspaceID + return p.Meta } -var UpsertExptTurnResultFilterRequest_ExperimentID_DEFAULT int64 +var CreateExperimentTemplateRequest_TripleConfig_DEFAULT *expt.ExptTuple -func (p *UpsertExptTurnResultFilterRequest) GetExperimentID() (v int64) { +func (p *CreateExperimentTemplateRequest) GetTripleConfig() (v *expt.ExptTuple) { if p == nil { return } - if !p.IsSetExperimentID() { - return UpsertExptTurnResultFilterRequest_ExperimentID_DEFAULT + if !p.IsSetTripleConfig() { + return CreateExperimentTemplateRequest_TripleConfig_DEFAULT } - return *p.ExperimentID + return p.TripleConfig } -var UpsertExptTurnResultFilterRequest_ItemIds_DEFAULT []int64 +var CreateExperimentTemplateRequest_FieldMappingConfig_DEFAULT *expt.ExptFieldMapping -func (p *UpsertExptTurnResultFilterRequest) GetItemIds() (v []int64) { +func (p *CreateExperimentTemplateRequest) GetFieldMappingConfig() (v *expt.ExptFieldMapping) { if p == nil { return } - if !p.IsSetItemIds() { - return UpsertExptTurnResultFilterRequest_ItemIds_DEFAULT + if !p.IsSetFieldMappingConfig() { + return CreateExperimentTemplateRequest_FieldMappingConfig_DEFAULT } - return p.ItemIds + return p.FieldMappingConfig } -var UpsertExptTurnResultFilterRequest_FilterType_DEFAULT UpsertExptTurnResultFilterType +var CreateExperimentTemplateRequest_CreateEvalTargetParam_DEFAULT *eval_target.CreateEvalTargetParam -func (p *UpsertExptTurnResultFilterRequest) GetFilterType() (v UpsertExptTurnResultFilterType) { +func (p *CreateExperimentTemplateRequest) GetCreateEvalTargetParam() (v *eval_target.CreateEvalTargetParam) { if p == nil { return } - if !p.IsSetFilterType() { - return UpsertExptTurnResultFilterRequest_FilterType_DEFAULT + if !p.IsSetCreateEvalTargetParam() { + return CreateExperimentTemplateRequest_CreateEvalTargetParam_DEFAULT } - return *p.FilterType + return p.CreateEvalTargetParam } -var UpsertExptTurnResultFilterRequest_RetryTimes_DEFAULT int32 +var CreateExperimentTemplateRequest_DefaultEvaluatorsConcurNum_DEFAULT int32 -func (p *UpsertExptTurnResultFilterRequest) GetRetryTimes() (v int32) { +func (p *CreateExperimentTemplateRequest) GetDefaultEvaluatorsConcurNum() (v int32) { if p == nil { return } - if !p.IsSetRetryTimes() { - return UpsertExptTurnResultFilterRequest_RetryTimes_DEFAULT + if !p.IsSetDefaultEvaluatorsConcurNum() { + return CreateExperimentTemplateRequest_DefaultEvaluatorsConcurNum_DEFAULT } - return *p.RetryTimes + return *p.DefaultEvaluatorsConcurNum } -func (p *UpsertExptTurnResultFilterRequest) SetWorkspaceID(val *int64) { + +var CreateExperimentTemplateRequest_ScheduleCron_DEFAULT string + +func (p *CreateExperimentTemplateRequest) GetScheduleCron() (v string) { + if p == nil { + return + } + if !p.IsSetScheduleCron() { + return CreateExperimentTemplateRequest_ScheduleCron_DEFAULT + } + return *p.ScheduleCron +} + +var CreateExperimentTemplateRequest_Session_DEFAULT *common.Session + +func (p *CreateExperimentTemplateRequest) GetSession() (v *common.Session) { + if p == nil { + return + } + if !p.IsSetSession() { + return CreateExperimentTemplateRequest_Session_DEFAULT + } + return p.Session +} + +var CreateExperimentTemplateRequest_Base_DEFAULT *base.Base + +func (p *CreateExperimentTemplateRequest) GetBase() (v *base.Base) { + if p == nil { + return + } + if !p.IsSetBase() { + return CreateExperimentTemplateRequest_Base_DEFAULT + } + return p.Base +} +func (p *CreateExperimentTemplateRequest) SetWorkspaceID(val int64) { p.WorkspaceID = val } -func (p *UpsertExptTurnResultFilterRequest) SetExperimentID(val *int64) { - p.ExperimentID = val +func (p *CreateExperimentTemplateRequest) SetMeta(val *expt.ExptTemplateMeta) { + p.Meta = val } -func (p *UpsertExptTurnResultFilterRequest) SetItemIds(val []int64) { - p.ItemIds = val +func (p *CreateExperimentTemplateRequest) SetTripleConfig(val *expt.ExptTuple) { + p.TripleConfig = val } -func (p *UpsertExptTurnResultFilterRequest) SetFilterType(val *UpsertExptTurnResultFilterType) { - p.FilterType = val +func (p *CreateExperimentTemplateRequest) SetFieldMappingConfig(val *expt.ExptFieldMapping) { + p.FieldMappingConfig = val } -func (p *UpsertExptTurnResultFilterRequest) SetRetryTimes(val *int32) { - p.RetryTimes = val +func (p *CreateExperimentTemplateRequest) SetCreateEvalTargetParam(val *eval_target.CreateEvalTargetParam) { + p.CreateEvalTargetParam = val +} +func (p *CreateExperimentTemplateRequest) SetDefaultEvaluatorsConcurNum(val *int32) { + p.DefaultEvaluatorsConcurNum = val +} +func (p *CreateExperimentTemplateRequest) SetScheduleCron(val *string) { + p.ScheduleCron = val +} +func (p *CreateExperimentTemplateRequest) SetSession(val *common.Session) { + p.Session = val +} +func (p *CreateExperimentTemplateRequest) SetBase(val *base.Base) { + p.Base = val } -var fieldIDToName_UpsertExptTurnResultFilterRequest = map[int16]string{ - 1: "workspace_id", - 2: "experiment_id", - 3: "item_ids", - 4: "filter_type", - 5: "retry_times", +var fieldIDToName_CreateExperimentTemplateRequest = map[int16]string{ + 1: "workspace_id", + 10: "meta", + 11: "triple_config", + 12: "field_mapping_config", + 20: "create_eval_target_param", + 21: "default_evaluators_concur_num", + 22: "schedule_cron", + 200: "session", + 255: "Base", } -func (p *UpsertExptTurnResultFilterRequest) IsSetWorkspaceID() bool { - return p.WorkspaceID != nil +func (p *CreateExperimentTemplateRequest) IsSetMeta() bool { + return p.Meta != nil } -func (p *UpsertExptTurnResultFilterRequest) IsSetExperimentID() bool { - return p.ExperimentID != nil +func (p *CreateExperimentTemplateRequest) IsSetTripleConfig() bool { + return p.TripleConfig != nil } -func (p *UpsertExptTurnResultFilterRequest) IsSetItemIds() bool { - return p.ItemIds != nil +func (p *CreateExperimentTemplateRequest) IsSetFieldMappingConfig() bool { + return p.FieldMappingConfig != nil } -func (p *UpsertExptTurnResultFilterRequest) IsSetFilterType() bool { - return p.FilterType != nil +func (p *CreateExperimentTemplateRequest) IsSetCreateEvalTargetParam() bool { + return p.CreateEvalTargetParam != nil } -func (p *UpsertExptTurnResultFilterRequest) IsSetRetryTimes() bool { - return p.RetryTimes != nil +func (p *CreateExperimentTemplateRequest) IsSetDefaultEvaluatorsConcurNum() bool { + return p.DefaultEvaluatorsConcurNum != nil } -func (p *UpsertExptTurnResultFilterRequest) Read(iprot thrift.TProtocol) (err error) { +func (p *CreateExperimentTemplateRequest) IsSetScheduleCron() bool { + return p.ScheduleCron != nil +} + +func (p *CreateExperimentTemplateRequest) IsSetSession() bool { + return p.Session != nil +} + +func (p *CreateExperimentTemplateRequest) IsSetBase() bool { + return p.Base != nil +} + +func (p *CreateExperimentTemplateRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 + var issetWorkspaceID bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -16733,36 +17233,69 @@ func (p *UpsertExptTurnResultFilterRequest) Read(iprot thrift.TProtocol) (err er if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } + issetWorkspaceID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 2: - if fieldTypeId == thrift.I64 { - if err = p.ReadField2(iprot); err != nil { + case 10: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField10(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 { + case 11: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField11(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 { + case 12: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField12(iprot); err != nil { goto ReadFieldError } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 5: + case 20: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField20(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 21: if fieldTypeId == thrift.I32 { - if err = p.ReadField5(iprot); err != nil { + if err = p.ReadField21(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 22: + if fieldTypeId == thrift.STRING { + if err = p.ReadField22(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 200: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField200(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 { goto ReadFieldError } } else if err = iprot.Skip(fieldTypeId); err != nil { @@ -16781,13 +17314,17 @@ func (p *UpsertExptTurnResultFilterRequest) Read(iprot thrift.TProtocol) (err er goto ReadStructEndError } + if !issetWorkspaceID { + 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_UpsertExptTurnResultFilterRequest[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_CreateExperimentTemplateRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -16795,79 +17332,95 @@ 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_CreateExperimentTemplateRequest[fieldId])) } -func (p *UpsertExptTurnResultFilterRequest) ReadField1(iprot thrift.TProtocol) error { +func (p *CreateExperimentTemplateRequest) ReadField1(iprot thrift.TProtocol) error { - var _field *int64 + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - _field = &v + _field = v } p.WorkspaceID = _field return nil } -func (p *UpsertExptTurnResultFilterRequest) ReadField2(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { +func (p *CreateExperimentTemplateRequest) ReadField10(iprot thrift.TProtocol) error { + _field := expt.NewExptTemplateMeta() + if err := _field.Read(iprot); err != nil { return err - } else { - _field = &v } - p.ExperimentID = _field + p.Meta = _field return nil } -func (p *UpsertExptTurnResultFilterRequest) ReadField3(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { +func (p *CreateExperimentTemplateRequest) ReadField11(iprot thrift.TProtocol) error { + _field := expt.NewExptTuple() + if err := _field.Read(iprot); 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) + p.TripleConfig = _field + return nil +} +func (p *CreateExperimentTemplateRequest) ReadField12(iprot thrift.TProtocol) error { + _field := expt.NewExptFieldMapping() + if err := _field.Read(iprot); err != nil { + return err } - if err := iprot.ReadListEnd(); err != nil { + p.FieldMappingConfig = _field + return nil +} +func (p *CreateExperimentTemplateRequest) ReadField20(iprot thrift.TProtocol) error { + _field := eval_target.NewCreateEvalTargetParam() + if err := _field.Read(iprot); err != nil { return err } - p.ItemIds = _field + p.CreateEvalTargetParam = _field return nil } -func (p *UpsertExptTurnResultFilterRequest) ReadField4(iprot thrift.TProtocol) error { +func (p *CreateExperimentTemplateRequest) ReadField21(iprot thrift.TProtocol) error { - var _field *UpsertExptTurnResultFilterType - if v, err := iprot.ReadString(); err != nil { + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { return err } else { _field = &v } - p.FilterType = _field + p.DefaultEvaluatorsConcurNum = _field return nil } -func (p *UpsertExptTurnResultFilterRequest) ReadField5(iprot thrift.TProtocol) error { +func (p *CreateExperimentTemplateRequest) ReadField22(iprot thrift.TProtocol) error { - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { + var _field *string + if v, err := iprot.ReadString(); err != nil { return err } else { _field = &v } - p.RetryTimes = _field + p.ScheduleCron = _field + return nil +} +func (p *CreateExperimentTemplateRequest) ReadField200(iprot thrift.TProtocol) error { + _field := common.NewSession() + if err := _field.Read(iprot); err != nil { + return err + } + p.Session = _field + return nil +} +func (p *CreateExperimentTemplateRequest) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBase() + if err := _field.Read(iprot); err != nil { + return err + } + p.Base = _field return nil } -func (p *UpsertExptTurnResultFilterRequest) Write(oprot thrift.TProtocol) (err error) { +func (p *CreateExperimentTemplateRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("UpsertExptTurnResultFilterRequest"); err != nil { + if err = oprot.WriteStructBegin("CreateExperimentTemplateRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -16875,20 +17428,36 @@ func (p *UpsertExptTurnResultFilterRequest) Write(oprot thrift.TProtocol) (err e fieldId = 1 goto WriteFieldError } - if err = p.writeField2(oprot); err != nil { - fieldId = 2 + if err = p.writeField10(oprot); err != nil { + fieldId = 10 goto WriteFieldError } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 + if err = p.writeField11(oprot); err != nil { + fieldId = 11 goto WriteFieldError } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 + if err = p.writeField12(oprot); err != nil { + fieldId = 12 goto WriteFieldError } - if err = p.writeField5(oprot); err != nil { - fieldId = 5 + if err = p.writeField20(oprot); err != nil { + fieldId = 20 + goto WriteFieldError + } + if err = p.writeField21(oprot); err != nil { + fieldId = 21 + goto WriteFieldError + } + if err = p.writeField22(oprot); err != nil { + fieldId = 22 + goto WriteFieldError + } + if err = p.writeField200(oprot); err != nil { + fieldId = 200 + goto WriteFieldError + } + if err = p.writeField255(oprot); err != nil { + fieldId = 255 goto WriteFieldError } } @@ -16909,12 +17478,28 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *UpsertExptTurnResultFilterRequest) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetWorkspaceID() { - if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { +func (p *CreateExperimentTemplateRequest) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.WorkspaceID); 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 *CreateExperimentTemplateRequest) writeField10(oprot thrift.TProtocol) (err error) { + if p.IsSetMeta() { + if err = oprot.WriteFieldBegin("meta", thrift.STRUCT, 10); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI64(*p.WorkspaceID); err != nil { + if err := p.Meta.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -16923,16 +17508,16 @@ func (p *UpsertExptTurnResultFilterRequest) writeField1(oprot thrift.TProtocol) } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 10 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 10 end error: ", p), err) } -func (p *UpsertExptTurnResultFilterRequest) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetExperimentID() { - if err = oprot.WriteFieldBegin("experiment_id", thrift.I64, 2); err != nil { +func (p *CreateExperimentTemplateRequest) writeField11(oprot thrift.TProtocol) (err error) { + if p.IsSetTripleConfig() { + if err = oprot.WriteFieldBegin("triple_config", thrift.STRUCT, 11); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI64(*p.ExperimentID); err != nil { + if err := p.TripleConfig.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -16941,24 +17526,34 @@ func (p *UpsertExptTurnResultFilterRequest) writeField2(oprot thrift.TProtocol) } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 11 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 11 end error: ", p), err) } -func (p *UpsertExptTurnResultFilterRequest) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetItemIds() { - if err = oprot.WriteFieldBegin("item_ids", thrift.LIST, 3); err != nil { +func (p *CreateExperimentTemplateRequest) writeField12(oprot thrift.TProtocol) (err error) { + if p.IsSetFieldMappingConfig() { + if err = oprot.WriteFieldBegin("field_mapping_config", thrift.STRUCT, 12); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteListBegin(thrift.I64, len(p.ItemIds)); err != nil { + if err := p.FieldMappingConfig.Write(oprot); err != nil { return err } - for _, v := range p.ItemIds { - if err := oprot.WriteI64(v); err != nil { - return err - } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } - if err := oprot.WriteListEnd(); err != nil { + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 12 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 12 end error: ", p), err) +} +func (p *CreateExperimentTemplateRequest) writeField20(oprot thrift.TProtocol) (err error) { + if p.IsSetCreateEvalTargetParam() { + if err = oprot.WriteFieldBegin("create_eval_target_param", thrift.STRUCT, 20); err != nil { + goto WriteFieldBeginError + } + if err := p.CreateEvalTargetParam.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -16967,16 +17562,16 @@ func (p *UpsertExptTurnResultFilterRequest) writeField3(oprot thrift.TProtocol) } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 20 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 20 end error: ", p), err) } -func (p *UpsertExptTurnResultFilterRequest) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetFilterType() { - if err = oprot.WriteFieldBegin("filter_type", thrift.STRING, 4); err != nil { +func (p *CreateExperimentTemplateRequest) writeField21(oprot thrift.TProtocol) (err error) { + if p.IsSetDefaultEvaluatorsConcurNum() { + if err = oprot.WriteFieldBegin("default_evaluators_concur_num", thrift.I32, 21); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(*p.FilterType); err != nil { + if err := oprot.WriteI32(*p.DefaultEvaluatorsConcurNum); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -16985,16 +17580,16 @@ func (p *UpsertExptTurnResultFilterRequest) writeField4(oprot thrift.TProtocol) } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 21 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 21 end error: ", p), err) } -func (p *UpsertExptTurnResultFilterRequest) writeField5(oprot thrift.TProtocol) (err error) { - if p.IsSetRetryTimes() { - if err = oprot.WriteFieldBegin("retry_times", thrift.I32, 5); err != nil { +func (p *CreateExperimentTemplateRequest) writeField22(oprot thrift.TProtocol) (err error) { + if p.IsSetScheduleCron() { + if err = oprot.WriteFieldBegin("schedule_cron", thrift.STRING, 22); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI32(*p.RetryTimes); err != nil { + if err := oprot.WriteString(*p.ScheduleCron); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -17003,20 +17598,56 @@ func (p *UpsertExptTurnResultFilterRequest) writeField5(oprot thrift.TProtocol) } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 22 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 22 end error: ", p), err) +} +func (p *CreateExperimentTemplateRequest) writeField200(oprot thrift.TProtocol) (err error) { + if p.IsSetSession() { + if err = oprot.WriteFieldBegin("session", thrift.STRUCT, 200); err != nil { + goto WriteFieldBeginError + } + if err := p.Session.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 200 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 200 end error: ", p), err) +} +func (p *CreateExperimentTemplateRequest) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBase() { + if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.Base.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 255 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *UpsertExptTurnResultFilterRequest) String() string { +func (p *CreateExperimentTemplateRequest) String() string { if p == nil { return "" } - return fmt.Sprintf("UpsertExptTurnResultFilterRequest(%+v)", *p) + return fmt.Sprintf("CreateExperimentTemplateRequest(%+v)", *p) } -func (p *UpsertExptTurnResultFilterRequest) DeepEqual(ano *UpsertExptTurnResultFilterRequest) bool { +func (p *CreateExperimentTemplateRequest) DeepEqual(ano *CreateExperimentTemplateRequest) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -17025,118 +17656,163 @@ func (p *UpsertExptTurnResultFilterRequest) DeepEqual(ano *UpsertExptTurnResultF if !p.Field1DeepEqual(ano.WorkspaceID) { return false } - if !p.Field2DeepEqual(ano.ExperimentID) { + if !p.Field10DeepEqual(ano.Meta) { return false } - if !p.Field3DeepEqual(ano.ItemIds) { + if !p.Field11DeepEqual(ano.TripleConfig) { return false } - if !p.Field4DeepEqual(ano.FilterType) { + if !p.Field12DeepEqual(ano.FieldMappingConfig) { return false } - if !p.Field5DeepEqual(ano.RetryTimes) { + if !p.Field20DeepEqual(ano.CreateEvalTargetParam) { + return false + } + if !p.Field21DeepEqual(ano.DefaultEvaluatorsConcurNum) { + return false + } + if !p.Field22DeepEqual(ano.ScheduleCron) { + return false + } + if !p.Field200DeepEqual(ano.Session) { + return false + } + if !p.Field255DeepEqual(ano.Base) { return false } return true } -func (p *UpsertExptTurnResultFilterRequest) Field1DeepEqual(src *int64) bool { +func (p *CreateExperimentTemplateRequest) Field1DeepEqual(src int64) bool { - if p.WorkspaceID == src { - return true - } else if p.WorkspaceID == nil || src == nil { + if p.WorkspaceID != src { return false } - if *p.WorkspaceID != *src { + return true +} +func (p *CreateExperimentTemplateRequest) Field10DeepEqual(src *expt.ExptTemplateMeta) bool { + + if !p.Meta.DeepEqual(src) { return false } return true } -func (p *UpsertExptTurnResultFilterRequest) Field2DeepEqual(src *int64) bool { +func (p *CreateExperimentTemplateRequest) Field11DeepEqual(src *expt.ExptTuple) bool { - if p.ExperimentID == src { - return true - } else if p.ExperimentID == nil || src == nil { + if !p.TripleConfig.DeepEqual(src) { return false } - if *p.ExperimentID != *src { + return true +} +func (p *CreateExperimentTemplateRequest) Field12DeepEqual(src *expt.ExptFieldMapping) bool { + + if !p.FieldMappingConfig.DeepEqual(src) { return false } return true } -func (p *UpsertExptTurnResultFilterRequest) Field3DeepEqual(src []int64) bool { +func (p *CreateExperimentTemplateRequest) Field20DeepEqual(src *eval_target.CreateEvalTargetParam) bool { - if len(p.ItemIds) != len(src) { + if !p.CreateEvalTargetParam.DeepEqual(src) { return false } - for i, v := range p.ItemIds { - _src := src[i] - if v != _src { - return false - } - } return true } -func (p *UpsertExptTurnResultFilterRequest) Field4DeepEqual(src *UpsertExptTurnResultFilterType) bool { +func (p *CreateExperimentTemplateRequest) Field21DeepEqual(src *int32) bool { - if p.FilterType == src { + if p.DefaultEvaluatorsConcurNum == src { return true - } else if p.FilterType == nil || src == nil { + } else if p.DefaultEvaluatorsConcurNum == nil || src == nil { return false } - if strings.Compare(*p.FilterType, *src) != 0 { + if *p.DefaultEvaluatorsConcurNum != *src { return false } return true } -func (p *UpsertExptTurnResultFilterRequest) Field5DeepEqual(src *int32) bool { +func (p *CreateExperimentTemplateRequest) Field22DeepEqual(src *string) bool { - if p.RetryTimes == src { + if p.ScheduleCron == src { return true - } else if p.RetryTimes == nil || src == nil { + } else if p.ScheduleCron == nil || src == nil { return false } - if *p.RetryTimes != *src { + if strings.Compare(*p.ScheduleCron, *src) != 0 { return false } return true } +func (p *CreateExperimentTemplateRequest) Field200DeepEqual(src *common.Session) bool { -type UpsertExptTurnResultFilterResponse struct { - BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` + if !p.Session.DeepEqual(src) { + return false + } + return true } +func (p *CreateExperimentTemplateRequest) Field255DeepEqual(src *base.Base) bool { -func NewUpsertExptTurnResultFilterResponse() *UpsertExptTurnResultFilterResponse { - return &UpsertExptTurnResultFilterResponse{} + if !p.Base.DeepEqual(src) { + return false + } + return true } -func (p *UpsertExptTurnResultFilterResponse) InitDefault() { +type CreateExperimentTemplateResponse struct { + ExperimentTemplate *expt.ExptTemplate `thrift:"experiment_template,1,optional" frugal:"1,optional,expt.ExptTemplate" form:"experiment_template" json:"experiment_template,omitempty" query:"experiment_template"` + BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` } -var UpsertExptTurnResultFilterResponse_BaseResp_DEFAULT *base.BaseResp +func NewCreateExperimentTemplateResponse() *CreateExperimentTemplateResponse { + return &CreateExperimentTemplateResponse{} +} -func (p *UpsertExptTurnResultFilterResponse) GetBaseResp() (v *base.BaseResp) { +func (p *CreateExperimentTemplateResponse) InitDefault() { +} + +var CreateExperimentTemplateResponse_ExperimentTemplate_DEFAULT *expt.ExptTemplate + +func (p *CreateExperimentTemplateResponse) GetExperimentTemplate() (v *expt.ExptTemplate) { + if p == nil { + return + } + if !p.IsSetExperimentTemplate() { + return CreateExperimentTemplateResponse_ExperimentTemplate_DEFAULT + } + return p.ExperimentTemplate +} + +var CreateExperimentTemplateResponse_BaseResp_DEFAULT *base.BaseResp + +func (p *CreateExperimentTemplateResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } if !p.IsSetBaseResp() { - return UpsertExptTurnResultFilterResponse_BaseResp_DEFAULT + return CreateExperimentTemplateResponse_BaseResp_DEFAULT } return p.BaseResp } -func (p *UpsertExptTurnResultFilterResponse) SetBaseResp(val *base.BaseResp) { +func (p *CreateExperimentTemplateResponse) SetExperimentTemplate(val *expt.ExptTemplate) { + p.ExperimentTemplate = val +} +func (p *CreateExperimentTemplateResponse) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } -var fieldIDToName_UpsertExptTurnResultFilterResponse = map[int16]string{ +var fieldIDToName_CreateExperimentTemplateResponse = map[int16]string{ + 1: "experiment_template", 255: "BaseResp", } -func (p *UpsertExptTurnResultFilterResponse) IsSetBaseResp() bool { +func (p *CreateExperimentTemplateResponse) IsSetExperimentTemplate() bool { + return p.ExperimentTemplate != nil +} + +func (p *CreateExperimentTemplateResponse) IsSetBaseResp() bool { return p.BaseResp != nil } -func (p *UpsertExptTurnResultFilterResponse) Read(iprot thrift.TProtocol) (err error) { +func (p *CreateExperimentTemplateResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -17154,6 +17830,14 @@ func (p *UpsertExptTurnResultFilterResponse) Read(iprot thrift.TProtocol) (err e } switch fieldId { + case 1: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField1(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 { @@ -17181,7 +17865,7 @@ ReadStructBeginError: 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_UpsertExptTurnResultFilterResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_CreateExperimentTemplateResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -17191,7 +17875,15 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *UpsertExptTurnResultFilterResponse) ReadField255(iprot thrift.TProtocol) error { +func (p *CreateExperimentTemplateResponse) ReadField1(iprot thrift.TProtocol) error { + _field := expt.NewExptTemplate() + if err := _field.Read(iprot); err != nil { + return err + } + p.ExperimentTemplate = _field + return nil +} +func (p *CreateExperimentTemplateResponse) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err @@ -17200,12 +17892,16 @@ func (p *UpsertExptTurnResultFilterResponse) ReadField255(iprot thrift.TProtocol return nil } -func (p *UpsertExptTurnResultFilterResponse) Write(oprot thrift.TProtocol) (err error) { +func (p *CreateExperimentTemplateResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("UpsertExptTurnResultFilterResponse"); err != nil { + if err = oprot.WriteStructBegin("CreateExperimentTemplateResponse"); err != nil { goto WriteStructBeginError } if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -17228,7 +17924,25 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *UpsertExptTurnResultFilterResponse) writeField255(oprot thrift.TProtocol) (err error) { +func (p *CreateExperimentTemplateResponse) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetExperimentTemplate() { + if err = oprot.WriteFieldBegin("experiment_template", thrift.STRUCT, 1); err != nil { + goto WriteFieldBeginError + } + if err := p.ExperimentTemplate.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 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *CreateExperimentTemplateResponse) writeField255(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError } @@ -17245,139 +17959,107 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *UpsertExptTurnResultFilterResponse) String() string { +func (p *CreateExperimentTemplateResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("UpsertExptTurnResultFilterResponse(%+v)", *p) + return fmt.Sprintf("CreateExperimentTemplateResponse(%+v)", *p) } -func (p *UpsertExptTurnResultFilterResponse) DeepEqual(ano *UpsertExptTurnResultFilterResponse) bool { +func (p *CreateExperimentTemplateResponse) DeepEqual(ano *CreateExperimentTemplateResponse) bool { if p == ano { return true } else if p == nil || ano == nil { return false } + if !p.Field1DeepEqual(ano.ExperimentTemplate) { + return false + } if !p.Field255DeepEqual(ano.BaseResp) { return false } return true } -func (p *UpsertExptTurnResultFilterResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *CreateExperimentTemplateResponse) Field1DeepEqual(src *expt.ExptTemplate) bool { - if !p.BaseResp.DeepEqual(src) { + if !p.ExperimentTemplate.DeepEqual(src) { return false } return true } +func (p *CreateExperimentTemplateResponse) Field255DeepEqual(src *base.BaseResp) bool { -type AssociateAnnotationTagReq struct { - WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` - ExptID int64 `thrift:"expt_id,2,required" frugal:"2,required,i64" json:"expt_id" path:"expt_id,required" ` - TagKeyID *int64 `thrift:"tag_key_id,3,optional" frugal:"3,optional,i64" json:"tag_key_id" form:"tag_key_id" ` - Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` + if !p.BaseResp.DeepEqual(src) { + return false + } + return true } -func NewAssociateAnnotationTagReq() *AssociateAnnotationTagReq { - return &AssociateAnnotationTagReq{} +type BatchGetExperimentTemplateRequest struct { + WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` + TemplateIds []int64 `thrift:"template_ids,2,required" frugal:"2,required,list" json:"template_ids" form:"template_ids,required" ` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func (p *AssociateAnnotationTagReq) InitDefault() { +func NewBatchGetExperimentTemplateRequest() *BatchGetExperimentTemplateRequest { + return &BatchGetExperimentTemplateRequest{} } -func (p *AssociateAnnotationTagReq) GetWorkspaceID() (v int64) { +func (p *BatchGetExperimentTemplateRequest) InitDefault() { +} + +func (p *BatchGetExperimentTemplateRequest) GetWorkspaceID() (v int64) { if p != nil { return p.WorkspaceID } return } -func (p *AssociateAnnotationTagReq) GetExptID() (v int64) { +func (p *BatchGetExperimentTemplateRequest) GetTemplateIds() (v []int64) { if p != nil { - return p.ExptID + return p.TemplateIds } return } -var AssociateAnnotationTagReq_TagKeyID_DEFAULT int64 - -func (p *AssociateAnnotationTagReq) GetTagKeyID() (v int64) { - if p == nil { - return - } - if !p.IsSetTagKeyID() { - return AssociateAnnotationTagReq_TagKeyID_DEFAULT - } - return *p.TagKeyID -} - -var AssociateAnnotationTagReq_Session_DEFAULT *common.Session - -func (p *AssociateAnnotationTagReq) GetSession() (v *common.Session) { - if p == nil { - return - } - if !p.IsSetSession() { - return AssociateAnnotationTagReq_Session_DEFAULT - } - return p.Session -} - -var AssociateAnnotationTagReq_Base_DEFAULT *base.Base +var BatchGetExperimentTemplateRequest_Base_DEFAULT *base.Base -func (p *AssociateAnnotationTagReq) GetBase() (v *base.Base) { +func (p *BatchGetExperimentTemplateRequest) GetBase() (v *base.Base) { if p == nil { return } if !p.IsSetBase() { - return AssociateAnnotationTagReq_Base_DEFAULT + return BatchGetExperimentTemplateRequest_Base_DEFAULT } return p.Base } -func (p *AssociateAnnotationTagReq) SetWorkspaceID(val int64) { +func (p *BatchGetExperimentTemplateRequest) SetWorkspaceID(val int64) { p.WorkspaceID = val } -func (p *AssociateAnnotationTagReq) SetExptID(val int64) { - p.ExptID = val -} -func (p *AssociateAnnotationTagReq) SetTagKeyID(val *int64) { - p.TagKeyID = val -} -func (p *AssociateAnnotationTagReq) SetSession(val *common.Session) { - p.Session = val +func (p *BatchGetExperimentTemplateRequest) SetTemplateIds(val []int64) { + p.TemplateIds = val } -func (p *AssociateAnnotationTagReq) SetBase(val *base.Base) { +func (p *BatchGetExperimentTemplateRequest) SetBase(val *base.Base) { p.Base = val } -var fieldIDToName_AssociateAnnotationTagReq = map[int16]string{ +var fieldIDToName_BatchGetExperimentTemplateRequest = map[int16]string{ 1: "workspace_id", - 2: "expt_id", - 3: "tag_key_id", - 200: "session", + 2: "template_ids", 255: "Base", } -func (p *AssociateAnnotationTagReq) IsSetTagKeyID() bool { - return p.TagKeyID != nil -} - -func (p *AssociateAnnotationTagReq) IsSetSession() bool { - return p.Session != nil -} - -func (p *AssociateAnnotationTagReq) IsSetBase() bool { +func (p *BatchGetExperimentTemplateRequest) IsSetBase() bool { return p.Base != nil } -func (p *AssociateAnnotationTagReq) Read(iprot thrift.TProtocol) (err error) { +func (p *BatchGetExperimentTemplateRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 var issetWorkspaceID bool = false - var issetExptID bool = false + var issetTemplateIds bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -17403,27 +18085,11 @@ func (p *AssociateAnnotationTagReq) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 2: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.LIST { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } - issetExptID = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.I64 { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 200: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField200(iprot); err != nil { - goto ReadFieldError - } + issetTemplateIds = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -17453,7 +18119,7 @@ func (p *AssociateAnnotationTagReq) Read(iprot thrift.TProtocol) (err error) { goto RequiredFieldNotSetError } - if !issetExptID { + if !issetTemplateIds { fieldId = 2 goto RequiredFieldNotSetError } @@ -17463,7 +18129,7 @@ ReadStructBeginError: 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_AssociateAnnotationTagReq[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_BatchGetExperimentTemplateRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -17472,10 +18138,10 @@ ReadFieldEndError: 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_AssociateAnnotationTagReq[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_BatchGetExperimentTemplateRequest[fieldId])) } -func (p *AssociateAnnotationTagReq) ReadField1(iprot thrift.TProtocol) error { +func (p *BatchGetExperimentTemplateRequest) ReadField1(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -17486,37 +18152,30 @@ func (p *AssociateAnnotationTagReq) ReadField1(iprot thrift.TProtocol) error { p.WorkspaceID = _field return nil } -func (p *AssociateAnnotationTagReq) ReadField2(iprot thrift.TProtocol) error { - - var _field int64 - if v, err := iprot.ReadI64(); err != nil { +func (p *BatchGetExperimentTemplateRequest) ReadField2(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { return err - } else { - _field = v } - p.ExptID = _field - return nil -} -func (p *AssociateAnnotationTagReq) ReadField3(iprot thrift.TProtocol) error { + _field := make([]int64, 0, size) + for i := 0; i < size; i++ { - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = &v + var _elem int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _elem = v + } + + _field = append(_field, _elem) } - p.TagKeyID = _field - return nil -} -func (p *AssociateAnnotationTagReq) ReadField200(iprot thrift.TProtocol) error { - _field := common.NewSession() - if err := _field.Read(iprot); err != nil { + if err := iprot.ReadListEnd(); err != nil { return err } - p.Session = _field + p.TemplateIds = _field return nil } -func (p *AssociateAnnotationTagReq) ReadField255(iprot thrift.TProtocol) error { +func (p *BatchGetExperimentTemplateRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err @@ -17525,9 +18184,9 @@ func (p *AssociateAnnotationTagReq) ReadField255(iprot thrift.TProtocol) error { return nil } -func (p *AssociateAnnotationTagReq) Write(oprot thrift.TProtocol) (err error) { +func (p *BatchGetExperimentTemplateRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("AssociateAnnotationTagReq"); err != nil { + if err = oprot.WriteStructBegin("BatchGetExperimentTemplateRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -17539,14 +18198,6 @@ func (p *AssociateAnnotationTagReq) Write(oprot thrift.TProtocol) (err error) { fieldId = 2 goto WriteFieldError } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - if err = p.writeField200(oprot); err != nil { - fieldId = 200 - goto WriteFieldError - } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -17569,7 +18220,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *AssociateAnnotationTagReq) writeField1(oprot thrift.TProtocol) (err error) { +func (p *BatchGetExperimentTemplateRequest) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { goto WriteFieldBeginError } @@ -17585,11 +18236,19 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *AssociateAnnotationTagReq) writeField2(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("expt_id", thrift.I64, 2); err != nil { +func (p *BatchGetExperimentTemplateRequest) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("template_ids", thrift.LIST, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI64(p.ExptID); err != nil { + if err := oprot.WriteListBegin(thrift.I64, len(p.TemplateIds)); err != nil { + return err + } + for _, v := range p.TemplateIds { + if err := oprot.WriteI64(v); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -17601,43 +18260,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *AssociateAnnotationTagReq) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetTagKeyID() { - if err = oprot.WriteFieldBegin("tag_key_id", thrift.I64, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.TagKeyID); 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 *AssociateAnnotationTagReq) writeField200(oprot thrift.TProtocol) (err error) { - if p.IsSetSession() { - if err = oprot.WriteFieldBegin("session", thrift.STRUCT, 200); err != nil { - goto WriteFieldBeginError - } - if err := p.Session.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 200 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 200 end error: ", p), err) -} -func (p *AssociateAnnotationTagReq) writeField255(oprot thrift.TProtocol) (err error) { +func (p *BatchGetExperimentTemplateRequest) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -17656,15 +18279,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *AssociateAnnotationTagReq) String() string { +func (p *BatchGetExperimentTemplateRequest) String() string { if p == nil { return "" } - return fmt.Sprintf("AssociateAnnotationTagReq(%+v)", *p) + return fmt.Sprintf("BatchGetExperimentTemplateRequest(%+v)", *p) } -func (p *AssociateAnnotationTagReq) DeepEqual(ano *AssociateAnnotationTagReq) bool { +func (p *BatchGetExperimentTemplateRequest) DeepEqual(ano *BatchGetExperimentTemplateRequest) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -17673,13 +18296,7 @@ func (p *AssociateAnnotationTagReq) DeepEqual(ano *AssociateAnnotationTagReq) bo if !p.Field1DeepEqual(ano.WorkspaceID) { return false } - if !p.Field2DeepEqual(ano.ExptID) { - return false - } - if !p.Field3DeepEqual(ano.TagKeyID) { - return false - } - if !p.Field200DeepEqual(ano.Session) { + if !p.Field2DeepEqual(ano.TemplateIds) { return false } if !p.Field255DeepEqual(ano.Base) { @@ -17688,82 +18305,90 @@ func (p *AssociateAnnotationTagReq) DeepEqual(ano *AssociateAnnotationTagReq) bo return true } -func (p *AssociateAnnotationTagReq) Field1DeepEqual(src int64) bool { +func (p *BatchGetExperimentTemplateRequest) Field1DeepEqual(src int64) bool { if p.WorkspaceID != src { return false } return true } -func (p *AssociateAnnotationTagReq) Field2DeepEqual(src int64) bool { - - if p.ExptID != src { - return false - } - return true -} -func (p *AssociateAnnotationTagReq) Field3DeepEqual(src *int64) bool { +func (p *BatchGetExperimentTemplateRequest) Field2DeepEqual(src []int64) bool { - if p.TagKeyID == src { - return true - } else if p.TagKeyID == nil || src == nil { + if len(p.TemplateIds) != len(src) { return false } - if *p.TagKeyID != *src { - return false + for i, v := range p.TemplateIds { + _src := src[i] + if v != _src { + return false + } } return true } -func (p *AssociateAnnotationTagReq) Field200DeepEqual(src *common.Session) bool { +func (p *BatchGetExperimentTemplateRequest) Field255DeepEqual(src *base.Base) bool { - if !p.Session.DeepEqual(src) { + if !p.Base.DeepEqual(src) { return false } return true } -func (p *AssociateAnnotationTagReq) Field255DeepEqual(src *base.Base) bool { - if !p.Base.DeepEqual(src) { - return false - } - return true +type BatchGetExperimentTemplateResponse struct { + ExperimentTemplates []*expt.ExptTemplate `thrift:"experiment_templates,1,optional" frugal:"1,optional,list" form:"experiment_templates" json:"experiment_templates,omitempty" query:"experiment_templates"` + BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` } -type AssociateAnnotationTagResp struct { - BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` +func NewBatchGetExperimentTemplateResponse() *BatchGetExperimentTemplateResponse { + return &BatchGetExperimentTemplateResponse{} } -func NewAssociateAnnotationTagResp() *AssociateAnnotationTagResp { - return &AssociateAnnotationTagResp{} +func (p *BatchGetExperimentTemplateResponse) InitDefault() { } -func (p *AssociateAnnotationTagResp) InitDefault() { +var BatchGetExperimentTemplateResponse_ExperimentTemplates_DEFAULT []*expt.ExptTemplate + +func (p *BatchGetExperimentTemplateResponse) GetExperimentTemplates() (v []*expt.ExptTemplate) { + if p == nil { + return + } + if !p.IsSetExperimentTemplates() { + return BatchGetExperimentTemplateResponse_ExperimentTemplates_DEFAULT + } + return p.ExperimentTemplates } -var AssociateAnnotationTagResp_BaseResp_DEFAULT *base.BaseResp +var BatchGetExperimentTemplateResponse_BaseResp_DEFAULT *base.BaseResp -func (p *AssociateAnnotationTagResp) GetBaseResp() (v *base.BaseResp) { +func (p *BatchGetExperimentTemplateResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } if !p.IsSetBaseResp() { - return AssociateAnnotationTagResp_BaseResp_DEFAULT + return BatchGetExperimentTemplateResponse_BaseResp_DEFAULT } return p.BaseResp } -func (p *AssociateAnnotationTagResp) SetBaseResp(val *base.BaseResp) { +func (p *BatchGetExperimentTemplateResponse) SetExperimentTemplates(val []*expt.ExptTemplate) { + p.ExperimentTemplates = val +} +func (p *BatchGetExperimentTemplateResponse) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } -var fieldIDToName_AssociateAnnotationTagResp = map[int16]string{ +var fieldIDToName_BatchGetExperimentTemplateResponse = map[int16]string{ + 1: "experiment_templates", 255: "BaseResp", } -func (p *AssociateAnnotationTagResp) IsSetBaseResp() bool { +func (p *BatchGetExperimentTemplateResponse) IsSetExperimentTemplates() bool { + return p.ExperimentTemplates != nil +} + +func (p *BatchGetExperimentTemplateResponse) IsSetBaseResp() bool { return p.BaseResp != nil } -func (p *AssociateAnnotationTagResp) Read(iprot thrift.TProtocol) (err error) { +func (p *BatchGetExperimentTemplateResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -17781,6 +18406,14 @@ func (p *AssociateAnnotationTagResp) Read(iprot thrift.TProtocol) (err error) { } 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 255: if fieldTypeId == thrift.STRUCT { if err = p.ReadField255(iprot); err != nil { @@ -17808,7 +18441,7 @@ ReadStructBeginError: 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_AssociateAnnotationTagResp[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_BatchGetExperimentTemplateResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -17818,7 +18451,30 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *AssociateAnnotationTagResp) ReadField255(iprot thrift.TProtocol) error { +func (p *BatchGetExperimentTemplateResponse) ReadField1(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*expt.ExptTemplate, 0, size) + values := make([]expt.ExptTemplate, 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.ExperimentTemplates = _field + return nil +} +func (p *BatchGetExperimentTemplateResponse) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err @@ -17827,12 +18483,16 @@ func (p *AssociateAnnotationTagResp) ReadField255(iprot thrift.TProtocol) error return nil } -func (p *AssociateAnnotationTagResp) Write(oprot thrift.TProtocol) (err error) { +func (p *BatchGetExperimentTemplateResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("AssociateAnnotationTagResp"); err != nil { + if err = oprot.WriteStructBegin("BatchGetExperimentTemplateResponse"); err != nil { goto WriteStructBeginError } if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -17855,7 +18515,33 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *AssociateAnnotationTagResp) writeField255(oprot thrift.TProtocol) (err error) { +func (p *BatchGetExperimentTemplateResponse) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetExperimentTemplates() { + if err = oprot.WriteFieldBegin("experiment_templates", thrift.LIST, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.ExperimentTemplates)); err != nil { + return err + } + for _, v := range p.ExperimentTemplates { + 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 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *BatchGetExperimentTemplateResponse) writeField255(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError } @@ -17872,27 +18558,43 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *AssociateAnnotationTagResp) String() string { +func (p *BatchGetExperimentTemplateResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("AssociateAnnotationTagResp(%+v)", *p) + return fmt.Sprintf("BatchGetExperimentTemplateResponse(%+v)", *p) } -func (p *AssociateAnnotationTagResp) DeepEqual(ano *AssociateAnnotationTagResp) bool { +func (p *BatchGetExperimentTemplateResponse) DeepEqual(ano *BatchGetExperimentTemplateResponse) bool { if p == ano { return true } else if p == nil || ano == nil { return false } + if !p.Field1DeepEqual(ano.ExperimentTemplates) { + return false + } if !p.Field255DeepEqual(ano.BaseResp) { return false } return true } -func (p *AssociateAnnotationTagResp) Field255DeepEqual(src *base.BaseResp) bool { +func (p *BatchGetExperimentTemplateResponse) Field1DeepEqual(src []*expt.ExptTemplate) bool { + + if len(p.ExperimentTemplates) != len(src) { + return false + } + for i, v := range p.ExperimentTemplates { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} +func (p *BatchGetExperimentTemplateResponse) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { return false @@ -17900,111 +18602,90 @@ func (p *AssociateAnnotationTagResp) Field255DeepEqual(src *base.BaseResp) bool return true } -type DeleteAnnotationTagReq struct { - WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` - ExptID int64 `thrift:"expt_id,2,required" frugal:"2,required,i64" json:"expt_id" path:"expt_id,required" ` - TagKeyID *int64 `thrift:"tag_key_id,3,optional" frugal:"3,optional,i64" json:"tag_key_id" form:"tag_key_id" ` - Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` +type UpdateExperimentTemplateMetaRequest struct { + WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` + TemplateID int64 `thrift:"template_id,2,required" frugal:"2,required,i64" json:"template_id" form:"template_id,required" ` + Meta *expt.ExptTemplateMeta `thrift:"meta,10,optional" frugal:"10,optional,expt.ExptTemplateMeta" form:"meta" json:"meta,omitempty"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func NewDeleteAnnotationTagReq() *DeleteAnnotationTagReq { - return &DeleteAnnotationTagReq{} +func NewUpdateExperimentTemplateMetaRequest() *UpdateExperimentTemplateMetaRequest { + return &UpdateExperimentTemplateMetaRequest{} } -func (p *DeleteAnnotationTagReq) InitDefault() { +func (p *UpdateExperimentTemplateMetaRequest) InitDefault() { } -func (p *DeleteAnnotationTagReq) GetWorkspaceID() (v int64) { +func (p *UpdateExperimentTemplateMetaRequest) GetWorkspaceID() (v int64) { if p != nil { return p.WorkspaceID } return } -func (p *DeleteAnnotationTagReq) GetExptID() (v int64) { +func (p *UpdateExperimentTemplateMetaRequest) GetTemplateID() (v int64) { if p != nil { - return p.ExptID + return p.TemplateID } return } -var DeleteAnnotationTagReq_TagKeyID_DEFAULT int64 - -func (p *DeleteAnnotationTagReq) GetTagKeyID() (v int64) { - if p == nil { - return - } - if !p.IsSetTagKeyID() { - return DeleteAnnotationTagReq_TagKeyID_DEFAULT - } - return *p.TagKeyID -} - -var DeleteAnnotationTagReq_Session_DEFAULT *common.Session +var UpdateExperimentTemplateMetaRequest_Meta_DEFAULT *expt.ExptTemplateMeta -func (p *DeleteAnnotationTagReq) GetSession() (v *common.Session) { +func (p *UpdateExperimentTemplateMetaRequest) GetMeta() (v *expt.ExptTemplateMeta) { if p == nil { return } - if !p.IsSetSession() { - return DeleteAnnotationTagReq_Session_DEFAULT + if !p.IsSetMeta() { + return UpdateExperimentTemplateMetaRequest_Meta_DEFAULT } - return p.Session + return p.Meta } -var DeleteAnnotationTagReq_Base_DEFAULT *base.Base +var UpdateExperimentTemplateMetaRequest_Base_DEFAULT *base.Base -func (p *DeleteAnnotationTagReq) GetBase() (v *base.Base) { +func (p *UpdateExperimentTemplateMetaRequest) GetBase() (v *base.Base) { if p == nil { return } if !p.IsSetBase() { - return DeleteAnnotationTagReq_Base_DEFAULT + return UpdateExperimentTemplateMetaRequest_Base_DEFAULT } return p.Base } -func (p *DeleteAnnotationTagReq) SetWorkspaceID(val int64) { +func (p *UpdateExperimentTemplateMetaRequest) SetWorkspaceID(val int64) { p.WorkspaceID = val } -func (p *DeleteAnnotationTagReq) SetExptID(val int64) { - p.ExptID = val -} -func (p *DeleteAnnotationTagReq) SetTagKeyID(val *int64) { - p.TagKeyID = val +func (p *UpdateExperimentTemplateMetaRequest) SetTemplateID(val int64) { + p.TemplateID = val } -func (p *DeleteAnnotationTagReq) SetSession(val *common.Session) { - p.Session = val +func (p *UpdateExperimentTemplateMetaRequest) SetMeta(val *expt.ExptTemplateMeta) { + p.Meta = val } -func (p *DeleteAnnotationTagReq) SetBase(val *base.Base) { +func (p *UpdateExperimentTemplateMetaRequest) SetBase(val *base.Base) { p.Base = val } -var fieldIDToName_DeleteAnnotationTagReq = map[int16]string{ +var fieldIDToName_UpdateExperimentTemplateMetaRequest = map[int16]string{ 1: "workspace_id", - 2: "expt_id", - 3: "tag_key_id", - 200: "session", + 2: "template_id", + 10: "meta", 255: "Base", } -func (p *DeleteAnnotationTagReq) IsSetTagKeyID() bool { - return p.TagKeyID != nil -} - -func (p *DeleteAnnotationTagReq) IsSetSession() bool { - return p.Session != nil +func (p *UpdateExperimentTemplateMetaRequest) IsSetMeta() bool { + return p.Meta != nil } -func (p *DeleteAnnotationTagReq) IsSetBase() bool { +func (p *UpdateExperimentTemplateMetaRequest) IsSetBase() bool { return p.Base != nil } -func (p *DeleteAnnotationTagReq) Read(iprot thrift.TProtocol) (err error) { +func (p *UpdateExperimentTemplateMetaRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 var issetWorkspaceID bool = false - var issetExptID bool = false + var issetTemplateID bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -18034,21 +18715,13 @@ func (p *DeleteAnnotationTagReq) Read(iprot thrift.TProtocol) (err error) { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } - issetExptID = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.I64 { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } + issetTemplateID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 200: + case 10: if fieldTypeId == thrift.STRUCT { - if err = p.ReadField200(iprot); err != nil { + if err = p.ReadField10(iprot); err != nil { goto ReadFieldError } } else if err = iprot.Skip(fieldTypeId); err != nil { @@ -18080,7 +18753,7 @@ func (p *DeleteAnnotationTagReq) Read(iprot thrift.TProtocol) (err error) { goto RequiredFieldNotSetError } - if !issetExptID { + if !issetTemplateID { fieldId = 2 goto RequiredFieldNotSetError } @@ -18090,7 +18763,7 @@ ReadStructBeginError: 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_DeleteAnnotationTagReq[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UpdateExperimentTemplateMetaRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -18099,10 +18772,10 @@ ReadFieldEndError: 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_DeleteAnnotationTagReq[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_UpdateExperimentTemplateMetaRequest[fieldId])) } -func (p *DeleteAnnotationTagReq) ReadField1(iprot thrift.TProtocol) error { +func (p *UpdateExperimentTemplateMetaRequest) ReadField1(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -18113,7 +18786,7 @@ func (p *DeleteAnnotationTagReq) ReadField1(iprot thrift.TProtocol) error { p.WorkspaceID = _field return nil } -func (p *DeleteAnnotationTagReq) ReadField2(iprot thrift.TProtocol) error { +func (p *UpdateExperimentTemplateMetaRequest) ReadField2(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -18121,29 +18794,18 @@ func (p *DeleteAnnotationTagReq) ReadField2(iprot thrift.TProtocol) error { } else { _field = v } - p.ExptID = _field - return nil -} -func (p *DeleteAnnotationTagReq) ReadField3(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = &v - } - p.TagKeyID = _field + p.TemplateID = _field return nil } -func (p *DeleteAnnotationTagReq) ReadField200(iprot thrift.TProtocol) error { - _field := common.NewSession() +func (p *UpdateExperimentTemplateMetaRequest) ReadField10(iprot thrift.TProtocol) error { + _field := expt.NewExptTemplateMeta() if err := _field.Read(iprot); err != nil { return err } - p.Session = _field + p.Meta = _field return nil } -func (p *DeleteAnnotationTagReq) ReadField255(iprot thrift.TProtocol) error { +func (p *UpdateExperimentTemplateMetaRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err @@ -18152,9 +18814,9 @@ func (p *DeleteAnnotationTagReq) ReadField255(iprot thrift.TProtocol) error { return nil } -func (p *DeleteAnnotationTagReq) Write(oprot thrift.TProtocol) (err error) { +func (p *UpdateExperimentTemplateMetaRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("DeleteAnnotationTagReq"); err != nil { + if err = oprot.WriteStructBegin("UpdateExperimentTemplateMetaRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -18166,12 +18828,8 @@ func (p *DeleteAnnotationTagReq) Write(oprot thrift.TProtocol) (err error) { fieldId = 2 goto WriteFieldError } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } - if err = p.writeField200(oprot); err != nil { - fieldId = 200 + if err = p.writeField10(oprot); err != nil { + fieldId = 10 goto WriteFieldError } if err = p.writeField255(oprot); err != nil { @@ -18196,7 +18854,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *DeleteAnnotationTagReq) writeField1(oprot thrift.TProtocol) (err error) { +func (p *UpdateExperimentTemplateMetaRequest) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { goto WriteFieldBeginError } @@ -18212,11 +18870,11 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *DeleteAnnotationTagReq) writeField2(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("expt_id", thrift.I64, 2); err != nil { +func (p *UpdateExperimentTemplateMetaRequest) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("template_id", thrift.I64, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI64(p.ExptID); err != nil { + if err := oprot.WriteI64(p.TemplateID); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -18228,30 +18886,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *DeleteAnnotationTagReq) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetTagKeyID() { - if err = oprot.WriteFieldBegin("tag_key_id", thrift.I64, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.TagKeyID); 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 *DeleteAnnotationTagReq) writeField200(oprot thrift.TProtocol) (err error) { - if p.IsSetSession() { - if err = oprot.WriteFieldBegin("session", thrift.STRUCT, 200); err != nil { +func (p *UpdateExperimentTemplateMetaRequest) writeField10(oprot thrift.TProtocol) (err error) { + if p.IsSetMeta() { + if err = oprot.WriteFieldBegin("meta", thrift.STRUCT, 10); err != nil { goto WriteFieldBeginError } - if err := p.Session.Write(oprot); err != nil { + if err := p.Meta.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -18260,11 +18900,11 @@ func (p *DeleteAnnotationTagReq) writeField200(oprot thrift.TProtocol) (err erro } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 200 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 10 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 200 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 10 end error: ", p), err) } -func (p *DeleteAnnotationTagReq) writeField255(oprot thrift.TProtocol) (err error) { +func (p *UpdateExperimentTemplateMetaRequest) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -18283,15 +18923,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *DeleteAnnotationTagReq) String() string { +func (p *UpdateExperimentTemplateMetaRequest) String() string { if p == nil { return "" } - return fmt.Sprintf("DeleteAnnotationTagReq(%+v)", *p) + return fmt.Sprintf("UpdateExperimentTemplateMetaRequest(%+v)", *p) } -func (p *DeleteAnnotationTagReq) DeepEqual(ano *DeleteAnnotationTagReq) bool { +func (p *UpdateExperimentTemplateMetaRequest) DeepEqual(ano *UpdateExperimentTemplateMetaRequest) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -18300,13 +18940,10 @@ func (p *DeleteAnnotationTagReq) DeepEqual(ano *DeleteAnnotationTagReq) bool { if !p.Field1DeepEqual(ano.WorkspaceID) { return false } - if !p.Field2DeepEqual(ano.ExptID) { - return false - } - if !p.Field3DeepEqual(ano.TagKeyID) { + if !p.Field2DeepEqual(ano.TemplateID) { return false } - if !p.Field200DeepEqual(ano.Session) { + if !p.Field10DeepEqual(ano.Meta) { return false } if !p.Field255DeepEqual(ano.Base) { @@ -18315,82 +18952,91 @@ func (p *DeleteAnnotationTagReq) DeepEqual(ano *DeleteAnnotationTagReq) bool { return true } -func (p *DeleteAnnotationTagReq) Field1DeepEqual(src int64) bool { +func (p *UpdateExperimentTemplateMetaRequest) Field1DeepEqual(src int64) bool { if p.WorkspaceID != src { return false } return true } -func (p *DeleteAnnotationTagReq) Field2DeepEqual(src int64) bool { +func (p *UpdateExperimentTemplateMetaRequest) Field2DeepEqual(src int64) bool { - if p.ExptID != src { + if p.TemplateID != src { return false } return true } -func (p *DeleteAnnotationTagReq) Field3DeepEqual(src *int64) bool { +func (p *UpdateExperimentTemplateMetaRequest) Field10DeepEqual(src *expt.ExptTemplateMeta) bool { - if p.TagKeyID == src { - return true - } else if p.TagKeyID == nil || src == nil { - return false - } - if *p.TagKeyID != *src { + if !p.Meta.DeepEqual(src) { return false } return true } -func (p *DeleteAnnotationTagReq) Field200DeepEqual(src *common.Session) bool { +func (p *UpdateExperimentTemplateMetaRequest) Field255DeepEqual(src *base.Base) bool { - if !p.Session.DeepEqual(src) { + if !p.Base.DeepEqual(src) { return false } return true } -func (p *DeleteAnnotationTagReq) Field255DeepEqual(src *base.Base) bool { - if !p.Base.DeepEqual(src) { - return false - } - return true +type UpdateExperimentTemplateMetaResponse struct { + Meta *expt.ExptTemplateMeta `thrift:"meta,1,optional" frugal:"1,optional,expt.ExptTemplateMeta" form:"meta" json:"meta,omitempty" query:"meta"` + BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` } -type DeleteAnnotationTagResp struct { - BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` +func NewUpdateExperimentTemplateMetaResponse() *UpdateExperimentTemplateMetaResponse { + return &UpdateExperimentTemplateMetaResponse{} } -func NewDeleteAnnotationTagResp() *DeleteAnnotationTagResp { - return &DeleteAnnotationTagResp{} +func (p *UpdateExperimentTemplateMetaResponse) InitDefault() { } -func (p *DeleteAnnotationTagResp) InitDefault() { +var UpdateExperimentTemplateMetaResponse_Meta_DEFAULT *expt.ExptTemplateMeta + +func (p *UpdateExperimentTemplateMetaResponse) GetMeta() (v *expt.ExptTemplateMeta) { + if p == nil { + return + } + if !p.IsSetMeta() { + return UpdateExperimentTemplateMetaResponse_Meta_DEFAULT + } + return p.Meta } -var DeleteAnnotationTagResp_BaseResp_DEFAULT *base.BaseResp +var UpdateExperimentTemplateMetaResponse_BaseResp_DEFAULT *base.BaseResp -func (p *DeleteAnnotationTagResp) GetBaseResp() (v *base.BaseResp) { +func (p *UpdateExperimentTemplateMetaResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } if !p.IsSetBaseResp() { - return DeleteAnnotationTagResp_BaseResp_DEFAULT + return UpdateExperimentTemplateMetaResponse_BaseResp_DEFAULT } return p.BaseResp } -func (p *DeleteAnnotationTagResp) SetBaseResp(val *base.BaseResp) { +func (p *UpdateExperimentTemplateMetaResponse) SetMeta(val *expt.ExptTemplateMeta) { + p.Meta = val +} +func (p *UpdateExperimentTemplateMetaResponse) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } -var fieldIDToName_DeleteAnnotationTagResp = map[int16]string{ +var fieldIDToName_UpdateExperimentTemplateMetaResponse = map[int16]string{ + 1: "meta", 255: "BaseResp", } -func (p *DeleteAnnotationTagResp) IsSetBaseResp() bool { +func (p *UpdateExperimentTemplateMetaResponse) IsSetMeta() bool { + return p.Meta != nil +} + +func (p *UpdateExperimentTemplateMetaResponse) IsSetBaseResp() bool { return p.BaseResp != nil } -func (p *DeleteAnnotationTagResp) Read(iprot thrift.TProtocol) (err error) { +func (p *UpdateExperimentTemplateMetaResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -18408,6 +19054,14 @@ func (p *DeleteAnnotationTagResp) Read(iprot thrift.TProtocol) (err error) { } switch fieldId { + case 1: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField1(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 { @@ -18435,7 +19089,7 @@ ReadStructBeginError: 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_DeleteAnnotationTagResp[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UpdateExperimentTemplateMetaResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -18445,7 +19099,15 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *DeleteAnnotationTagResp) ReadField255(iprot thrift.TProtocol) error { +func (p *UpdateExperimentTemplateMetaResponse) ReadField1(iprot thrift.TProtocol) error { + _field := expt.NewExptTemplateMeta() + if err := _field.Read(iprot); err != nil { + return err + } + p.Meta = _field + return nil +} +func (p *UpdateExperimentTemplateMetaResponse) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err @@ -18454,12 +19116,16 @@ func (p *DeleteAnnotationTagResp) ReadField255(iprot thrift.TProtocol) error { return nil } -func (p *DeleteAnnotationTagResp) Write(oprot thrift.TProtocol) (err error) { +func (p *UpdateExperimentTemplateMetaResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("DeleteAnnotationTagResp"); err != nil { + if err = oprot.WriteStructBegin("UpdateExperimentTemplateMetaResponse"); err != nil { goto WriteStructBeginError } if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -18482,14 +19148,32 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *DeleteAnnotationTagResp) writeField255(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { - goto WriteFieldBeginError - } - if err := p.BaseResp.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { +func (p *UpdateExperimentTemplateMetaResponse) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetMeta() { + if err = oprot.WriteFieldBegin("meta", thrift.STRUCT, 1); err != nil { + goto WriteFieldBeginError + } + if err := p.Meta.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 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *UpdateExperimentTemplateMetaResponse) writeField255(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.BaseResp.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { goto WriteFieldEndError } return nil @@ -18499,27 +19183,37 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *DeleteAnnotationTagResp) String() string { +func (p *UpdateExperimentTemplateMetaResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("DeleteAnnotationTagResp(%+v)", *p) + return fmt.Sprintf("UpdateExperimentTemplateMetaResponse(%+v)", *p) } -func (p *DeleteAnnotationTagResp) DeepEqual(ano *DeleteAnnotationTagResp) bool { +func (p *UpdateExperimentTemplateMetaResponse) DeepEqual(ano *UpdateExperimentTemplateMetaResponse) bool { if p == ano { return true } else if p == nil || ano == nil { return false } + if !p.Field1DeepEqual(ano.Meta) { + return false + } if !p.Field255DeepEqual(ano.BaseResp) { return false } return true } -func (p *DeleteAnnotationTagResp) Field255DeepEqual(src *base.BaseResp) bool { +func (p *UpdateExperimentTemplateMetaResponse) Field1DeepEqual(src *expt.ExptTemplateMeta) bool { + + if !p.Meta.DeepEqual(src) { + return false + } + return true +} +func (p *UpdateExperimentTemplateMetaResponse) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { return false @@ -18527,138 +19221,200 @@ func (p *DeleteAnnotationTagResp) Field255DeepEqual(src *base.BaseResp) bool { return true } -type CreateAnnotateRecordReq struct { - WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` - ExptID int64 `thrift:"expt_id,2,required" frugal:"2,required,i64" json:"expt_id" path:"expt_id,required" ` - AnnotateRecord *expt.AnnotateRecord `thrift:"annotate_record,3,required" frugal:"3,required,expt.AnnotateRecord" form:"annotate_record,required" json:"annotate_record,required"` - ItemID int64 `thrift:"item_id,4,required" frugal:"4,required,i64" json:"item_id" form:"item_id,required" ` - TurnID int64 `thrift:"turn_id,5,required" frugal:"5,required,i64" json:"turn_id" form:"turn_id,required" ` - Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` +type UpdateExperimentTemplateRequest struct { + WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` + TemplateID int64 `thrift:"template_id,2,required" frugal:"2,required,i64" json:"template_id" path:"template_id,required" ` + // 模板结构,与 ExptTemplate 保持一致 + // 注意:eval_set_id / target_id 不允许修改,仅允许调整版本与配置 + Meta *expt.ExptTemplateMeta `thrift:"meta,10,optional" frugal:"10,optional,expt.ExptTemplateMeta" form:"meta" json:"meta,omitempty"` + TripleConfig *expt.ExptTuple `thrift:"triple_config,11,optional" frugal:"11,optional,expt.ExptTuple" form:"triple_config" json:"triple_config,omitempty"` + FieldMappingConfig *expt.ExptFieldMapping `thrift:"field_mapping_config,12,optional" frugal:"12,optional,expt.ExptFieldMapping" form:"field_mapping_config" json:"field_mapping_config,omitempty"` + // 创建评估对象参数(不在 ExptTemplate 结构中,保留在顶层) + CreateEvalTargetParam *eval_target.CreateEvalTargetParam `thrift:"create_eval_target_param,20,optional" frugal:"20,optional,eval_target.CreateEvalTargetParam" form:"create_eval_target_param" json:"create_eval_target_param,omitempty"` + // 默认评估器并发数(不在 ExptTemplate 结构中,保留在顶层) + DefaultEvaluatorsConcurNum *int32 `thrift:"default_evaluators_concur_num,21,optional" frugal:"21,optional,i32" form:"default_evaluators_concur_num" json:"default_evaluators_concur_num,omitempty"` + // 调度配置(不在 ExptTemplate 结构中,保留在顶层) + ScheduleCron *string `thrift:"schedule_cron,22,optional" frugal:"22,optional,string" form:"schedule_cron" json:"schedule_cron,omitempty"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func NewCreateAnnotateRecordReq() *CreateAnnotateRecordReq { - return &CreateAnnotateRecordReq{} +func NewUpdateExperimentTemplateRequest() *UpdateExperimentTemplateRequest { + return &UpdateExperimentTemplateRequest{} } -func (p *CreateAnnotateRecordReq) InitDefault() { +func (p *UpdateExperimentTemplateRequest) InitDefault() { } -func (p *CreateAnnotateRecordReq) GetWorkspaceID() (v int64) { +func (p *UpdateExperimentTemplateRequest) GetWorkspaceID() (v int64) { if p != nil { return p.WorkspaceID } return } -func (p *CreateAnnotateRecordReq) GetExptID() (v int64) { +func (p *UpdateExperimentTemplateRequest) GetTemplateID() (v int64) { if p != nil { - return p.ExptID + return p.TemplateID } return } -var CreateAnnotateRecordReq_AnnotateRecord_DEFAULT *expt.AnnotateRecord +var UpdateExperimentTemplateRequest_Meta_DEFAULT *expt.ExptTemplateMeta -func (p *CreateAnnotateRecordReq) GetAnnotateRecord() (v *expt.AnnotateRecord) { +func (p *UpdateExperimentTemplateRequest) GetMeta() (v *expt.ExptTemplateMeta) { if p == nil { return } - if !p.IsSetAnnotateRecord() { - return CreateAnnotateRecordReq_AnnotateRecord_DEFAULT + if !p.IsSetMeta() { + return UpdateExperimentTemplateRequest_Meta_DEFAULT } - return p.AnnotateRecord + return p.Meta } -func (p *CreateAnnotateRecordReq) GetItemID() (v int64) { - if p != nil { - return p.ItemID +var UpdateExperimentTemplateRequest_TripleConfig_DEFAULT *expt.ExptTuple + +func (p *UpdateExperimentTemplateRequest) GetTripleConfig() (v *expt.ExptTuple) { + if p == nil { + return } - return + if !p.IsSetTripleConfig() { + return UpdateExperimentTemplateRequest_TripleConfig_DEFAULT + } + return p.TripleConfig } -func (p *CreateAnnotateRecordReq) GetTurnID() (v int64) { - if p != nil { - return p.TurnID +var UpdateExperimentTemplateRequest_FieldMappingConfig_DEFAULT *expt.ExptFieldMapping + +func (p *UpdateExperimentTemplateRequest) GetFieldMappingConfig() (v *expt.ExptFieldMapping) { + if p == nil { + return } - return + if !p.IsSetFieldMappingConfig() { + return UpdateExperimentTemplateRequest_FieldMappingConfig_DEFAULT + } + return p.FieldMappingConfig } -var CreateAnnotateRecordReq_Session_DEFAULT *common.Session +var UpdateExperimentTemplateRequest_CreateEvalTargetParam_DEFAULT *eval_target.CreateEvalTargetParam -func (p *CreateAnnotateRecordReq) GetSession() (v *common.Session) { +func (p *UpdateExperimentTemplateRequest) GetCreateEvalTargetParam() (v *eval_target.CreateEvalTargetParam) { if p == nil { return } - if !p.IsSetSession() { - return CreateAnnotateRecordReq_Session_DEFAULT + if !p.IsSetCreateEvalTargetParam() { + return UpdateExperimentTemplateRequest_CreateEvalTargetParam_DEFAULT } - return p.Session + return p.CreateEvalTargetParam } -var CreateAnnotateRecordReq_Base_DEFAULT *base.Base +var UpdateExperimentTemplateRequest_DefaultEvaluatorsConcurNum_DEFAULT int32 -func (p *CreateAnnotateRecordReq) GetBase() (v *base.Base) { +func (p *UpdateExperimentTemplateRequest) GetDefaultEvaluatorsConcurNum() (v int32) { + if p == nil { + return + } + if !p.IsSetDefaultEvaluatorsConcurNum() { + return UpdateExperimentTemplateRequest_DefaultEvaluatorsConcurNum_DEFAULT + } + return *p.DefaultEvaluatorsConcurNum +} + +var UpdateExperimentTemplateRequest_ScheduleCron_DEFAULT string + +func (p *UpdateExperimentTemplateRequest) GetScheduleCron() (v string) { + if p == nil { + return + } + if !p.IsSetScheduleCron() { + return UpdateExperimentTemplateRequest_ScheduleCron_DEFAULT + } + return *p.ScheduleCron +} + +var UpdateExperimentTemplateRequest_Base_DEFAULT *base.Base + +func (p *UpdateExperimentTemplateRequest) GetBase() (v *base.Base) { if p == nil { return } if !p.IsSetBase() { - return CreateAnnotateRecordReq_Base_DEFAULT + return UpdateExperimentTemplateRequest_Base_DEFAULT } return p.Base } -func (p *CreateAnnotateRecordReq) SetWorkspaceID(val int64) { +func (p *UpdateExperimentTemplateRequest) SetWorkspaceID(val int64) { p.WorkspaceID = val } -func (p *CreateAnnotateRecordReq) SetExptID(val int64) { - p.ExptID = val +func (p *UpdateExperimentTemplateRequest) SetTemplateID(val int64) { + p.TemplateID = val } -func (p *CreateAnnotateRecordReq) SetAnnotateRecord(val *expt.AnnotateRecord) { - p.AnnotateRecord = val +func (p *UpdateExperimentTemplateRequest) SetMeta(val *expt.ExptTemplateMeta) { + p.Meta = val } -func (p *CreateAnnotateRecordReq) SetItemID(val int64) { - p.ItemID = val +func (p *UpdateExperimentTemplateRequest) SetTripleConfig(val *expt.ExptTuple) { + p.TripleConfig = val } -func (p *CreateAnnotateRecordReq) SetTurnID(val int64) { - p.TurnID = val +func (p *UpdateExperimentTemplateRequest) SetFieldMappingConfig(val *expt.ExptFieldMapping) { + p.FieldMappingConfig = val } -func (p *CreateAnnotateRecordReq) SetSession(val *common.Session) { - p.Session = val +func (p *UpdateExperimentTemplateRequest) SetCreateEvalTargetParam(val *eval_target.CreateEvalTargetParam) { + p.CreateEvalTargetParam = val } -func (p *CreateAnnotateRecordReq) SetBase(val *base.Base) { +func (p *UpdateExperimentTemplateRequest) SetDefaultEvaluatorsConcurNum(val *int32) { + p.DefaultEvaluatorsConcurNum = val +} +func (p *UpdateExperimentTemplateRequest) SetScheduleCron(val *string) { + p.ScheduleCron = val +} +func (p *UpdateExperimentTemplateRequest) SetBase(val *base.Base) { p.Base = val } -var fieldIDToName_CreateAnnotateRecordReq = map[int16]string{ +var fieldIDToName_UpdateExperimentTemplateRequest = map[int16]string{ 1: "workspace_id", - 2: "expt_id", - 3: "annotate_record", - 4: "item_id", - 5: "turn_id", - 200: "session", + 2: "template_id", + 10: "meta", + 11: "triple_config", + 12: "field_mapping_config", + 20: "create_eval_target_param", + 21: "default_evaluators_concur_num", + 22: "schedule_cron", 255: "Base", } -func (p *CreateAnnotateRecordReq) IsSetAnnotateRecord() bool { - return p.AnnotateRecord != nil +func (p *UpdateExperimentTemplateRequest) IsSetMeta() bool { + return p.Meta != nil } -func (p *CreateAnnotateRecordReq) IsSetSession() bool { - return p.Session != nil +func (p *UpdateExperimentTemplateRequest) IsSetTripleConfig() bool { + return p.TripleConfig != nil } -func (p *CreateAnnotateRecordReq) IsSetBase() bool { +func (p *UpdateExperimentTemplateRequest) IsSetFieldMappingConfig() bool { + return p.FieldMappingConfig != nil +} + +func (p *UpdateExperimentTemplateRequest) IsSetCreateEvalTargetParam() bool { + return p.CreateEvalTargetParam != nil +} + +func (p *UpdateExperimentTemplateRequest) IsSetDefaultEvaluatorsConcurNum() bool { + return p.DefaultEvaluatorsConcurNum != nil +} + +func (p *UpdateExperimentTemplateRequest) IsSetScheduleCron() bool { + return p.ScheduleCron != nil +} + +func (p *UpdateExperimentTemplateRequest) IsSetBase() bool { return p.Base != nil } -func (p *CreateAnnotateRecordReq) Read(iprot thrift.TProtocol) (err error) { +func (p *UpdateExperimentTemplateRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 var issetWorkspaceID bool = false - var issetExptID bool = false - var issetAnnotateRecord bool = false - var issetItemID bool = false - var issetTurnID bool = false + var issetTemplateID bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -18688,40 +19444,53 @@ func (p *CreateAnnotateRecordReq) Read(iprot thrift.TProtocol) (err error) { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } - issetExptID = true + issetTemplateID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 3: + case 10: if fieldTypeId == thrift.STRUCT { - if err = p.ReadField3(iprot); err != nil { + if err = p.ReadField10(iprot); err != nil { goto ReadFieldError } - issetAnnotateRecord = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 4: - if fieldTypeId == thrift.I64 { - if err = p.ReadField4(iprot); err != nil { + case 11: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField11(iprot); err != nil { goto ReadFieldError } - issetItemID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 5: - if fieldTypeId == thrift.I64 { - if err = p.ReadField5(iprot); err != nil { + case 12: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField12(iprot); err != nil { goto ReadFieldError } - issetTurnID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 200: + case 20: if fieldTypeId == thrift.STRUCT { - if err = p.ReadField200(iprot); err != nil { + if err = p.ReadField20(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 21: + if fieldTypeId == thrift.I32 { + if err = p.ReadField21(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 22: + if fieldTypeId == thrift.STRING { + if err = p.ReadField22(iprot); err != nil { goto ReadFieldError } } else if err = iprot.Skip(fieldTypeId); err != nil { @@ -18753,32 +19522,17 @@ func (p *CreateAnnotateRecordReq) Read(iprot thrift.TProtocol) (err error) { goto RequiredFieldNotSetError } - if !issetExptID { + if !issetTemplateID { fieldId = 2 goto RequiredFieldNotSetError } - - if !issetAnnotateRecord { - fieldId = 3 - goto RequiredFieldNotSetError - } - - if !issetItemID { - fieldId = 4 - goto RequiredFieldNotSetError - } - - if !issetTurnID { - fieldId = 5 - 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_CreateAnnotateRecordReq[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UpdateExperimentTemplateRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -18787,10 +19541,10 @@ ReadFieldEndError: 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_CreateAnnotateRecordReq[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_UpdateExperimentTemplateRequest[fieldId])) } -func (p *CreateAnnotateRecordReq) ReadField1(iprot thrift.TProtocol) error { +func (p *UpdateExperimentTemplateRequest) ReadField1(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -18801,7 +19555,7 @@ func (p *CreateAnnotateRecordReq) ReadField1(iprot thrift.TProtocol) error { p.WorkspaceID = _field return nil } -func (p *CreateAnnotateRecordReq) ReadField2(iprot thrift.TProtocol) error { +func (p *UpdateExperimentTemplateRequest) ReadField2(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -18809,48 +19563,64 @@ func (p *CreateAnnotateRecordReq) ReadField2(iprot thrift.TProtocol) error { } else { _field = v } - p.ExptID = _field + p.TemplateID = _field return nil } -func (p *CreateAnnotateRecordReq) ReadField3(iprot thrift.TProtocol) error { - _field := expt.NewAnnotateRecord() +func (p *UpdateExperimentTemplateRequest) ReadField10(iprot thrift.TProtocol) error { + _field := expt.NewExptTemplateMeta() if err := _field.Read(iprot); err != nil { return err } - p.AnnotateRecord = _field + p.Meta = _field return nil } -func (p *CreateAnnotateRecordReq) ReadField4(iprot thrift.TProtocol) error { - - var _field int64 - if v, err := iprot.ReadI64(); err != nil { +func (p *UpdateExperimentTemplateRequest) ReadField11(iprot thrift.TProtocol) error { + _field := expt.NewExptTuple() + if err := _field.Read(iprot); err != nil { return err - } else { - _field = v } - p.ItemID = _field + p.TripleConfig = _field return nil } -func (p *CreateAnnotateRecordReq) ReadField5(iprot thrift.TProtocol) error { +func (p *UpdateExperimentTemplateRequest) ReadField12(iprot thrift.TProtocol) error { + _field := expt.NewExptFieldMapping() + if err := _field.Read(iprot); err != nil { + return err + } + p.FieldMappingConfig = _field + return nil +} +func (p *UpdateExperimentTemplateRequest) ReadField20(iprot thrift.TProtocol) error { + _field := eval_target.NewCreateEvalTargetParam() + if err := _field.Read(iprot); err != nil { + return err + } + p.CreateEvalTargetParam = _field + return nil +} +func (p *UpdateExperimentTemplateRequest) ReadField21(iprot thrift.TProtocol) error { - var _field int64 - if v, err := iprot.ReadI64(); err != nil { + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { return err } else { - _field = v + _field = &v } - p.TurnID = _field + p.DefaultEvaluatorsConcurNum = _field return nil } -func (p *CreateAnnotateRecordReq) ReadField200(iprot thrift.TProtocol) error { - _field := common.NewSession() - if err := _field.Read(iprot); err != nil { +func (p *UpdateExperimentTemplateRequest) ReadField22(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { return err + } else { + _field = &v } - p.Session = _field + p.ScheduleCron = _field return nil } -func (p *CreateAnnotateRecordReq) ReadField255(iprot thrift.TProtocol) error { +func (p *UpdateExperimentTemplateRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err @@ -18859,9 +19629,9 @@ func (p *CreateAnnotateRecordReq) ReadField255(iprot thrift.TProtocol) error { return nil } -func (p *CreateAnnotateRecordReq) Write(oprot thrift.TProtocol) (err error) { +func (p *UpdateExperimentTemplateRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("CreateAnnotateRecordReq"); err != nil { + if err = oprot.WriteStructBegin("UpdateExperimentTemplateRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -18873,20 +19643,28 @@ func (p *CreateAnnotateRecordReq) Write(oprot thrift.TProtocol) (err error) { fieldId = 2 goto WriteFieldError } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 + if err = p.writeField10(oprot); err != nil { + fieldId = 10 goto WriteFieldError } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 + if err = p.writeField11(oprot); err != nil { + fieldId = 11 goto WriteFieldError } - if err = p.writeField5(oprot); err != nil { - fieldId = 5 + if err = p.writeField12(oprot); err != nil { + fieldId = 12 goto WriteFieldError } - if err = p.writeField200(oprot); err != nil { - fieldId = 200 + if err = p.writeField20(oprot); err != nil { + fieldId = 20 + goto WriteFieldError + } + if err = p.writeField21(oprot); err != nil { + fieldId = 21 + goto WriteFieldError + } + if err = p.writeField22(oprot); err != nil { + fieldId = 22 goto WriteFieldError } if err = p.writeField255(oprot); err != nil { @@ -18911,7 +19689,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *CreateAnnotateRecordReq) writeField1(oprot thrift.TProtocol) (err error) { +func (p *UpdateExperimentTemplateRequest) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { goto WriteFieldBeginError } @@ -18927,11 +19705,11 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *CreateAnnotateRecordReq) writeField2(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("expt_id", thrift.I64, 2); err != nil { +func (p *UpdateExperimentTemplateRequest) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("template_id", thrift.I64, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI64(p.ExptID); err != nil { + if err := oprot.WriteI64(p.TemplateID); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -18943,60 +19721,102 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *CreateAnnotateRecordReq) writeField3(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("annotate_record", thrift.STRUCT, 3); err != nil { - goto WriteFieldBeginError - } - if err := p.AnnotateRecord.Write(oprot); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError +func (p *UpdateExperimentTemplateRequest) writeField10(oprot thrift.TProtocol) (err error) { + if p.IsSetMeta() { + if err = oprot.WriteFieldBegin("meta", thrift.STRUCT, 10); err != nil { + goto WriteFieldBeginError + } + if err := p.Meta.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 3 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 10 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 10 end error: ", p), err) } -func (p *CreateAnnotateRecordReq) writeField4(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("item_id", thrift.I64, 4); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.ItemID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError +func (p *UpdateExperimentTemplateRequest) writeField11(oprot thrift.TProtocol) (err error) { + if p.IsSetTripleConfig() { + if err = oprot.WriteFieldBegin("triple_config", thrift.STRUCT, 11); err != nil { + goto WriteFieldBeginError + } + if err := p.TripleConfig.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) + return thrift.PrependError(fmt.Sprintf("%T write field 11 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 11 end error: ", p), err) } -func (p *CreateAnnotateRecordReq) writeField5(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("turn_id", thrift.I64, 5); err != nil { - goto WriteFieldBeginError +func (p *UpdateExperimentTemplateRequest) writeField12(oprot thrift.TProtocol) (err error) { + if p.IsSetFieldMappingConfig() { + if err = oprot.WriteFieldBegin("field_mapping_config", thrift.STRUCT, 12); err != nil { + goto WriteFieldBeginError + } + if err := p.FieldMappingConfig.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } - if err := oprot.WriteI64(p.TurnID); err != nil { - return err + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 12 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 12 end error: ", p), err) +} +func (p *UpdateExperimentTemplateRequest) writeField20(oprot thrift.TProtocol) (err error) { + if p.IsSetCreateEvalTargetParam() { + if err = oprot.WriteFieldBegin("create_eval_target_param", thrift.STRUCT, 20); err != nil { + goto WriteFieldBeginError + } + if err := p.CreateEvalTargetParam.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 20 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 20 end error: ", p), err) +} +func (p *UpdateExperimentTemplateRequest) writeField21(oprot thrift.TProtocol) (err error) { + if p.IsSetDefaultEvaluatorsConcurNum() { + if err = oprot.WriteFieldBegin("default_evaluators_concur_num", thrift.I32, 21); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.DefaultEvaluatorsConcurNum); 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) + return thrift.PrependError(fmt.Sprintf("%T write field 21 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 21 end error: ", p), err) } -func (p *CreateAnnotateRecordReq) writeField200(oprot thrift.TProtocol) (err error) { - if p.IsSetSession() { - if err = oprot.WriteFieldBegin("session", thrift.STRUCT, 200); err != nil { +func (p *UpdateExperimentTemplateRequest) writeField22(oprot thrift.TProtocol) (err error) { + if p.IsSetScheduleCron() { + if err = oprot.WriteFieldBegin("schedule_cron", thrift.STRING, 22); err != nil { goto WriteFieldBeginError } - if err := p.Session.Write(oprot); err != nil { + if err := oprot.WriteString(*p.ScheduleCron); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -19005,11 +19825,11 @@ func (p *CreateAnnotateRecordReq) writeField200(oprot thrift.TProtocol) (err err } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 200 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 22 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 200 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 22 end error: ", p), err) } -func (p *CreateAnnotateRecordReq) writeField255(oprot thrift.TProtocol) (err error) { +func (p *UpdateExperimentTemplateRequest) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -19028,15 +19848,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *CreateAnnotateRecordReq) String() string { +func (p *UpdateExperimentTemplateRequest) String() string { if p == nil { return "" } - return fmt.Sprintf("CreateAnnotateRecordReq(%+v)", *p) + return fmt.Sprintf("UpdateExperimentTemplateRequest(%+v)", *p) } -func (p *CreateAnnotateRecordReq) DeepEqual(ano *CreateAnnotateRecordReq) bool { +func (p *UpdateExperimentTemplateRequest) DeepEqual(ano *UpdateExperimentTemplateRequest) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -19045,19 +19865,25 @@ func (p *CreateAnnotateRecordReq) DeepEqual(ano *CreateAnnotateRecordReq) bool { if !p.Field1DeepEqual(ano.WorkspaceID) { return false } - if !p.Field2DeepEqual(ano.ExptID) { + if !p.Field2DeepEqual(ano.TemplateID) { return false } - if !p.Field3DeepEqual(ano.AnnotateRecord) { + if !p.Field10DeepEqual(ano.Meta) { return false } - if !p.Field4DeepEqual(ano.ItemID) { + if !p.Field11DeepEqual(ano.TripleConfig) { return false } - if !p.Field5DeepEqual(ano.TurnID) { + if !p.Field12DeepEqual(ano.FieldMappingConfig) { return false } - if !p.Field200DeepEqual(ano.Session) { + if !p.Field20DeepEqual(ano.CreateEvalTargetParam) { + return false + } + if !p.Field21DeepEqual(ano.DefaultEvaluatorsConcurNum) { + return false + } + if !p.Field22DeepEqual(ano.ScheduleCron) { return false } if !p.Field255DeepEqual(ano.Base) { @@ -19066,49 +19892,73 @@ func (p *CreateAnnotateRecordReq) DeepEqual(ano *CreateAnnotateRecordReq) bool { return true } -func (p *CreateAnnotateRecordReq) Field1DeepEqual(src int64) bool { +func (p *UpdateExperimentTemplateRequest) Field1DeepEqual(src int64) bool { if p.WorkspaceID != src { return false } return true } -func (p *CreateAnnotateRecordReq) Field2DeepEqual(src int64) bool { +func (p *UpdateExperimentTemplateRequest) Field2DeepEqual(src int64) bool { - if p.ExptID != src { + if p.TemplateID != src { return false } return true } -func (p *CreateAnnotateRecordReq) Field3DeepEqual(src *expt.AnnotateRecord) bool { +func (p *UpdateExperimentTemplateRequest) Field10DeepEqual(src *expt.ExptTemplateMeta) bool { - if !p.AnnotateRecord.DeepEqual(src) { + if !p.Meta.DeepEqual(src) { return false } return true } -func (p *CreateAnnotateRecordReq) Field4DeepEqual(src int64) bool { +func (p *UpdateExperimentTemplateRequest) Field11DeepEqual(src *expt.ExptTuple) bool { - if p.ItemID != src { + if !p.TripleConfig.DeepEqual(src) { return false } return true } -func (p *CreateAnnotateRecordReq) Field5DeepEqual(src int64) bool { +func (p *UpdateExperimentTemplateRequest) Field12DeepEqual(src *expt.ExptFieldMapping) bool { - if p.TurnID != src { + if !p.FieldMappingConfig.DeepEqual(src) { return false } return true } -func (p *CreateAnnotateRecordReq) Field200DeepEqual(src *common.Session) bool { +func (p *UpdateExperimentTemplateRequest) Field20DeepEqual(src *eval_target.CreateEvalTargetParam) bool { - if !p.Session.DeepEqual(src) { + if !p.CreateEvalTargetParam.DeepEqual(src) { return false } return true } -func (p *CreateAnnotateRecordReq) Field255DeepEqual(src *base.Base) bool { +func (p *UpdateExperimentTemplateRequest) Field21DeepEqual(src *int32) bool { + + if p.DefaultEvaluatorsConcurNum == src { + return true + } else if p.DefaultEvaluatorsConcurNum == nil || src == nil { + return false + } + if *p.DefaultEvaluatorsConcurNum != *src { + return false + } + return true +} +func (p *UpdateExperimentTemplateRequest) Field22DeepEqual(src *string) bool { + + if p.ScheduleCron == src { + return true + } else if p.ScheduleCron == nil || src == nil { + return false + } + if strings.Compare(*p.ScheduleCron, *src) != 0 { + return false + } + return true +} +func (p *UpdateExperimentTemplateRequest) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { return false @@ -19116,56 +19966,64 @@ func (p *CreateAnnotateRecordReq) Field255DeepEqual(src *base.Base) bool { return true } -type CreateAnnotateRecordResp struct { - AnnotateRecordID int64 `thrift:"annotate_record_id,1,required" frugal:"1,required,i64" json:"annotate_record_id" form:"annotate_record_id,required" ` - BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` +type UpdateExperimentTemplateResponse struct { + ExperimentTemplate *expt.ExptTemplate `thrift:"experiment_template,1,optional" frugal:"1,optional,expt.ExptTemplate" form:"experiment_template" json:"experiment_template,omitempty" query:"experiment_template"` + BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` } -func NewCreateAnnotateRecordResp() *CreateAnnotateRecordResp { - return &CreateAnnotateRecordResp{} +func NewUpdateExperimentTemplateResponse() *UpdateExperimentTemplateResponse { + return &UpdateExperimentTemplateResponse{} } -func (p *CreateAnnotateRecordResp) InitDefault() { +func (p *UpdateExperimentTemplateResponse) InitDefault() { } -func (p *CreateAnnotateRecordResp) GetAnnotateRecordID() (v int64) { - if p != nil { - return p.AnnotateRecordID +var UpdateExperimentTemplateResponse_ExperimentTemplate_DEFAULT *expt.ExptTemplate + +func (p *UpdateExperimentTemplateResponse) GetExperimentTemplate() (v *expt.ExptTemplate) { + if p == nil { + return } - return + if !p.IsSetExperimentTemplate() { + return UpdateExperimentTemplateResponse_ExperimentTemplate_DEFAULT + } + return p.ExperimentTemplate } -var CreateAnnotateRecordResp_BaseResp_DEFAULT *base.BaseResp +var UpdateExperimentTemplateResponse_BaseResp_DEFAULT *base.BaseResp -func (p *CreateAnnotateRecordResp) GetBaseResp() (v *base.BaseResp) { +func (p *UpdateExperimentTemplateResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } if !p.IsSetBaseResp() { - return CreateAnnotateRecordResp_BaseResp_DEFAULT + return UpdateExperimentTemplateResponse_BaseResp_DEFAULT } return p.BaseResp } -func (p *CreateAnnotateRecordResp) SetAnnotateRecordID(val int64) { - p.AnnotateRecordID = val +func (p *UpdateExperimentTemplateResponse) SetExperimentTemplate(val *expt.ExptTemplate) { + p.ExperimentTemplate = val } -func (p *CreateAnnotateRecordResp) SetBaseResp(val *base.BaseResp) { +func (p *UpdateExperimentTemplateResponse) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } -var fieldIDToName_CreateAnnotateRecordResp = map[int16]string{ - 1: "annotate_record_id", +var fieldIDToName_UpdateExperimentTemplateResponse = map[int16]string{ + 1: "experiment_template", 255: "BaseResp", } -func (p *CreateAnnotateRecordResp) IsSetBaseResp() bool { +func (p *UpdateExperimentTemplateResponse) IsSetExperimentTemplate() bool { + return p.ExperimentTemplate != nil +} + +func (p *UpdateExperimentTemplateResponse) IsSetBaseResp() bool { return p.BaseResp != nil } -func (p *CreateAnnotateRecordResp) Read(iprot thrift.TProtocol) (err error) { +func (p *UpdateExperimentTemplateResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetAnnotateRecordID bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -19182,11 +20040,10 @@ func (p *CreateAnnotateRecordResp) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.STRUCT { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } - issetAnnotateRecordID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -19211,17 +20068,13 @@ func (p *CreateAnnotateRecordResp) Read(iprot thrift.TProtocol) (err error) { goto ReadStructEndError } - if !issetAnnotateRecordID { - 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_CreateAnnotateRecordResp[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UpdateExperimentTemplateResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -19229,22 +20082,17 @@ 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_CreateAnnotateRecordResp[fieldId])) } -func (p *CreateAnnotateRecordResp) ReadField1(iprot thrift.TProtocol) error { - - var _field int64 - if v, err := iprot.ReadI64(); err != nil { +func (p *UpdateExperimentTemplateResponse) ReadField1(iprot thrift.TProtocol) error { + _field := expt.NewExptTemplate() + if err := _field.Read(iprot); err != nil { return err - } else { - _field = v } - p.AnnotateRecordID = _field + p.ExperimentTemplate = _field return nil } -func (p *CreateAnnotateRecordResp) ReadField255(iprot thrift.TProtocol) error { +func (p *UpdateExperimentTemplateResponse) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err @@ -19253,9 +20101,9 @@ func (p *CreateAnnotateRecordResp) ReadField255(iprot thrift.TProtocol) error { return nil } -func (p *CreateAnnotateRecordResp) Write(oprot thrift.TProtocol) (err error) { +func (p *UpdateExperimentTemplateResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("CreateAnnotateRecordResp"); err != nil { + if err = oprot.WriteStructBegin("UpdateExperimentTemplateResponse"); err != nil { goto WriteStructBeginError } if p != nil { @@ -19285,15 +20133,17 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *CreateAnnotateRecordResp) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("annotate_record_id", thrift.I64, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.AnnotateRecordID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError +func (p *UpdateExperimentTemplateResponse) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetExperimentTemplate() { + if err = oprot.WriteFieldBegin("experiment_template", thrift.STRUCT, 1); err != nil { + goto WriteFieldBeginError + } + if err := p.ExperimentTemplate.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } return nil WriteFieldBeginError: @@ -19301,7 +20151,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *CreateAnnotateRecordResp) writeField255(oprot thrift.TProtocol) (err error) { +func (p *UpdateExperimentTemplateResponse) writeField255(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError } @@ -19318,21 +20168,21 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *CreateAnnotateRecordResp) String() string { +func (p *UpdateExperimentTemplateResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("CreateAnnotateRecordResp(%+v)", *p) + return fmt.Sprintf("UpdateExperimentTemplateResponse(%+v)", *p) } -func (p *CreateAnnotateRecordResp) DeepEqual(ano *CreateAnnotateRecordResp) bool { +func (p *UpdateExperimentTemplateResponse) DeepEqual(ano *UpdateExperimentTemplateResponse) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.AnnotateRecordID) { + if !p.Field1DeepEqual(ano.ExperimentTemplate) { return false } if !p.Field255DeepEqual(ano.BaseResp) { @@ -19341,14 +20191,14 @@ func (p *CreateAnnotateRecordResp) DeepEqual(ano *CreateAnnotateRecordResp) bool return true } -func (p *CreateAnnotateRecordResp) Field1DeepEqual(src int64) bool { +func (p *UpdateExperimentTemplateResponse) Field1DeepEqual(src *expt.ExptTemplate) bool { - if p.AnnotateRecordID != src { + if !p.ExperimentTemplate.DeepEqual(src) { return false } return true } -func (p *CreateAnnotateRecordResp) Field255DeepEqual(src *base.BaseResp) bool { +func (p *UpdateExperimentTemplateResponse) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { return false @@ -19356,151 +20206,69 @@ func (p *CreateAnnotateRecordResp) Field255DeepEqual(src *base.BaseResp) bool { return true } -type UpdateAnnotateRecordReq struct { - WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` - ExptID int64 `thrift:"expt_id,2,required" frugal:"2,required,i64" json:"expt_id" path:"expt_id,required" ` - AnnotateRecords *expt.AnnotateRecord `thrift:"annotate_records,3,required" frugal:"3,required,expt.AnnotateRecord" form:"annotate_records,required" json:"annotate_records,required"` - AnnotateRecordID int64 `thrift:"annotate_record_id,4,required" frugal:"4,required,i64" json:"annotate_record_id" form:"annotate_record_id,required" ` - ItemID int64 `thrift:"item_id,5,required" frugal:"5,required,i64" json:"item_id" form:"item_id,required" ` - TurnID int64 `thrift:"turn_id,6,required" frugal:"6,required,i64" json:"turn_id" form:"turn_id,required" ` - Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` +type DeleteExperimentTemplateRequest struct { + WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` + TemplateID int64 `thrift:"template_id,2,required" frugal:"2,required,i64" json:"template_id" path:"template_id,required" ` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func NewUpdateAnnotateRecordReq() *UpdateAnnotateRecordReq { - return &UpdateAnnotateRecordReq{} +func NewDeleteExperimentTemplateRequest() *DeleteExperimentTemplateRequest { + return &DeleteExperimentTemplateRequest{} } -func (p *UpdateAnnotateRecordReq) InitDefault() { +func (p *DeleteExperimentTemplateRequest) InitDefault() { } -func (p *UpdateAnnotateRecordReq) GetWorkspaceID() (v int64) { +func (p *DeleteExperimentTemplateRequest) GetWorkspaceID() (v int64) { if p != nil { return p.WorkspaceID } return } -func (p *UpdateAnnotateRecordReq) GetExptID() (v int64) { +func (p *DeleteExperimentTemplateRequest) GetTemplateID() (v int64) { if p != nil { - return p.ExptID + return p.TemplateID } return } -var UpdateAnnotateRecordReq_AnnotateRecords_DEFAULT *expt.AnnotateRecord +var DeleteExperimentTemplateRequest_Base_DEFAULT *base.Base -func (p *UpdateAnnotateRecordReq) GetAnnotateRecords() (v *expt.AnnotateRecord) { +func (p *DeleteExperimentTemplateRequest) GetBase() (v *base.Base) { if p == nil { return } - if !p.IsSetAnnotateRecords() { - return UpdateAnnotateRecordReq_AnnotateRecords_DEFAULT + if !p.IsSetBase() { + return DeleteExperimentTemplateRequest_Base_DEFAULT } - return p.AnnotateRecords + return p.Base } - -func (p *UpdateAnnotateRecordReq) GetAnnotateRecordID() (v int64) { - if p != nil { - return p.AnnotateRecordID - } - return +func (p *DeleteExperimentTemplateRequest) SetWorkspaceID(val int64) { + p.WorkspaceID = val +} +func (p *DeleteExperimentTemplateRequest) SetTemplateID(val int64) { + p.TemplateID = val +} +func (p *DeleteExperimentTemplateRequest) SetBase(val *base.Base) { + p.Base = val } -func (p *UpdateAnnotateRecordReq) GetItemID() (v int64) { - if p != nil { - return p.ItemID - } - return +var fieldIDToName_DeleteExperimentTemplateRequest = map[int16]string{ + 1: "workspace_id", + 2: "template_id", + 255: "Base", } -func (p *UpdateAnnotateRecordReq) GetTurnID() (v int64) { - if p != nil { - return p.TurnID - } - return +func (p *DeleteExperimentTemplateRequest) IsSetBase() bool { + return p.Base != nil } -var UpdateAnnotateRecordReq_Session_DEFAULT *common.Session - -func (p *UpdateAnnotateRecordReq) GetSession() (v *common.Session) { - if p == nil { - return - } - if !p.IsSetSession() { - return UpdateAnnotateRecordReq_Session_DEFAULT - } - return p.Session -} - -var UpdateAnnotateRecordReq_Base_DEFAULT *base.Base - -func (p *UpdateAnnotateRecordReq) GetBase() (v *base.Base) { - if p == nil { - return - } - if !p.IsSetBase() { - return UpdateAnnotateRecordReq_Base_DEFAULT - } - return p.Base -} -func (p *UpdateAnnotateRecordReq) SetWorkspaceID(val int64) { - p.WorkspaceID = val -} -func (p *UpdateAnnotateRecordReq) SetExptID(val int64) { - p.ExptID = val -} -func (p *UpdateAnnotateRecordReq) SetAnnotateRecords(val *expt.AnnotateRecord) { - p.AnnotateRecords = val -} -func (p *UpdateAnnotateRecordReq) SetAnnotateRecordID(val int64) { - p.AnnotateRecordID = val -} -func (p *UpdateAnnotateRecordReq) SetItemID(val int64) { - p.ItemID = val -} -func (p *UpdateAnnotateRecordReq) SetTurnID(val int64) { - p.TurnID = val -} -func (p *UpdateAnnotateRecordReq) SetSession(val *common.Session) { - p.Session = val -} -func (p *UpdateAnnotateRecordReq) SetBase(val *base.Base) { - p.Base = val -} - -var fieldIDToName_UpdateAnnotateRecordReq = map[int16]string{ - 1: "workspace_id", - 2: "expt_id", - 3: "annotate_records", - 4: "annotate_record_id", - 5: "item_id", - 6: "turn_id", - 200: "session", - 255: "Base", -} - -func (p *UpdateAnnotateRecordReq) IsSetAnnotateRecords() bool { - return p.AnnotateRecords != nil -} - -func (p *UpdateAnnotateRecordReq) IsSetSession() bool { - return p.Session != nil -} - -func (p *UpdateAnnotateRecordReq) IsSetBase() bool { - return p.Base != nil -} - -func (p *UpdateAnnotateRecordReq) Read(iprot thrift.TProtocol) (err error) { +func (p *DeleteExperimentTemplateRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 var issetWorkspaceID bool = false - var issetExptID bool = false - var issetAnnotateRecords bool = false - var issetAnnotateRecordID bool = false - var issetItemID bool = false - var issetTurnID bool = false + var issetTemplateID bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -19530,51 +20298,7 @@ func (p *UpdateAnnotateRecordReq) Read(iprot thrift.TProtocol) (err error) { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } - issetExptID = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - issetAnnotateRecords = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 4: - if fieldTypeId == thrift.I64 { - if err = p.ReadField4(iprot); err != nil { - goto ReadFieldError - } - issetAnnotateRecordID = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 5: - if fieldTypeId == thrift.I64 { - if err = p.ReadField5(iprot); err != nil { - goto ReadFieldError - } - issetItemID = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 6: - if fieldTypeId == thrift.I64 { - if err = p.ReadField6(iprot); err != nil { - goto ReadFieldError - } - issetTurnID = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 200: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField200(iprot); err != nil { - goto ReadFieldError - } + issetTemplateID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -19604,37 +20328,17 @@ func (p *UpdateAnnotateRecordReq) Read(iprot thrift.TProtocol) (err error) { goto RequiredFieldNotSetError } - if !issetExptID { + if !issetTemplateID { fieldId = 2 goto RequiredFieldNotSetError } - - if !issetAnnotateRecords { - fieldId = 3 - goto RequiredFieldNotSetError - } - - if !issetAnnotateRecordID { - fieldId = 4 - goto RequiredFieldNotSetError - } - - if !issetItemID { - fieldId = 5 - goto RequiredFieldNotSetError - } - - if !issetTurnID { - fieldId = 6 - 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_UpdateAnnotateRecordReq[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_DeleteExperimentTemplateRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -19643,10 +20347,10 @@ ReadFieldEndError: 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_UpdateAnnotateRecordReq[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_DeleteExperimentTemplateRequest[fieldId])) } -func (p *UpdateAnnotateRecordReq) ReadField1(iprot thrift.TProtocol) error { +func (p *DeleteExperimentTemplateRequest) ReadField1(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -19657,48 +20361,7 @@ func (p *UpdateAnnotateRecordReq) ReadField1(iprot thrift.TProtocol) error { p.WorkspaceID = _field return nil } -func (p *UpdateAnnotateRecordReq) ReadField2(iprot thrift.TProtocol) error { - - var _field int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = v - } - p.ExptID = _field - return nil -} -func (p *UpdateAnnotateRecordReq) ReadField3(iprot thrift.TProtocol) error { - _field := expt.NewAnnotateRecord() - if err := _field.Read(iprot); err != nil { - return err - } - p.AnnotateRecords = _field - return nil -} -func (p *UpdateAnnotateRecordReq) ReadField4(iprot thrift.TProtocol) error { - - var _field int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = v - } - p.AnnotateRecordID = _field - return nil -} -func (p *UpdateAnnotateRecordReq) ReadField5(iprot thrift.TProtocol) error { - - var _field int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = v - } - p.ItemID = _field - return nil -} -func (p *UpdateAnnotateRecordReq) ReadField6(iprot thrift.TProtocol) error { +func (p *DeleteExperimentTemplateRequest) ReadField2(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -19706,18 +20369,10 @@ func (p *UpdateAnnotateRecordReq) ReadField6(iprot thrift.TProtocol) error { } else { _field = v } - p.TurnID = _field - return nil -} -func (p *UpdateAnnotateRecordReq) ReadField200(iprot thrift.TProtocol) error { - _field := common.NewSession() - if err := _field.Read(iprot); err != nil { - return err - } - p.Session = _field + p.TemplateID = _field return nil } -func (p *UpdateAnnotateRecordReq) ReadField255(iprot thrift.TProtocol) error { +func (p *DeleteExperimentTemplateRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err @@ -19726,9 +20381,9 @@ func (p *UpdateAnnotateRecordReq) ReadField255(iprot thrift.TProtocol) error { return nil } -func (p *UpdateAnnotateRecordReq) Write(oprot thrift.TProtocol) (err error) { +func (p *DeleteExperimentTemplateRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("UpdateAnnotateRecordReq"); err != nil { + if err = oprot.WriteStructBegin("DeleteExperimentTemplateRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -19740,26 +20395,6 @@ func (p *UpdateAnnotateRecordReq) Write(oprot thrift.TProtocol) (err error) { 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 = p.writeField200(oprot); err != nil { - fieldId = 200 - goto WriteFieldError - } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -19782,7 +20417,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *UpdateAnnotateRecordReq) writeField1(oprot thrift.TProtocol) (err error) { +func (p *DeleteExperimentTemplateRequest) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { goto WriteFieldBeginError } @@ -19798,11 +20433,11 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *UpdateAnnotateRecordReq) writeField2(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("expt_id", thrift.I64, 2); err != nil { +func (p *DeleteExperimentTemplateRequest) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("template_id", thrift.I64, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI64(p.ExptID); err != nil { + if err := oprot.WriteI64(p.TemplateID); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -19814,89 +20449,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *UpdateAnnotateRecordReq) writeField3(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("annotate_records", thrift.STRUCT, 3); err != nil { - goto WriteFieldBeginError - } - if err := p.AnnotateRecords.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 3 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) -} -func (p *UpdateAnnotateRecordReq) writeField4(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("annotate_record_id", thrift.I64, 4); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.AnnotateRecordID); 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 *UpdateAnnotateRecordReq) writeField5(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("item_id", thrift.I64, 5); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.ItemID); 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 *UpdateAnnotateRecordReq) writeField6(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("turn_id", thrift.I64, 6); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.TurnID); 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 *UpdateAnnotateRecordReq) writeField200(oprot thrift.TProtocol) (err error) { - if p.IsSetSession() { - if err = oprot.WriteFieldBegin("session", thrift.STRUCT, 200); err != nil { - goto WriteFieldBeginError - } - if err := p.Session.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 200 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 200 end error: ", p), err) -} -func (p *UpdateAnnotateRecordReq) writeField255(oprot thrift.TProtocol) (err error) { +func (p *DeleteExperimentTemplateRequest) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -19915,15 +20468,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *UpdateAnnotateRecordReq) String() string { +func (p *DeleteExperimentTemplateRequest) String() string { if p == nil { return "" } - return fmt.Sprintf("UpdateAnnotateRecordReq(%+v)", *p) + return fmt.Sprintf("DeleteExperimentTemplateRequest(%+v)", *p) } -func (p *UpdateAnnotateRecordReq) DeepEqual(ano *UpdateAnnotateRecordReq) bool { +func (p *DeleteExperimentTemplateRequest) DeepEqual(ano *DeleteExperimentTemplateRequest) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -19932,22 +20485,7 @@ func (p *UpdateAnnotateRecordReq) DeepEqual(ano *UpdateAnnotateRecordReq) bool { if !p.Field1DeepEqual(ano.WorkspaceID) { return false } - if !p.Field2DeepEqual(ano.ExptID) { - return false - } - if !p.Field3DeepEqual(ano.AnnotateRecords) { - return false - } - if !p.Field4DeepEqual(ano.AnnotateRecordID) { - return false - } - if !p.Field5DeepEqual(ano.ItemID) { - return false - } - if !p.Field6DeepEqual(ano.TurnID) { - return false - } - if !p.Field200DeepEqual(ano.Session) { + if !p.Field2DeepEqual(ano.TemplateID) { return false } if !p.Field255DeepEqual(ano.Base) { @@ -19956,56 +20494,21 @@ func (p *UpdateAnnotateRecordReq) DeepEqual(ano *UpdateAnnotateRecordReq) bool { return true } -func (p *UpdateAnnotateRecordReq) Field1DeepEqual(src int64) bool { +func (p *DeleteExperimentTemplateRequest) Field1DeepEqual(src int64) bool { if p.WorkspaceID != src { return false } return true } -func (p *UpdateAnnotateRecordReq) Field2DeepEqual(src int64) bool { - - if p.ExptID != src { - return false - } - return true -} -func (p *UpdateAnnotateRecordReq) Field3DeepEqual(src *expt.AnnotateRecord) bool { - - if !p.AnnotateRecords.DeepEqual(src) { - return false - } - return true -} -func (p *UpdateAnnotateRecordReq) Field4DeepEqual(src int64) bool { - - if p.AnnotateRecordID != src { - return false - } - return true -} -func (p *UpdateAnnotateRecordReq) Field5DeepEqual(src int64) bool { - - if p.ItemID != src { - return false - } - return true -} -func (p *UpdateAnnotateRecordReq) Field6DeepEqual(src int64) bool { - - if p.TurnID != src { - return false - } - return true -} -func (p *UpdateAnnotateRecordReq) Field200DeepEqual(src *common.Session) bool { +func (p *DeleteExperimentTemplateRequest) Field2DeepEqual(src int64) bool { - if !p.Session.DeepEqual(src) { + if p.TemplateID != src { return false } return true } -func (p *UpdateAnnotateRecordReq) Field255DeepEqual(src *base.Base) bool { +func (p *DeleteExperimentTemplateRequest) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { return false @@ -20013,41 +20516,41 @@ func (p *UpdateAnnotateRecordReq) Field255DeepEqual(src *base.Base) bool { return true } -type UpdateAnnotateRecordResp struct { +type DeleteExperimentTemplateResponse struct { BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` } -func NewUpdateAnnotateRecordResp() *UpdateAnnotateRecordResp { - return &UpdateAnnotateRecordResp{} +func NewDeleteExperimentTemplateResponse() *DeleteExperimentTemplateResponse { + return &DeleteExperimentTemplateResponse{} } -func (p *UpdateAnnotateRecordResp) InitDefault() { +func (p *DeleteExperimentTemplateResponse) InitDefault() { } -var UpdateAnnotateRecordResp_BaseResp_DEFAULT *base.BaseResp +var DeleteExperimentTemplateResponse_BaseResp_DEFAULT *base.BaseResp -func (p *UpdateAnnotateRecordResp) GetBaseResp() (v *base.BaseResp) { +func (p *DeleteExperimentTemplateResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } if !p.IsSetBaseResp() { - return UpdateAnnotateRecordResp_BaseResp_DEFAULT + return DeleteExperimentTemplateResponse_BaseResp_DEFAULT } return p.BaseResp } -func (p *UpdateAnnotateRecordResp) SetBaseResp(val *base.BaseResp) { +func (p *DeleteExperimentTemplateResponse) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } -var fieldIDToName_UpdateAnnotateRecordResp = map[int16]string{ +var fieldIDToName_DeleteExperimentTemplateResponse = map[int16]string{ 255: "BaseResp", } -func (p *UpdateAnnotateRecordResp) IsSetBaseResp() bool { +func (p *DeleteExperimentTemplateResponse) IsSetBaseResp() bool { return p.BaseResp != nil } -func (p *UpdateAnnotateRecordResp) Read(iprot thrift.TProtocol) (err error) { +func (p *DeleteExperimentTemplateResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -20092,7 +20595,7 @@ ReadStructBeginError: 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_UpdateAnnotateRecordResp[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_DeleteExperimentTemplateResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -20102,7 +20605,7 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *UpdateAnnotateRecordResp) ReadField255(iprot thrift.TProtocol) error { +func (p *DeleteExperimentTemplateResponse) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err @@ -20111,9 +20614,9 @@ func (p *UpdateAnnotateRecordResp) ReadField255(iprot thrift.TProtocol) error { return nil } -func (p *UpdateAnnotateRecordResp) Write(oprot thrift.TProtocol) (err error) { +func (p *DeleteExperimentTemplateResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("UpdateAnnotateRecordResp"); err != nil { + if err = oprot.WriteStructBegin("DeleteExperimentTemplateResponse"); err != nil { goto WriteStructBeginError } if p != nil { @@ -20139,7 +20642,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *UpdateAnnotateRecordResp) writeField255(oprot thrift.TProtocol) (err error) { +func (p *DeleteExperimentTemplateResponse) writeField255(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError } @@ -20156,15 +20659,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *UpdateAnnotateRecordResp) String() string { +func (p *DeleteExperimentTemplateResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("UpdateAnnotateRecordResp(%+v)", *p) + return fmt.Sprintf("DeleteExperimentTemplateResponse(%+v)", *p) } -func (p *UpdateAnnotateRecordResp) DeepEqual(ano *UpdateAnnotateRecordResp) bool { +func (p *DeleteExperimentTemplateResponse) DeepEqual(ano *DeleteExperimentTemplateResponse) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -20176,7 +20679,7 @@ func (p *UpdateAnnotateRecordResp) DeepEqual(ano *UpdateAnnotateRecordResp) bool return true } -func (p *UpdateAnnotateRecordResp) Field255DeepEqual(src *base.BaseResp) bool { +func (p *DeleteExperimentTemplateResponse) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { return false @@ -20184,111 +20687,140 @@ func (p *UpdateAnnotateRecordResp) Field255DeepEqual(src *base.BaseResp) bool { return true } -type ExportExptResultRequest struct { - WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` - ExptID int64 `thrift:"expt_id,2,required" frugal:"2,required,i64" json:"expt_id" path:"expt_id,required" ` - ExportType *expt.ExptResultExportType `thrift:"export_type,4,optional" frugal:"4,optional,string" form:"export_type" json:"export_type,omitempty"` - Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` +type ListExperimentTemplatesRequest struct { + WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` + PageNumber *int32 `thrift:"page_number,2,optional" frugal:"2,optional,i32" form:"page_number" json:"page_number,omitempty"` + PageSize *int32 `thrift:"page_size,3,optional" frugal:"3,optional,i32" form:"page_size" json:"page_size,omitempty"` + FilterOption *expt.ExperimentTemplateFilter `thrift:"filter_option,20,optional" frugal:"20,optional,expt.ExperimentTemplateFilter" form:"filter_option" json:"filter_option,omitempty"` + OrderBys []*common.OrderBy `thrift:"order_bys,21,optional" frugal:"21,optional,list" form:"order_bys" json:"order_bys,omitempty"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func NewExportExptResultRequest() *ExportExptResultRequest { - return &ExportExptResultRequest{} +func NewListExperimentTemplatesRequest() *ListExperimentTemplatesRequest { + return &ListExperimentTemplatesRequest{} } -func (p *ExportExptResultRequest) InitDefault() { +func (p *ListExperimentTemplatesRequest) InitDefault() { } -func (p *ExportExptResultRequest) GetWorkspaceID() (v int64) { +func (p *ListExperimentTemplatesRequest) GetWorkspaceID() (v int64) { if p != nil { return p.WorkspaceID } return } -func (p *ExportExptResultRequest) GetExptID() (v int64) { - if p != nil { - return p.ExptID +var ListExperimentTemplatesRequest_PageNumber_DEFAULT int32 + +func (p *ListExperimentTemplatesRequest) GetPageNumber() (v int32) { + if p == nil { + return } - return + if !p.IsSetPageNumber() { + return ListExperimentTemplatesRequest_PageNumber_DEFAULT + } + return *p.PageNumber } -var ExportExptResultRequest_ExportType_DEFAULT expt.ExptResultExportType +var ListExperimentTemplatesRequest_PageSize_DEFAULT int32 -func (p *ExportExptResultRequest) GetExportType() (v expt.ExptResultExportType) { +func (p *ListExperimentTemplatesRequest) GetPageSize() (v int32) { if p == nil { return } - if !p.IsSetExportType() { - return ExportExptResultRequest_ExportType_DEFAULT + if !p.IsSetPageSize() { + return ListExperimentTemplatesRequest_PageSize_DEFAULT } - return *p.ExportType + return *p.PageSize } -var ExportExptResultRequest_Session_DEFAULT *common.Session +var ListExperimentTemplatesRequest_FilterOption_DEFAULT *expt.ExperimentTemplateFilter -func (p *ExportExptResultRequest) GetSession() (v *common.Session) { +func (p *ListExperimentTemplatesRequest) GetFilterOption() (v *expt.ExperimentTemplateFilter) { if p == nil { return } - if !p.IsSetSession() { - return ExportExptResultRequest_Session_DEFAULT + if !p.IsSetFilterOption() { + return ListExperimentTemplatesRequest_FilterOption_DEFAULT } - return p.Session + return p.FilterOption } -var ExportExptResultRequest_Base_DEFAULT *base.Base +var ListExperimentTemplatesRequest_OrderBys_DEFAULT []*common.OrderBy -func (p *ExportExptResultRequest) GetBase() (v *base.Base) { +func (p *ListExperimentTemplatesRequest) GetOrderBys() (v []*common.OrderBy) { + if p == nil { + return + } + if !p.IsSetOrderBys() { + return ListExperimentTemplatesRequest_OrderBys_DEFAULT + } + return p.OrderBys +} + +var ListExperimentTemplatesRequest_Base_DEFAULT *base.Base + +func (p *ListExperimentTemplatesRequest) GetBase() (v *base.Base) { if p == nil { return } if !p.IsSetBase() { - return ExportExptResultRequest_Base_DEFAULT + return ListExperimentTemplatesRequest_Base_DEFAULT } return p.Base } -func (p *ExportExptResultRequest) SetWorkspaceID(val int64) { +func (p *ListExperimentTemplatesRequest) SetWorkspaceID(val int64) { p.WorkspaceID = val } -func (p *ExportExptResultRequest) SetExptID(val int64) { - p.ExptID = val +func (p *ListExperimentTemplatesRequest) SetPageNumber(val *int32) { + p.PageNumber = val } -func (p *ExportExptResultRequest) SetExportType(val *expt.ExptResultExportType) { - p.ExportType = val +func (p *ListExperimentTemplatesRequest) SetPageSize(val *int32) { + p.PageSize = val } -func (p *ExportExptResultRequest) SetSession(val *common.Session) { - p.Session = val +func (p *ListExperimentTemplatesRequest) SetFilterOption(val *expt.ExperimentTemplateFilter) { + p.FilterOption = val } -func (p *ExportExptResultRequest) SetBase(val *base.Base) { +func (p *ListExperimentTemplatesRequest) SetOrderBys(val []*common.OrderBy) { + p.OrderBys = val +} +func (p *ListExperimentTemplatesRequest) SetBase(val *base.Base) { p.Base = val } -var fieldIDToName_ExportExptResultRequest = map[int16]string{ +var fieldIDToName_ListExperimentTemplatesRequest = map[int16]string{ 1: "workspace_id", - 2: "expt_id", - 4: "export_type", - 200: "session", + 2: "page_number", + 3: "page_size", + 20: "filter_option", + 21: "order_bys", 255: "Base", } -func (p *ExportExptResultRequest) IsSetExportType() bool { - return p.ExportType != nil +func (p *ListExperimentTemplatesRequest) IsSetPageNumber() bool { + return p.PageNumber != nil } -func (p *ExportExptResultRequest) IsSetSession() bool { - return p.Session != nil +func (p *ListExperimentTemplatesRequest) IsSetPageSize() bool { + return p.PageSize != nil } -func (p *ExportExptResultRequest) IsSetBase() bool { +func (p *ListExperimentTemplatesRequest) IsSetFilterOption() bool { + return p.FilterOption != nil +} + +func (p *ListExperimentTemplatesRequest) IsSetOrderBys() bool { + return p.OrderBys != nil +} + +func (p *ListExperimentTemplatesRequest) IsSetBase() bool { return p.Base != nil } -func (p *ExportExptResultRequest) Read(iprot thrift.TProtocol) (err error) { +func (p *ListExperimentTemplatesRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 var issetWorkspaceID bool = false - var issetExptID bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -20314,25 +20846,32 @@ func (p *ExportExptResultRequest) Read(iprot thrift.TProtocol) (err error) { goto SkipFieldError } case 2: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.I32 { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } - issetExptID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 4: - if fieldTypeId == thrift.STRING { - if err = p.ReadField4(iprot); err != nil { + case 3: + if fieldTypeId == thrift.I32 { + if err = p.ReadField3(iprot); err != nil { goto ReadFieldError } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 200: + case 20: if fieldTypeId == thrift.STRUCT { - if err = p.ReadField200(iprot); err != nil { + if err = p.ReadField20(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 21: + if fieldTypeId == thrift.LIST { + if err = p.ReadField21(iprot); err != nil { goto ReadFieldError } } else if err = iprot.Skip(fieldTypeId); err != nil { @@ -20363,18 +20902,13 @@ func (p *ExportExptResultRequest) Read(iprot thrift.TProtocol) (err error) { fieldId = 1 goto RequiredFieldNotSetError } - - if !issetExptID { - 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_ExportExptResultRequest[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListExperimentTemplatesRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -20383,10 +20917,10 @@ ReadFieldEndError: 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_ExportExptResultRequest[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ListExperimentTemplatesRequest[fieldId])) } -func (p *ExportExptResultRequest) ReadField1(iprot thrift.TProtocol) error { +func (p *ListExperimentTemplatesRequest) ReadField1(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -20397,37 +20931,60 @@ func (p *ExportExptResultRequest) ReadField1(iprot thrift.TProtocol) error { p.WorkspaceID = _field return nil } -func (p *ExportExptResultRequest) ReadField2(iprot thrift.TProtocol) error { +func (p *ListExperimentTemplatesRequest) ReadField2(iprot thrift.TProtocol) error { - var _field int64 - if v, err := iprot.ReadI64(); err != nil { + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { return err } else { - _field = v + _field = &v } - p.ExptID = _field + p.PageNumber = _field return nil } -func (p *ExportExptResultRequest) ReadField4(iprot thrift.TProtocol) error { +func (p *ListExperimentTemplatesRequest) ReadField3(iprot thrift.TProtocol) error { - var _field *expt.ExptResultExportType - if v, err := iprot.ReadString(); err != nil { + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { return err } else { _field = &v } - p.ExportType = _field + p.PageSize = _field return nil } -func (p *ExportExptResultRequest) ReadField200(iprot thrift.TProtocol) error { - _field := common.NewSession() +func (p *ListExperimentTemplatesRequest) ReadField20(iprot thrift.TProtocol) error { + _field := expt.NewExperimentTemplateFilter() if err := _field.Read(iprot); err != nil { return err } - p.Session = _field + p.FilterOption = _field return nil } -func (p *ExportExptResultRequest) ReadField255(iprot thrift.TProtocol) error { +func (p *ListExperimentTemplatesRequest) ReadField21(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*common.OrderBy, 0, size) + values := make([]common.OrderBy, 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.OrderBys = _field + return nil +} +func (p *ListExperimentTemplatesRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err @@ -20436,9 +20993,9 @@ func (p *ExportExptResultRequest) ReadField255(iprot thrift.TProtocol) error { return nil } -func (p *ExportExptResultRequest) Write(oprot thrift.TProtocol) (err error) { +func (p *ListExperimentTemplatesRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ExportExptResultRequest"); err != nil { + if err = oprot.WriteStructBegin("ListExperimentTemplatesRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -20450,12 +21007,16 @@ func (p *ExportExptResultRequest) Write(oprot thrift.TProtocol) (err error) { fieldId = 2 goto WriteFieldError } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 + if err = p.writeField3(oprot); err != nil { + fieldId = 3 goto WriteFieldError } - if err = p.writeField200(oprot); err != nil { - fieldId = 200 + if err = p.writeField20(oprot); err != nil { + fieldId = 20 + goto WriteFieldError + } + if err = p.writeField21(oprot); err != nil { + fieldId = 21 goto WriteFieldError } if err = p.writeField255(oprot); err != nil { @@ -20480,7 +21041,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExportExptResultRequest) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ListExperimentTemplatesRequest) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { goto WriteFieldBeginError } @@ -20496,15 +21057,17 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExportExptResultRequest) writeField2(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("expt_id", thrift.I64, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.ExptID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError +func (p *ListExperimentTemplatesRequest) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetPageNumber() { + if err = oprot.WriteFieldBegin("page_number", thrift.I32, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.PageNumber); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } return nil WriteFieldBeginError: @@ -20512,12 +21075,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *ExportExptResultRequest) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetExportType() { - if err = oprot.WriteFieldBegin("export_type", thrift.STRING, 4); err != nil { +func (p *ListExperimentTemplatesRequest) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetPageSize() { + if err = oprot.WriteFieldBegin("page_size", thrift.I32, 3); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(*p.ExportType); err != nil { + if err := oprot.WriteI32(*p.PageSize); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -20526,16 +21089,16 @@ func (p *ExportExptResultRequest) writeField4(oprot thrift.TProtocol) (err error } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *ExportExptResultRequest) writeField200(oprot thrift.TProtocol) (err error) { - if p.IsSetSession() { - if err = oprot.WriteFieldBegin("session", thrift.STRUCT, 200); err != nil { +func (p *ListExperimentTemplatesRequest) writeField20(oprot thrift.TProtocol) (err error) { + if p.IsSetFilterOption() { + if err = oprot.WriteFieldBegin("filter_option", thrift.STRUCT, 20); err != nil { goto WriteFieldBeginError } - if err := p.Session.Write(oprot); err != nil { + if err := p.FilterOption.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -20544,11 +21107,37 @@ func (p *ExportExptResultRequest) writeField200(oprot thrift.TProtocol) (err err } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 200 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 20 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 200 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 20 end error: ", p), err) } -func (p *ExportExptResultRequest) writeField255(oprot thrift.TProtocol) (err error) { +func (p *ListExperimentTemplatesRequest) writeField21(oprot thrift.TProtocol) (err error) { + if p.IsSetOrderBys() { + if err = oprot.WriteFieldBegin("order_bys", thrift.LIST, 21); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.OrderBys)); err != nil { + return err + } + for _, v := range p.OrderBys { + 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 21 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 21 end error: ", p), err) +} +func (p *ListExperimentTemplatesRequest) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -20567,15 +21156,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *ExportExptResultRequest) String() string { +func (p *ListExperimentTemplatesRequest) String() string { if p == nil { return "" } - return fmt.Sprintf("ExportExptResultRequest(%+v)", *p) + return fmt.Sprintf("ListExperimentTemplatesRequest(%+v)", *p) } -func (p *ExportExptResultRequest) DeepEqual(ano *ExportExptResultRequest) bool { +func (p *ListExperimentTemplatesRequest) DeepEqual(ano *ListExperimentTemplatesRequest) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -20584,13 +21173,16 @@ func (p *ExportExptResultRequest) DeepEqual(ano *ExportExptResultRequest) bool { if !p.Field1DeepEqual(ano.WorkspaceID) { return false } - if !p.Field2DeepEqual(ano.ExptID) { + if !p.Field2DeepEqual(ano.PageNumber) { return false } - if !p.Field4DeepEqual(ano.ExportType) { + if !p.Field3DeepEqual(ano.PageSize) { return false } - if !p.Field200DeepEqual(ano.Session) { + if !p.Field20DeepEqual(ano.FilterOption) { + return false + } + if !p.Field21DeepEqual(ano.OrderBys) { return false } if !p.Field255DeepEqual(ano.Base) { @@ -20599,40 +21191,58 @@ func (p *ExportExptResultRequest) DeepEqual(ano *ExportExptResultRequest) bool { return true } -func (p *ExportExptResultRequest) Field1DeepEqual(src int64) bool { +func (p *ListExperimentTemplatesRequest) Field1DeepEqual(src int64) bool { if p.WorkspaceID != src { return false } return true } -func (p *ExportExptResultRequest) Field2DeepEqual(src int64) bool { +func (p *ListExperimentTemplatesRequest) Field2DeepEqual(src *int32) bool { - if p.ExptID != src { + if p.PageNumber == src { + return true + } else if p.PageNumber == nil || src == nil { + return false + } + if *p.PageNumber != *src { return false } return true } -func (p *ExportExptResultRequest) Field4DeepEqual(src *expt.ExptResultExportType) bool { +func (p *ListExperimentTemplatesRequest) Field3DeepEqual(src *int32) bool { - if p.ExportType == src { + if p.PageSize == src { return true - } else if p.ExportType == nil || src == nil { + } else if p.PageSize == nil || src == nil { return false } - if strings.Compare(*p.ExportType, *src) != 0 { + if *p.PageSize != *src { return false } return true } -func (p *ExportExptResultRequest) Field200DeepEqual(src *common.Session) bool { +func (p *ListExperimentTemplatesRequest) Field20DeepEqual(src *expt.ExperimentTemplateFilter) bool { - if !p.Session.DeepEqual(src) { + if !p.FilterOption.DeepEqual(src) { return false } return true } -func (p *ExportExptResultRequest) Field255DeepEqual(src *base.Base) bool { +func (p *ListExperimentTemplatesRequest) Field21DeepEqual(src []*common.OrderBy) bool { + + if len(p.OrderBys) != len(src) { + return false + } + for i, v := range p.OrderBys { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} +func (p *ListExperimentTemplatesRequest) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { return false @@ -20640,56 +21250,85 @@ func (p *ExportExptResultRequest) Field255DeepEqual(src *base.Base) bool { return true } -type ExportExptResultResponse struct { - ExportID int64 `thrift:"export_id,1,required" frugal:"1,required,i64" json:"export_id" form:"export_id,required" ` - BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` +type ListExperimentTemplatesResponse struct { + ExperimentTemplates []*expt.ExptTemplate `thrift:"experiment_templates,1,optional" frugal:"1,optional,list" form:"experiment_templates" json:"experiment_templates,omitempty"` + Total *int32 `thrift:"total,2,optional" frugal:"2,optional,i32" form:"total" json:"total,omitempty"` + BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` } -func NewExportExptResultResponse() *ExportExptResultResponse { - return &ExportExptResultResponse{} +func NewListExperimentTemplatesResponse() *ListExperimentTemplatesResponse { + return &ListExperimentTemplatesResponse{} } -func (p *ExportExptResultResponse) InitDefault() { +func (p *ListExperimentTemplatesResponse) InitDefault() { } -func (p *ExportExptResultResponse) GetExportID() (v int64) { - if p != nil { - return p.ExportID +var ListExperimentTemplatesResponse_ExperimentTemplates_DEFAULT []*expt.ExptTemplate + +func (p *ListExperimentTemplatesResponse) GetExperimentTemplates() (v []*expt.ExptTemplate) { + if p == nil { + return } - return + if !p.IsSetExperimentTemplates() { + return ListExperimentTemplatesResponse_ExperimentTemplates_DEFAULT + } + return p.ExperimentTemplates } -var ExportExptResultResponse_BaseResp_DEFAULT *base.BaseResp +var ListExperimentTemplatesResponse_Total_DEFAULT int32 -func (p *ExportExptResultResponse) GetBaseResp() (v *base.BaseResp) { +func (p *ListExperimentTemplatesResponse) GetTotal() (v int32) { + if p == nil { + return + } + if !p.IsSetTotal() { + return ListExperimentTemplatesResponse_Total_DEFAULT + } + return *p.Total +} + +var ListExperimentTemplatesResponse_BaseResp_DEFAULT *base.BaseResp + +func (p *ListExperimentTemplatesResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } if !p.IsSetBaseResp() { - return ExportExptResultResponse_BaseResp_DEFAULT + return ListExperimentTemplatesResponse_BaseResp_DEFAULT } return p.BaseResp } -func (p *ExportExptResultResponse) SetExportID(val int64) { - p.ExportID = val +func (p *ListExperimentTemplatesResponse) SetExperimentTemplates(val []*expt.ExptTemplate) { + p.ExperimentTemplates = val } -func (p *ExportExptResultResponse) SetBaseResp(val *base.BaseResp) { +func (p *ListExperimentTemplatesResponse) SetTotal(val *int32) { + p.Total = val +} +func (p *ListExperimentTemplatesResponse) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } -var fieldIDToName_ExportExptResultResponse = map[int16]string{ - 1: "export_id", +var fieldIDToName_ListExperimentTemplatesResponse = map[int16]string{ + 1: "experiment_templates", + 2: "total", 255: "BaseResp", } -func (p *ExportExptResultResponse) IsSetBaseResp() bool { +func (p *ListExperimentTemplatesResponse) IsSetExperimentTemplates() bool { + return p.ExperimentTemplates != nil +} + +func (p *ListExperimentTemplatesResponse) IsSetTotal() bool { + return p.Total != nil +} + +func (p *ListExperimentTemplatesResponse) IsSetBaseResp() bool { return p.BaseResp != nil } -func (p *ExportExptResultResponse) Read(iprot thrift.TProtocol) (err error) { +func (p *ListExperimentTemplatesResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetExportID bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -20706,11 +21345,18 @@ func (p *ExportExptResultResponse) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.LIST { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } - issetExportID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.I32 { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -20735,17 +21381,13 @@ func (p *ExportExptResultResponse) Read(iprot thrift.TProtocol) (err error) { goto ReadStructEndError } - if !issetExportID { - 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_ExportExptResultResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListExperimentTemplatesResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -20753,22 +21395,43 @@ 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_ExportExptResultResponse[fieldId])) } -func (p *ExportExptResultResponse) ReadField1(iprot thrift.TProtocol) error { +func (p *ListExperimentTemplatesResponse) ReadField1(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*expt.ExptTemplate, 0, size) + values := make([]expt.ExptTemplate, size) + for i := 0; i < size; i++ { + _elem := &values[i] + _elem.InitDefault() - var _field int64 - if v, err := iprot.ReadI64(); err != nil { + if err := _elem.Read(iprot); err != nil { + return err + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { + return err + } + p.ExperimentTemplates = _field + return nil +} +func (p *ListExperimentTemplatesResponse) ReadField2(iprot thrift.TProtocol) error { + + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { return err } else { - _field = v + _field = &v } - p.ExportID = _field + p.Total = _field return nil } -func (p *ExportExptResultResponse) ReadField255(iprot thrift.TProtocol) error { +func (p *ListExperimentTemplatesResponse) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err @@ -20777,9 +21440,9 @@ func (p *ExportExptResultResponse) ReadField255(iprot thrift.TProtocol) error { return nil } -func (p *ExportExptResultResponse) Write(oprot thrift.TProtocol) (err error) { +func (p *ListExperimentTemplatesResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ExportExptResultResponse"); err != nil { + if err = oprot.WriteStructBegin("ListExperimentTemplatesResponse"); err != nil { goto WriteStructBeginError } if p != nil { @@ -20787,6 +21450,10 @@ func (p *ExportExptResultResponse) Write(oprot thrift.TProtocol) (err error) { fieldId = 1 goto WriteFieldError } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -20809,15 +21476,25 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExportExptResultResponse) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("export_id", thrift.I64, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.ExportID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError +func (p *ListExperimentTemplatesResponse) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetExperimentTemplates() { + if err = oprot.WriteFieldBegin("experiment_templates", thrift.LIST, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.ExperimentTemplates)); err != nil { + return err + } + for _, v := range p.ExperimentTemplates { + 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: @@ -20825,7 +21502,25 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExportExptResultResponse) writeField255(oprot thrift.TProtocol) (err error) { +func (p *ListExperimentTemplatesResponse) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetTotal() { + if err = oprot.WriteFieldBegin("total", thrift.I32, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.Total); 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 *ListExperimentTemplatesResponse) writeField255(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError } @@ -20842,21 +21537,24 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *ExportExptResultResponse) String() string { +func (p *ListExperimentTemplatesResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("ExportExptResultResponse(%+v)", *p) + return fmt.Sprintf("ListExperimentTemplatesResponse(%+v)", *p) } -func (p *ExportExptResultResponse) DeepEqual(ano *ExportExptResultResponse) bool { +func (p *ListExperimentTemplatesResponse) DeepEqual(ano *ListExperimentTemplatesResponse) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.ExportID) { + if !p.Field1DeepEqual(ano.ExperimentTemplates) { + return false + } + if !p.Field2DeepEqual(ano.Total) { return false } if !p.Field255DeepEqual(ano.BaseResp) { @@ -20865,14 +21563,32 @@ func (p *ExportExptResultResponse) DeepEqual(ano *ExportExptResultResponse) bool return true } -func (p *ExportExptResultResponse) Field1DeepEqual(src int64) bool { +func (p *ListExperimentTemplatesResponse) Field1DeepEqual(src []*expt.ExptTemplate) bool { - if p.ExportID != src { + if len(p.ExperimentTemplates) != len(src) { return false } + for i, v := range p.ExperimentTemplates { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } return true } -func (p *ExportExptResultResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *ListExperimentTemplatesResponse) Field2DeepEqual(src *int32) bool { + + if p.Total == src { + return true + } else if p.Total == nil || src == nil { + return false + } + if *p.Total != *src { + return false + } + return true +} +func (p *ListExperimentTemplatesResponse) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { return false @@ -20880,132 +21596,90 @@ func (p *ExportExptResultResponse) Field255DeepEqual(src *base.BaseResp) bool { return true } -type ListExptResultExportRecordRequest struct { - WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` - ExptID int64 `thrift:"expt_id,2,required" frugal:"2,required,i64" json:"expt_id" path:"expt_id,required" ` - PageNumber *int32 `thrift:"page_number,3,optional" frugal:"3,optional,i32" form:"page_number" json:"page_number,omitempty"` - PageSize *int32 `thrift:"page_size,4,optional" frugal:"4,optional,i32" form:"page_size" json:"page_size,omitempty"` - Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` +type CheckExperimentTemplateNameRequest struct { + WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` + Name string `thrift:"name,2,required" frugal:"2,required,string" json:"name" form:"name,required" ` + TemplateID *int64 `thrift:"template_id,3,optional" frugal:"3,optional,i64" json:"template_id" form:"template_id" ` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func NewListExptResultExportRecordRequest() *ListExptResultExportRecordRequest { - return &ListExptResultExportRecordRequest{} +func NewCheckExperimentTemplateNameRequest() *CheckExperimentTemplateNameRequest { + return &CheckExperimentTemplateNameRequest{} } -func (p *ListExptResultExportRecordRequest) InitDefault() { +func (p *CheckExperimentTemplateNameRequest) InitDefault() { } -func (p *ListExptResultExportRecordRequest) GetWorkspaceID() (v int64) { +func (p *CheckExperimentTemplateNameRequest) GetWorkspaceID() (v int64) { if p != nil { return p.WorkspaceID } return } -func (p *ListExptResultExportRecordRequest) GetExptID() (v int64) { +func (p *CheckExperimentTemplateNameRequest) GetName() (v string) { if p != nil { - return p.ExptID + return p.Name } return } -var ListExptResultExportRecordRequest_PageNumber_DEFAULT int32 - -func (p *ListExptResultExportRecordRequest) GetPageNumber() (v int32) { - if p == nil { - return - } - if !p.IsSetPageNumber() { - return ListExptResultExportRecordRequest_PageNumber_DEFAULT - } - return *p.PageNumber -} - -var ListExptResultExportRecordRequest_PageSize_DEFAULT int32 - -func (p *ListExptResultExportRecordRequest) GetPageSize() (v int32) { - if p == nil { - return - } - if !p.IsSetPageSize() { - return ListExptResultExportRecordRequest_PageSize_DEFAULT - } - return *p.PageSize -} - -var ListExptResultExportRecordRequest_Session_DEFAULT *common.Session +var CheckExperimentTemplateNameRequest_TemplateID_DEFAULT int64 -func (p *ListExptResultExportRecordRequest) GetSession() (v *common.Session) { +func (p *CheckExperimentTemplateNameRequest) GetTemplateID() (v int64) { if p == nil { return } - if !p.IsSetSession() { - return ListExptResultExportRecordRequest_Session_DEFAULT + if !p.IsSetTemplateID() { + return CheckExperimentTemplateNameRequest_TemplateID_DEFAULT } - return p.Session + return *p.TemplateID } -var ListExptResultExportRecordRequest_Base_DEFAULT *base.Base +var CheckExperimentTemplateNameRequest_Base_DEFAULT *base.Base -func (p *ListExptResultExportRecordRequest) GetBase() (v *base.Base) { +func (p *CheckExperimentTemplateNameRequest) GetBase() (v *base.Base) { if p == nil { return } if !p.IsSetBase() { - return ListExptResultExportRecordRequest_Base_DEFAULT + return CheckExperimentTemplateNameRequest_Base_DEFAULT } return p.Base } -func (p *ListExptResultExportRecordRequest) SetWorkspaceID(val int64) { +func (p *CheckExperimentTemplateNameRequest) SetWorkspaceID(val int64) { p.WorkspaceID = val } -func (p *ListExptResultExportRecordRequest) SetExptID(val int64) { - p.ExptID = val -} -func (p *ListExptResultExportRecordRequest) SetPageNumber(val *int32) { - p.PageNumber = val -} -func (p *ListExptResultExportRecordRequest) SetPageSize(val *int32) { - p.PageSize = val +func (p *CheckExperimentTemplateNameRequest) SetName(val string) { + p.Name = val } -func (p *ListExptResultExportRecordRequest) SetSession(val *common.Session) { - p.Session = val +func (p *CheckExperimentTemplateNameRequest) SetTemplateID(val *int64) { + p.TemplateID = val } -func (p *ListExptResultExportRecordRequest) SetBase(val *base.Base) { +func (p *CheckExperimentTemplateNameRequest) SetBase(val *base.Base) { p.Base = val } -var fieldIDToName_ListExptResultExportRecordRequest = map[int16]string{ +var fieldIDToName_CheckExperimentTemplateNameRequest = map[int16]string{ 1: "workspace_id", - 2: "expt_id", - 3: "page_number", - 4: "page_size", - 200: "session", + 2: "name", + 3: "template_id", 255: "Base", } -func (p *ListExptResultExportRecordRequest) IsSetPageNumber() bool { - return p.PageNumber != nil -} - -func (p *ListExptResultExportRecordRequest) IsSetPageSize() bool { - return p.PageSize != nil -} - -func (p *ListExptResultExportRecordRequest) IsSetSession() bool { - return p.Session != nil +func (p *CheckExperimentTemplateNameRequest) IsSetTemplateID() bool { + return p.TemplateID != nil } -func (p *ListExptResultExportRecordRequest) IsSetBase() bool { +func (p *CheckExperimentTemplateNameRequest) IsSetBase() bool { return p.Base != nil } -func (p *ListExptResultExportRecordRequest) Read(iprot thrift.TProtocol) (err error) { +func (p *CheckExperimentTemplateNameRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 var issetWorkspaceID bool = false - var issetExptID bool = false + var issetName bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -21031,38 +21705,22 @@ func (p *ListExptResultExportRecordRequest) Read(iprot thrift.TProtocol) (err er goto SkipFieldError } case 2: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.STRING { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } - issetExptID = true + issetName = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } case 3: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.I64 { if err = p.ReadField3(iprot); err != nil { goto ReadFieldError } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 4: - if fieldTypeId == thrift.I32 { - if err = p.ReadField4(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 200: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField200(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 { @@ -21089,7 +21747,7 @@ func (p *ListExptResultExportRecordRequest) Read(iprot thrift.TProtocol) (err er goto RequiredFieldNotSetError } - if !issetExptID { + if !issetName { fieldId = 2 goto RequiredFieldNotSetError } @@ -21099,7 +21757,7 @@ ReadStructBeginError: 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_ListExptResultExportRecordRequest[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_CheckExperimentTemplateNameRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -21108,10 +21766,10 @@ ReadFieldEndError: 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_ListExptResultExportRecordRequest[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_CheckExperimentTemplateNameRequest[fieldId])) } -func (p *ListExptResultExportRecordRequest) ReadField1(iprot thrift.TProtocol) error { +func (p *CheckExperimentTemplateNameRequest) ReadField1(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -21122,48 +21780,29 @@ func (p *ListExptResultExportRecordRequest) ReadField1(iprot thrift.TProtocol) e p.WorkspaceID = _field return nil } -func (p *ListExptResultExportRecordRequest) ReadField2(iprot thrift.TProtocol) error { +func (p *CheckExperimentTemplateNameRequest) ReadField2(iprot thrift.TProtocol) error { - var _field int64 - if v, err := iprot.ReadI64(); err != nil { + var _field string + if v, err := iprot.ReadString(); err != nil { return err } else { _field = v } - p.ExptID = _field - return nil -} -func (p *ListExptResultExportRecordRequest) ReadField3(iprot thrift.TProtocol) error { - - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { - return err - } else { - _field = &v - } - p.PageNumber = _field + p.Name = _field return nil } -func (p *ListExptResultExportRecordRequest) ReadField4(iprot thrift.TProtocol) error { +func (p *CheckExperimentTemplateNameRequest) ReadField3(iprot thrift.TProtocol) error { - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { return err } else { _field = &v } - p.PageSize = _field - return nil -} -func (p *ListExptResultExportRecordRequest) ReadField200(iprot thrift.TProtocol) error { - _field := common.NewSession() - if err := _field.Read(iprot); err != nil { - return err - } - p.Session = _field + p.TemplateID = _field return nil } -func (p *ListExptResultExportRecordRequest) ReadField255(iprot thrift.TProtocol) error { +func (p *CheckExperimentTemplateNameRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err @@ -21172,9 +21811,9 @@ func (p *ListExptResultExportRecordRequest) ReadField255(iprot thrift.TProtocol) return nil } -func (p *ListExptResultExportRecordRequest) Write(oprot thrift.TProtocol) (err error) { +func (p *CheckExperimentTemplateNameRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListExptResultExportRecordRequest"); err != nil { + if err = oprot.WriteStructBegin("CheckExperimentTemplateNameRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -21190,14 +21829,6 @@ func (p *ListExptResultExportRecordRequest) Write(oprot thrift.TProtocol) (err e fieldId = 3 goto WriteFieldError } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 - goto WriteFieldError - } - if err = p.writeField200(oprot); err != nil { - fieldId = 200 - goto WriteFieldError - } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -21220,7 +21851,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ListExptResultExportRecordRequest) writeField1(oprot thrift.TProtocol) (err error) { +func (p *CheckExperimentTemplateNameRequest) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { goto WriteFieldBeginError } @@ -21236,11 +21867,11 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ListExptResultExportRecordRequest) writeField2(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("expt_id", thrift.I64, 2); err != nil { +func (p *CheckExperimentTemplateNameRequest) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("name", thrift.STRING, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI64(p.ExptID); err != nil { + if err := oprot.WriteString(p.Name); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -21252,12 +21883,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *ListExptResultExportRecordRequest) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetPageNumber() { - if err = oprot.WriteFieldBegin("page_number", thrift.I32, 3); err != nil { +func (p *CheckExperimentTemplateNameRequest) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetTemplateID() { + if err = oprot.WriteFieldBegin("template_id", thrift.I64, 3); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI32(*p.PageNumber); err != nil { + if err := oprot.WriteI64(*p.TemplateID); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -21270,43 +21901,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *ListExptResultExportRecordRequest) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetPageSize() { - if err = oprot.WriteFieldBegin("page_size", thrift.I32, 4); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI32(*p.PageSize); 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 *ListExptResultExportRecordRequest) writeField200(oprot thrift.TProtocol) (err error) { - if p.IsSetSession() { - if err = oprot.WriteFieldBegin("session", thrift.STRUCT, 200); err != nil { - goto WriteFieldBeginError - } - if err := p.Session.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 200 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 200 end error: ", p), err) -} -func (p *ListExptResultExportRecordRequest) writeField255(oprot thrift.TProtocol) (err error) { +func (p *CheckExperimentTemplateNameRequest) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -21325,15 +21920,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *ListExptResultExportRecordRequest) String() string { +func (p *CheckExperimentTemplateNameRequest) String() string { if p == nil { return "" } - return fmt.Sprintf("ListExptResultExportRecordRequest(%+v)", *p) + return fmt.Sprintf("CheckExperimentTemplateNameRequest(%+v)", *p) } -func (p *ListExptResultExportRecordRequest) DeepEqual(ano *ListExptResultExportRecordRequest) bool { +func (p *CheckExperimentTemplateNameRequest) DeepEqual(ano *CheckExperimentTemplateNameRequest) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -21342,16 +21937,10 @@ func (p *ListExptResultExportRecordRequest) DeepEqual(ano *ListExptResultExportR if !p.Field1DeepEqual(ano.WorkspaceID) { return false } - if !p.Field2DeepEqual(ano.ExptID) { + if !p.Field2DeepEqual(ano.Name) { return false } - if !p.Field3DeepEqual(ano.PageNumber) { - return false - } - if !p.Field4DeepEqual(ano.PageSize) { - return false - } - if !p.Field200DeepEqual(ano.Session) { + if !p.Field3DeepEqual(ano.TemplateID) { return false } if !p.Field255DeepEqual(ano.Base) { @@ -21360,52 +21949,33 @@ func (p *ListExptResultExportRecordRequest) DeepEqual(ano *ListExptResultExportR return true } -func (p *ListExptResultExportRecordRequest) Field1DeepEqual(src int64) bool { +func (p *CheckExperimentTemplateNameRequest) Field1DeepEqual(src int64) bool { if p.WorkspaceID != src { return false } return true } -func (p *ListExptResultExportRecordRequest) Field2DeepEqual(src int64) bool { - - if p.ExptID != src { - return false - } - return true -} -func (p *ListExptResultExportRecordRequest) Field3DeepEqual(src *int32) bool { +func (p *CheckExperimentTemplateNameRequest) Field2DeepEqual(src string) bool { - if p.PageNumber == src { - return true - } else if p.PageNumber == nil || src == nil { - return false - } - if *p.PageNumber != *src { + if strings.Compare(p.Name, src) != 0 { return false } return true } -func (p *ListExptResultExportRecordRequest) Field4DeepEqual(src *int32) bool { +func (p *CheckExperimentTemplateNameRequest) Field3DeepEqual(src *int64) bool { - if p.PageSize == src { + if p.TemplateID == src { return true - } else if p.PageSize == nil || src == nil { + } else if p.TemplateID == nil || src == nil { return false } - if *p.PageSize != *src { - return false - } - return true -} -func (p *ListExptResultExportRecordRequest) Field200DeepEqual(src *common.Session) bool { - - if !p.Session.DeepEqual(src) { + if *p.TemplateID != *src { return false } return true } -func (p *ListExptResultExportRecordRequest) Field255DeepEqual(src *base.Base) bool { +func (p *CheckExperimentTemplateNameRequest) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { return false @@ -21413,77 +21983,64 @@ func (p *ListExptResultExportRecordRequest) Field255DeepEqual(src *base.Base) bo return true } -type ListExptResultExportRecordResponse struct { - ExptResultExportRecords []*expt.ExptResultExportRecord `thrift:"expt_result_export_records,1,required" frugal:"1,required,list" form:"expt_result_export_records,required" json:"expt_result_export_records,required" query:"expt_result_export_records,required"` - Total *int64 `thrift:"total,20,optional" frugal:"20,optional,i64" json:"total" form:"total" ` - BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` -} - -func NewListExptResultExportRecordResponse() *ListExptResultExportRecordResponse { - return &ListExptResultExportRecordResponse{} +type CheckExperimentTemplateNameResponse struct { + IsAvailable *bool `thrift:"is_available,1,optional" frugal:"1,optional,bool" form:"is_available" json:"is_available,omitempty"` + BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` } -func (p *ListExptResultExportRecordResponse) InitDefault() { +func NewCheckExperimentTemplateNameResponse() *CheckExperimentTemplateNameResponse { + return &CheckExperimentTemplateNameResponse{} } -func (p *ListExptResultExportRecordResponse) GetExptResultExportRecords() (v []*expt.ExptResultExportRecord) { - if p != nil { - return p.ExptResultExportRecords - } - return +func (p *CheckExperimentTemplateNameResponse) InitDefault() { } -var ListExptResultExportRecordResponse_Total_DEFAULT int64 +var CheckExperimentTemplateNameResponse_IsAvailable_DEFAULT bool -func (p *ListExptResultExportRecordResponse) GetTotal() (v int64) { +func (p *CheckExperimentTemplateNameResponse) GetIsAvailable() (v bool) { if p == nil { return } - if !p.IsSetTotal() { - return ListExptResultExportRecordResponse_Total_DEFAULT + if !p.IsSetIsAvailable() { + return CheckExperimentTemplateNameResponse_IsAvailable_DEFAULT } - return *p.Total + return *p.IsAvailable } -var ListExptResultExportRecordResponse_BaseResp_DEFAULT *base.BaseResp +var CheckExperimentTemplateNameResponse_BaseResp_DEFAULT *base.BaseResp -func (p *ListExptResultExportRecordResponse) GetBaseResp() (v *base.BaseResp) { +func (p *CheckExperimentTemplateNameResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } if !p.IsSetBaseResp() { - return ListExptResultExportRecordResponse_BaseResp_DEFAULT + return CheckExperimentTemplateNameResponse_BaseResp_DEFAULT } return p.BaseResp } -func (p *ListExptResultExportRecordResponse) SetExptResultExportRecords(val []*expt.ExptResultExportRecord) { - p.ExptResultExportRecords = val -} -func (p *ListExptResultExportRecordResponse) SetTotal(val *int64) { - p.Total = val +func (p *CheckExperimentTemplateNameResponse) SetIsAvailable(val *bool) { + p.IsAvailable = val } -func (p *ListExptResultExportRecordResponse) SetBaseResp(val *base.BaseResp) { +func (p *CheckExperimentTemplateNameResponse) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } -var fieldIDToName_ListExptResultExportRecordResponse = map[int16]string{ - 1: "expt_result_export_records", - 20: "total", +var fieldIDToName_CheckExperimentTemplateNameResponse = map[int16]string{ + 1: "is_available", 255: "BaseResp", } -func (p *ListExptResultExportRecordResponse) IsSetTotal() bool { - return p.Total != nil +func (p *CheckExperimentTemplateNameResponse) IsSetIsAvailable() bool { + return p.IsAvailable != nil } -func (p *ListExptResultExportRecordResponse) IsSetBaseResp() bool { +func (p *CheckExperimentTemplateNameResponse) IsSetBaseResp() bool { return p.BaseResp != nil } -func (p *ListExptResultExportRecordResponse) Read(iprot thrift.TProtocol) (err error) { +func (p *CheckExperimentTemplateNameResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetExptResultExportRecords bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -21500,19 +22057,10 @@ func (p *ListExptResultExportRecordResponse) Read(iprot thrift.TProtocol) (err e switch fieldId { case 1: - if fieldTypeId == thrift.LIST { + if fieldTypeId == thrift.BOOL { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } - issetExptResultExportRecords = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 20: - if fieldTypeId == thrift.I64 { - if err = p.ReadField20(iprot); err != nil { - goto ReadFieldError - } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -21537,17 +22085,13 @@ func (p *ListExptResultExportRecordResponse) Read(iprot thrift.TProtocol) (err e goto ReadStructEndError } - if !issetExptResultExportRecords { - 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_ListExptResultExportRecordResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_CheckExperimentTemplateNameResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -21555,45 +22099,20 @@ 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_ListExptResultExportRecordResponse[fieldId])) } -func (p *ListExptResultExportRecordResponse) ReadField1(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*expt.ExptResultExportRecord, 0, size) - values := make([]expt.ExptResultExportRecord, 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.ExptResultExportRecords = _field - return nil -} -func (p *ListExptResultExportRecordResponse) ReadField20(iprot thrift.TProtocol) error { +func (p *CheckExperimentTemplateNameResponse) ReadField1(iprot thrift.TProtocol) error { - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { + var _field *bool + if v, err := iprot.ReadBool(); err != nil { return err } else { _field = &v } - p.Total = _field + p.IsAvailable = _field return nil } -func (p *ListExptResultExportRecordResponse) ReadField255(iprot thrift.TProtocol) error { +func (p *CheckExperimentTemplateNameResponse) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err @@ -21602,9 +22121,9 @@ func (p *ListExptResultExportRecordResponse) ReadField255(iprot thrift.TProtocol return nil } -func (p *ListExptResultExportRecordResponse) Write(oprot thrift.TProtocol) (err error) { +func (p *CheckExperimentTemplateNameResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListExptResultExportRecordResponse"); err != nil { + if err = oprot.WriteStructBegin("CheckExperimentTemplateNameResponse"); err != nil { goto WriteStructBeginError } if p != nil { @@ -21612,10 +22131,6 @@ func (p *ListExptResultExportRecordResponse) Write(oprot thrift.TProtocol) (err fieldId = 1 goto WriteFieldError } - if err = p.writeField20(oprot); err != nil { - fieldId = 20 - goto WriteFieldError - } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -21638,36 +22153,12 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ListExptResultExportRecordResponse) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("expt_result_export_records", thrift.LIST, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.ExptResultExportRecords)); err != nil { - return err - } - for _, v := range p.ExptResultExportRecords { - 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 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *ListExptResultExportRecordResponse) writeField20(oprot thrift.TProtocol) (err error) { - if p.IsSetTotal() { - if err = oprot.WriteFieldBegin("total", thrift.I64, 20); err != nil { +func (p *CheckExperimentTemplateNameResponse) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetIsAvailable() { + if err = oprot.WriteFieldBegin("is_available", thrift.BOOL, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI64(*p.Total); err != nil { + if err := oprot.WriteBool(*p.IsAvailable); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -21676,11 +22167,11 @@ func (p *ListExptResultExportRecordResponse) writeField20(oprot thrift.TProtocol } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 20 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 20 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ListExptResultExportRecordResponse) writeField255(oprot thrift.TProtocol) (err error) { +func (p *CheckExperimentTemplateNameResponse) writeField255(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError } @@ -21697,24 +22188,21 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *ListExptResultExportRecordResponse) String() string { +func (p *CheckExperimentTemplateNameResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("ListExptResultExportRecordResponse(%+v)", *p) + return fmt.Sprintf("CheckExperimentTemplateNameResponse(%+v)", *p) } -func (p *ListExptResultExportRecordResponse) DeepEqual(ano *ListExptResultExportRecordResponse) bool { +func (p *CheckExperimentTemplateNameResponse) DeepEqual(ano *CheckExperimentTemplateNameResponse) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.ExptResultExportRecords) { - return false - } - if !p.Field20DeepEqual(ano.Total) { + if !p.Field1DeepEqual(ano.IsAvailable) { return false } if !p.Field255DeepEqual(ano.BaseResp) { @@ -21723,32 +22211,19 @@ func (p *ListExptResultExportRecordResponse) DeepEqual(ano *ListExptResultExport return true } -func (p *ListExptResultExportRecordResponse) Field1DeepEqual(src []*expt.ExptResultExportRecord) bool { - - if len(p.ExptResultExportRecords) != len(src) { - return false - } - for i, v := range p.ExptResultExportRecords { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } - return true -} -func (p *ListExptResultExportRecordResponse) Field20DeepEqual(src *int64) bool { +func (p *CheckExperimentTemplateNameResponse) Field1DeepEqual(src *bool) bool { - if p.Total == src { + if p.IsAvailable == src { return true - } else if p.Total == nil || src == nil { + } else if p.IsAvailable == nil || src == nil { return false } - if *p.Total != *src { + if *p.IsAvailable != *src { return false } return true } -func (p *ListExptResultExportRecordResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *CheckExperimentTemplateNameResponse) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { return false @@ -21756,103 +22231,127 @@ func (p *ListExptResultExportRecordResponse) Field255DeepEqual(src *base.BaseRes return true } -type GetExptResultExportRecordRequest struct { - WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` - ExptID int64 `thrift:"expt_id,2,required" frugal:"2,required,i64" json:"expt_id" path:"expt_id,required" ` - ExportID int64 `thrift:"export_id,4,required" frugal:"4,required,i64" json:"export_id" path:"export_id,required" ` - Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` +type UpsertExptTurnResultFilterRequest struct { + WorkspaceID *int64 `thrift:"workspace_id,1,optional" frugal:"1,optional,i64" form:"workspace_id" json:"workspace_id,omitempty" query:"workspace_id"` + ExperimentID *int64 `thrift:"experiment_id,2,optional" frugal:"2,optional,i64" form:"experiment_id" json:"experiment_id,omitempty" query:"experiment_id"` + ItemIds []int64 `thrift:"item_ids,3,optional" frugal:"3,optional,list" form:"item_ids" json:"item_ids,omitempty" query:"item_ids"` + FilterType *UpsertExptTurnResultFilterType `thrift:"filter_type,4,optional" frugal:"4,optional,string" form:"filter_type" json:"filter_type,omitempty" query:"filter_type"` + RetryTimes *int32 `thrift:"retry_times,5,optional" frugal:"5,optional,i32" form:"retry_times" json:"retry_times,omitempty" query:"retry_times"` } -func NewGetExptResultExportRecordRequest() *GetExptResultExportRecordRequest { - return &GetExptResultExportRecordRequest{} +func NewUpsertExptTurnResultFilterRequest() *UpsertExptTurnResultFilterRequest { + return &UpsertExptTurnResultFilterRequest{} } -func (p *GetExptResultExportRecordRequest) InitDefault() { +func (p *UpsertExptTurnResultFilterRequest) InitDefault() { } -func (p *GetExptResultExportRecordRequest) GetWorkspaceID() (v int64) { - if p != nil { - return p.WorkspaceID +var UpsertExptTurnResultFilterRequest_WorkspaceID_DEFAULT int64 + +func (p *UpsertExptTurnResultFilterRequest) GetWorkspaceID() (v int64) { + if p == nil { + return } - return + if !p.IsSetWorkspaceID() { + return UpsertExptTurnResultFilterRequest_WorkspaceID_DEFAULT + } + return *p.WorkspaceID } -func (p *GetExptResultExportRecordRequest) GetExptID() (v int64) { - if p != nil { - return p.ExptID +var UpsertExptTurnResultFilterRequest_ExperimentID_DEFAULT int64 + +func (p *UpsertExptTurnResultFilterRequest) GetExperimentID() (v int64) { + if p == nil { + return } - return + if !p.IsSetExperimentID() { + return UpsertExptTurnResultFilterRequest_ExperimentID_DEFAULT + } + return *p.ExperimentID } -func (p *GetExptResultExportRecordRequest) GetExportID() (v int64) { - if p != nil { - return p.ExportID +var UpsertExptTurnResultFilterRequest_ItemIds_DEFAULT []int64 + +func (p *UpsertExptTurnResultFilterRequest) GetItemIds() (v []int64) { + if p == nil { + return } - return + if !p.IsSetItemIds() { + return UpsertExptTurnResultFilterRequest_ItemIds_DEFAULT + } + return p.ItemIds } -var GetExptResultExportRecordRequest_Session_DEFAULT *common.Session +var UpsertExptTurnResultFilterRequest_FilterType_DEFAULT UpsertExptTurnResultFilterType -func (p *GetExptResultExportRecordRequest) GetSession() (v *common.Session) { +func (p *UpsertExptTurnResultFilterRequest) GetFilterType() (v UpsertExptTurnResultFilterType) { if p == nil { return } - if !p.IsSetSession() { - return GetExptResultExportRecordRequest_Session_DEFAULT + if !p.IsSetFilterType() { + return UpsertExptTurnResultFilterRequest_FilterType_DEFAULT } - return p.Session + return *p.FilterType } -var GetExptResultExportRecordRequest_Base_DEFAULT *base.Base +var UpsertExptTurnResultFilterRequest_RetryTimes_DEFAULT int32 -func (p *GetExptResultExportRecordRequest) GetBase() (v *base.Base) { +func (p *UpsertExptTurnResultFilterRequest) GetRetryTimes() (v int32) { if p == nil { return } - if !p.IsSetBase() { - return GetExptResultExportRecordRequest_Base_DEFAULT + if !p.IsSetRetryTimes() { + return UpsertExptTurnResultFilterRequest_RetryTimes_DEFAULT } - return p.Base + return *p.RetryTimes } -func (p *GetExptResultExportRecordRequest) SetWorkspaceID(val int64) { +func (p *UpsertExptTurnResultFilterRequest) SetWorkspaceID(val *int64) { p.WorkspaceID = val } -func (p *GetExptResultExportRecordRequest) SetExptID(val int64) { - p.ExptID = val +func (p *UpsertExptTurnResultFilterRequest) SetExperimentID(val *int64) { + p.ExperimentID = val } -func (p *GetExptResultExportRecordRequest) SetExportID(val int64) { - p.ExportID = val +func (p *UpsertExptTurnResultFilterRequest) SetItemIds(val []int64) { + p.ItemIds = val } -func (p *GetExptResultExportRecordRequest) SetSession(val *common.Session) { - p.Session = val +func (p *UpsertExptTurnResultFilterRequest) SetFilterType(val *UpsertExptTurnResultFilterType) { + p.FilterType = val } -func (p *GetExptResultExportRecordRequest) SetBase(val *base.Base) { - p.Base = val +func (p *UpsertExptTurnResultFilterRequest) SetRetryTimes(val *int32) { + p.RetryTimes = val } -var fieldIDToName_GetExptResultExportRecordRequest = map[int16]string{ - 1: "workspace_id", - 2: "expt_id", - 4: "export_id", - 200: "session", - 255: "Base", +var fieldIDToName_UpsertExptTurnResultFilterRequest = map[int16]string{ + 1: "workspace_id", + 2: "experiment_id", + 3: "item_ids", + 4: "filter_type", + 5: "retry_times", } -func (p *GetExptResultExportRecordRequest) IsSetSession() bool { - return p.Session != nil +func (p *UpsertExptTurnResultFilterRequest) IsSetWorkspaceID() bool { + return p.WorkspaceID != nil } -func (p *GetExptResultExportRecordRequest) IsSetBase() bool { - return p.Base != nil +func (p *UpsertExptTurnResultFilterRequest) IsSetExperimentID() bool { + return p.ExperimentID != nil } -func (p *GetExptResultExportRecordRequest) Read(iprot thrift.TProtocol) (err error) { +func (p *UpsertExptTurnResultFilterRequest) IsSetItemIds() bool { + return p.ItemIds != nil +} + +func (p *UpsertExptTurnResultFilterRequest) IsSetFilterType() bool { + return p.FilterType != nil +} + +func (p *UpsertExptTurnResultFilterRequest) IsSetRetryTimes() bool { + return p.RetryTimes != nil +} + +func (p *UpsertExptTurnResultFilterRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetWorkspaceID bool = false - var issetExptID bool = false - var issetExportID bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -21873,7 +22372,6 @@ func (p *GetExptResultExportRecordRequest) Read(iprot thrift.TProtocol) (err err if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } - issetWorkspaceID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -21882,30 +22380,28 @@ func (p *GetExptResultExportRecordRequest) Read(iprot thrift.TProtocol) (err err if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } - issetExptID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 4: - if fieldTypeId == thrift.I64 { - if err = p.ReadField4(iprot); err != nil { + case 3: + if fieldTypeId == thrift.LIST { + if err = p.ReadField3(iprot); err != nil { goto ReadFieldError } - issetExportID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 200: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField200(iprot); err != nil { + 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 255: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField255(iprot); err != nil { + case 5: + if fieldTypeId == thrift.I32 { + if err = p.ReadField5(iprot); err != nil { goto ReadFieldError } } else if err = iprot.Skip(fieldTypeId); err != nil { @@ -21924,27 +22420,13 @@ func (p *GetExptResultExportRecordRequest) Read(iprot thrift.TProtocol) (err err goto ReadStructEndError } - if !issetWorkspaceID { - fieldId = 1 - goto RequiredFieldNotSetError - } - - if !issetExptID { - fieldId = 2 - goto RequiredFieldNotSetError - } - - if !issetExportID { - fieldId = 4 - 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_GetExptResultExportRecordRequest[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UpsertExptTurnResultFilterRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -21952,63 +22434,79 @@ 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_GetExptResultExportRecordRequest[fieldId])) } -func (p *GetExptResultExportRecordRequest) ReadField1(iprot thrift.TProtocol) error { +func (p *UpsertExptTurnResultFilterRequest) ReadField1(iprot thrift.TProtocol) error { - var _field int64 + var _field *int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - _field = v + _field = &v } p.WorkspaceID = _field return nil } -func (p *GetExptResultExportRecordRequest) ReadField2(iprot thrift.TProtocol) error { +func (p *UpsertExptTurnResultFilterRequest) ReadField2(iprot thrift.TProtocol) error { - var _field int64 + var _field *int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - _field = v + _field = &v } - p.ExptID = _field + p.ExperimentID = _field return nil } -func (p *GetExptResultExportRecordRequest) ReadField4(iprot thrift.TProtocol) error { +func (p *UpsertExptTurnResultFilterRequest) ReadField3(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 _field int64 - if v, err := iprot.ReadI64(); err != nil { + 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 - } else { - _field = v } - p.ExportID = _field + p.ItemIds = _field return nil } -func (p *GetExptResultExportRecordRequest) ReadField200(iprot thrift.TProtocol) error { - _field := common.NewSession() - if err := _field.Read(iprot); err != nil { +func (p *UpsertExptTurnResultFilterRequest) ReadField4(iprot thrift.TProtocol) error { + + var _field *UpsertExptTurnResultFilterType + if v, err := iprot.ReadString(); err != nil { return err + } else { + _field = &v } - p.Session = _field + p.FilterType = _field return nil } -func (p *GetExptResultExportRecordRequest) ReadField255(iprot thrift.TProtocol) error { - _field := base.NewBase() - if err := _field.Read(iprot); err != nil { +func (p *UpsertExptTurnResultFilterRequest) ReadField5(iprot thrift.TProtocol) error { + + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { return err + } else { + _field = &v } - p.Base = _field + p.RetryTimes = _field return nil } -func (p *GetExptResultExportRecordRequest) Write(oprot thrift.TProtocol) (err error) { +func (p *UpsertExptTurnResultFilterRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("GetExptResultExportRecordRequest"); err != nil { + if err = oprot.WriteStructBegin("UpsertExptTurnResultFilterRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -22020,16 +22518,16 @@ func (p *GetExptResultExportRecordRequest) Write(oprot thrift.TProtocol) (err er fieldId = 2 goto WriteFieldError } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 + if err = p.writeField3(oprot); err != nil { + fieldId = 3 goto WriteFieldError } - if err = p.writeField200(oprot); err != nil { - fieldId = 200 + if err = p.writeField4(oprot); err != nil { + fieldId = 4 goto WriteFieldError } - if err = p.writeField255(oprot); err != nil { - fieldId = 255 + if err = p.writeField5(oprot); err != nil { + fieldId = 5 goto WriteFieldError } } @@ -22050,15 +22548,17 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *GetExptResultExportRecordRequest) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.WorkspaceID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError +func (p *UpsertExptTurnResultFilterRequest) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetWorkspaceID() { + if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.WorkspaceID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } return nil WriteFieldBeginError: @@ -22066,15 +22566,17 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *GetExptResultExportRecordRequest) writeField2(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("expt_id", thrift.I64, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.ExptID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError +func (p *UpsertExptTurnResultFilterRequest) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetExperimentID() { + if err = oprot.WriteFieldBegin("experiment_id", thrift.I64, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.ExperimentID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } return nil WriteFieldBeginError: @@ -22082,28 +22584,20 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *GetExptResultExportRecordRequest) writeField4(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("export_id", thrift.I64, 4); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.ExportID); 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 *GetExptResultExportRecordRequest) writeField200(oprot thrift.TProtocol) (err error) { - if p.IsSetSession() { - if err = oprot.WriteFieldBegin("session", thrift.STRUCT, 200); err != nil { +func (p *UpsertExptTurnResultFilterRequest) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetItemIds() { + if err = oprot.WriteFieldBegin("item_ids", thrift.LIST, 3); err != nil { goto WriteFieldBeginError } - if err := p.Session.Write(oprot); err != nil { + if err := oprot.WriteListBegin(thrift.I64, len(p.ItemIds)); err != nil { + return err + } + for _, v := range p.ItemIds { + if err := oprot.WriteI64(v); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -22112,16 +22606,16 @@ func (p *GetExptResultExportRecordRequest) writeField200(oprot thrift.TProtocol) } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 200 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 200 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *GetExptResultExportRecordRequest) writeField255(oprot thrift.TProtocol) (err error) { - if p.IsSetBase() { - if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { +func (p *UpsertExptTurnResultFilterRequest) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetFilterType() { + if err = oprot.WriteFieldBegin("filter_type", thrift.STRING, 4); err != nil { goto WriteFieldBeginError } - if err := p.Base.Write(oprot); err != nil { + if err := oprot.WriteString(*p.FilterType); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -22130,20 +22624,38 @@ func (p *GetExptResultExportRecordRequest) writeField255(oprot thrift.TProtocol) } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 255 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) +} +func (p *UpsertExptTurnResultFilterRequest) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetRetryTimes() { + if err = oprot.WriteFieldBegin("retry_times", thrift.I32, 5); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.RetryTimes); 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 *GetExptResultExportRecordRequest) String() string { +func (p *UpsertExptTurnResultFilterRequest) String() string { if p == nil { return "" } - return fmt.Sprintf("GetExptResultExportRecordRequest(%+v)", *p) + return fmt.Sprintf("UpsertExptTurnResultFilterRequest(%+v)", *p) } -func (p *GetExptResultExportRecordRequest) DeepEqual(ano *GetExptResultExportRecordRequest) bool { +func (p *UpsertExptTurnResultFilterRequest) DeepEqual(ano *UpsertExptTurnResultFilterRequest) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -22152,113 +22664,118 @@ func (p *GetExptResultExportRecordRequest) DeepEqual(ano *GetExptResultExportRec if !p.Field1DeepEqual(ano.WorkspaceID) { return false } - if !p.Field2DeepEqual(ano.ExptID) { + if !p.Field2DeepEqual(ano.ExperimentID) { return false } - if !p.Field4DeepEqual(ano.ExportID) { + if !p.Field3DeepEqual(ano.ItemIds) { return false } - if !p.Field200DeepEqual(ano.Session) { + if !p.Field4DeepEqual(ano.FilterType) { return false } - if !p.Field255DeepEqual(ano.Base) { + if !p.Field5DeepEqual(ano.RetryTimes) { return false } return true } -func (p *GetExptResultExportRecordRequest) Field1DeepEqual(src int64) bool { +func (p *UpsertExptTurnResultFilterRequest) Field1DeepEqual(src *int64) bool { - if p.WorkspaceID != src { + if p.WorkspaceID == src { + return true + } else if p.WorkspaceID == nil || src == nil { + return false + } + if *p.WorkspaceID != *src { return false } return true } -func (p *GetExptResultExportRecordRequest) Field2DeepEqual(src int64) bool { +func (p *UpsertExptTurnResultFilterRequest) Field2DeepEqual(src *int64) bool { - if p.ExptID != src { + if p.ExperimentID == src { + return true + } else if p.ExperimentID == nil || src == nil { + return false + } + if *p.ExperimentID != *src { return false } return true } -func (p *GetExptResultExportRecordRequest) Field4DeepEqual(src int64) bool { +func (p *UpsertExptTurnResultFilterRequest) Field3DeepEqual(src []int64) bool { - if p.ExportID != src { + if len(p.ItemIds) != len(src) { return false } + for i, v := range p.ItemIds { + _src := src[i] + if v != _src { + return false + } + } return true } -func (p *GetExptResultExportRecordRequest) Field200DeepEqual(src *common.Session) bool { +func (p *UpsertExptTurnResultFilterRequest) Field4DeepEqual(src *UpsertExptTurnResultFilterType) bool { - if !p.Session.DeepEqual(src) { + if p.FilterType == src { + return true + } else if p.FilterType == nil || src == nil { + return false + } + if strings.Compare(*p.FilterType, *src) != 0 { return false } return true } -func (p *GetExptResultExportRecordRequest) Field255DeepEqual(src *base.Base) bool { +func (p *UpsertExptTurnResultFilterRequest) Field5DeepEqual(src *int32) bool { - if !p.Base.DeepEqual(src) { + if p.RetryTimes == src { + return true + } else if p.RetryTimes == nil || src == nil { + return false + } + if *p.RetryTimes != *src { return false } return true } -type GetExptResultExportRecordResponse struct { - ExptResultExportRecord *expt.ExptResultExportRecord `thrift:"expt_result_export_record,1,optional" frugal:"1,optional,expt.ExptResultExportRecord" form:"expt_result_export_records" json:"expt_result_export_records,omitempty"` - BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` -} - -func NewGetExptResultExportRecordResponse() *GetExptResultExportRecordResponse { - return &GetExptResultExportRecordResponse{} +type UpsertExptTurnResultFilterResponse struct { + BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` } -func (p *GetExptResultExportRecordResponse) InitDefault() { +func NewUpsertExptTurnResultFilterResponse() *UpsertExptTurnResultFilterResponse { + return &UpsertExptTurnResultFilterResponse{} } -var GetExptResultExportRecordResponse_ExptResultExportRecord_DEFAULT *expt.ExptResultExportRecord - -func (p *GetExptResultExportRecordResponse) GetExptResultExportRecord() (v *expt.ExptResultExportRecord) { - if p == nil { - return - } - if !p.IsSetExptResultExportRecord() { - return GetExptResultExportRecordResponse_ExptResultExportRecord_DEFAULT - } - return p.ExptResultExportRecord +func (p *UpsertExptTurnResultFilterResponse) InitDefault() { } -var GetExptResultExportRecordResponse_BaseResp_DEFAULT *base.BaseResp +var UpsertExptTurnResultFilterResponse_BaseResp_DEFAULT *base.BaseResp -func (p *GetExptResultExportRecordResponse) GetBaseResp() (v *base.BaseResp) { +func (p *UpsertExptTurnResultFilterResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } if !p.IsSetBaseResp() { - return GetExptResultExportRecordResponse_BaseResp_DEFAULT + return UpsertExptTurnResultFilterResponse_BaseResp_DEFAULT } return p.BaseResp } -func (p *GetExptResultExportRecordResponse) SetExptResultExportRecord(val *expt.ExptResultExportRecord) { - p.ExptResultExportRecord = val -} -func (p *GetExptResultExportRecordResponse) SetBaseResp(val *base.BaseResp) { +func (p *UpsertExptTurnResultFilterResponse) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } -var fieldIDToName_GetExptResultExportRecordResponse = map[int16]string{ - 1: "expt_result_export_record", +var fieldIDToName_UpsertExptTurnResultFilterResponse = map[int16]string{ 255: "BaseResp", } -func (p *GetExptResultExportRecordResponse) IsSetExptResultExportRecord() bool { - return p.ExptResultExportRecord != nil -} - -func (p *GetExptResultExportRecordResponse) IsSetBaseResp() bool { +func (p *UpsertExptTurnResultFilterResponse) IsSetBaseResp() bool { return p.BaseResp != nil } -func (p *GetExptResultExportRecordResponse) Read(iprot thrift.TProtocol) (err error) { +func (p *UpsertExptTurnResultFilterResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -22276,14 +22793,6 @@ func (p *GetExptResultExportRecordResponse) Read(iprot thrift.TProtocol) (err er } switch fieldId { - case 1: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField1(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 { @@ -22311,7 +22820,7 @@ ReadStructBeginError: 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_GetExptResultExportRecordResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UpsertExptTurnResultFilterResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -22321,15 +22830,7 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *GetExptResultExportRecordResponse) ReadField1(iprot thrift.TProtocol) error { - _field := expt.NewExptResultExportRecord() - if err := _field.Read(iprot); err != nil { - return err - } - p.ExptResultExportRecord = _field - return nil -} -func (p *GetExptResultExportRecordResponse) ReadField255(iprot thrift.TProtocol) error { +func (p *UpsertExptTurnResultFilterResponse) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err @@ -22338,16 +22839,12 @@ func (p *GetExptResultExportRecordResponse) ReadField255(iprot thrift.TProtocol) return nil } -func (p *GetExptResultExportRecordResponse) Write(oprot thrift.TProtocol) (err error) { +func (p *UpsertExptTurnResultFilterResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("GetExptResultExportRecordResponse"); err != nil { + if err = oprot.WriteStructBegin("UpsertExptTurnResultFilterResponse"); err != nil { goto WriteStructBeginError } if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -22370,25 +22867,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *GetExptResultExportRecordResponse) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetExptResultExportRecord() { - if err = oprot.WriteFieldBegin("expt_result_export_record", thrift.STRUCT, 1); err != nil { - goto WriteFieldBeginError - } - if err := p.ExptResultExportRecord.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 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *GetExptResultExportRecordResponse) writeField255(oprot thrift.TProtocol) (err error) { +func (p *UpsertExptTurnResultFilterResponse) writeField255(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError } @@ -22405,37 +22884,27 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *GetExptResultExportRecordResponse) String() string { +func (p *UpsertExptTurnResultFilterResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("GetExptResultExportRecordResponse(%+v)", *p) + return fmt.Sprintf("UpsertExptTurnResultFilterResponse(%+v)", *p) } -func (p *GetExptResultExportRecordResponse) DeepEqual(ano *GetExptResultExportRecordResponse) bool { +func (p *UpsertExptTurnResultFilterResponse) DeepEqual(ano *UpsertExptTurnResultFilterResponse) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.ExptResultExportRecord) { - return false - } if !p.Field255DeepEqual(ano.BaseResp) { return false } return true } -func (p *GetExptResultExportRecordResponse) Field1DeepEqual(src *expt.ExptResultExportRecord) bool { - - if !p.ExptResultExportRecord.DeepEqual(src) { - return false - } - return true -} -func (p *GetExptResultExportRecordResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *UpsertExptTurnResultFilterResponse) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { return false @@ -22443,103 +22912,111 @@ func (p *GetExptResultExportRecordResponse) Field255DeepEqual(src *base.BaseResp return true } -type GetExptInsightAnalysisRecordRequest struct { - WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` - ExptID int64 `thrift:"expt_id,2,required" frugal:"2,required,i64" json:"expt_id" path:"expt_id,required" ` - InsightAnalysisRecordID int64 `thrift:"insight_analysis_record_id,3,required" frugal:"3,required,i64" json:"insight_analysis_record_id" path:"insight_analysis_record_id,required" ` - Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` +type AssociateAnnotationTagReq struct { + WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` + ExptID int64 `thrift:"expt_id,2,required" frugal:"2,required,i64" json:"expt_id" path:"expt_id,required" ` + TagKeyID *int64 `thrift:"tag_key_id,3,optional" frugal:"3,optional,i64" json:"tag_key_id" form:"tag_key_id" ` + Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func NewGetExptInsightAnalysisRecordRequest() *GetExptInsightAnalysisRecordRequest { - return &GetExptInsightAnalysisRecordRequest{} +func NewAssociateAnnotationTagReq() *AssociateAnnotationTagReq { + return &AssociateAnnotationTagReq{} } -func (p *GetExptInsightAnalysisRecordRequest) InitDefault() { +func (p *AssociateAnnotationTagReq) InitDefault() { } -func (p *GetExptInsightAnalysisRecordRequest) GetWorkspaceID() (v int64) { +func (p *AssociateAnnotationTagReq) GetWorkspaceID() (v int64) { if p != nil { return p.WorkspaceID } return } -func (p *GetExptInsightAnalysisRecordRequest) GetExptID() (v int64) { +func (p *AssociateAnnotationTagReq) GetExptID() (v int64) { if p != nil { return p.ExptID } return } -func (p *GetExptInsightAnalysisRecordRequest) GetInsightAnalysisRecordID() (v int64) { - if p != nil { - return p.InsightAnalysisRecordID +var AssociateAnnotationTagReq_TagKeyID_DEFAULT int64 + +func (p *AssociateAnnotationTagReq) GetTagKeyID() (v int64) { + if p == nil { + return } - return + if !p.IsSetTagKeyID() { + return AssociateAnnotationTagReq_TagKeyID_DEFAULT + } + return *p.TagKeyID } -var GetExptInsightAnalysisRecordRequest_Session_DEFAULT *common.Session +var AssociateAnnotationTagReq_Session_DEFAULT *common.Session -func (p *GetExptInsightAnalysisRecordRequest) GetSession() (v *common.Session) { +func (p *AssociateAnnotationTagReq) GetSession() (v *common.Session) { if p == nil { return } if !p.IsSetSession() { - return GetExptInsightAnalysisRecordRequest_Session_DEFAULT + return AssociateAnnotationTagReq_Session_DEFAULT } return p.Session } -var GetExptInsightAnalysisRecordRequest_Base_DEFAULT *base.Base +var AssociateAnnotationTagReq_Base_DEFAULT *base.Base -func (p *GetExptInsightAnalysisRecordRequest) GetBase() (v *base.Base) { +func (p *AssociateAnnotationTagReq) GetBase() (v *base.Base) { if p == nil { return } if !p.IsSetBase() { - return GetExptInsightAnalysisRecordRequest_Base_DEFAULT + return AssociateAnnotationTagReq_Base_DEFAULT } return p.Base } -func (p *GetExptInsightAnalysisRecordRequest) SetWorkspaceID(val int64) { +func (p *AssociateAnnotationTagReq) SetWorkspaceID(val int64) { p.WorkspaceID = val } -func (p *GetExptInsightAnalysisRecordRequest) SetExptID(val int64) { +func (p *AssociateAnnotationTagReq) SetExptID(val int64) { p.ExptID = val } -func (p *GetExptInsightAnalysisRecordRequest) SetInsightAnalysisRecordID(val int64) { - p.InsightAnalysisRecordID = val +func (p *AssociateAnnotationTagReq) SetTagKeyID(val *int64) { + p.TagKeyID = val } -func (p *GetExptInsightAnalysisRecordRequest) SetSession(val *common.Session) { +func (p *AssociateAnnotationTagReq) SetSession(val *common.Session) { p.Session = val } -func (p *GetExptInsightAnalysisRecordRequest) SetBase(val *base.Base) { +func (p *AssociateAnnotationTagReq) SetBase(val *base.Base) { p.Base = val } -var fieldIDToName_GetExptInsightAnalysisRecordRequest = map[int16]string{ +var fieldIDToName_AssociateAnnotationTagReq = map[int16]string{ 1: "workspace_id", 2: "expt_id", - 3: "insight_analysis_record_id", + 3: "tag_key_id", 200: "session", 255: "Base", } -func (p *GetExptInsightAnalysisRecordRequest) IsSetSession() bool { +func (p *AssociateAnnotationTagReq) IsSetTagKeyID() bool { + return p.TagKeyID != nil +} + +func (p *AssociateAnnotationTagReq) IsSetSession() bool { return p.Session != nil } -func (p *GetExptInsightAnalysisRecordRequest) IsSetBase() bool { +func (p *AssociateAnnotationTagReq) IsSetBase() bool { return p.Base != nil } -func (p *GetExptInsightAnalysisRecordRequest) Read(iprot thrift.TProtocol) (err error) { +func (p *AssociateAnnotationTagReq) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 var issetWorkspaceID bool = false var issetExptID bool = false - var issetInsightAnalysisRecordID bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -22578,7 +23055,6 @@ func (p *GetExptInsightAnalysisRecordRequest) Read(iprot thrift.TProtocol) (err if err = p.ReadField3(iprot); err != nil { goto ReadFieldError } - issetInsightAnalysisRecordID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -22620,18 +23096,13 @@ func (p *GetExptInsightAnalysisRecordRequest) Read(iprot thrift.TProtocol) (err fieldId = 2 goto RequiredFieldNotSetError } - - if !issetInsightAnalysisRecordID { - 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_GetExptInsightAnalysisRecordRequest[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_AssociateAnnotationTagReq[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -22640,10 +23111,10 @@ ReadFieldEndError: 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_GetExptInsightAnalysisRecordRequest[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_AssociateAnnotationTagReq[fieldId])) } -func (p *GetExptInsightAnalysisRecordRequest) ReadField1(iprot thrift.TProtocol) error { +func (p *AssociateAnnotationTagReq) ReadField1(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -22654,7 +23125,7 @@ func (p *GetExptInsightAnalysisRecordRequest) ReadField1(iprot thrift.TProtocol) p.WorkspaceID = _field return nil } -func (p *GetExptInsightAnalysisRecordRequest) ReadField2(iprot thrift.TProtocol) error { +func (p *AssociateAnnotationTagReq) ReadField2(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -22665,18 +23136,18 @@ func (p *GetExptInsightAnalysisRecordRequest) ReadField2(iprot thrift.TProtocol) p.ExptID = _field return nil } -func (p *GetExptInsightAnalysisRecordRequest) ReadField3(iprot thrift.TProtocol) error { +func (p *AssociateAnnotationTagReq) ReadField3(iprot thrift.TProtocol) error { - var _field int64 + var _field *int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - _field = v + _field = &v } - p.InsightAnalysisRecordID = _field + p.TagKeyID = _field return nil } -func (p *GetExptInsightAnalysisRecordRequest) ReadField200(iprot thrift.TProtocol) error { +func (p *AssociateAnnotationTagReq) ReadField200(iprot thrift.TProtocol) error { _field := common.NewSession() if err := _field.Read(iprot); err != nil { return err @@ -22684,7 +23155,7 @@ func (p *GetExptInsightAnalysisRecordRequest) ReadField200(iprot thrift.TProtoco p.Session = _field return nil } -func (p *GetExptInsightAnalysisRecordRequest) ReadField255(iprot thrift.TProtocol) error { +func (p *AssociateAnnotationTagReq) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err @@ -22693,9 +23164,9 @@ func (p *GetExptInsightAnalysisRecordRequest) ReadField255(iprot thrift.TProtoco return nil } -func (p *GetExptInsightAnalysisRecordRequest) Write(oprot thrift.TProtocol) (err error) { +func (p *AssociateAnnotationTagReq) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("GetExptInsightAnalysisRecordRequest"); err != nil { + if err = oprot.WriteStructBegin("AssociateAnnotationTagReq"); err != nil { goto WriteStructBeginError } if p != nil { @@ -22737,7 +23208,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *GetExptInsightAnalysisRecordRequest) writeField1(oprot thrift.TProtocol) (err error) { +func (p *AssociateAnnotationTagReq) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { goto WriteFieldBeginError } @@ -22753,7 +23224,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *GetExptInsightAnalysisRecordRequest) writeField2(oprot thrift.TProtocol) (err error) { +func (p *AssociateAnnotationTagReq) writeField2(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("expt_id", thrift.I64, 2); err != nil { goto WriteFieldBeginError } @@ -22769,15 +23240,17 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *GetExptInsightAnalysisRecordRequest) writeField3(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("insight_analysis_record_id", thrift.I64, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.InsightAnalysisRecordID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError +func (p *AssociateAnnotationTagReq) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetTagKeyID() { + if err = oprot.WriteFieldBegin("tag_key_id", thrift.I64, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.TagKeyID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } return nil WriteFieldBeginError: @@ -22785,7 +23258,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *GetExptInsightAnalysisRecordRequest) writeField200(oprot thrift.TProtocol) (err error) { +func (p *AssociateAnnotationTagReq) writeField200(oprot thrift.TProtocol) (err error) { if p.IsSetSession() { if err = oprot.WriteFieldBegin("session", thrift.STRUCT, 200); err != nil { goto WriteFieldBeginError @@ -22803,7 +23276,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 200 end error: ", p), err) } -func (p *GetExptInsightAnalysisRecordRequest) writeField255(oprot thrift.TProtocol) (err error) { +func (p *AssociateAnnotationTagReq) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -22822,15 +23295,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *GetExptInsightAnalysisRecordRequest) String() string { +func (p *AssociateAnnotationTagReq) String() string { if p == nil { return "" } - return fmt.Sprintf("GetExptInsightAnalysisRecordRequest(%+v)", *p) + return fmt.Sprintf("AssociateAnnotationTagReq(%+v)", *p) } -func (p *GetExptInsightAnalysisRecordRequest) DeepEqual(ano *GetExptInsightAnalysisRecordRequest) bool { +func (p *AssociateAnnotationTagReq) DeepEqual(ano *AssociateAnnotationTagReq) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -22842,7 +23315,7 @@ func (p *GetExptInsightAnalysisRecordRequest) DeepEqual(ano *GetExptInsightAnaly if !p.Field2DeepEqual(ano.ExptID) { return false } - if !p.Field3DeepEqual(ano.InsightAnalysisRecordID) { + if !p.Field3DeepEqual(ano.TagKeyID) { return false } if !p.Field200DeepEqual(ano.Session) { @@ -22854,35 +23327,40 @@ func (p *GetExptInsightAnalysisRecordRequest) DeepEqual(ano *GetExptInsightAnaly return true } -func (p *GetExptInsightAnalysisRecordRequest) Field1DeepEqual(src int64) bool { +func (p *AssociateAnnotationTagReq) Field1DeepEqual(src int64) bool { if p.WorkspaceID != src { return false } return true } -func (p *GetExptInsightAnalysisRecordRequest) Field2DeepEqual(src int64) bool { +func (p *AssociateAnnotationTagReq) Field2DeepEqual(src int64) bool { if p.ExptID != src { return false } return true } -func (p *GetExptInsightAnalysisRecordRequest) Field3DeepEqual(src int64) bool { +func (p *AssociateAnnotationTagReq) Field3DeepEqual(src *int64) bool { - if p.InsightAnalysisRecordID != src { + if p.TagKeyID == src { + return true + } else if p.TagKeyID == nil || src == nil { + return false + } + if *p.TagKeyID != *src { return false } return true } -func (p *GetExptInsightAnalysisRecordRequest) Field200DeepEqual(src *common.Session) bool { +func (p *AssociateAnnotationTagReq) Field200DeepEqual(src *common.Session) bool { if !p.Session.DeepEqual(src) { return false } return true } -func (p *GetExptInsightAnalysisRecordRequest) Field255DeepEqual(src *base.Base) bool { +func (p *AssociateAnnotationTagReq) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { return false @@ -22890,62 +23368,41 @@ func (p *GetExptInsightAnalysisRecordRequest) Field255DeepEqual(src *base.Base) return true } -type GetExptInsightAnalysisRecordResponse struct { - ExptInsightAnalysisRecord *expt.ExptInsightAnalysisRecord `thrift:"expt_insight_analysis_record,1,optional" frugal:"1,optional,expt.ExptInsightAnalysisRecord" form:"expt_insight_analysis_record" json:"expt_insight_analysis_record,omitempty" query:"expt_insight_analysis_record"` - BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` -} - -func NewGetExptInsightAnalysisRecordResponse() *GetExptInsightAnalysisRecordResponse { - return &GetExptInsightAnalysisRecordResponse{} +type AssociateAnnotationTagResp struct { + BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` } -func (p *GetExptInsightAnalysisRecordResponse) InitDefault() { +func NewAssociateAnnotationTagResp() *AssociateAnnotationTagResp { + return &AssociateAnnotationTagResp{} } -var GetExptInsightAnalysisRecordResponse_ExptInsightAnalysisRecord_DEFAULT *expt.ExptInsightAnalysisRecord - -func (p *GetExptInsightAnalysisRecordResponse) GetExptInsightAnalysisRecord() (v *expt.ExptInsightAnalysisRecord) { - if p == nil { - return - } - if !p.IsSetExptInsightAnalysisRecord() { - return GetExptInsightAnalysisRecordResponse_ExptInsightAnalysisRecord_DEFAULT - } - return p.ExptInsightAnalysisRecord +func (p *AssociateAnnotationTagResp) InitDefault() { } -var GetExptInsightAnalysisRecordResponse_BaseResp_DEFAULT *base.BaseResp +var AssociateAnnotationTagResp_BaseResp_DEFAULT *base.BaseResp -func (p *GetExptInsightAnalysisRecordResponse) GetBaseResp() (v *base.BaseResp) { +func (p *AssociateAnnotationTagResp) GetBaseResp() (v *base.BaseResp) { if p == nil { return } if !p.IsSetBaseResp() { - return GetExptInsightAnalysisRecordResponse_BaseResp_DEFAULT + return AssociateAnnotationTagResp_BaseResp_DEFAULT } return p.BaseResp } -func (p *GetExptInsightAnalysisRecordResponse) SetExptInsightAnalysisRecord(val *expt.ExptInsightAnalysisRecord) { - p.ExptInsightAnalysisRecord = val -} -func (p *GetExptInsightAnalysisRecordResponse) SetBaseResp(val *base.BaseResp) { +func (p *AssociateAnnotationTagResp) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } -var fieldIDToName_GetExptInsightAnalysisRecordResponse = map[int16]string{ - 1: "expt_insight_analysis_record", +var fieldIDToName_AssociateAnnotationTagResp = map[int16]string{ 255: "BaseResp", } -func (p *GetExptInsightAnalysisRecordResponse) IsSetExptInsightAnalysisRecord() bool { - return p.ExptInsightAnalysisRecord != nil -} - -func (p *GetExptInsightAnalysisRecordResponse) IsSetBaseResp() bool { +func (p *AssociateAnnotationTagResp) IsSetBaseResp() bool { return p.BaseResp != nil } -func (p *GetExptInsightAnalysisRecordResponse) Read(iprot thrift.TProtocol) (err error) { +func (p *AssociateAnnotationTagResp) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -22963,14 +23420,6 @@ func (p *GetExptInsightAnalysisRecordResponse) Read(iprot thrift.TProtocol) (err } switch fieldId { - case 1: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField1(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 { @@ -22998,7 +23447,7 @@ ReadStructBeginError: 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_GetExptInsightAnalysisRecordResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_AssociateAnnotationTagResp[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -23008,15 +23457,7 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *GetExptInsightAnalysisRecordResponse) ReadField1(iprot thrift.TProtocol) error { - _field := expt.NewExptInsightAnalysisRecord() - if err := _field.Read(iprot); err != nil { - return err - } - p.ExptInsightAnalysisRecord = _field - return nil -} -func (p *GetExptInsightAnalysisRecordResponse) ReadField255(iprot thrift.TProtocol) error { +func (p *AssociateAnnotationTagResp) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err @@ -23025,16 +23466,12 @@ func (p *GetExptInsightAnalysisRecordResponse) ReadField255(iprot thrift.TProtoc return nil } -func (p *GetExptInsightAnalysisRecordResponse) Write(oprot thrift.TProtocol) (err error) { +func (p *AssociateAnnotationTagResp) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("GetExptInsightAnalysisRecordResponse"); err != nil { + if err = oprot.WriteStructBegin("AssociateAnnotationTagResp"); err != nil { goto WriteStructBeginError } if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -23057,25 +23494,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *GetExptInsightAnalysisRecordResponse) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetExptInsightAnalysisRecord() { - if err = oprot.WriteFieldBegin("expt_insight_analysis_record", thrift.STRUCT, 1); err != nil { - goto WriteFieldBeginError - } - if err := p.ExptInsightAnalysisRecord.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 1 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) -} -func (p *GetExptInsightAnalysisRecordResponse) writeField255(oprot thrift.TProtocol) (err error) { +func (p *AssociateAnnotationTagResp) writeField255(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError } @@ -23092,37 +23511,27 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *GetExptInsightAnalysisRecordResponse) String() string { +func (p *AssociateAnnotationTagResp) String() string { if p == nil { return "" } - return fmt.Sprintf("GetExptInsightAnalysisRecordResponse(%+v)", *p) + return fmt.Sprintf("AssociateAnnotationTagResp(%+v)", *p) } -func (p *GetExptInsightAnalysisRecordResponse) DeepEqual(ano *GetExptInsightAnalysisRecordResponse) bool { +func (p *AssociateAnnotationTagResp) DeepEqual(ano *AssociateAnnotationTagResp) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.ExptInsightAnalysisRecord) { - return false - } if !p.Field255DeepEqual(ano.BaseResp) { return false } return true } -func (p *GetExptInsightAnalysisRecordResponse) Field1DeepEqual(src *expt.ExptInsightAnalysisRecord) bool { - - if !p.ExptInsightAnalysisRecord.DeepEqual(src) { - return false - } - return true -} -func (p *GetExptInsightAnalysisRecordResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *AssociateAnnotationTagResp) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { return false @@ -23130,86 +23539,107 @@ func (p *GetExptInsightAnalysisRecordResponse) Field255DeepEqual(src *base.BaseR return true } -type InsightAnalysisExperimentRequest struct { +type DeleteAnnotationTagReq struct { WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` ExptID int64 `thrift:"expt_id,2,required" frugal:"2,required,i64" json:"expt_id" path:"expt_id,required" ` + TagKeyID *int64 `thrift:"tag_key_id,3,optional" frugal:"3,optional,i64" json:"tag_key_id" form:"tag_key_id" ` Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func NewInsightAnalysisExperimentRequest() *InsightAnalysisExperimentRequest { - return &InsightAnalysisExperimentRequest{} +func NewDeleteAnnotationTagReq() *DeleteAnnotationTagReq { + return &DeleteAnnotationTagReq{} } -func (p *InsightAnalysisExperimentRequest) InitDefault() { +func (p *DeleteAnnotationTagReq) InitDefault() { } -func (p *InsightAnalysisExperimentRequest) GetWorkspaceID() (v int64) { +func (p *DeleteAnnotationTagReq) GetWorkspaceID() (v int64) { if p != nil { return p.WorkspaceID } return } -func (p *InsightAnalysisExperimentRequest) GetExptID() (v int64) { +func (p *DeleteAnnotationTagReq) GetExptID() (v int64) { if p != nil { return p.ExptID } return } -var InsightAnalysisExperimentRequest_Session_DEFAULT *common.Session +var DeleteAnnotationTagReq_TagKeyID_DEFAULT int64 -func (p *InsightAnalysisExperimentRequest) GetSession() (v *common.Session) { +func (p *DeleteAnnotationTagReq) GetTagKeyID() (v int64) { + if p == nil { + return + } + if !p.IsSetTagKeyID() { + return DeleteAnnotationTagReq_TagKeyID_DEFAULT + } + return *p.TagKeyID +} + +var DeleteAnnotationTagReq_Session_DEFAULT *common.Session + +func (p *DeleteAnnotationTagReq) GetSession() (v *common.Session) { if p == nil { return } if !p.IsSetSession() { - return InsightAnalysisExperimentRequest_Session_DEFAULT + return DeleteAnnotationTagReq_Session_DEFAULT } return p.Session } -var InsightAnalysisExperimentRequest_Base_DEFAULT *base.Base +var DeleteAnnotationTagReq_Base_DEFAULT *base.Base -func (p *InsightAnalysisExperimentRequest) GetBase() (v *base.Base) { +func (p *DeleteAnnotationTagReq) GetBase() (v *base.Base) { if p == nil { return } if !p.IsSetBase() { - return InsightAnalysisExperimentRequest_Base_DEFAULT + return DeleteAnnotationTagReq_Base_DEFAULT } return p.Base } -func (p *InsightAnalysisExperimentRequest) SetWorkspaceID(val int64) { +func (p *DeleteAnnotationTagReq) SetWorkspaceID(val int64) { p.WorkspaceID = val } -func (p *InsightAnalysisExperimentRequest) SetExptID(val int64) { +func (p *DeleteAnnotationTagReq) SetExptID(val int64) { p.ExptID = val } -func (p *InsightAnalysisExperimentRequest) SetSession(val *common.Session) { +func (p *DeleteAnnotationTagReq) SetTagKeyID(val *int64) { + p.TagKeyID = val +} +func (p *DeleteAnnotationTagReq) SetSession(val *common.Session) { p.Session = val } -func (p *InsightAnalysisExperimentRequest) SetBase(val *base.Base) { +func (p *DeleteAnnotationTagReq) SetBase(val *base.Base) { p.Base = val } -var fieldIDToName_InsightAnalysisExperimentRequest = map[int16]string{ +var fieldIDToName_DeleteAnnotationTagReq = map[int16]string{ 1: "workspace_id", 2: "expt_id", + 3: "tag_key_id", 200: "session", 255: "Base", } -func (p *InsightAnalysisExperimentRequest) IsSetSession() bool { +func (p *DeleteAnnotationTagReq) IsSetTagKeyID() bool { + return p.TagKeyID != nil +} + +func (p *DeleteAnnotationTagReq) IsSetSession() bool { return p.Session != nil } -func (p *InsightAnalysisExperimentRequest) IsSetBase() bool { +func (p *DeleteAnnotationTagReq) IsSetBase() bool { return p.Base != nil } -func (p *InsightAnalysisExperimentRequest) Read(iprot thrift.TProtocol) (err error) { +func (p *DeleteAnnotationTagReq) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 var issetWorkspaceID bool = false @@ -23247,6 +23677,14 @@ func (p *InsightAnalysisExperimentRequest) Read(iprot thrift.TProtocol) (err err } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } + case 3: + if fieldTypeId == thrift.I64 { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } case 200: if fieldTypeId == thrift.STRUCT { if err = p.ReadField200(iprot); err != nil { @@ -23291,7 +23729,7 @@ ReadStructBeginError: 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_InsightAnalysisExperimentRequest[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_DeleteAnnotationTagReq[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -23300,10 +23738,10 @@ ReadFieldEndError: 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_InsightAnalysisExperimentRequest[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_DeleteAnnotationTagReq[fieldId])) } -func (p *InsightAnalysisExperimentRequest) ReadField1(iprot thrift.TProtocol) error { +func (p *DeleteAnnotationTagReq) ReadField1(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -23314,7 +23752,7 @@ func (p *InsightAnalysisExperimentRequest) ReadField1(iprot thrift.TProtocol) er p.WorkspaceID = _field return nil } -func (p *InsightAnalysisExperimentRequest) ReadField2(iprot thrift.TProtocol) error { +func (p *DeleteAnnotationTagReq) ReadField2(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -23325,7 +23763,18 @@ func (p *InsightAnalysisExperimentRequest) ReadField2(iprot thrift.TProtocol) er p.ExptID = _field return nil } -func (p *InsightAnalysisExperimentRequest) ReadField200(iprot thrift.TProtocol) error { +func (p *DeleteAnnotationTagReq) ReadField3(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.TagKeyID = _field + return nil +} +func (p *DeleteAnnotationTagReq) ReadField200(iprot thrift.TProtocol) error { _field := common.NewSession() if err := _field.Read(iprot); err != nil { return err @@ -23333,7 +23782,7 @@ func (p *InsightAnalysisExperimentRequest) ReadField200(iprot thrift.TProtocol) p.Session = _field return nil } -func (p *InsightAnalysisExperimentRequest) ReadField255(iprot thrift.TProtocol) error { +func (p *DeleteAnnotationTagReq) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err @@ -23342,9 +23791,9 @@ func (p *InsightAnalysisExperimentRequest) ReadField255(iprot thrift.TProtocol) return nil } -func (p *InsightAnalysisExperimentRequest) Write(oprot thrift.TProtocol) (err error) { +func (p *DeleteAnnotationTagReq) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("InsightAnalysisExperimentRequest"); err != nil { + if err = oprot.WriteStructBegin("DeleteAnnotationTagReq"); err != nil { goto WriteStructBeginError } if p != nil { @@ -23356,6 +23805,10 @@ func (p *InsightAnalysisExperimentRequest) Write(oprot thrift.TProtocol) (err er fieldId = 2 goto WriteFieldError } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } if err = p.writeField200(oprot); err != nil { fieldId = 200 goto WriteFieldError @@ -23382,7 +23835,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *InsightAnalysisExperimentRequest) writeField1(oprot thrift.TProtocol) (err error) { +func (p *DeleteAnnotationTagReq) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { goto WriteFieldBeginError } @@ -23398,7 +23851,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *InsightAnalysisExperimentRequest) writeField2(oprot thrift.TProtocol) (err error) { +func (p *DeleteAnnotationTagReq) writeField2(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("expt_id", thrift.I64, 2); err != nil { goto WriteFieldBeginError } @@ -23414,7 +23867,25 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *InsightAnalysisExperimentRequest) writeField200(oprot thrift.TProtocol) (err error) { +func (p *DeleteAnnotationTagReq) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetTagKeyID() { + if err = oprot.WriteFieldBegin("tag_key_id", thrift.I64, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.TagKeyID); 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 *DeleteAnnotationTagReq) writeField200(oprot thrift.TProtocol) (err error) { if p.IsSetSession() { if err = oprot.WriteFieldBegin("session", thrift.STRUCT, 200); err != nil { goto WriteFieldBeginError @@ -23432,7 +23903,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 200 end error: ", p), err) } -func (p *InsightAnalysisExperimentRequest) writeField255(oprot thrift.TProtocol) (err error) { +func (p *DeleteAnnotationTagReq) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -23451,15 +23922,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *InsightAnalysisExperimentRequest) String() string { +func (p *DeleteAnnotationTagReq) String() string { if p == nil { return "" } - return fmt.Sprintf("InsightAnalysisExperimentRequest(%+v)", *p) + return fmt.Sprintf("DeleteAnnotationTagReq(%+v)", *p) } -func (p *InsightAnalysisExperimentRequest) DeepEqual(ano *InsightAnalysisExperimentRequest) bool { +func (p *DeleteAnnotationTagReq) DeepEqual(ano *DeleteAnnotationTagReq) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -23471,6 +23942,9 @@ func (p *InsightAnalysisExperimentRequest) DeepEqual(ano *InsightAnalysisExperim if !p.Field2DeepEqual(ano.ExptID) { return false } + if !p.Field3DeepEqual(ano.TagKeyID) { + return false + } if !p.Field200DeepEqual(ano.Session) { return false } @@ -23480,85 +23954,84 @@ func (p *InsightAnalysisExperimentRequest) DeepEqual(ano *InsightAnalysisExperim return true } -func (p *InsightAnalysisExperimentRequest) Field1DeepEqual(src int64) bool { +func (p *DeleteAnnotationTagReq) Field1DeepEqual(src int64) bool { if p.WorkspaceID != src { return false } return true } -func (p *InsightAnalysisExperimentRequest) Field2DeepEqual(src int64) bool { +func (p *DeleteAnnotationTagReq) Field2DeepEqual(src int64) bool { if p.ExptID != src { return false } return true } -func (p *InsightAnalysisExperimentRequest) Field200DeepEqual(src *common.Session) bool { +func (p *DeleteAnnotationTagReq) Field3DeepEqual(src *int64) bool { - if !p.Session.DeepEqual(src) { + if p.TagKeyID == src { + return true + } else if p.TagKeyID == nil || src == nil { + return false + } + if *p.TagKeyID != *src { return false } return true } -func (p *InsightAnalysisExperimentRequest) Field255DeepEqual(src *base.Base) bool { +func (p *DeleteAnnotationTagReq) Field200DeepEqual(src *common.Session) bool { - if !p.Base.DeepEqual(src) { + if !p.Session.DeepEqual(src) { return false } return true } +func (p *DeleteAnnotationTagReq) Field255DeepEqual(src *base.Base) bool { -type InsightAnalysisExperimentResponse struct { - InsightAnalysisRecordID int64 `thrift:"insight_analysis_record_id,1,required" frugal:"1,required,i64" json:"insight_analysis_record_id" form:"insight_analysis_record_id,required" ` - BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` + if !p.Base.DeepEqual(src) { + return false + } + return true } -func NewInsightAnalysisExperimentResponse() *InsightAnalysisExperimentResponse { - return &InsightAnalysisExperimentResponse{} +type DeleteAnnotationTagResp struct { + BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` } -func (p *InsightAnalysisExperimentResponse) InitDefault() { +func NewDeleteAnnotationTagResp() *DeleteAnnotationTagResp { + return &DeleteAnnotationTagResp{} } -func (p *InsightAnalysisExperimentResponse) GetInsightAnalysisRecordID() (v int64) { - if p != nil { - return p.InsightAnalysisRecordID - } - return +func (p *DeleteAnnotationTagResp) InitDefault() { } -var InsightAnalysisExperimentResponse_BaseResp_DEFAULT *base.BaseResp +var DeleteAnnotationTagResp_BaseResp_DEFAULT *base.BaseResp -func (p *InsightAnalysisExperimentResponse) GetBaseResp() (v *base.BaseResp) { +func (p *DeleteAnnotationTagResp) GetBaseResp() (v *base.BaseResp) { if p == nil { return } if !p.IsSetBaseResp() { - return InsightAnalysisExperimentResponse_BaseResp_DEFAULT + return DeleteAnnotationTagResp_BaseResp_DEFAULT } return p.BaseResp } -func (p *InsightAnalysisExperimentResponse) SetInsightAnalysisRecordID(val int64) { - p.InsightAnalysisRecordID = val -} -func (p *InsightAnalysisExperimentResponse) SetBaseResp(val *base.BaseResp) { +func (p *DeleteAnnotationTagResp) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } -var fieldIDToName_InsightAnalysisExperimentResponse = map[int16]string{ - 1: "insight_analysis_record_id", +var fieldIDToName_DeleteAnnotationTagResp = map[int16]string{ 255: "BaseResp", } -func (p *InsightAnalysisExperimentResponse) IsSetBaseResp() bool { +func (p *DeleteAnnotationTagResp) IsSetBaseResp() bool { return p.BaseResp != nil } -func (p *InsightAnalysisExperimentResponse) Read(iprot thrift.TProtocol) (err error) { +func (p *DeleteAnnotationTagResp) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetInsightAnalysisRecordID bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -23574,15 +24047,6 @@ func (p *InsightAnalysisExperimentResponse) Read(iprot thrift.TProtocol) (err er } switch fieldId { - case 1: - if fieldTypeId == thrift.I64 { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - issetInsightAnalysisRecordID = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } case 255: if fieldTypeId == thrift.STRUCT { if err = p.ReadField255(iprot); err != nil { @@ -23604,17 +24068,13 @@ func (p *InsightAnalysisExperimentResponse) Read(iprot thrift.TProtocol) (err er goto ReadStructEndError } - if !issetInsightAnalysisRecordID { - 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_InsightAnalysisExperimentResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_DeleteAnnotationTagResp[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -23622,22 +24082,9 @@ 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_InsightAnalysisExperimentResponse[fieldId])) } -func (p *InsightAnalysisExperimentResponse) ReadField1(iprot thrift.TProtocol) error { - - var _field int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = v - } - p.InsightAnalysisRecordID = _field - return nil -} -func (p *InsightAnalysisExperimentResponse) ReadField255(iprot thrift.TProtocol) error { +func (p *DeleteAnnotationTagResp) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err @@ -23646,16 +24093,12 @@ func (p *InsightAnalysisExperimentResponse) ReadField255(iprot thrift.TProtocol) return nil } -func (p *InsightAnalysisExperimentResponse) Write(oprot thrift.TProtocol) (err error) { +func (p *DeleteAnnotationTagResp) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("InsightAnalysisExperimentResponse"); err != nil { + if err = oprot.WriteStructBegin("DeleteAnnotationTagResp"); err != nil { goto WriteStructBeginError } if p != nil { - if err = p.writeField1(oprot); err != nil { - fieldId = 1 - goto WriteFieldError - } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -23678,23 +24121,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *InsightAnalysisExperimentResponse) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("insight_analysis_record_id", thrift.I64, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.InsightAnalysisRecordID); 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 *InsightAnalysisExperimentResponse) writeField255(oprot thrift.TProtocol) (err error) { +func (p *DeleteAnnotationTagResp) writeField255(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError } @@ -23711,37 +24138,27 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *InsightAnalysisExperimentResponse) String() string { +func (p *DeleteAnnotationTagResp) String() string { if p == nil { return "" } - return fmt.Sprintf("InsightAnalysisExperimentResponse(%+v)", *p) + return fmt.Sprintf("DeleteAnnotationTagResp(%+v)", *p) } -func (p *InsightAnalysisExperimentResponse) DeepEqual(ano *InsightAnalysisExperimentResponse) bool { +func (p *DeleteAnnotationTagResp) DeepEqual(ano *DeleteAnnotationTagResp) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.InsightAnalysisRecordID) { - return false - } if !p.Field255DeepEqual(ano.BaseResp) { return false } return true } -func (p *InsightAnalysisExperimentResponse) Field1DeepEqual(src int64) bool { - - if p.InsightAnalysisRecordID != src { - return false - } - return true -} -func (p *InsightAnalysisExperimentResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *DeleteAnnotationTagResp) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { return false @@ -23749,132 +24166,138 @@ func (p *InsightAnalysisExperimentResponse) Field255DeepEqual(src *base.BaseResp return true } -type ListExptInsightAnalysisRecordRequest struct { - WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` - ExptID int64 `thrift:"expt_id,2,required" frugal:"2,required,i64" json:"expt_id" path:"expt_id,required" ` - PageNumber *int32 `thrift:"page_number,3,optional" frugal:"3,optional,i32" form:"page_number" json:"page_number,omitempty"` - PageSize *int32 `thrift:"page_size,4,optional" frugal:"4,optional,i32" form:"page_size" json:"page_size,omitempty"` - Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` +type CreateAnnotateRecordReq struct { + WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` + ExptID int64 `thrift:"expt_id,2,required" frugal:"2,required,i64" json:"expt_id" path:"expt_id,required" ` + AnnotateRecord *expt.AnnotateRecord `thrift:"annotate_record,3,required" frugal:"3,required,expt.AnnotateRecord" form:"annotate_record,required" json:"annotate_record,required"` + ItemID int64 `thrift:"item_id,4,required" frugal:"4,required,i64" json:"item_id" form:"item_id,required" ` + TurnID int64 `thrift:"turn_id,5,required" frugal:"5,required,i64" json:"turn_id" form:"turn_id,required" ` + Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func NewListExptInsightAnalysisRecordRequest() *ListExptInsightAnalysisRecordRequest { - return &ListExptInsightAnalysisRecordRequest{} +func NewCreateAnnotateRecordReq() *CreateAnnotateRecordReq { + return &CreateAnnotateRecordReq{} } -func (p *ListExptInsightAnalysisRecordRequest) InitDefault() { +func (p *CreateAnnotateRecordReq) InitDefault() { } -func (p *ListExptInsightAnalysisRecordRequest) GetWorkspaceID() (v int64) { +func (p *CreateAnnotateRecordReq) GetWorkspaceID() (v int64) { if p != nil { return p.WorkspaceID } return } -func (p *ListExptInsightAnalysisRecordRequest) GetExptID() (v int64) { +func (p *CreateAnnotateRecordReq) GetExptID() (v int64) { if p != nil { return p.ExptID } return } -var ListExptInsightAnalysisRecordRequest_PageNumber_DEFAULT int32 +var CreateAnnotateRecordReq_AnnotateRecord_DEFAULT *expt.AnnotateRecord -func (p *ListExptInsightAnalysisRecordRequest) GetPageNumber() (v int32) { +func (p *CreateAnnotateRecordReq) GetAnnotateRecord() (v *expt.AnnotateRecord) { if p == nil { return } - if !p.IsSetPageNumber() { - return ListExptInsightAnalysisRecordRequest_PageNumber_DEFAULT + if !p.IsSetAnnotateRecord() { + return CreateAnnotateRecordReq_AnnotateRecord_DEFAULT } - return *p.PageNumber + return p.AnnotateRecord } -var ListExptInsightAnalysisRecordRequest_PageSize_DEFAULT int32 - -func (p *ListExptInsightAnalysisRecordRequest) GetPageSize() (v int32) { - if p == nil { - return +func (p *CreateAnnotateRecordReq) GetItemID() (v int64) { + if p != nil { + return p.ItemID } - if !p.IsSetPageSize() { - return ListExptInsightAnalysisRecordRequest_PageSize_DEFAULT + return +} + +func (p *CreateAnnotateRecordReq) GetTurnID() (v int64) { + if p != nil { + return p.TurnID } - return *p.PageSize + return } -var ListExptInsightAnalysisRecordRequest_Session_DEFAULT *common.Session +var CreateAnnotateRecordReq_Session_DEFAULT *common.Session -func (p *ListExptInsightAnalysisRecordRequest) GetSession() (v *common.Session) { +func (p *CreateAnnotateRecordReq) GetSession() (v *common.Session) { if p == nil { return } if !p.IsSetSession() { - return ListExptInsightAnalysisRecordRequest_Session_DEFAULT + return CreateAnnotateRecordReq_Session_DEFAULT } return p.Session } -var ListExptInsightAnalysisRecordRequest_Base_DEFAULT *base.Base +var CreateAnnotateRecordReq_Base_DEFAULT *base.Base -func (p *ListExptInsightAnalysisRecordRequest) GetBase() (v *base.Base) { +func (p *CreateAnnotateRecordReq) GetBase() (v *base.Base) { if p == nil { return } if !p.IsSetBase() { - return ListExptInsightAnalysisRecordRequest_Base_DEFAULT + return CreateAnnotateRecordReq_Base_DEFAULT } return p.Base } -func (p *ListExptInsightAnalysisRecordRequest) SetWorkspaceID(val int64) { +func (p *CreateAnnotateRecordReq) SetWorkspaceID(val int64) { p.WorkspaceID = val } -func (p *ListExptInsightAnalysisRecordRequest) SetExptID(val int64) { +func (p *CreateAnnotateRecordReq) SetExptID(val int64) { p.ExptID = val } -func (p *ListExptInsightAnalysisRecordRequest) SetPageNumber(val *int32) { - p.PageNumber = val +func (p *CreateAnnotateRecordReq) SetAnnotateRecord(val *expt.AnnotateRecord) { + p.AnnotateRecord = val } -func (p *ListExptInsightAnalysisRecordRequest) SetPageSize(val *int32) { - p.PageSize = val +func (p *CreateAnnotateRecordReq) SetItemID(val int64) { + p.ItemID = val } -func (p *ListExptInsightAnalysisRecordRequest) SetSession(val *common.Session) { +func (p *CreateAnnotateRecordReq) SetTurnID(val int64) { + p.TurnID = val +} +func (p *CreateAnnotateRecordReq) SetSession(val *common.Session) { p.Session = val } -func (p *ListExptInsightAnalysisRecordRequest) SetBase(val *base.Base) { +func (p *CreateAnnotateRecordReq) SetBase(val *base.Base) { p.Base = val } -var fieldIDToName_ListExptInsightAnalysisRecordRequest = map[int16]string{ +var fieldIDToName_CreateAnnotateRecordReq = map[int16]string{ 1: "workspace_id", 2: "expt_id", - 3: "page_number", - 4: "page_size", + 3: "annotate_record", + 4: "item_id", + 5: "turn_id", 200: "session", 255: "Base", } -func (p *ListExptInsightAnalysisRecordRequest) IsSetPageNumber() bool { - return p.PageNumber != nil -} - -func (p *ListExptInsightAnalysisRecordRequest) IsSetPageSize() bool { - return p.PageSize != nil +func (p *CreateAnnotateRecordReq) IsSetAnnotateRecord() bool { + return p.AnnotateRecord != nil } -func (p *ListExptInsightAnalysisRecordRequest) IsSetSession() bool { +func (p *CreateAnnotateRecordReq) IsSetSession() bool { return p.Session != nil } -func (p *ListExptInsightAnalysisRecordRequest) IsSetBase() bool { +func (p *CreateAnnotateRecordReq) IsSetBase() bool { return p.Base != nil } -func (p *ListExptInsightAnalysisRecordRequest) Read(iprot thrift.TProtocol) (err error) { +func (p *CreateAnnotateRecordReq) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 var issetWorkspaceID bool = false var issetExptID bool = false + var issetAnnotateRecord bool = false + var issetItemID bool = false + var issetTurnID bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -23909,18 +24332,29 @@ func (p *ListExptInsightAnalysisRecordRequest) Read(iprot thrift.TProtocol) (err goto SkipFieldError } case 3: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.STRUCT { if err = p.ReadField3(iprot); err != nil { goto ReadFieldError } + issetAnnotateRecord = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } case 4: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.I64 { if err = p.ReadField4(iprot); err != nil { goto ReadFieldError } + issetItemID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 5: + if fieldTypeId == thrift.I64 { + if err = p.ReadField5(iprot); err != nil { + goto ReadFieldError + } + issetTurnID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -23962,13 +24396,28 @@ func (p *ListExptInsightAnalysisRecordRequest) Read(iprot thrift.TProtocol) (err fieldId = 2 goto RequiredFieldNotSetError } + + if !issetAnnotateRecord { + fieldId = 3 + goto RequiredFieldNotSetError + } + + if !issetItemID { + fieldId = 4 + goto RequiredFieldNotSetError + } + + if !issetTurnID { + fieldId = 5 + 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_ListExptInsightAnalysisRecordRequest[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_CreateAnnotateRecordReq[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -23977,10 +24426,10 @@ ReadFieldEndError: 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_ListExptInsightAnalysisRecordRequest[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_CreateAnnotateRecordReq[fieldId])) } -func (p *ListExptInsightAnalysisRecordRequest) ReadField1(iprot thrift.TProtocol) error { +func (p *CreateAnnotateRecordReq) ReadField1(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -23991,7 +24440,7 @@ func (p *ListExptInsightAnalysisRecordRequest) ReadField1(iprot thrift.TProtocol p.WorkspaceID = _field return nil } -func (p *ListExptInsightAnalysisRecordRequest) ReadField2(iprot thrift.TProtocol) error { +func (p *CreateAnnotateRecordReq) ReadField2(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -24002,29 +24451,37 @@ func (p *ListExptInsightAnalysisRecordRequest) ReadField2(iprot thrift.TProtocol p.ExptID = _field return nil } -func (p *ListExptInsightAnalysisRecordRequest) ReadField3(iprot thrift.TProtocol) error { +func (p *CreateAnnotateRecordReq) ReadField3(iprot thrift.TProtocol) error { + _field := expt.NewAnnotateRecord() + if err := _field.Read(iprot); err != nil { + return err + } + p.AnnotateRecord = _field + return nil +} +func (p *CreateAnnotateRecordReq) ReadField4(iprot thrift.TProtocol) error { - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { + var _field int64 + if v, err := iprot.ReadI64(); err != nil { return err } else { - _field = &v + _field = v } - p.PageNumber = _field + p.ItemID = _field return nil } -func (p *ListExptInsightAnalysisRecordRequest) ReadField4(iprot thrift.TProtocol) error { +func (p *CreateAnnotateRecordReq) ReadField5(iprot thrift.TProtocol) error { - var _field *int32 - if v, err := iprot.ReadI32(); err != nil { + var _field int64 + if v, err := iprot.ReadI64(); err != nil { return err } else { - _field = &v + _field = v } - p.PageSize = _field + p.TurnID = _field return nil } -func (p *ListExptInsightAnalysisRecordRequest) ReadField200(iprot thrift.TProtocol) error { +func (p *CreateAnnotateRecordReq) ReadField200(iprot thrift.TProtocol) error { _field := common.NewSession() if err := _field.Read(iprot); err != nil { return err @@ -24032,7 +24489,7 @@ func (p *ListExptInsightAnalysisRecordRequest) ReadField200(iprot thrift.TProtoc p.Session = _field return nil } -func (p *ListExptInsightAnalysisRecordRequest) ReadField255(iprot thrift.TProtocol) error { +func (p *CreateAnnotateRecordReq) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err @@ -24041,9 +24498,9 @@ func (p *ListExptInsightAnalysisRecordRequest) ReadField255(iprot thrift.TProtoc return nil } -func (p *ListExptInsightAnalysisRecordRequest) Write(oprot thrift.TProtocol) (err error) { +func (p *CreateAnnotateRecordReq) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListExptInsightAnalysisRecordRequest"); err != nil { + if err = oprot.WriteStructBegin("CreateAnnotateRecordReq"); err != nil { goto WriteStructBeginError } if p != nil { @@ -24063,6 +24520,10 @@ func (p *ListExptInsightAnalysisRecordRequest) Write(oprot thrift.TProtocol) (er fieldId = 4 goto WriteFieldError } + if err = p.writeField5(oprot); err != nil { + fieldId = 5 + goto WriteFieldError + } if err = p.writeField200(oprot); err != nil { fieldId = 200 goto WriteFieldError @@ -24089,7 +24550,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ListExptInsightAnalysisRecordRequest) writeField1(oprot thrift.TProtocol) (err error) { +func (p *CreateAnnotateRecordReq) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { goto WriteFieldBeginError } @@ -24105,7 +24566,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ListExptInsightAnalysisRecordRequest) writeField2(oprot thrift.TProtocol) (err error) { +func (p *CreateAnnotateRecordReq) writeField2(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("expt_id", thrift.I64, 2); err != nil { goto WriteFieldBeginError } @@ -24121,17 +24582,15 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *ListExptInsightAnalysisRecordRequest) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetPageNumber() { - if err = oprot.WriteFieldBegin("page_number", thrift.I32, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI32(*p.PageNumber); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } +func (p *CreateAnnotateRecordReq) writeField3(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("annotate_record", thrift.STRUCT, 3); err != nil { + goto WriteFieldBeginError + } + if err := p.AnnotateRecord.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } return nil WriteFieldBeginError: @@ -24139,17 +24598,15 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *ListExptInsightAnalysisRecordRequest) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetPageSize() { - if err = oprot.WriteFieldBegin("page_size", thrift.I32, 4); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI32(*p.PageSize); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } +func (p *CreateAnnotateRecordReq) writeField4(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("item_id", thrift.I64, 4); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.ItemID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } return nil WriteFieldBeginError: @@ -24157,7 +24614,23 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) } -func (p *ListExptInsightAnalysisRecordRequest) writeField200(oprot thrift.TProtocol) (err error) { +func (p *CreateAnnotateRecordReq) writeField5(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("turn_id", thrift.I64, 5); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.TurnID); 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 *CreateAnnotateRecordReq) writeField200(oprot thrift.TProtocol) (err error) { if p.IsSetSession() { if err = oprot.WriteFieldBegin("session", thrift.STRUCT, 200); err != nil { goto WriteFieldBeginError @@ -24175,7 +24648,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 200 end error: ", p), err) } -func (p *ListExptInsightAnalysisRecordRequest) writeField255(oprot thrift.TProtocol) (err error) { +func (p *CreateAnnotateRecordReq) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -24194,15 +24667,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *ListExptInsightAnalysisRecordRequest) String() string { +func (p *CreateAnnotateRecordReq) String() string { if p == nil { return "" } - return fmt.Sprintf("ListExptInsightAnalysisRecordRequest(%+v)", *p) + return fmt.Sprintf("CreateAnnotateRecordReq(%+v)", *p) } -func (p *ListExptInsightAnalysisRecordRequest) DeepEqual(ano *ListExptInsightAnalysisRecordRequest) bool { +func (p *CreateAnnotateRecordReq) DeepEqual(ano *CreateAnnotateRecordReq) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -24214,10 +24687,13 @@ func (p *ListExptInsightAnalysisRecordRequest) DeepEqual(ano *ListExptInsightAna if !p.Field2DeepEqual(ano.ExptID) { return false } - if !p.Field3DeepEqual(ano.PageNumber) { + if !p.Field3DeepEqual(ano.AnnotateRecord) { return false } - if !p.Field4DeepEqual(ano.PageSize) { + if !p.Field4DeepEqual(ano.ItemID) { + return false + } + if !p.Field5DeepEqual(ano.TurnID) { return false } if !p.Field200DeepEqual(ano.Session) { @@ -24229,52 +24705,49 @@ func (p *ListExptInsightAnalysisRecordRequest) DeepEqual(ano *ListExptInsightAna return true } -func (p *ListExptInsightAnalysisRecordRequest) Field1DeepEqual(src int64) bool { +func (p *CreateAnnotateRecordReq) Field1DeepEqual(src int64) bool { if p.WorkspaceID != src { return false } return true } -func (p *ListExptInsightAnalysisRecordRequest) Field2DeepEqual(src int64) bool { +func (p *CreateAnnotateRecordReq) Field2DeepEqual(src int64) bool { if p.ExptID != src { return false } return true } -func (p *ListExptInsightAnalysisRecordRequest) Field3DeepEqual(src *int32) bool { +func (p *CreateAnnotateRecordReq) Field3DeepEqual(src *expt.AnnotateRecord) bool { - if p.PageNumber == src { - return true - } else if p.PageNumber == nil || src == nil { - return false - } - if *p.PageNumber != *src { + if !p.AnnotateRecord.DeepEqual(src) { return false } return true } -func (p *ListExptInsightAnalysisRecordRequest) Field4DeepEqual(src *int32) bool { +func (p *CreateAnnotateRecordReq) Field4DeepEqual(src int64) bool { - if p.PageSize == src { - return true - } else if p.PageSize == nil || src == nil { + if p.ItemID != src { return false } - if *p.PageSize != *src { + return true +} +func (p *CreateAnnotateRecordReq) Field5DeepEqual(src int64) bool { + + if p.TurnID != src { return false } return true } -func (p *ListExptInsightAnalysisRecordRequest) Field200DeepEqual(src *common.Session) bool { +func (p *CreateAnnotateRecordReq) Field200DeepEqual(src *common.Session) bool { if !p.Session.DeepEqual(src) { return false } return true } -func (p *ListExptInsightAnalysisRecordRequest) Field255DeepEqual(src *base.Base) bool { +func (p *CreateAnnotateRecordReq) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { return false @@ -24282,77 +24755,56 @@ func (p *ListExptInsightAnalysisRecordRequest) Field255DeepEqual(src *base.Base) return true } -type ListExptInsightAnalysisRecordResponse struct { - ExptInsightAnalysisRecords []*expt.ExptInsightAnalysisRecord `thrift:"expt_insight_analysis_records,1,required" frugal:"1,required,list" form:"expt_insight_analysis_records,required" json:"expt_insight_analysis_records,required" query:"expt_insight_analysis_records,required"` - Total *int64 `thrift:"total,20,optional" frugal:"20,optional,i64" json:"total" form:"total" ` - BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` +type CreateAnnotateRecordResp struct { + AnnotateRecordID int64 `thrift:"annotate_record_id,1,required" frugal:"1,required,i64" json:"annotate_record_id" form:"annotate_record_id,required" ` + BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` } -func NewListExptInsightAnalysisRecordResponse() *ListExptInsightAnalysisRecordResponse { - return &ListExptInsightAnalysisRecordResponse{} +func NewCreateAnnotateRecordResp() *CreateAnnotateRecordResp { + return &CreateAnnotateRecordResp{} } -func (p *ListExptInsightAnalysisRecordResponse) InitDefault() { +func (p *CreateAnnotateRecordResp) InitDefault() { } -func (p *ListExptInsightAnalysisRecordResponse) GetExptInsightAnalysisRecords() (v []*expt.ExptInsightAnalysisRecord) { +func (p *CreateAnnotateRecordResp) GetAnnotateRecordID() (v int64) { if p != nil { - return p.ExptInsightAnalysisRecords + return p.AnnotateRecordID } return } -var ListExptInsightAnalysisRecordResponse_Total_DEFAULT int64 - -func (p *ListExptInsightAnalysisRecordResponse) GetTotal() (v int64) { - if p == nil { - return - } - if !p.IsSetTotal() { - return ListExptInsightAnalysisRecordResponse_Total_DEFAULT - } - return *p.Total -} - -var ListExptInsightAnalysisRecordResponse_BaseResp_DEFAULT *base.BaseResp +var CreateAnnotateRecordResp_BaseResp_DEFAULT *base.BaseResp -func (p *ListExptInsightAnalysisRecordResponse) GetBaseResp() (v *base.BaseResp) { +func (p *CreateAnnotateRecordResp) GetBaseResp() (v *base.BaseResp) { if p == nil { return } if !p.IsSetBaseResp() { - return ListExptInsightAnalysisRecordResponse_BaseResp_DEFAULT + return CreateAnnotateRecordResp_BaseResp_DEFAULT } return p.BaseResp } -func (p *ListExptInsightAnalysisRecordResponse) SetExptInsightAnalysisRecords(val []*expt.ExptInsightAnalysisRecord) { - p.ExptInsightAnalysisRecords = val -} -func (p *ListExptInsightAnalysisRecordResponse) SetTotal(val *int64) { - p.Total = val +func (p *CreateAnnotateRecordResp) SetAnnotateRecordID(val int64) { + p.AnnotateRecordID = val } -func (p *ListExptInsightAnalysisRecordResponse) SetBaseResp(val *base.BaseResp) { +func (p *CreateAnnotateRecordResp) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } -var fieldIDToName_ListExptInsightAnalysisRecordResponse = map[int16]string{ - 1: "expt_insight_analysis_records", - 20: "total", +var fieldIDToName_CreateAnnotateRecordResp = map[int16]string{ + 1: "annotate_record_id", 255: "BaseResp", } -func (p *ListExptInsightAnalysisRecordResponse) IsSetTotal() bool { - return p.Total != nil -} - -func (p *ListExptInsightAnalysisRecordResponse) IsSetBaseResp() bool { +func (p *CreateAnnotateRecordResp) IsSetBaseResp() bool { return p.BaseResp != nil } -func (p *ListExptInsightAnalysisRecordResponse) Read(iprot thrift.TProtocol) (err error) { +func (p *CreateAnnotateRecordResp) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetExptInsightAnalysisRecords bool = false + var issetAnnotateRecordID bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -24369,19 +24821,11 @@ func (p *ListExptInsightAnalysisRecordResponse) Read(iprot thrift.TProtocol) (er switch fieldId { case 1: - if fieldTypeId == thrift.LIST { - if err = p.ReadField1(iprot); err != nil { - goto ReadFieldError - } - issetExptInsightAnalysisRecords = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 20: if fieldTypeId == thrift.I64 { - if err = p.ReadField20(iprot); err != nil { + if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } + issetAnnotateRecordID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -24406,7 +24850,7 @@ func (p *ListExptInsightAnalysisRecordResponse) Read(iprot thrift.TProtocol) (er goto ReadStructEndError } - if !issetExptInsightAnalysisRecords { + if !issetAnnotateRecordID { fieldId = 1 goto RequiredFieldNotSetError } @@ -24416,7 +24860,7 @@ ReadStructBeginError: 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_ListExptInsightAnalysisRecordResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_CreateAnnotateRecordResp[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -24425,44 +24869,21 @@ ReadFieldEndError: 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_ListExptInsightAnalysisRecordResponse[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_CreateAnnotateRecordResp[fieldId])) } -func (p *ListExptInsightAnalysisRecordResponse) ReadField1(iprot thrift.TProtocol) error { - _, size, err := iprot.ReadListBegin() - if err != nil { - return err - } - _field := make([]*expt.ExptInsightAnalysisRecord, 0, size) - values := make([]expt.ExptInsightAnalysisRecord, 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.ExptInsightAnalysisRecords = _field - return nil -} -func (p *ListExptInsightAnalysisRecordResponse) ReadField20(iprot thrift.TProtocol) error { +func (p *CreateAnnotateRecordResp) ReadField1(iprot thrift.TProtocol) error { - var _field *int64 + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - _field = &v + _field = v } - p.Total = _field + p.AnnotateRecordID = _field return nil } -func (p *ListExptInsightAnalysisRecordResponse) ReadField255(iprot thrift.TProtocol) error { +func (p *CreateAnnotateRecordResp) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err @@ -24471,9 +24892,9 @@ func (p *ListExptInsightAnalysisRecordResponse) ReadField255(iprot thrift.TProto return nil } -func (p *ListExptInsightAnalysisRecordResponse) Write(oprot thrift.TProtocol) (err error) { +func (p *CreateAnnotateRecordResp) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListExptInsightAnalysisRecordResponse"); err != nil { + if err = oprot.WriteStructBegin("CreateAnnotateRecordResp"); err != nil { goto WriteStructBeginError } if p != nil { @@ -24481,10 +24902,6 @@ func (p *ListExptInsightAnalysisRecordResponse) Write(oprot thrift.TProtocol) (e fieldId = 1 goto WriteFieldError } - if err = p.writeField20(oprot); err != nil { - fieldId = 20 - goto WriteFieldError - } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -24507,19 +24924,11 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ListExptInsightAnalysisRecordResponse) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("expt_insight_analysis_records", thrift.LIST, 1); err != nil { +func (p *CreateAnnotateRecordResp) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("annotate_record_id", thrift.I64, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.ExptInsightAnalysisRecords)); err != nil { - return err - } - for _, v := range p.ExptInsightAnalysisRecords { - if err := v.Write(oprot); err != nil { - return err - } - } - if err := oprot.WriteListEnd(); err != nil { + if err := oprot.WriteI64(p.AnnotateRecordID); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -24531,25 +24940,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ListExptInsightAnalysisRecordResponse) writeField20(oprot thrift.TProtocol) (err error) { - if p.IsSetTotal() { - if err = oprot.WriteFieldBegin("total", thrift.I64, 20); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.Total); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 20 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 20 end error: ", p), err) -} -func (p *ListExptInsightAnalysisRecordResponse) writeField255(oprot thrift.TProtocol) (err error) { +func (p *CreateAnnotateRecordResp) writeField255(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError } @@ -24566,24 +24957,21 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *ListExptInsightAnalysisRecordResponse) String() string { +func (p *CreateAnnotateRecordResp) String() string { if p == nil { return "" } - return fmt.Sprintf("ListExptInsightAnalysisRecordResponse(%+v)", *p) + return fmt.Sprintf("CreateAnnotateRecordResp(%+v)", *p) } -func (p *ListExptInsightAnalysisRecordResponse) DeepEqual(ano *ListExptInsightAnalysisRecordResponse) bool { +func (p *CreateAnnotateRecordResp) DeepEqual(ano *CreateAnnotateRecordResp) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.ExptInsightAnalysisRecords) { - return false - } - if !p.Field20DeepEqual(ano.Total) { + if !p.Field1DeepEqual(ano.AnnotateRecordID) { return false } if !p.Field255DeepEqual(ano.BaseResp) { @@ -24592,32 +24980,14 @@ func (p *ListExptInsightAnalysisRecordResponse) DeepEqual(ano *ListExptInsightAn return true } -func (p *ListExptInsightAnalysisRecordResponse) Field1DeepEqual(src []*expt.ExptInsightAnalysisRecord) bool { - - if len(p.ExptInsightAnalysisRecords) != len(src) { - return false - } - for i, v := range p.ExptInsightAnalysisRecords { - _src := src[i] - if !v.DeepEqual(_src) { - return false - } - } - return true -} -func (p *ListExptInsightAnalysisRecordResponse) Field20DeepEqual(src *int64) bool { +func (p *CreateAnnotateRecordResp) Field1DeepEqual(src int64) bool { - if p.Total == src { - return true - } else if p.Total == nil || src == nil { - return false - } - if *p.Total != *src { + if p.AnnotateRecordID != src { return false } return true } -func (p *ListExptInsightAnalysisRecordResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *CreateAnnotateRecordResp) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { return false @@ -24625,103 +24995,151 @@ func (p *ListExptInsightAnalysisRecordResponse) Field255DeepEqual(src *base.Base return true } -type DeleteExptInsightAnalysisRecordRequest struct { - WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` - ExptID int64 `thrift:"expt_id,2,required" frugal:"2,required,i64" json:"expt_id" path:"expt_id,required" ` - InsightAnalysisRecordID int64 `thrift:"insight_analysis_record_id,3,required" frugal:"3,required,i64" json:"insight_analysis_record_id" path:"insight_analysis_record_id,required" ` - Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` +type UpdateAnnotateRecordReq struct { + WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` + ExptID int64 `thrift:"expt_id,2,required" frugal:"2,required,i64" json:"expt_id" path:"expt_id,required" ` + AnnotateRecords *expt.AnnotateRecord `thrift:"annotate_records,3,required" frugal:"3,required,expt.AnnotateRecord" form:"annotate_records,required" json:"annotate_records,required"` + AnnotateRecordID int64 `thrift:"annotate_record_id,4,required" frugal:"4,required,i64" json:"annotate_record_id" form:"annotate_record_id,required" ` + ItemID int64 `thrift:"item_id,5,required" frugal:"5,required,i64" json:"item_id" form:"item_id,required" ` + TurnID int64 `thrift:"turn_id,6,required" frugal:"6,required,i64" json:"turn_id" form:"turn_id,required" ` + Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func NewDeleteExptInsightAnalysisRecordRequest() *DeleteExptInsightAnalysisRecordRequest { - return &DeleteExptInsightAnalysisRecordRequest{} +func NewUpdateAnnotateRecordReq() *UpdateAnnotateRecordReq { + return &UpdateAnnotateRecordReq{} } -func (p *DeleteExptInsightAnalysisRecordRequest) InitDefault() { +func (p *UpdateAnnotateRecordReq) InitDefault() { } -func (p *DeleteExptInsightAnalysisRecordRequest) GetWorkspaceID() (v int64) { +func (p *UpdateAnnotateRecordReq) GetWorkspaceID() (v int64) { if p != nil { return p.WorkspaceID } return } -func (p *DeleteExptInsightAnalysisRecordRequest) GetExptID() (v int64) { +func (p *UpdateAnnotateRecordReq) GetExptID() (v int64) { if p != nil { return p.ExptID } return } -func (p *DeleteExptInsightAnalysisRecordRequest) GetInsightAnalysisRecordID() (v int64) { +var UpdateAnnotateRecordReq_AnnotateRecords_DEFAULT *expt.AnnotateRecord + +func (p *UpdateAnnotateRecordReq) GetAnnotateRecords() (v *expt.AnnotateRecord) { + if p == nil { + return + } + if !p.IsSetAnnotateRecords() { + return UpdateAnnotateRecordReq_AnnotateRecords_DEFAULT + } + return p.AnnotateRecords +} + +func (p *UpdateAnnotateRecordReq) GetAnnotateRecordID() (v int64) { if p != nil { - return p.InsightAnalysisRecordID + return p.AnnotateRecordID } return } -var DeleteExptInsightAnalysisRecordRequest_Session_DEFAULT *common.Session +func (p *UpdateAnnotateRecordReq) GetItemID() (v int64) { + if p != nil { + return p.ItemID + } + return +} -func (p *DeleteExptInsightAnalysisRecordRequest) GetSession() (v *common.Session) { +func (p *UpdateAnnotateRecordReq) GetTurnID() (v int64) { + if p != nil { + return p.TurnID + } + return +} + +var UpdateAnnotateRecordReq_Session_DEFAULT *common.Session + +func (p *UpdateAnnotateRecordReq) GetSession() (v *common.Session) { if p == nil { return } if !p.IsSetSession() { - return DeleteExptInsightAnalysisRecordRequest_Session_DEFAULT + return UpdateAnnotateRecordReq_Session_DEFAULT } return p.Session } -var DeleteExptInsightAnalysisRecordRequest_Base_DEFAULT *base.Base +var UpdateAnnotateRecordReq_Base_DEFAULT *base.Base -func (p *DeleteExptInsightAnalysisRecordRequest) GetBase() (v *base.Base) { +func (p *UpdateAnnotateRecordReq) GetBase() (v *base.Base) { if p == nil { return } if !p.IsSetBase() { - return DeleteExptInsightAnalysisRecordRequest_Base_DEFAULT + return UpdateAnnotateRecordReq_Base_DEFAULT } return p.Base } -func (p *DeleteExptInsightAnalysisRecordRequest) SetWorkspaceID(val int64) { +func (p *UpdateAnnotateRecordReq) SetWorkspaceID(val int64) { p.WorkspaceID = val } -func (p *DeleteExptInsightAnalysisRecordRequest) SetExptID(val int64) { +func (p *UpdateAnnotateRecordReq) SetExptID(val int64) { p.ExptID = val } -func (p *DeleteExptInsightAnalysisRecordRequest) SetInsightAnalysisRecordID(val int64) { - p.InsightAnalysisRecordID = val +func (p *UpdateAnnotateRecordReq) SetAnnotateRecords(val *expt.AnnotateRecord) { + p.AnnotateRecords = val } -func (p *DeleteExptInsightAnalysisRecordRequest) SetSession(val *common.Session) { +func (p *UpdateAnnotateRecordReq) SetAnnotateRecordID(val int64) { + p.AnnotateRecordID = val +} +func (p *UpdateAnnotateRecordReq) SetItemID(val int64) { + p.ItemID = val +} +func (p *UpdateAnnotateRecordReq) SetTurnID(val int64) { + p.TurnID = val +} +func (p *UpdateAnnotateRecordReq) SetSession(val *common.Session) { p.Session = val } -func (p *DeleteExptInsightAnalysisRecordRequest) SetBase(val *base.Base) { +func (p *UpdateAnnotateRecordReq) SetBase(val *base.Base) { p.Base = val } -var fieldIDToName_DeleteExptInsightAnalysisRecordRequest = map[int16]string{ +var fieldIDToName_UpdateAnnotateRecordReq = map[int16]string{ 1: "workspace_id", 2: "expt_id", - 3: "insight_analysis_record_id", + 3: "annotate_records", + 4: "annotate_record_id", + 5: "item_id", + 6: "turn_id", 200: "session", 255: "Base", } -func (p *DeleteExptInsightAnalysisRecordRequest) IsSetSession() bool { +func (p *UpdateAnnotateRecordReq) IsSetAnnotateRecords() bool { + return p.AnnotateRecords != nil +} + +func (p *UpdateAnnotateRecordReq) IsSetSession() bool { return p.Session != nil } -func (p *DeleteExptInsightAnalysisRecordRequest) IsSetBase() bool { +func (p *UpdateAnnotateRecordReq) IsSetBase() bool { return p.Base != nil } -func (p *DeleteExptInsightAnalysisRecordRequest) Read(iprot thrift.TProtocol) (err error) { +func (p *UpdateAnnotateRecordReq) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 var issetWorkspaceID bool = false var issetExptID bool = false - var issetInsightAnalysisRecordID bool = false + var issetAnnotateRecords bool = false + var issetAnnotateRecordID bool = false + var issetItemID bool = false + var issetTurnID bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -24756,11 +25174,38 @@ func (p *DeleteExptInsightAnalysisRecordRequest) Read(iprot thrift.TProtocol) (e goto SkipFieldError } case 3: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.STRUCT { if err = p.ReadField3(iprot); err != nil { goto ReadFieldError } - issetInsightAnalysisRecordID = true + issetAnnotateRecords = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 4: + if fieldTypeId == thrift.I64 { + if err = p.ReadField4(iprot); err != nil { + goto ReadFieldError + } + issetAnnotateRecordID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 5: + if fieldTypeId == thrift.I64 { + if err = p.ReadField5(iprot); err != nil { + goto ReadFieldError + } + issetItemID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 6: + if fieldTypeId == thrift.I64 { + if err = p.ReadField6(iprot); err != nil { + goto ReadFieldError + } + issetTurnID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -24803,17 +25248,32 @@ func (p *DeleteExptInsightAnalysisRecordRequest) Read(iprot thrift.TProtocol) (e goto RequiredFieldNotSetError } - if !issetInsightAnalysisRecordID { + if !issetAnnotateRecords { fieldId = 3 goto RequiredFieldNotSetError } + + if !issetAnnotateRecordID { + fieldId = 4 + goto RequiredFieldNotSetError + } + + if !issetItemID { + fieldId = 5 + goto RequiredFieldNotSetError + } + + if !issetTurnID { + fieldId = 6 + 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_DeleteExptInsightAnalysisRecordRequest[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UpdateAnnotateRecordReq[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -24822,10 +25282,10 @@ ReadFieldEndError: 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_DeleteExptInsightAnalysisRecordRequest[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_UpdateAnnotateRecordReq[fieldId])) } -func (p *DeleteExptInsightAnalysisRecordRequest) ReadField1(iprot thrift.TProtocol) error { +func (p *UpdateAnnotateRecordReq) ReadField1(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -24836,7 +25296,7 @@ func (p *DeleteExptInsightAnalysisRecordRequest) ReadField1(iprot thrift.TProtoc p.WorkspaceID = _field return nil } -func (p *DeleteExptInsightAnalysisRecordRequest) ReadField2(iprot thrift.TProtocol) error { +func (p *UpdateAnnotateRecordReq) ReadField2(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -24847,7 +25307,15 @@ func (p *DeleteExptInsightAnalysisRecordRequest) ReadField2(iprot thrift.TProtoc p.ExptID = _field return nil } -func (p *DeleteExptInsightAnalysisRecordRequest) ReadField3(iprot thrift.TProtocol) error { +func (p *UpdateAnnotateRecordReq) ReadField3(iprot thrift.TProtocol) error { + _field := expt.NewAnnotateRecord() + if err := _field.Read(iprot); err != nil { + return err + } + p.AnnotateRecords = _field + return nil +} +func (p *UpdateAnnotateRecordReq) ReadField4(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -24855,10 +25323,32 @@ func (p *DeleteExptInsightAnalysisRecordRequest) ReadField3(iprot thrift.TProtoc } else { _field = v } - p.InsightAnalysisRecordID = _field + p.AnnotateRecordID = _field return nil } -func (p *DeleteExptInsightAnalysisRecordRequest) ReadField200(iprot thrift.TProtocol) error { +func (p *UpdateAnnotateRecordReq) ReadField5(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.ItemID = _field + return nil +} +func (p *UpdateAnnotateRecordReq) ReadField6(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.TurnID = _field + return nil +} +func (p *UpdateAnnotateRecordReq) ReadField200(iprot thrift.TProtocol) error { _field := common.NewSession() if err := _field.Read(iprot); err != nil { return err @@ -24866,7 +25356,7 @@ func (p *DeleteExptInsightAnalysisRecordRequest) ReadField200(iprot thrift.TProt p.Session = _field return nil } -func (p *DeleteExptInsightAnalysisRecordRequest) ReadField255(iprot thrift.TProtocol) error { +func (p *UpdateAnnotateRecordReq) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err @@ -24875,9 +25365,9 @@ func (p *DeleteExptInsightAnalysisRecordRequest) ReadField255(iprot thrift.TProt return nil } -func (p *DeleteExptInsightAnalysisRecordRequest) Write(oprot thrift.TProtocol) (err error) { +func (p *UpdateAnnotateRecordReq) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("DeleteExptInsightAnalysisRecordRequest"); err != nil { + if err = oprot.WriteStructBegin("UpdateAnnotateRecordReq"); err != nil { goto WriteStructBeginError } if p != nil { @@ -24893,6 +25383,18 @@ func (p *DeleteExptInsightAnalysisRecordRequest) Write(oprot thrift.TProtocol) ( 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 = p.writeField200(oprot); err != nil { fieldId = 200 goto WriteFieldError @@ -24919,7 +25421,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *DeleteExptInsightAnalysisRecordRequest) writeField1(oprot thrift.TProtocol) (err error) { +func (p *UpdateAnnotateRecordReq) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { goto WriteFieldBeginError } @@ -24935,7 +25437,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *DeleteExptInsightAnalysisRecordRequest) writeField2(oprot thrift.TProtocol) (err error) { +func (p *UpdateAnnotateRecordReq) writeField2(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("expt_id", thrift.I64, 2); err != nil { goto WriteFieldBeginError } @@ -24951,11 +25453,11 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *DeleteExptInsightAnalysisRecordRequest) writeField3(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("insight_analysis_record_id", thrift.I64, 3); err != nil { +func (p *UpdateAnnotateRecordReq) writeField3(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("annotate_records", thrift.STRUCT, 3); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI64(p.InsightAnalysisRecordID); err != nil { + if err := p.AnnotateRecords.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -24967,7 +25469,55 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *DeleteExptInsightAnalysisRecordRequest) writeField200(oprot thrift.TProtocol) (err error) { +func (p *UpdateAnnotateRecordReq) writeField4(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("annotate_record_id", thrift.I64, 4); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.AnnotateRecordID); 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 *UpdateAnnotateRecordReq) writeField5(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("item_id", thrift.I64, 5); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.ItemID); 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 *UpdateAnnotateRecordReq) writeField6(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("turn_id", thrift.I64, 6); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.TurnID); 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 *UpdateAnnotateRecordReq) writeField200(oprot thrift.TProtocol) (err error) { if p.IsSetSession() { if err = oprot.WriteFieldBegin("session", thrift.STRUCT, 200); err != nil { goto WriteFieldBeginError @@ -24985,7 +25535,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 200 end error: ", p), err) } -func (p *DeleteExptInsightAnalysisRecordRequest) writeField255(oprot thrift.TProtocol) (err error) { +func (p *UpdateAnnotateRecordReq) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -25004,15 +25554,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *DeleteExptInsightAnalysisRecordRequest) String() string { +func (p *UpdateAnnotateRecordReq) String() string { if p == nil { return "" } - return fmt.Sprintf("DeleteExptInsightAnalysisRecordRequest(%+v)", *p) + return fmt.Sprintf("UpdateAnnotateRecordReq(%+v)", *p) } -func (p *DeleteExptInsightAnalysisRecordRequest) DeepEqual(ano *DeleteExptInsightAnalysisRecordRequest) bool { +func (p *UpdateAnnotateRecordReq) DeepEqual(ano *UpdateAnnotateRecordReq) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -25024,7 +25574,16 @@ func (p *DeleteExptInsightAnalysisRecordRequest) DeepEqual(ano *DeleteExptInsigh if !p.Field2DeepEqual(ano.ExptID) { return false } - if !p.Field3DeepEqual(ano.InsightAnalysisRecordID) { + if !p.Field3DeepEqual(ano.AnnotateRecords) { + return false + } + if !p.Field4DeepEqual(ano.AnnotateRecordID) { + return false + } + if !p.Field5DeepEqual(ano.ItemID) { + return false + } + if !p.Field6DeepEqual(ano.TurnID) { return false } if !p.Field200DeepEqual(ano.Session) { @@ -25036,35 +25595,56 @@ func (p *DeleteExptInsightAnalysisRecordRequest) DeepEqual(ano *DeleteExptInsigh return true } -func (p *DeleteExptInsightAnalysisRecordRequest) Field1DeepEqual(src int64) bool { +func (p *UpdateAnnotateRecordReq) Field1DeepEqual(src int64) bool { if p.WorkspaceID != src { return false } return true } -func (p *DeleteExptInsightAnalysisRecordRequest) Field2DeepEqual(src int64) bool { +func (p *UpdateAnnotateRecordReq) Field2DeepEqual(src int64) bool { if p.ExptID != src { return false } return true } -func (p *DeleteExptInsightAnalysisRecordRequest) Field3DeepEqual(src int64) bool { +func (p *UpdateAnnotateRecordReq) Field3DeepEqual(src *expt.AnnotateRecord) bool { - if p.InsightAnalysisRecordID != src { + if !p.AnnotateRecords.DeepEqual(src) { return false } return true } -func (p *DeleteExptInsightAnalysisRecordRequest) Field200DeepEqual(src *common.Session) bool { +func (p *UpdateAnnotateRecordReq) Field4DeepEqual(src int64) bool { + + if p.AnnotateRecordID != src { + return false + } + return true +} +func (p *UpdateAnnotateRecordReq) Field5DeepEqual(src int64) bool { + + if p.ItemID != src { + return false + } + return true +} +func (p *UpdateAnnotateRecordReq) Field6DeepEqual(src int64) bool { + + if p.TurnID != src { + return false + } + return true +} +func (p *UpdateAnnotateRecordReq) Field200DeepEqual(src *common.Session) bool { if !p.Session.DeepEqual(src) { return false } return true } -func (p *DeleteExptInsightAnalysisRecordRequest) Field255DeepEqual(src *base.Base) bool { +func (p *UpdateAnnotateRecordReq) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { return false @@ -25072,41 +25652,41 @@ func (p *DeleteExptInsightAnalysisRecordRequest) Field255DeepEqual(src *base.Bas return true } -type DeleteExptInsightAnalysisRecordResponse struct { +type UpdateAnnotateRecordResp struct { BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` } -func NewDeleteExptInsightAnalysisRecordResponse() *DeleteExptInsightAnalysisRecordResponse { - return &DeleteExptInsightAnalysisRecordResponse{} +func NewUpdateAnnotateRecordResp() *UpdateAnnotateRecordResp { + return &UpdateAnnotateRecordResp{} } -func (p *DeleteExptInsightAnalysisRecordResponse) InitDefault() { +func (p *UpdateAnnotateRecordResp) InitDefault() { } -var DeleteExptInsightAnalysisRecordResponse_BaseResp_DEFAULT *base.BaseResp +var UpdateAnnotateRecordResp_BaseResp_DEFAULT *base.BaseResp -func (p *DeleteExptInsightAnalysisRecordResponse) GetBaseResp() (v *base.BaseResp) { +func (p *UpdateAnnotateRecordResp) GetBaseResp() (v *base.BaseResp) { if p == nil { return } if !p.IsSetBaseResp() { - return DeleteExptInsightAnalysisRecordResponse_BaseResp_DEFAULT + return UpdateAnnotateRecordResp_BaseResp_DEFAULT } return p.BaseResp } -func (p *DeleteExptInsightAnalysisRecordResponse) SetBaseResp(val *base.BaseResp) { +func (p *UpdateAnnotateRecordResp) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } -var fieldIDToName_DeleteExptInsightAnalysisRecordResponse = map[int16]string{ +var fieldIDToName_UpdateAnnotateRecordResp = map[int16]string{ 255: "BaseResp", } -func (p *DeleteExptInsightAnalysisRecordResponse) IsSetBaseResp() bool { +func (p *UpdateAnnotateRecordResp) IsSetBaseResp() bool { return p.BaseResp != nil } -func (p *DeleteExptInsightAnalysisRecordResponse) Read(iprot thrift.TProtocol) (err error) { +func (p *UpdateAnnotateRecordResp) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -25151,7 +25731,7 @@ ReadStructBeginError: 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_DeleteExptInsightAnalysisRecordResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UpdateAnnotateRecordResp[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -25161,7 +25741,7 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *DeleteExptInsightAnalysisRecordResponse) ReadField255(iprot thrift.TProtocol) error { +func (p *UpdateAnnotateRecordResp) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err @@ -25170,9 +25750,9 @@ func (p *DeleteExptInsightAnalysisRecordResponse) ReadField255(iprot thrift.TPro return nil } -func (p *DeleteExptInsightAnalysisRecordResponse) Write(oprot thrift.TProtocol) (err error) { +func (p *UpdateAnnotateRecordResp) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("DeleteExptInsightAnalysisRecordResponse"); err != nil { + if err = oprot.WriteStructBegin("UpdateAnnotateRecordResp"); err != nil { goto WriteStructBeginError } if p != nil { @@ -25198,7 +25778,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *DeleteExptInsightAnalysisRecordResponse) writeField255(oprot thrift.TProtocol) (err error) { +func (p *UpdateAnnotateRecordResp) writeField255(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError } @@ -25215,15 +25795,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *DeleteExptInsightAnalysisRecordResponse) String() string { +func (p *UpdateAnnotateRecordResp) String() string { if p == nil { return "" } - return fmt.Sprintf("DeleteExptInsightAnalysisRecordResponse(%+v)", *p) + return fmt.Sprintf("UpdateAnnotateRecordResp(%+v)", *p) } -func (p *DeleteExptInsightAnalysisRecordResponse) DeepEqual(ano *DeleteExptInsightAnalysisRecordResponse) bool { +func (p *UpdateAnnotateRecordResp) DeepEqual(ano *UpdateAnnotateRecordResp) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -25235,7 +25815,7 @@ func (p *DeleteExptInsightAnalysisRecordResponse) DeepEqual(ano *DeleteExptInsig return true } -func (p *DeleteExptInsightAnalysisRecordResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *UpdateAnnotateRecordResp) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { return false @@ -25243,159 +25823,111 @@ func (p *DeleteExptInsightAnalysisRecordResponse) Field255DeepEqual(src *base.Ba return true } -type FeedbackExptInsightAnalysisReportRequest struct { - WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` - ExptID int64 `thrift:"expt_id,2,required" frugal:"2,required,i64" json:"expt_id" path:"expt_id,required" ` - InsightAnalysisRecordID int64 `thrift:"insight_analysis_record_id,3,required" frugal:"3,required,i64" json:"insight_analysis_record_id" path:"insight_analysis_record_id,required" ` - FeedbackActionType expt.FeedbackActionType `thrift:"feedback_action_type,4,required" frugal:"4,required,string" form:"feedback_action_type,required" json:"feedback_action_type,required" query:"feedback_action_type,required"` - Comment *string `thrift:"comment,5,optional" frugal:"5,optional,string" form:"comment" json:"comment,omitempty" query:"comment"` - // 用于更新comment - CommentID *int64 `thrift:"comment_id,6,optional" frugal:"6,optional,i64" json:"comment_id" form:"comment_id" ` - Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` +type ExportExptResultRequest struct { + WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` + ExptID int64 `thrift:"expt_id,2,required" frugal:"2,required,i64" json:"expt_id" path:"expt_id,required" ` + ExportType *expt.ExptResultExportType `thrift:"export_type,4,optional" frugal:"4,optional,string" form:"export_type" json:"export_type,omitempty"` + Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func NewFeedbackExptInsightAnalysisReportRequest() *FeedbackExptInsightAnalysisReportRequest { - return &FeedbackExptInsightAnalysisReportRequest{} +func NewExportExptResultRequest() *ExportExptResultRequest { + return &ExportExptResultRequest{} } -func (p *FeedbackExptInsightAnalysisReportRequest) InitDefault() { +func (p *ExportExptResultRequest) InitDefault() { } -func (p *FeedbackExptInsightAnalysisReportRequest) GetWorkspaceID() (v int64) { +func (p *ExportExptResultRequest) GetWorkspaceID() (v int64) { if p != nil { return p.WorkspaceID } return } -func (p *FeedbackExptInsightAnalysisReportRequest) GetExptID() (v int64) { +func (p *ExportExptResultRequest) GetExptID() (v int64) { if p != nil { return p.ExptID } return } -func (p *FeedbackExptInsightAnalysisReportRequest) GetInsightAnalysisRecordID() (v int64) { - if p != nil { - return p.InsightAnalysisRecordID - } - return -} - -func (p *FeedbackExptInsightAnalysisReportRequest) GetFeedbackActionType() (v expt.FeedbackActionType) { - if p != nil { - return p.FeedbackActionType - } - return -} - -var FeedbackExptInsightAnalysisReportRequest_Comment_DEFAULT string - -func (p *FeedbackExptInsightAnalysisReportRequest) GetComment() (v string) { - if p == nil { - return - } - if !p.IsSetComment() { - return FeedbackExptInsightAnalysisReportRequest_Comment_DEFAULT - } - return *p.Comment -} - -var FeedbackExptInsightAnalysisReportRequest_CommentID_DEFAULT int64 +var ExportExptResultRequest_ExportType_DEFAULT expt.ExptResultExportType -func (p *FeedbackExptInsightAnalysisReportRequest) GetCommentID() (v int64) { +func (p *ExportExptResultRequest) GetExportType() (v expt.ExptResultExportType) { if p == nil { return } - if !p.IsSetCommentID() { - return FeedbackExptInsightAnalysisReportRequest_CommentID_DEFAULT + if !p.IsSetExportType() { + return ExportExptResultRequest_ExportType_DEFAULT } - return *p.CommentID + return *p.ExportType } -var FeedbackExptInsightAnalysisReportRequest_Session_DEFAULT *common.Session +var ExportExptResultRequest_Session_DEFAULT *common.Session -func (p *FeedbackExptInsightAnalysisReportRequest) GetSession() (v *common.Session) { +func (p *ExportExptResultRequest) GetSession() (v *common.Session) { if p == nil { return } if !p.IsSetSession() { - return FeedbackExptInsightAnalysisReportRequest_Session_DEFAULT + return ExportExptResultRequest_Session_DEFAULT } return p.Session } -var FeedbackExptInsightAnalysisReportRequest_Base_DEFAULT *base.Base +var ExportExptResultRequest_Base_DEFAULT *base.Base -func (p *FeedbackExptInsightAnalysisReportRequest) GetBase() (v *base.Base) { +func (p *ExportExptResultRequest) GetBase() (v *base.Base) { if p == nil { return } if !p.IsSetBase() { - return FeedbackExptInsightAnalysisReportRequest_Base_DEFAULT + return ExportExptResultRequest_Base_DEFAULT } return p.Base } -func (p *FeedbackExptInsightAnalysisReportRequest) SetWorkspaceID(val int64) { +func (p *ExportExptResultRequest) SetWorkspaceID(val int64) { p.WorkspaceID = val } -func (p *FeedbackExptInsightAnalysisReportRequest) SetExptID(val int64) { +func (p *ExportExptResultRequest) SetExptID(val int64) { p.ExptID = val } -func (p *FeedbackExptInsightAnalysisReportRequest) SetInsightAnalysisRecordID(val int64) { - p.InsightAnalysisRecordID = val -} -func (p *FeedbackExptInsightAnalysisReportRequest) SetFeedbackActionType(val expt.FeedbackActionType) { - p.FeedbackActionType = val -} -func (p *FeedbackExptInsightAnalysisReportRequest) SetComment(val *string) { - p.Comment = val -} -func (p *FeedbackExptInsightAnalysisReportRequest) SetCommentID(val *int64) { - p.CommentID = val +func (p *ExportExptResultRequest) SetExportType(val *expt.ExptResultExportType) { + p.ExportType = val } -func (p *FeedbackExptInsightAnalysisReportRequest) SetSession(val *common.Session) { +func (p *ExportExptResultRequest) SetSession(val *common.Session) { p.Session = val } -func (p *FeedbackExptInsightAnalysisReportRequest) SetBase(val *base.Base) { +func (p *ExportExptResultRequest) SetBase(val *base.Base) { p.Base = val } -var fieldIDToName_FeedbackExptInsightAnalysisReportRequest = map[int16]string{ +var fieldIDToName_ExportExptResultRequest = map[int16]string{ 1: "workspace_id", 2: "expt_id", - 3: "insight_analysis_record_id", - 4: "feedback_action_type", - 5: "comment", - 6: "comment_id", + 4: "export_type", 200: "session", 255: "Base", } -func (p *FeedbackExptInsightAnalysisReportRequest) IsSetComment() bool { - return p.Comment != nil +func (p *ExportExptResultRequest) IsSetExportType() bool { + return p.ExportType != nil } -func (p *FeedbackExptInsightAnalysisReportRequest) IsSetCommentID() bool { - return p.CommentID != nil -} - -func (p *FeedbackExptInsightAnalysisReportRequest) IsSetSession() bool { +func (p *ExportExptResultRequest) IsSetSession() bool { return p.Session != nil } -func (p *FeedbackExptInsightAnalysisReportRequest) IsSetBase() bool { +func (p *ExportExptResultRequest) IsSetBase() bool { return p.Base != nil } -func (p *FeedbackExptInsightAnalysisReportRequest) Read(iprot thrift.TProtocol) (err error) { +func (p *ExportExptResultRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 var issetWorkspaceID bool = false var issetExptID bool = false - var issetInsightAnalysisRecordID bool = false - var issetFeedbackActionType bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -25429,37 +25961,11 @@ func (p *FeedbackExptInsightAnalysisReportRequest) Read(iprot thrift.TProtocol) } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 3: - if fieldTypeId == thrift.I64 { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - issetInsightAnalysisRecordID = true - } 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 } - issetFeedbackActionType = true - } 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.I64 { - if err = p.ReadField6(iprot); err != nil { - goto ReadFieldError - } } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -25501,23 +26007,13 @@ func (p *FeedbackExptInsightAnalysisReportRequest) Read(iprot thrift.TProtocol) fieldId = 2 goto RequiredFieldNotSetError } - - if !issetInsightAnalysisRecordID { - fieldId = 3 - goto RequiredFieldNotSetError - } - - if !issetFeedbackActionType { - fieldId = 4 - 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_FeedbackExptInsightAnalysisReportRequest[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExportExptResultRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -25526,10 +26022,10 @@ ReadFieldEndError: 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_FeedbackExptInsightAnalysisReportRequest[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ExportExptResultRequest[fieldId])) } -func (p *FeedbackExptInsightAnalysisReportRequest) ReadField1(iprot thrift.TProtocol) error { +func (p *ExportExptResultRequest) ReadField1(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -25540,7 +26036,7 @@ func (p *FeedbackExptInsightAnalysisReportRequest) ReadField1(iprot thrift.TProt p.WorkspaceID = _field return nil } -func (p *FeedbackExptInsightAnalysisReportRequest) ReadField2(iprot thrift.TProtocol) error { +func (p *ExportExptResultRequest) ReadField2(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -25551,51 +26047,18 @@ func (p *FeedbackExptInsightAnalysisReportRequest) ReadField2(iprot thrift.TProt p.ExptID = _field return nil } -func (p *FeedbackExptInsightAnalysisReportRequest) ReadField3(iprot thrift.TProtocol) error { - - var _field int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = v - } - p.InsightAnalysisRecordID = _field - return nil -} -func (p *FeedbackExptInsightAnalysisReportRequest) ReadField4(iprot thrift.TProtocol) error { - - var _field expt.FeedbackActionType - if v, err := iprot.ReadString(); err != nil { - return err - } else { - _field = v - } - p.FeedbackActionType = _field - return nil -} -func (p *FeedbackExptInsightAnalysisReportRequest) ReadField5(iprot thrift.TProtocol) error { +func (p *ExportExptResultRequest) ReadField4(iprot thrift.TProtocol) error { - var _field *string + var _field *expt.ExptResultExportType if v, err := iprot.ReadString(); err != nil { return err } else { _field = &v } - p.Comment = _field - return nil -} -func (p *FeedbackExptInsightAnalysisReportRequest) ReadField6(iprot thrift.TProtocol) error { - - var _field *int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = &v - } - p.CommentID = _field + p.ExportType = _field return nil } -func (p *FeedbackExptInsightAnalysisReportRequest) ReadField200(iprot thrift.TProtocol) error { +func (p *ExportExptResultRequest) ReadField200(iprot thrift.TProtocol) error { _field := common.NewSession() if err := _field.Read(iprot); err != nil { return err @@ -25603,7 +26066,7 @@ func (p *FeedbackExptInsightAnalysisReportRequest) ReadField200(iprot thrift.TPr p.Session = _field return nil } -func (p *FeedbackExptInsightAnalysisReportRequest) ReadField255(iprot thrift.TProtocol) error { +func (p *ExportExptResultRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err @@ -25612,9 +26075,9 @@ func (p *FeedbackExptInsightAnalysisReportRequest) ReadField255(iprot thrift.TPr return nil } -func (p *FeedbackExptInsightAnalysisReportRequest) Write(oprot thrift.TProtocol) (err error) { +func (p *ExportExptResultRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("FeedbackExptInsightAnalysisReportRequest"); err != nil { + if err = oprot.WriteStructBegin("ExportExptResultRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -25626,22 +26089,10 @@ func (p *FeedbackExptInsightAnalysisReportRequest) Write(oprot thrift.TProtocol) 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 = p.writeField200(oprot); err != nil { fieldId = 200 goto WriteFieldError @@ -25668,7 +26119,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *FeedbackExptInsightAnalysisReportRequest) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExportExptResultRequest) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { goto WriteFieldBeginError } @@ -25684,7 +26135,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *FeedbackExptInsightAnalysisReportRequest) writeField2(oprot thrift.TProtocol) (err error) { +func (p *ExportExptResultRequest) writeField2(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("expt_id", thrift.I64, 2); err != nil { goto WriteFieldBeginError } @@ -25700,62 +26151,12 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *FeedbackExptInsightAnalysisReportRequest) writeField3(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("insight_analysis_record_id", thrift.I64, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.InsightAnalysisRecordID); 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 *FeedbackExptInsightAnalysisReportRequest) writeField4(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("feedback_action_type", thrift.STRING, 4); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(p.FeedbackActionType); 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 *FeedbackExptInsightAnalysisReportRequest) writeField5(oprot thrift.TProtocol) (err error) { - if p.IsSetComment() { - if err = oprot.WriteFieldBegin("comment", thrift.STRING, 5); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(*p.Comment); 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 *FeedbackExptInsightAnalysisReportRequest) writeField6(oprot thrift.TProtocol) (err error) { - if p.IsSetCommentID() { - if err = oprot.WriteFieldBegin("comment_id", thrift.I64, 6); err != nil { +func (p *ExportExptResultRequest) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetExportType() { + if err = oprot.WriteFieldBegin("export_type", thrift.STRING, 4); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI64(*p.CommentID); err != nil { + if err := oprot.WriteString(*p.ExportType); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -25764,11 +26165,11 @@ func (p *FeedbackExptInsightAnalysisReportRequest) writeField6(oprot thrift.TPro } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) } -func (p *FeedbackExptInsightAnalysisReportRequest) writeField200(oprot thrift.TProtocol) (err error) { +func (p *ExportExptResultRequest) writeField200(oprot thrift.TProtocol) (err error) { if p.IsSetSession() { if err = oprot.WriteFieldBegin("session", thrift.STRUCT, 200); err != nil { goto WriteFieldBeginError @@ -25786,7 +26187,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 200 end error: ", p), err) } -func (p *FeedbackExptInsightAnalysisReportRequest) writeField255(oprot thrift.TProtocol) (err error) { +func (p *ExportExptResultRequest) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -25805,15 +26206,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *FeedbackExptInsightAnalysisReportRequest) String() string { +func (p *ExportExptResultRequest) String() string { if p == nil { return "" } - return fmt.Sprintf("FeedbackExptInsightAnalysisReportRequest(%+v)", *p) + return fmt.Sprintf("ExportExptResultRequest(%+v)", *p) } -func (p *FeedbackExptInsightAnalysisReportRequest) DeepEqual(ano *FeedbackExptInsightAnalysisReportRequest) bool { +func (p *ExportExptResultRequest) DeepEqual(ano *ExportExptResultRequest) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -25825,16 +26226,7 @@ func (p *FeedbackExptInsightAnalysisReportRequest) DeepEqual(ano *FeedbackExptIn if !p.Field2DeepEqual(ano.ExptID) { return false } - if !p.Field3DeepEqual(ano.InsightAnalysisRecordID) { - return false - } - if !p.Field4DeepEqual(ano.FeedbackActionType) { - return false - } - if !p.Field5DeepEqual(ano.Comment) { - return false - } - if !p.Field6DeepEqual(ano.CommentID) { + if !p.Field4DeepEqual(ano.ExportType) { return false } if !p.Field200DeepEqual(ano.Session) { @@ -25846,66 +26238,40 @@ func (p *FeedbackExptInsightAnalysisReportRequest) DeepEqual(ano *FeedbackExptIn return true } -func (p *FeedbackExptInsightAnalysisReportRequest) Field1DeepEqual(src int64) bool { +func (p *ExportExptResultRequest) Field1DeepEqual(src int64) bool { if p.WorkspaceID != src { return false } return true } -func (p *FeedbackExptInsightAnalysisReportRequest) Field2DeepEqual(src int64) bool { +func (p *ExportExptResultRequest) Field2DeepEqual(src int64) bool { if p.ExptID != src { return false } return true } -func (p *FeedbackExptInsightAnalysisReportRequest) Field3DeepEqual(src int64) bool { - - if p.InsightAnalysisRecordID != src { - return false - } - return true -} -func (p *FeedbackExptInsightAnalysisReportRequest) Field4DeepEqual(src expt.FeedbackActionType) bool { - - if strings.Compare(p.FeedbackActionType, src) != 0 { - return false - } - return true -} -func (p *FeedbackExptInsightAnalysisReportRequest) Field5DeepEqual(src *string) bool { - - if p.Comment == src { - return true - } else if p.Comment == nil || src == nil { - return false - } - if strings.Compare(*p.Comment, *src) != 0 { - return false - } - return true -} -func (p *FeedbackExptInsightAnalysisReportRequest) Field6DeepEqual(src *int64) bool { +func (p *ExportExptResultRequest) Field4DeepEqual(src *expt.ExptResultExportType) bool { - if p.CommentID == src { + if p.ExportType == src { return true - } else if p.CommentID == nil || src == nil { + } else if p.ExportType == nil || src == nil { return false } - if *p.CommentID != *src { + if strings.Compare(*p.ExportType, *src) != 0 { return false } return true } -func (p *FeedbackExptInsightAnalysisReportRequest) Field200DeepEqual(src *common.Session) bool { +func (p *ExportExptResultRequest) Field200DeepEqual(src *common.Session) bool { if !p.Session.DeepEqual(src) { return false } return true } -func (p *FeedbackExptInsightAnalysisReportRequest) Field255DeepEqual(src *base.Base) bool { +func (p *ExportExptResultRequest) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { return false @@ -25913,43 +26279,56 @@ func (p *FeedbackExptInsightAnalysisReportRequest) Field255DeepEqual(src *base.B return true } -type FeedbackExptInsightAnalysisReportResponse struct { +type ExportExptResultResponse struct { + ExportID int64 `thrift:"export_id,1,required" frugal:"1,required,i64" json:"export_id" form:"export_id,required" ` BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` } -func NewFeedbackExptInsightAnalysisReportResponse() *FeedbackExptInsightAnalysisReportResponse { - return &FeedbackExptInsightAnalysisReportResponse{} +func NewExportExptResultResponse() *ExportExptResultResponse { + return &ExportExptResultResponse{} } -func (p *FeedbackExptInsightAnalysisReportResponse) InitDefault() { +func (p *ExportExptResultResponse) InitDefault() { } -var FeedbackExptInsightAnalysisReportResponse_BaseResp_DEFAULT *base.BaseResp +func (p *ExportExptResultResponse) GetExportID() (v int64) { + if p != nil { + return p.ExportID + } + return +} -func (p *FeedbackExptInsightAnalysisReportResponse) GetBaseResp() (v *base.BaseResp) { +var ExportExptResultResponse_BaseResp_DEFAULT *base.BaseResp + +func (p *ExportExptResultResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } if !p.IsSetBaseResp() { - return FeedbackExptInsightAnalysisReportResponse_BaseResp_DEFAULT + return ExportExptResultResponse_BaseResp_DEFAULT } return p.BaseResp } -func (p *FeedbackExptInsightAnalysisReportResponse) SetBaseResp(val *base.BaseResp) { +func (p *ExportExptResultResponse) SetExportID(val int64) { + p.ExportID = val +} +func (p *ExportExptResultResponse) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } -var fieldIDToName_FeedbackExptInsightAnalysisReportResponse = map[int16]string{ +var fieldIDToName_ExportExptResultResponse = map[int16]string{ + 1: "export_id", 255: "BaseResp", } -func (p *FeedbackExptInsightAnalysisReportResponse) IsSetBaseResp() bool { +func (p *ExportExptResultResponse) IsSetBaseResp() bool { return p.BaseResp != nil } -func (p *FeedbackExptInsightAnalysisReportResponse) Read(iprot thrift.TProtocol) (err error) { +func (p *ExportExptResultResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 + var issetExportID bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -25965,6 +26344,15 @@ func (p *FeedbackExptInsightAnalysisReportResponse) Read(iprot thrift.TProtocol) } switch fieldId { + case 1: + if fieldTypeId == thrift.I64 { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + issetExportID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } case 255: if fieldTypeId == thrift.STRUCT { if err = p.ReadField255(iprot); err != nil { @@ -25986,13 +26374,17 @@ func (p *FeedbackExptInsightAnalysisReportResponse) Read(iprot thrift.TProtocol) goto ReadStructEndError } + if !issetExportID { + 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_FeedbackExptInsightAnalysisReportResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExportExptResultResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -26000,9 +26392,22 @@ 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_ExportExptResultResponse[fieldId])) } -func (p *FeedbackExptInsightAnalysisReportResponse) ReadField255(iprot thrift.TProtocol) error { +func (p *ExportExptResultResponse) ReadField1(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.ExportID = _field + return nil +} +func (p *ExportExptResultResponse) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err @@ -26011,12 +26416,16 @@ func (p *FeedbackExptInsightAnalysisReportResponse) ReadField255(iprot thrift.TP return nil } -func (p *FeedbackExptInsightAnalysisReportResponse) Write(oprot thrift.TProtocol) (err error) { +func (p *ExportExptResultResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("FeedbackExptInsightAnalysisReportResponse"); err != nil { + if err = oprot.WriteStructBegin("ExportExptResultResponse"); err != nil { goto WriteStructBeginError } if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } if err = p.writeField255(oprot); err != nil { fieldId = 255 goto WriteFieldError @@ -26039,7 +26448,23 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *FeedbackExptInsightAnalysisReportResponse) writeField255(oprot thrift.TProtocol) (err error) { +func (p *ExportExptResultResponse) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("export_id", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.ExportID); 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 *ExportExptResultResponse) writeField255(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError } @@ -26056,27 +26481,37 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *FeedbackExptInsightAnalysisReportResponse) String() string { +func (p *ExportExptResultResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("FeedbackExptInsightAnalysisReportResponse(%+v)", *p) + return fmt.Sprintf("ExportExptResultResponse(%+v)", *p) } -func (p *FeedbackExptInsightAnalysisReportResponse) DeepEqual(ano *FeedbackExptInsightAnalysisReportResponse) bool { +func (p *ExportExptResultResponse) DeepEqual(ano *ExportExptResultResponse) bool { if p == ano { return true } else if p == nil || ano == nil { return false } + if !p.Field1DeepEqual(ano.ExportID) { + return false + } if !p.Field255DeepEqual(ano.BaseResp) { return false } return true } -func (p *FeedbackExptInsightAnalysisReportResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *ExportExptResultResponse) Field1DeepEqual(src int64) bool { + + if p.ExportID != src { + return false + } + return true +} +func (p *ExportExptResultResponse) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { return false @@ -26084,145 +26519,132 @@ func (p *FeedbackExptInsightAnalysisReportResponse) Field255DeepEqual(src *base. return true } -type ListExptInsightAnalysisCommentRequest struct { - WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` - ExptID int64 `thrift:"expt_id,2,required" frugal:"2,required,i64" json:"expt_id" path:"expt_id,required" ` - InsightAnalysisRecordID int64 `thrift:"insight_analysis_record_id,3,required" frugal:"3,required,i64" json:"insight_analysis_record_id" path:"insight_analysis_record_id,required" ` - PageNumber *int32 `thrift:"page_number,4,optional" frugal:"4,optional,i32" form:"page_number" json:"page_number,omitempty"` - PageSize *int32 `thrift:"page_size,5,optional" frugal:"5,optional,i32" form:"page_size" json:"page_size,omitempty"` - Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` +type ListExptResultExportRecordRequest struct { + WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` + ExptID int64 `thrift:"expt_id,2,required" frugal:"2,required,i64" json:"expt_id" path:"expt_id,required" ` + PageNumber *int32 `thrift:"page_number,3,optional" frugal:"3,optional,i32" form:"page_number" json:"page_number,omitempty"` + PageSize *int32 `thrift:"page_size,4,optional" frugal:"4,optional,i32" form:"page_size" json:"page_size,omitempty"` + Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func NewListExptInsightAnalysisCommentRequest() *ListExptInsightAnalysisCommentRequest { - return &ListExptInsightAnalysisCommentRequest{} +func NewListExptResultExportRecordRequest() *ListExptResultExportRecordRequest { + return &ListExptResultExportRecordRequest{} } -func (p *ListExptInsightAnalysisCommentRequest) InitDefault() { +func (p *ListExptResultExportRecordRequest) InitDefault() { } -func (p *ListExptInsightAnalysisCommentRequest) GetWorkspaceID() (v int64) { +func (p *ListExptResultExportRecordRequest) GetWorkspaceID() (v int64) { if p != nil { return p.WorkspaceID } return } -func (p *ListExptInsightAnalysisCommentRequest) GetExptID() (v int64) { +func (p *ListExptResultExportRecordRequest) GetExptID() (v int64) { if p != nil { return p.ExptID } return } -func (p *ListExptInsightAnalysisCommentRequest) GetInsightAnalysisRecordID() (v int64) { - if p != nil { - return p.InsightAnalysisRecordID - } - return -} - -var ListExptInsightAnalysisCommentRequest_PageNumber_DEFAULT int32 +var ListExptResultExportRecordRequest_PageNumber_DEFAULT int32 -func (p *ListExptInsightAnalysisCommentRequest) GetPageNumber() (v int32) { +func (p *ListExptResultExportRecordRequest) GetPageNumber() (v int32) { if p == nil { return } if !p.IsSetPageNumber() { - return ListExptInsightAnalysisCommentRequest_PageNumber_DEFAULT + return ListExptResultExportRecordRequest_PageNumber_DEFAULT } return *p.PageNumber } -var ListExptInsightAnalysisCommentRequest_PageSize_DEFAULT int32 +var ListExptResultExportRecordRequest_PageSize_DEFAULT int32 -func (p *ListExptInsightAnalysisCommentRequest) GetPageSize() (v int32) { +func (p *ListExptResultExportRecordRequest) GetPageSize() (v int32) { if p == nil { return } if !p.IsSetPageSize() { - return ListExptInsightAnalysisCommentRequest_PageSize_DEFAULT + return ListExptResultExportRecordRequest_PageSize_DEFAULT } return *p.PageSize } -var ListExptInsightAnalysisCommentRequest_Session_DEFAULT *common.Session +var ListExptResultExportRecordRequest_Session_DEFAULT *common.Session -func (p *ListExptInsightAnalysisCommentRequest) GetSession() (v *common.Session) { +func (p *ListExptResultExportRecordRequest) GetSession() (v *common.Session) { if p == nil { return } if !p.IsSetSession() { - return ListExptInsightAnalysisCommentRequest_Session_DEFAULT + return ListExptResultExportRecordRequest_Session_DEFAULT } return p.Session } -var ListExptInsightAnalysisCommentRequest_Base_DEFAULT *base.Base +var ListExptResultExportRecordRequest_Base_DEFAULT *base.Base -func (p *ListExptInsightAnalysisCommentRequest) GetBase() (v *base.Base) { +func (p *ListExptResultExportRecordRequest) GetBase() (v *base.Base) { if p == nil { return } if !p.IsSetBase() { - return ListExptInsightAnalysisCommentRequest_Base_DEFAULT + return ListExptResultExportRecordRequest_Base_DEFAULT } return p.Base } -func (p *ListExptInsightAnalysisCommentRequest) SetWorkspaceID(val int64) { +func (p *ListExptResultExportRecordRequest) SetWorkspaceID(val int64) { p.WorkspaceID = val } -func (p *ListExptInsightAnalysisCommentRequest) SetExptID(val int64) { +func (p *ListExptResultExportRecordRequest) SetExptID(val int64) { p.ExptID = val } -func (p *ListExptInsightAnalysisCommentRequest) SetInsightAnalysisRecordID(val int64) { - p.InsightAnalysisRecordID = val -} -func (p *ListExptInsightAnalysisCommentRequest) SetPageNumber(val *int32) { +func (p *ListExptResultExportRecordRequest) SetPageNumber(val *int32) { p.PageNumber = val } -func (p *ListExptInsightAnalysisCommentRequest) SetPageSize(val *int32) { +func (p *ListExptResultExportRecordRequest) SetPageSize(val *int32) { p.PageSize = val } -func (p *ListExptInsightAnalysisCommentRequest) SetSession(val *common.Session) { +func (p *ListExptResultExportRecordRequest) SetSession(val *common.Session) { p.Session = val } -func (p *ListExptInsightAnalysisCommentRequest) SetBase(val *base.Base) { +func (p *ListExptResultExportRecordRequest) SetBase(val *base.Base) { p.Base = val } -var fieldIDToName_ListExptInsightAnalysisCommentRequest = map[int16]string{ +var fieldIDToName_ListExptResultExportRecordRequest = map[int16]string{ 1: "workspace_id", 2: "expt_id", - 3: "insight_analysis_record_id", - 4: "page_number", - 5: "page_size", + 3: "page_number", + 4: "page_size", 200: "session", 255: "Base", } -func (p *ListExptInsightAnalysisCommentRequest) IsSetPageNumber() bool { +func (p *ListExptResultExportRecordRequest) IsSetPageNumber() bool { return p.PageNumber != nil } -func (p *ListExptInsightAnalysisCommentRequest) IsSetPageSize() bool { +func (p *ListExptResultExportRecordRequest) IsSetPageSize() bool { return p.PageSize != nil } -func (p *ListExptInsightAnalysisCommentRequest) IsSetSession() bool { +func (p *ListExptResultExportRecordRequest) IsSetSession() bool { return p.Session != nil } -func (p *ListExptInsightAnalysisCommentRequest) IsSetBase() bool { +func (p *ListExptResultExportRecordRequest) IsSetBase() bool { return p.Base != nil } -func (p *ListExptInsightAnalysisCommentRequest) Read(iprot thrift.TProtocol) (err error) { +func (p *ListExptResultExportRecordRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 var issetWorkspaceID bool = false var issetExptID bool = false - var issetInsightAnalysisRecordID bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -26257,11 +26679,10 @@ func (p *ListExptInsightAnalysisCommentRequest) Read(iprot thrift.TProtocol) (er goto SkipFieldError } case 3: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.I32 { if err = p.ReadField3(iprot); err != nil { goto ReadFieldError } - issetInsightAnalysisRecordID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -26273,14 +26694,6 @@ func (p *ListExptInsightAnalysisCommentRequest) Read(iprot thrift.TProtocol) (er } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 5: - if fieldTypeId == thrift.I32 { - if err = p.ReadField5(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } case 200: if fieldTypeId == thrift.STRUCT { if err = p.ReadField200(iprot); err != nil { @@ -26319,18 +26732,13 @@ func (p *ListExptInsightAnalysisCommentRequest) Read(iprot thrift.TProtocol) (er fieldId = 2 goto RequiredFieldNotSetError } - - if !issetInsightAnalysisRecordID { - 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_ListExptInsightAnalysisCommentRequest[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListExptResultExportRecordRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -26339,10 +26747,10 @@ ReadFieldEndError: 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_ListExptInsightAnalysisCommentRequest[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ListExptResultExportRecordRequest[fieldId])) } -func (p *ListExptInsightAnalysisCommentRequest) ReadField1(iprot thrift.TProtocol) error { +func (p *ListExptResultExportRecordRequest) ReadField1(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -26353,7 +26761,7 @@ func (p *ListExptInsightAnalysisCommentRequest) ReadField1(iprot thrift.TProtoco p.WorkspaceID = _field return nil } -func (p *ListExptInsightAnalysisCommentRequest) ReadField2(iprot thrift.TProtocol) error { +func (p *ListExptResultExportRecordRequest) ReadField2(iprot thrift.TProtocol) error { var _field int64 if v, err := iprot.ReadI64(); err != nil { @@ -26364,18 +26772,7 @@ func (p *ListExptInsightAnalysisCommentRequest) ReadField2(iprot thrift.TProtoco p.ExptID = _field return nil } -func (p *ListExptInsightAnalysisCommentRequest) ReadField3(iprot thrift.TProtocol) error { - - var _field int64 - if v, err := iprot.ReadI64(); err != nil { - return err - } else { - _field = v - } - p.InsightAnalysisRecordID = _field - return nil -} -func (p *ListExptInsightAnalysisCommentRequest) ReadField4(iprot thrift.TProtocol) error { +func (p *ListExptResultExportRecordRequest) ReadField3(iprot thrift.TProtocol) error { var _field *int32 if v, err := iprot.ReadI32(); err != nil { @@ -26386,7 +26783,7 @@ func (p *ListExptInsightAnalysisCommentRequest) ReadField4(iprot thrift.TProtoco p.PageNumber = _field return nil } -func (p *ListExptInsightAnalysisCommentRequest) ReadField5(iprot thrift.TProtocol) error { +func (p *ListExptResultExportRecordRequest) ReadField4(iprot thrift.TProtocol) error { var _field *int32 if v, err := iprot.ReadI32(); err != nil { @@ -26397,7 +26794,7 @@ func (p *ListExptInsightAnalysisCommentRequest) ReadField5(iprot thrift.TProtoco p.PageSize = _field return nil } -func (p *ListExptInsightAnalysisCommentRequest) ReadField200(iprot thrift.TProtocol) error { +func (p *ListExptResultExportRecordRequest) ReadField200(iprot thrift.TProtocol) error { _field := common.NewSession() if err := _field.Read(iprot); err != nil { return err @@ -26405,7 +26802,7 @@ func (p *ListExptInsightAnalysisCommentRequest) ReadField200(iprot thrift.TProto p.Session = _field return nil } -func (p *ListExptInsightAnalysisCommentRequest) ReadField255(iprot thrift.TProtocol) error { +func (p *ListExptResultExportRecordRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err @@ -26414,9 +26811,9 @@ func (p *ListExptInsightAnalysisCommentRequest) ReadField255(iprot thrift.TProto return nil } -func (p *ListExptInsightAnalysisCommentRequest) Write(oprot thrift.TProtocol) (err error) { +func (p *ListExptResultExportRecordRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListExptInsightAnalysisCommentRequest"); err != nil { + if err = oprot.WriteStructBegin("ListExptResultExportRecordRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -26436,10 +26833,6 @@ func (p *ListExptInsightAnalysisCommentRequest) Write(oprot thrift.TProtocol) (e fieldId = 4 goto WriteFieldError } - if err = p.writeField5(oprot); err != nil { - fieldId = 5 - goto WriteFieldError - } if err = p.writeField200(oprot); err != nil { fieldId = 200 goto WriteFieldError @@ -26466,7 +26859,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ListExptInsightAnalysisCommentRequest) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ListExptResultExportRecordRequest) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { goto WriteFieldBeginError } @@ -26482,7 +26875,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ListExptInsightAnalysisCommentRequest) writeField2(oprot thrift.TProtocol) (err error) { +func (p *ListExptResultExportRecordRequest) writeField2(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("expt_id", thrift.I64, 2); err != nil { goto WriteFieldBeginError } @@ -26498,15 +26891,17 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *ListExptInsightAnalysisCommentRequest) writeField3(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("insight_analysis_record_id", thrift.I64, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.InsightAnalysisRecordID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError +func (p *ListExptResultExportRecordRequest) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetPageNumber() { + if err = oprot.WriteFieldBegin("page_number", thrift.I32, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.PageNumber); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } return nil WriteFieldBeginError: @@ -26514,27 +26909,9 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *ListExptInsightAnalysisCommentRequest) writeField4(oprot thrift.TProtocol) (err error) { - if p.IsSetPageNumber() { - if err = oprot.WriteFieldBegin("page_number", thrift.I32, 4); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI32(*p.PageNumber); 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 *ListExptInsightAnalysisCommentRequest) writeField5(oprot thrift.TProtocol) (err error) { +func (p *ListExptResultExportRecordRequest) writeField4(oprot thrift.TProtocol) (err error) { if p.IsSetPageSize() { - if err = oprot.WriteFieldBegin("page_size", thrift.I32, 5); err != nil { + if err = oprot.WriteFieldBegin("page_size", thrift.I32, 4); err != nil { goto WriteFieldBeginError } if err := oprot.WriteI32(*p.PageSize); err != nil { @@ -26546,11 +26923,11 @@ func (p *ListExptInsightAnalysisCommentRequest) writeField5(oprot thrift.TProtoc } return nil WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) } -func (p *ListExptInsightAnalysisCommentRequest) writeField200(oprot thrift.TProtocol) (err error) { +func (p *ListExptResultExportRecordRequest) writeField200(oprot thrift.TProtocol) (err error) { if p.IsSetSession() { if err = oprot.WriteFieldBegin("session", thrift.STRUCT, 200); err != nil { goto WriteFieldBeginError @@ -26568,7 +26945,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 200 end error: ", p), err) } -func (p *ListExptInsightAnalysisCommentRequest) writeField255(oprot thrift.TProtocol) (err error) { +func (p *ListExptResultExportRecordRequest) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -26587,15 +26964,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *ListExptInsightAnalysisCommentRequest) String() string { +func (p *ListExptResultExportRecordRequest) String() string { if p == nil { return "" } - return fmt.Sprintf("ListExptInsightAnalysisCommentRequest(%+v)", *p) + return fmt.Sprintf("ListExptResultExportRecordRequest(%+v)", *p) } -func (p *ListExptInsightAnalysisCommentRequest) DeepEqual(ano *ListExptInsightAnalysisCommentRequest) bool { +func (p *ListExptResultExportRecordRequest) DeepEqual(ano *ListExptResultExportRecordRequest) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -26607,13 +26984,10 @@ func (p *ListExptInsightAnalysisCommentRequest) DeepEqual(ano *ListExptInsightAn if !p.Field2DeepEqual(ano.ExptID) { return false } - if !p.Field3DeepEqual(ano.InsightAnalysisRecordID) { - return false - } - if !p.Field4DeepEqual(ano.PageNumber) { + if !p.Field3DeepEqual(ano.PageNumber) { return false } - if !p.Field5DeepEqual(ano.PageSize) { + if !p.Field4DeepEqual(ano.PageSize) { return false } if !p.Field200DeepEqual(ano.Session) { @@ -26625,28 +26999,21 @@ func (p *ListExptInsightAnalysisCommentRequest) DeepEqual(ano *ListExptInsightAn return true } -func (p *ListExptInsightAnalysisCommentRequest) Field1DeepEqual(src int64) bool { +func (p *ListExptResultExportRecordRequest) Field1DeepEqual(src int64) bool { if p.WorkspaceID != src { return false } return true } -func (p *ListExptInsightAnalysisCommentRequest) Field2DeepEqual(src int64) bool { +func (p *ListExptResultExportRecordRequest) Field2DeepEqual(src int64) bool { if p.ExptID != src { return false } return true } -func (p *ListExptInsightAnalysisCommentRequest) Field3DeepEqual(src int64) bool { - - if p.InsightAnalysisRecordID != src { - return false - } - return true -} -func (p *ListExptInsightAnalysisCommentRequest) Field4DeepEqual(src *int32) bool { +func (p *ListExptResultExportRecordRequest) Field3DeepEqual(src *int32) bool { if p.PageNumber == src { return true @@ -26658,7 +27025,7 @@ func (p *ListExptInsightAnalysisCommentRequest) Field4DeepEqual(src *int32) bool } return true } -func (p *ListExptInsightAnalysisCommentRequest) Field5DeepEqual(src *int32) bool { +func (p *ListExptResultExportRecordRequest) Field4DeepEqual(src *int32) bool { if p.PageSize == src { return true @@ -26670,14 +27037,14 @@ func (p *ListExptInsightAnalysisCommentRequest) Field5DeepEqual(src *int32) bool } return true } -func (p *ListExptInsightAnalysisCommentRequest) Field200DeepEqual(src *common.Session) bool { +func (p *ListExptResultExportRecordRequest) Field200DeepEqual(src *common.Session) bool { if !p.Session.DeepEqual(src) { return false } return true } -func (p *ListExptInsightAnalysisCommentRequest) Field255DeepEqual(src *base.Base) bool { +func (p *ListExptResultExportRecordRequest) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { return false @@ -26685,77 +27052,77 @@ func (p *ListExptInsightAnalysisCommentRequest) Field255DeepEqual(src *base.Base return true } -type ListExptInsightAnalysisCommentResponse struct { - ExptInsightAnalysisFeedbackComments []*expt.ExptInsightAnalysisFeedbackComment `thrift:"expt_insight_analysis_feedback_comments,1,required" frugal:"1,required,list" form:"expt_insight_analysis_feedback_comments,required" json:"expt_insight_analysis_feedback_comments,required" query:"expt_insight_analysis_feedback_comments,required"` - Total *int64 `thrift:"total,20,optional" frugal:"20,optional,i64" json:"total" form:"total" ` - BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` +type ListExptResultExportRecordResponse struct { + ExptResultExportRecords []*expt.ExptResultExportRecord `thrift:"expt_result_export_records,1,required" frugal:"1,required,list" form:"expt_result_export_records,required" json:"expt_result_export_records,required" query:"expt_result_export_records,required"` + Total *int64 `thrift:"total,20,optional" frugal:"20,optional,i64" json:"total" form:"total" ` + BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` } -func NewListExptInsightAnalysisCommentResponse() *ListExptInsightAnalysisCommentResponse { - return &ListExptInsightAnalysisCommentResponse{} +func NewListExptResultExportRecordResponse() *ListExptResultExportRecordResponse { + return &ListExptResultExportRecordResponse{} } -func (p *ListExptInsightAnalysisCommentResponse) InitDefault() { +func (p *ListExptResultExportRecordResponse) InitDefault() { } -func (p *ListExptInsightAnalysisCommentResponse) GetExptInsightAnalysisFeedbackComments() (v []*expt.ExptInsightAnalysisFeedbackComment) { +func (p *ListExptResultExportRecordResponse) GetExptResultExportRecords() (v []*expt.ExptResultExportRecord) { if p != nil { - return p.ExptInsightAnalysisFeedbackComments + return p.ExptResultExportRecords } return } -var ListExptInsightAnalysisCommentResponse_Total_DEFAULT int64 +var ListExptResultExportRecordResponse_Total_DEFAULT int64 -func (p *ListExptInsightAnalysisCommentResponse) GetTotal() (v int64) { +func (p *ListExptResultExportRecordResponse) GetTotal() (v int64) { if p == nil { return } if !p.IsSetTotal() { - return ListExptInsightAnalysisCommentResponse_Total_DEFAULT + return ListExptResultExportRecordResponse_Total_DEFAULT } return *p.Total } -var ListExptInsightAnalysisCommentResponse_BaseResp_DEFAULT *base.BaseResp +var ListExptResultExportRecordResponse_BaseResp_DEFAULT *base.BaseResp -func (p *ListExptInsightAnalysisCommentResponse) GetBaseResp() (v *base.BaseResp) { +func (p *ListExptResultExportRecordResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } if !p.IsSetBaseResp() { - return ListExptInsightAnalysisCommentResponse_BaseResp_DEFAULT + return ListExptResultExportRecordResponse_BaseResp_DEFAULT } return p.BaseResp } -func (p *ListExptInsightAnalysisCommentResponse) SetExptInsightAnalysisFeedbackComments(val []*expt.ExptInsightAnalysisFeedbackComment) { - p.ExptInsightAnalysisFeedbackComments = val +func (p *ListExptResultExportRecordResponse) SetExptResultExportRecords(val []*expt.ExptResultExportRecord) { + p.ExptResultExportRecords = val } -func (p *ListExptInsightAnalysisCommentResponse) SetTotal(val *int64) { +func (p *ListExptResultExportRecordResponse) SetTotal(val *int64) { p.Total = val } -func (p *ListExptInsightAnalysisCommentResponse) SetBaseResp(val *base.BaseResp) { +func (p *ListExptResultExportRecordResponse) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } -var fieldIDToName_ListExptInsightAnalysisCommentResponse = map[int16]string{ - 1: "expt_insight_analysis_feedback_comments", +var fieldIDToName_ListExptResultExportRecordResponse = map[int16]string{ + 1: "expt_result_export_records", 20: "total", 255: "BaseResp", } -func (p *ListExptInsightAnalysisCommentResponse) IsSetTotal() bool { +func (p *ListExptResultExportRecordResponse) IsSetTotal() bool { return p.Total != nil } -func (p *ListExptInsightAnalysisCommentResponse) IsSetBaseResp() bool { +func (p *ListExptResultExportRecordResponse) IsSetBaseResp() bool { return p.BaseResp != nil } -func (p *ListExptInsightAnalysisCommentResponse) Read(iprot thrift.TProtocol) (err error) { +func (p *ListExptResultExportRecordResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetExptInsightAnalysisFeedbackComments bool = false + var issetExptResultExportRecords bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -26776,7 +27143,7 @@ func (p *ListExptInsightAnalysisCommentResponse) Read(iprot thrift.TProtocol) (e if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } - issetExptInsightAnalysisFeedbackComments = true + issetExptResultExportRecords = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -26809,7 +27176,7 @@ func (p *ListExptInsightAnalysisCommentResponse) Read(iprot thrift.TProtocol) (e goto ReadStructEndError } - if !issetExptInsightAnalysisFeedbackComments { + if !issetExptResultExportRecords { fieldId = 1 goto RequiredFieldNotSetError } @@ -26819,7 +27186,7 @@ ReadStructBeginError: 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_ListExptInsightAnalysisCommentResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListExptResultExportRecordResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -26828,16 +27195,16 @@ ReadFieldEndError: 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_ListExptInsightAnalysisCommentResponse[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_ListExptResultExportRecordResponse[fieldId])) } -func (p *ListExptInsightAnalysisCommentResponse) ReadField1(iprot thrift.TProtocol) error { +func (p *ListExptResultExportRecordResponse) ReadField1(iprot thrift.TProtocol) error { _, size, err := iprot.ReadListBegin() if err != nil { return err } - _field := make([]*expt.ExptInsightAnalysisFeedbackComment, 0, size) - values := make([]expt.ExptInsightAnalysisFeedbackComment, size) + _field := make([]*expt.ExptResultExportRecord, 0, size) + values := make([]expt.ExptResultExportRecord, size) for i := 0; i < size; i++ { _elem := &values[i] _elem.InitDefault() @@ -26851,10 +27218,10 @@ func (p *ListExptInsightAnalysisCommentResponse) ReadField1(iprot thrift.TProtoc if err := iprot.ReadListEnd(); err != nil { return err } - p.ExptInsightAnalysisFeedbackComments = _field + p.ExptResultExportRecords = _field return nil } -func (p *ListExptInsightAnalysisCommentResponse) ReadField20(iprot thrift.TProtocol) error { +func (p *ListExptResultExportRecordResponse) ReadField20(iprot thrift.TProtocol) error { var _field *int64 if v, err := iprot.ReadI64(); err != nil { @@ -26865,7 +27232,7 @@ func (p *ListExptInsightAnalysisCommentResponse) ReadField20(iprot thrift.TProto p.Total = _field return nil } -func (p *ListExptInsightAnalysisCommentResponse) ReadField255(iprot thrift.TProtocol) error { +func (p *ListExptResultExportRecordResponse) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err @@ -26874,9 +27241,9 @@ func (p *ListExptInsightAnalysisCommentResponse) ReadField255(iprot thrift.TProt return nil } -func (p *ListExptInsightAnalysisCommentResponse) Write(oprot thrift.TProtocol) (err error) { +func (p *ListExptResultExportRecordResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListExptInsightAnalysisCommentResponse"); err != nil { + if err = oprot.WriteStructBegin("ListExptResultExportRecordResponse"); err != nil { goto WriteStructBeginError } if p != nil { @@ -26910,14 +27277,14 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ListExptInsightAnalysisCommentResponse) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("expt_insight_analysis_feedback_comments", thrift.LIST, 1); err != nil { +func (p *ListExptResultExportRecordResponse) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("expt_result_export_records", thrift.LIST, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteListBegin(thrift.STRUCT, len(p.ExptInsightAnalysisFeedbackComments)); err != nil { + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.ExptResultExportRecords)); err != nil { return err } - for _, v := range p.ExptInsightAnalysisFeedbackComments { + for _, v := range p.ExptResultExportRecords { if err := v.Write(oprot); err != nil { return err } @@ -26934,7 +27301,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ListExptInsightAnalysisCommentResponse) writeField20(oprot thrift.TProtocol) (err error) { +func (p *ListExptResultExportRecordResponse) writeField20(oprot thrift.TProtocol) (err error) { if p.IsSetTotal() { if err = oprot.WriteFieldBegin("total", thrift.I64, 20); err != nil { goto WriteFieldBeginError @@ -26952,7 +27319,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 20 end error: ", p), err) } -func (p *ListExptInsightAnalysisCommentResponse) writeField255(oprot thrift.TProtocol) (err error) { +func (p *ListExptResultExportRecordResponse) writeField255(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError } @@ -26969,21 +27336,21 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *ListExptInsightAnalysisCommentResponse) String() string { +func (p *ListExptResultExportRecordResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("ListExptInsightAnalysisCommentResponse(%+v)", *p) + return fmt.Sprintf("ListExptResultExportRecordResponse(%+v)", *p) } -func (p *ListExptInsightAnalysisCommentResponse) DeepEqual(ano *ListExptInsightAnalysisCommentResponse) bool { +func (p *ListExptResultExportRecordResponse) DeepEqual(ano *ListExptResultExportRecordResponse) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.ExptInsightAnalysisFeedbackComments) { + if !p.Field1DeepEqual(ano.ExptResultExportRecords) { return false } if !p.Field20DeepEqual(ano.Total) { @@ -26995,12 +27362,12 @@ func (p *ListExptInsightAnalysisCommentResponse) DeepEqual(ano *ListExptInsightA return true } -func (p *ListExptInsightAnalysisCommentResponse) Field1DeepEqual(src []*expt.ExptInsightAnalysisFeedbackComment) bool { +func (p *ListExptResultExportRecordResponse) Field1DeepEqual(src []*expt.ExptResultExportRecord) bool { - if len(p.ExptInsightAnalysisFeedbackComments) != len(src) { + if len(p.ExptResultExportRecords) != len(src) { return false } - for i, v := range p.ExptInsightAnalysisFeedbackComments { + for i, v := range p.ExptResultExportRecords { _src := src[i] if !v.DeepEqual(_src) { return false @@ -27008,7 +27375,7 @@ func (p *ListExptInsightAnalysisCommentResponse) Field1DeepEqual(src []*expt.Exp } return true } -func (p *ListExptInsightAnalysisCommentResponse) Field20DeepEqual(src *int64) bool { +func (p *ListExptResultExportRecordResponse) Field20DeepEqual(src *int64) bool { if p.Total == src { return true @@ -27020,7 +27387,7 @@ func (p *ListExptInsightAnalysisCommentResponse) Field20DeepEqual(src *int64) bo } return true } -func (p *ListExptInsightAnalysisCommentResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *ListExptResultExportRecordResponse) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { return false @@ -27028,127 +27395,103 @@ func (p *ListExptInsightAnalysisCommentResponse) Field255DeepEqual(src *base.Bas return true } -type GetAnalysisRecordFeedbackVoteRequest struct { - WorkspaceID *int64 `thrift:"workspace_id,1,optional" frugal:"1,optional,i64" json:"workspace_id" query:"workspace_id" ` - ExptID *int64 `thrift:"expt_id,2,optional" frugal:"2,optional,i64" json:"expt_id" query:"expt_id" ` - InsightAnalysisRecordID *int64 `thrift:"insight_analysis_record_id,3,optional" frugal:"3,optional,i64" json:"insight_analysis_record_id" path:"insight_analysis_record_id" ` - Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` - Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` +type GetExptResultExportRecordRequest struct { + WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` + ExptID int64 `thrift:"expt_id,2,required" frugal:"2,required,i64" json:"expt_id" path:"expt_id,required" ` + ExportID int64 `thrift:"export_id,4,required" frugal:"4,required,i64" json:"export_id" path:"export_id,required" ` + Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` } -func NewGetAnalysisRecordFeedbackVoteRequest() *GetAnalysisRecordFeedbackVoteRequest { - return &GetAnalysisRecordFeedbackVoteRequest{} +func NewGetExptResultExportRecordRequest() *GetExptResultExportRecordRequest { + return &GetExptResultExportRecordRequest{} } -func (p *GetAnalysisRecordFeedbackVoteRequest) InitDefault() { +func (p *GetExptResultExportRecordRequest) InitDefault() { } -var GetAnalysisRecordFeedbackVoteRequest_WorkspaceID_DEFAULT int64 - -func (p *GetAnalysisRecordFeedbackVoteRequest) GetWorkspaceID() (v int64) { - if p == nil { - return - } - if !p.IsSetWorkspaceID() { - return GetAnalysisRecordFeedbackVoteRequest_WorkspaceID_DEFAULT +func (p *GetExptResultExportRecordRequest) GetWorkspaceID() (v int64) { + if p != nil { + return p.WorkspaceID } - return *p.WorkspaceID + return } -var GetAnalysisRecordFeedbackVoteRequest_ExptID_DEFAULT int64 - -func (p *GetAnalysisRecordFeedbackVoteRequest) GetExptID() (v int64) { - if p == nil { - return - } - if !p.IsSetExptID() { - return GetAnalysisRecordFeedbackVoteRequest_ExptID_DEFAULT +func (p *GetExptResultExportRecordRequest) GetExptID() (v int64) { + if p != nil { + return p.ExptID } - return *p.ExptID + return } -var GetAnalysisRecordFeedbackVoteRequest_InsightAnalysisRecordID_DEFAULT int64 - -func (p *GetAnalysisRecordFeedbackVoteRequest) GetInsightAnalysisRecordID() (v int64) { - if p == nil { - return - } - if !p.IsSetInsightAnalysisRecordID() { - return GetAnalysisRecordFeedbackVoteRequest_InsightAnalysisRecordID_DEFAULT +func (p *GetExptResultExportRecordRequest) GetExportID() (v int64) { + if p != nil { + return p.ExportID } - return *p.InsightAnalysisRecordID + return } -var GetAnalysisRecordFeedbackVoteRequest_Session_DEFAULT *common.Session +var GetExptResultExportRecordRequest_Session_DEFAULT *common.Session -func (p *GetAnalysisRecordFeedbackVoteRequest) GetSession() (v *common.Session) { +func (p *GetExptResultExportRecordRequest) GetSession() (v *common.Session) { if p == nil { return } if !p.IsSetSession() { - return GetAnalysisRecordFeedbackVoteRequest_Session_DEFAULT + return GetExptResultExportRecordRequest_Session_DEFAULT } return p.Session } -var GetAnalysisRecordFeedbackVoteRequest_Base_DEFAULT *base.Base +var GetExptResultExportRecordRequest_Base_DEFAULT *base.Base -func (p *GetAnalysisRecordFeedbackVoteRequest) GetBase() (v *base.Base) { +func (p *GetExptResultExportRecordRequest) GetBase() (v *base.Base) { if p == nil { return } if !p.IsSetBase() { - return GetAnalysisRecordFeedbackVoteRequest_Base_DEFAULT + return GetExptResultExportRecordRequest_Base_DEFAULT } return p.Base } -func (p *GetAnalysisRecordFeedbackVoteRequest) SetWorkspaceID(val *int64) { +func (p *GetExptResultExportRecordRequest) SetWorkspaceID(val int64) { p.WorkspaceID = val } -func (p *GetAnalysisRecordFeedbackVoteRequest) SetExptID(val *int64) { +func (p *GetExptResultExportRecordRequest) SetExptID(val int64) { p.ExptID = val } -func (p *GetAnalysisRecordFeedbackVoteRequest) SetInsightAnalysisRecordID(val *int64) { - p.InsightAnalysisRecordID = val +func (p *GetExptResultExportRecordRequest) SetExportID(val int64) { + p.ExportID = val } -func (p *GetAnalysisRecordFeedbackVoteRequest) SetSession(val *common.Session) { +func (p *GetExptResultExportRecordRequest) SetSession(val *common.Session) { p.Session = val } -func (p *GetAnalysisRecordFeedbackVoteRequest) SetBase(val *base.Base) { +func (p *GetExptResultExportRecordRequest) SetBase(val *base.Base) { p.Base = val } -var fieldIDToName_GetAnalysisRecordFeedbackVoteRequest = map[int16]string{ +var fieldIDToName_GetExptResultExportRecordRequest = map[int16]string{ 1: "workspace_id", 2: "expt_id", - 3: "insight_analysis_record_id", + 4: "export_id", 200: "session", 255: "Base", } -func (p *GetAnalysisRecordFeedbackVoteRequest) IsSetWorkspaceID() bool { - return p.WorkspaceID != nil -} - -func (p *GetAnalysisRecordFeedbackVoteRequest) IsSetExptID() bool { - return p.ExptID != nil -} - -func (p *GetAnalysisRecordFeedbackVoteRequest) IsSetInsightAnalysisRecordID() bool { - return p.InsightAnalysisRecordID != nil -} - -func (p *GetAnalysisRecordFeedbackVoteRequest) IsSetSession() bool { +func (p *GetExptResultExportRecordRequest) IsSetSession() bool { return p.Session != nil } -func (p *GetAnalysisRecordFeedbackVoteRequest) IsSetBase() bool { +func (p *GetExptResultExportRecordRequest) IsSetBase() bool { return p.Base != nil } -func (p *GetAnalysisRecordFeedbackVoteRequest) Read(iprot thrift.TProtocol) (err error) { +func (p *GetExptResultExportRecordRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 + var issetWorkspaceID bool = false + var issetExptID bool = false + var issetExportID bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -27169,6 +27512,7 @@ func (p *GetAnalysisRecordFeedbackVoteRequest) Read(iprot thrift.TProtocol) (err if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } + issetWorkspaceID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -27177,14 +27521,16 @@ func (p *GetAnalysisRecordFeedbackVoteRequest) Read(iprot thrift.TProtocol) (err if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } + issetExptID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } - case 3: + case 4: if fieldTypeId == thrift.I64 { - if err = p.ReadField3(iprot); err != nil { + if err = p.ReadField4(iprot); err != nil { goto ReadFieldError } + issetExportID = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -27217,13 +27563,27 @@ func (p *GetAnalysisRecordFeedbackVoteRequest) Read(iprot thrift.TProtocol) (err goto ReadStructEndError } + if !issetWorkspaceID { + fieldId = 1 + goto RequiredFieldNotSetError + } + + if !issetExptID { + fieldId = 2 + goto RequiredFieldNotSetError + } + + if !issetExportID { + fieldId = 4 + 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_GetAnalysisRecordFeedbackVoteRequest[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_GetExptResultExportRecordRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -27231,42 +27591,44 @@ 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_GetExptResultExportRecordRequest[fieldId])) } -func (p *GetAnalysisRecordFeedbackVoteRequest) ReadField1(iprot thrift.TProtocol) error { +func (p *GetExptResultExportRecordRequest) ReadField1(iprot thrift.TProtocol) error { - var _field *int64 + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - _field = &v + _field = v } p.WorkspaceID = _field return nil } -func (p *GetAnalysisRecordFeedbackVoteRequest) ReadField2(iprot thrift.TProtocol) error { +func (p *GetExptResultExportRecordRequest) ReadField2(iprot thrift.TProtocol) error { - var _field *int64 + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - _field = &v + _field = v } p.ExptID = _field return nil } -func (p *GetAnalysisRecordFeedbackVoteRequest) ReadField3(iprot thrift.TProtocol) error { +func (p *GetExptResultExportRecordRequest) ReadField4(iprot thrift.TProtocol) error { - var _field *int64 + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - _field = &v + _field = v } - p.InsightAnalysisRecordID = _field + p.ExportID = _field return nil } -func (p *GetAnalysisRecordFeedbackVoteRequest) ReadField200(iprot thrift.TProtocol) error { +func (p *GetExptResultExportRecordRequest) ReadField200(iprot thrift.TProtocol) error { _field := common.NewSession() if err := _field.Read(iprot); err != nil { return err @@ -27274,7 +27636,7 @@ func (p *GetAnalysisRecordFeedbackVoteRequest) ReadField200(iprot thrift.TProtoc p.Session = _field return nil } -func (p *GetAnalysisRecordFeedbackVoteRequest) ReadField255(iprot thrift.TProtocol) error { +func (p *GetExptResultExportRecordRequest) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBase() if err := _field.Read(iprot); err != nil { return err @@ -27283,9 +27645,9 @@ func (p *GetAnalysisRecordFeedbackVoteRequest) ReadField255(iprot thrift.TProtoc return nil } -func (p *GetAnalysisRecordFeedbackVoteRequest) Write(oprot thrift.TProtocol) (err error) { +func (p *GetExptResultExportRecordRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("GetAnalysisRecordFeedbackVoteRequest"); err != nil { + if err = oprot.WriteStructBegin("GetExptResultExportRecordRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -27297,8 +27659,8 @@ func (p *GetAnalysisRecordFeedbackVoteRequest) Write(oprot thrift.TProtocol) (er fieldId = 2 goto WriteFieldError } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 + if err = p.writeField4(oprot); err != nil { + fieldId = 4 goto WriteFieldError } if err = p.writeField200(oprot); err != nil { @@ -27327,17 +27689,15 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *GetAnalysisRecordFeedbackVoteRequest) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetWorkspaceID() { - if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.WorkspaceID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } +func (p *GetExptResultExportRecordRequest) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.WorkspaceID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } return nil WriteFieldBeginError: @@ -27345,17 +27705,15 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *GetAnalysisRecordFeedbackVoteRequest) writeField2(oprot thrift.TProtocol) (err error) { - if p.IsSetExptID() { - if err = oprot.WriteFieldBegin("expt_id", thrift.I64, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.ExptID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } +func (p *GetExptResultExportRecordRequest) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("expt_id", thrift.I64, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.ExptID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } return nil WriteFieldBeginError: @@ -27363,25 +27721,23 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *GetAnalysisRecordFeedbackVoteRequest) writeField3(oprot thrift.TProtocol) (err error) { - if p.IsSetInsightAnalysisRecordID() { - if err = oprot.WriteFieldBegin("insight_analysis_record_id", thrift.I64, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(*p.InsightAnalysisRecordID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } +func (p *GetExptResultExportRecordRequest) writeField4(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("export_id", thrift.I64, 4); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.ExportID); 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) + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) } -func (p *GetAnalysisRecordFeedbackVoteRequest) writeField200(oprot thrift.TProtocol) (err error) { +func (p *GetExptResultExportRecordRequest) writeField200(oprot thrift.TProtocol) (err error) { if p.IsSetSession() { if err = oprot.WriteFieldBegin("session", thrift.STRUCT, 200); err != nil { goto WriteFieldBeginError @@ -27399,7 +27755,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 200 end error: ", p), err) } -func (p *GetAnalysisRecordFeedbackVoteRequest) writeField255(oprot thrift.TProtocol) (err error) { +func (p *GetExptResultExportRecordRequest) writeField255(oprot thrift.TProtocol) (err error) { if p.IsSetBase() { if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError @@ -27418,15 +27774,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *GetAnalysisRecordFeedbackVoteRequest) String() string { +func (p *GetExptResultExportRecordRequest) String() string { if p == nil { return "" } - return fmt.Sprintf("GetAnalysisRecordFeedbackVoteRequest(%+v)", *p) + return fmt.Sprintf("GetExptResultExportRecordRequest(%+v)", *p) } -func (p *GetAnalysisRecordFeedbackVoteRequest) DeepEqual(ano *GetAnalysisRecordFeedbackVoteRequest) bool { +func (p *GetExptResultExportRecordRequest) DeepEqual(ano *GetExptResultExportRecordRequest) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -27438,7 +27794,7 @@ func (p *GetAnalysisRecordFeedbackVoteRequest) DeepEqual(ano *GetAnalysisRecordF if !p.Field2DeepEqual(ano.ExptID) { return false } - if !p.Field3DeepEqual(ano.InsightAnalysisRecordID) { + if !p.Field4DeepEqual(ano.ExportID) { return false } if !p.Field200DeepEqual(ano.Session) { @@ -27450,50 +27806,35 @@ func (p *GetAnalysisRecordFeedbackVoteRequest) DeepEqual(ano *GetAnalysisRecordF return true } -func (p *GetAnalysisRecordFeedbackVoteRequest) Field1DeepEqual(src *int64) bool { +func (p *GetExptResultExportRecordRequest) Field1DeepEqual(src int64) bool { - if p.WorkspaceID == src { - return true - } else if p.WorkspaceID == nil || src == nil { - return false - } - if *p.WorkspaceID != *src { + if p.WorkspaceID != src { return false } return true } -func (p *GetAnalysisRecordFeedbackVoteRequest) Field2DeepEqual(src *int64) bool { +func (p *GetExptResultExportRecordRequest) Field2DeepEqual(src int64) bool { - if p.ExptID == src { - return true - } else if p.ExptID == nil || src == nil { - return false - } - if *p.ExptID != *src { + if p.ExptID != src { return false } return true } -func (p *GetAnalysisRecordFeedbackVoteRequest) Field3DeepEqual(src *int64) bool { +func (p *GetExptResultExportRecordRequest) Field4DeepEqual(src int64) bool { - if p.InsightAnalysisRecordID == src { - return true - } else if p.InsightAnalysisRecordID == nil || src == nil { - return false - } - if *p.InsightAnalysisRecordID != *src { + if p.ExportID != src { return false } return true } -func (p *GetAnalysisRecordFeedbackVoteRequest) Field200DeepEqual(src *common.Session) bool { +func (p *GetExptResultExportRecordRequest) Field200DeepEqual(src *common.Session) bool { if !p.Session.DeepEqual(src) { return false } return true } -func (p *GetAnalysisRecordFeedbackVoteRequest) Field255DeepEqual(src *base.Base) bool { +func (p *GetExptResultExportRecordRequest) Field255DeepEqual(src *base.Base) bool { if !p.Base.DeepEqual(src) { return false @@ -27501,62 +27842,62 @@ func (p *GetAnalysisRecordFeedbackVoteRequest) Field255DeepEqual(src *base.Base) return true } -type GetAnalysisRecordFeedbackVoteResponse struct { - Vote *expt.ExptInsightAnalysisFeedbackVote `thrift:"vote,1,optional" frugal:"1,optional,expt.ExptInsightAnalysisFeedbackVote" form:"vote" json:"vote,omitempty" query:"vote"` - BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` +type GetExptResultExportRecordResponse struct { + ExptResultExportRecord *expt.ExptResultExportRecord `thrift:"expt_result_export_record,1,optional" frugal:"1,optional,expt.ExptResultExportRecord" form:"expt_result_export_records" json:"expt_result_export_records,omitempty"` + BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` } -func NewGetAnalysisRecordFeedbackVoteResponse() *GetAnalysisRecordFeedbackVoteResponse { - return &GetAnalysisRecordFeedbackVoteResponse{} +func NewGetExptResultExportRecordResponse() *GetExptResultExportRecordResponse { + return &GetExptResultExportRecordResponse{} } -func (p *GetAnalysisRecordFeedbackVoteResponse) InitDefault() { +func (p *GetExptResultExportRecordResponse) InitDefault() { } -var GetAnalysisRecordFeedbackVoteResponse_Vote_DEFAULT *expt.ExptInsightAnalysisFeedbackVote +var GetExptResultExportRecordResponse_ExptResultExportRecord_DEFAULT *expt.ExptResultExportRecord -func (p *GetAnalysisRecordFeedbackVoteResponse) GetVote() (v *expt.ExptInsightAnalysisFeedbackVote) { +func (p *GetExptResultExportRecordResponse) GetExptResultExportRecord() (v *expt.ExptResultExportRecord) { if p == nil { return } - if !p.IsSetVote() { - return GetAnalysisRecordFeedbackVoteResponse_Vote_DEFAULT + if !p.IsSetExptResultExportRecord() { + return GetExptResultExportRecordResponse_ExptResultExportRecord_DEFAULT } - return p.Vote + return p.ExptResultExportRecord } -var GetAnalysisRecordFeedbackVoteResponse_BaseResp_DEFAULT *base.BaseResp +var GetExptResultExportRecordResponse_BaseResp_DEFAULT *base.BaseResp -func (p *GetAnalysisRecordFeedbackVoteResponse) GetBaseResp() (v *base.BaseResp) { +func (p *GetExptResultExportRecordResponse) GetBaseResp() (v *base.BaseResp) { if p == nil { return } if !p.IsSetBaseResp() { - return GetAnalysisRecordFeedbackVoteResponse_BaseResp_DEFAULT + return GetExptResultExportRecordResponse_BaseResp_DEFAULT } return p.BaseResp } -func (p *GetAnalysisRecordFeedbackVoteResponse) SetVote(val *expt.ExptInsightAnalysisFeedbackVote) { - p.Vote = val +func (p *GetExptResultExportRecordResponse) SetExptResultExportRecord(val *expt.ExptResultExportRecord) { + p.ExptResultExportRecord = val } -func (p *GetAnalysisRecordFeedbackVoteResponse) SetBaseResp(val *base.BaseResp) { +func (p *GetExptResultExportRecordResponse) SetBaseResp(val *base.BaseResp) { p.BaseResp = val } -var fieldIDToName_GetAnalysisRecordFeedbackVoteResponse = map[int16]string{ - 1: "vote", +var fieldIDToName_GetExptResultExportRecordResponse = map[int16]string{ + 1: "expt_result_export_record", 255: "BaseResp", } -func (p *GetAnalysisRecordFeedbackVoteResponse) IsSetVote() bool { - return p.Vote != nil +func (p *GetExptResultExportRecordResponse) IsSetExptResultExportRecord() bool { + return p.ExptResultExportRecord != nil } -func (p *GetAnalysisRecordFeedbackVoteResponse) IsSetBaseResp() bool { +func (p *GetExptResultExportRecordResponse) IsSetBaseResp() bool { return p.BaseResp != nil } -func (p *GetAnalysisRecordFeedbackVoteResponse) Read(iprot thrift.TProtocol) (err error) { +func (p *GetExptResultExportRecordResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -27609,7 +27950,7 @@ ReadStructBeginError: 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_GetAnalysisRecordFeedbackVoteResponse[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_GetExptResultExportRecordResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -27619,15 +27960,15 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *GetAnalysisRecordFeedbackVoteResponse) ReadField1(iprot thrift.TProtocol) error { - _field := expt.NewExptInsightAnalysisFeedbackVote() +func (p *GetExptResultExportRecordResponse) ReadField1(iprot thrift.TProtocol) error { + _field := expt.NewExptResultExportRecord() if err := _field.Read(iprot); err != nil { return err } - p.Vote = _field + p.ExptResultExportRecord = _field return nil } -func (p *GetAnalysisRecordFeedbackVoteResponse) ReadField255(iprot thrift.TProtocol) error { +func (p *GetExptResultExportRecordResponse) ReadField255(iprot thrift.TProtocol) error { _field := base.NewBaseResp() if err := _field.Read(iprot); err != nil { return err @@ -27636,9 +27977,9 @@ func (p *GetAnalysisRecordFeedbackVoteResponse) ReadField255(iprot thrift.TProto return nil } -func (p *GetAnalysisRecordFeedbackVoteResponse) Write(oprot thrift.TProtocol) (err error) { +func (p *GetExptResultExportRecordResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("GetAnalysisRecordFeedbackVoteResponse"); err != nil { + if err = oprot.WriteStructBegin("GetExptResultExportRecordResponse"); err != nil { goto WriteStructBeginError } if p != nil { @@ -27668,12 +28009,12 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *GetAnalysisRecordFeedbackVoteResponse) writeField1(oprot thrift.TProtocol) (err error) { - if p.IsSetVote() { - if err = oprot.WriteFieldBegin("vote", thrift.STRUCT, 1); err != nil { +func (p *GetExptResultExportRecordResponse) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetExptResultExportRecord() { + if err = oprot.WriteFieldBegin("expt_result_export_record", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } - if err := p.Vote.Write(oprot); err != nil { + if err := p.ExptResultExportRecord.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -27686,7 +28027,7 @@ WriteFieldBeginError: WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *GetAnalysisRecordFeedbackVoteResponse) writeField255(oprot thrift.TProtocol) (err error) { +func (p *GetExptResultExportRecordResponse) writeField255(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { goto WriteFieldBeginError } @@ -27703,21 +28044,21 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) } -func (p *GetAnalysisRecordFeedbackVoteResponse) String() string { +func (p *GetExptResultExportRecordResponse) String() string { if p == nil { return "" } - return fmt.Sprintf("GetAnalysisRecordFeedbackVoteResponse(%+v)", *p) + return fmt.Sprintf("GetExptResultExportRecordResponse(%+v)", *p) } -func (p *GetAnalysisRecordFeedbackVoteResponse) DeepEqual(ano *GetAnalysisRecordFeedbackVoteResponse) bool { +func (p *GetExptResultExportRecordResponse) DeepEqual(ano *GetExptResultExportRecordResponse) bool { if p == ano { return true } else if p == nil || ano == nil { return false } - if !p.Field1DeepEqual(ano.Vote) { + if !p.Field1DeepEqual(ano.ExptResultExportRecord) { return false } if !p.Field255DeepEqual(ano.BaseResp) { @@ -27726,14 +28067,14 @@ func (p *GetAnalysisRecordFeedbackVoteResponse) DeepEqual(ano *GetAnalysisRecord return true } -func (p *GetAnalysisRecordFeedbackVoteResponse) Field1DeepEqual(src *expt.ExptInsightAnalysisFeedbackVote) bool { +func (p *GetExptResultExportRecordResponse) Field1DeepEqual(src *expt.ExptResultExportRecord) bool { - if !p.Vote.DeepEqual(src) { + if !p.ExptResultExportRecord.DeepEqual(src) { return false } return true } -func (p *GetAnalysisRecordFeedbackVoteResponse) Field255DeepEqual(src *base.BaseResp) bool { +func (p *GetExptResultExportRecordResponse) Field255DeepEqual(src *base.BaseResp) bool { if !p.BaseResp.DeepEqual(src) { return false @@ -27741,2090 +28082,10216 @@ func (p *GetAnalysisRecordFeedbackVoteResponse) Field255DeepEqual(src *base.Base return true } -type ExperimentService interface { - CheckExperimentName(ctx context.Context, req *CheckExperimentNameRequest) (r *CheckExperimentNameResponse, err error) - // CreateExperiment 只创建,不提交运行 - CreateExperiment(ctx context.Context, req *CreateExperimentRequest) (r *CreateExperimentResponse, err error) - // SubmitExperiment 创建并提交运行 - SubmitExperiment(ctx context.Context, req *SubmitExperimentRequest) (r *SubmitExperimentResponse, err error) - - BatchGetExperiments(ctx context.Context, req *BatchGetExperimentsRequest) (r *BatchGetExperimentsResponse, err error) - - ListExperiments(ctx context.Context, req *ListExperimentsRequest) (r *ListExperimentsResponse, err error) - - UpdateExperiment(ctx context.Context, req *UpdateExperimentRequest) (r *UpdateExperimentResponse, err error) - - DeleteExperiment(ctx context.Context, req *DeleteExperimentRequest) (r *DeleteExperimentResponse, err error) - - BatchDeleteExperiments(ctx context.Context, req *BatchDeleteExperimentsRequest) (r *BatchDeleteExperimentsResponse, err error) - - CloneExperiment(ctx context.Context, req *CloneExperimentRequest) (r *CloneExperimentResponse, err error) - // RunExperiment 运行已创建的实验 - RunExperiment(ctx context.Context, req *RunExperimentRequest) (r *RunExperimentResponse, err error) - - RetryExperiment(ctx context.Context, req *RetryExperimentRequest) (r *RetryExperimentResponse, err error) - - KillExperiment(ctx context.Context, req *KillExperimentRequest) (r *KillExperimentResponse, err error) - // MGetExperimentResult 获取实验结果 - BatchGetExperimentResult_(ctx context.Context, req *BatchGetExperimentResultRequest) (r *BatchGetExperimentResultResponse, err error) - - CalculateExperimentAggrResult_(ctx context.Context, req *CalculateExperimentAggrResultRequest) (r *CalculateExperimentAggrResultResponse, err error) - - BatchGetExperimentAggrResult_(ctx context.Context, req *BatchGetExperimentAggrResultRequest) (r *BatchGetExperimentAggrResultResponse, err error) - // 在线实验 - InvokeExperiment(ctx context.Context, req *InvokeExperimentRequest) (r *InvokeExperimentResponse, err error) - - FinishExperiment(ctx context.Context, req *FinishExperimentRequest) (r *FinishExperimentResponse, err error) - - ListExperimentStats(ctx context.Context, req *ListExperimentStatsRequest) (r *ListExperimentStatsResponse, err error) - // 更新报告ck - UpsertExptTurnResultFilter(ctx context.Context, req *UpsertExptTurnResultFilterRequest) (r *UpsertExptTurnResultFilterResponse, err error) - // 人工标注 - AssociateAnnotationTag(ctx context.Context, req *AssociateAnnotationTagReq) (r *AssociateAnnotationTagResp, err error) - - DeleteAnnotationTag(ctx context.Context, req *DeleteAnnotationTagReq) (r *DeleteAnnotationTagResp, err error) - - CreateAnnotateRecord(ctx context.Context, req *CreateAnnotateRecordReq) (r *CreateAnnotateRecordResp, err error) - - UpdateAnnotateRecord(ctx context.Context, req *UpdateAnnotateRecordReq) (r *UpdateAnnotateRecordResp, err error) - // 报告下载 - ExportExptResult_(ctx context.Context, req *ExportExptResultRequest) (r *ExportExptResultResponse, err error) - - ListExptResultExportRecord(ctx context.Context, req *ListExptResultExportRecordRequest) (r *ListExptResultExportRecordResponse, err error) - - GetExptResultExportRecord(ctx context.Context, req *GetExptResultExportRecordRequest) (r *GetExptResultExportRecordResponse, err error) - // 报告分析 - InsightAnalysisExperiment(ctx context.Context, req *InsightAnalysisExperimentRequest) (r *InsightAnalysisExperimentResponse, err error) - - ListExptInsightAnalysisRecord(ctx context.Context, req *ListExptInsightAnalysisRecordRequest) (r *ListExptInsightAnalysisRecordResponse, err error) - - DeleteExptInsightAnalysisRecord(ctx context.Context, req *DeleteExptInsightAnalysisRecordRequest) (r *DeleteExptInsightAnalysisRecordResponse, err error) - - GetExptInsightAnalysisRecord(ctx context.Context, req *GetExptInsightAnalysisRecordRequest) (r *GetExptInsightAnalysisRecordResponse, err error) - - FeedbackExptInsightAnalysisReport(ctx context.Context, req *FeedbackExptInsightAnalysisReportRequest) (r *FeedbackExptInsightAnalysisReportResponse, err error) - - ListExptInsightAnalysisComment(ctx context.Context, req *ListExptInsightAnalysisCommentRequest) (r *ListExptInsightAnalysisCommentResponse, err error) +type GetExptInsightAnalysisRecordRequest struct { + WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` + ExptID int64 `thrift:"expt_id,2,required" frugal:"2,required,i64" json:"expt_id" path:"expt_id,required" ` + InsightAnalysisRecordID int64 `thrift:"insight_analysis_record_id,3,required" frugal:"3,required,i64" json:"insight_analysis_record_id" path:"insight_analysis_record_id,required" ` + Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` +} - GetAnalysisRecordFeedbackVote(ctx context.Context, req *GetAnalysisRecordFeedbackVoteRequest) (r *GetAnalysisRecordFeedbackVoteResponse, err error) +func NewGetExptInsightAnalysisRecordRequest() *GetExptInsightAnalysisRecordRequest { + return &GetExptInsightAnalysisRecordRequest{} } -type ExperimentServiceClient struct { - c thrift.TClient +func (p *GetExptInsightAnalysisRecordRequest) InitDefault() { } -func NewExperimentServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *ExperimentServiceClient { - return &ExperimentServiceClient{ - c: thrift.NewTStandardClient(f.GetProtocol(t), f.GetProtocol(t)), +func (p *GetExptInsightAnalysisRecordRequest) GetWorkspaceID() (v int64) { + if p != nil { + return p.WorkspaceID } + return } -func NewExperimentServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *ExperimentServiceClient { - return &ExperimentServiceClient{ - c: thrift.NewTStandardClient(iprot, oprot), +func (p *GetExptInsightAnalysisRecordRequest) GetExptID() (v int64) { + if p != nil { + return p.ExptID } + return } -func NewExperimentServiceClient(c thrift.TClient) *ExperimentServiceClient { - return &ExperimentServiceClient{ - c: c, +func (p *GetExptInsightAnalysisRecordRequest) GetInsightAnalysisRecordID() (v int64) { + if p != nil { + return p.InsightAnalysisRecordID } + return } -func (p *ExperimentServiceClient) Client_() thrift.TClient { - return p.c -} +var GetExptInsightAnalysisRecordRequest_Session_DEFAULT *common.Session -func (p *ExperimentServiceClient) CheckExperimentName(ctx context.Context, req *CheckExperimentNameRequest) (r *CheckExperimentNameResponse, err error) { - var _args ExperimentServiceCheckExperimentNameArgs - _args.Req = req - var _result ExperimentServiceCheckExperimentNameResult - if err = p.Client_().Call(ctx, "CheckExperimentName", &_args, &_result); err != nil { - return - } - return _result.GetSuccess(), nil -} -func (p *ExperimentServiceClient) CreateExperiment(ctx context.Context, req *CreateExperimentRequest) (r *CreateExperimentResponse, err error) { - var _args ExperimentServiceCreateExperimentArgs - _args.Req = req - var _result ExperimentServiceCreateExperimentResult - if err = p.Client_().Call(ctx, "CreateExperiment", &_args, &_result); err != nil { - return - } - return _result.GetSuccess(), nil -} -func (p *ExperimentServiceClient) SubmitExperiment(ctx context.Context, req *SubmitExperimentRequest) (r *SubmitExperimentResponse, err error) { - var _args ExperimentServiceSubmitExperimentArgs - _args.Req = req - var _result ExperimentServiceSubmitExperimentResult - if err = p.Client_().Call(ctx, "SubmitExperiment", &_args, &_result); err != nil { +func (p *GetExptInsightAnalysisRecordRequest) GetSession() (v *common.Session) { + if p == nil { return } - return _result.GetSuccess(), nil -} -func (p *ExperimentServiceClient) BatchGetExperiments(ctx context.Context, req *BatchGetExperimentsRequest) (r *BatchGetExperimentsResponse, err error) { - var _args ExperimentServiceBatchGetExperimentsArgs - _args.Req = req - var _result ExperimentServiceBatchGetExperimentsResult - if err = p.Client_().Call(ctx, "BatchGetExperiments", &_args, &_result); err != nil { - return + if !p.IsSetSession() { + return GetExptInsightAnalysisRecordRequest_Session_DEFAULT } - return _result.GetSuccess(), nil + return p.Session } -func (p *ExperimentServiceClient) ListExperiments(ctx context.Context, req *ListExperimentsRequest) (r *ListExperimentsResponse, err error) { - var _args ExperimentServiceListExperimentsArgs - _args.Req = req - var _result ExperimentServiceListExperimentsResult - if err = p.Client_().Call(ctx, "ListExperiments", &_args, &_result); err != nil { + +var GetExptInsightAnalysisRecordRequest_Base_DEFAULT *base.Base + +func (p *GetExptInsightAnalysisRecordRequest) GetBase() (v *base.Base) { + if p == nil { return } - return _result.GetSuccess(), nil -} -func (p *ExperimentServiceClient) UpdateExperiment(ctx context.Context, req *UpdateExperimentRequest) (r *UpdateExperimentResponse, err error) { - var _args ExperimentServiceUpdateExperimentArgs - _args.Req = req - var _result ExperimentServiceUpdateExperimentResult - if err = p.Client_().Call(ctx, "UpdateExperiment", &_args, &_result); err != nil { - return + if !p.IsSetBase() { + return GetExptInsightAnalysisRecordRequest_Base_DEFAULT } - return _result.GetSuccess(), nil + return p.Base } -func (p *ExperimentServiceClient) DeleteExperiment(ctx context.Context, req *DeleteExperimentRequest) (r *DeleteExperimentResponse, err error) { - var _args ExperimentServiceDeleteExperimentArgs - _args.Req = req - var _result ExperimentServiceDeleteExperimentResult - if err = p.Client_().Call(ctx, "DeleteExperiment", &_args, &_result); err != nil { - return - } - return _result.GetSuccess(), nil +func (p *GetExptInsightAnalysisRecordRequest) SetWorkspaceID(val int64) { + p.WorkspaceID = val } -func (p *ExperimentServiceClient) BatchDeleteExperiments(ctx context.Context, req *BatchDeleteExperimentsRequest) (r *BatchDeleteExperimentsResponse, err error) { - var _args ExperimentServiceBatchDeleteExperimentsArgs - _args.Req = req - var _result ExperimentServiceBatchDeleteExperimentsResult - if err = p.Client_().Call(ctx, "BatchDeleteExperiments", &_args, &_result); err != nil { - return - } - return _result.GetSuccess(), nil +func (p *GetExptInsightAnalysisRecordRequest) SetExptID(val int64) { + p.ExptID = val } -func (p *ExperimentServiceClient) CloneExperiment(ctx context.Context, req *CloneExperimentRequest) (r *CloneExperimentResponse, err error) { - var _args ExperimentServiceCloneExperimentArgs - _args.Req = req - var _result ExperimentServiceCloneExperimentResult - if err = p.Client_().Call(ctx, "CloneExperiment", &_args, &_result); err != nil { - return - } - return _result.GetSuccess(), nil +func (p *GetExptInsightAnalysisRecordRequest) SetInsightAnalysisRecordID(val int64) { + p.InsightAnalysisRecordID = val } -func (p *ExperimentServiceClient) RunExperiment(ctx context.Context, req *RunExperimentRequest) (r *RunExperimentResponse, err error) { - var _args ExperimentServiceRunExperimentArgs - _args.Req = req - var _result ExperimentServiceRunExperimentResult - if err = p.Client_().Call(ctx, "RunExperiment", &_args, &_result); err != nil { - return - } - return _result.GetSuccess(), nil +func (p *GetExptInsightAnalysisRecordRequest) SetSession(val *common.Session) { + p.Session = val } -func (p *ExperimentServiceClient) RetryExperiment(ctx context.Context, req *RetryExperimentRequest) (r *RetryExperimentResponse, err error) { - var _args ExperimentServiceRetryExperimentArgs - _args.Req = req - var _result ExperimentServiceRetryExperimentResult - if err = p.Client_().Call(ctx, "RetryExperiment", &_args, &_result); err != nil { - return - } - return _result.GetSuccess(), nil +func (p *GetExptInsightAnalysisRecordRequest) SetBase(val *base.Base) { + p.Base = val } -func (p *ExperimentServiceClient) KillExperiment(ctx context.Context, req *KillExperimentRequest) (r *KillExperimentResponse, err error) { - var _args ExperimentServiceKillExperimentArgs - _args.Req = req - var _result ExperimentServiceKillExperimentResult - if err = p.Client_().Call(ctx, "KillExperiment", &_args, &_result); err != nil { - return - } - return _result.GetSuccess(), nil + +var fieldIDToName_GetExptInsightAnalysisRecordRequest = map[int16]string{ + 1: "workspace_id", + 2: "expt_id", + 3: "insight_analysis_record_id", + 200: "session", + 255: "Base", } -func (p *ExperimentServiceClient) BatchGetExperimentResult_(ctx context.Context, req *BatchGetExperimentResultRequest) (r *BatchGetExperimentResultResponse, err error) { - var _args ExperimentServiceBatchGetExperimentResultArgs - _args.Req = req - var _result ExperimentServiceBatchGetExperimentResultResult - if err = p.Client_().Call(ctx, "BatchGetExperimentResult", &_args, &_result); err != nil { - return - } - return _result.GetSuccess(), nil + +func (p *GetExptInsightAnalysisRecordRequest) IsSetSession() bool { + return p.Session != nil } -func (p *ExperimentServiceClient) CalculateExperimentAggrResult_(ctx context.Context, req *CalculateExperimentAggrResultRequest) (r *CalculateExperimentAggrResultResponse, err error) { - var _args ExperimentServiceCalculateExperimentAggrResultArgs - _args.Req = req - var _result ExperimentServiceCalculateExperimentAggrResultResult - if err = p.Client_().Call(ctx, "CalculateExperimentAggrResult", &_args, &_result); err != nil { - return - } - return _result.GetSuccess(), nil + +func (p *GetExptInsightAnalysisRecordRequest) IsSetBase() bool { + return p.Base != nil } -func (p *ExperimentServiceClient) BatchGetExperimentAggrResult_(ctx context.Context, req *BatchGetExperimentAggrResultRequest) (r *BatchGetExperimentAggrResultResponse, err error) { - var _args ExperimentServiceBatchGetExperimentAggrResultArgs - _args.Req = req - var _result ExperimentServiceBatchGetExperimentAggrResultResult - if err = p.Client_().Call(ctx, "BatchGetExperimentAggrResult", &_args, &_result); err != nil { - return + +func (p *GetExptInsightAnalysisRecordRequest) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + var issetWorkspaceID bool = false + var issetExptID bool = false + var issetInsightAnalysisRecordID bool = false + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError } - return _result.GetSuccess(), nil -} -func (p *ExperimentServiceClient) InvokeExperiment(ctx context.Context, req *InvokeExperimentRequest) (r *InvokeExperimentResponse, err error) { - var _args ExperimentServiceInvokeExperimentArgs - _args.Req = req - var _result ExperimentServiceInvokeExperimentResult - if err = p.Client_().Call(ctx, "InvokeExperiment", &_args, &_result); err != nil { + + 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 + } + issetWorkspaceID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.I64 { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + issetExptID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.I64 { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + issetInsightAnalysisRecordID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 200: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField200(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 { + 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 !issetWorkspaceID { + fieldId = 1 + goto RequiredFieldNotSetError + } + + if !issetExptID { + fieldId = 2 + goto RequiredFieldNotSetError + } + + if !issetInsightAnalysisRecordID { + 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_GetExptInsightAnalysisRecordRequest[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_GetExptInsightAnalysisRecordRequest[fieldId])) +} + +func (p *GetExptInsightAnalysisRecordRequest) ReadField1(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.WorkspaceID = _field + return nil +} +func (p *GetExptInsightAnalysisRecordRequest) ReadField2(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.ExptID = _field + return nil +} +func (p *GetExptInsightAnalysisRecordRequest) ReadField3(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.InsightAnalysisRecordID = _field + return nil +} +func (p *GetExptInsightAnalysisRecordRequest) ReadField200(iprot thrift.TProtocol) error { + _field := common.NewSession() + if err := _field.Read(iprot); err != nil { + return err + } + p.Session = _field + return nil +} +func (p *GetExptInsightAnalysisRecordRequest) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBase() + if err := _field.Read(iprot); err != nil { + return err + } + p.Base = _field + return nil +} + +func (p *GetExptInsightAnalysisRecordRequest) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("GetExptInsightAnalysisRecordRequest"); 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.writeField200(oprot); err != nil { + fieldId = 200 + goto WriteFieldError + } + if err = p.writeField255(oprot); err != nil { + fieldId = 255 + 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 *GetExptInsightAnalysisRecordRequest) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.WorkspaceID); 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 *GetExptInsightAnalysisRecordRequest) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("expt_id", thrift.I64, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.ExptID); 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 *GetExptInsightAnalysisRecordRequest) writeField3(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("insight_analysis_record_id", thrift.I64, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.InsightAnalysisRecordID); 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 *GetExptInsightAnalysisRecordRequest) writeField200(oprot thrift.TProtocol) (err error) { + if p.IsSetSession() { + if err = oprot.WriteFieldBegin("session", thrift.STRUCT, 200); err != nil { + goto WriteFieldBeginError + } + if err := p.Session.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 200 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 200 end error: ", p), err) +} +func (p *GetExptInsightAnalysisRecordRequest) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBase() { + if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.Base.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 255 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) +} + +func (p *GetExptInsightAnalysisRecordRequest) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("GetExptInsightAnalysisRecordRequest(%+v)", *p) + +} + +func (p *GetExptInsightAnalysisRecordRequest) DeepEqual(ano *GetExptInsightAnalysisRecordRequest) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.WorkspaceID) { + return false + } + if !p.Field2DeepEqual(ano.ExptID) { + return false + } + if !p.Field3DeepEqual(ano.InsightAnalysisRecordID) { + return false + } + if !p.Field200DeepEqual(ano.Session) { + return false + } + if !p.Field255DeepEqual(ano.Base) { + return false + } + return true +} + +func (p *GetExptInsightAnalysisRecordRequest) Field1DeepEqual(src int64) bool { + + if p.WorkspaceID != src { + return false + } + return true +} +func (p *GetExptInsightAnalysisRecordRequest) Field2DeepEqual(src int64) bool { + + if p.ExptID != src { + return false + } + return true +} +func (p *GetExptInsightAnalysisRecordRequest) Field3DeepEqual(src int64) bool { + + if p.InsightAnalysisRecordID != src { + return false + } + return true +} +func (p *GetExptInsightAnalysisRecordRequest) Field200DeepEqual(src *common.Session) bool { + + if !p.Session.DeepEqual(src) { + return false + } + return true +} +func (p *GetExptInsightAnalysisRecordRequest) Field255DeepEqual(src *base.Base) bool { + + if !p.Base.DeepEqual(src) { + return false + } + return true +} + +type GetExptInsightAnalysisRecordResponse struct { + ExptInsightAnalysisRecord *expt.ExptInsightAnalysisRecord `thrift:"expt_insight_analysis_record,1,optional" frugal:"1,optional,expt.ExptInsightAnalysisRecord" form:"expt_insight_analysis_record" json:"expt_insight_analysis_record,omitempty" query:"expt_insight_analysis_record"` + BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` +} + +func NewGetExptInsightAnalysisRecordResponse() *GetExptInsightAnalysisRecordResponse { + return &GetExptInsightAnalysisRecordResponse{} +} + +func (p *GetExptInsightAnalysisRecordResponse) InitDefault() { +} + +var GetExptInsightAnalysisRecordResponse_ExptInsightAnalysisRecord_DEFAULT *expt.ExptInsightAnalysisRecord + +func (p *GetExptInsightAnalysisRecordResponse) GetExptInsightAnalysisRecord() (v *expt.ExptInsightAnalysisRecord) { + if p == nil { + return + } + if !p.IsSetExptInsightAnalysisRecord() { + return GetExptInsightAnalysisRecordResponse_ExptInsightAnalysisRecord_DEFAULT + } + return p.ExptInsightAnalysisRecord +} + +var GetExptInsightAnalysisRecordResponse_BaseResp_DEFAULT *base.BaseResp + +func (p *GetExptInsightAnalysisRecordResponse) GetBaseResp() (v *base.BaseResp) { + if p == nil { + return + } + if !p.IsSetBaseResp() { + return GetExptInsightAnalysisRecordResponse_BaseResp_DEFAULT + } + return p.BaseResp +} +func (p *GetExptInsightAnalysisRecordResponse) SetExptInsightAnalysisRecord(val *expt.ExptInsightAnalysisRecord) { + p.ExptInsightAnalysisRecord = val +} +func (p *GetExptInsightAnalysisRecordResponse) SetBaseResp(val *base.BaseResp) { + p.BaseResp = val +} + +var fieldIDToName_GetExptInsightAnalysisRecordResponse = map[int16]string{ + 1: "expt_insight_analysis_record", + 255: "BaseResp", +} + +func (p *GetExptInsightAnalysisRecordResponse) IsSetExptInsightAnalysisRecord() bool { + return p.ExptInsightAnalysisRecord != nil +} + +func (p *GetExptInsightAnalysisRecordResponse) IsSetBaseResp() bool { + return p.BaseResp != nil +} + +func (p *GetExptInsightAnalysisRecordResponse) 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.STRUCT { + if err = p.ReadField1(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 { + 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_GetExptInsightAnalysisRecordResponse[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 *GetExptInsightAnalysisRecordResponse) ReadField1(iprot thrift.TProtocol) error { + _field := expt.NewExptInsightAnalysisRecord() + if err := _field.Read(iprot); err != nil { + return err + } + p.ExptInsightAnalysisRecord = _field + return nil +} +func (p *GetExptInsightAnalysisRecordResponse) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBaseResp() + if err := _field.Read(iprot); err != nil { + return err + } + p.BaseResp = _field + return nil +} + +func (p *GetExptInsightAnalysisRecordResponse) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("GetExptInsightAnalysisRecordResponse"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField255(oprot); err != nil { + fieldId = 255 + 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 *GetExptInsightAnalysisRecordResponse) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetExptInsightAnalysisRecord() { + if err = oprot.WriteFieldBegin("expt_insight_analysis_record", thrift.STRUCT, 1); err != nil { + goto WriteFieldBeginError + } + if err := p.ExptInsightAnalysisRecord.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 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *GetExptInsightAnalysisRecordResponse) writeField255(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.BaseResp.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 255 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) +} + +func (p *GetExptInsightAnalysisRecordResponse) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("GetExptInsightAnalysisRecordResponse(%+v)", *p) + +} + +func (p *GetExptInsightAnalysisRecordResponse) DeepEqual(ano *GetExptInsightAnalysisRecordResponse) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.ExptInsightAnalysisRecord) { + return false + } + if !p.Field255DeepEqual(ano.BaseResp) { + return false + } + return true +} + +func (p *GetExptInsightAnalysisRecordResponse) Field1DeepEqual(src *expt.ExptInsightAnalysisRecord) bool { + + if !p.ExptInsightAnalysisRecord.DeepEqual(src) { + return false + } + return true +} +func (p *GetExptInsightAnalysisRecordResponse) Field255DeepEqual(src *base.BaseResp) bool { + + if !p.BaseResp.DeepEqual(src) { + return false + } + return true +} + +type InsightAnalysisExperimentRequest struct { + WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` + ExptID int64 `thrift:"expt_id,2,required" frugal:"2,required,i64" json:"expt_id" path:"expt_id,required" ` + Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` +} + +func NewInsightAnalysisExperimentRequest() *InsightAnalysisExperimentRequest { + return &InsightAnalysisExperimentRequest{} +} + +func (p *InsightAnalysisExperimentRequest) InitDefault() { +} + +func (p *InsightAnalysisExperimentRequest) GetWorkspaceID() (v int64) { + if p != nil { + return p.WorkspaceID + } + return +} + +func (p *InsightAnalysisExperimentRequest) GetExptID() (v int64) { + if p != nil { + return p.ExptID + } + return +} + +var InsightAnalysisExperimentRequest_Session_DEFAULT *common.Session + +func (p *InsightAnalysisExperimentRequest) GetSession() (v *common.Session) { + if p == nil { + return + } + if !p.IsSetSession() { + return InsightAnalysisExperimentRequest_Session_DEFAULT + } + return p.Session +} + +var InsightAnalysisExperimentRequest_Base_DEFAULT *base.Base + +func (p *InsightAnalysisExperimentRequest) GetBase() (v *base.Base) { + if p == nil { + return + } + if !p.IsSetBase() { + return InsightAnalysisExperimentRequest_Base_DEFAULT + } + return p.Base +} +func (p *InsightAnalysisExperimentRequest) SetWorkspaceID(val int64) { + p.WorkspaceID = val +} +func (p *InsightAnalysisExperimentRequest) SetExptID(val int64) { + p.ExptID = val +} +func (p *InsightAnalysisExperimentRequest) SetSession(val *common.Session) { + p.Session = val +} +func (p *InsightAnalysisExperimentRequest) SetBase(val *base.Base) { + p.Base = val +} + +var fieldIDToName_InsightAnalysisExperimentRequest = map[int16]string{ + 1: "workspace_id", + 2: "expt_id", + 200: "session", + 255: "Base", +} + +func (p *InsightAnalysisExperimentRequest) IsSetSession() bool { + return p.Session != nil +} + +func (p *InsightAnalysisExperimentRequest) IsSetBase() bool { + return p.Base != nil +} + +func (p *InsightAnalysisExperimentRequest) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + var issetWorkspaceID bool = false + var issetExptID 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 + } + issetWorkspaceID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.I64 { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + issetExptID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 200: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField200(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 { + 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 !issetWorkspaceID { + fieldId = 1 + goto RequiredFieldNotSetError + } + + if !issetExptID { + 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_InsightAnalysisExperimentRequest[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_InsightAnalysisExperimentRequest[fieldId])) +} + +func (p *InsightAnalysisExperimentRequest) ReadField1(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.WorkspaceID = _field + return nil +} +func (p *InsightAnalysisExperimentRequest) ReadField2(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.ExptID = _field + return nil +} +func (p *InsightAnalysisExperimentRequest) ReadField200(iprot thrift.TProtocol) error { + _field := common.NewSession() + if err := _field.Read(iprot); err != nil { + return err + } + p.Session = _field + return nil +} +func (p *InsightAnalysisExperimentRequest) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBase() + if err := _field.Read(iprot); err != nil { + return err + } + p.Base = _field + return nil +} + +func (p *InsightAnalysisExperimentRequest) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("InsightAnalysisExperimentRequest"); 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.writeField200(oprot); err != nil { + fieldId = 200 + goto WriteFieldError + } + if err = p.writeField255(oprot); err != nil { + fieldId = 255 + 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 *InsightAnalysisExperimentRequest) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.WorkspaceID); 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 *InsightAnalysisExperimentRequest) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("expt_id", thrift.I64, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.ExptID); 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 *InsightAnalysisExperimentRequest) writeField200(oprot thrift.TProtocol) (err error) { + if p.IsSetSession() { + if err = oprot.WriteFieldBegin("session", thrift.STRUCT, 200); err != nil { + goto WriteFieldBeginError + } + if err := p.Session.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 200 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 200 end error: ", p), err) +} +func (p *InsightAnalysisExperimentRequest) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBase() { + if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.Base.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 255 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) +} + +func (p *InsightAnalysisExperimentRequest) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("InsightAnalysisExperimentRequest(%+v)", *p) + +} + +func (p *InsightAnalysisExperimentRequest) DeepEqual(ano *InsightAnalysisExperimentRequest) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.WorkspaceID) { + return false + } + if !p.Field2DeepEqual(ano.ExptID) { + return false + } + if !p.Field200DeepEqual(ano.Session) { + return false + } + if !p.Field255DeepEqual(ano.Base) { + return false + } + return true +} + +func (p *InsightAnalysisExperimentRequest) Field1DeepEqual(src int64) bool { + + if p.WorkspaceID != src { + return false + } + return true +} +func (p *InsightAnalysisExperimentRequest) Field2DeepEqual(src int64) bool { + + if p.ExptID != src { + return false + } + return true +} +func (p *InsightAnalysisExperimentRequest) Field200DeepEqual(src *common.Session) bool { + + if !p.Session.DeepEqual(src) { + return false + } + return true +} +func (p *InsightAnalysisExperimentRequest) Field255DeepEqual(src *base.Base) bool { + + if !p.Base.DeepEqual(src) { + return false + } + return true +} + +type InsightAnalysisExperimentResponse struct { + InsightAnalysisRecordID int64 `thrift:"insight_analysis_record_id,1,required" frugal:"1,required,i64" json:"insight_analysis_record_id" form:"insight_analysis_record_id,required" ` + BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` +} + +func NewInsightAnalysisExperimentResponse() *InsightAnalysisExperimentResponse { + return &InsightAnalysisExperimentResponse{} +} + +func (p *InsightAnalysisExperimentResponse) InitDefault() { +} + +func (p *InsightAnalysisExperimentResponse) GetInsightAnalysisRecordID() (v int64) { + if p != nil { + return p.InsightAnalysisRecordID + } + return +} + +var InsightAnalysisExperimentResponse_BaseResp_DEFAULT *base.BaseResp + +func (p *InsightAnalysisExperimentResponse) GetBaseResp() (v *base.BaseResp) { + if p == nil { + return + } + if !p.IsSetBaseResp() { + return InsightAnalysisExperimentResponse_BaseResp_DEFAULT + } + return p.BaseResp +} +func (p *InsightAnalysisExperimentResponse) SetInsightAnalysisRecordID(val int64) { + p.InsightAnalysisRecordID = val +} +func (p *InsightAnalysisExperimentResponse) SetBaseResp(val *base.BaseResp) { + p.BaseResp = val +} + +var fieldIDToName_InsightAnalysisExperimentResponse = map[int16]string{ + 1: "insight_analysis_record_id", + 255: "BaseResp", +} + +func (p *InsightAnalysisExperimentResponse) IsSetBaseResp() bool { + return p.BaseResp != nil +} + +func (p *InsightAnalysisExperimentResponse) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + var issetInsightAnalysisRecordID 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 + } + issetInsightAnalysisRecordID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 255: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField255(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 !issetInsightAnalysisRecordID { + 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_InsightAnalysisExperimentResponse[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_InsightAnalysisExperimentResponse[fieldId])) +} + +func (p *InsightAnalysisExperimentResponse) ReadField1(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.InsightAnalysisRecordID = _field + return nil +} +func (p *InsightAnalysisExperimentResponse) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBaseResp() + if err := _field.Read(iprot); err != nil { + return err + } + p.BaseResp = _field + return nil +} + +func (p *InsightAnalysisExperimentResponse) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("InsightAnalysisExperimentResponse"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField255(oprot); err != nil { + fieldId = 255 + 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 *InsightAnalysisExperimentResponse) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("insight_analysis_record_id", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.InsightAnalysisRecordID); 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 *InsightAnalysisExperimentResponse) writeField255(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.BaseResp.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 255 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) +} + +func (p *InsightAnalysisExperimentResponse) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("InsightAnalysisExperimentResponse(%+v)", *p) + +} + +func (p *InsightAnalysisExperimentResponse) DeepEqual(ano *InsightAnalysisExperimentResponse) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.InsightAnalysisRecordID) { + return false + } + if !p.Field255DeepEqual(ano.BaseResp) { + return false + } + return true +} + +func (p *InsightAnalysisExperimentResponse) Field1DeepEqual(src int64) bool { + + if p.InsightAnalysisRecordID != src { + return false + } + return true +} +func (p *InsightAnalysisExperimentResponse) Field255DeepEqual(src *base.BaseResp) bool { + + if !p.BaseResp.DeepEqual(src) { + return false + } + return true +} + +type ListExptInsightAnalysisRecordRequest struct { + WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` + ExptID int64 `thrift:"expt_id,2,required" frugal:"2,required,i64" json:"expt_id" path:"expt_id,required" ` + PageNumber *int32 `thrift:"page_number,3,optional" frugal:"3,optional,i32" form:"page_number" json:"page_number,omitempty"` + PageSize *int32 `thrift:"page_size,4,optional" frugal:"4,optional,i32" form:"page_size" json:"page_size,omitempty"` + Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` +} + +func NewListExptInsightAnalysisRecordRequest() *ListExptInsightAnalysisRecordRequest { + return &ListExptInsightAnalysisRecordRequest{} +} + +func (p *ListExptInsightAnalysisRecordRequest) InitDefault() { +} + +func (p *ListExptInsightAnalysisRecordRequest) GetWorkspaceID() (v int64) { + if p != nil { + return p.WorkspaceID + } + return +} + +func (p *ListExptInsightAnalysisRecordRequest) GetExptID() (v int64) { + if p != nil { + return p.ExptID + } + return +} + +var ListExptInsightAnalysisRecordRequest_PageNumber_DEFAULT int32 + +func (p *ListExptInsightAnalysisRecordRequest) GetPageNumber() (v int32) { + if p == nil { + return + } + if !p.IsSetPageNumber() { + return ListExptInsightAnalysisRecordRequest_PageNumber_DEFAULT + } + return *p.PageNumber +} + +var ListExptInsightAnalysisRecordRequest_PageSize_DEFAULT int32 + +func (p *ListExptInsightAnalysisRecordRequest) GetPageSize() (v int32) { + if p == nil { + return + } + if !p.IsSetPageSize() { + return ListExptInsightAnalysisRecordRequest_PageSize_DEFAULT + } + return *p.PageSize +} + +var ListExptInsightAnalysisRecordRequest_Session_DEFAULT *common.Session + +func (p *ListExptInsightAnalysisRecordRequest) GetSession() (v *common.Session) { + if p == nil { + return + } + if !p.IsSetSession() { + return ListExptInsightAnalysisRecordRequest_Session_DEFAULT + } + return p.Session +} + +var ListExptInsightAnalysisRecordRequest_Base_DEFAULT *base.Base + +func (p *ListExptInsightAnalysisRecordRequest) GetBase() (v *base.Base) { + if p == nil { + return + } + if !p.IsSetBase() { + return ListExptInsightAnalysisRecordRequest_Base_DEFAULT + } + return p.Base +} +func (p *ListExptInsightAnalysisRecordRequest) SetWorkspaceID(val int64) { + p.WorkspaceID = val +} +func (p *ListExptInsightAnalysisRecordRequest) SetExptID(val int64) { + p.ExptID = val +} +func (p *ListExptInsightAnalysisRecordRequest) SetPageNumber(val *int32) { + p.PageNumber = val +} +func (p *ListExptInsightAnalysisRecordRequest) SetPageSize(val *int32) { + p.PageSize = val +} +func (p *ListExptInsightAnalysisRecordRequest) SetSession(val *common.Session) { + p.Session = val +} +func (p *ListExptInsightAnalysisRecordRequest) SetBase(val *base.Base) { + p.Base = val +} + +var fieldIDToName_ListExptInsightAnalysisRecordRequest = map[int16]string{ + 1: "workspace_id", + 2: "expt_id", + 3: "page_number", + 4: "page_size", + 200: "session", + 255: "Base", +} + +func (p *ListExptInsightAnalysisRecordRequest) IsSetPageNumber() bool { + return p.PageNumber != nil +} + +func (p *ListExptInsightAnalysisRecordRequest) IsSetPageSize() bool { + return p.PageSize != nil +} + +func (p *ListExptInsightAnalysisRecordRequest) IsSetSession() bool { + return p.Session != nil +} + +func (p *ListExptInsightAnalysisRecordRequest) IsSetBase() bool { + return p.Base != nil +} + +func (p *ListExptInsightAnalysisRecordRequest) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + var issetWorkspaceID bool = false + var issetExptID 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 + } + issetWorkspaceID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.I64 { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + issetExptID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.I32 { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 4: + if fieldTypeId == thrift.I32 { + if err = p.ReadField4(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 200: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField200(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 { + 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 !issetWorkspaceID { + fieldId = 1 + goto RequiredFieldNotSetError + } + + if !issetExptID { + 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_ListExptInsightAnalysisRecordRequest[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_ListExptInsightAnalysisRecordRequest[fieldId])) +} + +func (p *ListExptInsightAnalysisRecordRequest) ReadField1(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.WorkspaceID = _field + return nil +} +func (p *ListExptInsightAnalysisRecordRequest) ReadField2(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.ExptID = _field + return nil +} +func (p *ListExptInsightAnalysisRecordRequest) ReadField3(iprot thrift.TProtocol) error { + + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + _field = &v + } + p.PageNumber = _field + return nil +} +func (p *ListExptInsightAnalysisRecordRequest) ReadField4(iprot thrift.TProtocol) error { + + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + _field = &v + } + p.PageSize = _field + return nil +} +func (p *ListExptInsightAnalysisRecordRequest) ReadField200(iprot thrift.TProtocol) error { + _field := common.NewSession() + if err := _field.Read(iprot); err != nil { + return err + } + p.Session = _field + return nil +} +func (p *ListExptInsightAnalysisRecordRequest) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBase() + if err := _field.Read(iprot); err != nil { + return err + } + p.Base = _field + return nil +} + +func (p *ListExptInsightAnalysisRecordRequest) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ListExptInsightAnalysisRecordRequest"); 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.writeField200(oprot); err != nil { + fieldId = 200 + goto WriteFieldError + } + if err = p.writeField255(oprot); err != nil { + fieldId = 255 + 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 *ListExptInsightAnalysisRecordRequest) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.WorkspaceID); 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 *ListExptInsightAnalysisRecordRequest) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("expt_id", thrift.I64, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.ExptID); 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 *ListExptInsightAnalysisRecordRequest) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetPageNumber() { + if err = oprot.WriteFieldBegin("page_number", thrift.I32, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.PageNumber); 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 *ListExptInsightAnalysisRecordRequest) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetPageSize() { + if err = oprot.WriteFieldBegin("page_size", thrift.I32, 4); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.PageSize); 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 *ListExptInsightAnalysisRecordRequest) writeField200(oprot thrift.TProtocol) (err error) { + if p.IsSetSession() { + if err = oprot.WriteFieldBegin("session", thrift.STRUCT, 200); err != nil { + goto WriteFieldBeginError + } + if err := p.Session.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 200 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 200 end error: ", p), err) +} +func (p *ListExptInsightAnalysisRecordRequest) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBase() { + if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.Base.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 255 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) +} + +func (p *ListExptInsightAnalysisRecordRequest) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ListExptInsightAnalysisRecordRequest(%+v)", *p) + +} + +func (p *ListExptInsightAnalysisRecordRequest) DeepEqual(ano *ListExptInsightAnalysisRecordRequest) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.WorkspaceID) { + return false + } + if !p.Field2DeepEqual(ano.ExptID) { + return false + } + if !p.Field3DeepEqual(ano.PageNumber) { + return false + } + if !p.Field4DeepEqual(ano.PageSize) { + return false + } + if !p.Field200DeepEqual(ano.Session) { + return false + } + if !p.Field255DeepEqual(ano.Base) { + return false + } + return true +} + +func (p *ListExptInsightAnalysisRecordRequest) Field1DeepEqual(src int64) bool { + + if p.WorkspaceID != src { + return false + } + return true +} +func (p *ListExptInsightAnalysisRecordRequest) Field2DeepEqual(src int64) bool { + + if p.ExptID != src { + return false + } + return true +} +func (p *ListExptInsightAnalysisRecordRequest) Field3DeepEqual(src *int32) bool { + + if p.PageNumber == src { + return true + } else if p.PageNumber == nil || src == nil { + return false + } + if *p.PageNumber != *src { + return false + } + return true +} +func (p *ListExptInsightAnalysisRecordRequest) Field4DeepEqual(src *int32) bool { + + if p.PageSize == src { + return true + } else if p.PageSize == nil || src == nil { + return false + } + if *p.PageSize != *src { + return false + } + return true +} +func (p *ListExptInsightAnalysisRecordRequest) Field200DeepEqual(src *common.Session) bool { + + if !p.Session.DeepEqual(src) { + return false + } + return true +} +func (p *ListExptInsightAnalysisRecordRequest) Field255DeepEqual(src *base.Base) bool { + + if !p.Base.DeepEqual(src) { + return false + } + return true +} + +type ListExptInsightAnalysisRecordResponse struct { + ExptInsightAnalysisRecords []*expt.ExptInsightAnalysisRecord `thrift:"expt_insight_analysis_records,1,required" frugal:"1,required,list" form:"expt_insight_analysis_records,required" json:"expt_insight_analysis_records,required" query:"expt_insight_analysis_records,required"` + Total *int64 `thrift:"total,20,optional" frugal:"20,optional,i64" json:"total" form:"total" ` + BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` +} + +func NewListExptInsightAnalysisRecordResponse() *ListExptInsightAnalysisRecordResponse { + return &ListExptInsightAnalysisRecordResponse{} +} + +func (p *ListExptInsightAnalysisRecordResponse) InitDefault() { +} + +func (p *ListExptInsightAnalysisRecordResponse) GetExptInsightAnalysisRecords() (v []*expt.ExptInsightAnalysisRecord) { + if p != nil { + return p.ExptInsightAnalysisRecords + } + return +} + +var ListExptInsightAnalysisRecordResponse_Total_DEFAULT int64 + +func (p *ListExptInsightAnalysisRecordResponse) GetTotal() (v int64) { + if p == nil { + return + } + if !p.IsSetTotal() { + return ListExptInsightAnalysisRecordResponse_Total_DEFAULT + } + return *p.Total +} + +var ListExptInsightAnalysisRecordResponse_BaseResp_DEFAULT *base.BaseResp + +func (p *ListExptInsightAnalysisRecordResponse) GetBaseResp() (v *base.BaseResp) { + if p == nil { + return + } + if !p.IsSetBaseResp() { + return ListExptInsightAnalysisRecordResponse_BaseResp_DEFAULT + } + return p.BaseResp +} +func (p *ListExptInsightAnalysisRecordResponse) SetExptInsightAnalysisRecords(val []*expt.ExptInsightAnalysisRecord) { + p.ExptInsightAnalysisRecords = val +} +func (p *ListExptInsightAnalysisRecordResponse) SetTotal(val *int64) { + p.Total = val +} +func (p *ListExptInsightAnalysisRecordResponse) SetBaseResp(val *base.BaseResp) { + p.BaseResp = val +} + +var fieldIDToName_ListExptInsightAnalysisRecordResponse = map[int16]string{ + 1: "expt_insight_analysis_records", + 20: "total", + 255: "BaseResp", +} + +func (p *ListExptInsightAnalysisRecordResponse) IsSetTotal() bool { + return p.Total != nil +} + +func (p *ListExptInsightAnalysisRecordResponse) IsSetBaseResp() bool { + return p.BaseResp != nil +} + +func (p *ListExptInsightAnalysisRecordResponse) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + var issetExptInsightAnalysisRecords 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.LIST { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + issetExptInsightAnalysisRecords = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 20: + if fieldTypeId == thrift.I64 { + if err = p.ReadField20(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 { + 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 !issetExptInsightAnalysisRecords { + 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_ListExptInsightAnalysisRecordResponse[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_ListExptInsightAnalysisRecordResponse[fieldId])) +} + +func (p *ListExptInsightAnalysisRecordResponse) ReadField1(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*expt.ExptInsightAnalysisRecord, 0, size) + values := make([]expt.ExptInsightAnalysisRecord, 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.ExptInsightAnalysisRecords = _field + return nil +} +func (p *ListExptInsightAnalysisRecordResponse) ReadField20(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.Total = _field + return nil +} +func (p *ListExptInsightAnalysisRecordResponse) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBaseResp() + if err := _field.Read(iprot); err != nil { + return err + } + p.BaseResp = _field + return nil +} + +func (p *ListExptInsightAnalysisRecordResponse) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ListExptInsightAnalysisRecordResponse"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField20(oprot); err != nil { + fieldId = 20 + goto WriteFieldError + } + if err = p.writeField255(oprot); err != nil { + fieldId = 255 + 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 *ListExptInsightAnalysisRecordResponse) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("expt_insight_analysis_records", thrift.LIST, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.ExptInsightAnalysisRecords)); err != nil { + return err + } + for _, v := range p.ExptInsightAnalysisRecords { + 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 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *ListExptInsightAnalysisRecordResponse) writeField20(oprot thrift.TProtocol) (err error) { + if p.IsSetTotal() { + if err = oprot.WriteFieldBegin("total", thrift.I64, 20); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.Total); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 20 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 20 end error: ", p), err) +} +func (p *ListExptInsightAnalysisRecordResponse) writeField255(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.BaseResp.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 255 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) +} + +func (p *ListExptInsightAnalysisRecordResponse) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ListExptInsightAnalysisRecordResponse(%+v)", *p) + +} + +func (p *ListExptInsightAnalysisRecordResponse) DeepEqual(ano *ListExptInsightAnalysisRecordResponse) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.ExptInsightAnalysisRecords) { + return false + } + if !p.Field20DeepEqual(ano.Total) { + return false + } + if !p.Field255DeepEqual(ano.BaseResp) { + return false + } + return true +} + +func (p *ListExptInsightAnalysisRecordResponse) Field1DeepEqual(src []*expt.ExptInsightAnalysisRecord) bool { + + if len(p.ExptInsightAnalysisRecords) != len(src) { + return false + } + for i, v := range p.ExptInsightAnalysisRecords { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} +func (p *ListExptInsightAnalysisRecordResponse) Field20DeepEqual(src *int64) bool { + + if p.Total == src { + return true + } else if p.Total == nil || src == nil { + return false + } + if *p.Total != *src { + return false + } + return true +} +func (p *ListExptInsightAnalysisRecordResponse) Field255DeepEqual(src *base.BaseResp) bool { + + if !p.BaseResp.DeepEqual(src) { + return false + } + return true +} + +type DeleteExptInsightAnalysisRecordRequest struct { + WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` + ExptID int64 `thrift:"expt_id,2,required" frugal:"2,required,i64" json:"expt_id" path:"expt_id,required" ` + InsightAnalysisRecordID int64 `thrift:"insight_analysis_record_id,3,required" frugal:"3,required,i64" json:"insight_analysis_record_id" path:"insight_analysis_record_id,required" ` + Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` +} + +func NewDeleteExptInsightAnalysisRecordRequest() *DeleteExptInsightAnalysisRecordRequest { + return &DeleteExptInsightAnalysisRecordRequest{} +} + +func (p *DeleteExptInsightAnalysisRecordRequest) InitDefault() { +} + +func (p *DeleteExptInsightAnalysisRecordRequest) GetWorkspaceID() (v int64) { + if p != nil { + return p.WorkspaceID + } + return +} + +func (p *DeleteExptInsightAnalysisRecordRequest) GetExptID() (v int64) { + if p != nil { + return p.ExptID + } + return +} + +func (p *DeleteExptInsightAnalysisRecordRequest) GetInsightAnalysisRecordID() (v int64) { + if p != nil { + return p.InsightAnalysisRecordID + } + return +} + +var DeleteExptInsightAnalysisRecordRequest_Session_DEFAULT *common.Session + +func (p *DeleteExptInsightAnalysisRecordRequest) GetSession() (v *common.Session) { + if p == nil { + return + } + if !p.IsSetSession() { + return DeleteExptInsightAnalysisRecordRequest_Session_DEFAULT + } + return p.Session +} + +var DeleteExptInsightAnalysisRecordRequest_Base_DEFAULT *base.Base + +func (p *DeleteExptInsightAnalysisRecordRequest) GetBase() (v *base.Base) { + if p == nil { + return + } + if !p.IsSetBase() { + return DeleteExptInsightAnalysisRecordRequest_Base_DEFAULT + } + return p.Base +} +func (p *DeleteExptInsightAnalysisRecordRequest) SetWorkspaceID(val int64) { + p.WorkspaceID = val +} +func (p *DeleteExptInsightAnalysisRecordRequest) SetExptID(val int64) { + p.ExptID = val +} +func (p *DeleteExptInsightAnalysisRecordRequest) SetInsightAnalysisRecordID(val int64) { + p.InsightAnalysisRecordID = val +} +func (p *DeleteExptInsightAnalysisRecordRequest) SetSession(val *common.Session) { + p.Session = val +} +func (p *DeleteExptInsightAnalysisRecordRequest) SetBase(val *base.Base) { + p.Base = val +} + +var fieldIDToName_DeleteExptInsightAnalysisRecordRequest = map[int16]string{ + 1: "workspace_id", + 2: "expt_id", + 3: "insight_analysis_record_id", + 200: "session", + 255: "Base", +} + +func (p *DeleteExptInsightAnalysisRecordRequest) IsSetSession() bool { + return p.Session != nil +} + +func (p *DeleteExptInsightAnalysisRecordRequest) IsSetBase() bool { + return p.Base != nil +} + +func (p *DeleteExptInsightAnalysisRecordRequest) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + var issetWorkspaceID bool = false + var issetExptID bool = false + var issetInsightAnalysisRecordID 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 + } + issetWorkspaceID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.I64 { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + issetExptID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.I64 { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + issetInsightAnalysisRecordID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 200: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField200(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 { + 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 !issetWorkspaceID { + fieldId = 1 + goto RequiredFieldNotSetError + } + + if !issetExptID { + fieldId = 2 + goto RequiredFieldNotSetError + } + + if !issetInsightAnalysisRecordID { + 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_DeleteExptInsightAnalysisRecordRequest[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_DeleteExptInsightAnalysisRecordRequest[fieldId])) +} + +func (p *DeleteExptInsightAnalysisRecordRequest) ReadField1(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.WorkspaceID = _field + return nil +} +func (p *DeleteExptInsightAnalysisRecordRequest) ReadField2(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.ExptID = _field + return nil +} +func (p *DeleteExptInsightAnalysisRecordRequest) ReadField3(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.InsightAnalysisRecordID = _field + return nil +} +func (p *DeleteExptInsightAnalysisRecordRequest) ReadField200(iprot thrift.TProtocol) error { + _field := common.NewSession() + if err := _field.Read(iprot); err != nil { + return err + } + p.Session = _field + return nil +} +func (p *DeleteExptInsightAnalysisRecordRequest) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBase() + if err := _field.Read(iprot); err != nil { + return err + } + p.Base = _field + return nil +} + +func (p *DeleteExptInsightAnalysisRecordRequest) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("DeleteExptInsightAnalysisRecordRequest"); 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.writeField200(oprot); err != nil { + fieldId = 200 + goto WriteFieldError + } + if err = p.writeField255(oprot); err != nil { + fieldId = 255 + 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 *DeleteExptInsightAnalysisRecordRequest) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.WorkspaceID); 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 *DeleteExptInsightAnalysisRecordRequest) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("expt_id", thrift.I64, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.ExptID); 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 *DeleteExptInsightAnalysisRecordRequest) writeField3(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("insight_analysis_record_id", thrift.I64, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.InsightAnalysisRecordID); 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 *DeleteExptInsightAnalysisRecordRequest) writeField200(oprot thrift.TProtocol) (err error) { + if p.IsSetSession() { + if err = oprot.WriteFieldBegin("session", thrift.STRUCT, 200); err != nil { + goto WriteFieldBeginError + } + if err := p.Session.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 200 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 200 end error: ", p), err) +} +func (p *DeleteExptInsightAnalysisRecordRequest) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBase() { + if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.Base.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 255 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) +} + +func (p *DeleteExptInsightAnalysisRecordRequest) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("DeleteExptInsightAnalysisRecordRequest(%+v)", *p) + +} + +func (p *DeleteExptInsightAnalysisRecordRequest) DeepEqual(ano *DeleteExptInsightAnalysisRecordRequest) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.WorkspaceID) { + return false + } + if !p.Field2DeepEqual(ano.ExptID) { + return false + } + if !p.Field3DeepEqual(ano.InsightAnalysisRecordID) { + return false + } + if !p.Field200DeepEqual(ano.Session) { + return false + } + if !p.Field255DeepEqual(ano.Base) { + return false + } + return true +} + +func (p *DeleteExptInsightAnalysisRecordRequest) Field1DeepEqual(src int64) bool { + + if p.WorkspaceID != src { + return false + } + return true +} +func (p *DeleteExptInsightAnalysisRecordRequest) Field2DeepEqual(src int64) bool { + + if p.ExptID != src { + return false + } + return true +} +func (p *DeleteExptInsightAnalysisRecordRequest) Field3DeepEqual(src int64) bool { + + if p.InsightAnalysisRecordID != src { + return false + } + return true +} +func (p *DeleteExptInsightAnalysisRecordRequest) Field200DeepEqual(src *common.Session) bool { + + if !p.Session.DeepEqual(src) { + return false + } + return true +} +func (p *DeleteExptInsightAnalysisRecordRequest) Field255DeepEqual(src *base.Base) bool { + + if !p.Base.DeepEqual(src) { + return false + } + return true +} + +type DeleteExptInsightAnalysisRecordResponse struct { + BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` +} + +func NewDeleteExptInsightAnalysisRecordResponse() *DeleteExptInsightAnalysisRecordResponse { + return &DeleteExptInsightAnalysisRecordResponse{} +} + +func (p *DeleteExptInsightAnalysisRecordResponse) InitDefault() { +} + +var DeleteExptInsightAnalysisRecordResponse_BaseResp_DEFAULT *base.BaseResp + +func (p *DeleteExptInsightAnalysisRecordResponse) GetBaseResp() (v *base.BaseResp) { + if p == nil { + return + } + if !p.IsSetBaseResp() { + return DeleteExptInsightAnalysisRecordResponse_BaseResp_DEFAULT + } + return p.BaseResp +} +func (p *DeleteExptInsightAnalysisRecordResponse) SetBaseResp(val *base.BaseResp) { + p.BaseResp = val +} + +var fieldIDToName_DeleteExptInsightAnalysisRecordResponse = map[int16]string{ + 255: "BaseResp", +} + +func (p *DeleteExptInsightAnalysisRecordResponse) IsSetBaseResp() bool { + return p.BaseResp != nil +} + +func (p *DeleteExptInsightAnalysisRecordResponse) 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 255: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField255(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_DeleteExptInsightAnalysisRecordResponse[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 *DeleteExptInsightAnalysisRecordResponse) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBaseResp() + if err := _field.Read(iprot); err != nil { + return err + } + p.BaseResp = _field + return nil +} + +func (p *DeleteExptInsightAnalysisRecordResponse) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("DeleteExptInsightAnalysisRecordResponse"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField255(oprot); err != nil { + fieldId = 255 + 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 *DeleteExptInsightAnalysisRecordResponse) writeField255(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.BaseResp.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 255 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) +} + +func (p *DeleteExptInsightAnalysisRecordResponse) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("DeleteExptInsightAnalysisRecordResponse(%+v)", *p) + +} + +func (p *DeleteExptInsightAnalysisRecordResponse) DeepEqual(ano *DeleteExptInsightAnalysisRecordResponse) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field255DeepEqual(ano.BaseResp) { + return false + } + return true +} + +func (p *DeleteExptInsightAnalysisRecordResponse) Field255DeepEqual(src *base.BaseResp) bool { + + if !p.BaseResp.DeepEqual(src) { + return false + } + return true +} + +type FeedbackExptInsightAnalysisReportRequest struct { + WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` + ExptID int64 `thrift:"expt_id,2,required" frugal:"2,required,i64" json:"expt_id" path:"expt_id,required" ` + InsightAnalysisRecordID int64 `thrift:"insight_analysis_record_id,3,required" frugal:"3,required,i64" json:"insight_analysis_record_id" path:"insight_analysis_record_id,required" ` + FeedbackActionType expt.FeedbackActionType `thrift:"feedback_action_type,4,required" frugal:"4,required,string" form:"feedback_action_type,required" json:"feedback_action_type,required" query:"feedback_action_type,required"` + Comment *string `thrift:"comment,5,optional" frugal:"5,optional,string" form:"comment" json:"comment,omitempty" query:"comment"` + // 用于更新comment + CommentID *int64 `thrift:"comment_id,6,optional" frugal:"6,optional,i64" json:"comment_id" form:"comment_id" ` + Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` +} + +func NewFeedbackExptInsightAnalysisReportRequest() *FeedbackExptInsightAnalysisReportRequest { + return &FeedbackExptInsightAnalysisReportRequest{} +} + +func (p *FeedbackExptInsightAnalysisReportRequest) InitDefault() { +} + +func (p *FeedbackExptInsightAnalysisReportRequest) GetWorkspaceID() (v int64) { + if p != nil { + return p.WorkspaceID + } + return +} + +func (p *FeedbackExptInsightAnalysisReportRequest) GetExptID() (v int64) { + if p != nil { + return p.ExptID + } + return +} + +func (p *FeedbackExptInsightAnalysisReportRequest) GetInsightAnalysisRecordID() (v int64) { + if p != nil { + return p.InsightAnalysisRecordID + } + return +} + +func (p *FeedbackExptInsightAnalysisReportRequest) GetFeedbackActionType() (v expt.FeedbackActionType) { + if p != nil { + return p.FeedbackActionType + } + return +} + +var FeedbackExptInsightAnalysisReportRequest_Comment_DEFAULT string + +func (p *FeedbackExptInsightAnalysisReportRequest) GetComment() (v string) { + if p == nil { + return + } + if !p.IsSetComment() { + return FeedbackExptInsightAnalysisReportRequest_Comment_DEFAULT + } + return *p.Comment +} + +var FeedbackExptInsightAnalysisReportRequest_CommentID_DEFAULT int64 + +func (p *FeedbackExptInsightAnalysisReportRequest) GetCommentID() (v int64) { + if p == nil { + return + } + if !p.IsSetCommentID() { + return FeedbackExptInsightAnalysisReportRequest_CommentID_DEFAULT + } + return *p.CommentID +} + +var FeedbackExptInsightAnalysisReportRequest_Session_DEFAULT *common.Session + +func (p *FeedbackExptInsightAnalysisReportRequest) GetSession() (v *common.Session) { + if p == nil { + return + } + if !p.IsSetSession() { + return FeedbackExptInsightAnalysisReportRequest_Session_DEFAULT + } + return p.Session +} + +var FeedbackExptInsightAnalysisReportRequest_Base_DEFAULT *base.Base + +func (p *FeedbackExptInsightAnalysisReportRequest) GetBase() (v *base.Base) { + if p == nil { + return + } + if !p.IsSetBase() { + return FeedbackExptInsightAnalysisReportRequest_Base_DEFAULT + } + return p.Base +} +func (p *FeedbackExptInsightAnalysisReportRequest) SetWorkspaceID(val int64) { + p.WorkspaceID = val +} +func (p *FeedbackExptInsightAnalysisReportRequest) SetExptID(val int64) { + p.ExptID = val +} +func (p *FeedbackExptInsightAnalysisReportRequest) SetInsightAnalysisRecordID(val int64) { + p.InsightAnalysisRecordID = val +} +func (p *FeedbackExptInsightAnalysisReportRequest) SetFeedbackActionType(val expt.FeedbackActionType) { + p.FeedbackActionType = val +} +func (p *FeedbackExptInsightAnalysisReportRequest) SetComment(val *string) { + p.Comment = val +} +func (p *FeedbackExptInsightAnalysisReportRequest) SetCommentID(val *int64) { + p.CommentID = val +} +func (p *FeedbackExptInsightAnalysisReportRequest) SetSession(val *common.Session) { + p.Session = val +} +func (p *FeedbackExptInsightAnalysisReportRequest) SetBase(val *base.Base) { + p.Base = val +} + +var fieldIDToName_FeedbackExptInsightAnalysisReportRequest = map[int16]string{ + 1: "workspace_id", + 2: "expt_id", + 3: "insight_analysis_record_id", + 4: "feedback_action_type", + 5: "comment", + 6: "comment_id", + 200: "session", + 255: "Base", +} + +func (p *FeedbackExptInsightAnalysisReportRequest) IsSetComment() bool { + return p.Comment != nil +} + +func (p *FeedbackExptInsightAnalysisReportRequest) IsSetCommentID() bool { + return p.CommentID != nil +} + +func (p *FeedbackExptInsightAnalysisReportRequest) IsSetSession() bool { + return p.Session != nil +} + +func (p *FeedbackExptInsightAnalysisReportRequest) IsSetBase() bool { + return p.Base != nil +} + +func (p *FeedbackExptInsightAnalysisReportRequest) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + var issetWorkspaceID bool = false + var issetExptID bool = false + var issetInsightAnalysisRecordID bool = false + var issetFeedbackActionType 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 + } + issetWorkspaceID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.I64 { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + issetExptID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.I64 { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + issetInsightAnalysisRecordID = true + } 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 + } + issetFeedbackActionType = true + } 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.I64 { + if err = p.ReadField6(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 200: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField200(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 { + 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 !issetWorkspaceID { + fieldId = 1 + goto RequiredFieldNotSetError + } + + if !issetExptID { + fieldId = 2 + goto RequiredFieldNotSetError + } + + if !issetInsightAnalysisRecordID { + fieldId = 3 + goto RequiredFieldNotSetError + } + + if !issetFeedbackActionType { + fieldId = 4 + 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_FeedbackExptInsightAnalysisReportRequest[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_FeedbackExptInsightAnalysisReportRequest[fieldId])) +} + +func (p *FeedbackExptInsightAnalysisReportRequest) ReadField1(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.WorkspaceID = _field + return nil +} +func (p *FeedbackExptInsightAnalysisReportRequest) ReadField2(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.ExptID = _field + return nil +} +func (p *FeedbackExptInsightAnalysisReportRequest) ReadField3(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.InsightAnalysisRecordID = _field + return nil +} +func (p *FeedbackExptInsightAnalysisReportRequest) ReadField4(iprot thrift.TProtocol) error { + + var _field expt.FeedbackActionType + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = v + } + p.FeedbackActionType = _field + return nil +} +func (p *FeedbackExptInsightAnalysisReportRequest) ReadField5(iprot thrift.TProtocol) error { + + var _field *string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = &v + } + p.Comment = _field + return nil +} +func (p *FeedbackExptInsightAnalysisReportRequest) ReadField6(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.CommentID = _field + return nil +} +func (p *FeedbackExptInsightAnalysisReportRequest) ReadField200(iprot thrift.TProtocol) error { + _field := common.NewSession() + if err := _field.Read(iprot); err != nil { + return err + } + p.Session = _field + return nil +} +func (p *FeedbackExptInsightAnalysisReportRequest) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBase() + if err := _field.Read(iprot); err != nil { + return err + } + p.Base = _field + return nil +} + +func (p *FeedbackExptInsightAnalysisReportRequest) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("FeedbackExptInsightAnalysisReportRequest"); 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 = p.writeField200(oprot); err != nil { + fieldId = 200 + goto WriteFieldError + } + if err = p.writeField255(oprot); err != nil { + fieldId = 255 + 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 *FeedbackExptInsightAnalysisReportRequest) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.WorkspaceID); 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 *FeedbackExptInsightAnalysisReportRequest) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("expt_id", thrift.I64, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.ExptID); 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 *FeedbackExptInsightAnalysisReportRequest) writeField3(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("insight_analysis_record_id", thrift.I64, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.InsightAnalysisRecordID); 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 *FeedbackExptInsightAnalysisReportRequest) writeField4(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("feedback_action_type", thrift.STRING, 4); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(p.FeedbackActionType); 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 *FeedbackExptInsightAnalysisReportRequest) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetComment() { + if err = oprot.WriteFieldBegin("comment", thrift.STRING, 5); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(*p.Comment); 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 *FeedbackExptInsightAnalysisReportRequest) writeField6(oprot thrift.TProtocol) (err error) { + if p.IsSetCommentID() { + if err = oprot.WriteFieldBegin("comment_id", thrift.I64, 6); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.CommentID); 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 *FeedbackExptInsightAnalysisReportRequest) writeField200(oprot thrift.TProtocol) (err error) { + if p.IsSetSession() { + if err = oprot.WriteFieldBegin("session", thrift.STRUCT, 200); err != nil { + goto WriteFieldBeginError + } + if err := p.Session.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 200 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 200 end error: ", p), err) +} +func (p *FeedbackExptInsightAnalysisReportRequest) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBase() { + if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.Base.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 255 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) +} + +func (p *FeedbackExptInsightAnalysisReportRequest) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("FeedbackExptInsightAnalysisReportRequest(%+v)", *p) + +} + +func (p *FeedbackExptInsightAnalysisReportRequest) DeepEqual(ano *FeedbackExptInsightAnalysisReportRequest) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.WorkspaceID) { + return false + } + if !p.Field2DeepEqual(ano.ExptID) { + return false + } + if !p.Field3DeepEqual(ano.InsightAnalysisRecordID) { + return false + } + if !p.Field4DeepEqual(ano.FeedbackActionType) { + return false + } + if !p.Field5DeepEqual(ano.Comment) { + return false + } + if !p.Field6DeepEqual(ano.CommentID) { + return false + } + if !p.Field200DeepEqual(ano.Session) { + return false + } + if !p.Field255DeepEqual(ano.Base) { + return false + } + return true +} + +func (p *FeedbackExptInsightAnalysisReportRequest) Field1DeepEqual(src int64) bool { + + if p.WorkspaceID != src { + return false + } + return true +} +func (p *FeedbackExptInsightAnalysisReportRequest) Field2DeepEqual(src int64) bool { + + if p.ExptID != src { + return false + } + return true +} +func (p *FeedbackExptInsightAnalysisReportRequest) Field3DeepEqual(src int64) bool { + + if p.InsightAnalysisRecordID != src { + return false + } + return true +} +func (p *FeedbackExptInsightAnalysisReportRequest) Field4DeepEqual(src expt.FeedbackActionType) bool { + + if strings.Compare(p.FeedbackActionType, src) != 0 { + return false + } + return true +} +func (p *FeedbackExptInsightAnalysisReportRequest) Field5DeepEqual(src *string) bool { + + if p.Comment == src { + return true + } else if p.Comment == nil || src == nil { + return false + } + if strings.Compare(*p.Comment, *src) != 0 { + return false + } + return true +} +func (p *FeedbackExptInsightAnalysisReportRequest) Field6DeepEqual(src *int64) bool { + + if p.CommentID == src { + return true + } else if p.CommentID == nil || src == nil { + return false + } + if *p.CommentID != *src { + return false + } + return true +} +func (p *FeedbackExptInsightAnalysisReportRequest) Field200DeepEqual(src *common.Session) bool { + + if !p.Session.DeepEqual(src) { + return false + } + return true +} +func (p *FeedbackExptInsightAnalysisReportRequest) Field255DeepEqual(src *base.Base) bool { + + if !p.Base.DeepEqual(src) { + return false + } + return true +} + +type FeedbackExptInsightAnalysisReportResponse struct { + BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` +} + +func NewFeedbackExptInsightAnalysisReportResponse() *FeedbackExptInsightAnalysisReportResponse { + return &FeedbackExptInsightAnalysisReportResponse{} +} + +func (p *FeedbackExptInsightAnalysisReportResponse) InitDefault() { +} + +var FeedbackExptInsightAnalysisReportResponse_BaseResp_DEFAULT *base.BaseResp + +func (p *FeedbackExptInsightAnalysisReportResponse) GetBaseResp() (v *base.BaseResp) { + if p == nil { + return + } + if !p.IsSetBaseResp() { + return FeedbackExptInsightAnalysisReportResponse_BaseResp_DEFAULT + } + return p.BaseResp +} +func (p *FeedbackExptInsightAnalysisReportResponse) SetBaseResp(val *base.BaseResp) { + p.BaseResp = val +} + +var fieldIDToName_FeedbackExptInsightAnalysisReportResponse = map[int16]string{ + 255: "BaseResp", +} + +func (p *FeedbackExptInsightAnalysisReportResponse) IsSetBaseResp() bool { + return p.BaseResp != nil +} + +func (p *FeedbackExptInsightAnalysisReportResponse) 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 255: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField255(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_FeedbackExptInsightAnalysisReportResponse[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 *FeedbackExptInsightAnalysisReportResponse) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBaseResp() + if err := _field.Read(iprot); err != nil { + return err + } + p.BaseResp = _field + return nil +} + +func (p *FeedbackExptInsightAnalysisReportResponse) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("FeedbackExptInsightAnalysisReportResponse"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField255(oprot); err != nil { + fieldId = 255 + 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 *FeedbackExptInsightAnalysisReportResponse) writeField255(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.BaseResp.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 255 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) +} + +func (p *FeedbackExptInsightAnalysisReportResponse) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("FeedbackExptInsightAnalysisReportResponse(%+v)", *p) + +} + +func (p *FeedbackExptInsightAnalysisReportResponse) DeepEqual(ano *FeedbackExptInsightAnalysisReportResponse) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field255DeepEqual(ano.BaseResp) { + return false + } + return true +} + +func (p *FeedbackExptInsightAnalysisReportResponse) Field255DeepEqual(src *base.BaseResp) bool { + + if !p.BaseResp.DeepEqual(src) { + return false + } + return true +} + +type ListExptInsightAnalysisCommentRequest struct { + WorkspaceID int64 `thrift:"workspace_id,1,required" frugal:"1,required,i64" json:"workspace_id" form:"workspace_id,required" ` + ExptID int64 `thrift:"expt_id,2,required" frugal:"2,required,i64" json:"expt_id" path:"expt_id,required" ` + InsightAnalysisRecordID int64 `thrift:"insight_analysis_record_id,3,required" frugal:"3,required,i64" json:"insight_analysis_record_id" path:"insight_analysis_record_id,required" ` + PageNumber *int32 `thrift:"page_number,4,optional" frugal:"4,optional,i32" form:"page_number" json:"page_number,omitempty"` + PageSize *int32 `thrift:"page_size,5,optional" frugal:"5,optional,i32" form:"page_size" json:"page_size,omitempty"` + Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` +} + +func NewListExptInsightAnalysisCommentRequest() *ListExptInsightAnalysisCommentRequest { + return &ListExptInsightAnalysisCommentRequest{} +} + +func (p *ListExptInsightAnalysisCommentRequest) InitDefault() { +} + +func (p *ListExptInsightAnalysisCommentRequest) GetWorkspaceID() (v int64) { + if p != nil { + return p.WorkspaceID + } + return +} + +func (p *ListExptInsightAnalysisCommentRequest) GetExptID() (v int64) { + if p != nil { + return p.ExptID + } + return +} + +func (p *ListExptInsightAnalysisCommentRequest) GetInsightAnalysisRecordID() (v int64) { + if p != nil { + return p.InsightAnalysisRecordID + } + return +} + +var ListExptInsightAnalysisCommentRequest_PageNumber_DEFAULT int32 + +func (p *ListExptInsightAnalysisCommentRequest) GetPageNumber() (v int32) { + if p == nil { + return + } + if !p.IsSetPageNumber() { + return ListExptInsightAnalysisCommentRequest_PageNumber_DEFAULT + } + return *p.PageNumber +} + +var ListExptInsightAnalysisCommentRequest_PageSize_DEFAULT int32 + +func (p *ListExptInsightAnalysisCommentRequest) GetPageSize() (v int32) { + if p == nil { + return + } + if !p.IsSetPageSize() { + return ListExptInsightAnalysisCommentRequest_PageSize_DEFAULT + } + return *p.PageSize +} + +var ListExptInsightAnalysisCommentRequest_Session_DEFAULT *common.Session + +func (p *ListExptInsightAnalysisCommentRequest) GetSession() (v *common.Session) { + if p == nil { + return + } + if !p.IsSetSession() { + return ListExptInsightAnalysisCommentRequest_Session_DEFAULT + } + return p.Session +} + +var ListExptInsightAnalysisCommentRequest_Base_DEFAULT *base.Base + +func (p *ListExptInsightAnalysisCommentRequest) GetBase() (v *base.Base) { + if p == nil { + return + } + if !p.IsSetBase() { + return ListExptInsightAnalysisCommentRequest_Base_DEFAULT + } + return p.Base +} +func (p *ListExptInsightAnalysisCommentRequest) SetWorkspaceID(val int64) { + p.WorkspaceID = val +} +func (p *ListExptInsightAnalysisCommentRequest) SetExptID(val int64) { + p.ExptID = val +} +func (p *ListExptInsightAnalysisCommentRequest) SetInsightAnalysisRecordID(val int64) { + p.InsightAnalysisRecordID = val +} +func (p *ListExptInsightAnalysisCommentRequest) SetPageNumber(val *int32) { + p.PageNumber = val +} +func (p *ListExptInsightAnalysisCommentRequest) SetPageSize(val *int32) { + p.PageSize = val +} +func (p *ListExptInsightAnalysisCommentRequest) SetSession(val *common.Session) { + p.Session = val +} +func (p *ListExptInsightAnalysisCommentRequest) SetBase(val *base.Base) { + p.Base = val +} + +var fieldIDToName_ListExptInsightAnalysisCommentRequest = map[int16]string{ + 1: "workspace_id", + 2: "expt_id", + 3: "insight_analysis_record_id", + 4: "page_number", + 5: "page_size", + 200: "session", + 255: "Base", +} + +func (p *ListExptInsightAnalysisCommentRequest) IsSetPageNumber() bool { + return p.PageNumber != nil +} + +func (p *ListExptInsightAnalysisCommentRequest) IsSetPageSize() bool { + return p.PageSize != nil +} + +func (p *ListExptInsightAnalysisCommentRequest) IsSetSession() bool { + return p.Session != nil +} + +func (p *ListExptInsightAnalysisCommentRequest) IsSetBase() bool { + return p.Base != nil +} + +func (p *ListExptInsightAnalysisCommentRequest) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + var issetWorkspaceID bool = false + var issetExptID bool = false + var issetInsightAnalysisRecordID 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 + } + issetWorkspaceID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.I64 { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + issetExptID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.I64 { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + issetInsightAnalysisRecordID = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 4: + if fieldTypeId == thrift.I32 { + if err = p.ReadField4(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 5: + if fieldTypeId == thrift.I32 { + if err = p.ReadField5(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 200: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField200(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 { + 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 !issetWorkspaceID { + fieldId = 1 + goto RequiredFieldNotSetError + } + + if !issetExptID { + fieldId = 2 + goto RequiredFieldNotSetError + } + + if !issetInsightAnalysisRecordID { + 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_ListExptInsightAnalysisCommentRequest[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_ListExptInsightAnalysisCommentRequest[fieldId])) +} + +func (p *ListExptInsightAnalysisCommentRequest) ReadField1(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.WorkspaceID = _field + return nil +} +func (p *ListExptInsightAnalysisCommentRequest) ReadField2(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.ExptID = _field + return nil +} +func (p *ListExptInsightAnalysisCommentRequest) ReadField3(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.InsightAnalysisRecordID = _field + return nil +} +func (p *ListExptInsightAnalysisCommentRequest) ReadField4(iprot thrift.TProtocol) error { + + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + _field = &v + } + p.PageNumber = _field + return nil +} +func (p *ListExptInsightAnalysisCommentRequest) ReadField5(iprot thrift.TProtocol) error { + + var _field *int32 + if v, err := iprot.ReadI32(); err != nil { + return err + } else { + _field = &v + } + p.PageSize = _field + return nil +} +func (p *ListExptInsightAnalysisCommentRequest) ReadField200(iprot thrift.TProtocol) error { + _field := common.NewSession() + if err := _field.Read(iprot); err != nil { + return err + } + p.Session = _field + return nil +} +func (p *ListExptInsightAnalysisCommentRequest) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBase() + if err := _field.Read(iprot); err != nil { + return err + } + p.Base = _field + return nil +} + +func (p *ListExptInsightAnalysisCommentRequest) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ListExptInsightAnalysisCommentRequest"); 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.writeField200(oprot); err != nil { + fieldId = 200 + goto WriteFieldError + } + if err = p.writeField255(oprot); err != nil { + fieldId = 255 + 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 *ListExptInsightAnalysisCommentRequest) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.WorkspaceID); 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 *ListExptInsightAnalysisCommentRequest) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("expt_id", thrift.I64, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.ExptID); 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 *ListExptInsightAnalysisCommentRequest) writeField3(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("insight_analysis_record_id", thrift.I64, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.InsightAnalysisRecordID); 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 *ListExptInsightAnalysisCommentRequest) writeField4(oprot thrift.TProtocol) (err error) { + if p.IsSetPageNumber() { + if err = oprot.WriteFieldBegin("page_number", thrift.I32, 4); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.PageNumber); 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 *ListExptInsightAnalysisCommentRequest) writeField5(oprot thrift.TProtocol) (err error) { + if p.IsSetPageSize() { + if err = oprot.WriteFieldBegin("page_size", thrift.I32, 5); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI32(*p.PageSize); 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 *ListExptInsightAnalysisCommentRequest) writeField200(oprot thrift.TProtocol) (err error) { + if p.IsSetSession() { + if err = oprot.WriteFieldBegin("session", thrift.STRUCT, 200); err != nil { + goto WriteFieldBeginError + } + if err := p.Session.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 200 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 200 end error: ", p), err) +} +func (p *ListExptInsightAnalysisCommentRequest) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBase() { + if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.Base.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 255 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) +} + +func (p *ListExptInsightAnalysisCommentRequest) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ListExptInsightAnalysisCommentRequest(%+v)", *p) + +} + +func (p *ListExptInsightAnalysisCommentRequest) DeepEqual(ano *ListExptInsightAnalysisCommentRequest) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.WorkspaceID) { + return false + } + if !p.Field2DeepEqual(ano.ExptID) { + return false + } + if !p.Field3DeepEqual(ano.InsightAnalysisRecordID) { + return false + } + if !p.Field4DeepEqual(ano.PageNumber) { + return false + } + if !p.Field5DeepEqual(ano.PageSize) { + return false + } + if !p.Field200DeepEqual(ano.Session) { + return false + } + if !p.Field255DeepEqual(ano.Base) { + return false + } + return true +} + +func (p *ListExptInsightAnalysisCommentRequest) Field1DeepEqual(src int64) bool { + + if p.WorkspaceID != src { + return false + } + return true +} +func (p *ListExptInsightAnalysisCommentRequest) Field2DeepEqual(src int64) bool { + + if p.ExptID != src { + return false + } + return true +} +func (p *ListExptInsightAnalysisCommentRequest) Field3DeepEqual(src int64) bool { + + if p.InsightAnalysisRecordID != src { + return false + } + return true +} +func (p *ListExptInsightAnalysisCommentRequest) Field4DeepEqual(src *int32) bool { + + if p.PageNumber == src { + return true + } else if p.PageNumber == nil || src == nil { + return false + } + if *p.PageNumber != *src { + return false + } + return true +} +func (p *ListExptInsightAnalysisCommentRequest) Field5DeepEqual(src *int32) bool { + + if p.PageSize == src { + return true + } else if p.PageSize == nil || src == nil { + return false + } + if *p.PageSize != *src { + return false + } + return true +} +func (p *ListExptInsightAnalysisCommentRequest) Field200DeepEqual(src *common.Session) bool { + + if !p.Session.DeepEqual(src) { + return false + } + return true +} +func (p *ListExptInsightAnalysisCommentRequest) Field255DeepEqual(src *base.Base) bool { + + if !p.Base.DeepEqual(src) { + return false + } + return true +} + +type ListExptInsightAnalysisCommentResponse struct { + ExptInsightAnalysisFeedbackComments []*expt.ExptInsightAnalysisFeedbackComment `thrift:"expt_insight_analysis_feedback_comments,1,required" frugal:"1,required,list" form:"expt_insight_analysis_feedback_comments,required" json:"expt_insight_analysis_feedback_comments,required" query:"expt_insight_analysis_feedback_comments,required"` + Total *int64 `thrift:"total,20,optional" frugal:"20,optional,i64" json:"total" form:"total" ` + BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` +} + +func NewListExptInsightAnalysisCommentResponse() *ListExptInsightAnalysisCommentResponse { + return &ListExptInsightAnalysisCommentResponse{} +} + +func (p *ListExptInsightAnalysisCommentResponse) InitDefault() { +} + +func (p *ListExptInsightAnalysisCommentResponse) GetExptInsightAnalysisFeedbackComments() (v []*expt.ExptInsightAnalysisFeedbackComment) { + if p != nil { + return p.ExptInsightAnalysisFeedbackComments + } + return +} + +var ListExptInsightAnalysisCommentResponse_Total_DEFAULT int64 + +func (p *ListExptInsightAnalysisCommentResponse) GetTotal() (v int64) { + if p == nil { + return + } + if !p.IsSetTotal() { + return ListExptInsightAnalysisCommentResponse_Total_DEFAULT + } + return *p.Total +} + +var ListExptInsightAnalysisCommentResponse_BaseResp_DEFAULT *base.BaseResp + +func (p *ListExptInsightAnalysisCommentResponse) GetBaseResp() (v *base.BaseResp) { + if p == nil { + return + } + if !p.IsSetBaseResp() { + return ListExptInsightAnalysisCommentResponse_BaseResp_DEFAULT + } + return p.BaseResp +} +func (p *ListExptInsightAnalysisCommentResponse) SetExptInsightAnalysisFeedbackComments(val []*expt.ExptInsightAnalysisFeedbackComment) { + p.ExptInsightAnalysisFeedbackComments = val +} +func (p *ListExptInsightAnalysisCommentResponse) SetTotal(val *int64) { + p.Total = val +} +func (p *ListExptInsightAnalysisCommentResponse) SetBaseResp(val *base.BaseResp) { + p.BaseResp = val +} + +var fieldIDToName_ListExptInsightAnalysisCommentResponse = map[int16]string{ + 1: "expt_insight_analysis_feedback_comments", + 20: "total", + 255: "BaseResp", +} + +func (p *ListExptInsightAnalysisCommentResponse) IsSetTotal() bool { + return p.Total != nil +} + +func (p *ListExptInsightAnalysisCommentResponse) IsSetBaseResp() bool { + return p.BaseResp != nil +} + +func (p *ListExptInsightAnalysisCommentResponse) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + var issetExptInsightAnalysisFeedbackComments 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.LIST { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + issetExptInsightAnalysisFeedbackComments = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 20: + if fieldTypeId == thrift.I64 { + if err = p.ReadField20(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 { + 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 !issetExptInsightAnalysisFeedbackComments { + 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_ListExptInsightAnalysisCommentResponse[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_ListExptInsightAnalysisCommentResponse[fieldId])) +} + +func (p *ListExptInsightAnalysisCommentResponse) ReadField1(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { + return err + } + _field := make([]*expt.ExptInsightAnalysisFeedbackComment, 0, size) + values := make([]expt.ExptInsightAnalysisFeedbackComment, 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.ExptInsightAnalysisFeedbackComments = _field + return nil +} +func (p *ListExptInsightAnalysisCommentResponse) ReadField20(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.Total = _field + return nil +} +func (p *ListExptInsightAnalysisCommentResponse) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBaseResp() + if err := _field.Read(iprot); err != nil { + return err + } + p.BaseResp = _field + return nil +} + +func (p *ListExptInsightAnalysisCommentResponse) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ListExptInsightAnalysisCommentResponse"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField20(oprot); err != nil { + fieldId = 20 + goto WriteFieldError + } + if err = p.writeField255(oprot); err != nil { + fieldId = 255 + 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 *ListExptInsightAnalysisCommentResponse) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("expt_insight_analysis_feedback_comments", thrift.LIST, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRUCT, len(p.ExptInsightAnalysisFeedbackComments)); err != nil { + return err + } + for _, v := range p.ExptInsightAnalysisFeedbackComments { + 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 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *ListExptInsightAnalysisCommentResponse) writeField20(oprot thrift.TProtocol) (err error) { + if p.IsSetTotal() { + if err = oprot.WriteFieldBegin("total", thrift.I64, 20); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.Total); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 20 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 20 end error: ", p), err) +} +func (p *ListExptInsightAnalysisCommentResponse) writeField255(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.BaseResp.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 255 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) +} + +func (p *ListExptInsightAnalysisCommentResponse) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ListExptInsightAnalysisCommentResponse(%+v)", *p) + +} + +func (p *ListExptInsightAnalysisCommentResponse) DeepEqual(ano *ListExptInsightAnalysisCommentResponse) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.ExptInsightAnalysisFeedbackComments) { + return false + } + if !p.Field20DeepEqual(ano.Total) { + return false + } + if !p.Field255DeepEqual(ano.BaseResp) { + return false + } + return true +} + +func (p *ListExptInsightAnalysisCommentResponse) Field1DeepEqual(src []*expt.ExptInsightAnalysisFeedbackComment) bool { + + if len(p.ExptInsightAnalysisFeedbackComments) != len(src) { + return false + } + for i, v := range p.ExptInsightAnalysisFeedbackComments { + _src := src[i] + if !v.DeepEqual(_src) { + return false + } + } + return true +} +func (p *ListExptInsightAnalysisCommentResponse) Field20DeepEqual(src *int64) bool { + + if p.Total == src { + return true + } else if p.Total == nil || src == nil { + return false + } + if *p.Total != *src { + return false + } + return true +} +func (p *ListExptInsightAnalysisCommentResponse) Field255DeepEqual(src *base.BaseResp) bool { + + if !p.BaseResp.DeepEqual(src) { + return false + } + return true +} + +type GetAnalysisRecordFeedbackVoteRequest struct { + WorkspaceID *int64 `thrift:"workspace_id,1,optional" frugal:"1,optional,i64" json:"workspace_id" query:"workspace_id" ` + ExptID *int64 `thrift:"expt_id,2,optional" frugal:"2,optional,i64" json:"expt_id" query:"expt_id" ` + InsightAnalysisRecordID *int64 `thrift:"insight_analysis_record_id,3,optional" frugal:"3,optional,i64" json:"insight_analysis_record_id" path:"insight_analysis_record_id" ` + Session *common.Session `thrift:"session,200,optional" frugal:"200,optional,common.Session" form:"session" json:"session,omitempty" query:"session"` + Base *base.Base `thrift:"Base,255,optional" frugal:"255,optional,base.Base" form:"Base" json:"Base,omitempty" query:"Base"` +} + +func NewGetAnalysisRecordFeedbackVoteRequest() *GetAnalysisRecordFeedbackVoteRequest { + return &GetAnalysisRecordFeedbackVoteRequest{} +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) InitDefault() { +} + +var GetAnalysisRecordFeedbackVoteRequest_WorkspaceID_DEFAULT int64 + +func (p *GetAnalysisRecordFeedbackVoteRequest) GetWorkspaceID() (v int64) { + if p == nil { + return + } + if !p.IsSetWorkspaceID() { + return GetAnalysisRecordFeedbackVoteRequest_WorkspaceID_DEFAULT + } + return *p.WorkspaceID +} + +var GetAnalysisRecordFeedbackVoteRequest_ExptID_DEFAULT int64 + +func (p *GetAnalysisRecordFeedbackVoteRequest) GetExptID() (v int64) { + if p == nil { + return + } + if !p.IsSetExptID() { + return GetAnalysisRecordFeedbackVoteRequest_ExptID_DEFAULT + } + return *p.ExptID +} + +var GetAnalysisRecordFeedbackVoteRequest_InsightAnalysisRecordID_DEFAULT int64 + +func (p *GetAnalysisRecordFeedbackVoteRequest) GetInsightAnalysisRecordID() (v int64) { + if p == nil { + return + } + if !p.IsSetInsightAnalysisRecordID() { + return GetAnalysisRecordFeedbackVoteRequest_InsightAnalysisRecordID_DEFAULT + } + return *p.InsightAnalysisRecordID +} + +var GetAnalysisRecordFeedbackVoteRequest_Session_DEFAULT *common.Session + +func (p *GetAnalysisRecordFeedbackVoteRequest) GetSession() (v *common.Session) { + if p == nil { + return + } + if !p.IsSetSession() { + return GetAnalysisRecordFeedbackVoteRequest_Session_DEFAULT + } + return p.Session +} + +var GetAnalysisRecordFeedbackVoteRequest_Base_DEFAULT *base.Base + +func (p *GetAnalysisRecordFeedbackVoteRequest) GetBase() (v *base.Base) { + if p == nil { + return + } + if !p.IsSetBase() { + return GetAnalysisRecordFeedbackVoteRequest_Base_DEFAULT + } + return p.Base +} +func (p *GetAnalysisRecordFeedbackVoteRequest) SetWorkspaceID(val *int64) { + p.WorkspaceID = val +} +func (p *GetAnalysisRecordFeedbackVoteRequest) SetExptID(val *int64) { + p.ExptID = val +} +func (p *GetAnalysisRecordFeedbackVoteRequest) SetInsightAnalysisRecordID(val *int64) { + p.InsightAnalysisRecordID = val +} +func (p *GetAnalysisRecordFeedbackVoteRequest) SetSession(val *common.Session) { + p.Session = val +} +func (p *GetAnalysisRecordFeedbackVoteRequest) SetBase(val *base.Base) { + p.Base = val +} + +var fieldIDToName_GetAnalysisRecordFeedbackVoteRequest = map[int16]string{ + 1: "workspace_id", + 2: "expt_id", + 3: "insight_analysis_record_id", + 200: "session", + 255: "Base", +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) IsSetWorkspaceID() bool { + return p.WorkspaceID != nil +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) IsSetExptID() bool { + return p.ExptID != nil +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) IsSetInsightAnalysisRecordID() bool { + return p.InsightAnalysisRecordID != nil +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) IsSetSession() bool { + return p.Session != nil +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) IsSetBase() bool { + return p.Base != nil +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) 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.I64 { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.I64 { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.I64 { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 200: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField200(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 { + 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_GetAnalysisRecordFeedbackVoteRequest[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 *GetAnalysisRecordFeedbackVoteRequest) ReadField1(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.WorkspaceID = _field + return nil +} +func (p *GetAnalysisRecordFeedbackVoteRequest) ReadField2(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.ExptID = _field + return nil +} +func (p *GetAnalysisRecordFeedbackVoteRequest) ReadField3(iprot thrift.TProtocol) error { + + var _field *int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = &v + } + p.InsightAnalysisRecordID = _field + return nil +} +func (p *GetAnalysisRecordFeedbackVoteRequest) ReadField200(iprot thrift.TProtocol) error { + _field := common.NewSession() + if err := _field.Read(iprot); err != nil { + return err + } + p.Session = _field + return nil +} +func (p *GetAnalysisRecordFeedbackVoteRequest) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBase() + if err := _field.Read(iprot); err != nil { + return err + } + p.Base = _field + return nil +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("GetAnalysisRecordFeedbackVoteRequest"); 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.writeField200(oprot); err != nil { + fieldId = 200 + goto WriteFieldError + } + if err = p.writeField255(oprot); err != nil { + fieldId = 255 + 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 *GetAnalysisRecordFeedbackVoteRequest) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetWorkspaceID() { + if err = oprot.WriteFieldBegin("workspace_id", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.WorkspaceID); 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 *GetAnalysisRecordFeedbackVoteRequest) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetExptID() { + if err = oprot.WriteFieldBegin("expt_id", thrift.I64, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.ExptID); 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 *GetAnalysisRecordFeedbackVoteRequest) writeField3(oprot thrift.TProtocol) (err error) { + if p.IsSetInsightAnalysisRecordID() { + if err = oprot.WriteFieldBegin("insight_analysis_record_id", thrift.I64, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(*p.InsightAnalysisRecordID); 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 *GetAnalysisRecordFeedbackVoteRequest) writeField200(oprot thrift.TProtocol) (err error) { + if p.IsSetSession() { + if err = oprot.WriteFieldBegin("session", thrift.STRUCT, 200); err != nil { + goto WriteFieldBeginError + } + if err := p.Session.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 200 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 200 end error: ", p), err) +} +func (p *GetAnalysisRecordFeedbackVoteRequest) writeField255(oprot thrift.TProtocol) (err error) { + if p.IsSetBase() { + if err = oprot.WriteFieldBegin("Base", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.Base.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 255 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("GetAnalysisRecordFeedbackVoteRequest(%+v)", *p) + +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) DeepEqual(ano *GetAnalysisRecordFeedbackVoteRequest) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.WorkspaceID) { + return false + } + if !p.Field2DeepEqual(ano.ExptID) { + return false + } + if !p.Field3DeepEqual(ano.InsightAnalysisRecordID) { + return false + } + if !p.Field200DeepEqual(ano.Session) { + return false + } + if !p.Field255DeepEqual(ano.Base) { + return false + } + return true +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) Field1DeepEqual(src *int64) bool { + + if p.WorkspaceID == src { + return true + } else if p.WorkspaceID == nil || src == nil { + return false + } + if *p.WorkspaceID != *src { + return false + } + return true +} +func (p *GetAnalysisRecordFeedbackVoteRequest) Field2DeepEqual(src *int64) bool { + + if p.ExptID == src { + return true + } else if p.ExptID == nil || src == nil { + return false + } + if *p.ExptID != *src { + return false + } + return true +} +func (p *GetAnalysisRecordFeedbackVoteRequest) Field3DeepEqual(src *int64) bool { + + if p.InsightAnalysisRecordID == src { + return true + } else if p.InsightAnalysisRecordID == nil || src == nil { + return false + } + if *p.InsightAnalysisRecordID != *src { + return false + } + return true +} +func (p *GetAnalysisRecordFeedbackVoteRequest) Field200DeepEqual(src *common.Session) bool { + + if !p.Session.DeepEqual(src) { + return false + } + return true +} +func (p *GetAnalysisRecordFeedbackVoteRequest) Field255DeepEqual(src *base.Base) bool { + + if !p.Base.DeepEqual(src) { + return false + } + return true +} + +type GetAnalysisRecordFeedbackVoteResponse struct { + Vote *expt.ExptInsightAnalysisFeedbackVote `thrift:"vote,1,optional" frugal:"1,optional,expt.ExptInsightAnalysisFeedbackVote" form:"vote" json:"vote,omitempty" query:"vote"` + BaseResp *base.BaseResp `thrift:"BaseResp,255" frugal:"255,default,base.BaseResp" form:"BaseResp" json:"BaseResp" query:"BaseResp"` +} + +func NewGetAnalysisRecordFeedbackVoteResponse() *GetAnalysisRecordFeedbackVoteResponse { + return &GetAnalysisRecordFeedbackVoteResponse{} +} + +func (p *GetAnalysisRecordFeedbackVoteResponse) InitDefault() { +} + +var GetAnalysisRecordFeedbackVoteResponse_Vote_DEFAULT *expt.ExptInsightAnalysisFeedbackVote + +func (p *GetAnalysisRecordFeedbackVoteResponse) GetVote() (v *expt.ExptInsightAnalysisFeedbackVote) { + if p == nil { + return + } + if !p.IsSetVote() { + return GetAnalysisRecordFeedbackVoteResponse_Vote_DEFAULT + } + return p.Vote +} + +var GetAnalysisRecordFeedbackVoteResponse_BaseResp_DEFAULT *base.BaseResp + +func (p *GetAnalysisRecordFeedbackVoteResponse) GetBaseResp() (v *base.BaseResp) { + if p == nil { + return + } + if !p.IsSetBaseResp() { + return GetAnalysisRecordFeedbackVoteResponse_BaseResp_DEFAULT + } + return p.BaseResp +} +func (p *GetAnalysisRecordFeedbackVoteResponse) SetVote(val *expt.ExptInsightAnalysisFeedbackVote) { + p.Vote = val +} +func (p *GetAnalysisRecordFeedbackVoteResponse) SetBaseResp(val *base.BaseResp) { + p.BaseResp = val +} + +var fieldIDToName_GetAnalysisRecordFeedbackVoteResponse = map[int16]string{ + 1: "vote", + 255: "BaseResp", +} + +func (p *GetAnalysisRecordFeedbackVoteResponse) IsSetVote() bool { + return p.Vote != nil +} + +func (p *GetAnalysisRecordFeedbackVoteResponse) IsSetBaseResp() bool { + return p.BaseResp != nil +} + +func (p *GetAnalysisRecordFeedbackVoteResponse) 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.STRUCT { + if err = p.ReadField1(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 { + 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_GetAnalysisRecordFeedbackVoteResponse[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 *GetAnalysisRecordFeedbackVoteResponse) ReadField1(iprot thrift.TProtocol) error { + _field := expt.NewExptInsightAnalysisFeedbackVote() + if err := _field.Read(iprot); err != nil { + return err + } + p.Vote = _field + return nil +} +func (p *GetAnalysisRecordFeedbackVoteResponse) ReadField255(iprot thrift.TProtocol) error { + _field := base.NewBaseResp() + if err := _field.Read(iprot); err != nil { + return err + } + p.BaseResp = _field + return nil +} + +func (p *GetAnalysisRecordFeedbackVoteResponse) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("GetAnalysisRecordFeedbackVoteResponse"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField255(oprot); err != nil { + fieldId = 255 + 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 *GetAnalysisRecordFeedbackVoteResponse) writeField1(oprot thrift.TProtocol) (err error) { + if p.IsSetVote() { + if err = oprot.WriteFieldBegin("vote", thrift.STRUCT, 1); err != nil { + goto WriteFieldBeginError + } + if err := p.Vote.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 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} +func (p *GetAnalysisRecordFeedbackVoteResponse) writeField255(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("BaseResp", thrift.STRUCT, 255); err != nil { + goto WriteFieldBeginError + } + if err := p.BaseResp.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 255 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 255 end error: ", p), err) +} + +func (p *GetAnalysisRecordFeedbackVoteResponse) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("GetAnalysisRecordFeedbackVoteResponse(%+v)", *p) + +} + +func (p *GetAnalysisRecordFeedbackVoteResponse) DeepEqual(ano *GetAnalysisRecordFeedbackVoteResponse) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.Vote) { + return false + } + if !p.Field255DeepEqual(ano.BaseResp) { + return false + } + return true +} + +func (p *GetAnalysisRecordFeedbackVoteResponse) Field1DeepEqual(src *expt.ExptInsightAnalysisFeedbackVote) bool { + + if !p.Vote.DeepEqual(src) { + return false + } + return true +} +func (p *GetAnalysisRecordFeedbackVoteResponse) Field255DeepEqual(src *base.BaseResp) bool { + + if !p.BaseResp.DeepEqual(src) { + return false + } + return true +} + +type ExperimentService interface { + CheckExperimentName(ctx context.Context, req *CheckExperimentNameRequest) (r *CheckExperimentNameResponse, err error) + // CreateExperiment 只创建,不提交运行 + CreateExperiment(ctx context.Context, req *CreateExperimentRequest) (r *CreateExperimentResponse, err error) + // SubmitExperiment 创建并提交运行 + SubmitExperiment(ctx context.Context, req *SubmitExperimentRequest) (r *SubmitExperimentResponse, err error) + + BatchGetExperiments(ctx context.Context, req *BatchGetExperimentsRequest) (r *BatchGetExperimentsResponse, err error) + + ListExperiments(ctx context.Context, req *ListExperimentsRequest) (r *ListExperimentsResponse, err error) + + UpdateExperiment(ctx context.Context, req *UpdateExperimentRequest) (r *UpdateExperimentResponse, err error) + + DeleteExperiment(ctx context.Context, req *DeleteExperimentRequest) (r *DeleteExperimentResponse, err error) + + BatchDeleteExperiments(ctx context.Context, req *BatchDeleteExperimentsRequest) (r *BatchDeleteExperimentsResponse, err error) + + CloneExperiment(ctx context.Context, req *CloneExperimentRequest) (r *CloneExperimentResponse, err error) + // RunExperiment 运行已创建的实验 + RunExperiment(ctx context.Context, req *RunExperimentRequest) (r *RunExperimentResponse, err error) + + RetryExperiment(ctx context.Context, req *RetryExperimentRequest) (r *RetryExperimentResponse, err error) + + KillExperiment(ctx context.Context, req *KillExperimentRequest) (r *KillExperimentResponse, err error) + // MGetExperimentResult 获取实验结果 + BatchGetExperimentResult_(ctx context.Context, req *BatchGetExperimentResultRequest) (r *BatchGetExperimentResultResponse, err error) + + CalculateExperimentAggrResult_(ctx context.Context, req *CalculateExperimentAggrResultRequest) (r *CalculateExperimentAggrResultResponse, err error) + + BatchGetExperimentAggrResult_(ctx context.Context, req *BatchGetExperimentAggrResultRequest) (r *BatchGetExperimentAggrResultResponse, err error) + // 在线实验 + InvokeExperiment(ctx context.Context, req *InvokeExperimentRequest) (r *InvokeExperimentResponse, err error) + + FinishExperiment(ctx context.Context, req *FinishExperimentRequest) (r *FinishExperimentResponse, err error) + + ListExperimentStats(ctx context.Context, req *ListExperimentStatsRequest) (r *ListExperimentStatsResponse, err error) + // 更新报告ck + UpsertExptTurnResultFilter(ctx context.Context, req *UpsertExptTurnResultFilterRequest) (r *UpsertExptTurnResultFilterResponse, err error) + // 人工标注 + AssociateAnnotationTag(ctx context.Context, req *AssociateAnnotationTagReq) (r *AssociateAnnotationTagResp, err error) + + DeleteAnnotationTag(ctx context.Context, req *DeleteAnnotationTagReq) (r *DeleteAnnotationTagResp, err error) + + CreateAnnotateRecord(ctx context.Context, req *CreateAnnotateRecordReq) (r *CreateAnnotateRecordResp, err error) + + UpdateAnnotateRecord(ctx context.Context, req *UpdateAnnotateRecordReq) (r *UpdateAnnotateRecordResp, err error) + // 报告下载 + ExportExptResult_(ctx context.Context, req *ExportExptResultRequest) (r *ExportExptResultResponse, err error) + + ListExptResultExportRecord(ctx context.Context, req *ListExptResultExportRecordRequest) (r *ListExptResultExportRecordResponse, err error) + + GetExptResultExportRecord(ctx context.Context, req *GetExptResultExportRecordRequest) (r *GetExptResultExportRecordResponse, err error) + // 报告分析 + InsightAnalysisExperiment(ctx context.Context, req *InsightAnalysisExperimentRequest) (r *InsightAnalysisExperimentResponse, err error) + + ListExptInsightAnalysisRecord(ctx context.Context, req *ListExptInsightAnalysisRecordRequest) (r *ListExptInsightAnalysisRecordResponse, err error) + + DeleteExptInsightAnalysisRecord(ctx context.Context, req *DeleteExptInsightAnalysisRecordRequest) (r *DeleteExptInsightAnalysisRecordResponse, err error) + + GetExptInsightAnalysisRecord(ctx context.Context, req *GetExptInsightAnalysisRecordRequest) (r *GetExptInsightAnalysisRecordResponse, err error) + + FeedbackExptInsightAnalysisReport(ctx context.Context, req *FeedbackExptInsightAnalysisReportRequest) (r *FeedbackExptInsightAnalysisReportResponse, err error) + + ListExptInsightAnalysisComment(ctx context.Context, req *ListExptInsightAnalysisCommentRequest) (r *ListExptInsightAnalysisCommentResponse, err error) + + GetAnalysisRecordFeedbackVote(ctx context.Context, req *GetAnalysisRecordFeedbackVoteRequest) (r *GetAnalysisRecordFeedbackVoteResponse, err error) + // 实验模板 + CreateExperimentTemplate(ctx context.Context, req *CreateExperimentTemplateRequest) (r *CreateExperimentTemplateResponse, err error) + + BatchGetExperimentTemplate(ctx context.Context, req *BatchGetExperimentTemplateRequest) (r *BatchGetExperimentTemplateResponse, err error) + + UpdateExperimentTemplateMeta(ctx context.Context, req *UpdateExperimentTemplateMetaRequest) (r *UpdateExperimentTemplateMetaResponse, err error) + + UpdateExperimentTemplate(ctx context.Context, req *UpdateExperimentTemplateRequest) (r *UpdateExperimentTemplateResponse, err error) + + DeleteExperimentTemplate(ctx context.Context, req *DeleteExperimentTemplateRequest) (r *DeleteExperimentTemplateResponse, err error) + + ListExperimentTemplates(ctx context.Context, req *ListExperimentTemplatesRequest) (r *ListExperimentTemplatesResponse, err error) + + CheckExperimentTemplateName(ctx context.Context, req *CheckExperimentTemplateNameRequest) (r *CheckExperimentTemplateNameResponse, err error) +} + +type ExperimentServiceClient struct { + c thrift.TClient +} + +func NewExperimentServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *ExperimentServiceClient { + return &ExperimentServiceClient{ + c: thrift.NewTStandardClient(f.GetProtocol(t), f.GetProtocol(t)), + } +} + +func NewExperimentServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *ExperimentServiceClient { + return &ExperimentServiceClient{ + c: thrift.NewTStandardClient(iprot, oprot), + } +} + +func NewExperimentServiceClient(c thrift.TClient) *ExperimentServiceClient { + return &ExperimentServiceClient{ + c: c, + } +} + +func (p *ExperimentServiceClient) Client_() thrift.TClient { + return p.c +} + +func (p *ExperimentServiceClient) CheckExperimentName(ctx context.Context, req *CheckExperimentNameRequest) (r *CheckExperimentNameResponse, err error) { + var _args ExperimentServiceCheckExperimentNameArgs + _args.Req = req + var _result ExperimentServiceCheckExperimentNameResult + if err = p.Client_().Call(ctx, "CheckExperimentName", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) CreateExperiment(ctx context.Context, req *CreateExperimentRequest) (r *CreateExperimentResponse, err error) { + var _args ExperimentServiceCreateExperimentArgs + _args.Req = req + var _result ExperimentServiceCreateExperimentResult + if err = p.Client_().Call(ctx, "CreateExperiment", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) SubmitExperiment(ctx context.Context, req *SubmitExperimentRequest) (r *SubmitExperimentResponse, err error) { + var _args ExperimentServiceSubmitExperimentArgs + _args.Req = req + var _result ExperimentServiceSubmitExperimentResult + if err = p.Client_().Call(ctx, "SubmitExperiment", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) BatchGetExperiments(ctx context.Context, req *BatchGetExperimentsRequest) (r *BatchGetExperimentsResponse, err error) { + var _args ExperimentServiceBatchGetExperimentsArgs + _args.Req = req + var _result ExperimentServiceBatchGetExperimentsResult + if err = p.Client_().Call(ctx, "BatchGetExperiments", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) ListExperiments(ctx context.Context, req *ListExperimentsRequest) (r *ListExperimentsResponse, err error) { + var _args ExperimentServiceListExperimentsArgs + _args.Req = req + var _result ExperimentServiceListExperimentsResult + if err = p.Client_().Call(ctx, "ListExperiments", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) UpdateExperiment(ctx context.Context, req *UpdateExperimentRequest) (r *UpdateExperimentResponse, err error) { + var _args ExperimentServiceUpdateExperimentArgs + _args.Req = req + var _result ExperimentServiceUpdateExperimentResult + if err = p.Client_().Call(ctx, "UpdateExperiment", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) DeleteExperiment(ctx context.Context, req *DeleteExperimentRequest) (r *DeleteExperimentResponse, err error) { + var _args ExperimentServiceDeleteExperimentArgs + _args.Req = req + var _result ExperimentServiceDeleteExperimentResult + if err = p.Client_().Call(ctx, "DeleteExperiment", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) BatchDeleteExperiments(ctx context.Context, req *BatchDeleteExperimentsRequest) (r *BatchDeleteExperimentsResponse, err error) { + var _args ExperimentServiceBatchDeleteExperimentsArgs + _args.Req = req + var _result ExperimentServiceBatchDeleteExperimentsResult + if err = p.Client_().Call(ctx, "BatchDeleteExperiments", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) CloneExperiment(ctx context.Context, req *CloneExperimentRequest) (r *CloneExperimentResponse, err error) { + var _args ExperimentServiceCloneExperimentArgs + _args.Req = req + var _result ExperimentServiceCloneExperimentResult + if err = p.Client_().Call(ctx, "CloneExperiment", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) RunExperiment(ctx context.Context, req *RunExperimentRequest) (r *RunExperimentResponse, err error) { + var _args ExperimentServiceRunExperimentArgs + _args.Req = req + var _result ExperimentServiceRunExperimentResult + if err = p.Client_().Call(ctx, "RunExperiment", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) RetryExperiment(ctx context.Context, req *RetryExperimentRequest) (r *RetryExperimentResponse, err error) { + var _args ExperimentServiceRetryExperimentArgs + _args.Req = req + var _result ExperimentServiceRetryExperimentResult + if err = p.Client_().Call(ctx, "RetryExperiment", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) KillExperiment(ctx context.Context, req *KillExperimentRequest) (r *KillExperimentResponse, err error) { + var _args ExperimentServiceKillExperimentArgs + _args.Req = req + var _result ExperimentServiceKillExperimentResult + if err = p.Client_().Call(ctx, "KillExperiment", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) BatchGetExperimentResult_(ctx context.Context, req *BatchGetExperimentResultRequest) (r *BatchGetExperimentResultResponse, err error) { + var _args ExperimentServiceBatchGetExperimentResultArgs + _args.Req = req + var _result ExperimentServiceBatchGetExperimentResultResult + if err = p.Client_().Call(ctx, "BatchGetExperimentResult", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) CalculateExperimentAggrResult_(ctx context.Context, req *CalculateExperimentAggrResultRequest) (r *CalculateExperimentAggrResultResponse, err error) { + var _args ExperimentServiceCalculateExperimentAggrResultArgs + _args.Req = req + var _result ExperimentServiceCalculateExperimentAggrResultResult + if err = p.Client_().Call(ctx, "CalculateExperimentAggrResult", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) BatchGetExperimentAggrResult_(ctx context.Context, req *BatchGetExperimentAggrResultRequest) (r *BatchGetExperimentAggrResultResponse, err error) { + var _args ExperimentServiceBatchGetExperimentAggrResultArgs + _args.Req = req + var _result ExperimentServiceBatchGetExperimentAggrResultResult + if err = p.Client_().Call(ctx, "BatchGetExperimentAggrResult", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) InvokeExperiment(ctx context.Context, req *InvokeExperimentRequest) (r *InvokeExperimentResponse, err error) { + var _args ExperimentServiceInvokeExperimentArgs + _args.Req = req + var _result ExperimentServiceInvokeExperimentResult + if err = p.Client_().Call(ctx, "InvokeExperiment", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) FinishExperiment(ctx context.Context, req *FinishExperimentRequest) (r *FinishExperimentResponse, err error) { + var _args ExperimentServiceFinishExperimentArgs + _args.Req = req + var _result ExperimentServiceFinishExperimentResult + if err = p.Client_().Call(ctx, "FinishExperiment", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) ListExperimentStats(ctx context.Context, req *ListExperimentStatsRequest) (r *ListExperimentStatsResponse, err error) { + var _args ExperimentServiceListExperimentStatsArgs + _args.Req = req + var _result ExperimentServiceListExperimentStatsResult + if err = p.Client_().Call(ctx, "ListExperimentStats", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) UpsertExptTurnResultFilter(ctx context.Context, req *UpsertExptTurnResultFilterRequest) (r *UpsertExptTurnResultFilterResponse, err error) { + var _args ExperimentServiceUpsertExptTurnResultFilterArgs + _args.Req = req + var _result ExperimentServiceUpsertExptTurnResultFilterResult + if err = p.Client_().Call(ctx, "UpsertExptTurnResultFilter", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) AssociateAnnotationTag(ctx context.Context, req *AssociateAnnotationTagReq) (r *AssociateAnnotationTagResp, err error) { + var _args ExperimentServiceAssociateAnnotationTagArgs + _args.Req = req + var _result ExperimentServiceAssociateAnnotationTagResult + if err = p.Client_().Call(ctx, "AssociateAnnotationTag", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) DeleteAnnotationTag(ctx context.Context, req *DeleteAnnotationTagReq) (r *DeleteAnnotationTagResp, err error) { + var _args ExperimentServiceDeleteAnnotationTagArgs + _args.Req = req + var _result ExperimentServiceDeleteAnnotationTagResult + if err = p.Client_().Call(ctx, "DeleteAnnotationTag", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) CreateAnnotateRecord(ctx context.Context, req *CreateAnnotateRecordReq) (r *CreateAnnotateRecordResp, err error) { + var _args ExperimentServiceCreateAnnotateRecordArgs + _args.Req = req + var _result ExperimentServiceCreateAnnotateRecordResult + if err = p.Client_().Call(ctx, "CreateAnnotateRecord", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) UpdateAnnotateRecord(ctx context.Context, req *UpdateAnnotateRecordReq) (r *UpdateAnnotateRecordResp, err error) { + var _args ExperimentServiceUpdateAnnotateRecordArgs + _args.Req = req + var _result ExperimentServiceUpdateAnnotateRecordResult + if err = p.Client_().Call(ctx, "UpdateAnnotateRecord", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) ExportExptResult_(ctx context.Context, req *ExportExptResultRequest) (r *ExportExptResultResponse, err error) { + var _args ExperimentServiceExportExptResultArgs + _args.Req = req + var _result ExperimentServiceExportExptResultResult + if err = p.Client_().Call(ctx, "ExportExptResult", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) ListExptResultExportRecord(ctx context.Context, req *ListExptResultExportRecordRequest) (r *ListExptResultExportRecordResponse, err error) { + var _args ExperimentServiceListExptResultExportRecordArgs + _args.Req = req + var _result ExperimentServiceListExptResultExportRecordResult + if err = p.Client_().Call(ctx, "ListExptResultExportRecord", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) GetExptResultExportRecord(ctx context.Context, req *GetExptResultExportRecordRequest) (r *GetExptResultExportRecordResponse, err error) { + var _args ExperimentServiceGetExptResultExportRecordArgs + _args.Req = req + var _result ExperimentServiceGetExptResultExportRecordResult + if err = p.Client_().Call(ctx, "GetExptResultExportRecord", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) InsightAnalysisExperiment(ctx context.Context, req *InsightAnalysisExperimentRequest) (r *InsightAnalysisExperimentResponse, err error) { + var _args ExperimentServiceInsightAnalysisExperimentArgs + _args.Req = req + var _result ExperimentServiceInsightAnalysisExperimentResult + if err = p.Client_().Call(ctx, "InsightAnalysisExperiment", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) ListExptInsightAnalysisRecord(ctx context.Context, req *ListExptInsightAnalysisRecordRequest) (r *ListExptInsightAnalysisRecordResponse, err error) { + var _args ExperimentServiceListExptInsightAnalysisRecordArgs + _args.Req = req + var _result ExperimentServiceListExptInsightAnalysisRecordResult + if err = p.Client_().Call(ctx, "ListExptInsightAnalysisRecord", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) DeleteExptInsightAnalysisRecord(ctx context.Context, req *DeleteExptInsightAnalysisRecordRequest) (r *DeleteExptInsightAnalysisRecordResponse, err error) { + var _args ExperimentServiceDeleteExptInsightAnalysisRecordArgs + _args.Req = req + var _result ExperimentServiceDeleteExptInsightAnalysisRecordResult + if err = p.Client_().Call(ctx, "DeleteExptInsightAnalysisRecord", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) GetExptInsightAnalysisRecord(ctx context.Context, req *GetExptInsightAnalysisRecordRequest) (r *GetExptInsightAnalysisRecordResponse, err error) { + var _args ExperimentServiceGetExptInsightAnalysisRecordArgs + _args.Req = req + var _result ExperimentServiceGetExptInsightAnalysisRecordResult + if err = p.Client_().Call(ctx, "GetExptInsightAnalysisRecord", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) FeedbackExptInsightAnalysisReport(ctx context.Context, req *FeedbackExptInsightAnalysisReportRequest) (r *FeedbackExptInsightAnalysisReportResponse, err error) { + var _args ExperimentServiceFeedbackExptInsightAnalysisReportArgs + _args.Req = req + var _result ExperimentServiceFeedbackExptInsightAnalysisReportResult + if err = p.Client_().Call(ctx, "FeedbackExptInsightAnalysisReport", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) ListExptInsightAnalysisComment(ctx context.Context, req *ListExptInsightAnalysisCommentRequest) (r *ListExptInsightAnalysisCommentResponse, err error) { + var _args ExperimentServiceListExptInsightAnalysisCommentArgs + _args.Req = req + var _result ExperimentServiceListExptInsightAnalysisCommentResult + if err = p.Client_().Call(ctx, "ListExptInsightAnalysisComment", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) GetAnalysisRecordFeedbackVote(ctx context.Context, req *GetAnalysisRecordFeedbackVoteRequest) (r *GetAnalysisRecordFeedbackVoteResponse, err error) { + var _args ExperimentServiceGetAnalysisRecordFeedbackVoteArgs + _args.Req = req + var _result ExperimentServiceGetAnalysisRecordFeedbackVoteResult + if err = p.Client_().Call(ctx, "GetAnalysisRecordFeedbackVote", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) CreateExperimentTemplate(ctx context.Context, req *CreateExperimentTemplateRequest) (r *CreateExperimentTemplateResponse, err error) { + var _args ExperimentServiceCreateExperimentTemplateArgs + _args.Req = req + var _result ExperimentServiceCreateExperimentTemplateResult + if err = p.Client_().Call(ctx, "CreateExperimentTemplate", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) BatchGetExperimentTemplate(ctx context.Context, req *BatchGetExperimentTemplateRequest) (r *BatchGetExperimentTemplateResponse, err error) { + var _args ExperimentServiceBatchGetExperimentTemplateArgs + _args.Req = req + var _result ExperimentServiceBatchGetExperimentTemplateResult + if err = p.Client_().Call(ctx, "BatchGetExperimentTemplate", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) UpdateExperimentTemplateMeta(ctx context.Context, req *UpdateExperimentTemplateMetaRequest) (r *UpdateExperimentTemplateMetaResponse, err error) { + var _args ExperimentServiceUpdateExperimentTemplateMetaArgs + _args.Req = req + var _result ExperimentServiceUpdateExperimentTemplateMetaResult + if err = p.Client_().Call(ctx, "UpdateExperimentTemplateMeta", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) UpdateExperimentTemplate(ctx context.Context, req *UpdateExperimentTemplateRequest) (r *UpdateExperimentTemplateResponse, err error) { + var _args ExperimentServiceUpdateExperimentTemplateArgs + _args.Req = req + var _result ExperimentServiceUpdateExperimentTemplateResult + if err = p.Client_().Call(ctx, "UpdateExperimentTemplate", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) DeleteExperimentTemplate(ctx context.Context, req *DeleteExperimentTemplateRequest) (r *DeleteExperimentTemplateResponse, err error) { + var _args ExperimentServiceDeleteExperimentTemplateArgs + _args.Req = req + var _result ExperimentServiceDeleteExperimentTemplateResult + if err = p.Client_().Call(ctx, "DeleteExperimentTemplate", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) ListExperimentTemplates(ctx context.Context, req *ListExperimentTemplatesRequest) (r *ListExperimentTemplatesResponse, err error) { + var _args ExperimentServiceListExperimentTemplatesArgs + _args.Req = req + var _result ExperimentServiceListExperimentTemplatesResult + if err = p.Client_().Call(ctx, "ListExperimentTemplates", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} +func (p *ExperimentServiceClient) CheckExperimentTemplateName(ctx context.Context, req *CheckExperimentTemplateNameRequest) (r *CheckExperimentTemplateNameResponse, err error) { + var _args ExperimentServiceCheckExperimentTemplateNameArgs + _args.Req = req + var _result ExperimentServiceCheckExperimentTemplateNameResult + if err = p.Client_().Call(ctx, "CheckExperimentTemplateName", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + +type ExperimentServiceProcessor struct { + processorMap map[string]thrift.TProcessorFunction + handler ExperimentService +} + +func (p *ExperimentServiceProcessor) AddToProcessorMap(key string, processor thrift.TProcessorFunction) { + p.processorMap[key] = processor +} + +func (p *ExperimentServiceProcessor) GetProcessorFunction(key string) (processor thrift.TProcessorFunction, ok bool) { + processor, ok = p.processorMap[key] + return processor, ok +} + +func (p *ExperimentServiceProcessor) ProcessorMap() map[string]thrift.TProcessorFunction { + return p.processorMap +} + +func NewExperimentServiceProcessor(handler ExperimentService) *ExperimentServiceProcessor { + self := &ExperimentServiceProcessor{handler: handler, processorMap: make(map[string]thrift.TProcessorFunction)} + self.AddToProcessorMap("CheckExperimentName", &experimentServiceProcessorCheckExperimentName{handler: handler}) + self.AddToProcessorMap("CreateExperiment", &experimentServiceProcessorCreateExperiment{handler: handler}) + self.AddToProcessorMap("SubmitExperiment", &experimentServiceProcessorSubmitExperiment{handler: handler}) + self.AddToProcessorMap("BatchGetExperiments", &experimentServiceProcessorBatchGetExperiments{handler: handler}) + self.AddToProcessorMap("ListExperiments", &experimentServiceProcessorListExperiments{handler: handler}) + self.AddToProcessorMap("UpdateExperiment", &experimentServiceProcessorUpdateExperiment{handler: handler}) + self.AddToProcessorMap("DeleteExperiment", &experimentServiceProcessorDeleteExperiment{handler: handler}) + self.AddToProcessorMap("BatchDeleteExperiments", &experimentServiceProcessorBatchDeleteExperiments{handler: handler}) + self.AddToProcessorMap("CloneExperiment", &experimentServiceProcessorCloneExperiment{handler: handler}) + self.AddToProcessorMap("RunExperiment", &experimentServiceProcessorRunExperiment{handler: handler}) + self.AddToProcessorMap("RetryExperiment", &experimentServiceProcessorRetryExperiment{handler: handler}) + self.AddToProcessorMap("KillExperiment", &experimentServiceProcessorKillExperiment{handler: handler}) + self.AddToProcessorMap("BatchGetExperimentResult", &experimentServiceProcessorBatchGetExperimentResult_{handler: handler}) + self.AddToProcessorMap("CalculateExperimentAggrResult", &experimentServiceProcessorCalculateExperimentAggrResult_{handler: handler}) + self.AddToProcessorMap("BatchGetExperimentAggrResult", &experimentServiceProcessorBatchGetExperimentAggrResult_{handler: handler}) + self.AddToProcessorMap("InvokeExperiment", &experimentServiceProcessorInvokeExperiment{handler: handler}) + self.AddToProcessorMap("FinishExperiment", &experimentServiceProcessorFinishExperiment{handler: handler}) + self.AddToProcessorMap("ListExperimentStats", &experimentServiceProcessorListExperimentStats{handler: handler}) + self.AddToProcessorMap("UpsertExptTurnResultFilter", &experimentServiceProcessorUpsertExptTurnResultFilter{handler: handler}) + self.AddToProcessorMap("AssociateAnnotationTag", &experimentServiceProcessorAssociateAnnotationTag{handler: handler}) + self.AddToProcessorMap("DeleteAnnotationTag", &experimentServiceProcessorDeleteAnnotationTag{handler: handler}) + self.AddToProcessorMap("CreateAnnotateRecord", &experimentServiceProcessorCreateAnnotateRecord{handler: handler}) + self.AddToProcessorMap("UpdateAnnotateRecord", &experimentServiceProcessorUpdateAnnotateRecord{handler: handler}) + self.AddToProcessorMap("ExportExptResult", &experimentServiceProcessorExportExptResult_{handler: handler}) + self.AddToProcessorMap("ListExptResultExportRecord", &experimentServiceProcessorListExptResultExportRecord{handler: handler}) + self.AddToProcessorMap("GetExptResultExportRecord", &experimentServiceProcessorGetExptResultExportRecord{handler: handler}) + self.AddToProcessorMap("InsightAnalysisExperiment", &experimentServiceProcessorInsightAnalysisExperiment{handler: handler}) + self.AddToProcessorMap("ListExptInsightAnalysisRecord", &experimentServiceProcessorListExptInsightAnalysisRecord{handler: handler}) + self.AddToProcessorMap("DeleteExptInsightAnalysisRecord", &experimentServiceProcessorDeleteExptInsightAnalysisRecord{handler: handler}) + self.AddToProcessorMap("GetExptInsightAnalysisRecord", &experimentServiceProcessorGetExptInsightAnalysisRecord{handler: handler}) + self.AddToProcessorMap("FeedbackExptInsightAnalysisReport", &experimentServiceProcessorFeedbackExptInsightAnalysisReport{handler: handler}) + self.AddToProcessorMap("ListExptInsightAnalysisComment", &experimentServiceProcessorListExptInsightAnalysisComment{handler: handler}) + self.AddToProcessorMap("GetAnalysisRecordFeedbackVote", &experimentServiceProcessorGetAnalysisRecordFeedbackVote{handler: handler}) + self.AddToProcessorMap("CreateExperimentTemplate", &experimentServiceProcessorCreateExperimentTemplate{handler: handler}) + self.AddToProcessorMap("BatchGetExperimentTemplate", &experimentServiceProcessorBatchGetExperimentTemplate{handler: handler}) + self.AddToProcessorMap("UpdateExperimentTemplateMeta", &experimentServiceProcessorUpdateExperimentTemplateMeta{handler: handler}) + self.AddToProcessorMap("UpdateExperimentTemplate", &experimentServiceProcessorUpdateExperimentTemplate{handler: handler}) + self.AddToProcessorMap("DeleteExperimentTemplate", &experimentServiceProcessorDeleteExperimentTemplate{handler: handler}) + self.AddToProcessorMap("ListExperimentTemplates", &experimentServiceProcessorListExperimentTemplates{handler: handler}) + self.AddToProcessorMap("CheckExperimentTemplateName", &experimentServiceProcessorCheckExperimentTemplateName{handler: handler}) + return self +} +func (p *ExperimentServiceProcessor) Process(ctx context.Context, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + name, _, seqId, err := iprot.ReadMessageBegin() + if err != nil { + return false, err + } + if processor, ok := p.GetProcessorFunction(name); ok { + return processor.Process(ctx, seqId, iprot, oprot) + } + iprot.Skip(thrift.STRUCT) + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.UNKNOWN_METHOD, "Unknown function "+name) + oprot.WriteMessageBegin(name, thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, x +} + +type experimentServiceProcessorCheckExperimentName struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorCheckExperimentName) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceCheckExperimentNameArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("CheckExperimentName", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceCheckExperimentNameResult{} + var retval *CheckExperimentNameResponse + if retval, err2 = p.handler.CheckExperimentName(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing CheckExperimentName: "+err2.Error()) + oprot.WriteMessageBegin("CheckExperimentName", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("CheckExperimentName", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorCreateExperiment struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorCreateExperiment) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceCreateExperimentArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("CreateExperiment", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceCreateExperimentResult{} + var retval *CreateExperimentResponse + if retval, err2 = p.handler.CreateExperiment(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing CreateExperiment: "+err2.Error()) + oprot.WriteMessageBegin("CreateExperiment", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("CreateExperiment", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorSubmitExperiment struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorSubmitExperiment) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceSubmitExperimentArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("SubmitExperiment", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceSubmitExperimentResult{} + var retval *SubmitExperimentResponse + if retval, err2 = p.handler.SubmitExperiment(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing SubmitExperiment: "+err2.Error()) + oprot.WriteMessageBegin("SubmitExperiment", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("SubmitExperiment", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorBatchGetExperiments struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorBatchGetExperiments) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceBatchGetExperimentsArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("BatchGetExperiments", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceBatchGetExperimentsResult{} + var retval *BatchGetExperimentsResponse + if retval, err2 = p.handler.BatchGetExperiments(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing BatchGetExperiments: "+err2.Error()) + oprot.WriteMessageBegin("BatchGetExperiments", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("BatchGetExperiments", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorListExperiments struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorListExperiments) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceListExperimentsArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("ListExperiments", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceListExperimentsResult{} + var retval *ListExperimentsResponse + if retval, err2 = p.handler.ListExperiments(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ListExperiments: "+err2.Error()) + oprot.WriteMessageBegin("ListExperiments", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("ListExperiments", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorUpdateExperiment struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorUpdateExperiment) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceUpdateExperimentArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("UpdateExperiment", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceUpdateExperimentResult{} + var retval *UpdateExperimentResponse + if retval, err2 = p.handler.UpdateExperiment(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing UpdateExperiment: "+err2.Error()) + oprot.WriteMessageBegin("UpdateExperiment", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("UpdateExperiment", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorDeleteExperiment struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorDeleteExperiment) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceDeleteExperimentArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("DeleteExperiment", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceDeleteExperimentResult{} + var retval *DeleteExperimentResponse + if retval, err2 = p.handler.DeleteExperiment(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing DeleteExperiment: "+err2.Error()) + oprot.WriteMessageBegin("DeleteExperiment", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("DeleteExperiment", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorBatchDeleteExperiments struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorBatchDeleteExperiments) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceBatchDeleteExperimentsArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("BatchDeleteExperiments", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceBatchDeleteExperimentsResult{} + var retval *BatchDeleteExperimentsResponse + if retval, err2 = p.handler.BatchDeleteExperiments(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing BatchDeleteExperiments: "+err2.Error()) + oprot.WriteMessageBegin("BatchDeleteExperiments", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("BatchDeleteExperiments", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorCloneExperiment struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorCloneExperiment) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceCloneExperimentArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("CloneExperiment", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceCloneExperimentResult{} + var retval *CloneExperimentResponse + if retval, err2 = p.handler.CloneExperiment(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing CloneExperiment: "+err2.Error()) + oprot.WriteMessageBegin("CloneExperiment", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("CloneExperiment", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorRunExperiment struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorRunExperiment) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceRunExperimentArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("RunExperiment", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceRunExperimentResult{} + var retval *RunExperimentResponse + if retval, err2 = p.handler.RunExperiment(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing RunExperiment: "+err2.Error()) + oprot.WriteMessageBegin("RunExperiment", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("RunExperiment", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorRetryExperiment struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorRetryExperiment) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceRetryExperimentArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("RetryExperiment", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceRetryExperimentResult{} + var retval *RetryExperimentResponse + if retval, err2 = p.handler.RetryExperiment(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing RetryExperiment: "+err2.Error()) + oprot.WriteMessageBegin("RetryExperiment", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("RetryExperiment", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorKillExperiment struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorKillExperiment) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceKillExperimentArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("KillExperiment", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceKillExperimentResult{} + var retval *KillExperimentResponse + if retval, err2 = p.handler.KillExperiment(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing KillExperiment: "+err2.Error()) + oprot.WriteMessageBegin("KillExperiment", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("KillExperiment", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorBatchGetExperimentResult_ struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorBatchGetExperimentResult_) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceBatchGetExperimentResultArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("BatchGetExperimentResult", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceBatchGetExperimentResultResult{} + var retval *BatchGetExperimentResultResponse + if retval, err2 = p.handler.BatchGetExperimentResult_(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing BatchGetExperimentResult: "+err2.Error()) + oprot.WriteMessageBegin("BatchGetExperimentResult", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("BatchGetExperimentResult", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorCalculateExperimentAggrResult_ struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorCalculateExperimentAggrResult_) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceCalculateExperimentAggrResultArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("CalculateExperimentAggrResult", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceCalculateExperimentAggrResultResult{} + var retval *CalculateExperimentAggrResultResponse + if retval, err2 = p.handler.CalculateExperimentAggrResult_(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing CalculateExperimentAggrResult: "+err2.Error()) + oprot.WriteMessageBegin("CalculateExperimentAggrResult", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("CalculateExperimentAggrResult", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorBatchGetExperimentAggrResult_ struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorBatchGetExperimentAggrResult_) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceBatchGetExperimentAggrResultArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("BatchGetExperimentAggrResult", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceBatchGetExperimentAggrResultResult{} + var retval *BatchGetExperimentAggrResultResponse + if retval, err2 = p.handler.BatchGetExperimentAggrResult_(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing BatchGetExperimentAggrResult: "+err2.Error()) + oprot.WriteMessageBegin("BatchGetExperimentAggrResult", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("BatchGetExperimentAggrResult", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorInvokeExperiment struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorInvokeExperiment) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceInvokeExperimentArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("InvokeExperiment", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceInvokeExperimentResult{} + var retval *InvokeExperimentResponse + if retval, err2 = p.handler.InvokeExperiment(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing InvokeExperiment: "+err2.Error()) + oprot.WriteMessageBegin("InvokeExperiment", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("InvokeExperiment", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorFinishExperiment struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorFinishExperiment) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceFinishExperimentArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("FinishExperiment", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceFinishExperimentResult{} + var retval *FinishExperimentResponse + if retval, err2 = p.handler.FinishExperiment(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing FinishExperiment: "+err2.Error()) + oprot.WriteMessageBegin("FinishExperiment", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("FinishExperiment", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorListExperimentStats struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorListExperimentStats) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceListExperimentStatsArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("ListExperimentStats", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceListExperimentStatsResult{} + var retval *ListExperimentStatsResponse + if retval, err2 = p.handler.ListExperimentStats(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ListExperimentStats: "+err2.Error()) + oprot.WriteMessageBegin("ListExperimentStats", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("ListExperimentStats", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorUpsertExptTurnResultFilter struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorUpsertExptTurnResultFilter) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceUpsertExptTurnResultFilterArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("UpsertExptTurnResultFilter", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceUpsertExptTurnResultFilterResult{} + var retval *UpsertExptTurnResultFilterResponse + if retval, err2 = p.handler.UpsertExptTurnResultFilter(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing UpsertExptTurnResultFilter: "+err2.Error()) + oprot.WriteMessageBegin("UpsertExptTurnResultFilter", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("UpsertExptTurnResultFilter", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorAssociateAnnotationTag struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorAssociateAnnotationTag) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceAssociateAnnotationTagArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("AssociateAnnotationTag", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceAssociateAnnotationTagResult{} + var retval *AssociateAnnotationTagResp + if retval, err2 = p.handler.AssociateAnnotationTag(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing AssociateAnnotationTag: "+err2.Error()) + oprot.WriteMessageBegin("AssociateAnnotationTag", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("AssociateAnnotationTag", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorDeleteAnnotationTag struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorDeleteAnnotationTag) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceDeleteAnnotationTagArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("DeleteAnnotationTag", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceDeleteAnnotationTagResult{} + var retval *DeleteAnnotationTagResp + if retval, err2 = p.handler.DeleteAnnotationTag(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing DeleteAnnotationTag: "+err2.Error()) + oprot.WriteMessageBegin("DeleteAnnotationTag", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("DeleteAnnotationTag", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorCreateAnnotateRecord struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorCreateAnnotateRecord) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceCreateAnnotateRecordArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("CreateAnnotateRecord", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceCreateAnnotateRecordResult{} + var retval *CreateAnnotateRecordResp + if retval, err2 = p.handler.CreateAnnotateRecord(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing CreateAnnotateRecord: "+err2.Error()) + oprot.WriteMessageBegin("CreateAnnotateRecord", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("CreateAnnotateRecord", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorUpdateAnnotateRecord struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorUpdateAnnotateRecord) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceUpdateAnnotateRecordArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("UpdateAnnotateRecord", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceUpdateAnnotateRecordResult{} + var retval *UpdateAnnotateRecordResp + if retval, err2 = p.handler.UpdateAnnotateRecord(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing UpdateAnnotateRecord: "+err2.Error()) + oprot.WriteMessageBegin("UpdateAnnotateRecord", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("UpdateAnnotateRecord", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorExportExptResult_ struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorExportExptResult_) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceExportExptResultArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("ExportExptResult", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceExportExptResultResult{} + var retval *ExportExptResultResponse + if retval, err2 = p.handler.ExportExptResult_(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ExportExptResult: "+err2.Error()) + oprot.WriteMessageBegin("ExportExptResult", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("ExportExptResult", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorListExptResultExportRecord struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorListExptResultExportRecord) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceListExptResultExportRecordArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("ListExptResultExportRecord", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceListExptResultExportRecordResult{} + var retval *ListExptResultExportRecordResponse + if retval, err2 = p.handler.ListExptResultExportRecord(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ListExptResultExportRecord: "+err2.Error()) + oprot.WriteMessageBegin("ListExptResultExportRecord", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("ListExptResultExportRecord", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorGetExptResultExportRecord struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorGetExptResultExportRecord) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceGetExptResultExportRecordArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("GetExptResultExportRecord", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceGetExptResultExportRecordResult{} + var retval *GetExptResultExportRecordResponse + if retval, err2 = p.handler.GetExptResultExportRecord(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing GetExptResultExportRecord: "+err2.Error()) + oprot.WriteMessageBegin("GetExptResultExportRecord", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("GetExptResultExportRecord", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorInsightAnalysisExperiment struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorInsightAnalysisExperiment) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceInsightAnalysisExperimentArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("InsightAnalysisExperiment", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceInsightAnalysisExperimentResult{} + var retval *InsightAnalysisExperimentResponse + if retval, err2 = p.handler.InsightAnalysisExperiment(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing InsightAnalysisExperiment: "+err2.Error()) + oprot.WriteMessageBegin("InsightAnalysisExperiment", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("InsightAnalysisExperiment", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorListExptInsightAnalysisRecord struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorListExptInsightAnalysisRecord) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceListExptInsightAnalysisRecordArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("ListExptInsightAnalysisRecord", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceListExptInsightAnalysisRecordResult{} + var retval *ListExptInsightAnalysisRecordResponse + if retval, err2 = p.handler.ListExptInsightAnalysisRecord(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ListExptInsightAnalysisRecord: "+err2.Error()) + oprot.WriteMessageBegin("ListExptInsightAnalysisRecord", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("ListExptInsightAnalysisRecord", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorDeleteExptInsightAnalysisRecord struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorDeleteExptInsightAnalysisRecord) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceDeleteExptInsightAnalysisRecordArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("DeleteExptInsightAnalysisRecord", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceDeleteExptInsightAnalysisRecordResult{} + var retval *DeleteExptInsightAnalysisRecordResponse + if retval, err2 = p.handler.DeleteExptInsightAnalysisRecord(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing DeleteExptInsightAnalysisRecord: "+err2.Error()) + oprot.WriteMessageBegin("DeleteExptInsightAnalysisRecord", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("DeleteExptInsightAnalysisRecord", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorGetExptInsightAnalysisRecord struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorGetExptInsightAnalysisRecord) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceGetExptInsightAnalysisRecordArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("GetExptInsightAnalysisRecord", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceGetExptInsightAnalysisRecordResult{} + var retval *GetExptInsightAnalysisRecordResponse + if retval, err2 = p.handler.GetExptInsightAnalysisRecord(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing GetExptInsightAnalysisRecord: "+err2.Error()) + oprot.WriteMessageBegin("GetExptInsightAnalysisRecord", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("GetExptInsightAnalysisRecord", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorFeedbackExptInsightAnalysisReport struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorFeedbackExptInsightAnalysisReport) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceFeedbackExptInsightAnalysisReportArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("FeedbackExptInsightAnalysisReport", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceFeedbackExptInsightAnalysisReportResult{} + var retval *FeedbackExptInsightAnalysisReportResponse + if retval, err2 = p.handler.FeedbackExptInsightAnalysisReport(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing FeedbackExptInsightAnalysisReport: "+err2.Error()) + oprot.WriteMessageBegin("FeedbackExptInsightAnalysisReport", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("FeedbackExptInsightAnalysisReport", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorListExptInsightAnalysisComment struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorListExptInsightAnalysisComment) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceListExptInsightAnalysisCommentArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("ListExptInsightAnalysisComment", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceListExptInsightAnalysisCommentResult{} + var retval *ListExptInsightAnalysisCommentResponse + if retval, err2 = p.handler.ListExptInsightAnalysisComment(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ListExptInsightAnalysisComment: "+err2.Error()) + oprot.WriteMessageBegin("ListExptInsightAnalysisComment", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("ListExptInsightAnalysisComment", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorGetAnalysisRecordFeedbackVote struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorGetAnalysisRecordFeedbackVote) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceGetAnalysisRecordFeedbackVoteArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("GetAnalysisRecordFeedbackVote", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceGetAnalysisRecordFeedbackVoteResult{} + var retval *GetAnalysisRecordFeedbackVoteResponse + if retval, err2 = p.handler.GetAnalysisRecordFeedbackVote(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing GetAnalysisRecordFeedbackVote: "+err2.Error()) + oprot.WriteMessageBegin("GetAnalysisRecordFeedbackVote", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("GetAnalysisRecordFeedbackVote", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorCreateExperimentTemplate struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorCreateExperimentTemplate) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceCreateExperimentTemplateArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("CreateExperimentTemplate", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceCreateExperimentTemplateResult{} + var retval *CreateExperimentTemplateResponse + if retval, err2 = p.handler.CreateExperimentTemplate(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing CreateExperimentTemplate: "+err2.Error()) + oprot.WriteMessageBegin("CreateExperimentTemplate", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("CreateExperimentTemplate", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorBatchGetExperimentTemplate struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorBatchGetExperimentTemplate) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceBatchGetExperimentTemplateArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("BatchGetExperimentTemplate", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceBatchGetExperimentTemplateResult{} + var retval *BatchGetExperimentTemplateResponse + if retval, err2 = p.handler.BatchGetExperimentTemplate(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing BatchGetExperimentTemplate: "+err2.Error()) + oprot.WriteMessageBegin("BatchGetExperimentTemplate", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("BatchGetExperimentTemplate", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorUpdateExperimentTemplateMeta struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorUpdateExperimentTemplateMeta) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceUpdateExperimentTemplateMetaArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("UpdateExperimentTemplateMeta", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceUpdateExperimentTemplateMetaResult{} + var retval *UpdateExperimentTemplateMetaResponse + if retval, err2 = p.handler.UpdateExperimentTemplateMeta(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing UpdateExperimentTemplateMeta: "+err2.Error()) + oprot.WriteMessageBegin("UpdateExperimentTemplateMeta", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("UpdateExperimentTemplateMeta", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorUpdateExperimentTemplate struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorUpdateExperimentTemplate) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceUpdateExperimentTemplateArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("UpdateExperimentTemplate", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceUpdateExperimentTemplateResult{} + var retval *UpdateExperimentTemplateResponse + if retval, err2 = p.handler.UpdateExperimentTemplate(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing UpdateExperimentTemplate: "+err2.Error()) + oprot.WriteMessageBegin("UpdateExperimentTemplate", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("UpdateExperimentTemplate", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorDeleteExperimentTemplate struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorDeleteExperimentTemplate) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceDeleteExperimentTemplateArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("DeleteExperimentTemplate", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceDeleteExperimentTemplateResult{} + var retval *DeleteExperimentTemplateResponse + if retval, err2 = p.handler.DeleteExperimentTemplate(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing DeleteExperimentTemplate: "+err2.Error()) + oprot.WriteMessageBegin("DeleteExperimentTemplate", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("DeleteExperimentTemplate", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorListExperimentTemplates struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorListExperimentTemplates) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceListExperimentTemplatesArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("ListExperimentTemplates", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceListExperimentTemplatesResult{} + var retval *ListExperimentTemplatesResponse + if retval, err2 = p.handler.ListExperimentTemplates(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ListExperimentTemplates: "+err2.Error()) + oprot.WriteMessageBegin("ListExperimentTemplates", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("ListExperimentTemplates", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type experimentServiceProcessorCheckExperimentTemplateName struct { + handler ExperimentService +} + +func (p *experimentServiceProcessorCheckExperimentTemplateName) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := ExperimentServiceCheckExperimentTemplateNameArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("CheckExperimentTemplateName", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := ExperimentServiceCheckExperimentTemplateNameResult{} + var retval *CheckExperimentTemplateNameResponse + if retval, err2 = p.handler.CheckExperimentTemplateName(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing CheckExperimentTemplateName: "+err2.Error()) + oprot.WriteMessageBegin("CheckExperimentTemplateName", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("CheckExperimentTemplateName", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type ExperimentServiceCheckExperimentNameArgs struct { + Req *CheckExperimentNameRequest `thrift:"req,1" frugal:"1,default,CheckExperimentNameRequest"` +} + +func NewExperimentServiceCheckExperimentNameArgs() *ExperimentServiceCheckExperimentNameArgs { + return &ExperimentServiceCheckExperimentNameArgs{} +} + +func (p *ExperimentServiceCheckExperimentNameArgs) InitDefault() { +} + +var ExperimentServiceCheckExperimentNameArgs_Req_DEFAULT *CheckExperimentNameRequest + +func (p *ExperimentServiceCheckExperimentNameArgs) GetReq() (v *CheckExperimentNameRequest) { + if p == nil { + return + } + if !p.IsSetReq() { + return ExperimentServiceCheckExperimentNameArgs_Req_DEFAULT + } + return p.Req +} +func (p *ExperimentServiceCheckExperimentNameArgs) SetReq(val *CheckExperimentNameRequest) { + p.Req = val +} + +var fieldIDToName_ExperimentServiceCheckExperimentNameArgs = map[int16]string{ + 1: "req", +} + +func (p *ExperimentServiceCheckExperimentNameArgs) IsSetReq() bool { + return p.Req != nil +} + +func (p *ExperimentServiceCheckExperimentNameArgs) 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.STRUCT { + if err = p.ReadField1(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_ExperimentServiceCheckExperimentNameArgs[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 *ExperimentServiceCheckExperimentNameArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewCheckExperimentNameRequest() + if err := _field.Read(iprot); err != nil { + return err + } + p.Req = _field + return nil +} + +func (p *ExperimentServiceCheckExperimentNameArgs) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("CheckExperimentName_args"); 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 *ExperimentServiceCheckExperimentNameArgs) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { + goto WriteFieldBeginError + } + if err := p.Req.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 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} + +func (p *ExperimentServiceCheckExperimentNameArgs) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ExperimentServiceCheckExperimentNameArgs(%+v)", *p) + +} + +func (p *ExperimentServiceCheckExperimentNameArgs) DeepEqual(ano *ExperimentServiceCheckExperimentNameArgs) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.Req) { + return false + } + return true +} + +func (p *ExperimentServiceCheckExperimentNameArgs) Field1DeepEqual(src *CheckExperimentNameRequest) bool { + + if !p.Req.DeepEqual(src) { + return false + } + return true +} + +type ExperimentServiceCheckExperimentNameResult struct { + Success *CheckExperimentNameResponse `thrift:"success,0,optional" frugal:"0,optional,CheckExperimentNameResponse"` +} + +func NewExperimentServiceCheckExperimentNameResult() *ExperimentServiceCheckExperimentNameResult { + return &ExperimentServiceCheckExperimentNameResult{} +} + +func (p *ExperimentServiceCheckExperimentNameResult) InitDefault() { +} + +var ExperimentServiceCheckExperimentNameResult_Success_DEFAULT *CheckExperimentNameResponse + +func (p *ExperimentServiceCheckExperimentNameResult) GetSuccess() (v *CheckExperimentNameResponse) { + if p == nil { return } - return _result.GetSuccess(), nil + if !p.IsSetSuccess() { + return ExperimentServiceCheckExperimentNameResult_Success_DEFAULT + } + return p.Success +} +func (p *ExperimentServiceCheckExperimentNameResult) SetSuccess(x interface{}) { + p.Success = x.(*CheckExperimentNameResponse) +} + +var fieldIDToName_ExperimentServiceCheckExperimentNameResult = map[int16]string{ + 0: "success", +} + +func (p *ExperimentServiceCheckExperimentNameResult) IsSetSuccess() bool { + return p.Success != nil +} + +func (p *ExperimentServiceCheckExperimentNameResult) 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 0: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField0(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_ExperimentServiceCheckExperimentNameResult[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 *ExperimentServiceClient) FinishExperiment(ctx context.Context, req *FinishExperimentRequest) (r *FinishExperimentResponse, err error) { - var _args ExperimentServiceFinishExperimentArgs - _args.Req = req - var _result ExperimentServiceFinishExperimentResult - if err = p.Client_().Call(ctx, "FinishExperiment", &_args, &_result); err != nil { - return + +func (p *ExperimentServiceCheckExperimentNameResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewCheckExperimentNameResponse() + if err := _field.Read(iprot); err != nil { + return err } - return _result.GetSuccess(), nil + p.Success = _field + return nil } -func (p *ExperimentServiceClient) ListExperimentStats(ctx context.Context, req *ListExperimentStatsRequest) (r *ListExperimentStatsResponse, err error) { - var _args ExperimentServiceListExperimentStatsArgs - _args.Req = req - var _result ExperimentServiceListExperimentStatsResult - if err = p.Client_().Call(ctx, "ListExperimentStats", &_args, &_result); err != nil { - return + +func (p *ExperimentServiceCheckExperimentNameResult) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("CheckExperimentName_result"); err != nil { + goto WriteStructBeginError } - return _result.GetSuccess(), nil + if p != nil { + if err = p.writeField0(oprot); err != nil { + fieldId = 0 + 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 *ExperimentServiceClient) UpsertExptTurnResultFilter(ctx context.Context, req *UpsertExptTurnResultFilterRequest) (r *UpsertExptTurnResultFilterResponse, err error) { - var _args ExperimentServiceUpsertExptTurnResultFilterArgs - _args.Req = req - var _result ExperimentServiceUpsertExptTurnResultFilterResult - if err = p.Client_().Call(ctx, "UpsertExptTurnResultFilter", &_args, &_result); err != nil { - return + +func (p *ExperimentServiceCheckExperimentNameResult) writeField0(oprot thrift.TProtocol) (err error) { + if p.IsSetSuccess() { + if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { + goto WriteFieldBeginError + } + if err := p.Success.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } - return _result.GetSuccess(), nil + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 0 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceClient) AssociateAnnotationTag(ctx context.Context, req *AssociateAnnotationTagReq) (r *AssociateAnnotationTagResp, err error) { - var _args ExperimentServiceAssociateAnnotationTagArgs - _args.Req = req - var _result ExperimentServiceAssociateAnnotationTagResult - if err = p.Client_().Call(ctx, "AssociateAnnotationTag", &_args, &_result); err != nil { - return + +func (p *ExperimentServiceCheckExperimentNameResult) String() string { + if p == nil { + return "" } - return _result.GetSuccess(), nil + return fmt.Sprintf("ExperimentServiceCheckExperimentNameResult(%+v)", *p) + } -func (p *ExperimentServiceClient) DeleteAnnotationTag(ctx context.Context, req *DeleteAnnotationTagReq) (r *DeleteAnnotationTagResp, err error) { - var _args ExperimentServiceDeleteAnnotationTagArgs - _args.Req = req - var _result ExperimentServiceDeleteAnnotationTagResult - if err = p.Client_().Call(ctx, "DeleteAnnotationTag", &_args, &_result); err != nil { - return + +func (p *ExperimentServiceCheckExperimentNameResult) DeepEqual(ano *ExperimentServiceCheckExperimentNameResult) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false } - return _result.GetSuccess(), nil + if !p.Field0DeepEqual(ano.Success) { + return false + } + return true } -func (p *ExperimentServiceClient) CreateAnnotateRecord(ctx context.Context, req *CreateAnnotateRecordReq) (r *CreateAnnotateRecordResp, err error) { - var _args ExperimentServiceCreateAnnotateRecordArgs - _args.Req = req - var _result ExperimentServiceCreateAnnotateRecordResult - if err = p.Client_().Call(ctx, "CreateAnnotateRecord", &_args, &_result); err != nil { - return + +func (p *ExperimentServiceCheckExperimentNameResult) Field0DeepEqual(src *CheckExperimentNameResponse) bool { + + if !p.Success.DeepEqual(src) { + return false } - return _result.GetSuccess(), nil + return true } -func (p *ExperimentServiceClient) UpdateAnnotateRecord(ctx context.Context, req *UpdateAnnotateRecordReq) (r *UpdateAnnotateRecordResp, err error) { - var _args ExperimentServiceUpdateAnnotateRecordArgs - _args.Req = req - var _result ExperimentServiceUpdateAnnotateRecordResult - if err = p.Client_().Call(ctx, "UpdateAnnotateRecord", &_args, &_result); err != nil { + +type ExperimentServiceCreateExperimentArgs struct { + Req *CreateExperimentRequest `thrift:"req,1" frugal:"1,default,CreateExperimentRequest"` +} + +func NewExperimentServiceCreateExperimentArgs() *ExperimentServiceCreateExperimentArgs { + return &ExperimentServiceCreateExperimentArgs{} +} + +func (p *ExperimentServiceCreateExperimentArgs) InitDefault() { +} + +var ExperimentServiceCreateExperimentArgs_Req_DEFAULT *CreateExperimentRequest + +func (p *ExperimentServiceCreateExperimentArgs) GetReq() (v *CreateExperimentRequest) { + if p == nil { return } - return _result.GetSuccess(), nil + if !p.IsSetReq() { + return ExperimentServiceCreateExperimentArgs_Req_DEFAULT + } + return p.Req } -func (p *ExperimentServiceClient) ExportExptResult_(ctx context.Context, req *ExportExptResultRequest) (r *ExportExptResultResponse, err error) { - var _args ExperimentServiceExportExptResultArgs - _args.Req = req - var _result ExperimentServiceExportExptResultResult - if err = p.Client_().Call(ctx, "ExportExptResult", &_args, &_result); err != nil { - return +func (p *ExperimentServiceCreateExperimentArgs) SetReq(val *CreateExperimentRequest) { + p.Req = val +} + +var fieldIDToName_ExperimentServiceCreateExperimentArgs = map[int16]string{ + 1: "req", +} + +func (p *ExperimentServiceCreateExperimentArgs) IsSetReq() bool { + return p.Req != nil +} + +func (p *ExperimentServiceCreateExperimentArgs) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError } - return _result.GetSuccess(), nil + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField1(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_ExperimentServiceCreateExperimentArgs[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 *ExperimentServiceClient) ListExptResultExportRecord(ctx context.Context, req *ListExptResultExportRecordRequest) (r *ListExptResultExportRecordResponse, err error) { - var _args ExperimentServiceListExptResultExportRecordArgs - _args.Req = req - var _result ExperimentServiceListExptResultExportRecordResult - if err = p.Client_().Call(ctx, "ListExptResultExportRecord", &_args, &_result); err != nil { - return + +func (p *ExperimentServiceCreateExperimentArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewCreateExperimentRequest() + if err := _field.Read(iprot); err != nil { + return err } - return _result.GetSuccess(), nil + p.Req = _field + return nil } -func (p *ExperimentServiceClient) GetExptResultExportRecord(ctx context.Context, req *GetExptResultExportRecordRequest) (r *GetExptResultExportRecordResponse, err error) { - var _args ExperimentServiceGetExptResultExportRecordArgs - _args.Req = req - var _result ExperimentServiceGetExptResultExportRecordResult - if err = p.Client_().Call(ctx, "GetExptResultExportRecord", &_args, &_result); err != nil { - return + +func (p *ExperimentServiceCreateExperimentArgs) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("CreateExperiment_args"); err != nil { + goto WriteStructBeginError } - return _result.GetSuccess(), nil + 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 *ExperimentServiceClient) InsightAnalysisExperiment(ctx context.Context, req *InsightAnalysisExperimentRequest) (r *InsightAnalysisExperimentResponse, err error) { - var _args ExperimentServiceInsightAnalysisExperimentArgs - _args.Req = req - var _result ExperimentServiceInsightAnalysisExperimentResult - if err = p.Client_().Call(ctx, "InsightAnalysisExperiment", &_args, &_result); err != nil { - return + +func (p *ExperimentServiceCreateExperimentArgs) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { + goto WriteFieldBeginError } - return _result.GetSuccess(), nil + if err := p.Req.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 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceClient) ListExptInsightAnalysisRecord(ctx context.Context, req *ListExptInsightAnalysisRecordRequest) (r *ListExptInsightAnalysisRecordResponse, err error) { - var _args ExperimentServiceListExptInsightAnalysisRecordArgs - _args.Req = req - var _result ExperimentServiceListExptInsightAnalysisRecordResult - if err = p.Client_().Call(ctx, "ListExptInsightAnalysisRecord", &_args, &_result); err != nil { - return + +func (p *ExperimentServiceCreateExperimentArgs) String() string { + if p == nil { + return "" } - return _result.GetSuccess(), nil + return fmt.Sprintf("ExperimentServiceCreateExperimentArgs(%+v)", *p) + } -func (p *ExperimentServiceClient) DeleteExptInsightAnalysisRecord(ctx context.Context, req *DeleteExptInsightAnalysisRecordRequest) (r *DeleteExptInsightAnalysisRecordResponse, err error) { - var _args ExperimentServiceDeleteExptInsightAnalysisRecordArgs - _args.Req = req - var _result ExperimentServiceDeleteExptInsightAnalysisRecordResult - if err = p.Client_().Call(ctx, "DeleteExptInsightAnalysisRecord", &_args, &_result); err != nil { - return + +func (p *ExperimentServiceCreateExperimentArgs) DeepEqual(ano *ExperimentServiceCreateExperimentArgs) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false } - return _result.GetSuccess(), nil + if !p.Field1DeepEqual(ano.Req) { + return false + } + return true } -func (p *ExperimentServiceClient) GetExptInsightAnalysisRecord(ctx context.Context, req *GetExptInsightAnalysisRecordRequest) (r *GetExptInsightAnalysisRecordResponse, err error) { - var _args ExperimentServiceGetExptInsightAnalysisRecordArgs - _args.Req = req - var _result ExperimentServiceGetExptInsightAnalysisRecordResult - if err = p.Client_().Call(ctx, "GetExptInsightAnalysisRecord", &_args, &_result); err != nil { - return + +func (p *ExperimentServiceCreateExperimentArgs) Field1DeepEqual(src *CreateExperimentRequest) bool { + + if !p.Req.DeepEqual(src) { + return false } - return _result.GetSuccess(), nil + return true } -func (p *ExperimentServiceClient) FeedbackExptInsightAnalysisReport(ctx context.Context, req *FeedbackExptInsightAnalysisReportRequest) (r *FeedbackExptInsightAnalysisReportResponse, err error) { - var _args ExperimentServiceFeedbackExptInsightAnalysisReportArgs - _args.Req = req - var _result ExperimentServiceFeedbackExptInsightAnalysisReportResult - if err = p.Client_().Call(ctx, "FeedbackExptInsightAnalysisReport", &_args, &_result); err != nil { + +type ExperimentServiceCreateExperimentResult struct { + Success *CreateExperimentResponse `thrift:"success,0,optional" frugal:"0,optional,CreateExperimentResponse"` +} + +func NewExperimentServiceCreateExperimentResult() *ExperimentServiceCreateExperimentResult { + return &ExperimentServiceCreateExperimentResult{} +} + +func (p *ExperimentServiceCreateExperimentResult) InitDefault() { +} + +var ExperimentServiceCreateExperimentResult_Success_DEFAULT *CreateExperimentResponse + +func (p *ExperimentServiceCreateExperimentResult) GetSuccess() (v *CreateExperimentResponse) { + if p == nil { return } - return _result.GetSuccess(), nil + if !p.IsSetSuccess() { + return ExperimentServiceCreateExperimentResult_Success_DEFAULT + } + return p.Success +} +func (p *ExperimentServiceCreateExperimentResult) SetSuccess(x interface{}) { + p.Success = x.(*CreateExperimentResponse) +} + +var fieldIDToName_ExperimentServiceCreateExperimentResult = map[int16]string{ + 0: "success", +} + +func (p *ExperimentServiceCreateExperimentResult) IsSetSuccess() bool { + return p.Success != nil +} + +func (p *ExperimentServiceCreateExperimentResult) 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 0: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField0(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_ExperimentServiceCreateExperimentResult[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 *ExperimentServiceCreateExperimentResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewCreateExperimentResponse() + if err := _field.Read(iprot); err != nil { + return err + } + p.Success = _field + return nil +} + +func (p *ExperimentServiceCreateExperimentResult) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("CreateExperiment_result"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField0(oprot); err != nil { + fieldId = 0 + 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 *ExperimentServiceCreateExperimentResult) writeField0(oprot thrift.TProtocol) (err error) { + if p.IsSetSuccess() { + if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { + goto WriteFieldBeginError + } + if err := p.Success.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 0 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceClient) ListExptInsightAnalysisComment(ctx context.Context, req *ListExptInsightAnalysisCommentRequest) (r *ListExptInsightAnalysisCommentResponse, err error) { - var _args ExperimentServiceListExptInsightAnalysisCommentArgs - _args.Req = req - var _result ExperimentServiceListExptInsightAnalysisCommentResult - if err = p.Client_().Call(ctx, "ListExptInsightAnalysisComment", &_args, &_result); err != nil { - return + +func (p *ExperimentServiceCreateExperimentResult) String() string { + if p == nil { + return "" } - return _result.GetSuccess(), nil + return fmt.Sprintf("ExperimentServiceCreateExperimentResult(%+v)", *p) + } -func (p *ExperimentServiceClient) GetAnalysisRecordFeedbackVote(ctx context.Context, req *GetAnalysisRecordFeedbackVoteRequest) (r *GetAnalysisRecordFeedbackVoteResponse, err error) { - var _args ExperimentServiceGetAnalysisRecordFeedbackVoteArgs - _args.Req = req - var _result ExperimentServiceGetAnalysisRecordFeedbackVoteResult - if err = p.Client_().Call(ctx, "GetAnalysisRecordFeedbackVote", &_args, &_result); err != nil { - return + +func (p *ExperimentServiceCreateExperimentResult) DeepEqual(ano *ExperimentServiceCreateExperimentResult) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false } - return _result.GetSuccess(), nil + if !p.Field0DeepEqual(ano.Success) { + return false + } + return true } -type ExperimentServiceProcessor struct { - processorMap map[string]thrift.TProcessorFunction - handler ExperimentService -} +func (p *ExperimentServiceCreateExperimentResult) Field0DeepEqual(src *CreateExperimentResponse) bool { -func (p *ExperimentServiceProcessor) AddToProcessorMap(key string, processor thrift.TProcessorFunction) { - p.processorMap[key] = processor + if !p.Success.DeepEqual(src) { + return false + } + return true } -func (p *ExperimentServiceProcessor) GetProcessorFunction(key string) (processor thrift.TProcessorFunction, ok bool) { - processor, ok = p.processorMap[key] - return processor, ok +type ExperimentServiceSubmitExperimentArgs struct { + Req *SubmitExperimentRequest `thrift:"req,1" frugal:"1,default,SubmitExperimentRequest"` } -func (p *ExperimentServiceProcessor) ProcessorMap() map[string]thrift.TProcessorFunction { - return p.processorMap +func NewExperimentServiceSubmitExperimentArgs() *ExperimentServiceSubmitExperimentArgs { + return &ExperimentServiceSubmitExperimentArgs{} } -func NewExperimentServiceProcessor(handler ExperimentService) *ExperimentServiceProcessor { - self := &ExperimentServiceProcessor{handler: handler, processorMap: make(map[string]thrift.TProcessorFunction)} - self.AddToProcessorMap("CheckExperimentName", &experimentServiceProcessorCheckExperimentName{handler: handler}) - self.AddToProcessorMap("CreateExperiment", &experimentServiceProcessorCreateExperiment{handler: handler}) - self.AddToProcessorMap("SubmitExperiment", &experimentServiceProcessorSubmitExperiment{handler: handler}) - self.AddToProcessorMap("BatchGetExperiments", &experimentServiceProcessorBatchGetExperiments{handler: handler}) - self.AddToProcessorMap("ListExperiments", &experimentServiceProcessorListExperiments{handler: handler}) - self.AddToProcessorMap("UpdateExperiment", &experimentServiceProcessorUpdateExperiment{handler: handler}) - self.AddToProcessorMap("DeleteExperiment", &experimentServiceProcessorDeleteExperiment{handler: handler}) - self.AddToProcessorMap("BatchDeleteExperiments", &experimentServiceProcessorBatchDeleteExperiments{handler: handler}) - self.AddToProcessorMap("CloneExperiment", &experimentServiceProcessorCloneExperiment{handler: handler}) - self.AddToProcessorMap("RunExperiment", &experimentServiceProcessorRunExperiment{handler: handler}) - self.AddToProcessorMap("RetryExperiment", &experimentServiceProcessorRetryExperiment{handler: handler}) - self.AddToProcessorMap("KillExperiment", &experimentServiceProcessorKillExperiment{handler: handler}) - self.AddToProcessorMap("BatchGetExperimentResult", &experimentServiceProcessorBatchGetExperimentResult_{handler: handler}) - self.AddToProcessorMap("CalculateExperimentAggrResult", &experimentServiceProcessorCalculateExperimentAggrResult_{handler: handler}) - self.AddToProcessorMap("BatchGetExperimentAggrResult", &experimentServiceProcessorBatchGetExperimentAggrResult_{handler: handler}) - self.AddToProcessorMap("InvokeExperiment", &experimentServiceProcessorInvokeExperiment{handler: handler}) - self.AddToProcessorMap("FinishExperiment", &experimentServiceProcessorFinishExperiment{handler: handler}) - self.AddToProcessorMap("ListExperimentStats", &experimentServiceProcessorListExperimentStats{handler: handler}) - self.AddToProcessorMap("UpsertExptTurnResultFilter", &experimentServiceProcessorUpsertExptTurnResultFilter{handler: handler}) - self.AddToProcessorMap("AssociateAnnotationTag", &experimentServiceProcessorAssociateAnnotationTag{handler: handler}) - self.AddToProcessorMap("DeleteAnnotationTag", &experimentServiceProcessorDeleteAnnotationTag{handler: handler}) - self.AddToProcessorMap("CreateAnnotateRecord", &experimentServiceProcessorCreateAnnotateRecord{handler: handler}) - self.AddToProcessorMap("UpdateAnnotateRecord", &experimentServiceProcessorUpdateAnnotateRecord{handler: handler}) - self.AddToProcessorMap("ExportExptResult", &experimentServiceProcessorExportExptResult_{handler: handler}) - self.AddToProcessorMap("ListExptResultExportRecord", &experimentServiceProcessorListExptResultExportRecord{handler: handler}) - self.AddToProcessorMap("GetExptResultExportRecord", &experimentServiceProcessorGetExptResultExportRecord{handler: handler}) - self.AddToProcessorMap("InsightAnalysisExperiment", &experimentServiceProcessorInsightAnalysisExperiment{handler: handler}) - self.AddToProcessorMap("ListExptInsightAnalysisRecord", &experimentServiceProcessorListExptInsightAnalysisRecord{handler: handler}) - self.AddToProcessorMap("DeleteExptInsightAnalysisRecord", &experimentServiceProcessorDeleteExptInsightAnalysisRecord{handler: handler}) - self.AddToProcessorMap("GetExptInsightAnalysisRecord", &experimentServiceProcessorGetExptInsightAnalysisRecord{handler: handler}) - self.AddToProcessorMap("FeedbackExptInsightAnalysisReport", &experimentServiceProcessorFeedbackExptInsightAnalysisReport{handler: handler}) - self.AddToProcessorMap("ListExptInsightAnalysisComment", &experimentServiceProcessorListExptInsightAnalysisComment{handler: handler}) - self.AddToProcessorMap("GetAnalysisRecordFeedbackVote", &experimentServiceProcessorGetAnalysisRecordFeedbackVote{handler: handler}) - return self +func (p *ExperimentServiceSubmitExperimentArgs) InitDefault() { } -func (p *ExperimentServiceProcessor) Process(ctx context.Context, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - name, _, seqId, err := iprot.ReadMessageBegin() - if err != nil { - return false, err + +var ExperimentServiceSubmitExperimentArgs_Req_DEFAULT *SubmitExperimentRequest + +func (p *ExperimentServiceSubmitExperimentArgs) GetReq() (v *SubmitExperimentRequest) { + if p == nil { + return } - if processor, ok := p.GetProcessorFunction(name); ok { - return processor.Process(ctx, seqId, iprot, oprot) + if !p.IsSetReq() { + return ExperimentServiceSubmitExperimentArgs_Req_DEFAULT } - iprot.Skip(thrift.STRUCT) - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.UNKNOWN_METHOD, "Unknown function "+name) - oprot.WriteMessageBegin(name, thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, x + return p.Req +} +func (p *ExperimentServiceSubmitExperimentArgs) SetReq(val *SubmitExperimentRequest) { + p.Req = val } -type experimentServiceProcessorCheckExperimentName struct { - handler ExperimentService +var fieldIDToName_ExperimentServiceSubmitExperimentArgs = map[int16]string{ + 1: "req", } -func (p *experimentServiceProcessorCheckExperimentName) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceCheckExperimentNameArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("CheckExperimentName", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err - } +func (p *ExperimentServiceSubmitExperimentArgs) IsSetReq() bool { + return p.Req != nil +} - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceCheckExperimentNameResult{} - var retval *CheckExperimentNameResponse - if retval, err2 = p.handler.CheckExperimentName(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing CheckExperimentName: "+err2.Error()) - oprot.WriteMessageBegin("CheckExperimentName", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("CheckExperimentName", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 +func (p *ExperimentServiceSubmitExperimentArgs) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField1(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 != nil { - return + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError } - return true, err -} -type experimentServiceProcessorCreateExperiment struct { - handler ExperimentService + 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_ExperimentServiceSubmitExperimentArgs[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 *experimentServiceProcessorCreateExperiment) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceCreateExperimentArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("CreateExperiment", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err +func (p *ExperimentServiceSubmitExperimentArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewSubmitExperimentRequest() + if err := _field.Read(iprot); err != nil { + return err } + p.Req = _field + return nil +} - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceCreateExperimentResult{} - var retval *CreateExperimentResponse - if retval, err2 = p.handler.CreateExperiment(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing CreateExperiment: "+err2.Error()) - oprot.WriteMessageBegin("CreateExperiment", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("CreateExperiment", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 +func (p *ExperimentServiceSubmitExperimentArgs) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("SubmitExperiment_args"); err != nil { + goto WriteStructBeginError } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError } - if err != nil { - return + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError } - return true, err -} - -type experimentServiceProcessorSubmitExperiment struct { - handler ExperimentService + 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 *experimentServiceProcessorSubmitExperiment) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceSubmitExperimentArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("SubmitExperiment", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err +func (p *ExperimentServiceSubmitExperimentArgs) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { + goto WriteFieldBeginError } - - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceSubmitExperimentResult{} - var retval *SubmitExperimentResponse - if retval, err2 = p.handler.SubmitExperiment(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing SubmitExperiment: "+err2.Error()) - oprot.WriteMessageBegin("SubmitExperiment", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval + if err := p.Req.Write(oprot); err != nil { + return err } - if err2 = oprot.WriteMessageBegin("SubmitExperiment", thrift.REPLY, seqId); err2 != nil { - err = err2 + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 + 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 *ExperimentServiceSubmitExperimentArgs) String() string { + if p == nil { + return "" } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 + return fmt.Sprintf("ExperimentServiceSubmitExperimentArgs(%+v)", *p) + +} + +func (p *ExperimentServiceSubmitExperimentArgs) DeepEqual(ano *ExperimentServiceSubmitExperimentArgs) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + if !p.Field1DeepEqual(ano.Req) { + return false } - if err != nil { - return + return true +} + +func (p *ExperimentServiceSubmitExperimentArgs) Field1DeepEqual(src *SubmitExperimentRequest) bool { + + if !p.Req.DeepEqual(src) { + return false } - return true, err + return true } -type experimentServiceProcessorBatchGetExperiments struct { - handler ExperimentService +type ExperimentServiceSubmitExperimentResult struct { + Success *SubmitExperimentResponse `thrift:"success,0,optional" frugal:"0,optional,SubmitExperimentResponse"` } -func (p *experimentServiceProcessorBatchGetExperiments) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceBatchGetExperimentsArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("BatchGetExperiments", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err - } +func NewExperimentServiceSubmitExperimentResult() *ExperimentServiceSubmitExperimentResult { + return &ExperimentServiceSubmitExperimentResult{} +} - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceBatchGetExperimentsResult{} - var retval *BatchGetExperimentsResponse - if retval, err2 = p.handler.BatchGetExperiments(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing BatchGetExperiments: "+err2.Error()) - oprot.WriteMessageBegin("BatchGetExperiments", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("BatchGetExperiments", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 - } - if err != nil { +func (p *ExperimentServiceSubmitExperimentResult) InitDefault() { +} + +var ExperimentServiceSubmitExperimentResult_Success_DEFAULT *SubmitExperimentResponse + +func (p *ExperimentServiceSubmitExperimentResult) GetSuccess() (v *SubmitExperimentResponse) { + if p == nil { return } - return true, err + if !p.IsSetSuccess() { + return ExperimentServiceSubmitExperimentResult_Success_DEFAULT + } + return p.Success +} +func (p *ExperimentServiceSubmitExperimentResult) SetSuccess(x interface{}) { + p.Success = x.(*SubmitExperimentResponse) } -type experimentServiceProcessorListExperiments struct { - handler ExperimentService +var fieldIDToName_ExperimentServiceSubmitExperimentResult = map[int16]string{ + 0: "success", } -func (p *experimentServiceProcessorListExperiments) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceListExperimentsArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("ListExperiments", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err +func (p *ExperimentServiceSubmitExperimentResult) IsSetSuccess() bool { + return p.Success != nil +} + +func (p *ExperimentServiceSubmitExperimentResult) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError } - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceListExperimentsResult{} - var retval *ListExperimentsResponse - if retval, err2 = p.handler.ListExperiments(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ListExperiments: "+err2.Error()) - oprot.WriteMessageBegin("ListExperiments", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 0: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField0(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 err2 = oprot.WriteMessageBegin("ListExperiments", thrift.REPLY, seqId); err2 != nil { - err = err2 + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 + + 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_ExperimentServiceSubmitExperimentResult[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 *ExperimentServiceSubmitExperimentResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewSubmitExperimentResponse() + if err := _field.Read(iprot); err != nil { + return err + } + p.Success = _field + return nil +} + +func (p *ExperimentServiceSubmitExperimentResult) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("SubmitExperiment_result"); err != nil { + goto WriteStructBeginError } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 + if p != nil { + if err = p.writeField0(oprot); err != nil { + fieldId = 0 + goto WriteFieldError + } } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError } - if err != nil { - return + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError } - return true, err + 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) } -type experimentServiceProcessorUpdateExperiment struct { - handler ExperimentService +func (p *ExperimentServiceSubmitExperimentResult) writeField0(oprot thrift.TProtocol) (err error) { + if p.IsSetSuccess() { + if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { + goto WriteFieldBeginError + } + if err := p.Success.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 0 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *experimentServiceProcessorUpdateExperiment) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceUpdateExperimentArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("UpdateExperiment", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err +func (p *ExperimentServiceSubmitExperimentResult) String() string { + if p == nil { + return "" } + return fmt.Sprintf("ExperimentServiceSubmitExperimentResult(%+v)", *p) - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceUpdateExperimentResult{} - var retval *UpdateExperimentResponse - if retval, err2 = p.handler.UpdateExperiment(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing UpdateExperiment: "+err2.Error()) - oprot.WriteMessageBegin("UpdateExperiment", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("UpdateExperiment", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 +} + +func (p *ExperimentServiceSubmitExperimentResult) DeepEqual(ano *ExperimentServiceSubmitExperimentResult) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + if !p.Field0DeepEqual(ano.Success) { + return false } - if err != nil { - return + return true +} + +func (p *ExperimentServiceSubmitExperimentResult) Field0DeepEqual(src *SubmitExperimentResponse) bool { + + if !p.Success.DeepEqual(src) { + return false } - return true, err + return true } -type experimentServiceProcessorDeleteExperiment struct { - handler ExperimentService +type ExperimentServiceBatchGetExperimentsArgs struct { + Req *BatchGetExperimentsRequest `thrift:"req,1" frugal:"1,default,BatchGetExperimentsRequest"` } -func (p *experimentServiceProcessorDeleteExperiment) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceDeleteExperimentArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("DeleteExperiment", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err - } +func NewExperimentServiceBatchGetExperimentsArgs() *ExperimentServiceBatchGetExperimentsArgs { + return &ExperimentServiceBatchGetExperimentsArgs{} +} - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceDeleteExperimentResult{} - var retval *DeleteExperimentResponse - if retval, err2 = p.handler.DeleteExperiment(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing DeleteExperiment: "+err2.Error()) - oprot.WriteMessageBegin("DeleteExperiment", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("DeleteExperiment", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 - } - if err != nil { +func (p *ExperimentServiceBatchGetExperimentsArgs) InitDefault() { +} + +var ExperimentServiceBatchGetExperimentsArgs_Req_DEFAULT *BatchGetExperimentsRequest + +func (p *ExperimentServiceBatchGetExperimentsArgs) GetReq() (v *BatchGetExperimentsRequest) { + if p == nil { return } - return true, err + if !p.IsSetReq() { + return ExperimentServiceBatchGetExperimentsArgs_Req_DEFAULT + } + return p.Req +} +func (p *ExperimentServiceBatchGetExperimentsArgs) SetReq(val *BatchGetExperimentsRequest) { + p.Req = val } -type experimentServiceProcessorBatchDeleteExperiments struct { - handler ExperimentService +var fieldIDToName_ExperimentServiceBatchGetExperimentsArgs = map[int16]string{ + 1: "req", } -func (p *experimentServiceProcessorBatchDeleteExperiments) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceBatchDeleteExperimentsArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("BatchDeleteExperiments", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err - } +func (p *ExperimentServiceBatchGetExperimentsArgs) IsSetReq() bool { + return p.Req != nil +} - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceBatchDeleteExperimentsResult{} - var retval *BatchDeleteExperimentsResponse - if retval, err2 = p.handler.BatchDeleteExperiments(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing BatchDeleteExperiments: "+err2.Error()) - oprot.WriteMessageBegin("BatchDeleteExperiments", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("BatchDeleteExperiments", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 +func (p *ExperimentServiceBatchGetExperimentsArgs) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField1(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 != nil { - return + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError } - return true, err -} -type experimentServiceProcessorCloneExperiment struct { - handler ExperimentService + 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_ExperimentServiceBatchGetExperimentsArgs[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 *experimentServiceProcessorCloneExperiment) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceCloneExperimentArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("CloneExperiment", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err +func (p *ExperimentServiceBatchGetExperimentsArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewBatchGetExperimentsRequest() + if err := _field.Read(iprot); err != nil { + return err } + p.Req = _field + return nil +} - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceCloneExperimentResult{} - var retval *CloneExperimentResponse - if retval, err2 = p.handler.CloneExperiment(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing CloneExperiment: "+err2.Error()) - oprot.WriteMessageBegin("CloneExperiment", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("CloneExperiment", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 +func (p *ExperimentServiceBatchGetExperimentsArgs) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("BatchGetExperiments_args"); err != nil { + goto WriteStructBeginError } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError } - if err != nil { - return + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError } - return true, err + 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) } -type experimentServiceProcessorRunExperiment struct { - handler ExperimentService +func (p *ExperimentServiceBatchGetExperimentsArgs) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { + goto WriteFieldBeginError + } + if err := p.Req.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 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *experimentServiceProcessorRunExperiment) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceRunExperimentArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("RunExperiment", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err +func (p *ExperimentServiceBatchGetExperimentsArgs) String() string { + if p == nil { + return "" } + return fmt.Sprintf("ExperimentServiceBatchGetExperimentsArgs(%+v)", *p) - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceRunExperimentResult{} - var retval *RunExperimentResponse - if retval, err2 = p.handler.RunExperiment(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing RunExperiment: "+err2.Error()) - oprot.WriteMessageBegin("RunExperiment", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("RunExperiment", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 +} + +func (p *ExperimentServiceBatchGetExperimentsArgs) DeepEqual(ano *ExperimentServiceBatchGetExperimentsArgs) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 + if !p.Field1DeepEqual(ano.Req) { + return false } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + return true +} + +func (p *ExperimentServiceBatchGetExperimentsArgs) Field1DeepEqual(src *BatchGetExperimentsRequest) bool { + + if !p.Req.DeepEqual(src) { + return false } - if err != nil { + return true +} + +type ExperimentServiceBatchGetExperimentsResult struct { + Success *BatchGetExperimentsResponse `thrift:"success,0,optional" frugal:"0,optional,BatchGetExperimentsResponse"` +} + +func NewExperimentServiceBatchGetExperimentsResult() *ExperimentServiceBatchGetExperimentsResult { + return &ExperimentServiceBatchGetExperimentsResult{} +} + +func (p *ExperimentServiceBatchGetExperimentsResult) InitDefault() { +} + +var ExperimentServiceBatchGetExperimentsResult_Success_DEFAULT *BatchGetExperimentsResponse + +func (p *ExperimentServiceBatchGetExperimentsResult) GetSuccess() (v *BatchGetExperimentsResponse) { + if p == nil { return } - return true, err + if !p.IsSetSuccess() { + return ExperimentServiceBatchGetExperimentsResult_Success_DEFAULT + } + return p.Success +} +func (p *ExperimentServiceBatchGetExperimentsResult) SetSuccess(x interface{}) { + p.Success = x.(*BatchGetExperimentsResponse) } -type experimentServiceProcessorRetryExperiment struct { - handler ExperimentService +var fieldIDToName_ExperimentServiceBatchGetExperimentsResult = map[int16]string{ + 0: "success", } -func (p *experimentServiceProcessorRetryExperiment) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceRetryExperimentArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("RetryExperiment", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err +func (p *ExperimentServiceBatchGetExperimentsResult) IsSetSuccess() bool { + return p.Success != nil +} + +func (p *ExperimentServiceBatchGetExperimentsResult) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError } - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceRetryExperimentResult{} - var retval *RetryExperimentResponse - if retval, err2 = p.handler.RetryExperiment(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing RetryExperiment: "+err2.Error()) - oprot.WriteMessageBegin("RetryExperiment", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 0: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField0(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 err2 = oprot.WriteMessageBegin("RetryExperiment", thrift.REPLY, seqId); err2 != nil { - err = err2 + 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_ExperimentServiceBatchGetExperimentsResult[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 *ExperimentServiceBatchGetExperimentsResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewBatchGetExperimentsResponse() + if err := _field.Read(iprot); err != nil { + return err } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 + p.Success = _field + return nil +} + +func (p *ExperimentServiceBatchGetExperimentsResult) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("BatchGetExperiments_result"); err != nil { + goto WriteStructBeginError } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 + if p != nil { + if err = p.writeField0(oprot); err != nil { + fieldId = 0 + goto WriteFieldError + } } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError } - if err != nil { - return + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError } - return true, err + 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) } -type experimentServiceProcessorKillExperiment struct { - handler ExperimentService +func (p *ExperimentServiceBatchGetExperimentsResult) writeField0(oprot thrift.TProtocol) (err error) { + if p.IsSetSuccess() { + if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { + goto WriteFieldBeginError + } + if err := p.Success.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 0 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *experimentServiceProcessorKillExperiment) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceKillExperimentArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("KillExperiment", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err +func (p *ExperimentServiceBatchGetExperimentsResult) String() string { + if p == nil { + return "" } + return fmt.Sprintf("ExperimentServiceBatchGetExperimentsResult(%+v)", *p) - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceKillExperimentResult{} - var retval *KillExperimentResponse - if retval, err2 = p.handler.KillExperiment(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing KillExperiment: "+err2.Error()) - oprot.WriteMessageBegin("KillExperiment", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("KillExperiment", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 +} + +func (p *ExperimentServiceBatchGetExperimentsResult) DeepEqual(ano *ExperimentServiceBatchGetExperimentsResult) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + if !p.Field0DeepEqual(ano.Success) { + return false } - if err != nil { - return + return true +} + +func (p *ExperimentServiceBatchGetExperimentsResult) Field0DeepEqual(src *BatchGetExperimentsResponse) bool { + + if !p.Success.DeepEqual(src) { + return false } - return true, err + return true } -type experimentServiceProcessorBatchGetExperimentResult_ struct { - handler ExperimentService +type ExperimentServiceListExperimentsArgs struct { + Req *ListExperimentsRequest `thrift:"req,1" frugal:"1,default,ListExperimentsRequest"` } -func (p *experimentServiceProcessorBatchGetExperimentResult_) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceBatchGetExperimentResultArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("BatchGetExperimentResult", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err - } +func NewExperimentServiceListExperimentsArgs() *ExperimentServiceListExperimentsArgs { + return &ExperimentServiceListExperimentsArgs{} +} - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceBatchGetExperimentResultResult{} - var retval *BatchGetExperimentResultResponse - if retval, err2 = p.handler.BatchGetExperimentResult_(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing BatchGetExperimentResult: "+err2.Error()) - oprot.WriteMessageBegin("BatchGetExperimentResult", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("BatchGetExperimentResult", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 - } - if err != nil { +func (p *ExperimentServiceListExperimentsArgs) InitDefault() { +} + +var ExperimentServiceListExperimentsArgs_Req_DEFAULT *ListExperimentsRequest + +func (p *ExperimentServiceListExperimentsArgs) GetReq() (v *ListExperimentsRequest) { + if p == nil { return } - return true, err + if !p.IsSetReq() { + return ExperimentServiceListExperimentsArgs_Req_DEFAULT + } + return p.Req +} +func (p *ExperimentServiceListExperimentsArgs) SetReq(val *ListExperimentsRequest) { + p.Req = val } -type experimentServiceProcessorCalculateExperimentAggrResult_ struct { - handler ExperimentService +var fieldIDToName_ExperimentServiceListExperimentsArgs = map[int16]string{ + 1: "req", } -func (p *experimentServiceProcessorCalculateExperimentAggrResult_) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceCalculateExperimentAggrResultArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("CalculateExperimentAggrResult", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err - } +func (p *ExperimentServiceListExperimentsArgs) IsSetReq() bool { + return p.Req != nil +} - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceCalculateExperimentAggrResultResult{} - var retval *CalculateExperimentAggrResultResponse - if retval, err2 = p.handler.CalculateExperimentAggrResult_(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing CalculateExperimentAggrResult: "+err2.Error()) - oprot.WriteMessageBegin("CalculateExperimentAggrResult", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("CalculateExperimentAggrResult", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 +func (p *ExperimentServiceListExperimentsArgs) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField1(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 != nil { - return + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError } - return true, err -} -type experimentServiceProcessorBatchGetExperimentAggrResult_ struct { - handler ExperimentService + 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_ExperimentServiceListExperimentsArgs[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 *experimentServiceProcessorBatchGetExperimentAggrResult_) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceBatchGetExperimentAggrResultArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("BatchGetExperimentAggrResult", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err +func (p *ExperimentServiceListExperimentsArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewListExperimentsRequest() + if err := _field.Read(iprot); err != nil { + return err } + p.Req = _field + return nil +} - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceBatchGetExperimentAggrResultResult{} - var retval *BatchGetExperimentAggrResultResponse - if retval, err2 = p.handler.BatchGetExperimentAggrResult_(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing BatchGetExperimentAggrResult: "+err2.Error()) - oprot.WriteMessageBegin("BatchGetExperimentAggrResult", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("BatchGetExperimentAggrResult", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 +func (p *ExperimentServiceListExperimentsArgs) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ListExperiments_args"); err != nil { + goto WriteStructBeginError } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError } - if err != nil { - return + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError } - return true, err -} - -type experimentServiceProcessorInvokeExperiment struct { - handler ExperimentService + 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 *experimentServiceProcessorInvokeExperiment) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceInvokeExperimentArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("InvokeExperiment", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err +func (p *ExperimentServiceListExperimentsArgs) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { + goto WriteFieldBeginError } - - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceInvokeExperimentResult{} - var retval *InvokeExperimentResponse - if retval, err2 = p.handler.InvokeExperiment(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing InvokeExperiment: "+err2.Error()) - oprot.WriteMessageBegin("InvokeExperiment", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval + if err := p.Req.Write(oprot); err != nil { + return err } - if err2 = oprot.WriteMessageBegin("InvokeExperiment", thrift.REPLY, seqId); err2 != nil { - err = err2 + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 + 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 *ExperimentServiceListExperimentsArgs) String() string { + if p == nil { + return "" } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 + return fmt.Sprintf("ExperimentServiceListExperimentsArgs(%+v)", *p) + +} + +func (p *ExperimentServiceListExperimentsArgs) DeepEqual(ano *ExperimentServiceListExperimentsArgs) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + if !p.Field1DeepEqual(ano.Req) { + return false } - if err != nil { - return + return true +} + +func (p *ExperimentServiceListExperimentsArgs) Field1DeepEqual(src *ListExperimentsRequest) bool { + + if !p.Req.DeepEqual(src) { + return false } - return true, err + return true } -type experimentServiceProcessorFinishExperiment struct { - handler ExperimentService +type ExperimentServiceListExperimentsResult struct { + Success *ListExperimentsResponse `thrift:"success,0,optional" frugal:"0,optional,ListExperimentsResponse"` } -func (p *experimentServiceProcessorFinishExperiment) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceFinishExperimentArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("FinishExperiment", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err - } +func NewExperimentServiceListExperimentsResult() *ExperimentServiceListExperimentsResult { + return &ExperimentServiceListExperimentsResult{} +} - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceFinishExperimentResult{} - var retval *FinishExperimentResponse - if retval, err2 = p.handler.FinishExperiment(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing FinishExperiment: "+err2.Error()) - oprot.WriteMessageBegin("FinishExperiment", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("FinishExperiment", thrift.REPLY, seqId); err2 != nil { - err = err2 +func (p *ExperimentServiceListExperimentsResult) InitDefault() { +} + +var ExperimentServiceListExperimentsResult_Success_DEFAULT *ListExperimentsResponse + +func (p *ExperimentServiceListExperimentsResult) GetSuccess() (v *ListExperimentsResponse) { + if p == nil { + return } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 + if !p.IsSetSuccess() { + return ExperimentServiceListExperimentsResult_Success_DEFAULT } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 + return p.Success +} +func (p *ExperimentServiceListExperimentsResult) SetSuccess(x interface{}) { + p.Success = x.(*ListExperimentsResponse) +} + +var fieldIDToName_ExperimentServiceListExperimentsResult = map[int16]string{ + 0: "success", +} + +func (p *ExperimentServiceListExperimentsResult) IsSetSuccess() bool { + return p.Success != nil +} + +func (p *ExperimentServiceListExperimentsResult) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 0: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField0(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 != nil { - return + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError } - return true, err -} -type experimentServiceProcessorListExperimentStats struct { - handler ExperimentService + 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_ExperimentServiceListExperimentsResult[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 *experimentServiceProcessorListExperimentStats) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceListExperimentStatsArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("ListExperimentStats", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err +func (p *ExperimentServiceListExperimentsResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewListExperimentsResponse() + if err := _field.Read(iprot); err != nil { + return err } + p.Success = _field + return nil +} - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceListExperimentStatsResult{} - var retval *ListExperimentStatsResponse - if retval, err2 = p.handler.ListExperimentStats(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ListExperimentStats: "+err2.Error()) - oprot.WriteMessageBegin("ListExperimentStats", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("ListExperimentStats", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 +func (p *ExperimentServiceListExperimentsResult) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("ListExperiments_result"); err != nil { + goto WriteStructBeginError } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 + if p != nil { + if err = p.writeField0(oprot); err != nil { + fieldId = 0 + goto WriteFieldError + } } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError } - if err != nil { - return + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError } - return true, err + 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) } -type experimentServiceProcessorUpsertExptTurnResultFilter struct { - handler ExperimentService +func (p *ExperimentServiceListExperimentsResult) writeField0(oprot thrift.TProtocol) (err error) { + if p.IsSetSuccess() { + if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { + goto WriteFieldBeginError + } + if err := p.Success.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 0 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *experimentServiceProcessorUpsertExptTurnResultFilter) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceUpsertExptTurnResultFilterArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("UpsertExptTurnResultFilter", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err +func (p *ExperimentServiceListExperimentsResult) String() string { + if p == nil { + return "" } + return fmt.Sprintf("ExperimentServiceListExperimentsResult(%+v)", *p) - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceUpsertExptTurnResultFilterResult{} - var retval *UpsertExptTurnResultFilterResponse - if retval, err2 = p.handler.UpsertExptTurnResultFilter(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing UpsertExptTurnResultFilter: "+err2.Error()) - oprot.WriteMessageBegin("UpsertExptTurnResultFilter", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("UpsertExptTurnResultFilter", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 +} + +func (p *ExperimentServiceListExperimentsResult) DeepEqual(ano *ExperimentServiceListExperimentsResult) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + if !p.Field0DeepEqual(ano.Success) { + return false } - if err != nil { - return + return true +} + +func (p *ExperimentServiceListExperimentsResult) Field0DeepEqual(src *ListExperimentsResponse) bool { + + if !p.Success.DeepEqual(src) { + return false } - return true, err + return true } -type experimentServiceProcessorAssociateAnnotationTag struct { - handler ExperimentService +type ExperimentServiceUpdateExperimentArgs struct { + Req *UpdateExperimentRequest `thrift:"req,1" frugal:"1,default,UpdateExperimentRequest"` } -func (p *experimentServiceProcessorAssociateAnnotationTag) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceAssociateAnnotationTagArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("AssociateAnnotationTag", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err - } +func NewExperimentServiceUpdateExperimentArgs() *ExperimentServiceUpdateExperimentArgs { + return &ExperimentServiceUpdateExperimentArgs{} +} - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceAssociateAnnotationTagResult{} - var retval *AssociateAnnotationTagResp - if retval, err2 = p.handler.AssociateAnnotationTag(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing AssociateAnnotationTag: "+err2.Error()) - oprot.WriteMessageBegin("AssociateAnnotationTag", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("AssociateAnnotationTag", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 - } - if err != nil { +func (p *ExperimentServiceUpdateExperimentArgs) InitDefault() { +} + +var ExperimentServiceUpdateExperimentArgs_Req_DEFAULT *UpdateExperimentRequest + +func (p *ExperimentServiceUpdateExperimentArgs) GetReq() (v *UpdateExperimentRequest) { + if p == nil { return } - return true, err + if !p.IsSetReq() { + return ExperimentServiceUpdateExperimentArgs_Req_DEFAULT + } + return p.Req +} +func (p *ExperimentServiceUpdateExperimentArgs) SetReq(val *UpdateExperimentRequest) { + p.Req = val } -type experimentServiceProcessorDeleteAnnotationTag struct { - handler ExperimentService +var fieldIDToName_ExperimentServiceUpdateExperimentArgs = map[int16]string{ + 1: "req", } -func (p *experimentServiceProcessorDeleteAnnotationTag) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceDeleteAnnotationTagArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("DeleteAnnotationTag", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err - } +func (p *ExperimentServiceUpdateExperimentArgs) IsSetReq() bool { + return p.Req != nil +} - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceDeleteAnnotationTagResult{} - var retval *DeleteAnnotationTagResp - if retval, err2 = p.handler.DeleteAnnotationTag(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing DeleteAnnotationTag: "+err2.Error()) - oprot.WriteMessageBegin("DeleteAnnotationTag", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("DeleteAnnotationTag", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 +func (p *ExperimentServiceUpdateExperimentArgs) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField1(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 != nil { - return + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError } - return true, err -} -type experimentServiceProcessorCreateAnnotateRecord struct { - handler ExperimentService + 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_ExperimentServiceUpdateExperimentArgs[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 *experimentServiceProcessorCreateAnnotateRecord) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceCreateAnnotateRecordArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("CreateAnnotateRecord", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err +func (p *ExperimentServiceUpdateExperimentArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewUpdateExperimentRequest() + if err := _field.Read(iprot); err != nil { + return err } + p.Req = _field + return nil +} - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceCreateAnnotateRecordResult{} - var retval *CreateAnnotateRecordResp - if retval, err2 = p.handler.CreateAnnotateRecord(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing CreateAnnotateRecord: "+err2.Error()) - oprot.WriteMessageBegin("CreateAnnotateRecord", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval +func (p *ExperimentServiceUpdateExperimentArgs) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("UpdateExperiment_args"); err != nil { + goto WriteStructBeginError } - if err2 = oprot.WriteMessageBegin("CreateAnnotateRecord", thrift.REPLY, seqId); err2 != nil { - err = err2 + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + 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 *ExperimentServiceUpdateExperimentArgs) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { + goto WriteFieldBeginError } - if err != nil { - return + if err := p.Req.Write(oprot); err != nil { + return err } - return true, 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) } -type experimentServiceProcessorUpdateAnnotateRecord struct { - handler ExperimentService +func (p *ExperimentServiceUpdateExperimentArgs) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("ExperimentServiceUpdateExperimentArgs(%+v)", *p) + } -func (p *experimentServiceProcessorUpdateAnnotateRecord) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceUpdateAnnotateRecordArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("UpdateAnnotateRecord", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err +func (p *ExperimentServiceUpdateExperimentArgs) DeepEqual(ano *ExperimentServiceUpdateExperimentArgs) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false + } + if !p.Field1DeepEqual(ano.Req) { + return false } + return true +} - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceUpdateAnnotateRecordResult{} - var retval *UpdateAnnotateRecordResp - if retval, err2 = p.handler.UpdateAnnotateRecord(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing UpdateAnnotateRecord: "+err2.Error()) - oprot.WriteMessageBegin("UpdateAnnotateRecord", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval +func (p *ExperimentServiceUpdateExperimentArgs) Field1DeepEqual(src *UpdateExperimentRequest) bool { + + if !p.Req.DeepEqual(src) { + return false } - if err2 = oprot.WriteMessageBegin("UpdateAnnotateRecord", thrift.REPLY, seqId); err2 != nil { - err = err2 + return true +} + +type ExperimentServiceUpdateExperimentResult struct { + Success *UpdateExperimentResponse `thrift:"success,0,optional" frugal:"0,optional,UpdateExperimentResponse"` +} + +func NewExperimentServiceUpdateExperimentResult() *ExperimentServiceUpdateExperimentResult { + return &ExperimentServiceUpdateExperimentResult{} +} + +func (p *ExperimentServiceUpdateExperimentResult) InitDefault() { +} + +var ExperimentServiceUpdateExperimentResult_Success_DEFAULT *UpdateExperimentResponse + +func (p *ExperimentServiceUpdateExperimentResult) GetSuccess() (v *UpdateExperimentResponse) { + if p == nil { + return } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 + if !p.IsSetSuccess() { + return ExperimentServiceUpdateExperimentResult_Success_DEFAULT } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 + return p.Success +} +func (p *ExperimentServiceUpdateExperimentResult) SetSuccess(x interface{}) { + p.Success = x.(*UpdateExperimentResponse) +} + +var fieldIDToName_ExperimentServiceUpdateExperimentResult = map[int16]string{ + 0: "success", +} + +func (p *ExperimentServiceUpdateExperimentResult) IsSetSuccess() bool { + return p.Success != nil +} + +func (p *ExperimentServiceUpdateExperimentResult) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 0: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField0(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 != nil { - return + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError } - return true, err -} -type experimentServiceProcessorExportExptResult_ struct { - handler ExperimentService + 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_ExperimentServiceUpdateExperimentResult[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 *experimentServiceProcessorExportExptResult_) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceExportExptResultArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("ExportExptResult", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err +func (p *ExperimentServiceUpdateExperimentResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewUpdateExperimentResponse() + if err := _field.Read(iprot); err != nil { + return err } + p.Success = _field + return nil +} - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceExportExptResultResult{} - var retval *ExportExptResultResponse - if retval, err2 = p.handler.ExportExptResult_(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ExportExptResult: "+err2.Error()) - oprot.WriteMessageBegin("ExportExptResult", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("ExportExptResult", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 +func (p *ExperimentServiceUpdateExperimentResult) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("UpdateExperiment_result"); err != nil { + goto WriteStructBeginError } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 + if p != nil { + if err = p.writeField0(oprot); err != nil { + fieldId = 0 + goto WriteFieldError + } } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError } - if err != nil { - return + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError } - return true, err + 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) } -type experimentServiceProcessorListExptResultExportRecord struct { - handler ExperimentService +func (p *ExperimentServiceUpdateExperimentResult) writeField0(oprot thrift.TProtocol) (err error) { + if p.IsSetSuccess() { + if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { + goto WriteFieldBeginError + } + if err := p.Success.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 0 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *experimentServiceProcessorListExptResultExportRecord) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceListExptResultExportRecordArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("ListExptResultExportRecord", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err +func (p *ExperimentServiceUpdateExperimentResult) String() string { + if p == nil { + return "" } + return fmt.Sprintf("ExperimentServiceUpdateExperimentResult(%+v)", *p) - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceListExptResultExportRecordResult{} - var retval *ListExptResultExportRecordResponse - if retval, err2 = p.handler.ListExptResultExportRecord(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ListExptResultExportRecord: "+err2.Error()) - oprot.WriteMessageBegin("ListExptResultExportRecord", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("ListExptResultExportRecord", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 +} + +func (p *ExperimentServiceUpdateExperimentResult) DeepEqual(ano *ExperimentServiceUpdateExperimentResult) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + if !p.Field0DeepEqual(ano.Success) { + return false } - if err != nil { - return + return true +} + +func (p *ExperimentServiceUpdateExperimentResult) Field0DeepEqual(src *UpdateExperimentResponse) bool { + + if !p.Success.DeepEqual(src) { + return false } - return true, err + return true } -type experimentServiceProcessorGetExptResultExportRecord struct { - handler ExperimentService +type ExperimentServiceDeleteExperimentArgs struct { + Req *DeleteExperimentRequest `thrift:"req,1" frugal:"1,default,DeleteExperimentRequest"` } -func (p *experimentServiceProcessorGetExptResultExportRecord) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceGetExptResultExportRecordArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("GetExptResultExportRecord", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err - } +func NewExperimentServiceDeleteExperimentArgs() *ExperimentServiceDeleteExperimentArgs { + return &ExperimentServiceDeleteExperimentArgs{} +} - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceGetExptResultExportRecordResult{} - var retval *GetExptResultExportRecordResponse - if retval, err2 = p.handler.GetExptResultExportRecord(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing GetExptResultExportRecord: "+err2.Error()) - oprot.WriteMessageBegin("GetExptResultExportRecord", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("GetExptResultExportRecord", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 - } - if err != nil { +func (p *ExperimentServiceDeleteExperimentArgs) InitDefault() { +} + +var ExperimentServiceDeleteExperimentArgs_Req_DEFAULT *DeleteExperimentRequest + +func (p *ExperimentServiceDeleteExperimentArgs) GetReq() (v *DeleteExperimentRequest) { + if p == nil { return } - return true, err + if !p.IsSetReq() { + return ExperimentServiceDeleteExperimentArgs_Req_DEFAULT + } + return p.Req +} +func (p *ExperimentServiceDeleteExperimentArgs) SetReq(val *DeleteExperimentRequest) { + p.Req = val } -type experimentServiceProcessorInsightAnalysisExperiment struct { - handler ExperimentService +var fieldIDToName_ExperimentServiceDeleteExperimentArgs = map[int16]string{ + 1: "req", } -func (p *experimentServiceProcessorInsightAnalysisExperiment) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceInsightAnalysisExperimentArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("InsightAnalysisExperiment", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err - } +func (p *ExperimentServiceDeleteExperimentArgs) IsSetReq() bool { + return p.Req != nil +} - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceInsightAnalysisExperimentResult{} - var retval *InsightAnalysisExperimentResponse - if retval, err2 = p.handler.InsightAnalysisExperiment(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing InsightAnalysisExperiment: "+err2.Error()) - oprot.WriteMessageBegin("InsightAnalysisExperiment", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("InsightAnalysisExperiment", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 +func (p *ExperimentServiceDeleteExperimentArgs) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField1(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 != nil { - return + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError } - return true, err -} -type experimentServiceProcessorListExptInsightAnalysisRecord struct { - handler ExperimentService + 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_ExperimentServiceDeleteExperimentArgs[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 *experimentServiceProcessorListExptInsightAnalysisRecord) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceListExptInsightAnalysisRecordArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("ListExptInsightAnalysisRecord", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err +func (p *ExperimentServiceDeleteExperimentArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewDeleteExperimentRequest() + if err := _field.Read(iprot); err != nil { + return err } + p.Req = _field + return nil +} - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceListExptInsightAnalysisRecordResult{} - var retval *ListExptInsightAnalysisRecordResponse - if retval, err2 = p.handler.ListExptInsightAnalysisRecord(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ListExptInsightAnalysisRecord: "+err2.Error()) - oprot.WriteMessageBegin("ListExptInsightAnalysisRecord", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("ListExptInsightAnalysisRecord", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 +func (p *ExperimentServiceDeleteExperimentArgs) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("DeleteExperiment_args"); err != nil { + goto WriteStructBeginError } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError } - if err != nil { - return + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError } - return true, err -} - -type experimentServiceProcessorDeleteExptInsightAnalysisRecord struct { - handler ExperimentService + 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 *experimentServiceProcessorDeleteExptInsightAnalysisRecord) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceDeleteExptInsightAnalysisRecordArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("DeleteExptInsightAnalysisRecord", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err +func (p *ExperimentServiceDeleteExperimentArgs) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { + goto WriteFieldBeginError } - - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceDeleteExptInsightAnalysisRecordResult{} - var retval *DeleteExptInsightAnalysisRecordResponse - if retval, err2 = p.handler.DeleteExptInsightAnalysisRecord(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing DeleteExptInsightAnalysisRecord: "+err2.Error()) - oprot.WriteMessageBegin("DeleteExptInsightAnalysisRecord", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval + if err := p.Req.Write(oprot); err != nil { + return err } - if err2 = oprot.WriteMessageBegin("DeleteExptInsightAnalysisRecord", thrift.REPLY, seqId); err2 != nil { - err = err2 + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 + 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 *ExperimentServiceDeleteExperimentArgs) String() string { + if p == nil { + return "" } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 + return fmt.Sprintf("ExperimentServiceDeleteExperimentArgs(%+v)", *p) + +} + +func (p *ExperimentServiceDeleteExperimentArgs) DeepEqual(ano *ExperimentServiceDeleteExperimentArgs) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + if !p.Field1DeepEqual(ano.Req) { + return false } - if err != nil { - return + return true +} + +func (p *ExperimentServiceDeleteExperimentArgs) Field1DeepEqual(src *DeleteExperimentRequest) bool { + + if !p.Req.DeepEqual(src) { + return false } - return true, err + return true } -type experimentServiceProcessorGetExptInsightAnalysisRecord struct { - handler ExperimentService +type ExperimentServiceDeleteExperimentResult struct { + Success *DeleteExperimentResponse `thrift:"success,0,optional" frugal:"0,optional,DeleteExperimentResponse"` } -func (p *experimentServiceProcessorGetExptInsightAnalysisRecord) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceGetExptInsightAnalysisRecordArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("GetExptInsightAnalysisRecord", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err - } +func NewExperimentServiceDeleteExperimentResult() *ExperimentServiceDeleteExperimentResult { + return &ExperimentServiceDeleteExperimentResult{} +} - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceGetExptInsightAnalysisRecordResult{} - var retval *GetExptInsightAnalysisRecordResponse - if retval, err2 = p.handler.GetExptInsightAnalysisRecord(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing GetExptInsightAnalysisRecord: "+err2.Error()) - oprot.WriteMessageBegin("GetExptInsightAnalysisRecord", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("GetExptInsightAnalysisRecord", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 - } - if err != nil { +func (p *ExperimentServiceDeleteExperimentResult) InitDefault() { +} + +var ExperimentServiceDeleteExperimentResult_Success_DEFAULT *DeleteExperimentResponse + +func (p *ExperimentServiceDeleteExperimentResult) GetSuccess() (v *DeleteExperimentResponse) { + if p == nil { return } - return true, err + if !p.IsSetSuccess() { + return ExperimentServiceDeleteExperimentResult_Success_DEFAULT + } + return p.Success +} +func (p *ExperimentServiceDeleteExperimentResult) SetSuccess(x interface{}) { + p.Success = x.(*DeleteExperimentResponse) } -type experimentServiceProcessorFeedbackExptInsightAnalysisReport struct { - handler ExperimentService +var fieldIDToName_ExperimentServiceDeleteExperimentResult = map[int16]string{ + 0: "success", } -func (p *experimentServiceProcessorFeedbackExptInsightAnalysisReport) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceFeedbackExptInsightAnalysisReportArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("FeedbackExptInsightAnalysisReport", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err - } +func (p *ExperimentServiceDeleteExperimentResult) IsSetSuccess() bool { + return p.Success != nil +} - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceFeedbackExptInsightAnalysisReportResult{} - var retval *FeedbackExptInsightAnalysisReportResponse - if retval, err2 = p.handler.FeedbackExptInsightAnalysisReport(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing FeedbackExptInsightAnalysisReport: "+err2.Error()) - oprot.WriteMessageBegin("FeedbackExptInsightAnalysisReport", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("FeedbackExptInsightAnalysisReport", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 +func (p *ExperimentServiceDeleteExperimentResult) Read(iprot thrift.TProtocol) (err error) { + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 0: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField0(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 != nil { - return + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError } - return true, err -} -type experimentServiceProcessorListExptInsightAnalysisComment struct { - handler ExperimentService + 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_ExperimentServiceDeleteExperimentResult[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 *experimentServiceProcessorListExptInsightAnalysisComment) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceListExptInsightAnalysisCommentArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("ListExptInsightAnalysisComment", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err +func (p *ExperimentServiceDeleteExperimentResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewDeleteExperimentResponse() + if err := _field.Read(iprot); err != nil { + return err } + p.Success = _field + return nil +} - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceListExptInsightAnalysisCommentResult{} - var retval *ListExptInsightAnalysisCommentResponse - if retval, err2 = p.handler.ListExptInsightAnalysisComment(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ListExptInsightAnalysisComment: "+err2.Error()) - oprot.WriteMessageBegin("ListExptInsightAnalysisComment", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("ListExptInsightAnalysisComment", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 +func (p *ExperimentServiceDeleteExperimentResult) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("DeleteExperiment_result"); err != nil { + goto WriteStructBeginError } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 + if p != nil { + if err = p.writeField0(oprot); err != nil { + fieldId = 0 + goto WriteFieldError + } } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError } - if err != nil { - return + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError } - return true, err + 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) } -type experimentServiceProcessorGetAnalysisRecordFeedbackVote struct { - handler ExperimentService +func (p *ExperimentServiceDeleteExperimentResult) writeField0(oprot thrift.TProtocol) (err error) { + if p.IsSetSuccess() { + if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { + goto WriteFieldBeginError + } + if err := p.Success.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 0 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *experimentServiceProcessorGetAnalysisRecordFeedbackVote) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := ExperimentServiceGetAnalysisRecordFeedbackVoteArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("GetAnalysisRecordFeedbackVote", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err +func (p *ExperimentServiceDeleteExperimentResult) String() string { + if p == nil { + return "" } + return fmt.Sprintf("ExperimentServiceDeleteExperimentResult(%+v)", *p) - iprot.ReadMessageEnd() - var err2 error - result := ExperimentServiceGetAnalysisRecordFeedbackVoteResult{} - var retval *GetAnalysisRecordFeedbackVoteResponse - if retval, err2 = p.handler.GetAnalysisRecordFeedbackVote(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing GetAnalysisRecordFeedbackVote: "+err2.Error()) - oprot.WriteMessageBegin("GetAnalysisRecordFeedbackVote", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval - } - if err2 = oprot.WriteMessageBegin("GetAnalysisRecordFeedbackVote", thrift.REPLY, seqId); err2 != nil { - err = err2 - } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 - } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 +} + +func (p *ExperimentServiceDeleteExperimentResult) DeepEqual(ano *ExperimentServiceDeleteExperimentResult) bool { + if p == ano { + return true + } else if p == nil || ano == nil { + return false } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + if !p.Field0DeepEqual(ano.Success) { + return false } - if err != nil { - return + return true +} + +func (p *ExperimentServiceDeleteExperimentResult) Field0DeepEqual(src *DeleteExperimentResponse) bool { + + if !p.Success.DeepEqual(src) { + return false } - return true, err + return true } -type ExperimentServiceCheckExperimentNameArgs struct { - Req *CheckExperimentNameRequest `thrift:"req,1" frugal:"1,default,CheckExperimentNameRequest"` +type ExperimentServiceBatchDeleteExperimentsArgs struct { + Req *BatchDeleteExperimentsRequest `thrift:"req,1" frugal:"1,default,BatchDeleteExperimentsRequest"` } -func NewExperimentServiceCheckExperimentNameArgs() *ExperimentServiceCheckExperimentNameArgs { - return &ExperimentServiceCheckExperimentNameArgs{} +func NewExperimentServiceBatchDeleteExperimentsArgs() *ExperimentServiceBatchDeleteExperimentsArgs { + return &ExperimentServiceBatchDeleteExperimentsArgs{} } -func (p *ExperimentServiceCheckExperimentNameArgs) InitDefault() { +func (p *ExperimentServiceBatchDeleteExperimentsArgs) InitDefault() { } -var ExperimentServiceCheckExperimentNameArgs_Req_DEFAULT *CheckExperimentNameRequest +var ExperimentServiceBatchDeleteExperimentsArgs_Req_DEFAULT *BatchDeleteExperimentsRequest -func (p *ExperimentServiceCheckExperimentNameArgs) GetReq() (v *CheckExperimentNameRequest) { +func (p *ExperimentServiceBatchDeleteExperimentsArgs) GetReq() (v *BatchDeleteExperimentsRequest) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceCheckExperimentNameArgs_Req_DEFAULT + return ExperimentServiceBatchDeleteExperimentsArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceCheckExperimentNameArgs) SetReq(val *CheckExperimentNameRequest) { +func (p *ExperimentServiceBatchDeleteExperimentsArgs) SetReq(val *BatchDeleteExperimentsRequest) { p.Req = val } -var fieldIDToName_ExperimentServiceCheckExperimentNameArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceBatchDeleteExperimentsArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceCheckExperimentNameArgs) IsSetReq() bool { +func (p *ExperimentServiceBatchDeleteExperimentsArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceCheckExperimentNameArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceBatchDeleteExperimentsArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -29869,7 +38336,7 @@ ReadStructBeginError: 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_ExperimentServiceCheckExperimentNameArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceBatchDeleteExperimentsArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -29879,8 +38346,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceCheckExperimentNameArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewCheckExperimentNameRequest() +func (p *ExperimentServiceBatchDeleteExperimentsArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewBatchDeleteExperimentsRequest() if err := _field.Read(iprot); err != nil { return err } @@ -29888,9 +38355,9 @@ func (p *ExperimentServiceCheckExperimentNameArgs) ReadField1(iprot thrift.TProt return nil } -func (p *ExperimentServiceCheckExperimentNameArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceBatchDeleteExperimentsArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("CheckExperimentName_args"); err != nil { + if err = oprot.WriteStructBegin("BatchDeleteExperiments_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -29916,7 +38383,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceCheckExperimentNameArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceBatchDeleteExperimentsArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -29933,15 +38400,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceCheckExperimentNameArgs) String() string { +func (p *ExperimentServiceBatchDeleteExperimentsArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceCheckExperimentNameArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceBatchDeleteExperimentsArgs(%+v)", *p) } -func (p *ExperimentServiceCheckExperimentNameArgs) DeepEqual(ano *ExperimentServiceCheckExperimentNameArgs) bool { +func (p *ExperimentServiceBatchDeleteExperimentsArgs) DeepEqual(ano *ExperimentServiceBatchDeleteExperimentsArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -29953,7 +38420,7 @@ func (p *ExperimentServiceCheckExperimentNameArgs) DeepEqual(ano *ExperimentServ return true } -func (p *ExperimentServiceCheckExperimentNameArgs) Field1DeepEqual(src *CheckExperimentNameRequest) bool { +func (p *ExperimentServiceBatchDeleteExperimentsArgs) Field1DeepEqual(src *BatchDeleteExperimentsRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -29961,41 +38428,41 @@ func (p *ExperimentServiceCheckExperimentNameArgs) Field1DeepEqual(src *CheckExp return true } -type ExperimentServiceCheckExperimentNameResult struct { - Success *CheckExperimentNameResponse `thrift:"success,0,optional" frugal:"0,optional,CheckExperimentNameResponse"` +type ExperimentServiceBatchDeleteExperimentsResult struct { + Success *BatchDeleteExperimentsResponse `thrift:"success,0,optional" frugal:"0,optional,BatchDeleteExperimentsResponse"` } -func NewExperimentServiceCheckExperimentNameResult() *ExperimentServiceCheckExperimentNameResult { - return &ExperimentServiceCheckExperimentNameResult{} +func NewExperimentServiceBatchDeleteExperimentsResult() *ExperimentServiceBatchDeleteExperimentsResult { + return &ExperimentServiceBatchDeleteExperimentsResult{} } -func (p *ExperimentServiceCheckExperimentNameResult) InitDefault() { +func (p *ExperimentServiceBatchDeleteExperimentsResult) InitDefault() { } -var ExperimentServiceCheckExperimentNameResult_Success_DEFAULT *CheckExperimentNameResponse +var ExperimentServiceBatchDeleteExperimentsResult_Success_DEFAULT *BatchDeleteExperimentsResponse -func (p *ExperimentServiceCheckExperimentNameResult) GetSuccess() (v *CheckExperimentNameResponse) { +func (p *ExperimentServiceBatchDeleteExperimentsResult) GetSuccess() (v *BatchDeleteExperimentsResponse) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceCheckExperimentNameResult_Success_DEFAULT + return ExperimentServiceBatchDeleteExperimentsResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceCheckExperimentNameResult) SetSuccess(x interface{}) { - p.Success = x.(*CheckExperimentNameResponse) +func (p *ExperimentServiceBatchDeleteExperimentsResult) SetSuccess(x interface{}) { + p.Success = x.(*BatchDeleteExperimentsResponse) } -var fieldIDToName_ExperimentServiceCheckExperimentNameResult = map[int16]string{ +var fieldIDToName_ExperimentServiceBatchDeleteExperimentsResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceCheckExperimentNameResult) IsSetSuccess() bool { +func (p *ExperimentServiceBatchDeleteExperimentsResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceCheckExperimentNameResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceBatchDeleteExperimentsResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -30040,7 +38507,7 @@ ReadStructBeginError: 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_ExperimentServiceCheckExperimentNameResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceBatchDeleteExperimentsResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -30050,8 +38517,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceCheckExperimentNameResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewCheckExperimentNameResponse() +func (p *ExperimentServiceBatchDeleteExperimentsResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewBatchDeleteExperimentsResponse() if err := _field.Read(iprot); err != nil { return err } @@ -30059,9 +38526,9 @@ func (p *ExperimentServiceCheckExperimentNameResult) ReadField0(iprot thrift.TPr return nil } -func (p *ExperimentServiceCheckExperimentNameResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceBatchDeleteExperimentsResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("CheckExperimentName_result"); err != nil { + if err = oprot.WriteStructBegin("BatchDeleteExperiments_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -30087,7 +38554,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceCheckExperimentNameResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceBatchDeleteExperimentsResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -30106,15 +38573,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceCheckExperimentNameResult) String() string { +func (p *ExperimentServiceBatchDeleteExperimentsResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceCheckExperimentNameResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceBatchDeleteExperimentsResult(%+v)", *p) } -func (p *ExperimentServiceCheckExperimentNameResult) DeepEqual(ano *ExperimentServiceCheckExperimentNameResult) bool { +func (p *ExperimentServiceBatchDeleteExperimentsResult) DeepEqual(ano *ExperimentServiceBatchDeleteExperimentsResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -30126,7 +38593,7 @@ func (p *ExperimentServiceCheckExperimentNameResult) DeepEqual(ano *ExperimentSe return true } -func (p *ExperimentServiceCheckExperimentNameResult) Field0DeepEqual(src *CheckExperimentNameResponse) bool { +func (p *ExperimentServiceBatchDeleteExperimentsResult) Field0DeepEqual(src *BatchDeleteExperimentsResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -30134,41 +38601,41 @@ func (p *ExperimentServiceCheckExperimentNameResult) Field0DeepEqual(src *CheckE return true } -type ExperimentServiceCreateExperimentArgs struct { - Req *CreateExperimentRequest `thrift:"req,1" frugal:"1,default,CreateExperimentRequest"` +type ExperimentServiceCloneExperimentArgs struct { + Req *CloneExperimentRequest `thrift:"req,1" frugal:"1,default,CloneExperimentRequest"` } -func NewExperimentServiceCreateExperimentArgs() *ExperimentServiceCreateExperimentArgs { - return &ExperimentServiceCreateExperimentArgs{} +func NewExperimentServiceCloneExperimentArgs() *ExperimentServiceCloneExperimentArgs { + return &ExperimentServiceCloneExperimentArgs{} } -func (p *ExperimentServiceCreateExperimentArgs) InitDefault() { +func (p *ExperimentServiceCloneExperimentArgs) InitDefault() { } -var ExperimentServiceCreateExperimentArgs_Req_DEFAULT *CreateExperimentRequest +var ExperimentServiceCloneExperimentArgs_Req_DEFAULT *CloneExperimentRequest -func (p *ExperimentServiceCreateExperimentArgs) GetReq() (v *CreateExperimentRequest) { +func (p *ExperimentServiceCloneExperimentArgs) GetReq() (v *CloneExperimentRequest) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceCreateExperimentArgs_Req_DEFAULT + return ExperimentServiceCloneExperimentArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceCreateExperimentArgs) SetReq(val *CreateExperimentRequest) { +func (p *ExperimentServiceCloneExperimentArgs) SetReq(val *CloneExperimentRequest) { p.Req = val } -var fieldIDToName_ExperimentServiceCreateExperimentArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceCloneExperimentArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceCreateExperimentArgs) IsSetReq() bool { +func (p *ExperimentServiceCloneExperimentArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceCreateExperimentArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCloneExperimentArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -30213,7 +38680,7 @@ ReadStructBeginError: 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_ExperimentServiceCreateExperimentArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceCloneExperimentArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -30223,8 +38690,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceCreateExperimentArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewCreateExperimentRequest() +func (p *ExperimentServiceCloneExperimentArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewCloneExperimentRequest() if err := _field.Read(iprot); err != nil { return err } @@ -30232,9 +38699,9 @@ func (p *ExperimentServiceCreateExperimentArgs) ReadField1(iprot thrift.TProtoco return nil } -func (p *ExperimentServiceCreateExperimentArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCloneExperimentArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("CreateExperiment_args"); err != nil { + if err = oprot.WriteStructBegin("CloneExperiment_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -30260,7 +38727,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceCreateExperimentArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCloneExperimentArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -30277,15 +38744,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceCreateExperimentArgs) String() string { +func (p *ExperimentServiceCloneExperimentArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceCreateExperimentArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceCloneExperimentArgs(%+v)", *p) } -func (p *ExperimentServiceCreateExperimentArgs) DeepEqual(ano *ExperimentServiceCreateExperimentArgs) bool { +func (p *ExperimentServiceCloneExperimentArgs) DeepEqual(ano *ExperimentServiceCloneExperimentArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -30297,7 +38764,7 @@ func (p *ExperimentServiceCreateExperimentArgs) DeepEqual(ano *ExperimentService return true } -func (p *ExperimentServiceCreateExperimentArgs) Field1DeepEqual(src *CreateExperimentRequest) bool { +func (p *ExperimentServiceCloneExperimentArgs) Field1DeepEqual(src *CloneExperimentRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -30305,41 +38772,41 @@ func (p *ExperimentServiceCreateExperimentArgs) Field1DeepEqual(src *CreateExper return true } -type ExperimentServiceCreateExperimentResult struct { - Success *CreateExperimentResponse `thrift:"success,0,optional" frugal:"0,optional,CreateExperimentResponse"` +type ExperimentServiceCloneExperimentResult struct { + Success *CloneExperimentResponse `thrift:"success,0,optional" frugal:"0,optional,CloneExperimentResponse"` } -func NewExperimentServiceCreateExperimentResult() *ExperimentServiceCreateExperimentResult { - return &ExperimentServiceCreateExperimentResult{} +func NewExperimentServiceCloneExperimentResult() *ExperimentServiceCloneExperimentResult { + return &ExperimentServiceCloneExperimentResult{} } -func (p *ExperimentServiceCreateExperimentResult) InitDefault() { +func (p *ExperimentServiceCloneExperimentResult) InitDefault() { } -var ExperimentServiceCreateExperimentResult_Success_DEFAULT *CreateExperimentResponse +var ExperimentServiceCloneExperimentResult_Success_DEFAULT *CloneExperimentResponse -func (p *ExperimentServiceCreateExperimentResult) GetSuccess() (v *CreateExperimentResponse) { +func (p *ExperimentServiceCloneExperimentResult) GetSuccess() (v *CloneExperimentResponse) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceCreateExperimentResult_Success_DEFAULT + return ExperimentServiceCloneExperimentResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceCreateExperimentResult) SetSuccess(x interface{}) { - p.Success = x.(*CreateExperimentResponse) +func (p *ExperimentServiceCloneExperimentResult) SetSuccess(x interface{}) { + p.Success = x.(*CloneExperimentResponse) } -var fieldIDToName_ExperimentServiceCreateExperimentResult = map[int16]string{ +var fieldIDToName_ExperimentServiceCloneExperimentResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceCreateExperimentResult) IsSetSuccess() bool { +func (p *ExperimentServiceCloneExperimentResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceCreateExperimentResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCloneExperimentResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -30384,7 +38851,7 @@ ReadStructBeginError: 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_ExperimentServiceCreateExperimentResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceCloneExperimentResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -30394,8 +38861,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceCreateExperimentResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewCreateExperimentResponse() +func (p *ExperimentServiceCloneExperimentResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewCloneExperimentResponse() if err := _field.Read(iprot); err != nil { return err } @@ -30403,9 +38870,9 @@ func (p *ExperimentServiceCreateExperimentResult) ReadField0(iprot thrift.TProto return nil } -func (p *ExperimentServiceCreateExperimentResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCloneExperimentResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("CreateExperiment_result"); err != nil { + if err = oprot.WriteStructBegin("CloneExperiment_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -30431,7 +38898,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceCreateExperimentResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCloneExperimentResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -30450,15 +38917,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceCreateExperimentResult) String() string { +func (p *ExperimentServiceCloneExperimentResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceCreateExperimentResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceCloneExperimentResult(%+v)", *p) } -func (p *ExperimentServiceCreateExperimentResult) DeepEqual(ano *ExperimentServiceCreateExperimentResult) bool { +func (p *ExperimentServiceCloneExperimentResult) DeepEqual(ano *ExperimentServiceCloneExperimentResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -30470,7 +38937,7 @@ func (p *ExperimentServiceCreateExperimentResult) DeepEqual(ano *ExperimentServi return true } -func (p *ExperimentServiceCreateExperimentResult) Field0DeepEqual(src *CreateExperimentResponse) bool { +func (p *ExperimentServiceCloneExperimentResult) Field0DeepEqual(src *CloneExperimentResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -30478,41 +38945,41 @@ func (p *ExperimentServiceCreateExperimentResult) Field0DeepEqual(src *CreateExp return true } -type ExperimentServiceSubmitExperimentArgs struct { - Req *SubmitExperimentRequest `thrift:"req,1" frugal:"1,default,SubmitExperimentRequest"` +type ExperimentServiceRunExperimentArgs struct { + Req *RunExperimentRequest `thrift:"req,1" frugal:"1,default,RunExperimentRequest"` } -func NewExperimentServiceSubmitExperimentArgs() *ExperimentServiceSubmitExperimentArgs { - return &ExperimentServiceSubmitExperimentArgs{} +func NewExperimentServiceRunExperimentArgs() *ExperimentServiceRunExperimentArgs { + return &ExperimentServiceRunExperimentArgs{} } -func (p *ExperimentServiceSubmitExperimentArgs) InitDefault() { +func (p *ExperimentServiceRunExperimentArgs) InitDefault() { } -var ExperimentServiceSubmitExperimentArgs_Req_DEFAULT *SubmitExperimentRequest +var ExperimentServiceRunExperimentArgs_Req_DEFAULT *RunExperimentRequest -func (p *ExperimentServiceSubmitExperimentArgs) GetReq() (v *SubmitExperimentRequest) { +func (p *ExperimentServiceRunExperimentArgs) GetReq() (v *RunExperimentRequest) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceSubmitExperimentArgs_Req_DEFAULT + return ExperimentServiceRunExperimentArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceSubmitExperimentArgs) SetReq(val *SubmitExperimentRequest) { +func (p *ExperimentServiceRunExperimentArgs) SetReq(val *RunExperimentRequest) { p.Req = val } -var fieldIDToName_ExperimentServiceSubmitExperimentArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceRunExperimentArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceSubmitExperimentArgs) IsSetReq() bool { +func (p *ExperimentServiceRunExperimentArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceSubmitExperimentArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceRunExperimentArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -30557,7 +39024,7 @@ ReadStructBeginError: 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_ExperimentServiceSubmitExperimentArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceRunExperimentArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -30567,8 +39034,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceSubmitExperimentArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewSubmitExperimentRequest() +func (p *ExperimentServiceRunExperimentArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewRunExperimentRequest() if err := _field.Read(iprot); err != nil { return err } @@ -30576,9 +39043,9 @@ func (p *ExperimentServiceSubmitExperimentArgs) ReadField1(iprot thrift.TProtoco return nil } -func (p *ExperimentServiceSubmitExperimentArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceRunExperimentArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("SubmitExperiment_args"); err != nil { + if err = oprot.WriteStructBegin("RunExperiment_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -30604,7 +39071,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceSubmitExperimentArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceRunExperimentArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -30621,15 +39088,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceSubmitExperimentArgs) String() string { +func (p *ExperimentServiceRunExperimentArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceSubmitExperimentArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceRunExperimentArgs(%+v)", *p) } -func (p *ExperimentServiceSubmitExperimentArgs) DeepEqual(ano *ExperimentServiceSubmitExperimentArgs) bool { +func (p *ExperimentServiceRunExperimentArgs) DeepEqual(ano *ExperimentServiceRunExperimentArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -30641,7 +39108,7 @@ func (p *ExperimentServiceSubmitExperimentArgs) DeepEqual(ano *ExperimentService return true } -func (p *ExperimentServiceSubmitExperimentArgs) Field1DeepEqual(src *SubmitExperimentRequest) bool { +func (p *ExperimentServiceRunExperimentArgs) Field1DeepEqual(src *RunExperimentRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -30649,41 +39116,41 @@ func (p *ExperimentServiceSubmitExperimentArgs) Field1DeepEqual(src *SubmitExper return true } -type ExperimentServiceSubmitExperimentResult struct { - Success *SubmitExperimentResponse `thrift:"success,0,optional" frugal:"0,optional,SubmitExperimentResponse"` +type ExperimentServiceRunExperimentResult struct { + Success *RunExperimentResponse `thrift:"success,0,optional" frugal:"0,optional,RunExperimentResponse"` } -func NewExperimentServiceSubmitExperimentResult() *ExperimentServiceSubmitExperimentResult { - return &ExperimentServiceSubmitExperimentResult{} +func NewExperimentServiceRunExperimentResult() *ExperimentServiceRunExperimentResult { + return &ExperimentServiceRunExperimentResult{} } -func (p *ExperimentServiceSubmitExperimentResult) InitDefault() { +func (p *ExperimentServiceRunExperimentResult) InitDefault() { } -var ExperimentServiceSubmitExperimentResult_Success_DEFAULT *SubmitExperimentResponse +var ExperimentServiceRunExperimentResult_Success_DEFAULT *RunExperimentResponse -func (p *ExperimentServiceSubmitExperimentResult) GetSuccess() (v *SubmitExperimentResponse) { +func (p *ExperimentServiceRunExperimentResult) GetSuccess() (v *RunExperimentResponse) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceSubmitExperimentResult_Success_DEFAULT + return ExperimentServiceRunExperimentResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceSubmitExperimentResult) SetSuccess(x interface{}) { - p.Success = x.(*SubmitExperimentResponse) +func (p *ExperimentServiceRunExperimentResult) SetSuccess(x interface{}) { + p.Success = x.(*RunExperimentResponse) } -var fieldIDToName_ExperimentServiceSubmitExperimentResult = map[int16]string{ +var fieldIDToName_ExperimentServiceRunExperimentResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceSubmitExperimentResult) IsSetSuccess() bool { +func (p *ExperimentServiceRunExperimentResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceSubmitExperimentResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceRunExperimentResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -30728,7 +39195,7 @@ ReadStructBeginError: 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_ExperimentServiceSubmitExperimentResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceRunExperimentResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -30738,8 +39205,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceSubmitExperimentResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewSubmitExperimentResponse() +func (p *ExperimentServiceRunExperimentResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewRunExperimentResponse() if err := _field.Read(iprot); err != nil { return err } @@ -30747,9 +39214,9 @@ func (p *ExperimentServiceSubmitExperimentResult) ReadField0(iprot thrift.TProto return nil } -func (p *ExperimentServiceSubmitExperimentResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceRunExperimentResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("SubmitExperiment_result"); err != nil { + if err = oprot.WriteStructBegin("RunExperiment_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -30775,7 +39242,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceSubmitExperimentResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceRunExperimentResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -30794,15 +39261,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceSubmitExperimentResult) String() string { +func (p *ExperimentServiceRunExperimentResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceSubmitExperimentResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceRunExperimentResult(%+v)", *p) } -func (p *ExperimentServiceSubmitExperimentResult) DeepEqual(ano *ExperimentServiceSubmitExperimentResult) bool { +func (p *ExperimentServiceRunExperimentResult) DeepEqual(ano *ExperimentServiceRunExperimentResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -30814,7 +39281,7 @@ func (p *ExperimentServiceSubmitExperimentResult) DeepEqual(ano *ExperimentServi return true } -func (p *ExperimentServiceSubmitExperimentResult) Field0DeepEqual(src *SubmitExperimentResponse) bool { +func (p *ExperimentServiceRunExperimentResult) Field0DeepEqual(src *RunExperimentResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -30822,41 +39289,41 @@ func (p *ExperimentServiceSubmitExperimentResult) Field0DeepEqual(src *SubmitExp return true } -type ExperimentServiceBatchGetExperimentsArgs struct { - Req *BatchGetExperimentsRequest `thrift:"req,1" frugal:"1,default,BatchGetExperimentsRequest"` +type ExperimentServiceRetryExperimentArgs struct { + Req *RetryExperimentRequest `thrift:"req,1" frugal:"1,default,RetryExperimentRequest"` } -func NewExperimentServiceBatchGetExperimentsArgs() *ExperimentServiceBatchGetExperimentsArgs { - return &ExperimentServiceBatchGetExperimentsArgs{} +func NewExperimentServiceRetryExperimentArgs() *ExperimentServiceRetryExperimentArgs { + return &ExperimentServiceRetryExperimentArgs{} } -func (p *ExperimentServiceBatchGetExperimentsArgs) InitDefault() { +func (p *ExperimentServiceRetryExperimentArgs) InitDefault() { } -var ExperimentServiceBatchGetExperimentsArgs_Req_DEFAULT *BatchGetExperimentsRequest +var ExperimentServiceRetryExperimentArgs_Req_DEFAULT *RetryExperimentRequest -func (p *ExperimentServiceBatchGetExperimentsArgs) GetReq() (v *BatchGetExperimentsRequest) { +func (p *ExperimentServiceRetryExperimentArgs) GetReq() (v *RetryExperimentRequest) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceBatchGetExperimentsArgs_Req_DEFAULT + return ExperimentServiceRetryExperimentArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceBatchGetExperimentsArgs) SetReq(val *BatchGetExperimentsRequest) { +func (p *ExperimentServiceRetryExperimentArgs) SetReq(val *RetryExperimentRequest) { p.Req = val } -var fieldIDToName_ExperimentServiceBatchGetExperimentsArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceRetryExperimentArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceBatchGetExperimentsArgs) IsSetReq() bool { +func (p *ExperimentServiceRetryExperimentArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceBatchGetExperimentsArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceRetryExperimentArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -30901,7 +39368,7 @@ ReadStructBeginError: 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_ExperimentServiceBatchGetExperimentsArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceRetryExperimentArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -30911,8 +39378,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceBatchGetExperimentsArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewBatchGetExperimentsRequest() +func (p *ExperimentServiceRetryExperimentArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewRetryExperimentRequest() if err := _field.Read(iprot); err != nil { return err } @@ -30920,9 +39387,9 @@ func (p *ExperimentServiceBatchGetExperimentsArgs) ReadField1(iprot thrift.TProt return nil } -func (p *ExperimentServiceBatchGetExperimentsArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceRetryExperimentArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("BatchGetExperiments_args"); err != nil { + if err = oprot.WriteStructBegin("RetryExperiment_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -30948,7 +39415,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceBatchGetExperimentsArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceRetryExperimentArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -30965,15 +39432,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceBatchGetExperimentsArgs) String() string { +func (p *ExperimentServiceRetryExperimentArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceBatchGetExperimentsArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceRetryExperimentArgs(%+v)", *p) } -func (p *ExperimentServiceBatchGetExperimentsArgs) DeepEqual(ano *ExperimentServiceBatchGetExperimentsArgs) bool { +func (p *ExperimentServiceRetryExperimentArgs) DeepEqual(ano *ExperimentServiceRetryExperimentArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -30985,7 +39452,7 @@ func (p *ExperimentServiceBatchGetExperimentsArgs) DeepEqual(ano *ExperimentServ return true } -func (p *ExperimentServiceBatchGetExperimentsArgs) Field1DeepEqual(src *BatchGetExperimentsRequest) bool { +func (p *ExperimentServiceRetryExperimentArgs) Field1DeepEqual(src *RetryExperimentRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -30993,41 +39460,41 @@ func (p *ExperimentServiceBatchGetExperimentsArgs) Field1DeepEqual(src *BatchGet return true } -type ExperimentServiceBatchGetExperimentsResult struct { - Success *BatchGetExperimentsResponse `thrift:"success,0,optional" frugal:"0,optional,BatchGetExperimentsResponse"` +type ExperimentServiceRetryExperimentResult struct { + Success *RetryExperimentResponse `thrift:"success,0,optional" frugal:"0,optional,RetryExperimentResponse"` } -func NewExperimentServiceBatchGetExperimentsResult() *ExperimentServiceBatchGetExperimentsResult { - return &ExperimentServiceBatchGetExperimentsResult{} +func NewExperimentServiceRetryExperimentResult() *ExperimentServiceRetryExperimentResult { + return &ExperimentServiceRetryExperimentResult{} } -func (p *ExperimentServiceBatchGetExperimentsResult) InitDefault() { +func (p *ExperimentServiceRetryExperimentResult) InitDefault() { } -var ExperimentServiceBatchGetExperimentsResult_Success_DEFAULT *BatchGetExperimentsResponse +var ExperimentServiceRetryExperimentResult_Success_DEFAULT *RetryExperimentResponse -func (p *ExperimentServiceBatchGetExperimentsResult) GetSuccess() (v *BatchGetExperimentsResponse) { +func (p *ExperimentServiceRetryExperimentResult) GetSuccess() (v *RetryExperimentResponse) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceBatchGetExperimentsResult_Success_DEFAULT + return ExperimentServiceRetryExperimentResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceBatchGetExperimentsResult) SetSuccess(x interface{}) { - p.Success = x.(*BatchGetExperimentsResponse) +func (p *ExperimentServiceRetryExperimentResult) SetSuccess(x interface{}) { + p.Success = x.(*RetryExperimentResponse) } -var fieldIDToName_ExperimentServiceBatchGetExperimentsResult = map[int16]string{ +var fieldIDToName_ExperimentServiceRetryExperimentResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceBatchGetExperimentsResult) IsSetSuccess() bool { +func (p *ExperimentServiceRetryExperimentResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceBatchGetExperimentsResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceRetryExperimentResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -31072,7 +39539,7 @@ ReadStructBeginError: 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_ExperimentServiceBatchGetExperimentsResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceRetryExperimentResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -31082,8 +39549,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceBatchGetExperimentsResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewBatchGetExperimentsResponse() +func (p *ExperimentServiceRetryExperimentResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewRetryExperimentResponse() if err := _field.Read(iprot); err != nil { return err } @@ -31091,9 +39558,9 @@ func (p *ExperimentServiceBatchGetExperimentsResult) ReadField0(iprot thrift.TPr return nil } -func (p *ExperimentServiceBatchGetExperimentsResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceRetryExperimentResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("BatchGetExperiments_result"); err != nil { + if err = oprot.WriteStructBegin("RetryExperiment_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -31119,7 +39586,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceBatchGetExperimentsResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceRetryExperimentResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -31138,15 +39605,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceBatchGetExperimentsResult) String() string { +func (p *ExperimentServiceRetryExperimentResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceBatchGetExperimentsResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceRetryExperimentResult(%+v)", *p) } -func (p *ExperimentServiceBatchGetExperimentsResult) DeepEqual(ano *ExperimentServiceBatchGetExperimentsResult) bool { +func (p *ExperimentServiceRetryExperimentResult) DeepEqual(ano *ExperimentServiceRetryExperimentResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -31158,7 +39625,7 @@ func (p *ExperimentServiceBatchGetExperimentsResult) DeepEqual(ano *ExperimentSe return true } -func (p *ExperimentServiceBatchGetExperimentsResult) Field0DeepEqual(src *BatchGetExperimentsResponse) bool { +func (p *ExperimentServiceRetryExperimentResult) Field0DeepEqual(src *RetryExperimentResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -31166,41 +39633,41 @@ func (p *ExperimentServiceBatchGetExperimentsResult) Field0DeepEqual(src *BatchG return true } -type ExperimentServiceListExperimentsArgs struct { - Req *ListExperimentsRequest `thrift:"req,1" frugal:"1,default,ListExperimentsRequest"` +type ExperimentServiceKillExperimentArgs struct { + Req *KillExperimentRequest `thrift:"req,1" frugal:"1,default,KillExperimentRequest"` } -func NewExperimentServiceListExperimentsArgs() *ExperimentServiceListExperimentsArgs { - return &ExperimentServiceListExperimentsArgs{} +func NewExperimentServiceKillExperimentArgs() *ExperimentServiceKillExperimentArgs { + return &ExperimentServiceKillExperimentArgs{} } -func (p *ExperimentServiceListExperimentsArgs) InitDefault() { +func (p *ExperimentServiceKillExperimentArgs) InitDefault() { } -var ExperimentServiceListExperimentsArgs_Req_DEFAULT *ListExperimentsRequest +var ExperimentServiceKillExperimentArgs_Req_DEFAULT *KillExperimentRequest -func (p *ExperimentServiceListExperimentsArgs) GetReq() (v *ListExperimentsRequest) { +func (p *ExperimentServiceKillExperimentArgs) GetReq() (v *KillExperimentRequest) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceListExperimentsArgs_Req_DEFAULT + return ExperimentServiceKillExperimentArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceListExperimentsArgs) SetReq(val *ListExperimentsRequest) { +func (p *ExperimentServiceKillExperimentArgs) SetReq(val *KillExperimentRequest) { p.Req = val } -var fieldIDToName_ExperimentServiceListExperimentsArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceKillExperimentArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceListExperimentsArgs) IsSetReq() bool { +func (p *ExperimentServiceKillExperimentArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceListExperimentsArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceKillExperimentArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -31245,7 +39712,7 @@ ReadStructBeginError: 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_ExperimentServiceListExperimentsArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceKillExperimentArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -31255,8 +39722,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceListExperimentsArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewListExperimentsRequest() +func (p *ExperimentServiceKillExperimentArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewKillExperimentRequest() if err := _field.Read(iprot); err != nil { return err } @@ -31264,9 +39731,9 @@ func (p *ExperimentServiceListExperimentsArgs) ReadField1(iprot thrift.TProtocol return nil } -func (p *ExperimentServiceListExperimentsArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceKillExperimentArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListExperiments_args"); err != nil { + if err = oprot.WriteStructBegin("KillExperiment_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -31292,7 +39759,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceListExperimentsArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceKillExperimentArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -31309,15 +39776,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceListExperimentsArgs) String() string { +func (p *ExperimentServiceKillExperimentArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceListExperimentsArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceKillExperimentArgs(%+v)", *p) } -func (p *ExperimentServiceListExperimentsArgs) DeepEqual(ano *ExperimentServiceListExperimentsArgs) bool { +func (p *ExperimentServiceKillExperimentArgs) DeepEqual(ano *ExperimentServiceKillExperimentArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -31329,7 +39796,7 @@ func (p *ExperimentServiceListExperimentsArgs) DeepEqual(ano *ExperimentServiceL return true } -func (p *ExperimentServiceListExperimentsArgs) Field1DeepEqual(src *ListExperimentsRequest) bool { +func (p *ExperimentServiceKillExperimentArgs) Field1DeepEqual(src *KillExperimentRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -31337,41 +39804,41 @@ func (p *ExperimentServiceListExperimentsArgs) Field1DeepEqual(src *ListExperime return true } -type ExperimentServiceListExperimentsResult struct { - Success *ListExperimentsResponse `thrift:"success,0,optional" frugal:"0,optional,ListExperimentsResponse"` +type ExperimentServiceKillExperimentResult struct { + Success *KillExperimentResponse `thrift:"success,0,optional" frugal:"0,optional,KillExperimentResponse"` } -func NewExperimentServiceListExperimentsResult() *ExperimentServiceListExperimentsResult { - return &ExperimentServiceListExperimentsResult{} +func NewExperimentServiceKillExperimentResult() *ExperimentServiceKillExperimentResult { + return &ExperimentServiceKillExperimentResult{} } -func (p *ExperimentServiceListExperimentsResult) InitDefault() { +func (p *ExperimentServiceKillExperimentResult) InitDefault() { } -var ExperimentServiceListExperimentsResult_Success_DEFAULT *ListExperimentsResponse +var ExperimentServiceKillExperimentResult_Success_DEFAULT *KillExperimentResponse -func (p *ExperimentServiceListExperimentsResult) GetSuccess() (v *ListExperimentsResponse) { +func (p *ExperimentServiceKillExperimentResult) GetSuccess() (v *KillExperimentResponse) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceListExperimentsResult_Success_DEFAULT + return ExperimentServiceKillExperimentResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceListExperimentsResult) SetSuccess(x interface{}) { - p.Success = x.(*ListExperimentsResponse) +func (p *ExperimentServiceKillExperimentResult) SetSuccess(x interface{}) { + p.Success = x.(*KillExperimentResponse) } -var fieldIDToName_ExperimentServiceListExperimentsResult = map[int16]string{ +var fieldIDToName_ExperimentServiceKillExperimentResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceListExperimentsResult) IsSetSuccess() bool { +func (p *ExperimentServiceKillExperimentResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceListExperimentsResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceKillExperimentResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -31416,7 +39883,7 @@ ReadStructBeginError: 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_ExperimentServiceListExperimentsResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceKillExperimentResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -31426,8 +39893,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceListExperimentsResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewListExperimentsResponse() +func (p *ExperimentServiceKillExperimentResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewKillExperimentResponse() if err := _field.Read(iprot); err != nil { return err } @@ -31435,9 +39902,9 @@ func (p *ExperimentServiceListExperimentsResult) ReadField0(iprot thrift.TProtoc return nil } -func (p *ExperimentServiceListExperimentsResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceKillExperimentResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListExperiments_result"); err != nil { + if err = oprot.WriteStructBegin("KillExperiment_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -31463,7 +39930,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceListExperimentsResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceKillExperimentResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -31482,15 +39949,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceListExperimentsResult) String() string { +func (p *ExperimentServiceKillExperimentResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceListExperimentsResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceKillExperimentResult(%+v)", *p) } -func (p *ExperimentServiceListExperimentsResult) DeepEqual(ano *ExperimentServiceListExperimentsResult) bool { +func (p *ExperimentServiceKillExperimentResult) DeepEqual(ano *ExperimentServiceKillExperimentResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -31502,7 +39969,7 @@ func (p *ExperimentServiceListExperimentsResult) DeepEqual(ano *ExperimentServic return true } -func (p *ExperimentServiceListExperimentsResult) Field0DeepEqual(src *ListExperimentsResponse) bool { +func (p *ExperimentServiceKillExperimentResult) Field0DeepEqual(src *KillExperimentResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -31510,41 +39977,41 @@ func (p *ExperimentServiceListExperimentsResult) Field0DeepEqual(src *ListExperi return true } -type ExperimentServiceUpdateExperimentArgs struct { - Req *UpdateExperimentRequest `thrift:"req,1" frugal:"1,default,UpdateExperimentRequest"` +type ExperimentServiceBatchGetExperimentResultArgs struct { + Req *BatchGetExperimentResultRequest `thrift:"req,1" frugal:"1,default,BatchGetExperimentResultRequest"` } -func NewExperimentServiceUpdateExperimentArgs() *ExperimentServiceUpdateExperimentArgs { - return &ExperimentServiceUpdateExperimentArgs{} +func NewExperimentServiceBatchGetExperimentResultArgs() *ExperimentServiceBatchGetExperimentResultArgs { + return &ExperimentServiceBatchGetExperimentResultArgs{} } -func (p *ExperimentServiceUpdateExperimentArgs) InitDefault() { +func (p *ExperimentServiceBatchGetExperimentResultArgs) InitDefault() { } -var ExperimentServiceUpdateExperimentArgs_Req_DEFAULT *UpdateExperimentRequest +var ExperimentServiceBatchGetExperimentResultArgs_Req_DEFAULT *BatchGetExperimentResultRequest -func (p *ExperimentServiceUpdateExperimentArgs) GetReq() (v *UpdateExperimentRequest) { +func (p *ExperimentServiceBatchGetExperimentResultArgs) GetReq() (v *BatchGetExperimentResultRequest) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceUpdateExperimentArgs_Req_DEFAULT + return ExperimentServiceBatchGetExperimentResultArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceUpdateExperimentArgs) SetReq(val *UpdateExperimentRequest) { +func (p *ExperimentServiceBatchGetExperimentResultArgs) SetReq(val *BatchGetExperimentResultRequest) { p.Req = val } -var fieldIDToName_ExperimentServiceUpdateExperimentArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceBatchGetExperimentResultArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceUpdateExperimentArgs) IsSetReq() bool { +func (p *ExperimentServiceBatchGetExperimentResultArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceUpdateExperimentArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceBatchGetExperimentResultArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -31589,7 +40056,7 @@ ReadStructBeginError: 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_ExperimentServiceUpdateExperimentArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceBatchGetExperimentResultArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -31599,8 +40066,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceUpdateExperimentArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewUpdateExperimentRequest() +func (p *ExperimentServiceBatchGetExperimentResultArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewBatchGetExperimentResultRequest() if err := _field.Read(iprot); err != nil { return err } @@ -31608,9 +40075,9 @@ func (p *ExperimentServiceUpdateExperimentArgs) ReadField1(iprot thrift.TProtoco return nil } -func (p *ExperimentServiceUpdateExperimentArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceBatchGetExperimentResultArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("UpdateExperiment_args"); err != nil { + if err = oprot.WriteStructBegin("BatchGetExperimentResult_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -31636,7 +40103,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceUpdateExperimentArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceBatchGetExperimentResultArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -31653,15 +40120,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceUpdateExperimentArgs) String() string { +func (p *ExperimentServiceBatchGetExperimentResultArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceUpdateExperimentArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceBatchGetExperimentResultArgs(%+v)", *p) } -func (p *ExperimentServiceUpdateExperimentArgs) DeepEqual(ano *ExperimentServiceUpdateExperimentArgs) bool { +func (p *ExperimentServiceBatchGetExperimentResultArgs) DeepEqual(ano *ExperimentServiceBatchGetExperimentResultArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -31673,7 +40140,7 @@ func (p *ExperimentServiceUpdateExperimentArgs) DeepEqual(ano *ExperimentService return true } -func (p *ExperimentServiceUpdateExperimentArgs) Field1DeepEqual(src *UpdateExperimentRequest) bool { +func (p *ExperimentServiceBatchGetExperimentResultArgs) Field1DeepEqual(src *BatchGetExperimentResultRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -31681,41 +40148,41 @@ func (p *ExperimentServiceUpdateExperimentArgs) Field1DeepEqual(src *UpdateExper return true } -type ExperimentServiceUpdateExperimentResult struct { - Success *UpdateExperimentResponse `thrift:"success,0,optional" frugal:"0,optional,UpdateExperimentResponse"` +type ExperimentServiceBatchGetExperimentResultResult struct { + Success *BatchGetExperimentResultResponse `thrift:"success,0,optional" frugal:"0,optional,BatchGetExperimentResultResponse"` } -func NewExperimentServiceUpdateExperimentResult() *ExperimentServiceUpdateExperimentResult { - return &ExperimentServiceUpdateExperimentResult{} +func NewExperimentServiceBatchGetExperimentResultResult() *ExperimentServiceBatchGetExperimentResultResult { + return &ExperimentServiceBatchGetExperimentResultResult{} } -func (p *ExperimentServiceUpdateExperimentResult) InitDefault() { +func (p *ExperimentServiceBatchGetExperimentResultResult) InitDefault() { } -var ExperimentServiceUpdateExperimentResult_Success_DEFAULT *UpdateExperimentResponse +var ExperimentServiceBatchGetExperimentResultResult_Success_DEFAULT *BatchGetExperimentResultResponse -func (p *ExperimentServiceUpdateExperimentResult) GetSuccess() (v *UpdateExperimentResponse) { +func (p *ExperimentServiceBatchGetExperimentResultResult) GetSuccess() (v *BatchGetExperimentResultResponse) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceUpdateExperimentResult_Success_DEFAULT + return ExperimentServiceBatchGetExperimentResultResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceUpdateExperimentResult) SetSuccess(x interface{}) { - p.Success = x.(*UpdateExperimentResponse) +func (p *ExperimentServiceBatchGetExperimentResultResult) SetSuccess(x interface{}) { + p.Success = x.(*BatchGetExperimentResultResponse) } -var fieldIDToName_ExperimentServiceUpdateExperimentResult = map[int16]string{ +var fieldIDToName_ExperimentServiceBatchGetExperimentResultResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceUpdateExperimentResult) IsSetSuccess() bool { +func (p *ExperimentServiceBatchGetExperimentResultResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceUpdateExperimentResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceBatchGetExperimentResultResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -31760,7 +40227,7 @@ ReadStructBeginError: 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_ExperimentServiceUpdateExperimentResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceBatchGetExperimentResultResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -31770,8 +40237,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceUpdateExperimentResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewUpdateExperimentResponse() +func (p *ExperimentServiceBatchGetExperimentResultResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewBatchGetExperimentResultResponse() if err := _field.Read(iprot); err != nil { return err } @@ -31779,9 +40246,9 @@ func (p *ExperimentServiceUpdateExperimentResult) ReadField0(iprot thrift.TProto return nil } -func (p *ExperimentServiceUpdateExperimentResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceBatchGetExperimentResultResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("UpdateExperiment_result"); err != nil { + if err = oprot.WriteStructBegin("BatchGetExperimentResult_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -31807,7 +40274,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceUpdateExperimentResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceBatchGetExperimentResultResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -31826,15 +40293,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceUpdateExperimentResult) String() string { +func (p *ExperimentServiceBatchGetExperimentResultResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceUpdateExperimentResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceBatchGetExperimentResultResult(%+v)", *p) } -func (p *ExperimentServiceUpdateExperimentResult) DeepEqual(ano *ExperimentServiceUpdateExperimentResult) bool { +func (p *ExperimentServiceBatchGetExperimentResultResult) DeepEqual(ano *ExperimentServiceBatchGetExperimentResultResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -31846,7 +40313,7 @@ func (p *ExperimentServiceUpdateExperimentResult) DeepEqual(ano *ExperimentServi return true } -func (p *ExperimentServiceUpdateExperimentResult) Field0DeepEqual(src *UpdateExperimentResponse) bool { +func (p *ExperimentServiceBatchGetExperimentResultResult) Field0DeepEqual(src *BatchGetExperimentResultResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -31854,41 +40321,41 @@ func (p *ExperimentServiceUpdateExperimentResult) Field0DeepEqual(src *UpdateExp return true } -type ExperimentServiceDeleteExperimentArgs struct { - Req *DeleteExperimentRequest `thrift:"req,1" frugal:"1,default,DeleteExperimentRequest"` +type ExperimentServiceCalculateExperimentAggrResultArgs struct { + Req *CalculateExperimentAggrResultRequest `thrift:"req,1" frugal:"1,default,CalculateExperimentAggrResultRequest"` } -func NewExperimentServiceDeleteExperimentArgs() *ExperimentServiceDeleteExperimentArgs { - return &ExperimentServiceDeleteExperimentArgs{} +func NewExperimentServiceCalculateExperimentAggrResultArgs() *ExperimentServiceCalculateExperimentAggrResultArgs { + return &ExperimentServiceCalculateExperimentAggrResultArgs{} } -func (p *ExperimentServiceDeleteExperimentArgs) InitDefault() { +func (p *ExperimentServiceCalculateExperimentAggrResultArgs) InitDefault() { } -var ExperimentServiceDeleteExperimentArgs_Req_DEFAULT *DeleteExperimentRequest +var ExperimentServiceCalculateExperimentAggrResultArgs_Req_DEFAULT *CalculateExperimentAggrResultRequest -func (p *ExperimentServiceDeleteExperimentArgs) GetReq() (v *DeleteExperimentRequest) { +func (p *ExperimentServiceCalculateExperimentAggrResultArgs) GetReq() (v *CalculateExperimentAggrResultRequest) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceDeleteExperimentArgs_Req_DEFAULT + return ExperimentServiceCalculateExperimentAggrResultArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceDeleteExperimentArgs) SetReq(val *DeleteExperimentRequest) { +func (p *ExperimentServiceCalculateExperimentAggrResultArgs) SetReq(val *CalculateExperimentAggrResultRequest) { p.Req = val } -var fieldIDToName_ExperimentServiceDeleteExperimentArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceCalculateExperimentAggrResultArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceDeleteExperimentArgs) IsSetReq() bool { +func (p *ExperimentServiceCalculateExperimentAggrResultArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceDeleteExperimentArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCalculateExperimentAggrResultArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -31933,7 +40400,7 @@ ReadStructBeginError: 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_ExperimentServiceDeleteExperimentArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceCalculateExperimentAggrResultArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -31943,8 +40410,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceDeleteExperimentArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewDeleteExperimentRequest() +func (p *ExperimentServiceCalculateExperimentAggrResultArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewCalculateExperimentAggrResultRequest() if err := _field.Read(iprot); err != nil { return err } @@ -31952,9 +40419,9 @@ func (p *ExperimentServiceDeleteExperimentArgs) ReadField1(iprot thrift.TProtoco return nil } -func (p *ExperimentServiceDeleteExperimentArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCalculateExperimentAggrResultArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("DeleteExperiment_args"); err != nil { + if err = oprot.WriteStructBegin("CalculateExperimentAggrResult_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -31980,7 +40447,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceDeleteExperimentArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCalculateExperimentAggrResultArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -31997,15 +40464,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceDeleteExperimentArgs) String() string { +func (p *ExperimentServiceCalculateExperimentAggrResultArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceDeleteExperimentArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceCalculateExperimentAggrResultArgs(%+v)", *p) } -func (p *ExperimentServiceDeleteExperimentArgs) DeepEqual(ano *ExperimentServiceDeleteExperimentArgs) bool { +func (p *ExperimentServiceCalculateExperimentAggrResultArgs) DeepEqual(ano *ExperimentServiceCalculateExperimentAggrResultArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -32017,7 +40484,7 @@ func (p *ExperimentServiceDeleteExperimentArgs) DeepEqual(ano *ExperimentService return true } -func (p *ExperimentServiceDeleteExperimentArgs) Field1DeepEqual(src *DeleteExperimentRequest) bool { +func (p *ExperimentServiceCalculateExperimentAggrResultArgs) Field1DeepEqual(src *CalculateExperimentAggrResultRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -32025,41 +40492,41 @@ func (p *ExperimentServiceDeleteExperimentArgs) Field1DeepEqual(src *DeleteExper return true } -type ExperimentServiceDeleteExperimentResult struct { - Success *DeleteExperimentResponse `thrift:"success,0,optional" frugal:"0,optional,DeleteExperimentResponse"` +type ExperimentServiceCalculateExperimentAggrResultResult struct { + Success *CalculateExperimentAggrResultResponse `thrift:"success,0,optional" frugal:"0,optional,CalculateExperimentAggrResultResponse"` } -func NewExperimentServiceDeleteExperimentResult() *ExperimentServiceDeleteExperimentResult { - return &ExperimentServiceDeleteExperimentResult{} +func NewExperimentServiceCalculateExperimentAggrResultResult() *ExperimentServiceCalculateExperimentAggrResultResult { + return &ExperimentServiceCalculateExperimentAggrResultResult{} } -func (p *ExperimentServiceDeleteExperimentResult) InitDefault() { +func (p *ExperimentServiceCalculateExperimentAggrResultResult) InitDefault() { } -var ExperimentServiceDeleteExperimentResult_Success_DEFAULT *DeleteExperimentResponse +var ExperimentServiceCalculateExperimentAggrResultResult_Success_DEFAULT *CalculateExperimentAggrResultResponse -func (p *ExperimentServiceDeleteExperimentResult) GetSuccess() (v *DeleteExperimentResponse) { +func (p *ExperimentServiceCalculateExperimentAggrResultResult) GetSuccess() (v *CalculateExperimentAggrResultResponse) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceDeleteExperimentResult_Success_DEFAULT + return ExperimentServiceCalculateExperimentAggrResultResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceDeleteExperimentResult) SetSuccess(x interface{}) { - p.Success = x.(*DeleteExperimentResponse) +func (p *ExperimentServiceCalculateExperimentAggrResultResult) SetSuccess(x interface{}) { + p.Success = x.(*CalculateExperimentAggrResultResponse) } -var fieldIDToName_ExperimentServiceDeleteExperimentResult = map[int16]string{ +var fieldIDToName_ExperimentServiceCalculateExperimentAggrResultResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceDeleteExperimentResult) IsSetSuccess() bool { +func (p *ExperimentServiceCalculateExperimentAggrResultResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceDeleteExperimentResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCalculateExperimentAggrResultResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -32104,7 +40571,7 @@ ReadStructBeginError: 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_ExperimentServiceDeleteExperimentResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceCalculateExperimentAggrResultResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -32114,8 +40581,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceDeleteExperimentResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewDeleteExperimentResponse() +func (p *ExperimentServiceCalculateExperimentAggrResultResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewCalculateExperimentAggrResultResponse() if err := _field.Read(iprot); err != nil { return err } @@ -32123,9 +40590,9 @@ func (p *ExperimentServiceDeleteExperimentResult) ReadField0(iprot thrift.TProto return nil } -func (p *ExperimentServiceDeleteExperimentResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCalculateExperimentAggrResultResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("DeleteExperiment_result"); err != nil { + if err = oprot.WriteStructBegin("CalculateExperimentAggrResult_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -32151,7 +40618,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceDeleteExperimentResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCalculateExperimentAggrResultResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -32170,15 +40637,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceDeleteExperimentResult) String() string { +func (p *ExperimentServiceCalculateExperimentAggrResultResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceDeleteExperimentResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceCalculateExperimentAggrResultResult(%+v)", *p) } -func (p *ExperimentServiceDeleteExperimentResult) DeepEqual(ano *ExperimentServiceDeleteExperimentResult) bool { +func (p *ExperimentServiceCalculateExperimentAggrResultResult) DeepEqual(ano *ExperimentServiceCalculateExperimentAggrResultResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -32190,7 +40657,7 @@ func (p *ExperimentServiceDeleteExperimentResult) DeepEqual(ano *ExperimentServi return true } -func (p *ExperimentServiceDeleteExperimentResult) Field0DeepEqual(src *DeleteExperimentResponse) bool { +func (p *ExperimentServiceCalculateExperimentAggrResultResult) Field0DeepEqual(src *CalculateExperimentAggrResultResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -32198,41 +40665,41 @@ func (p *ExperimentServiceDeleteExperimentResult) Field0DeepEqual(src *DeleteExp return true } -type ExperimentServiceBatchDeleteExperimentsArgs struct { - Req *BatchDeleteExperimentsRequest `thrift:"req,1" frugal:"1,default,BatchDeleteExperimentsRequest"` +type ExperimentServiceBatchGetExperimentAggrResultArgs struct { + Req *BatchGetExperimentAggrResultRequest `thrift:"req,1" frugal:"1,default,BatchGetExperimentAggrResultRequest"` } -func NewExperimentServiceBatchDeleteExperimentsArgs() *ExperimentServiceBatchDeleteExperimentsArgs { - return &ExperimentServiceBatchDeleteExperimentsArgs{} +func NewExperimentServiceBatchGetExperimentAggrResultArgs() *ExperimentServiceBatchGetExperimentAggrResultArgs { + return &ExperimentServiceBatchGetExperimentAggrResultArgs{} } -func (p *ExperimentServiceBatchDeleteExperimentsArgs) InitDefault() { +func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) InitDefault() { } -var ExperimentServiceBatchDeleteExperimentsArgs_Req_DEFAULT *BatchDeleteExperimentsRequest +var ExperimentServiceBatchGetExperimentAggrResultArgs_Req_DEFAULT *BatchGetExperimentAggrResultRequest -func (p *ExperimentServiceBatchDeleteExperimentsArgs) GetReq() (v *BatchDeleteExperimentsRequest) { +func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) GetReq() (v *BatchGetExperimentAggrResultRequest) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceBatchDeleteExperimentsArgs_Req_DEFAULT + return ExperimentServiceBatchGetExperimentAggrResultArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceBatchDeleteExperimentsArgs) SetReq(val *BatchDeleteExperimentsRequest) { +func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) SetReq(val *BatchGetExperimentAggrResultRequest) { p.Req = val } -var fieldIDToName_ExperimentServiceBatchDeleteExperimentsArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceBatchGetExperimentAggrResultArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceBatchDeleteExperimentsArgs) IsSetReq() bool { +func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceBatchDeleteExperimentsArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -32277,7 +40744,7 @@ ReadStructBeginError: 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_ExperimentServiceBatchDeleteExperimentsArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceBatchGetExperimentAggrResultArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -32287,8 +40754,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceBatchDeleteExperimentsArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewBatchDeleteExperimentsRequest() +func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewBatchGetExperimentAggrResultRequest() if err := _field.Read(iprot); err != nil { return err } @@ -32296,9 +40763,9 @@ func (p *ExperimentServiceBatchDeleteExperimentsArgs) ReadField1(iprot thrift.TP return nil } -func (p *ExperimentServiceBatchDeleteExperimentsArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("BatchDeleteExperiments_args"); err != nil { + if err = oprot.WriteStructBegin("BatchGetExperimentAggrResult_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -32324,7 +40791,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceBatchDeleteExperimentsArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -32341,15 +40808,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceBatchDeleteExperimentsArgs) String() string { +func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceBatchDeleteExperimentsArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceBatchGetExperimentAggrResultArgs(%+v)", *p) } -func (p *ExperimentServiceBatchDeleteExperimentsArgs) DeepEqual(ano *ExperimentServiceBatchDeleteExperimentsArgs) bool { +func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) DeepEqual(ano *ExperimentServiceBatchGetExperimentAggrResultArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -32361,7 +40828,7 @@ func (p *ExperimentServiceBatchDeleteExperimentsArgs) DeepEqual(ano *ExperimentS return true } -func (p *ExperimentServiceBatchDeleteExperimentsArgs) Field1DeepEqual(src *BatchDeleteExperimentsRequest) bool { +func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) Field1DeepEqual(src *BatchGetExperimentAggrResultRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -32369,41 +40836,41 @@ func (p *ExperimentServiceBatchDeleteExperimentsArgs) Field1DeepEqual(src *Batch return true } -type ExperimentServiceBatchDeleteExperimentsResult struct { - Success *BatchDeleteExperimentsResponse `thrift:"success,0,optional" frugal:"0,optional,BatchDeleteExperimentsResponse"` +type ExperimentServiceBatchGetExperimentAggrResultResult struct { + Success *BatchGetExperimentAggrResultResponse `thrift:"success,0,optional" frugal:"0,optional,BatchGetExperimentAggrResultResponse"` } -func NewExperimentServiceBatchDeleteExperimentsResult() *ExperimentServiceBatchDeleteExperimentsResult { - return &ExperimentServiceBatchDeleteExperimentsResult{} +func NewExperimentServiceBatchGetExperimentAggrResultResult() *ExperimentServiceBatchGetExperimentAggrResultResult { + return &ExperimentServiceBatchGetExperimentAggrResultResult{} } -func (p *ExperimentServiceBatchDeleteExperimentsResult) InitDefault() { +func (p *ExperimentServiceBatchGetExperimentAggrResultResult) InitDefault() { } -var ExperimentServiceBatchDeleteExperimentsResult_Success_DEFAULT *BatchDeleteExperimentsResponse +var ExperimentServiceBatchGetExperimentAggrResultResult_Success_DEFAULT *BatchGetExperimentAggrResultResponse -func (p *ExperimentServiceBatchDeleteExperimentsResult) GetSuccess() (v *BatchDeleteExperimentsResponse) { +func (p *ExperimentServiceBatchGetExperimentAggrResultResult) GetSuccess() (v *BatchGetExperimentAggrResultResponse) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceBatchDeleteExperimentsResult_Success_DEFAULT + return ExperimentServiceBatchGetExperimentAggrResultResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceBatchDeleteExperimentsResult) SetSuccess(x interface{}) { - p.Success = x.(*BatchDeleteExperimentsResponse) +func (p *ExperimentServiceBatchGetExperimentAggrResultResult) SetSuccess(x interface{}) { + p.Success = x.(*BatchGetExperimentAggrResultResponse) } -var fieldIDToName_ExperimentServiceBatchDeleteExperimentsResult = map[int16]string{ +var fieldIDToName_ExperimentServiceBatchGetExperimentAggrResultResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceBatchDeleteExperimentsResult) IsSetSuccess() bool { +func (p *ExperimentServiceBatchGetExperimentAggrResultResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceBatchDeleteExperimentsResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceBatchGetExperimentAggrResultResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -32448,7 +40915,7 @@ ReadStructBeginError: 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_ExperimentServiceBatchDeleteExperimentsResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceBatchGetExperimentAggrResultResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -32458,8 +40925,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceBatchDeleteExperimentsResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewBatchDeleteExperimentsResponse() +func (p *ExperimentServiceBatchGetExperimentAggrResultResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewBatchGetExperimentAggrResultResponse() if err := _field.Read(iprot); err != nil { return err } @@ -32467,9 +40934,9 @@ func (p *ExperimentServiceBatchDeleteExperimentsResult) ReadField0(iprot thrift. return nil } -func (p *ExperimentServiceBatchDeleteExperimentsResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceBatchGetExperimentAggrResultResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("BatchDeleteExperiments_result"); err != nil { + if err = oprot.WriteStructBegin("BatchGetExperimentAggrResult_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -32495,7 +40962,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceBatchDeleteExperimentsResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceBatchGetExperimentAggrResultResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -32514,15 +40981,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceBatchDeleteExperimentsResult) String() string { +func (p *ExperimentServiceBatchGetExperimentAggrResultResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceBatchDeleteExperimentsResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceBatchGetExperimentAggrResultResult(%+v)", *p) } -func (p *ExperimentServiceBatchDeleteExperimentsResult) DeepEqual(ano *ExperimentServiceBatchDeleteExperimentsResult) bool { +func (p *ExperimentServiceBatchGetExperimentAggrResultResult) DeepEqual(ano *ExperimentServiceBatchGetExperimentAggrResultResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -32534,7 +41001,7 @@ func (p *ExperimentServiceBatchDeleteExperimentsResult) DeepEqual(ano *Experimen return true } -func (p *ExperimentServiceBatchDeleteExperimentsResult) Field0DeepEqual(src *BatchDeleteExperimentsResponse) bool { +func (p *ExperimentServiceBatchGetExperimentAggrResultResult) Field0DeepEqual(src *BatchGetExperimentAggrResultResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -32542,41 +41009,41 @@ func (p *ExperimentServiceBatchDeleteExperimentsResult) Field0DeepEqual(src *Bat return true } -type ExperimentServiceCloneExperimentArgs struct { - Req *CloneExperimentRequest `thrift:"req,1" frugal:"1,default,CloneExperimentRequest"` +type ExperimentServiceInvokeExperimentArgs struct { + Req *InvokeExperimentRequest `thrift:"req,1" frugal:"1,default,InvokeExperimentRequest"` } -func NewExperimentServiceCloneExperimentArgs() *ExperimentServiceCloneExperimentArgs { - return &ExperimentServiceCloneExperimentArgs{} +func NewExperimentServiceInvokeExperimentArgs() *ExperimentServiceInvokeExperimentArgs { + return &ExperimentServiceInvokeExperimentArgs{} } -func (p *ExperimentServiceCloneExperimentArgs) InitDefault() { +func (p *ExperimentServiceInvokeExperimentArgs) InitDefault() { } -var ExperimentServiceCloneExperimentArgs_Req_DEFAULT *CloneExperimentRequest +var ExperimentServiceInvokeExperimentArgs_Req_DEFAULT *InvokeExperimentRequest -func (p *ExperimentServiceCloneExperimentArgs) GetReq() (v *CloneExperimentRequest) { +func (p *ExperimentServiceInvokeExperimentArgs) GetReq() (v *InvokeExperimentRequest) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceCloneExperimentArgs_Req_DEFAULT + return ExperimentServiceInvokeExperimentArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceCloneExperimentArgs) SetReq(val *CloneExperimentRequest) { +func (p *ExperimentServiceInvokeExperimentArgs) SetReq(val *InvokeExperimentRequest) { p.Req = val } -var fieldIDToName_ExperimentServiceCloneExperimentArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceInvokeExperimentArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceCloneExperimentArgs) IsSetReq() bool { +func (p *ExperimentServiceInvokeExperimentArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceCloneExperimentArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceInvokeExperimentArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -32621,7 +41088,7 @@ ReadStructBeginError: 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_ExperimentServiceCloneExperimentArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceInvokeExperimentArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -32631,8 +41098,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceCloneExperimentArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewCloneExperimentRequest() +func (p *ExperimentServiceInvokeExperimentArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewInvokeExperimentRequest() if err := _field.Read(iprot); err != nil { return err } @@ -32640,9 +41107,9 @@ func (p *ExperimentServiceCloneExperimentArgs) ReadField1(iprot thrift.TProtocol return nil } -func (p *ExperimentServiceCloneExperimentArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceInvokeExperimentArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("CloneExperiment_args"); err != nil { + if err = oprot.WriteStructBegin("InvokeExperiment_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -32668,7 +41135,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceCloneExperimentArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceInvokeExperimentArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -32685,15 +41152,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceCloneExperimentArgs) String() string { +func (p *ExperimentServiceInvokeExperimentArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceCloneExperimentArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceInvokeExperimentArgs(%+v)", *p) } -func (p *ExperimentServiceCloneExperimentArgs) DeepEqual(ano *ExperimentServiceCloneExperimentArgs) bool { +func (p *ExperimentServiceInvokeExperimentArgs) DeepEqual(ano *ExperimentServiceInvokeExperimentArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -32705,7 +41172,7 @@ func (p *ExperimentServiceCloneExperimentArgs) DeepEqual(ano *ExperimentServiceC return true } -func (p *ExperimentServiceCloneExperimentArgs) Field1DeepEqual(src *CloneExperimentRequest) bool { +func (p *ExperimentServiceInvokeExperimentArgs) Field1DeepEqual(src *InvokeExperimentRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -32713,41 +41180,41 @@ func (p *ExperimentServiceCloneExperimentArgs) Field1DeepEqual(src *CloneExperim return true } -type ExperimentServiceCloneExperimentResult struct { - Success *CloneExperimentResponse `thrift:"success,0,optional" frugal:"0,optional,CloneExperimentResponse"` +type ExperimentServiceInvokeExperimentResult struct { + Success *InvokeExperimentResponse `thrift:"success,0,optional" frugal:"0,optional,InvokeExperimentResponse"` } -func NewExperimentServiceCloneExperimentResult() *ExperimentServiceCloneExperimentResult { - return &ExperimentServiceCloneExperimentResult{} +func NewExperimentServiceInvokeExperimentResult() *ExperimentServiceInvokeExperimentResult { + return &ExperimentServiceInvokeExperimentResult{} } -func (p *ExperimentServiceCloneExperimentResult) InitDefault() { +func (p *ExperimentServiceInvokeExperimentResult) InitDefault() { } -var ExperimentServiceCloneExperimentResult_Success_DEFAULT *CloneExperimentResponse +var ExperimentServiceInvokeExperimentResult_Success_DEFAULT *InvokeExperimentResponse -func (p *ExperimentServiceCloneExperimentResult) GetSuccess() (v *CloneExperimentResponse) { +func (p *ExperimentServiceInvokeExperimentResult) GetSuccess() (v *InvokeExperimentResponse) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceCloneExperimentResult_Success_DEFAULT + return ExperimentServiceInvokeExperimentResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceCloneExperimentResult) SetSuccess(x interface{}) { - p.Success = x.(*CloneExperimentResponse) +func (p *ExperimentServiceInvokeExperimentResult) SetSuccess(x interface{}) { + p.Success = x.(*InvokeExperimentResponse) } -var fieldIDToName_ExperimentServiceCloneExperimentResult = map[int16]string{ +var fieldIDToName_ExperimentServiceInvokeExperimentResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceCloneExperimentResult) IsSetSuccess() bool { +func (p *ExperimentServiceInvokeExperimentResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceCloneExperimentResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceInvokeExperimentResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -32792,7 +41259,7 @@ ReadStructBeginError: 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_ExperimentServiceCloneExperimentResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceInvokeExperimentResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -32802,8 +41269,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceCloneExperimentResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewCloneExperimentResponse() +func (p *ExperimentServiceInvokeExperimentResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewInvokeExperimentResponse() if err := _field.Read(iprot); err != nil { return err } @@ -32811,9 +41278,9 @@ func (p *ExperimentServiceCloneExperimentResult) ReadField0(iprot thrift.TProtoc return nil } -func (p *ExperimentServiceCloneExperimentResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceInvokeExperimentResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("CloneExperiment_result"); err != nil { + if err = oprot.WriteStructBegin("InvokeExperiment_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -32839,7 +41306,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceCloneExperimentResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceInvokeExperimentResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -32858,15 +41325,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceCloneExperimentResult) String() string { +func (p *ExperimentServiceInvokeExperimentResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceCloneExperimentResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceInvokeExperimentResult(%+v)", *p) } -func (p *ExperimentServiceCloneExperimentResult) DeepEqual(ano *ExperimentServiceCloneExperimentResult) bool { +func (p *ExperimentServiceInvokeExperimentResult) DeepEqual(ano *ExperimentServiceInvokeExperimentResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -32878,7 +41345,7 @@ func (p *ExperimentServiceCloneExperimentResult) DeepEqual(ano *ExperimentServic return true } -func (p *ExperimentServiceCloneExperimentResult) Field0DeepEqual(src *CloneExperimentResponse) bool { +func (p *ExperimentServiceInvokeExperimentResult) Field0DeepEqual(src *InvokeExperimentResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -32886,41 +41353,41 @@ func (p *ExperimentServiceCloneExperimentResult) Field0DeepEqual(src *CloneExper return true } -type ExperimentServiceRunExperimentArgs struct { - Req *RunExperimentRequest `thrift:"req,1" frugal:"1,default,RunExperimentRequest"` +type ExperimentServiceFinishExperimentArgs struct { + Req *FinishExperimentRequest `thrift:"req,1" frugal:"1,default,FinishExperimentRequest"` } -func NewExperimentServiceRunExperimentArgs() *ExperimentServiceRunExperimentArgs { - return &ExperimentServiceRunExperimentArgs{} +func NewExperimentServiceFinishExperimentArgs() *ExperimentServiceFinishExperimentArgs { + return &ExperimentServiceFinishExperimentArgs{} } -func (p *ExperimentServiceRunExperimentArgs) InitDefault() { +func (p *ExperimentServiceFinishExperimentArgs) InitDefault() { } -var ExperimentServiceRunExperimentArgs_Req_DEFAULT *RunExperimentRequest +var ExperimentServiceFinishExperimentArgs_Req_DEFAULT *FinishExperimentRequest -func (p *ExperimentServiceRunExperimentArgs) GetReq() (v *RunExperimentRequest) { +func (p *ExperimentServiceFinishExperimentArgs) GetReq() (v *FinishExperimentRequest) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceRunExperimentArgs_Req_DEFAULT + return ExperimentServiceFinishExperimentArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceRunExperimentArgs) SetReq(val *RunExperimentRequest) { +func (p *ExperimentServiceFinishExperimentArgs) SetReq(val *FinishExperimentRequest) { p.Req = val } -var fieldIDToName_ExperimentServiceRunExperimentArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceFinishExperimentArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceRunExperimentArgs) IsSetReq() bool { +func (p *ExperimentServiceFinishExperimentArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceRunExperimentArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceFinishExperimentArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -32965,7 +41432,7 @@ ReadStructBeginError: 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_ExperimentServiceRunExperimentArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceFinishExperimentArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -32975,8 +41442,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceRunExperimentArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewRunExperimentRequest() +func (p *ExperimentServiceFinishExperimentArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewFinishExperimentRequest() if err := _field.Read(iprot); err != nil { return err } @@ -32984,9 +41451,9 @@ func (p *ExperimentServiceRunExperimentArgs) ReadField1(iprot thrift.TProtocol) return nil } -func (p *ExperimentServiceRunExperimentArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceFinishExperimentArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("RunExperiment_args"); err != nil { + if err = oprot.WriteStructBegin("FinishExperiment_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -33012,7 +41479,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceRunExperimentArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceFinishExperimentArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -33029,15 +41496,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceRunExperimentArgs) String() string { +func (p *ExperimentServiceFinishExperimentArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceRunExperimentArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceFinishExperimentArgs(%+v)", *p) } -func (p *ExperimentServiceRunExperimentArgs) DeepEqual(ano *ExperimentServiceRunExperimentArgs) bool { +func (p *ExperimentServiceFinishExperimentArgs) DeepEqual(ano *ExperimentServiceFinishExperimentArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -33049,7 +41516,7 @@ func (p *ExperimentServiceRunExperimentArgs) DeepEqual(ano *ExperimentServiceRun return true } -func (p *ExperimentServiceRunExperimentArgs) Field1DeepEqual(src *RunExperimentRequest) bool { +func (p *ExperimentServiceFinishExperimentArgs) Field1DeepEqual(src *FinishExperimentRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -33057,41 +41524,41 @@ func (p *ExperimentServiceRunExperimentArgs) Field1DeepEqual(src *RunExperimentR return true } -type ExperimentServiceRunExperimentResult struct { - Success *RunExperimentResponse `thrift:"success,0,optional" frugal:"0,optional,RunExperimentResponse"` +type ExperimentServiceFinishExperimentResult struct { + Success *FinishExperimentResponse `thrift:"success,0,optional" frugal:"0,optional,FinishExperimentResponse"` } -func NewExperimentServiceRunExperimentResult() *ExperimentServiceRunExperimentResult { - return &ExperimentServiceRunExperimentResult{} +func NewExperimentServiceFinishExperimentResult() *ExperimentServiceFinishExperimentResult { + return &ExperimentServiceFinishExperimentResult{} } -func (p *ExperimentServiceRunExperimentResult) InitDefault() { +func (p *ExperimentServiceFinishExperimentResult) InitDefault() { } -var ExperimentServiceRunExperimentResult_Success_DEFAULT *RunExperimentResponse +var ExperimentServiceFinishExperimentResult_Success_DEFAULT *FinishExperimentResponse -func (p *ExperimentServiceRunExperimentResult) GetSuccess() (v *RunExperimentResponse) { +func (p *ExperimentServiceFinishExperimentResult) GetSuccess() (v *FinishExperimentResponse) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceRunExperimentResult_Success_DEFAULT + return ExperimentServiceFinishExperimentResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceRunExperimentResult) SetSuccess(x interface{}) { - p.Success = x.(*RunExperimentResponse) +func (p *ExperimentServiceFinishExperimentResult) SetSuccess(x interface{}) { + p.Success = x.(*FinishExperimentResponse) } -var fieldIDToName_ExperimentServiceRunExperimentResult = map[int16]string{ +var fieldIDToName_ExperimentServiceFinishExperimentResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceRunExperimentResult) IsSetSuccess() bool { +func (p *ExperimentServiceFinishExperimentResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceRunExperimentResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceFinishExperimentResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -33136,7 +41603,7 @@ ReadStructBeginError: 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_ExperimentServiceRunExperimentResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceFinishExperimentResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -33146,8 +41613,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceRunExperimentResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewRunExperimentResponse() +func (p *ExperimentServiceFinishExperimentResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewFinishExperimentResponse() if err := _field.Read(iprot); err != nil { return err } @@ -33155,9 +41622,9 @@ func (p *ExperimentServiceRunExperimentResult) ReadField0(iprot thrift.TProtocol return nil } -func (p *ExperimentServiceRunExperimentResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceFinishExperimentResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("RunExperiment_result"); err != nil { + if err = oprot.WriteStructBegin("FinishExperiment_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -33183,7 +41650,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceRunExperimentResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceFinishExperimentResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -33202,15 +41669,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceRunExperimentResult) String() string { +func (p *ExperimentServiceFinishExperimentResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceRunExperimentResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceFinishExperimentResult(%+v)", *p) } -func (p *ExperimentServiceRunExperimentResult) DeepEqual(ano *ExperimentServiceRunExperimentResult) bool { +func (p *ExperimentServiceFinishExperimentResult) DeepEqual(ano *ExperimentServiceFinishExperimentResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -33222,7 +41689,7 @@ func (p *ExperimentServiceRunExperimentResult) DeepEqual(ano *ExperimentServiceR return true } -func (p *ExperimentServiceRunExperimentResult) Field0DeepEqual(src *RunExperimentResponse) bool { +func (p *ExperimentServiceFinishExperimentResult) Field0DeepEqual(src *FinishExperimentResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -33230,41 +41697,41 @@ func (p *ExperimentServiceRunExperimentResult) Field0DeepEqual(src *RunExperimen return true } -type ExperimentServiceRetryExperimentArgs struct { - Req *RetryExperimentRequest `thrift:"req,1" frugal:"1,default,RetryExperimentRequest"` +type ExperimentServiceListExperimentStatsArgs struct { + Req *ListExperimentStatsRequest `thrift:"req,1" frugal:"1,default,ListExperimentStatsRequest"` } -func NewExperimentServiceRetryExperimentArgs() *ExperimentServiceRetryExperimentArgs { - return &ExperimentServiceRetryExperimentArgs{} +func NewExperimentServiceListExperimentStatsArgs() *ExperimentServiceListExperimentStatsArgs { + return &ExperimentServiceListExperimentStatsArgs{} } -func (p *ExperimentServiceRetryExperimentArgs) InitDefault() { +func (p *ExperimentServiceListExperimentStatsArgs) InitDefault() { } -var ExperimentServiceRetryExperimentArgs_Req_DEFAULT *RetryExperimentRequest +var ExperimentServiceListExperimentStatsArgs_Req_DEFAULT *ListExperimentStatsRequest -func (p *ExperimentServiceRetryExperimentArgs) GetReq() (v *RetryExperimentRequest) { +func (p *ExperimentServiceListExperimentStatsArgs) GetReq() (v *ListExperimentStatsRequest) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceRetryExperimentArgs_Req_DEFAULT + return ExperimentServiceListExperimentStatsArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceRetryExperimentArgs) SetReq(val *RetryExperimentRequest) { +func (p *ExperimentServiceListExperimentStatsArgs) SetReq(val *ListExperimentStatsRequest) { p.Req = val } -var fieldIDToName_ExperimentServiceRetryExperimentArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceListExperimentStatsArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceRetryExperimentArgs) IsSetReq() bool { +func (p *ExperimentServiceListExperimentStatsArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceRetryExperimentArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExperimentStatsArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -33309,7 +41776,7 @@ ReadStructBeginError: 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_ExperimentServiceRetryExperimentArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceListExperimentStatsArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -33319,8 +41786,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceRetryExperimentArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewRetryExperimentRequest() +func (p *ExperimentServiceListExperimentStatsArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewListExperimentStatsRequest() if err := _field.Read(iprot); err != nil { return err } @@ -33328,9 +41795,9 @@ func (p *ExperimentServiceRetryExperimentArgs) ReadField1(iprot thrift.TProtocol return nil } -func (p *ExperimentServiceRetryExperimentArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExperimentStatsArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("RetryExperiment_args"); err != nil { + if err = oprot.WriteStructBegin("ListExperimentStats_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -33356,7 +41823,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceRetryExperimentArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExperimentStatsArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -33373,15 +41840,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceRetryExperimentArgs) String() string { +func (p *ExperimentServiceListExperimentStatsArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceRetryExperimentArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceListExperimentStatsArgs(%+v)", *p) } -func (p *ExperimentServiceRetryExperimentArgs) DeepEqual(ano *ExperimentServiceRetryExperimentArgs) bool { +func (p *ExperimentServiceListExperimentStatsArgs) DeepEqual(ano *ExperimentServiceListExperimentStatsArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -33393,7 +41860,7 @@ func (p *ExperimentServiceRetryExperimentArgs) DeepEqual(ano *ExperimentServiceR return true } -func (p *ExperimentServiceRetryExperimentArgs) Field1DeepEqual(src *RetryExperimentRequest) bool { +func (p *ExperimentServiceListExperimentStatsArgs) Field1DeepEqual(src *ListExperimentStatsRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -33401,41 +41868,41 @@ func (p *ExperimentServiceRetryExperimentArgs) Field1DeepEqual(src *RetryExperim return true } -type ExperimentServiceRetryExperimentResult struct { - Success *RetryExperimentResponse `thrift:"success,0,optional" frugal:"0,optional,RetryExperimentResponse"` +type ExperimentServiceListExperimentStatsResult struct { + Success *ListExperimentStatsResponse `thrift:"success,0,optional" frugal:"0,optional,ListExperimentStatsResponse"` } -func NewExperimentServiceRetryExperimentResult() *ExperimentServiceRetryExperimentResult { - return &ExperimentServiceRetryExperimentResult{} +func NewExperimentServiceListExperimentStatsResult() *ExperimentServiceListExperimentStatsResult { + return &ExperimentServiceListExperimentStatsResult{} } -func (p *ExperimentServiceRetryExperimentResult) InitDefault() { +func (p *ExperimentServiceListExperimentStatsResult) InitDefault() { } -var ExperimentServiceRetryExperimentResult_Success_DEFAULT *RetryExperimentResponse +var ExperimentServiceListExperimentStatsResult_Success_DEFAULT *ListExperimentStatsResponse -func (p *ExperimentServiceRetryExperimentResult) GetSuccess() (v *RetryExperimentResponse) { +func (p *ExperimentServiceListExperimentStatsResult) GetSuccess() (v *ListExperimentStatsResponse) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceRetryExperimentResult_Success_DEFAULT + return ExperimentServiceListExperimentStatsResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceRetryExperimentResult) SetSuccess(x interface{}) { - p.Success = x.(*RetryExperimentResponse) +func (p *ExperimentServiceListExperimentStatsResult) SetSuccess(x interface{}) { + p.Success = x.(*ListExperimentStatsResponse) } -var fieldIDToName_ExperimentServiceRetryExperimentResult = map[int16]string{ +var fieldIDToName_ExperimentServiceListExperimentStatsResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceRetryExperimentResult) IsSetSuccess() bool { +func (p *ExperimentServiceListExperimentStatsResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceRetryExperimentResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExperimentStatsResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -33480,7 +41947,7 @@ ReadStructBeginError: 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_ExperimentServiceRetryExperimentResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceListExperimentStatsResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -33490,8 +41957,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceRetryExperimentResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewRetryExperimentResponse() +func (p *ExperimentServiceListExperimentStatsResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewListExperimentStatsResponse() if err := _field.Read(iprot); err != nil { return err } @@ -33499,9 +41966,9 @@ func (p *ExperimentServiceRetryExperimentResult) ReadField0(iprot thrift.TProtoc return nil } -func (p *ExperimentServiceRetryExperimentResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExperimentStatsResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("RetryExperiment_result"); err != nil { + if err = oprot.WriteStructBegin("ListExperimentStats_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -33527,7 +41994,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceRetryExperimentResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExperimentStatsResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -33546,15 +42013,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceRetryExperimentResult) String() string { +func (p *ExperimentServiceListExperimentStatsResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceRetryExperimentResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceListExperimentStatsResult(%+v)", *p) } -func (p *ExperimentServiceRetryExperimentResult) DeepEqual(ano *ExperimentServiceRetryExperimentResult) bool { +func (p *ExperimentServiceListExperimentStatsResult) DeepEqual(ano *ExperimentServiceListExperimentStatsResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -33566,7 +42033,7 @@ func (p *ExperimentServiceRetryExperimentResult) DeepEqual(ano *ExperimentServic return true } -func (p *ExperimentServiceRetryExperimentResult) Field0DeepEqual(src *RetryExperimentResponse) bool { +func (p *ExperimentServiceListExperimentStatsResult) Field0DeepEqual(src *ListExperimentStatsResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -33574,41 +42041,41 @@ func (p *ExperimentServiceRetryExperimentResult) Field0DeepEqual(src *RetryExper return true } -type ExperimentServiceKillExperimentArgs struct { - Req *KillExperimentRequest `thrift:"req,1" frugal:"1,default,KillExperimentRequest"` +type ExperimentServiceUpsertExptTurnResultFilterArgs struct { + Req *UpsertExptTurnResultFilterRequest `thrift:"req,1" frugal:"1,default,UpsertExptTurnResultFilterRequest"` } -func NewExperimentServiceKillExperimentArgs() *ExperimentServiceKillExperimentArgs { - return &ExperimentServiceKillExperimentArgs{} +func NewExperimentServiceUpsertExptTurnResultFilterArgs() *ExperimentServiceUpsertExptTurnResultFilterArgs { + return &ExperimentServiceUpsertExptTurnResultFilterArgs{} } -func (p *ExperimentServiceKillExperimentArgs) InitDefault() { +func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) InitDefault() { } -var ExperimentServiceKillExperimentArgs_Req_DEFAULT *KillExperimentRequest +var ExperimentServiceUpsertExptTurnResultFilterArgs_Req_DEFAULT *UpsertExptTurnResultFilterRequest -func (p *ExperimentServiceKillExperimentArgs) GetReq() (v *KillExperimentRequest) { +func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) GetReq() (v *UpsertExptTurnResultFilterRequest) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceKillExperimentArgs_Req_DEFAULT + return ExperimentServiceUpsertExptTurnResultFilterArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceKillExperimentArgs) SetReq(val *KillExperimentRequest) { +func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) SetReq(val *UpsertExptTurnResultFilterRequest) { p.Req = val } -var fieldIDToName_ExperimentServiceKillExperimentArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceUpsertExptTurnResultFilterArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceKillExperimentArgs) IsSetReq() bool { +func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceKillExperimentArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -33653,7 +42120,7 @@ ReadStructBeginError: 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_ExperimentServiceKillExperimentArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceUpsertExptTurnResultFilterArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -33663,8 +42130,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceKillExperimentArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewKillExperimentRequest() +func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewUpsertExptTurnResultFilterRequest() if err := _field.Read(iprot); err != nil { return err } @@ -33672,9 +42139,9 @@ func (p *ExperimentServiceKillExperimentArgs) ReadField1(iprot thrift.TProtocol) return nil } -func (p *ExperimentServiceKillExperimentArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("KillExperiment_args"); err != nil { + if err = oprot.WriteStructBegin("UpsertExptTurnResultFilter_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -33700,7 +42167,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceKillExperimentArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -33717,15 +42184,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceKillExperimentArgs) String() string { +func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceKillExperimentArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceUpsertExptTurnResultFilterArgs(%+v)", *p) } -func (p *ExperimentServiceKillExperimentArgs) DeepEqual(ano *ExperimentServiceKillExperimentArgs) bool { +func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) DeepEqual(ano *ExperimentServiceUpsertExptTurnResultFilterArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -33737,7 +42204,7 @@ func (p *ExperimentServiceKillExperimentArgs) DeepEqual(ano *ExperimentServiceKi return true } -func (p *ExperimentServiceKillExperimentArgs) Field1DeepEqual(src *KillExperimentRequest) bool { +func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) Field1DeepEqual(src *UpsertExptTurnResultFilterRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -33745,41 +42212,41 @@ func (p *ExperimentServiceKillExperimentArgs) Field1DeepEqual(src *KillExperimen return true } -type ExperimentServiceKillExperimentResult struct { - Success *KillExperimentResponse `thrift:"success,0,optional" frugal:"0,optional,KillExperimentResponse"` +type ExperimentServiceUpsertExptTurnResultFilterResult struct { + Success *UpsertExptTurnResultFilterResponse `thrift:"success,0,optional" frugal:"0,optional,UpsertExptTurnResultFilterResponse"` } -func NewExperimentServiceKillExperimentResult() *ExperimentServiceKillExperimentResult { - return &ExperimentServiceKillExperimentResult{} +func NewExperimentServiceUpsertExptTurnResultFilterResult() *ExperimentServiceUpsertExptTurnResultFilterResult { + return &ExperimentServiceUpsertExptTurnResultFilterResult{} } -func (p *ExperimentServiceKillExperimentResult) InitDefault() { +func (p *ExperimentServiceUpsertExptTurnResultFilterResult) InitDefault() { } -var ExperimentServiceKillExperimentResult_Success_DEFAULT *KillExperimentResponse +var ExperimentServiceUpsertExptTurnResultFilterResult_Success_DEFAULT *UpsertExptTurnResultFilterResponse -func (p *ExperimentServiceKillExperimentResult) GetSuccess() (v *KillExperimentResponse) { +func (p *ExperimentServiceUpsertExptTurnResultFilterResult) GetSuccess() (v *UpsertExptTurnResultFilterResponse) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceKillExperimentResult_Success_DEFAULT + return ExperimentServiceUpsertExptTurnResultFilterResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceKillExperimentResult) SetSuccess(x interface{}) { - p.Success = x.(*KillExperimentResponse) +func (p *ExperimentServiceUpsertExptTurnResultFilterResult) SetSuccess(x interface{}) { + p.Success = x.(*UpsertExptTurnResultFilterResponse) } -var fieldIDToName_ExperimentServiceKillExperimentResult = map[int16]string{ +var fieldIDToName_ExperimentServiceUpsertExptTurnResultFilterResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceKillExperimentResult) IsSetSuccess() bool { +func (p *ExperimentServiceUpsertExptTurnResultFilterResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceKillExperimentResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceUpsertExptTurnResultFilterResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -33824,7 +42291,7 @@ ReadStructBeginError: 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_ExperimentServiceKillExperimentResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceUpsertExptTurnResultFilterResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -33834,8 +42301,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceKillExperimentResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewKillExperimentResponse() +func (p *ExperimentServiceUpsertExptTurnResultFilterResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewUpsertExptTurnResultFilterResponse() if err := _field.Read(iprot); err != nil { return err } @@ -33843,9 +42310,9 @@ func (p *ExperimentServiceKillExperimentResult) ReadField0(iprot thrift.TProtoco return nil } -func (p *ExperimentServiceKillExperimentResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceUpsertExptTurnResultFilterResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("KillExperiment_result"); err != nil { + if err = oprot.WriteStructBegin("UpsertExptTurnResultFilter_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -33871,7 +42338,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceKillExperimentResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceUpsertExptTurnResultFilterResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -33890,15 +42357,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceKillExperimentResult) String() string { +func (p *ExperimentServiceUpsertExptTurnResultFilterResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceKillExperimentResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceUpsertExptTurnResultFilterResult(%+v)", *p) } -func (p *ExperimentServiceKillExperimentResult) DeepEqual(ano *ExperimentServiceKillExperimentResult) bool { +func (p *ExperimentServiceUpsertExptTurnResultFilterResult) DeepEqual(ano *ExperimentServiceUpsertExptTurnResultFilterResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -33910,7 +42377,7 @@ func (p *ExperimentServiceKillExperimentResult) DeepEqual(ano *ExperimentService return true } -func (p *ExperimentServiceKillExperimentResult) Field0DeepEqual(src *KillExperimentResponse) bool { +func (p *ExperimentServiceUpsertExptTurnResultFilterResult) Field0DeepEqual(src *UpsertExptTurnResultFilterResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -33918,41 +42385,41 @@ func (p *ExperimentServiceKillExperimentResult) Field0DeepEqual(src *KillExperim return true } -type ExperimentServiceBatchGetExperimentResultArgs struct { - Req *BatchGetExperimentResultRequest `thrift:"req,1" frugal:"1,default,BatchGetExperimentResultRequest"` +type ExperimentServiceAssociateAnnotationTagArgs struct { + Req *AssociateAnnotationTagReq `thrift:"req,1" frugal:"1,default,AssociateAnnotationTagReq"` } -func NewExperimentServiceBatchGetExperimentResultArgs() *ExperimentServiceBatchGetExperimentResultArgs { - return &ExperimentServiceBatchGetExperimentResultArgs{} +func NewExperimentServiceAssociateAnnotationTagArgs() *ExperimentServiceAssociateAnnotationTagArgs { + return &ExperimentServiceAssociateAnnotationTagArgs{} } -func (p *ExperimentServiceBatchGetExperimentResultArgs) InitDefault() { +func (p *ExperimentServiceAssociateAnnotationTagArgs) InitDefault() { } -var ExperimentServiceBatchGetExperimentResultArgs_Req_DEFAULT *BatchGetExperimentResultRequest +var ExperimentServiceAssociateAnnotationTagArgs_Req_DEFAULT *AssociateAnnotationTagReq -func (p *ExperimentServiceBatchGetExperimentResultArgs) GetReq() (v *BatchGetExperimentResultRequest) { +func (p *ExperimentServiceAssociateAnnotationTagArgs) GetReq() (v *AssociateAnnotationTagReq) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceBatchGetExperimentResultArgs_Req_DEFAULT + return ExperimentServiceAssociateAnnotationTagArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceBatchGetExperimentResultArgs) SetReq(val *BatchGetExperimentResultRequest) { +func (p *ExperimentServiceAssociateAnnotationTagArgs) SetReq(val *AssociateAnnotationTagReq) { p.Req = val } -var fieldIDToName_ExperimentServiceBatchGetExperimentResultArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceAssociateAnnotationTagArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceBatchGetExperimentResultArgs) IsSetReq() bool { +func (p *ExperimentServiceAssociateAnnotationTagArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceBatchGetExperimentResultArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceAssociateAnnotationTagArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -33997,7 +42464,7 @@ ReadStructBeginError: 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_ExperimentServiceBatchGetExperimentResultArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceAssociateAnnotationTagArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -34007,8 +42474,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceBatchGetExperimentResultArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewBatchGetExperimentResultRequest() +func (p *ExperimentServiceAssociateAnnotationTagArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewAssociateAnnotationTagReq() if err := _field.Read(iprot); err != nil { return err } @@ -34016,9 +42483,9 @@ func (p *ExperimentServiceBatchGetExperimentResultArgs) ReadField1(iprot thrift. return nil } -func (p *ExperimentServiceBatchGetExperimentResultArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceAssociateAnnotationTagArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("BatchGetExperimentResult_args"); err != nil { + if err = oprot.WriteStructBegin("AssociateAnnotationTag_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -34044,7 +42511,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceBatchGetExperimentResultArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceAssociateAnnotationTagArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -34061,15 +42528,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceBatchGetExperimentResultArgs) String() string { +func (p *ExperimentServiceAssociateAnnotationTagArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceBatchGetExperimentResultArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceAssociateAnnotationTagArgs(%+v)", *p) } -func (p *ExperimentServiceBatchGetExperimentResultArgs) DeepEqual(ano *ExperimentServiceBatchGetExperimentResultArgs) bool { +func (p *ExperimentServiceAssociateAnnotationTagArgs) DeepEqual(ano *ExperimentServiceAssociateAnnotationTagArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -34081,7 +42548,7 @@ func (p *ExperimentServiceBatchGetExperimentResultArgs) DeepEqual(ano *Experimen return true } -func (p *ExperimentServiceBatchGetExperimentResultArgs) Field1DeepEqual(src *BatchGetExperimentResultRequest) bool { +func (p *ExperimentServiceAssociateAnnotationTagArgs) Field1DeepEqual(src *AssociateAnnotationTagReq) bool { if !p.Req.DeepEqual(src) { return false @@ -34089,41 +42556,41 @@ func (p *ExperimentServiceBatchGetExperimentResultArgs) Field1DeepEqual(src *Bat return true } -type ExperimentServiceBatchGetExperimentResultResult struct { - Success *BatchGetExperimentResultResponse `thrift:"success,0,optional" frugal:"0,optional,BatchGetExperimentResultResponse"` +type ExperimentServiceAssociateAnnotationTagResult struct { + Success *AssociateAnnotationTagResp `thrift:"success,0,optional" frugal:"0,optional,AssociateAnnotationTagResp"` } -func NewExperimentServiceBatchGetExperimentResultResult() *ExperimentServiceBatchGetExperimentResultResult { - return &ExperimentServiceBatchGetExperimentResultResult{} +func NewExperimentServiceAssociateAnnotationTagResult() *ExperimentServiceAssociateAnnotationTagResult { + return &ExperimentServiceAssociateAnnotationTagResult{} } -func (p *ExperimentServiceBatchGetExperimentResultResult) InitDefault() { +func (p *ExperimentServiceAssociateAnnotationTagResult) InitDefault() { } -var ExperimentServiceBatchGetExperimentResultResult_Success_DEFAULT *BatchGetExperimentResultResponse +var ExperimentServiceAssociateAnnotationTagResult_Success_DEFAULT *AssociateAnnotationTagResp -func (p *ExperimentServiceBatchGetExperimentResultResult) GetSuccess() (v *BatchGetExperimentResultResponse) { +func (p *ExperimentServiceAssociateAnnotationTagResult) GetSuccess() (v *AssociateAnnotationTagResp) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceBatchGetExperimentResultResult_Success_DEFAULT + return ExperimentServiceAssociateAnnotationTagResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceBatchGetExperimentResultResult) SetSuccess(x interface{}) { - p.Success = x.(*BatchGetExperimentResultResponse) +func (p *ExperimentServiceAssociateAnnotationTagResult) SetSuccess(x interface{}) { + p.Success = x.(*AssociateAnnotationTagResp) } -var fieldIDToName_ExperimentServiceBatchGetExperimentResultResult = map[int16]string{ +var fieldIDToName_ExperimentServiceAssociateAnnotationTagResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceBatchGetExperimentResultResult) IsSetSuccess() bool { +func (p *ExperimentServiceAssociateAnnotationTagResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceBatchGetExperimentResultResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceAssociateAnnotationTagResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -34168,7 +42635,7 @@ ReadStructBeginError: 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_ExperimentServiceBatchGetExperimentResultResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceAssociateAnnotationTagResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -34178,8 +42645,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceBatchGetExperimentResultResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewBatchGetExperimentResultResponse() +func (p *ExperimentServiceAssociateAnnotationTagResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewAssociateAnnotationTagResp() if err := _field.Read(iprot); err != nil { return err } @@ -34187,9 +42654,9 @@ func (p *ExperimentServiceBatchGetExperimentResultResult) ReadField0(iprot thrif return nil } -func (p *ExperimentServiceBatchGetExperimentResultResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceAssociateAnnotationTagResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("BatchGetExperimentResult_result"); err != nil { + if err = oprot.WriteStructBegin("AssociateAnnotationTag_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -34215,7 +42682,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceBatchGetExperimentResultResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceAssociateAnnotationTagResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -34234,15 +42701,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceBatchGetExperimentResultResult) String() string { +func (p *ExperimentServiceAssociateAnnotationTagResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceBatchGetExperimentResultResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceAssociateAnnotationTagResult(%+v)", *p) } -func (p *ExperimentServiceBatchGetExperimentResultResult) DeepEqual(ano *ExperimentServiceBatchGetExperimentResultResult) bool { +func (p *ExperimentServiceAssociateAnnotationTagResult) DeepEqual(ano *ExperimentServiceAssociateAnnotationTagResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -34254,7 +42721,7 @@ func (p *ExperimentServiceBatchGetExperimentResultResult) DeepEqual(ano *Experim return true } -func (p *ExperimentServiceBatchGetExperimentResultResult) Field0DeepEqual(src *BatchGetExperimentResultResponse) bool { +func (p *ExperimentServiceAssociateAnnotationTagResult) Field0DeepEqual(src *AssociateAnnotationTagResp) bool { if !p.Success.DeepEqual(src) { return false @@ -34262,41 +42729,41 @@ func (p *ExperimentServiceBatchGetExperimentResultResult) Field0DeepEqual(src *B return true } -type ExperimentServiceCalculateExperimentAggrResultArgs struct { - Req *CalculateExperimentAggrResultRequest `thrift:"req,1" frugal:"1,default,CalculateExperimentAggrResultRequest"` +type ExperimentServiceDeleteAnnotationTagArgs struct { + Req *DeleteAnnotationTagReq `thrift:"req,1" frugal:"1,default,DeleteAnnotationTagReq"` } -func NewExperimentServiceCalculateExperimentAggrResultArgs() *ExperimentServiceCalculateExperimentAggrResultArgs { - return &ExperimentServiceCalculateExperimentAggrResultArgs{} +func NewExperimentServiceDeleteAnnotationTagArgs() *ExperimentServiceDeleteAnnotationTagArgs { + return &ExperimentServiceDeleteAnnotationTagArgs{} } -func (p *ExperimentServiceCalculateExperimentAggrResultArgs) InitDefault() { +func (p *ExperimentServiceDeleteAnnotationTagArgs) InitDefault() { } -var ExperimentServiceCalculateExperimentAggrResultArgs_Req_DEFAULT *CalculateExperimentAggrResultRequest +var ExperimentServiceDeleteAnnotationTagArgs_Req_DEFAULT *DeleteAnnotationTagReq -func (p *ExperimentServiceCalculateExperimentAggrResultArgs) GetReq() (v *CalculateExperimentAggrResultRequest) { +func (p *ExperimentServiceDeleteAnnotationTagArgs) GetReq() (v *DeleteAnnotationTagReq) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceCalculateExperimentAggrResultArgs_Req_DEFAULT + return ExperimentServiceDeleteAnnotationTagArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceCalculateExperimentAggrResultArgs) SetReq(val *CalculateExperimentAggrResultRequest) { +func (p *ExperimentServiceDeleteAnnotationTagArgs) SetReq(val *DeleteAnnotationTagReq) { p.Req = val } -var fieldIDToName_ExperimentServiceCalculateExperimentAggrResultArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceDeleteAnnotationTagArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceCalculateExperimentAggrResultArgs) IsSetReq() bool { +func (p *ExperimentServiceDeleteAnnotationTagArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceCalculateExperimentAggrResultArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceDeleteAnnotationTagArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -34341,7 +42808,7 @@ ReadStructBeginError: 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_ExperimentServiceCalculateExperimentAggrResultArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceDeleteAnnotationTagArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -34351,8 +42818,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceCalculateExperimentAggrResultArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewCalculateExperimentAggrResultRequest() +func (p *ExperimentServiceDeleteAnnotationTagArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewDeleteAnnotationTagReq() if err := _field.Read(iprot); err != nil { return err } @@ -34360,9 +42827,9 @@ func (p *ExperimentServiceCalculateExperimentAggrResultArgs) ReadField1(iprot th return nil } -func (p *ExperimentServiceCalculateExperimentAggrResultArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceDeleteAnnotationTagArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("CalculateExperimentAggrResult_args"); err != nil { + if err = oprot.WriteStructBegin("DeleteAnnotationTag_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -34388,7 +42855,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceCalculateExperimentAggrResultArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceDeleteAnnotationTagArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -34405,15 +42872,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceCalculateExperimentAggrResultArgs) String() string { +func (p *ExperimentServiceDeleteAnnotationTagArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceCalculateExperimentAggrResultArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceDeleteAnnotationTagArgs(%+v)", *p) } -func (p *ExperimentServiceCalculateExperimentAggrResultArgs) DeepEqual(ano *ExperimentServiceCalculateExperimentAggrResultArgs) bool { +func (p *ExperimentServiceDeleteAnnotationTagArgs) DeepEqual(ano *ExperimentServiceDeleteAnnotationTagArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -34425,7 +42892,7 @@ func (p *ExperimentServiceCalculateExperimentAggrResultArgs) DeepEqual(ano *Expe return true } -func (p *ExperimentServiceCalculateExperimentAggrResultArgs) Field1DeepEqual(src *CalculateExperimentAggrResultRequest) bool { +func (p *ExperimentServiceDeleteAnnotationTagArgs) Field1DeepEqual(src *DeleteAnnotationTagReq) bool { if !p.Req.DeepEqual(src) { return false @@ -34433,41 +42900,41 @@ func (p *ExperimentServiceCalculateExperimentAggrResultArgs) Field1DeepEqual(src return true } -type ExperimentServiceCalculateExperimentAggrResultResult struct { - Success *CalculateExperimentAggrResultResponse `thrift:"success,0,optional" frugal:"0,optional,CalculateExperimentAggrResultResponse"` +type ExperimentServiceDeleteAnnotationTagResult struct { + Success *DeleteAnnotationTagResp `thrift:"success,0,optional" frugal:"0,optional,DeleteAnnotationTagResp"` } -func NewExperimentServiceCalculateExperimentAggrResultResult() *ExperimentServiceCalculateExperimentAggrResultResult { - return &ExperimentServiceCalculateExperimentAggrResultResult{} +func NewExperimentServiceDeleteAnnotationTagResult() *ExperimentServiceDeleteAnnotationTagResult { + return &ExperimentServiceDeleteAnnotationTagResult{} } -func (p *ExperimentServiceCalculateExperimentAggrResultResult) InitDefault() { +func (p *ExperimentServiceDeleteAnnotationTagResult) InitDefault() { } -var ExperimentServiceCalculateExperimentAggrResultResult_Success_DEFAULT *CalculateExperimentAggrResultResponse +var ExperimentServiceDeleteAnnotationTagResult_Success_DEFAULT *DeleteAnnotationTagResp -func (p *ExperimentServiceCalculateExperimentAggrResultResult) GetSuccess() (v *CalculateExperimentAggrResultResponse) { +func (p *ExperimentServiceDeleteAnnotationTagResult) GetSuccess() (v *DeleteAnnotationTagResp) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceCalculateExperimentAggrResultResult_Success_DEFAULT + return ExperimentServiceDeleteAnnotationTagResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceCalculateExperimentAggrResultResult) SetSuccess(x interface{}) { - p.Success = x.(*CalculateExperimentAggrResultResponse) +func (p *ExperimentServiceDeleteAnnotationTagResult) SetSuccess(x interface{}) { + p.Success = x.(*DeleteAnnotationTagResp) } -var fieldIDToName_ExperimentServiceCalculateExperimentAggrResultResult = map[int16]string{ +var fieldIDToName_ExperimentServiceDeleteAnnotationTagResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceCalculateExperimentAggrResultResult) IsSetSuccess() bool { +func (p *ExperimentServiceDeleteAnnotationTagResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceCalculateExperimentAggrResultResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceDeleteAnnotationTagResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -34512,7 +42979,7 @@ ReadStructBeginError: 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_ExperimentServiceCalculateExperimentAggrResultResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceDeleteAnnotationTagResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -34522,8 +42989,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceCalculateExperimentAggrResultResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewCalculateExperimentAggrResultResponse() +func (p *ExperimentServiceDeleteAnnotationTagResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewDeleteAnnotationTagResp() if err := _field.Read(iprot); err != nil { return err } @@ -34531,9 +42998,9 @@ func (p *ExperimentServiceCalculateExperimentAggrResultResult) ReadField0(iprot return nil } -func (p *ExperimentServiceCalculateExperimentAggrResultResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceDeleteAnnotationTagResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("CalculateExperimentAggrResult_result"); err != nil { + if err = oprot.WriteStructBegin("DeleteAnnotationTag_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -34559,7 +43026,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceCalculateExperimentAggrResultResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceDeleteAnnotationTagResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -34578,15 +43045,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceCalculateExperimentAggrResultResult) String() string { +func (p *ExperimentServiceDeleteAnnotationTagResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceCalculateExperimentAggrResultResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceDeleteAnnotationTagResult(%+v)", *p) } -func (p *ExperimentServiceCalculateExperimentAggrResultResult) DeepEqual(ano *ExperimentServiceCalculateExperimentAggrResultResult) bool { +func (p *ExperimentServiceDeleteAnnotationTagResult) DeepEqual(ano *ExperimentServiceDeleteAnnotationTagResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -34598,7 +43065,7 @@ func (p *ExperimentServiceCalculateExperimentAggrResultResult) DeepEqual(ano *Ex return true } -func (p *ExperimentServiceCalculateExperimentAggrResultResult) Field0DeepEqual(src *CalculateExperimentAggrResultResponse) bool { +func (p *ExperimentServiceDeleteAnnotationTagResult) Field0DeepEqual(src *DeleteAnnotationTagResp) bool { if !p.Success.DeepEqual(src) { return false @@ -34606,41 +43073,41 @@ func (p *ExperimentServiceCalculateExperimentAggrResultResult) Field0DeepEqual(s return true } -type ExperimentServiceBatchGetExperimentAggrResultArgs struct { - Req *BatchGetExperimentAggrResultRequest `thrift:"req,1" frugal:"1,default,BatchGetExperimentAggrResultRequest"` +type ExperimentServiceCreateAnnotateRecordArgs struct { + Req *CreateAnnotateRecordReq `thrift:"req,1" frugal:"1,default,CreateAnnotateRecordReq"` } -func NewExperimentServiceBatchGetExperimentAggrResultArgs() *ExperimentServiceBatchGetExperimentAggrResultArgs { - return &ExperimentServiceBatchGetExperimentAggrResultArgs{} +func NewExperimentServiceCreateAnnotateRecordArgs() *ExperimentServiceCreateAnnotateRecordArgs { + return &ExperimentServiceCreateAnnotateRecordArgs{} } -func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) InitDefault() { +func (p *ExperimentServiceCreateAnnotateRecordArgs) InitDefault() { } -var ExperimentServiceBatchGetExperimentAggrResultArgs_Req_DEFAULT *BatchGetExperimentAggrResultRequest +var ExperimentServiceCreateAnnotateRecordArgs_Req_DEFAULT *CreateAnnotateRecordReq -func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) GetReq() (v *BatchGetExperimentAggrResultRequest) { +func (p *ExperimentServiceCreateAnnotateRecordArgs) GetReq() (v *CreateAnnotateRecordReq) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceBatchGetExperimentAggrResultArgs_Req_DEFAULT + return ExperimentServiceCreateAnnotateRecordArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) SetReq(val *BatchGetExperimentAggrResultRequest) { +func (p *ExperimentServiceCreateAnnotateRecordArgs) SetReq(val *CreateAnnotateRecordReq) { p.Req = val } -var fieldIDToName_ExperimentServiceBatchGetExperimentAggrResultArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceCreateAnnotateRecordArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) IsSetReq() bool { +func (p *ExperimentServiceCreateAnnotateRecordArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCreateAnnotateRecordArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -34685,7 +43152,7 @@ ReadStructBeginError: 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_ExperimentServiceBatchGetExperimentAggrResultArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceCreateAnnotateRecordArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -34695,8 +43162,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewBatchGetExperimentAggrResultRequest() +func (p *ExperimentServiceCreateAnnotateRecordArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewCreateAnnotateRecordReq() if err := _field.Read(iprot); err != nil { return err } @@ -34704,9 +43171,9 @@ func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) ReadField1(iprot thr return nil } -func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCreateAnnotateRecordArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("BatchGetExperimentAggrResult_args"); err != nil { + if err = oprot.WriteStructBegin("CreateAnnotateRecord_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -34732,7 +43199,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCreateAnnotateRecordArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -34749,15 +43216,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) String() string { +func (p *ExperimentServiceCreateAnnotateRecordArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceBatchGetExperimentAggrResultArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceCreateAnnotateRecordArgs(%+v)", *p) } -func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) DeepEqual(ano *ExperimentServiceBatchGetExperimentAggrResultArgs) bool { +func (p *ExperimentServiceCreateAnnotateRecordArgs) DeepEqual(ano *ExperimentServiceCreateAnnotateRecordArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -34769,7 +43236,7 @@ func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) DeepEqual(ano *Exper return true } -func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) Field1DeepEqual(src *BatchGetExperimentAggrResultRequest) bool { +func (p *ExperimentServiceCreateAnnotateRecordArgs) Field1DeepEqual(src *CreateAnnotateRecordReq) bool { if !p.Req.DeepEqual(src) { return false @@ -34777,41 +43244,41 @@ func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) Field1DeepEqual(src return true } -type ExperimentServiceBatchGetExperimentAggrResultResult struct { - Success *BatchGetExperimentAggrResultResponse `thrift:"success,0,optional" frugal:"0,optional,BatchGetExperimentAggrResultResponse"` +type ExperimentServiceCreateAnnotateRecordResult struct { + Success *CreateAnnotateRecordResp `thrift:"success,0,optional" frugal:"0,optional,CreateAnnotateRecordResp"` } -func NewExperimentServiceBatchGetExperimentAggrResultResult() *ExperimentServiceBatchGetExperimentAggrResultResult { - return &ExperimentServiceBatchGetExperimentAggrResultResult{} +func NewExperimentServiceCreateAnnotateRecordResult() *ExperimentServiceCreateAnnotateRecordResult { + return &ExperimentServiceCreateAnnotateRecordResult{} } -func (p *ExperimentServiceBatchGetExperimentAggrResultResult) InitDefault() { +func (p *ExperimentServiceCreateAnnotateRecordResult) InitDefault() { } -var ExperimentServiceBatchGetExperimentAggrResultResult_Success_DEFAULT *BatchGetExperimentAggrResultResponse +var ExperimentServiceCreateAnnotateRecordResult_Success_DEFAULT *CreateAnnotateRecordResp -func (p *ExperimentServiceBatchGetExperimentAggrResultResult) GetSuccess() (v *BatchGetExperimentAggrResultResponse) { +func (p *ExperimentServiceCreateAnnotateRecordResult) GetSuccess() (v *CreateAnnotateRecordResp) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceBatchGetExperimentAggrResultResult_Success_DEFAULT + return ExperimentServiceCreateAnnotateRecordResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceBatchGetExperimentAggrResultResult) SetSuccess(x interface{}) { - p.Success = x.(*BatchGetExperimentAggrResultResponse) +func (p *ExperimentServiceCreateAnnotateRecordResult) SetSuccess(x interface{}) { + p.Success = x.(*CreateAnnotateRecordResp) } -var fieldIDToName_ExperimentServiceBatchGetExperimentAggrResultResult = map[int16]string{ +var fieldIDToName_ExperimentServiceCreateAnnotateRecordResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceBatchGetExperimentAggrResultResult) IsSetSuccess() bool { +func (p *ExperimentServiceCreateAnnotateRecordResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceBatchGetExperimentAggrResultResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCreateAnnotateRecordResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -34856,7 +43323,7 @@ ReadStructBeginError: 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_ExperimentServiceBatchGetExperimentAggrResultResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceCreateAnnotateRecordResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -34866,8 +43333,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceBatchGetExperimentAggrResultResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewBatchGetExperimentAggrResultResponse() +func (p *ExperimentServiceCreateAnnotateRecordResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewCreateAnnotateRecordResp() if err := _field.Read(iprot); err != nil { return err } @@ -34875,9 +43342,9 @@ func (p *ExperimentServiceBatchGetExperimentAggrResultResult) ReadField0(iprot t return nil } -func (p *ExperimentServiceBatchGetExperimentAggrResultResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCreateAnnotateRecordResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("BatchGetExperimentAggrResult_result"); err != nil { + if err = oprot.WriteStructBegin("CreateAnnotateRecord_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -34903,7 +43370,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceBatchGetExperimentAggrResultResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCreateAnnotateRecordResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -34922,15 +43389,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceBatchGetExperimentAggrResultResult) String() string { +func (p *ExperimentServiceCreateAnnotateRecordResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceBatchGetExperimentAggrResultResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceCreateAnnotateRecordResult(%+v)", *p) } -func (p *ExperimentServiceBatchGetExperimentAggrResultResult) DeepEqual(ano *ExperimentServiceBatchGetExperimentAggrResultResult) bool { +func (p *ExperimentServiceCreateAnnotateRecordResult) DeepEqual(ano *ExperimentServiceCreateAnnotateRecordResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -34942,7 +43409,7 @@ func (p *ExperimentServiceBatchGetExperimentAggrResultResult) DeepEqual(ano *Exp return true } -func (p *ExperimentServiceBatchGetExperimentAggrResultResult) Field0DeepEqual(src *BatchGetExperimentAggrResultResponse) bool { +func (p *ExperimentServiceCreateAnnotateRecordResult) Field0DeepEqual(src *CreateAnnotateRecordResp) bool { if !p.Success.DeepEqual(src) { return false @@ -34950,41 +43417,41 @@ func (p *ExperimentServiceBatchGetExperimentAggrResultResult) Field0DeepEqual(sr return true } -type ExperimentServiceInvokeExperimentArgs struct { - Req *InvokeExperimentRequest `thrift:"req,1" frugal:"1,default,InvokeExperimentRequest"` +type ExperimentServiceUpdateAnnotateRecordArgs struct { + Req *UpdateAnnotateRecordReq `thrift:"req,1" frugal:"1,default,UpdateAnnotateRecordReq"` } -func NewExperimentServiceInvokeExperimentArgs() *ExperimentServiceInvokeExperimentArgs { - return &ExperimentServiceInvokeExperimentArgs{} +func NewExperimentServiceUpdateAnnotateRecordArgs() *ExperimentServiceUpdateAnnotateRecordArgs { + return &ExperimentServiceUpdateAnnotateRecordArgs{} } -func (p *ExperimentServiceInvokeExperimentArgs) InitDefault() { +func (p *ExperimentServiceUpdateAnnotateRecordArgs) InitDefault() { } -var ExperimentServiceInvokeExperimentArgs_Req_DEFAULT *InvokeExperimentRequest +var ExperimentServiceUpdateAnnotateRecordArgs_Req_DEFAULT *UpdateAnnotateRecordReq -func (p *ExperimentServiceInvokeExperimentArgs) GetReq() (v *InvokeExperimentRequest) { +func (p *ExperimentServiceUpdateAnnotateRecordArgs) GetReq() (v *UpdateAnnotateRecordReq) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceInvokeExperimentArgs_Req_DEFAULT + return ExperimentServiceUpdateAnnotateRecordArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceInvokeExperimentArgs) SetReq(val *InvokeExperimentRequest) { +func (p *ExperimentServiceUpdateAnnotateRecordArgs) SetReq(val *UpdateAnnotateRecordReq) { p.Req = val } -var fieldIDToName_ExperimentServiceInvokeExperimentArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceUpdateAnnotateRecordArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceInvokeExperimentArgs) IsSetReq() bool { +func (p *ExperimentServiceUpdateAnnotateRecordArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceInvokeExperimentArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceUpdateAnnotateRecordArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -35029,7 +43496,7 @@ ReadStructBeginError: 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_ExperimentServiceInvokeExperimentArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceUpdateAnnotateRecordArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -35039,8 +43506,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceInvokeExperimentArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewInvokeExperimentRequest() +func (p *ExperimentServiceUpdateAnnotateRecordArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewUpdateAnnotateRecordReq() if err := _field.Read(iprot); err != nil { return err } @@ -35048,9 +43515,9 @@ func (p *ExperimentServiceInvokeExperimentArgs) ReadField1(iprot thrift.TProtoco return nil } -func (p *ExperimentServiceInvokeExperimentArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceUpdateAnnotateRecordArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("InvokeExperiment_args"); err != nil { + if err = oprot.WriteStructBegin("UpdateAnnotateRecord_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -35076,7 +43543,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceInvokeExperimentArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceUpdateAnnotateRecordArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -35093,15 +43560,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceInvokeExperimentArgs) String() string { +func (p *ExperimentServiceUpdateAnnotateRecordArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceInvokeExperimentArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceUpdateAnnotateRecordArgs(%+v)", *p) } -func (p *ExperimentServiceInvokeExperimentArgs) DeepEqual(ano *ExperimentServiceInvokeExperimentArgs) bool { +func (p *ExperimentServiceUpdateAnnotateRecordArgs) DeepEqual(ano *ExperimentServiceUpdateAnnotateRecordArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -35113,7 +43580,7 @@ func (p *ExperimentServiceInvokeExperimentArgs) DeepEqual(ano *ExperimentService return true } -func (p *ExperimentServiceInvokeExperimentArgs) Field1DeepEqual(src *InvokeExperimentRequest) bool { +func (p *ExperimentServiceUpdateAnnotateRecordArgs) Field1DeepEqual(src *UpdateAnnotateRecordReq) bool { if !p.Req.DeepEqual(src) { return false @@ -35121,41 +43588,41 @@ func (p *ExperimentServiceInvokeExperimentArgs) Field1DeepEqual(src *InvokeExper return true } -type ExperimentServiceInvokeExperimentResult struct { - Success *InvokeExperimentResponse `thrift:"success,0,optional" frugal:"0,optional,InvokeExperimentResponse"` +type ExperimentServiceUpdateAnnotateRecordResult struct { + Success *UpdateAnnotateRecordResp `thrift:"success,0,optional" frugal:"0,optional,UpdateAnnotateRecordResp"` } -func NewExperimentServiceInvokeExperimentResult() *ExperimentServiceInvokeExperimentResult { - return &ExperimentServiceInvokeExperimentResult{} +func NewExperimentServiceUpdateAnnotateRecordResult() *ExperimentServiceUpdateAnnotateRecordResult { + return &ExperimentServiceUpdateAnnotateRecordResult{} } -func (p *ExperimentServiceInvokeExperimentResult) InitDefault() { +func (p *ExperimentServiceUpdateAnnotateRecordResult) InitDefault() { } -var ExperimentServiceInvokeExperimentResult_Success_DEFAULT *InvokeExperimentResponse +var ExperimentServiceUpdateAnnotateRecordResult_Success_DEFAULT *UpdateAnnotateRecordResp -func (p *ExperimentServiceInvokeExperimentResult) GetSuccess() (v *InvokeExperimentResponse) { +func (p *ExperimentServiceUpdateAnnotateRecordResult) GetSuccess() (v *UpdateAnnotateRecordResp) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceInvokeExperimentResult_Success_DEFAULT + return ExperimentServiceUpdateAnnotateRecordResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceInvokeExperimentResult) SetSuccess(x interface{}) { - p.Success = x.(*InvokeExperimentResponse) +func (p *ExperimentServiceUpdateAnnotateRecordResult) SetSuccess(x interface{}) { + p.Success = x.(*UpdateAnnotateRecordResp) } -var fieldIDToName_ExperimentServiceInvokeExperimentResult = map[int16]string{ +var fieldIDToName_ExperimentServiceUpdateAnnotateRecordResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceInvokeExperimentResult) IsSetSuccess() bool { +func (p *ExperimentServiceUpdateAnnotateRecordResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceInvokeExperimentResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceUpdateAnnotateRecordResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -35200,7 +43667,7 @@ ReadStructBeginError: 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_ExperimentServiceInvokeExperimentResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceUpdateAnnotateRecordResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -35210,8 +43677,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceInvokeExperimentResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewInvokeExperimentResponse() +func (p *ExperimentServiceUpdateAnnotateRecordResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewUpdateAnnotateRecordResp() if err := _field.Read(iprot); err != nil { return err } @@ -35219,9 +43686,9 @@ func (p *ExperimentServiceInvokeExperimentResult) ReadField0(iprot thrift.TProto return nil } -func (p *ExperimentServiceInvokeExperimentResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceUpdateAnnotateRecordResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("InvokeExperiment_result"); err != nil { + if err = oprot.WriteStructBegin("UpdateAnnotateRecord_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -35247,7 +43714,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceInvokeExperimentResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceUpdateAnnotateRecordResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -35266,15 +43733,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceInvokeExperimentResult) String() string { +func (p *ExperimentServiceUpdateAnnotateRecordResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceInvokeExperimentResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceUpdateAnnotateRecordResult(%+v)", *p) } -func (p *ExperimentServiceInvokeExperimentResult) DeepEqual(ano *ExperimentServiceInvokeExperimentResult) bool { +func (p *ExperimentServiceUpdateAnnotateRecordResult) DeepEqual(ano *ExperimentServiceUpdateAnnotateRecordResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -35286,7 +43753,7 @@ func (p *ExperimentServiceInvokeExperimentResult) DeepEqual(ano *ExperimentServi return true } -func (p *ExperimentServiceInvokeExperimentResult) Field0DeepEqual(src *InvokeExperimentResponse) bool { +func (p *ExperimentServiceUpdateAnnotateRecordResult) Field0DeepEqual(src *UpdateAnnotateRecordResp) bool { if !p.Success.DeepEqual(src) { return false @@ -35294,41 +43761,41 @@ func (p *ExperimentServiceInvokeExperimentResult) Field0DeepEqual(src *InvokeExp return true } -type ExperimentServiceFinishExperimentArgs struct { - Req *FinishExperimentRequest `thrift:"req,1" frugal:"1,default,FinishExperimentRequest"` +type ExperimentServiceExportExptResultArgs struct { + Req *ExportExptResultRequest `thrift:"req,1" frugal:"1,default,ExportExptResultRequest"` } -func NewExperimentServiceFinishExperimentArgs() *ExperimentServiceFinishExperimentArgs { - return &ExperimentServiceFinishExperimentArgs{} +func NewExperimentServiceExportExptResultArgs() *ExperimentServiceExportExptResultArgs { + return &ExperimentServiceExportExptResultArgs{} } -func (p *ExperimentServiceFinishExperimentArgs) InitDefault() { +func (p *ExperimentServiceExportExptResultArgs) InitDefault() { } -var ExperimentServiceFinishExperimentArgs_Req_DEFAULT *FinishExperimentRequest +var ExperimentServiceExportExptResultArgs_Req_DEFAULT *ExportExptResultRequest -func (p *ExperimentServiceFinishExperimentArgs) GetReq() (v *FinishExperimentRequest) { +func (p *ExperimentServiceExportExptResultArgs) GetReq() (v *ExportExptResultRequest) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceFinishExperimentArgs_Req_DEFAULT + return ExperimentServiceExportExptResultArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceFinishExperimentArgs) SetReq(val *FinishExperimentRequest) { +func (p *ExperimentServiceExportExptResultArgs) SetReq(val *ExportExptResultRequest) { p.Req = val } -var fieldIDToName_ExperimentServiceFinishExperimentArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceExportExptResultArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceFinishExperimentArgs) IsSetReq() bool { +func (p *ExperimentServiceExportExptResultArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceFinishExperimentArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceExportExptResultArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -35373,7 +43840,7 @@ ReadStructBeginError: 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_ExperimentServiceFinishExperimentArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceExportExptResultArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -35383,8 +43850,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceFinishExperimentArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewFinishExperimentRequest() +func (p *ExperimentServiceExportExptResultArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewExportExptResultRequest() if err := _field.Read(iprot); err != nil { return err } @@ -35392,9 +43859,9 @@ func (p *ExperimentServiceFinishExperimentArgs) ReadField1(iprot thrift.TProtoco return nil } -func (p *ExperimentServiceFinishExperimentArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceExportExptResultArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("FinishExperiment_args"); err != nil { + if err = oprot.WriteStructBegin("ExportExptResult_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -35420,7 +43887,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceFinishExperimentArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceExportExptResultArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -35437,15 +43904,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceFinishExperimentArgs) String() string { +func (p *ExperimentServiceExportExptResultArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceFinishExperimentArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceExportExptResultArgs(%+v)", *p) } -func (p *ExperimentServiceFinishExperimentArgs) DeepEqual(ano *ExperimentServiceFinishExperimentArgs) bool { +func (p *ExperimentServiceExportExptResultArgs) DeepEqual(ano *ExperimentServiceExportExptResultArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -35457,7 +43924,7 @@ func (p *ExperimentServiceFinishExperimentArgs) DeepEqual(ano *ExperimentService return true } -func (p *ExperimentServiceFinishExperimentArgs) Field1DeepEqual(src *FinishExperimentRequest) bool { +func (p *ExperimentServiceExportExptResultArgs) Field1DeepEqual(src *ExportExptResultRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -35465,41 +43932,41 @@ func (p *ExperimentServiceFinishExperimentArgs) Field1DeepEqual(src *FinishExper return true } -type ExperimentServiceFinishExperimentResult struct { - Success *FinishExperimentResponse `thrift:"success,0,optional" frugal:"0,optional,FinishExperimentResponse"` +type ExperimentServiceExportExptResultResult struct { + Success *ExportExptResultResponse `thrift:"success,0,optional" frugal:"0,optional,ExportExptResultResponse"` } -func NewExperimentServiceFinishExperimentResult() *ExperimentServiceFinishExperimentResult { - return &ExperimentServiceFinishExperimentResult{} +func NewExperimentServiceExportExptResultResult() *ExperimentServiceExportExptResultResult { + return &ExperimentServiceExportExptResultResult{} } -func (p *ExperimentServiceFinishExperimentResult) InitDefault() { +func (p *ExperimentServiceExportExptResultResult) InitDefault() { } -var ExperimentServiceFinishExperimentResult_Success_DEFAULT *FinishExperimentResponse +var ExperimentServiceExportExptResultResult_Success_DEFAULT *ExportExptResultResponse -func (p *ExperimentServiceFinishExperimentResult) GetSuccess() (v *FinishExperimentResponse) { +func (p *ExperimentServiceExportExptResultResult) GetSuccess() (v *ExportExptResultResponse) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceFinishExperimentResult_Success_DEFAULT + return ExperimentServiceExportExptResultResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceFinishExperimentResult) SetSuccess(x interface{}) { - p.Success = x.(*FinishExperimentResponse) +func (p *ExperimentServiceExportExptResultResult) SetSuccess(x interface{}) { + p.Success = x.(*ExportExptResultResponse) } -var fieldIDToName_ExperimentServiceFinishExperimentResult = map[int16]string{ +var fieldIDToName_ExperimentServiceExportExptResultResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceFinishExperimentResult) IsSetSuccess() bool { +func (p *ExperimentServiceExportExptResultResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceFinishExperimentResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceExportExptResultResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -35544,7 +44011,7 @@ ReadStructBeginError: 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_ExperimentServiceFinishExperimentResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceExportExptResultResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -35554,8 +44021,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceFinishExperimentResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewFinishExperimentResponse() +func (p *ExperimentServiceExportExptResultResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewExportExptResultResponse() if err := _field.Read(iprot); err != nil { return err } @@ -35563,9 +44030,9 @@ func (p *ExperimentServiceFinishExperimentResult) ReadField0(iprot thrift.TProto return nil } -func (p *ExperimentServiceFinishExperimentResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceExportExptResultResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("FinishExperiment_result"); err != nil { + if err = oprot.WriteStructBegin("ExportExptResult_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -35591,7 +44058,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceFinishExperimentResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceExportExptResultResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -35610,15 +44077,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceFinishExperimentResult) String() string { +func (p *ExperimentServiceExportExptResultResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceFinishExperimentResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceExportExptResultResult(%+v)", *p) } -func (p *ExperimentServiceFinishExperimentResult) DeepEqual(ano *ExperimentServiceFinishExperimentResult) bool { +func (p *ExperimentServiceExportExptResultResult) DeepEqual(ano *ExperimentServiceExportExptResultResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -35630,7 +44097,7 @@ func (p *ExperimentServiceFinishExperimentResult) DeepEqual(ano *ExperimentServi return true } -func (p *ExperimentServiceFinishExperimentResult) Field0DeepEqual(src *FinishExperimentResponse) bool { +func (p *ExperimentServiceExportExptResultResult) Field0DeepEqual(src *ExportExptResultResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -35638,41 +44105,41 @@ func (p *ExperimentServiceFinishExperimentResult) Field0DeepEqual(src *FinishExp return true } -type ExperimentServiceListExperimentStatsArgs struct { - Req *ListExperimentStatsRequest `thrift:"req,1" frugal:"1,default,ListExperimentStatsRequest"` +type ExperimentServiceListExptResultExportRecordArgs struct { + Req *ListExptResultExportRecordRequest `thrift:"req,1" frugal:"1,default,ListExptResultExportRecordRequest"` } -func NewExperimentServiceListExperimentStatsArgs() *ExperimentServiceListExperimentStatsArgs { - return &ExperimentServiceListExperimentStatsArgs{} +func NewExperimentServiceListExptResultExportRecordArgs() *ExperimentServiceListExptResultExportRecordArgs { + return &ExperimentServiceListExptResultExportRecordArgs{} } -func (p *ExperimentServiceListExperimentStatsArgs) InitDefault() { +func (p *ExperimentServiceListExptResultExportRecordArgs) InitDefault() { } -var ExperimentServiceListExperimentStatsArgs_Req_DEFAULT *ListExperimentStatsRequest +var ExperimentServiceListExptResultExportRecordArgs_Req_DEFAULT *ListExptResultExportRecordRequest -func (p *ExperimentServiceListExperimentStatsArgs) GetReq() (v *ListExperimentStatsRequest) { +func (p *ExperimentServiceListExptResultExportRecordArgs) GetReq() (v *ListExptResultExportRecordRequest) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceListExperimentStatsArgs_Req_DEFAULT + return ExperimentServiceListExptResultExportRecordArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceListExperimentStatsArgs) SetReq(val *ListExperimentStatsRequest) { +func (p *ExperimentServiceListExptResultExportRecordArgs) SetReq(val *ListExptResultExportRecordRequest) { p.Req = val } -var fieldIDToName_ExperimentServiceListExperimentStatsArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceListExptResultExportRecordArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceListExperimentStatsArgs) IsSetReq() bool { +func (p *ExperimentServiceListExptResultExportRecordArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceListExperimentStatsArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExptResultExportRecordArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -35717,7 +44184,7 @@ ReadStructBeginError: 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_ExperimentServiceListExperimentStatsArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceListExptResultExportRecordArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -35727,8 +44194,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceListExperimentStatsArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewListExperimentStatsRequest() +func (p *ExperimentServiceListExptResultExportRecordArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewListExptResultExportRecordRequest() if err := _field.Read(iprot); err != nil { return err } @@ -35736,9 +44203,9 @@ func (p *ExperimentServiceListExperimentStatsArgs) ReadField1(iprot thrift.TProt return nil } -func (p *ExperimentServiceListExperimentStatsArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExptResultExportRecordArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListExperimentStats_args"); err != nil { + if err = oprot.WriteStructBegin("ListExptResultExportRecord_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -35764,7 +44231,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceListExperimentStatsArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExptResultExportRecordArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -35781,15 +44248,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceListExperimentStatsArgs) String() string { +func (p *ExperimentServiceListExptResultExportRecordArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceListExperimentStatsArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceListExptResultExportRecordArgs(%+v)", *p) } -func (p *ExperimentServiceListExperimentStatsArgs) DeepEqual(ano *ExperimentServiceListExperimentStatsArgs) bool { +func (p *ExperimentServiceListExptResultExportRecordArgs) DeepEqual(ano *ExperimentServiceListExptResultExportRecordArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -35801,7 +44268,7 @@ func (p *ExperimentServiceListExperimentStatsArgs) DeepEqual(ano *ExperimentServ return true } -func (p *ExperimentServiceListExperimentStatsArgs) Field1DeepEqual(src *ListExperimentStatsRequest) bool { +func (p *ExperimentServiceListExptResultExportRecordArgs) Field1DeepEqual(src *ListExptResultExportRecordRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -35809,41 +44276,41 @@ func (p *ExperimentServiceListExperimentStatsArgs) Field1DeepEqual(src *ListExpe return true } -type ExperimentServiceListExperimentStatsResult struct { - Success *ListExperimentStatsResponse `thrift:"success,0,optional" frugal:"0,optional,ListExperimentStatsResponse"` +type ExperimentServiceListExptResultExportRecordResult struct { + Success *ListExptResultExportRecordResponse `thrift:"success,0,optional" frugal:"0,optional,ListExptResultExportRecordResponse"` } -func NewExperimentServiceListExperimentStatsResult() *ExperimentServiceListExperimentStatsResult { - return &ExperimentServiceListExperimentStatsResult{} +func NewExperimentServiceListExptResultExportRecordResult() *ExperimentServiceListExptResultExportRecordResult { + return &ExperimentServiceListExptResultExportRecordResult{} } -func (p *ExperimentServiceListExperimentStatsResult) InitDefault() { +func (p *ExperimentServiceListExptResultExportRecordResult) InitDefault() { } -var ExperimentServiceListExperimentStatsResult_Success_DEFAULT *ListExperimentStatsResponse +var ExperimentServiceListExptResultExportRecordResult_Success_DEFAULT *ListExptResultExportRecordResponse -func (p *ExperimentServiceListExperimentStatsResult) GetSuccess() (v *ListExperimentStatsResponse) { +func (p *ExperimentServiceListExptResultExportRecordResult) GetSuccess() (v *ListExptResultExportRecordResponse) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceListExperimentStatsResult_Success_DEFAULT + return ExperimentServiceListExptResultExportRecordResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceListExperimentStatsResult) SetSuccess(x interface{}) { - p.Success = x.(*ListExperimentStatsResponse) +func (p *ExperimentServiceListExptResultExportRecordResult) SetSuccess(x interface{}) { + p.Success = x.(*ListExptResultExportRecordResponse) } -var fieldIDToName_ExperimentServiceListExperimentStatsResult = map[int16]string{ +var fieldIDToName_ExperimentServiceListExptResultExportRecordResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceListExperimentStatsResult) IsSetSuccess() bool { +func (p *ExperimentServiceListExptResultExportRecordResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceListExperimentStatsResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExptResultExportRecordResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -35888,7 +44355,7 @@ ReadStructBeginError: 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_ExperimentServiceListExperimentStatsResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceListExptResultExportRecordResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -35898,8 +44365,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceListExperimentStatsResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewListExperimentStatsResponse() +func (p *ExperimentServiceListExptResultExportRecordResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewListExptResultExportRecordResponse() if err := _field.Read(iprot); err != nil { return err } @@ -35907,9 +44374,9 @@ func (p *ExperimentServiceListExperimentStatsResult) ReadField0(iprot thrift.TPr return nil } -func (p *ExperimentServiceListExperimentStatsResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExptResultExportRecordResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListExperimentStats_result"); err != nil { + if err = oprot.WriteStructBegin("ListExptResultExportRecord_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -35935,7 +44402,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceListExperimentStatsResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExptResultExportRecordResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -35954,15 +44421,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceListExperimentStatsResult) String() string { +func (p *ExperimentServiceListExptResultExportRecordResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceListExperimentStatsResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceListExptResultExportRecordResult(%+v)", *p) } -func (p *ExperimentServiceListExperimentStatsResult) DeepEqual(ano *ExperimentServiceListExperimentStatsResult) bool { +func (p *ExperimentServiceListExptResultExportRecordResult) DeepEqual(ano *ExperimentServiceListExptResultExportRecordResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -35974,7 +44441,7 @@ func (p *ExperimentServiceListExperimentStatsResult) DeepEqual(ano *ExperimentSe return true } -func (p *ExperimentServiceListExperimentStatsResult) Field0DeepEqual(src *ListExperimentStatsResponse) bool { +func (p *ExperimentServiceListExptResultExportRecordResult) Field0DeepEqual(src *ListExptResultExportRecordResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -35982,41 +44449,41 @@ func (p *ExperimentServiceListExperimentStatsResult) Field0DeepEqual(src *ListEx return true } -type ExperimentServiceUpsertExptTurnResultFilterArgs struct { - Req *UpsertExptTurnResultFilterRequest `thrift:"req,1" frugal:"1,default,UpsertExptTurnResultFilterRequest"` +type ExperimentServiceGetExptResultExportRecordArgs struct { + Req *GetExptResultExportRecordRequest `thrift:"req,1" frugal:"1,default,GetExptResultExportRecordRequest"` } -func NewExperimentServiceUpsertExptTurnResultFilterArgs() *ExperimentServiceUpsertExptTurnResultFilterArgs { - return &ExperimentServiceUpsertExptTurnResultFilterArgs{} +func NewExperimentServiceGetExptResultExportRecordArgs() *ExperimentServiceGetExptResultExportRecordArgs { + return &ExperimentServiceGetExptResultExportRecordArgs{} } -func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) InitDefault() { +func (p *ExperimentServiceGetExptResultExportRecordArgs) InitDefault() { } -var ExperimentServiceUpsertExptTurnResultFilterArgs_Req_DEFAULT *UpsertExptTurnResultFilterRequest +var ExperimentServiceGetExptResultExportRecordArgs_Req_DEFAULT *GetExptResultExportRecordRequest -func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) GetReq() (v *UpsertExptTurnResultFilterRequest) { +func (p *ExperimentServiceGetExptResultExportRecordArgs) GetReq() (v *GetExptResultExportRecordRequest) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceUpsertExptTurnResultFilterArgs_Req_DEFAULT + return ExperimentServiceGetExptResultExportRecordArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) SetReq(val *UpsertExptTurnResultFilterRequest) { +func (p *ExperimentServiceGetExptResultExportRecordArgs) SetReq(val *GetExptResultExportRecordRequest) { p.Req = val } -var fieldIDToName_ExperimentServiceUpsertExptTurnResultFilterArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceGetExptResultExportRecordArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) IsSetReq() bool { +func (p *ExperimentServiceGetExptResultExportRecordArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceGetExptResultExportRecordArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -36061,7 +44528,7 @@ ReadStructBeginError: 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_ExperimentServiceUpsertExptTurnResultFilterArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceGetExptResultExportRecordArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -36071,8 +44538,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewUpsertExptTurnResultFilterRequest() +func (p *ExperimentServiceGetExptResultExportRecordArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewGetExptResultExportRecordRequest() if err := _field.Read(iprot); err != nil { return err } @@ -36080,9 +44547,9 @@ func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) ReadField1(iprot thrif return nil } -func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceGetExptResultExportRecordArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("UpsertExptTurnResultFilter_args"); err != nil { + if err = oprot.WriteStructBegin("GetExptResultExportRecord_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -36108,7 +44575,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceGetExptResultExportRecordArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -36125,15 +44592,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) String() string { +func (p *ExperimentServiceGetExptResultExportRecordArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceUpsertExptTurnResultFilterArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceGetExptResultExportRecordArgs(%+v)", *p) } -func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) DeepEqual(ano *ExperimentServiceUpsertExptTurnResultFilterArgs) bool { +func (p *ExperimentServiceGetExptResultExportRecordArgs) DeepEqual(ano *ExperimentServiceGetExptResultExportRecordArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -36145,7 +44612,7 @@ func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) DeepEqual(ano *Experim return true } -func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) Field1DeepEqual(src *UpsertExptTurnResultFilterRequest) bool { +func (p *ExperimentServiceGetExptResultExportRecordArgs) Field1DeepEqual(src *GetExptResultExportRecordRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -36153,41 +44620,41 @@ func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) Field1DeepEqual(src *U return true } -type ExperimentServiceUpsertExptTurnResultFilterResult struct { - Success *UpsertExptTurnResultFilterResponse `thrift:"success,0,optional" frugal:"0,optional,UpsertExptTurnResultFilterResponse"` +type ExperimentServiceGetExptResultExportRecordResult struct { + Success *GetExptResultExportRecordResponse `thrift:"success,0,optional" frugal:"0,optional,GetExptResultExportRecordResponse"` } -func NewExperimentServiceUpsertExptTurnResultFilterResult() *ExperimentServiceUpsertExptTurnResultFilterResult { - return &ExperimentServiceUpsertExptTurnResultFilterResult{} +func NewExperimentServiceGetExptResultExportRecordResult() *ExperimentServiceGetExptResultExportRecordResult { + return &ExperimentServiceGetExptResultExportRecordResult{} } -func (p *ExperimentServiceUpsertExptTurnResultFilterResult) InitDefault() { +func (p *ExperimentServiceGetExptResultExportRecordResult) InitDefault() { } -var ExperimentServiceUpsertExptTurnResultFilterResult_Success_DEFAULT *UpsertExptTurnResultFilterResponse +var ExperimentServiceGetExptResultExportRecordResult_Success_DEFAULT *GetExptResultExportRecordResponse -func (p *ExperimentServiceUpsertExptTurnResultFilterResult) GetSuccess() (v *UpsertExptTurnResultFilterResponse) { +func (p *ExperimentServiceGetExptResultExportRecordResult) GetSuccess() (v *GetExptResultExportRecordResponse) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceUpsertExptTurnResultFilterResult_Success_DEFAULT + return ExperimentServiceGetExptResultExportRecordResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceUpsertExptTurnResultFilterResult) SetSuccess(x interface{}) { - p.Success = x.(*UpsertExptTurnResultFilterResponse) +func (p *ExperimentServiceGetExptResultExportRecordResult) SetSuccess(x interface{}) { + p.Success = x.(*GetExptResultExportRecordResponse) } -var fieldIDToName_ExperimentServiceUpsertExptTurnResultFilterResult = map[int16]string{ +var fieldIDToName_ExperimentServiceGetExptResultExportRecordResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceUpsertExptTurnResultFilterResult) IsSetSuccess() bool { +func (p *ExperimentServiceGetExptResultExportRecordResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceUpsertExptTurnResultFilterResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceGetExptResultExportRecordResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -36232,7 +44699,7 @@ ReadStructBeginError: 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_ExperimentServiceUpsertExptTurnResultFilterResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceGetExptResultExportRecordResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -36242,8 +44709,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceUpsertExptTurnResultFilterResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewUpsertExptTurnResultFilterResponse() +func (p *ExperimentServiceGetExptResultExportRecordResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewGetExptResultExportRecordResponse() if err := _field.Read(iprot); err != nil { return err } @@ -36251,9 +44718,9 @@ func (p *ExperimentServiceUpsertExptTurnResultFilterResult) ReadField0(iprot thr return nil } -func (p *ExperimentServiceUpsertExptTurnResultFilterResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceGetExptResultExportRecordResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("UpsertExptTurnResultFilter_result"); err != nil { + if err = oprot.WriteStructBegin("GetExptResultExportRecord_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -36279,7 +44746,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceUpsertExptTurnResultFilterResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceGetExptResultExportRecordResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -36298,15 +44765,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceUpsertExptTurnResultFilterResult) String() string { +func (p *ExperimentServiceGetExptResultExportRecordResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceUpsertExptTurnResultFilterResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceGetExptResultExportRecordResult(%+v)", *p) } -func (p *ExperimentServiceUpsertExptTurnResultFilterResult) DeepEqual(ano *ExperimentServiceUpsertExptTurnResultFilterResult) bool { +func (p *ExperimentServiceGetExptResultExportRecordResult) DeepEqual(ano *ExperimentServiceGetExptResultExportRecordResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -36318,7 +44785,7 @@ func (p *ExperimentServiceUpsertExptTurnResultFilterResult) DeepEqual(ano *Exper return true } -func (p *ExperimentServiceUpsertExptTurnResultFilterResult) Field0DeepEqual(src *UpsertExptTurnResultFilterResponse) bool { +func (p *ExperimentServiceGetExptResultExportRecordResult) Field0DeepEqual(src *GetExptResultExportRecordResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -36326,41 +44793,41 @@ func (p *ExperimentServiceUpsertExptTurnResultFilterResult) Field0DeepEqual(src return true } -type ExperimentServiceAssociateAnnotationTagArgs struct { - Req *AssociateAnnotationTagReq `thrift:"req,1" frugal:"1,default,AssociateAnnotationTagReq"` +type ExperimentServiceInsightAnalysisExperimentArgs struct { + Req *InsightAnalysisExperimentRequest `thrift:"req,1" frugal:"1,default,InsightAnalysisExperimentRequest"` } -func NewExperimentServiceAssociateAnnotationTagArgs() *ExperimentServiceAssociateAnnotationTagArgs { - return &ExperimentServiceAssociateAnnotationTagArgs{} +func NewExperimentServiceInsightAnalysisExperimentArgs() *ExperimentServiceInsightAnalysisExperimentArgs { + return &ExperimentServiceInsightAnalysisExperimentArgs{} } -func (p *ExperimentServiceAssociateAnnotationTagArgs) InitDefault() { +func (p *ExperimentServiceInsightAnalysisExperimentArgs) InitDefault() { } -var ExperimentServiceAssociateAnnotationTagArgs_Req_DEFAULT *AssociateAnnotationTagReq +var ExperimentServiceInsightAnalysisExperimentArgs_Req_DEFAULT *InsightAnalysisExperimentRequest -func (p *ExperimentServiceAssociateAnnotationTagArgs) GetReq() (v *AssociateAnnotationTagReq) { +func (p *ExperimentServiceInsightAnalysisExperimentArgs) GetReq() (v *InsightAnalysisExperimentRequest) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceAssociateAnnotationTagArgs_Req_DEFAULT + return ExperimentServiceInsightAnalysisExperimentArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceAssociateAnnotationTagArgs) SetReq(val *AssociateAnnotationTagReq) { +func (p *ExperimentServiceInsightAnalysisExperimentArgs) SetReq(val *InsightAnalysisExperimentRequest) { p.Req = val } -var fieldIDToName_ExperimentServiceAssociateAnnotationTagArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceInsightAnalysisExperimentArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceAssociateAnnotationTagArgs) IsSetReq() bool { +func (p *ExperimentServiceInsightAnalysisExperimentArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceAssociateAnnotationTagArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceInsightAnalysisExperimentArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -36405,7 +44872,7 @@ ReadStructBeginError: 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_ExperimentServiceAssociateAnnotationTagArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceInsightAnalysisExperimentArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -36415,8 +44882,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceAssociateAnnotationTagArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewAssociateAnnotationTagReq() +func (p *ExperimentServiceInsightAnalysisExperimentArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewInsightAnalysisExperimentRequest() if err := _field.Read(iprot); err != nil { return err } @@ -36424,9 +44891,9 @@ func (p *ExperimentServiceAssociateAnnotationTagArgs) ReadField1(iprot thrift.TP return nil } -func (p *ExperimentServiceAssociateAnnotationTagArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceInsightAnalysisExperimentArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("AssociateAnnotationTag_args"); err != nil { + if err = oprot.WriteStructBegin("InsightAnalysisExperiment_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -36452,7 +44919,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceAssociateAnnotationTagArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceInsightAnalysisExperimentArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -36469,15 +44936,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceAssociateAnnotationTagArgs) String() string { +func (p *ExperimentServiceInsightAnalysisExperimentArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceAssociateAnnotationTagArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceInsightAnalysisExperimentArgs(%+v)", *p) } -func (p *ExperimentServiceAssociateAnnotationTagArgs) DeepEqual(ano *ExperimentServiceAssociateAnnotationTagArgs) bool { +func (p *ExperimentServiceInsightAnalysisExperimentArgs) DeepEqual(ano *ExperimentServiceInsightAnalysisExperimentArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -36489,7 +44956,7 @@ func (p *ExperimentServiceAssociateAnnotationTagArgs) DeepEqual(ano *ExperimentS return true } -func (p *ExperimentServiceAssociateAnnotationTagArgs) Field1DeepEqual(src *AssociateAnnotationTagReq) bool { +func (p *ExperimentServiceInsightAnalysisExperimentArgs) Field1DeepEqual(src *InsightAnalysisExperimentRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -36497,41 +44964,41 @@ func (p *ExperimentServiceAssociateAnnotationTagArgs) Field1DeepEqual(src *Assoc return true } -type ExperimentServiceAssociateAnnotationTagResult struct { - Success *AssociateAnnotationTagResp `thrift:"success,0,optional" frugal:"0,optional,AssociateAnnotationTagResp"` +type ExperimentServiceInsightAnalysisExperimentResult struct { + Success *InsightAnalysisExperimentResponse `thrift:"success,0,optional" frugal:"0,optional,InsightAnalysisExperimentResponse"` } -func NewExperimentServiceAssociateAnnotationTagResult() *ExperimentServiceAssociateAnnotationTagResult { - return &ExperimentServiceAssociateAnnotationTagResult{} +func NewExperimentServiceInsightAnalysisExperimentResult() *ExperimentServiceInsightAnalysisExperimentResult { + return &ExperimentServiceInsightAnalysisExperimentResult{} } -func (p *ExperimentServiceAssociateAnnotationTagResult) InitDefault() { +func (p *ExperimentServiceInsightAnalysisExperimentResult) InitDefault() { } -var ExperimentServiceAssociateAnnotationTagResult_Success_DEFAULT *AssociateAnnotationTagResp +var ExperimentServiceInsightAnalysisExperimentResult_Success_DEFAULT *InsightAnalysisExperimentResponse -func (p *ExperimentServiceAssociateAnnotationTagResult) GetSuccess() (v *AssociateAnnotationTagResp) { +func (p *ExperimentServiceInsightAnalysisExperimentResult) GetSuccess() (v *InsightAnalysisExperimentResponse) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceAssociateAnnotationTagResult_Success_DEFAULT + return ExperimentServiceInsightAnalysisExperimentResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceAssociateAnnotationTagResult) SetSuccess(x interface{}) { - p.Success = x.(*AssociateAnnotationTagResp) +func (p *ExperimentServiceInsightAnalysisExperimentResult) SetSuccess(x interface{}) { + p.Success = x.(*InsightAnalysisExperimentResponse) } -var fieldIDToName_ExperimentServiceAssociateAnnotationTagResult = map[int16]string{ +var fieldIDToName_ExperimentServiceInsightAnalysisExperimentResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceAssociateAnnotationTagResult) IsSetSuccess() bool { +func (p *ExperimentServiceInsightAnalysisExperimentResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceAssociateAnnotationTagResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceInsightAnalysisExperimentResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -36576,7 +45043,7 @@ ReadStructBeginError: 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_ExperimentServiceAssociateAnnotationTagResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceInsightAnalysisExperimentResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -36586,8 +45053,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceAssociateAnnotationTagResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewAssociateAnnotationTagResp() +func (p *ExperimentServiceInsightAnalysisExperimentResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewInsightAnalysisExperimentResponse() if err := _field.Read(iprot); err != nil { return err } @@ -36595,9 +45062,9 @@ func (p *ExperimentServiceAssociateAnnotationTagResult) ReadField0(iprot thrift. return nil } -func (p *ExperimentServiceAssociateAnnotationTagResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceInsightAnalysisExperimentResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("AssociateAnnotationTag_result"); err != nil { + if err = oprot.WriteStructBegin("InsightAnalysisExperiment_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -36623,7 +45090,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceAssociateAnnotationTagResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceInsightAnalysisExperimentResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -36642,15 +45109,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceAssociateAnnotationTagResult) String() string { +func (p *ExperimentServiceInsightAnalysisExperimentResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceAssociateAnnotationTagResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceInsightAnalysisExperimentResult(%+v)", *p) } -func (p *ExperimentServiceAssociateAnnotationTagResult) DeepEqual(ano *ExperimentServiceAssociateAnnotationTagResult) bool { +func (p *ExperimentServiceInsightAnalysisExperimentResult) DeepEqual(ano *ExperimentServiceInsightAnalysisExperimentResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -36662,7 +45129,7 @@ func (p *ExperimentServiceAssociateAnnotationTagResult) DeepEqual(ano *Experimen return true } -func (p *ExperimentServiceAssociateAnnotationTagResult) Field0DeepEqual(src *AssociateAnnotationTagResp) bool { +func (p *ExperimentServiceInsightAnalysisExperimentResult) Field0DeepEqual(src *InsightAnalysisExperimentResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -36670,41 +45137,41 @@ func (p *ExperimentServiceAssociateAnnotationTagResult) Field0DeepEqual(src *Ass return true } -type ExperimentServiceDeleteAnnotationTagArgs struct { - Req *DeleteAnnotationTagReq `thrift:"req,1" frugal:"1,default,DeleteAnnotationTagReq"` +type ExperimentServiceListExptInsightAnalysisRecordArgs struct { + Req *ListExptInsightAnalysisRecordRequest `thrift:"req,1" frugal:"1,default,ListExptInsightAnalysisRecordRequest"` } -func NewExperimentServiceDeleteAnnotationTagArgs() *ExperimentServiceDeleteAnnotationTagArgs { - return &ExperimentServiceDeleteAnnotationTagArgs{} +func NewExperimentServiceListExptInsightAnalysisRecordArgs() *ExperimentServiceListExptInsightAnalysisRecordArgs { + return &ExperimentServiceListExptInsightAnalysisRecordArgs{} } -func (p *ExperimentServiceDeleteAnnotationTagArgs) InitDefault() { +func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) InitDefault() { } -var ExperimentServiceDeleteAnnotationTagArgs_Req_DEFAULT *DeleteAnnotationTagReq +var ExperimentServiceListExptInsightAnalysisRecordArgs_Req_DEFAULT *ListExptInsightAnalysisRecordRequest -func (p *ExperimentServiceDeleteAnnotationTagArgs) GetReq() (v *DeleteAnnotationTagReq) { +func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) GetReq() (v *ListExptInsightAnalysisRecordRequest) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceDeleteAnnotationTagArgs_Req_DEFAULT + return ExperimentServiceListExptInsightAnalysisRecordArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceDeleteAnnotationTagArgs) SetReq(val *DeleteAnnotationTagReq) { +func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) SetReq(val *ListExptInsightAnalysisRecordRequest) { p.Req = val } -var fieldIDToName_ExperimentServiceDeleteAnnotationTagArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceListExptInsightAnalysisRecordArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceDeleteAnnotationTagArgs) IsSetReq() bool { +func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceDeleteAnnotationTagArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -36749,7 +45216,7 @@ ReadStructBeginError: 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_ExperimentServiceDeleteAnnotationTagArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceListExptInsightAnalysisRecordArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -36759,8 +45226,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceDeleteAnnotationTagArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewDeleteAnnotationTagReq() +func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewListExptInsightAnalysisRecordRequest() if err := _field.Read(iprot); err != nil { return err } @@ -36768,9 +45235,9 @@ func (p *ExperimentServiceDeleteAnnotationTagArgs) ReadField1(iprot thrift.TProt return nil } -func (p *ExperimentServiceDeleteAnnotationTagArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("DeleteAnnotationTag_args"); err != nil { + if err = oprot.WriteStructBegin("ListExptInsightAnalysisRecord_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -36796,7 +45263,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceDeleteAnnotationTagArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -36813,15 +45280,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceDeleteAnnotationTagArgs) String() string { +func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceDeleteAnnotationTagArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceListExptInsightAnalysisRecordArgs(%+v)", *p) } -func (p *ExperimentServiceDeleteAnnotationTagArgs) DeepEqual(ano *ExperimentServiceDeleteAnnotationTagArgs) bool { +func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) DeepEqual(ano *ExperimentServiceListExptInsightAnalysisRecordArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -36833,7 +45300,7 @@ func (p *ExperimentServiceDeleteAnnotationTagArgs) DeepEqual(ano *ExperimentServ return true } -func (p *ExperimentServiceDeleteAnnotationTagArgs) Field1DeepEqual(src *DeleteAnnotationTagReq) bool { +func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) Field1DeepEqual(src *ListExptInsightAnalysisRecordRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -36841,41 +45308,41 @@ func (p *ExperimentServiceDeleteAnnotationTagArgs) Field1DeepEqual(src *DeleteAn return true } -type ExperimentServiceDeleteAnnotationTagResult struct { - Success *DeleteAnnotationTagResp `thrift:"success,0,optional" frugal:"0,optional,DeleteAnnotationTagResp"` +type ExperimentServiceListExptInsightAnalysisRecordResult struct { + Success *ListExptInsightAnalysisRecordResponse `thrift:"success,0,optional" frugal:"0,optional,ListExptInsightAnalysisRecordResponse"` } -func NewExperimentServiceDeleteAnnotationTagResult() *ExperimentServiceDeleteAnnotationTagResult { - return &ExperimentServiceDeleteAnnotationTagResult{} +func NewExperimentServiceListExptInsightAnalysisRecordResult() *ExperimentServiceListExptInsightAnalysisRecordResult { + return &ExperimentServiceListExptInsightAnalysisRecordResult{} } -func (p *ExperimentServiceDeleteAnnotationTagResult) InitDefault() { +func (p *ExperimentServiceListExptInsightAnalysisRecordResult) InitDefault() { } -var ExperimentServiceDeleteAnnotationTagResult_Success_DEFAULT *DeleteAnnotationTagResp +var ExperimentServiceListExptInsightAnalysisRecordResult_Success_DEFAULT *ListExptInsightAnalysisRecordResponse -func (p *ExperimentServiceDeleteAnnotationTagResult) GetSuccess() (v *DeleteAnnotationTagResp) { +func (p *ExperimentServiceListExptInsightAnalysisRecordResult) GetSuccess() (v *ListExptInsightAnalysisRecordResponse) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceDeleteAnnotationTagResult_Success_DEFAULT + return ExperimentServiceListExptInsightAnalysisRecordResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceDeleteAnnotationTagResult) SetSuccess(x interface{}) { - p.Success = x.(*DeleteAnnotationTagResp) +func (p *ExperimentServiceListExptInsightAnalysisRecordResult) SetSuccess(x interface{}) { + p.Success = x.(*ListExptInsightAnalysisRecordResponse) } -var fieldIDToName_ExperimentServiceDeleteAnnotationTagResult = map[int16]string{ +var fieldIDToName_ExperimentServiceListExptInsightAnalysisRecordResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceDeleteAnnotationTagResult) IsSetSuccess() bool { +func (p *ExperimentServiceListExptInsightAnalysisRecordResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceDeleteAnnotationTagResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExptInsightAnalysisRecordResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -36920,7 +45387,7 @@ ReadStructBeginError: 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_ExperimentServiceDeleteAnnotationTagResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceListExptInsightAnalysisRecordResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -36930,8 +45397,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceDeleteAnnotationTagResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewDeleteAnnotationTagResp() +func (p *ExperimentServiceListExptInsightAnalysisRecordResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewListExptInsightAnalysisRecordResponse() if err := _field.Read(iprot); err != nil { return err } @@ -36939,9 +45406,9 @@ func (p *ExperimentServiceDeleteAnnotationTagResult) ReadField0(iprot thrift.TPr return nil } -func (p *ExperimentServiceDeleteAnnotationTagResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExptInsightAnalysisRecordResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("DeleteAnnotationTag_result"); err != nil { + if err = oprot.WriteStructBegin("ListExptInsightAnalysisRecord_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -36967,7 +45434,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceDeleteAnnotationTagResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExptInsightAnalysisRecordResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -36986,15 +45453,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceDeleteAnnotationTagResult) String() string { +func (p *ExperimentServiceListExptInsightAnalysisRecordResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceDeleteAnnotationTagResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceListExptInsightAnalysisRecordResult(%+v)", *p) } -func (p *ExperimentServiceDeleteAnnotationTagResult) DeepEqual(ano *ExperimentServiceDeleteAnnotationTagResult) bool { +func (p *ExperimentServiceListExptInsightAnalysisRecordResult) DeepEqual(ano *ExperimentServiceListExptInsightAnalysisRecordResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -37006,7 +45473,7 @@ func (p *ExperimentServiceDeleteAnnotationTagResult) DeepEqual(ano *ExperimentSe return true } -func (p *ExperimentServiceDeleteAnnotationTagResult) Field0DeepEqual(src *DeleteAnnotationTagResp) bool { +func (p *ExperimentServiceListExptInsightAnalysisRecordResult) Field0DeepEqual(src *ListExptInsightAnalysisRecordResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -37014,41 +45481,41 @@ func (p *ExperimentServiceDeleteAnnotationTagResult) Field0DeepEqual(src *Delete return true } -type ExperimentServiceCreateAnnotateRecordArgs struct { - Req *CreateAnnotateRecordReq `thrift:"req,1" frugal:"1,default,CreateAnnotateRecordReq"` +type ExperimentServiceDeleteExptInsightAnalysisRecordArgs struct { + Req *DeleteExptInsightAnalysisRecordRequest `thrift:"req,1" frugal:"1,default,DeleteExptInsightAnalysisRecordRequest"` } -func NewExperimentServiceCreateAnnotateRecordArgs() *ExperimentServiceCreateAnnotateRecordArgs { - return &ExperimentServiceCreateAnnotateRecordArgs{} +func NewExperimentServiceDeleteExptInsightAnalysisRecordArgs() *ExperimentServiceDeleteExptInsightAnalysisRecordArgs { + return &ExperimentServiceDeleteExptInsightAnalysisRecordArgs{} } -func (p *ExperimentServiceCreateAnnotateRecordArgs) InitDefault() { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) InitDefault() { } -var ExperimentServiceCreateAnnotateRecordArgs_Req_DEFAULT *CreateAnnotateRecordReq +var ExperimentServiceDeleteExptInsightAnalysisRecordArgs_Req_DEFAULT *DeleteExptInsightAnalysisRecordRequest -func (p *ExperimentServiceCreateAnnotateRecordArgs) GetReq() (v *CreateAnnotateRecordReq) { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) GetReq() (v *DeleteExptInsightAnalysisRecordRequest) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceCreateAnnotateRecordArgs_Req_DEFAULT + return ExperimentServiceDeleteExptInsightAnalysisRecordArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceCreateAnnotateRecordArgs) SetReq(val *CreateAnnotateRecordReq) { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) SetReq(val *DeleteExptInsightAnalysisRecordRequest) { p.Req = val } -var fieldIDToName_ExperimentServiceCreateAnnotateRecordArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceDeleteExptInsightAnalysisRecordArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceCreateAnnotateRecordArgs) IsSetReq() bool { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceCreateAnnotateRecordArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -37093,7 +45560,7 @@ ReadStructBeginError: 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_ExperimentServiceCreateAnnotateRecordArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceDeleteExptInsightAnalysisRecordArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -37103,8 +45570,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceCreateAnnotateRecordArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewCreateAnnotateRecordReq() +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewDeleteExptInsightAnalysisRecordRequest() if err := _field.Read(iprot); err != nil { return err } @@ -37112,9 +45579,9 @@ func (p *ExperimentServiceCreateAnnotateRecordArgs) ReadField1(iprot thrift.TPro return nil } -func (p *ExperimentServiceCreateAnnotateRecordArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("CreateAnnotateRecord_args"); err != nil { + if err = oprot.WriteStructBegin("DeleteExptInsightAnalysisRecord_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -37140,7 +45607,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceCreateAnnotateRecordArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -37157,15 +45624,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceCreateAnnotateRecordArgs) String() string { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceCreateAnnotateRecordArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceDeleteExptInsightAnalysisRecordArgs(%+v)", *p) } -func (p *ExperimentServiceCreateAnnotateRecordArgs) DeepEqual(ano *ExperimentServiceCreateAnnotateRecordArgs) bool { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) DeepEqual(ano *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -37177,7 +45644,7 @@ func (p *ExperimentServiceCreateAnnotateRecordArgs) DeepEqual(ano *ExperimentSer return true } -func (p *ExperimentServiceCreateAnnotateRecordArgs) Field1DeepEqual(src *CreateAnnotateRecordReq) bool { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) Field1DeepEqual(src *DeleteExptInsightAnalysisRecordRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -37185,41 +45652,41 @@ func (p *ExperimentServiceCreateAnnotateRecordArgs) Field1DeepEqual(src *CreateA return true } -type ExperimentServiceCreateAnnotateRecordResult struct { - Success *CreateAnnotateRecordResp `thrift:"success,0,optional" frugal:"0,optional,CreateAnnotateRecordResp"` +type ExperimentServiceDeleteExptInsightAnalysisRecordResult struct { + Success *DeleteExptInsightAnalysisRecordResponse `thrift:"success,0,optional" frugal:"0,optional,DeleteExptInsightAnalysisRecordResponse"` } -func NewExperimentServiceCreateAnnotateRecordResult() *ExperimentServiceCreateAnnotateRecordResult { - return &ExperimentServiceCreateAnnotateRecordResult{} +func NewExperimentServiceDeleteExptInsightAnalysisRecordResult() *ExperimentServiceDeleteExptInsightAnalysisRecordResult { + return &ExperimentServiceDeleteExptInsightAnalysisRecordResult{} } -func (p *ExperimentServiceCreateAnnotateRecordResult) InitDefault() { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) InitDefault() { } -var ExperimentServiceCreateAnnotateRecordResult_Success_DEFAULT *CreateAnnotateRecordResp +var ExperimentServiceDeleteExptInsightAnalysisRecordResult_Success_DEFAULT *DeleteExptInsightAnalysisRecordResponse -func (p *ExperimentServiceCreateAnnotateRecordResult) GetSuccess() (v *CreateAnnotateRecordResp) { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) GetSuccess() (v *DeleteExptInsightAnalysisRecordResponse) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceCreateAnnotateRecordResult_Success_DEFAULT + return ExperimentServiceDeleteExptInsightAnalysisRecordResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceCreateAnnotateRecordResult) SetSuccess(x interface{}) { - p.Success = x.(*CreateAnnotateRecordResp) +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) SetSuccess(x interface{}) { + p.Success = x.(*DeleteExptInsightAnalysisRecordResponse) } -var fieldIDToName_ExperimentServiceCreateAnnotateRecordResult = map[int16]string{ +var fieldIDToName_ExperimentServiceDeleteExptInsightAnalysisRecordResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceCreateAnnotateRecordResult) IsSetSuccess() bool { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceCreateAnnotateRecordResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -37264,7 +45731,7 @@ ReadStructBeginError: 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_ExperimentServiceCreateAnnotateRecordResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceDeleteExptInsightAnalysisRecordResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -37274,8 +45741,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceCreateAnnotateRecordResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewCreateAnnotateRecordResp() +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewDeleteExptInsightAnalysisRecordResponse() if err := _field.Read(iprot); err != nil { return err } @@ -37283,9 +45750,9 @@ func (p *ExperimentServiceCreateAnnotateRecordResult) ReadField0(iprot thrift.TP return nil } -func (p *ExperimentServiceCreateAnnotateRecordResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("CreateAnnotateRecord_result"); err != nil { + if err = oprot.WriteStructBegin("DeleteExptInsightAnalysisRecord_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -37311,7 +45778,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceCreateAnnotateRecordResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -37330,15 +45797,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceCreateAnnotateRecordResult) String() string { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceCreateAnnotateRecordResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceDeleteExptInsightAnalysisRecordResult(%+v)", *p) } -func (p *ExperimentServiceCreateAnnotateRecordResult) DeepEqual(ano *ExperimentServiceCreateAnnotateRecordResult) bool { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) DeepEqual(ano *ExperimentServiceDeleteExptInsightAnalysisRecordResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -37350,7 +45817,7 @@ func (p *ExperimentServiceCreateAnnotateRecordResult) DeepEqual(ano *ExperimentS return true } -func (p *ExperimentServiceCreateAnnotateRecordResult) Field0DeepEqual(src *CreateAnnotateRecordResp) bool { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) Field0DeepEqual(src *DeleteExptInsightAnalysisRecordResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -37358,41 +45825,41 @@ func (p *ExperimentServiceCreateAnnotateRecordResult) Field0DeepEqual(src *Creat return true } -type ExperimentServiceUpdateAnnotateRecordArgs struct { - Req *UpdateAnnotateRecordReq `thrift:"req,1" frugal:"1,default,UpdateAnnotateRecordReq"` +type ExperimentServiceGetExptInsightAnalysisRecordArgs struct { + Req *GetExptInsightAnalysisRecordRequest `thrift:"req,1" frugal:"1,default,GetExptInsightAnalysisRecordRequest"` } -func NewExperimentServiceUpdateAnnotateRecordArgs() *ExperimentServiceUpdateAnnotateRecordArgs { - return &ExperimentServiceUpdateAnnotateRecordArgs{} +func NewExperimentServiceGetExptInsightAnalysisRecordArgs() *ExperimentServiceGetExptInsightAnalysisRecordArgs { + return &ExperimentServiceGetExptInsightAnalysisRecordArgs{} } -func (p *ExperimentServiceUpdateAnnotateRecordArgs) InitDefault() { +func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) InitDefault() { } -var ExperimentServiceUpdateAnnotateRecordArgs_Req_DEFAULT *UpdateAnnotateRecordReq +var ExperimentServiceGetExptInsightAnalysisRecordArgs_Req_DEFAULT *GetExptInsightAnalysisRecordRequest -func (p *ExperimentServiceUpdateAnnotateRecordArgs) GetReq() (v *UpdateAnnotateRecordReq) { +func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) GetReq() (v *GetExptInsightAnalysisRecordRequest) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceUpdateAnnotateRecordArgs_Req_DEFAULT + return ExperimentServiceGetExptInsightAnalysisRecordArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceUpdateAnnotateRecordArgs) SetReq(val *UpdateAnnotateRecordReq) { +func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) SetReq(val *GetExptInsightAnalysisRecordRequest) { p.Req = val } -var fieldIDToName_ExperimentServiceUpdateAnnotateRecordArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceGetExptInsightAnalysisRecordArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceUpdateAnnotateRecordArgs) IsSetReq() bool { +func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceUpdateAnnotateRecordArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -37437,7 +45904,7 @@ ReadStructBeginError: 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_ExperimentServiceUpdateAnnotateRecordArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceGetExptInsightAnalysisRecordArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -37447,8 +45914,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceUpdateAnnotateRecordArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewUpdateAnnotateRecordReq() +func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewGetExptInsightAnalysisRecordRequest() if err := _field.Read(iprot); err != nil { return err } @@ -37456,9 +45923,9 @@ func (p *ExperimentServiceUpdateAnnotateRecordArgs) ReadField1(iprot thrift.TPro return nil } -func (p *ExperimentServiceUpdateAnnotateRecordArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("UpdateAnnotateRecord_args"); err != nil { + if err = oprot.WriteStructBegin("GetExptInsightAnalysisRecord_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -37484,7 +45951,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceUpdateAnnotateRecordArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -37501,15 +45968,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceUpdateAnnotateRecordArgs) String() string { +func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceUpdateAnnotateRecordArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceGetExptInsightAnalysisRecordArgs(%+v)", *p) } -func (p *ExperimentServiceUpdateAnnotateRecordArgs) DeepEqual(ano *ExperimentServiceUpdateAnnotateRecordArgs) bool { +func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) DeepEqual(ano *ExperimentServiceGetExptInsightAnalysisRecordArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -37521,7 +45988,7 @@ func (p *ExperimentServiceUpdateAnnotateRecordArgs) DeepEqual(ano *ExperimentSer return true } -func (p *ExperimentServiceUpdateAnnotateRecordArgs) Field1DeepEqual(src *UpdateAnnotateRecordReq) bool { +func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) Field1DeepEqual(src *GetExptInsightAnalysisRecordRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -37529,41 +45996,41 @@ func (p *ExperimentServiceUpdateAnnotateRecordArgs) Field1DeepEqual(src *UpdateA return true } -type ExperimentServiceUpdateAnnotateRecordResult struct { - Success *UpdateAnnotateRecordResp `thrift:"success,0,optional" frugal:"0,optional,UpdateAnnotateRecordResp"` +type ExperimentServiceGetExptInsightAnalysisRecordResult struct { + Success *GetExptInsightAnalysisRecordResponse `thrift:"success,0,optional" frugal:"0,optional,GetExptInsightAnalysisRecordResponse"` } -func NewExperimentServiceUpdateAnnotateRecordResult() *ExperimentServiceUpdateAnnotateRecordResult { - return &ExperimentServiceUpdateAnnotateRecordResult{} +func NewExperimentServiceGetExptInsightAnalysisRecordResult() *ExperimentServiceGetExptInsightAnalysisRecordResult { + return &ExperimentServiceGetExptInsightAnalysisRecordResult{} } -func (p *ExperimentServiceUpdateAnnotateRecordResult) InitDefault() { +func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) InitDefault() { } -var ExperimentServiceUpdateAnnotateRecordResult_Success_DEFAULT *UpdateAnnotateRecordResp +var ExperimentServiceGetExptInsightAnalysisRecordResult_Success_DEFAULT *GetExptInsightAnalysisRecordResponse -func (p *ExperimentServiceUpdateAnnotateRecordResult) GetSuccess() (v *UpdateAnnotateRecordResp) { +func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) GetSuccess() (v *GetExptInsightAnalysisRecordResponse) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceUpdateAnnotateRecordResult_Success_DEFAULT + return ExperimentServiceGetExptInsightAnalysisRecordResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceUpdateAnnotateRecordResult) SetSuccess(x interface{}) { - p.Success = x.(*UpdateAnnotateRecordResp) +func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) SetSuccess(x interface{}) { + p.Success = x.(*GetExptInsightAnalysisRecordResponse) } -var fieldIDToName_ExperimentServiceUpdateAnnotateRecordResult = map[int16]string{ +var fieldIDToName_ExperimentServiceGetExptInsightAnalysisRecordResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceUpdateAnnotateRecordResult) IsSetSuccess() bool { +func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceUpdateAnnotateRecordResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -37608,7 +46075,7 @@ ReadStructBeginError: 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_ExperimentServiceUpdateAnnotateRecordResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceGetExptInsightAnalysisRecordResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -37618,8 +46085,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceUpdateAnnotateRecordResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewUpdateAnnotateRecordResp() +func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewGetExptInsightAnalysisRecordResponse() if err := _field.Read(iprot); err != nil { return err } @@ -37627,9 +46094,9 @@ func (p *ExperimentServiceUpdateAnnotateRecordResult) ReadField0(iprot thrift.TP return nil } -func (p *ExperimentServiceUpdateAnnotateRecordResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("UpdateAnnotateRecord_result"); err != nil { + if err = oprot.WriteStructBegin("GetExptInsightAnalysisRecord_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -37655,7 +46122,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceUpdateAnnotateRecordResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -37674,15 +46141,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceUpdateAnnotateRecordResult) String() string { +func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceUpdateAnnotateRecordResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceGetExptInsightAnalysisRecordResult(%+v)", *p) } -func (p *ExperimentServiceUpdateAnnotateRecordResult) DeepEqual(ano *ExperimentServiceUpdateAnnotateRecordResult) bool { +func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) DeepEqual(ano *ExperimentServiceGetExptInsightAnalysisRecordResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -37694,7 +46161,7 @@ func (p *ExperimentServiceUpdateAnnotateRecordResult) DeepEqual(ano *ExperimentS return true } -func (p *ExperimentServiceUpdateAnnotateRecordResult) Field0DeepEqual(src *UpdateAnnotateRecordResp) bool { +func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) Field0DeepEqual(src *GetExptInsightAnalysisRecordResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -37702,41 +46169,41 @@ func (p *ExperimentServiceUpdateAnnotateRecordResult) Field0DeepEqual(src *Updat return true } -type ExperimentServiceExportExptResultArgs struct { - Req *ExportExptResultRequest `thrift:"req,1" frugal:"1,default,ExportExptResultRequest"` +type ExperimentServiceFeedbackExptInsightAnalysisReportArgs struct { + Req *FeedbackExptInsightAnalysisReportRequest `thrift:"req,1" frugal:"1,default,FeedbackExptInsightAnalysisReportRequest"` } -func NewExperimentServiceExportExptResultArgs() *ExperimentServiceExportExptResultArgs { - return &ExperimentServiceExportExptResultArgs{} +func NewExperimentServiceFeedbackExptInsightAnalysisReportArgs() *ExperimentServiceFeedbackExptInsightAnalysisReportArgs { + return &ExperimentServiceFeedbackExptInsightAnalysisReportArgs{} } -func (p *ExperimentServiceExportExptResultArgs) InitDefault() { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) InitDefault() { } -var ExperimentServiceExportExptResultArgs_Req_DEFAULT *ExportExptResultRequest +var ExperimentServiceFeedbackExptInsightAnalysisReportArgs_Req_DEFAULT *FeedbackExptInsightAnalysisReportRequest -func (p *ExperimentServiceExportExptResultArgs) GetReq() (v *ExportExptResultRequest) { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) GetReq() (v *FeedbackExptInsightAnalysisReportRequest) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceExportExptResultArgs_Req_DEFAULT + return ExperimentServiceFeedbackExptInsightAnalysisReportArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceExportExptResultArgs) SetReq(val *ExportExptResultRequest) { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) SetReq(val *FeedbackExptInsightAnalysisReportRequest) { p.Req = val } -var fieldIDToName_ExperimentServiceExportExptResultArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceFeedbackExptInsightAnalysisReportArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceExportExptResultArgs) IsSetReq() bool { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceExportExptResultArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -37781,7 +46248,7 @@ ReadStructBeginError: 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_ExperimentServiceExportExptResultArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceFeedbackExptInsightAnalysisReportArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -37791,8 +46258,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceExportExptResultArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewExportExptResultRequest() +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewFeedbackExptInsightAnalysisReportRequest() if err := _field.Read(iprot); err != nil { return err } @@ -37800,9 +46267,9 @@ func (p *ExperimentServiceExportExptResultArgs) ReadField1(iprot thrift.TProtoco return nil } -func (p *ExperimentServiceExportExptResultArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ExportExptResult_args"); err != nil { + if err = oprot.WriteStructBegin("FeedbackExptInsightAnalysisReport_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -37828,7 +46295,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceExportExptResultArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -37845,15 +46312,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceExportExptResultArgs) String() string { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceExportExptResultArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceFeedbackExptInsightAnalysisReportArgs(%+v)", *p) } -func (p *ExperimentServiceExportExptResultArgs) DeepEqual(ano *ExperimentServiceExportExptResultArgs) bool { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) DeepEqual(ano *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -37865,7 +46332,7 @@ func (p *ExperimentServiceExportExptResultArgs) DeepEqual(ano *ExperimentService return true } -func (p *ExperimentServiceExportExptResultArgs) Field1DeepEqual(src *ExportExptResultRequest) bool { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) Field1DeepEqual(src *FeedbackExptInsightAnalysisReportRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -37873,41 +46340,41 @@ func (p *ExperimentServiceExportExptResultArgs) Field1DeepEqual(src *ExportExptR return true } -type ExperimentServiceExportExptResultResult struct { - Success *ExportExptResultResponse `thrift:"success,0,optional" frugal:"0,optional,ExportExptResultResponse"` +type ExperimentServiceFeedbackExptInsightAnalysisReportResult struct { + Success *FeedbackExptInsightAnalysisReportResponse `thrift:"success,0,optional" frugal:"0,optional,FeedbackExptInsightAnalysisReportResponse"` } -func NewExperimentServiceExportExptResultResult() *ExperimentServiceExportExptResultResult { - return &ExperimentServiceExportExptResultResult{} +func NewExperimentServiceFeedbackExptInsightAnalysisReportResult() *ExperimentServiceFeedbackExptInsightAnalysisReportResult { + return &ExperimentServiceFeedbackExptInsightAnalysisReportResult{} } -func (p *ExperimentServiceExportExptResultResult) InitDefault() { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) InitDefault() { } -var ExperimentServiceExportExptResultResult_Success_DEFAULT *ExportExptResultResponse +var ExperimentServiceFeedbackExptInsightAnalysisReportResult_Success_DEFAULT *FeedbackExptInsightAnalysisReportResponse -func (p *ExperimentServiceExportExptResultResult) GetSuccess() (v *ExportExptResultResponse) { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) GetSuccess() (v *FeedbackExptInsightAnalysisReportResponse) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceExportExptResultResult_Success_DEFAULT + return ExperimentServiceFeedbackExptInsightAnalysisReportResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceExportExptResultResult) SetSuccess(x interface{}) { - p.Success = x.(*ExportExptResultResponse) +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) SetSuccess(x interface{}) { + p.Success = x.(*FeedbackExptInsightAnalysisReportResponse) } -var fieldIDToName_ExperimentServiceExportExptResultResult = map[int16]string{ +var fieldIDToName_ExperimentServiceFeedbackExptInsightAnalysisReportResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceExportExptResultResult) IsSetSuccess() bool { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceExportExptResultResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -37952,7 +46419,7 @@ ReadStructBeginError: 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_ExperimentServiceExportExptResultResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceFeedbackExptInsightAnalysisReportResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -37962,8 +46429,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceExportExptResultResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewExportExptResultResponse() +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewFeedbackExptInsightAnalysisReportResponse() if err := _field.Read(iprot); err != nil { return err } @@ -37971,9 +46438,9 @@ func (p *ExperimentServiceExportExptResultResult) ReadField0(iprot thrift.TProto return nil } -func (p *ExperimentServiceExportExptResultResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ExportExptResult_result"); err != nil { + if err = oprot.WriteStructBegin("FeedbackExptInsightAnalysisReport_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -37999,7 +46466,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceExportExptResultResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -38018,15 +46485,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceExportExptResultResult) String() string { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceExportExptResultResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceFeedbackExptInsightAnalysisReportResult(%+v)", *p) } -func (p *ExperimentServiceExportExptResultResult) DeepEqual(ano *ExperimentServiceExportExptResultResult) bool { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) DeepEqual(ano *ExperimentServiceFeedbackExptInsightAnalysisReportResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -38038,7 +46505,7 @@ func (p *ExperimentServiceExportExptResultResult) DeepEqual(ano *ExperimentServi return true } -func (p *ExperimentServiceExportExptResultResult) Field0DeepEqual(src *ExportExptResultResponse) bool { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) Field0DeepEqual(src *FeedbackExptInsightAnalysisReportResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -38046,41 +46513,41 @@ func (p *ExperimentServiceExportExptResultResult) Field0DeepEqual(src *ExportExp return true } -type ExperimentServiceListExptResultExportRecordArgs struct { - Req *ListExptResultExportRecordRequest `thrift:"req,1" frugal:"1,default,ListExptResultExportRecordRequest"` +type ExperimentServiceListExptInsightAnalysisCommentArgs struct { + Req *ListExptInsightAnalysisCommentRequest `thrift:"req,1" frugal:"1,default,ListExptInsightAnalysisCommentRequest"` } -func NewExperimentServiceListExptResultExportRecordArgs() *ExperimentServiceListExptResultExportRecordArgs { - return &ExperimentServiceListExptResultExportRecordArgs{} +func NewExperimentServiceListExptInsightAnalysisCommentArgs() *ExperimentServiceListExptInsightAnalysisCommentArgs { + return &ExperimentServiceListExptInsightAnalysisCommentArgs{} } -func (p *ExperimentServiceListExptResultExportRecordArgs) InitDefault() { +func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) InitDefault() { } -var ExperimentServiceListExptResultExportRecordArgs_Req_DEFAULT *ListExptResultExportRecordRequest +var ExperimentServiceListExptInsightAnalysisCommentArgs_Req_DEFAULT *ListExptInsightAnalysisCommentRequest -func (p *ExperimentServiceListExptResultExportRecordArgs) GetReq() (v *ListExptResultExportRecordRequest) { +func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) GetReq() (v *ListExptInsightAnalysisCommentRequest) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceListExptResultExportRecordArgs_Req_DEFAULT + return ExperimentServiceListExptInsightAnalysisCommentArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceListExptResultExportRecordArgs) SetReq(val *ListExptResultExportRecordRequest) { +func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) SetReq(val *ListExptInsightAnalysisCommentRequest) { p.Req = val } -var fieldIDToName_ExperimentServiceListExptResultExportRecordArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceListExptInsightAnalysisCommentArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceListExptResultExportRecordArgs) IsSetReq() bool { +func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceListExptResultExportRecordArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -38125,7 +46592,7 @@ ReadStructBeginError: 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_ExperimentServiceListExptResultExportRecordArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceListExptInsightAnalysisCommentArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -38135,8 +46602,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceListExptResultExportRecordArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewListExptResultExportRecordRequest() +func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewListExptInsightAnalysisCommentRequest() if err := _field.Read(iprot); err != nil { return err } @@ -38144,9 +46611,9 @@ func (p *ExperimentServiceListExptResultExportRecordArgs) ReadField1(iprot thrif return nil } -func (p *ExperimentServiceListExptResultExportRecordArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListExptResultExportRecord_args"); err != nil { + if err = oprot.WriteStructBegin("ListExptInsightAnalysisComment_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -38172,7 +46639,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceListExptResultExportRecordArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -38189,15 +46656,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceListExptResultExportRecordArgs) String() string { +func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceListExptResultExportRecordArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceListExptInsightAnalysisCommentArgs(%+v)", *p) } -func (p *ExperimentServiceListExptResultExportRecordArgs) DeepEqual(ano *ExperimentServiceListExptResultExportRecordArgs) bool { +func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) DeepEqual(ano *ExperimentServiceListExptInsightAnalysisCommentArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -38209,7 +46676,7 @@ func (p *ExperimentServiceListExptResultExportRecordArgs) DeepEqual(ano *Experim return true } -func (p *ExperimentServiceListExptResultExportRecordArgs) Field1DeepEqual(src *ListExptResultExportRecordRequest) bool { +func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) Field1DeepEqual(src *ListExptInsightAnalysisCommentRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -38217,41 +46684,41 @@ func (p *ExperimentServiceListExptResultExportRecordArgs) Field1DeepEqual(src *L return true } -type ExperimentServiceListExptResultExportRecordResult struct { - Success *ListExptResultExportRecordResponse `thrift:"success,0,optional" frugal:"0,optional,ListExptResultExportRecordResponse"` +type ExperimentServiceListExptInsightAnalysisCommentResult struct { + Success *ListExptInsightAnalysisCommentResponse `thrift:"success,0,optional" frugal:"0,optional,ListExptInsightAnalysisCommentResponse"` } -func NewExperimentServiceListExptResultExportRecordResult() *ExperimentServiceListExptResultExportRecordResult { - return &ExperimentServiceListExptResultExportRecordResult{} +func NewExperimentServiceListExptInsightAnalysisCommentResult() *ExperimentServiceListExptInsightAnalysisCommentResult { + return &ExperimentServiceListExptInsightAnalysisCommentResult{} } -func (p *ExperimentServiceListExptResultExportRecordResult) InitDefault() { +func (p *ExperimentServiceListExptInsightAnalysisCommentResult) InitDefault() { } -var ExperimentServiceListExptResultExportRecordResult_Success_DEFAULT *ListExptResultExportRecordResponse +var ExperimentServiceListExptInsightAnalysisCommentResult_Success_DEFAULT *ListExptInsightAnalysisCommentResponse -func (p *ExperimentServiceListExptResultExportRecordResult) GetSuccess() (v *ListExptResultExportRecordResponse) { +func (p *ExperimentServiceListExptInsightAnalysisCommentResult) GetSuccess() (v *ListExptInsightAnalysisCommentResponse) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceListExptResultExportRecordResult_Success_DEFAULT + return ExperimentServiceListExptInsightAnalysisCommentResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceListExptResultExportRecordResult) SetSuccess(x interface{}) { - p.Success = x.(*ListExptResultExportRecordResponse) +func (p *ExperimentServiceListExptInsightAnalysisCommentResult) SetSuccess(x interface{}) { + p.Success = x.(*ListExptInsightAnalysisCommentResponse) } -var fieldIDToName_ExperimentServiceListExptResultExportRecordResult = map[int16]string{ +var fieldIDToName_ExperimentServiceListExptInsightAnalysisCommentResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceListExptResultExportRecordResult) IsSetSuccess() bool { +func (p *ExperimentServiceListExptInsightAnalysisCommentResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceListExptResultExportRecordResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExptInsightAnalysisCommentResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -38296,7 +46763,7 @@ ReadStructBeginError: 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_ExperimentServiceListExptResultExportRecordResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceListExptInsightAnalysisCommentResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -38306,8 +46773,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceListExptResultExportRecordResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewListExptResultExportRecordResponse() +func (p *ExperimentServiceListExptInsightAnalysisCommentResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewListExptInsightAnalysisCommentResponse() if err := _field.Read(iprot); err != nil { return err } @@ -38315,9 +46782,9 @@ func (p *ExperimentServiceListExptResultExportRecordResult) ReadField0(iprot thr return nil } -func (p *ExperimentServiceListExptResultExportRecordResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExptInsightAnalysisCommentResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListExptResultExportRecord_result"); err != nil { + if err = oprot.WriteStructBegin("ListExptInsightAnalysisComment_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -38343,7 +46810,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceListExptResultExportRecordResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExptInsightAnalysisCommentResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -38362,15 +46829,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceListExptResultExportRecordResult) String() string { +func (p *ExperimentServiceListExptInsightAnalysisCommentResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceListExptResultExportRecordResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceListExptInsightAnalysisCommentResult(%+v)", *p) } -func (p *ExperimentServiceListExptResultExportRecordResult) DeepEqual(ano *ExperimentServiceListExptResultExportRecordResult) bool { +func (p *ExperimentServiceListExptInsightAnalysisCommentResult) DeepEqual(ano *ExperimentServiceListExptInsightAnalysisCommentResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -38382,7 +46849,7 @@ func (p *ExperimentServiceListExptResultExportRecordResult) DeepEqual(ano *Exper return true } -func (p *ExperimentServiceListExptResultExportRecordResult) Field0DeepEqual(src *ListExptResultExportRecordResponse) bool { +func (p *ExperimentServiceListExptInsightAnalysisCommentResult) Field0DeepEqual(src *ListExptInsightAnalysisCommentResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -38390,41 +46857,41 @@ func (p *ExperimentServiceListExptResultExportRecordResult) Field0DeepEqual(src return true } -type ExperimentServiceGetExptResultExportRecordArgs struct { - Req *GetExptResultExportRecordRequest `thrift:"req,1" frugal:"1,default,GetExptResultExportRecordRequest"` +type ExperimentServiceGetAnalysisRecordFeedbackVoteArgs struct { + Req *GetAnalysisRecordFeedbackVoteRequest `thrift:"req,1" frugal:"1,default,GetAnalysisRecordFeedbackVoteRequest"` } -func NewExperimentServiceGetExptResultExportRecordArgs() *ExperimentServiceGetExptResultExportRecordArgs { - return &ExperimentServiceGetExptResultExportRecordArgs{} +func NewExperimentServiceGetAnalysisRecordFeedbackVoteArgs() *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs { + return &ExperimentServiceGetAnalysisRecordFeedbackVoteArgs{} } -func (p *ExperimentServiceGetExptResultExportRecordArgs) InitDefault() { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) InitDefault() { } -var ExperimentServiceGetExptResultExportRecordArgs_Req_DEFAULT *GetExptResultExportRecordRequest +var ExperimentServiceGetAnalysisRecordFeedbackVoteArgs_Req_DEFAULT *GetAnalysisRecordFeedbackVoteRequest -func (p *ExperimentServiceGetExptResultExportRecordArgs) GetReq() (v *GetExptResultExportRecordRequest) { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) GetReq() (v *GetAnalysisRecordFeedbackVoteRequest) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceGetExptResultExportRecordArgs_Req_DEFAULT + return ExperimentServiceGetAnalysisRecordFeedbackVoteArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceGetExptResultExportRecordArgs) SetReq(val *GetExptResultExportRecordRequest) { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) SetReq(val *GetAnalysisRecordFeedbackVoteRequest) { p.Req = val } -var fieldIDToName_ExperimentServiceGetExptResultExportRecordArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceGetAnalysisRecordFeedbackVoteArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceGetExptResultExportRecordArgs) IsSetReq() bool { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceGetExptResultExportRecordArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -38469,7 +46936,7 @@ ReadStructBeginError: 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_ExperimentServiceGetExptResultExportRecordArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceGetAnalysisRecordFeedbackVoteArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -38479,8 +46946,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceGetExptResultExportRecordArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewGetExptResultExportRecordRequest() +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewGetAnalysisRecordFeedbackVoteRequest() if err := _field.Read(iprot); err != nil { return err } @@ -38488,9 +46955,9 @@ func (p *ExperimentServiceGetExptResultExportRecordArgs) ReadField1(iprot thrift return nil } -func (p *ExperimentServiceGetExptResultExportRecordArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("GetExptResultExportRecord_args"); err != nil { + if err = oprot.WriteStructBegin("GetAnalysisRecordFeedbackVote_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -38516,7 +46983,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceGetExptResultExportRecordArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -38533,15 +47000,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceGetExptResultExportRecordArgs) String() string { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceGetExptResultExportRecordArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceGetAnalysisRecordFeedbackVoteArgs(%+v)", *p) } -func (p *ExperimentServiceGetExptResultExportRecordArgs) DeepEqual(ano *ExperimentServiceGetExptResultExportRecordArgs) bool { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) DeepEqual(ano *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -38553,7 +47020,7 @@ func (p *ExperimentServiceGetExptResultExportRecordArgs) DeepEqual(ano *Experime return true } -func (p *ExperimentServiceGetExptResultExportRecordArgs) Field1DeepEqual(src *GetExptResultExportRecordRequest) bool { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) Field1DeepEqual(src *GetAnalysisRecordFeedbackVoteRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -38561,41 +47028,41 @@ func (p *ExperimentServiceGetExptResultExportRecordArgs) Field1DeepEqual(src *Ge return true } -type ExperimentServiceGetExptResultExportRecordResult struct { - Success *GetExptResultExportRecordResponse `thrift:"success,0,optional" frugal:"0,optional,GetExptResultExportRecordResponse"` +type ExperimentServiceGetAnalysisRecordFeedbackVoteResult struct { + Success *GetAnalysisRecordFeedbackVoteResponse `thrift:"success,0,optional" frugal:"0,optional,GetAnalysisRecordFeedbackVoteResponse"` } -func NewExperimentServiceGetExptResultExportRecordResult() *ExperimentServiceGetExptResultExportRecordResult { - return &ExperimentServiceGetExptResultExportRecordResult{} +func NewExperimentServiceGetAnalysisRecordFeedbackVoteResult() *ExperimentServiceGetAnalysisRecordFeedbackVoteResult { + return &ExperimentServiceGetAnalysisRecordFeedbackVoteResult{} } -func (p *ExperimentServiceGetExptResultExportRecordResult) InitDefault() { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) InitDefault() { } -var ExperimentServiceGetExptResultExportRecordResult_Success_DEFAULT *GetExptResultExportRecordResponse +var ExperimentServiceGetAnalysisRecordFeedbackVoteResult_Success_DEFAULT *GetAnalysisRecordFeedbackVoteResponse -func (p *ExperimentServiceGetExptResultExportRecordResult) GetSuccess() (v *GetExptResultExportRecordResponse) { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) GetSuccess() (v *GetAnalysisRecordFeedbackVoteResponse) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceGetExptResultExportRecordResult_Success_DEFAULT + return ExperimentServiceGetAnalysisRecordFeedbackVoteResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceGetExptResultExportRecordResult) SetSuccess(x interface{}) { - p.Success = x.(*GetExptResultExportRecordResponse) +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) SetSuccess(x interface{}) { + p.Success = x.(*GetAnalysisRecordFeedbackVoteResponse) } -var fieldIDToName_ExperimentServiceGetExptResultExportRecordResult = map[int16]string{ +var fieldIDToName_ExperimentServiceGetAnalysisRecordFeedbackVoteResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceGetExptResultExportRecordResult) IsSetSuccess() bool { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceGetExptResultExportRecordResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -38640,7 +47107,7 @@ ReadStructBeginError: 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_ExperimentServiceGetExptResultExportRecordResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceGetAnalysisRecordFeedbackVoteResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -38650,8 +47117,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceGetExptResultExportRecordResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewGetExptResultExportRecordResponse() +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewGetAnalysisRecordFeedbackVoteResponse() if err := _field.Read(iprot); err != nil { return err } @@ -38659,9 +47126,9 @@ func (p *ExperimentServiceGetExptResultExportRecordResult) ReadField0(iprot thri return nil } -func (p *ExperimentServiceGetExptResultExportRecordResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("GetExptResultExportRecord_result"); err != nil { + if err = oprot.WriteStructBegin("GetAnalysisRecordFeedbackVote_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -38687,7 +47154,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceGetExptResultExportRecordResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -38706,15 +47173,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceGetExptResultExportRecordResult) String() string { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceGetExptResultExportRecordResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceGetAnalysisRecordFeedbackVoteResult(%+v)", *p) } -func (p *ExperimentServiceGetExptResultExportRecordResult) DeepEqual(ano *ExperimentServiceGetExptResultExportRecordResult) bool { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) DeepEqual(ano *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -38726,7 +47193,7 @@ func (p *ExperimentServiceGetExptResultExportRecordResult) DeepEqual(ano *Experi return true } -func (p *ExperimentServiceGetExptResultExportRecordResult) Field0DeepEqual(src *GetExptResultExportRecordResponse) bool { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) Field0DeepEqual(src *GetAnalysisRecordFeedbackVoteResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -38734,41 +47201,41 @@ func (p *ExperimentServiceGetExptResultExportRecordResult) Field0DeepEqual(src * return true } -type ExperimentServiceInsightAnalysisExperimentArgs struct { - Req *InsightAnalysisExperimentRequest `thrift:"req,1" frugal:"1,default,InsightAnalysisExperimentRequest"` +type ExperimentServiceCreateExperimentTemplateArgs struct { + Req *CreateExperimentTemplateRequest `thrift:"req,1" frugal:"1,default,CreateExperimentTemplateRequest"` } -func NewExperimentServiceInsightAnalysisExperimentArgs() *ExperimentServiceInsightAnalysisExperimentArgs { - return &ExperimentServiceInsightAnalysisExperimentArgs{} +func NewExperimentServiceCreateExperimentTemplateArgs() *ExperimentServiceCreateExperimentTemplateArgs { + return &ExperimentServiceCreateExperimentTemplateArgs{} } -func (p *ExperimentServiceInsightAnalysisExperimentArgs) InitDefault() { +func (p *ExperimentServiceCreateExperimentTemplateArgs) InitDefault() { } -var ExperimentServiceInsightAnalysisExperimentArgs_Req_DEFAULT *InsightAnalysisExperimentRequest +var ExperimentServiceCreateExperimentTemplateArgs_Req_DEFAULT *CreateExperimentTemplateRequest -func (p *ExperimentServiceInsightAnalysisExperimentArgs) GetReq() (v *InsightAnalysisExperimentRequest) { +func (p *ExperimentServiceCreateExperimentTemplateArgs) GetReq() (v *CreateExperimentTemplateRequest) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceInsightAnalysisExperimentArgs_Req_DEFAULT + return ExperimentServiceCreateExperimentTemplateArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceInsightAnalysisExperimentArgs) SetReq(val *InsightAnalysisExperimentRequest) { +func (p *ExperimentServiceCreateExperimentTemplateArgs) SetReq(val *CreateExperimentTemplateRequest) { p.Req = val } -var fieldIDToName_ExperimentServiceInsightAnalysisExperimentArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceCreateExperimentTemplateArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceInsightAnalysisExperimentArgs) IsSetReq() bool { +func (p *ExperimentServiceCreateExperimentTemplateArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceInsightAnalysisExperimentArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCreateExperimentTemplateArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -38813,7 +47280,7 @@ ReadStructBeginError: 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_ExperimentServiceInsightAnalysisExperimentArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceCreateExperimentTemplateArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -38823,8 +47290,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceInsightAnalysisExperimentArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewInsightAnalysisExperimentRequest() +func (p *ExperimentServiceCreateExperimentTemplateArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewCreateExperimentTemplateRequest() if err := _field.Read(iprot); err != nil { return err } @@ -38832,9 +47299,9 @@ func (p *ExperimentServiceInsightAnalysisExperimentArgs) ReadField1(iprot thrift return nil } -func (p *ExperimentServiceInsightAnalysisExperimentArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCreateExperimentTemplateArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("InsightAnalysisExperiment_args"); err != nil { + if err = oprot.WriteStructBegin("CreateExperimentTemplate_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -38860,7 +47327,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceInsightAnalysisExperimentArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCreateExperimentTemplateArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -38877,15 +47344,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceInsightAnalysisExperimentArgs) String() string { +func (p *ExperimentServiceCreateExperimentTemplateArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceInsightAnalysisExperimentArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceCreateExperimentTemplateArgs(%+v)", *p) } -func (p *ExperimentServiceInsightAnalysisExperimentArgs) DeepEqual(ano *ExperimentServiceInsightAnalysisExperimentArgs) bool { +func (p *ExperimentServiceCreateExperimentTemplateArgs) DeepEqual(ano *ExperimentServiceCreateExperimentTemplateArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -38897,7 +47364,7 @@ func (p *ExperimentServiceInsightAnalysisExperimentArgs) DeepEqual(ano *Experime return true } -func (p *ExperimentServiceInsightAnalysisExperimentArgs) Field1DeepEqual(src *InsightAnalysisExperimentRequest) bool { +func (p *ExperimentServiceCreateExperimentTemplateArgs) Field1DeepEqual(src *CreateExperimentTemplateRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -38905,41 +47372,41 @@ func (p *ExperimentServiceInsightAnalysisExperimentArgs) Field1DeepEqual(src *In return true } -type ExperimentServiceInsightAnalysisExperimentResult struct { - Success *InsightAnalysisExperimentResponse `thrift:"success,0,optional" frugal:"0,optional,InsightAnalysisExperimentResponse"` +type ExperimentServiceCreateExperimentTemplateResult struct { + Success *CreateExperimentTemplateResponse `thrift:"success,0,optional" frugal:"0,optional,CreateExperimentTemplateResponse"` } -func NewExperimentServiceInsightAnalysisExperimentResult() *ExperimentServiceInsightAnalysisExperimentResult { - return &ExperimentServiceInsightAnalysisExperimentResult{} +func NewExperimentServiceCreateExperimentTemplateResult() *ExperimentServiceCreateExperimentTemplateResult { + return &ExperimentServiceCreateExperimentTemplateResult{} } -func (p *ExperimentServiceInsightAnalysisExperimentResult) InitDefault() { +func (p *ExperimentServiceCreateExperimentTemplateResult) InitDefault() { } -var ExperimentServiceInsightAnalysisExperimentResult_Success_DEFAULT *InsightAnalysisExperimentResponse +var ExperimentServiceCreateExperimentTemplateResult_Success_DEFAULT *CreateExperimentTemplateResponse -func (p *ExperimentServiceInsightAnalysisExperimentResult) GetSuccess() (v *InsightAnalysisExperimentResponse) { +func (p *ExperimentServiceCreateExperimentTemplateResult) GetSuccess() (v *CreateExperimentTemplateResponse) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceInsightAnalysisExperimentResult_Success_DEFAULT + return ExperimentServiceCreateExperimentTemplateResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceInsightAnalysisExperimentResult) SetSuccess(x interface{}) { - p.Success = x.(*InsightAnalysisExperimentResponse) +func (p *ExperimentServiceCreateExperimentTemplateResult) SetSuccess(x interface{}) { + p.Success = x.(*CreateExperimentTemplateResponse) } -var fieldIDToName_ExperimentServiceInsightAnalysisExperimentResult = map[int16]string{ +var fieldIDToName_ExperimentServiceCreateExperimentTemplateResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceInsightAnalysisExperimentResult) IsSetSuccess() bool { +func (p *ExperimentServiceCreateExperimentTemplateResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceInsightAnalysisExperimentResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCreateExperimentTemplateResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -38984,7 +47451,7 @@ ReadStructBeginError: 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_ExperimentServiceInsightAnalysisExperimentResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceCreateExperimentTemplateResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -38994,8 +47461,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceInsightAnalysisExperimentResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewInsightAnalysisExperimentResponse() +func (p *ExperimentServiceCreateExperimentTemplateResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewCreateExperimentTemplateResponse() if err := _field.Read(iprot); err != nil { return err } @@ -39003,9 +47470,9 @@ func (p *ExperimentServiceInsightAnalysisExperimentResult) ReadField0(iprot thri return nil } -func (p *ExperimentServiceInsightAnalysisExperimentResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCreateExperimentTemplateResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("InsightAnalysisExperiment_result"); err != nil { + if err = oprot.WriteStructBegin("CreateExperimentTemplate_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -39031,7 +47498,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceInsightAnalysisExperimentResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCreateExperimentTemplateResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -39050,15 +47517,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceInsightAnalysisExperimentResult) String() string { +func (p *ExperimentServiceCreateExperimentTemplateResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceInsightAnalysisExperimentResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceCreateExperimentTemplateResult(%+v)", *p) } -func (p *ExperimentServiceInsightAnalysisExperimentResult) DeepEqual(ano *ExperimentServiceInsightAnalysisExperimentResult) bool { +func (p *ExperimentServiceCreateExperimentTemplateResult) DeepEqual(ano *ExperimentServiceCreateExperimentTemplateResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -39070,7 +47537,7 @@ func (p *ExperimentServiceInsightAnalysisExperimentResult) DeepEqual(ano *Experi return true } -func (p *ExperimentServiceInsightAnalysisExperimentResult) Field0DeepEqual(src *InsightAnalysisExperimentResponse) bool { +func (p *ExperimentServiceCreateExperimentTemplateResult) Field0DeepEqual(src *CreateExperimentTemplateResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -39078,41 +47545,41 @@ func (p *ExperimentServiceInsightAnalysisExperimentResult) Field0DeepEqual(src * return true } -type ExperimentServiceListExptInsightAnalysisRecordArgs struct { - Req *ListExptInsightAnalysisRecordRequest `thrift:"req,1" frugal:"1,default,ListExptInsightAnalysisRecordRequest"` +type ExperimentServiceBatchGetExperimentTemplateArgs struct { + Req *BatchGetExperimentTemplateRequest `thrift:"req,1" frugal:"1,default,BatchGetExperimentTemplateRequest"` } -func NewExperimentServiceListExptInsightAnalysisRecordArgs() *ExperimentServiceListExptInsightAnalysisRecordArgs { - return &ExperimentServiceListExptInsightAnalysisRecordArgs{} +func NewExperimentServiceBatchGetExperimentTemplateArgs() *ExperimentServiceBatchGetExperimentTemplateArgs { + return &ExperimentServiceBatchGetExperimentTemplateArgs{} } -func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) InitDefault() { +func (p *ExperimentServiceBatchGetExperimentTemplateArgs) InitDefault() { } -var ExperimentServiceListExptInsightAnalysisRecordArgs_Req_DEFAULT *ListExptInsightAnalysisRecordRequest +var ExperimentServiceBatchGetExperimentTemplateArgs_Req_DEFAULT *BatchGetExperimentTemplateRequest -func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) GetReq() (v *ListExptInsightAnalysisRecordRequest) { +func (p *ExperimentServiceBatchGetExperimentTemplateArgs) GetReq() (v *BatchGetExperimentTemplateRequest) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceListExptInsightAnalysisRecordArgs_Req_DEFAULT + return ExperimentServiceBatchGetExperimentTemplateArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) SetReq(val *ListExptInsightAnalysisRecordRequest) { +func (p *ExperimentServiceBatchGetExperimentTemplateArgs) SetReq(val *BatchGetExperimentTemplateRequest) { p.Req = val } -var fieldIDToName_ExperimentServiceListExptInsightAnalysisRecordArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceBatchGetExperimentTemplateArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) IsSetReq() bool { +func (p *ExperimentServiceBatchGetExperimentTemplateArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceBatchGetExperimentTemplateArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -39157,7 +47624,7 @@ ReadStructBeginError: 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_ExperimentServiceListExptInsightAnalysisRecordArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceBatchGetExperimentTemplateArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -39167,8 +47634,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewListExptInsightAnalysisRecordRequest() +func (p *ExperimentServiceBatchGetExperimentTemplateArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewBatchGetExperimentTemplateRequest() if err := _field.Read(iprot); err != nil { return err } @@ -39176,9 +47643,9 @@ func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) ReadField1(iprot th return nil } -func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceBatchGetExperimentTemplateArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListExptInsightAnalysisRecord_args"); err != nil { + if err = oprot.WriteStructBegin("BatchGetExperimentTemplate_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -39204,7 +47671,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceBatchGetExperimentTemplateArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -39221,15 +47688,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) String() string { +func (p *ExperimentServiceBatchGetExperimentTemplateArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceListExptInsightAnalysisRecordArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceBatchGetExperimentTemplateArgs(%+v)", *p) } -func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) DeepEqual(ano *ExperimentServiceListExptInsightAnalysisRecordArgs) bool { +func (p *ExperimentServiceBatchGetExperimentTemplateArgs) DeepEqual(ano *ExperimentServiceBatchGetExperimentTemplateArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -39241,7 +47708,7 @@ func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) DeepEqual(ano *Expe return true } -func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) Field1DeepEqual(src *ListExptInsightAnalysisRecordRequest) bool { +func (p *ExperimentServiceBatchGetExperimentTemplateArgs) Field1DeepEqual(src *BatchGetExperimentTemplateRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -39249,41 +47716,41 @@ func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) Field1DeepEqual(src return true } -type ExperimentServiceListExptInsightAnalysisRecordResult struct { - Success *ListExptInsightAnalysisRecordResponse `thrift:"success,0,optional" frugal:"0,optional,ListExptInsightAnalysisRecordResponse"` +type ExperimentServiceBatchGetExperimentTemplateResult struct { + Success *BatchGetExperimentTemplateResponse `thrift:"success,0,optional" frugal:"0,optional,BatchGetExperimentTemplateResponse"` } -func NewExperimentServiceListExptInsightAnalysisRecordResult() *ExperimentServiceListExptInsightAnalysisRecordResult { - return &ExperimentServiceListExptInsightAnalysisRecordResult{} +func NewExperimentServiceBatchGetExperimentTemplateResult() *ExperimentServiceBatchGetExperimentTemplateResult { + return &ExperimentServiceBatchGetExperimentTemplateResult{} } -func (p *ExperimentServiceListExptInsightAnalysisRecordResult) InitDefault() { +func (p *ExperimentServiceBatchGetExperimentTemplateResult) InitDefault() { } -var ExperimentServiceListExptInsightAnalysisRecordResult_Success_DEFAULT *ListExptInsightAnalysisRecordResponse +var ExperimentServiceBatchGetExperimentTemplateResult_Success_DEFAULT *BatchGetExperimentTemplateResponse -func (p *ExperimentServiceListExptInsightAnalysisRecordResult) GetSuccess() (v *ListExptInsightAnalysisRecordResponse) { +func (p *ExperimentServiceBatchGetExperimentTemplateResult) GetSuccess() (v *BatchGetExperimentTemplateResponse) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceListExptInsightAnalysisRecordResult_Success_DEFAULT + return ExperimentServiceBatchGetExperimentTemplateResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceListExptInsightAnalysisRecordResult) SetSuccess(x interface{}) { - p.Success = x.(*ListExptInsightAnalysisRecordResponse) +func (p *ExperimentServiceBatchGetExperimentTemplateResult) SetSuccess(x interface{}) { + p.Success = x.(*BatchGetExperimentTemplateResponse) } -var fieldIDToName_ExperimentServiceListExptInsightAnalysisRecordResult = map[int16]string{ +var fieldIDToName_ExperimentServiceBatchGetExperimentTemplateResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceListExptInsightAnalysisRecordResult) IsSetSuccess() bool { +func (p *ExperimentServiceBatchGetExperimentTemplateResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceListExptInsightAnalysisRecordResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceBatchGetExperimentTemplateResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -39328,7 +47795,7 @@ ReadStructBeginError: 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_ExperimentServiceListExptInsightAnalysisRecordResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceBatchGetExperimentTemplateResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -39338,8 +47805,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceListExptInsightAnalysisRecordResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewListExptInsightAnalysisRecordResponse() +func (p *ExperimentServiceBatchGetExperimentTemplateResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewBatchGetExperimentTemplateResponse() if err := _field.Read(iprot); err != nil { return err } @@ -39347,9 +47814,9 @@ func (p *ExperimentServiceListExptInsightAnalysisRecordResult) ReadField0(iprot return nil } -func (p *ExperimentServiceListExptInsightAnalysisRecordResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceBatchGetExperimentTemplateResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListExptInsightAnalysisRecord_result"); err != nil { + if err = oprot.WriteStructBegin("BatchGetExperimentTemplate_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -39375,7 +47842,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceListExptInsightAnalysisRecordResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceBatchGetExperimentTemplateResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -39394,15 +47861,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceListExptInsightAnalysisRecordResult) String() string { +func (p *ExperimentServiceBatchGetExperimentTemplateResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceListExptInsightAnalysisRecordResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceBatchGetExperimentTemplateResult(%+v)", *p) } -func (p *ExperimentServiceListExptInsightAnalysisRecordResult) DeepEqual(ano *ExperimentServiceListExptInsightAnalysisRecordResult) bool { +func (p *ExperimentServiceBatchGetExperimentTemplateResult) DeepEqual(ano *ExperimentServiceBatchGetExperimentTemplateResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -39414,7 +47881,7 @@ func (p *ExperimentServiceListExptInsightAnalysisRecordResult) DeepEqual(ano *Ex return true } -func (p *ExperimentServiceListExptInsightAnalysisRecordResult) Field0DeepEqual(src *ListExptInsightAnalysisRecordResponse) bool { +func (p *ExperimentServiceBatchGetExperimentTemplateResult) Field0DeepEqual(src *BatchGetExperimentTemplateResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -39422,41 +47889,41 @@ func (p *ExperimentServiceListExptInsightAnalysisRecordResult) Field0DeepEqual(s return true } -type ExperimentServiceDeleteExptInsightAnalysisRecordArgs struct { - Req *DeleteExptInsightAnalysisRecordRequest `thrift:"req,1" frugal:"1,default,DeleteExptInsightAnalysisRecordRequest"` +type ExperimentServiceUpdateExperimentTemplateMetaArgs struct { + Req *UpdateExperimentTemplateMetaRequest `thrift:"req,1" frugal:"1,default,UpdateExperimentTemplateMetaRequest"` } -func NewExperimentServiceDeleteExptInsightAnalysisRecordArgs() *ExperimentServiceDeleteExptInsightAnalysisRecordArgs { - return &ExperimentServiceDeleteExptInsightAnalysisRecordArgs{} +func NewExperimentServiceUpdateExperimentTemplateMetaArgs() *ExperimentServiceUpdateExperimentTemplateMetaArgs { + return &ExperimentServiceUpdateExperimentTemplateMetaArgs{} } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) InitDefault() { +func (p *ExperimentServiceUpdateExperimentTemplateMetaArgs) InitDefault() { } -var ExperimentServiceDeleteExptInsightAnalysisRecordArgs_Req_DEFAULT *DeleteExptInsightAnalysisRecordRequest +var ExperimentServiceUpdateExperimentTemplateMetaArgs_Req_DEFAULT *UpdateExperimentTemplateMetaRequest -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) GetReq() (v *DeleteExptInsightAnalysisRecordRequest) { +func (p *ExperimentServiceUpdateExperimentTemplateMetaArgs) GetReq() (v *UpdateExperimentTemplateMetaRequest) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceDeleteExptInsightAnalysisRecordArgs_Req_DEFAULT + return ExperimentServiceUpdateExperimentTemplateMetaArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) SetReq(val *DeleteExptInsightAnalysisRecordRequest) { +func (p *ExperimentServiceUpdateExperimentTemplateMetaArgs) SetReq(val *UpdateExperimentTemplateMetaRequest) { p.Req = val } -var fieldIDToName_ExperimentServiceDeleteExptInsightAnalysisRecordArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceUpdateExperimentTemplateMetaArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) IsSetReq() bool { +func (p *ExperimentServiceUpdateExperimentTemplateMetaArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceUpdateExperimentTemplateMetaArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -39501,7 +47968,7 @@ ReadStructBeginError: 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_ExperimentServiceDeleteExptInsightAnalysisRecordArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceUpdateExperimentTemplateMetaArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -39511,8 +47978,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewDeleteExptInsightAnalysisRecordRequest() +func (p *ExperimentServiceUpdateExperimentTemplateMetaArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewUpdateExperimentTemplateMetaRequest() if err := _field.Read(iprot); err != nil { return err } @@ -39520,9 +47987,9 @@ func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) ReadField1(iprot return nil } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceUpdateExperimentTemplateMetaArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("DeleteExptInsightAnalysisRecord_args"); err != nil { + if err = oprot.WriteStructBegin("UpdateExperimentTemplateMeta_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -39548,7 +48015,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceUpdateExperimentTemplateMetaArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -39565,15 +48032,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) String() string { +func (p *ExperimentServiceUpdateExperimentTemplateMetaArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceDeleteExptInsightAnalysisRecordArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceUpdateExperimentTemplateMetaArgs(%+v)", *p) } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) DeepEqual(ano *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) bool { +func (p *ExperimentServiceUpdateExperimentTemplateMetaArgs) DeepEqual(ano *ExperimentServiceUpdateExperimentTemplateMetaArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -39585,7 +48052,7 @@ func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) DeepEqual(ano *Ex return true } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) Field1DeepEqual(src *DeleteExptInsightAnalysisRecordRequest) bool { +func (p *ExperimentServiceUpdateExperimentTemplateMetaArgs) Field1DeepEqual(src *UpdateExperimentTemplateMetaRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -39593,41 +48060,41 @@ func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) Field1DeepEqual(s return true } -type ExperimentServiceDeleteExptInsightAnalysisRecordResult struct { - Success *DeleteExptInsightAnalysisRecordResponse `thrift:"success,0,optional" frugal:"0,optional,DeleteExptInsightAnalysisRecordResponse"` +type ExperimentServiceUpdateExperimentTemplateMetaResult struct { + Success *UpdateExperimentTemplateMetaResponse `thrift:"success,0,optional" frugal:"0,optional,UpdateExperimentTemplateMetaResponse"` } -func NewExperimentServiceDeleteExptInsightAnalysisRecordResult() *ExperimentServiceDeleteExptInsightAnalysisRecordResult { - return &ExperimentServiceDeleteExptInsightAnalysisRecordResult{} +func NewExperimentServiceUpdateExperimentTemplateMetaResult() *ExperimentServiceUpdateExperimentTemplateMetaResult { + return &ExperimentServiceUpdateExperimentTemplateMetaResult{} } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) InitDefault() { +func (p *ExperimentServiceUpdateExperimentTemplateMetaResult) InitDefault() { } -var ExperimentServiceDeleteExptInsightAnalysisRecordResult_Success_DEFAULT *DeleteExptInsightAnalysisRecordResponse +var ExperimentServiceUpdateExperimentTemplateMetaResult_Success_DEFAULT *UpdateExperimentTemplateMetaResponse -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) GetSuccess() (v *DeleteExptInsightAnalysisRecordResponse) { +func (p *ExperimentServiceUpdateExperimentTemplateMetaResult) GetSuccess() (v *UpdateExperimentTemplateMetaResponse) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceDeleteExptInsightAnalysisRecordResult_Success_DEFAULT + return ExperimentServiceUpdateExperimentTemplateMetaResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) SetSuccess(x interface{}) { - p.Success = x.(*DeleteExptInsightAnalysisRecordResponse) +func (p *ExperimentServiceUpdateExperimentTemplateMetaResult) SetSuccess(x interface{}) { + p.Success = x.(*UpdateExperimentTemplateMetaResponse) } -var fieldIDToName_ExperimentServiceDeleteExptInsightAnalysisRecordResult = map[int16]string{ +var fieldIDToName_ExperimentServiceUpdateExperimentTemplateMetaResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) IsSetSuccess() bool { +func (p *ExperimentServiceUpdateExperimentTemplateMetaResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceUpdateExperimentTemplateMetaResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -39672,7 +48139,7 @@ ReadStructBeginError: 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_ExperimentServiceDeleteExptInsightAnalysisRecordResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceUpdateExperimentTemplateMetaResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -39682,8 +48149,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewDeleteExptInsightAnalysisRecordResponse() +func (p *ExperimentServiceUpdateExperimentTemplateMetaResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewUpdateExperimentTemplateMetaResponse() if err := _field.Read(iprot); err != nil { return err } @@ -39691,9 +48158,9 @@ func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) ReadField0(ipro return nil } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceUpdateExperimentTemplateMetaResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("DeleteExptInsightAnalysisRecord_result"); err != nil { + if err = oprot.WriteStructBegin("UpdateExperimentTemplateMeta_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -39719,7 +48186,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceUpdateExperimentTemplateMetaResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -39738,15 +48205,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) String() string { +func (p *ExperimentServiceUpdateExperimentTemplateMetaResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceDeleteExptInsightAnalysisRecordResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceUpdateExperimentTemplateMetaResult(%+v)", *p) } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) DeepEqual(ano *ExperimentServiceDeleteExptInsightAnalysisRecordResult) bool { +func (p *ExperimentServiceUpdateExperimentTemplateMetaResult) DeepEqual(ano *ExperimentServiceUpdateExperimentTemplateMetaResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -39758,7 +48225,7 @@ func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) DeepEqual(ano * return true } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) Field0DeepEqual(src *DeleteExptInsightAnalysisRecordResponse) bool { +func (p *ExperimentServiceUpdateExperimentTemplateMetaResult) Field0DeepEqual(src *UpdateExperimentTemplateMetaResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -39766,41 +48233,41 @@ func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) Field0DeepEqual return true } -type ExperimentServiceGetExptInsightAnalysisRecordArgs struct { - Req *GetExptInsightAnalysisRecordRequest `thrift:"req,1" frugal:"1,default,GetExptInsightAnalysisRecordRequest"` +type ExperimentServiceUpdateExperimentTemplateArgs struct { + Req *UpdateExperimentTemplateRequest `thrift:"req,1" frugal:"1,default,UpdateExperimentTemplateRequest"` } -func NewExperimentServiceGetExptInsightAnalysisRecordArgs() *ExperimentServiceGetExptInsightAnalysisRecordArgs { - return &ExperimentServiceGetExptInsightAnalysisRecordArgs{} +func NewExperimentServiceUpdateExperimentTemplateArgs() *ExperimentServiceUpdateExperimentTemplateArgs { + return &ExperimentServiceUpdateExperimentTemplateArgs{} } -func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) InitDefault() { +func (p *ExperimentServiceUpdateExperimentTemplateArgs) InitDefault() { } -var ExperimentServiceGetExptInsightAnalysisRecordArgs_Req_DEFAULT *GetExptInsightAnalysisRecordRequest +var ExperimentServiceUpdateExperimentTemplateArgs_Req_DEFAULT *UpdateExperimentTemplateRequest -func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) GetReq() (v *GetExptInsightAnalysisRecordRequest) { +func (p *ExperimentServiceUpdateExperimentTemplateArgs) GetReq() (v *UpdateExperimentTemplateRequest) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceGetExptInsightAnalysisRecordArgs_Req_DEFAULT + return ExperimentServiceUpdateExperimentTemplateArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) SetReq(val *GetExptInsightAnalysisRecordRequest) { +func (p *ExperimentServiceUpdateExperimentTemplateArgs) SetReq(val *UpdateExperimentTemplateRequest) { p.Req = val } -var fieldIDToName_ExperimentServiceGetExptInsightAnalysisRecordArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceUpdateExperimentTemplateArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) IsSetReq() bool { +func (p *ExperimentServiceUpdateExperimentTemplateArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceUpdateExperimentTemplateArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -39845,7 +48312,7 @@ ReadStructBeginError: 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_ExperimentServiceGetExptInsightAnalysisRecordArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceUpdateExperimentTemplateArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -39855,8 +48322,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewGetExptInsightAnalysisRecordRequest() +func (p *ExperimentServiceUpdateExperimentTemplateArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewUpdateExperimentTemplateRequest() if err := _field.Read(iprot); err != nil { return err } @@ -39864,9 +48331,9 @@ func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) ReadField1(iprot thr return nil } -func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceUpdateExperimentTemplateArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("GetExptInsightAnalysisRecord_args"); err != nil { + if err = oprot.WriteStructBegin("UpdateExperimentTemplate_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -39892,7 +48359,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceUpdateExperimentTemplateArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -39909,15 +48376,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) String() string { +func (p *ExperimentServiceUpdateExperimentTemplateArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceGetExptInsightAnalysisRecordArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceUpdateExperimentTemplateArgs(%+v)", *p) } -func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) DeepEqual(ano *ExperimentServiceGetExptInsightAnalysisRecordArgs) bool { +func (p *ExperimentServiceUpdateExperimentTemplateArgs) DeepEqual(ano *ExperimentServiceUpdateExperimentTemplateArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -39929,7 +48396,7 @@ func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) DeepEqual(ano *Exper return true } -func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) Field1DeepEqual(src *GetExptInsightAnalysisRecordRequest) bool { +func (p *ExperimentServiceUpdateExperimentTemplateArgs) Field1DeepEqual(src *UpdateExperimentTemplateRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -39937,41 +48404,41 @@ func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) Field1DeepEqual(src return true } -type ExperimentServiceGetExptInsightAnalysisRecordResult struct { - Success *GetExptInsightAnalysisRecordResponse `thrift:"success,0,optional" frugal:"0,optional,GetExptInsightAnalysisRecordResponse"` +type ExperimentServiceUpdateExperimentTemplateResult struct { + Success *UpdateExperimentTemplateResponse `thrift:"success,0,optional" frugal:"0,optional,UpdateExperimentTemplateResponse"` } -func NewExperimentServiceGetExptInsightAnalysisRecordResult() *ExperimentServiceGetExptInsightAnalysisRecordResult { - return &ExperimentServiceGetExptInsightAnalysisRecordResult{} +func NewExperimentServiceUpdateExperimentTemplateResult() *ExperimentServiceUpdateExperimentTemplateResult { + return &ExperimentServiceUpdateExperimentTemplateResult{} } -func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) InitDefault() { +func (p *ExperimentServiceUpdateExperimentTemplateResult) InitDefault() { } -var ExperimentServiceGetExptInsightAnalysisRecordResult_Success_DEFAULT *GetExptInsightAnalysisRecordResponse +var ExperimentServiceUpdateExperimentTemplateResult_Success_DEFAULT *UpdateExperimentTemplateResponse -func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) GetSuccess() (v *GetExptInsightAnalysisRecordResponse) { +func (p *ExperimentServiceUpdateExperimentTemplateResult) GetSuccess() (v *UpdateExperimentTemplateResponse) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceGetExptInsightAnalysisRecordResult_Success_DEFAULT + return ExperimentServiceUpdateExperimentTemplateResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) SetSuccess(x interface{}) { - p.Success = x.(*GetExptInsightAnalysisRecordResponse) +func (p *ExperimentServiceUpdateExperimentTemplateResult) SetSuccess(x interface{}) { + p.Success = x.(*UpdateExperimentTemplateResponse) } -var fieldIDToName_ExperimentServiceGetExptInsightAnalysisRecordResult = map[int16]string{ +var fieldIDToName_ExperimentServiceUpdateExperimentTemplateResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) IsSetSuccess() bool { +func (p *ExperimentServiceUpdateExperimentTemplateResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceUpdateExperimentTemplateResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -40016,7 +48483,7 @@ ReadStructBeginError: 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_ExperimentServiceGetExptInsightAnalysisRecordResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceUpdateExperimentTemplateResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -40026,8 +48493,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewGetExptInsightAnalysisRecordResponse() +func (p *ExperimentServiceUpdateExperimentTemplateResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewUpdateExperimentTemplateResponse() if err := _field.Read(iprot); err != nil { return err } @@ -40035,9 +48502,9 @@ func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) ReadField0(iprot t return nil } -func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceUpdateExperimentTemplateResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("GetExptInsightAnalysisRecord_result"); err != nil { + if err = oprot.WriteStructBegin("UpdateExperimentTemplate_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -40063,7 +48530,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceUpdateExperimentTemplateResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -40082,15 +48549,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) String() string { +func (p *ExperimentServiceUpdateExperimentTemplateResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceGetExptInsightAnalysisRecordResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceUpdateExperimentTemplateResult(%+v)", *p) } -func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) DeepEqual(ano *ExperimentServiceGetExptInsightAnalysisRecordResult) bool { +func (p *ExperimentServiceUpdateExperimentTemplateResult) DeepEqual(ano *ExperimentServiceUpdateExperimentTemplateResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -40102,7 +48569,7 @@ func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) DeepEqual(ano *Exp return true } -func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) Field0DeepEqual(src *GetExptInsightAnalysisRecordResponse) bool { +func (p *ExperimentServiceUpdateExperimentTemplateResult) Field0DeepEqual(src *UpdateExperimentTemplateResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -40110,41 +48577,41 @@ func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) Field0DeepEqual(sr return true } -type ExperimentServiceFeedbackExptInsightAnalysisReportArgs struct { - Req *FeedbackExptInsightAnalysisReportRequest `thrift:"req,1" frugal:"1,default,FeedbackExptInsightAnalysisReportRequest"` +type ExperimentServiceDeleteExperimentTemplateArgs struct { + Req *DeleteExperimentTemplateRequest `thrift:"req,1" frugal:"1,default,DeleteExperimentTemplateRequest"` } -func NewExperimentServiceFeedbackExptInsightAnalysisReportArgs() *ExperimentServiceFeedbackExptInsightAnalysisReportArgs { - return &ExperimentServiceFeedbackExptInsightAnalysisReportArgs{} +func NewExperimentServiceDeleteExperimentTemplateArgs() *ExperimentServiceDeleteExperimentTemplateArgs { + return &ExperimentServiceDeleteExperimentTemplateArgs{} } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) InitDefault() { +func (p *ExperimentServiceDeleteExperimentTemplateArgs) InitDefault() { } -var ExperimentServiceFeedbackExptInsightAnalysisReportArgs_Req_DEFAULT *FeedbackExptInsightAnalysisReportRequest +var ExperimentServiceDeleteExperimentTemplateArgs_Req_DEFAULT *DeleteExperimentTemplateRequest -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) GetReq() (v *FeedbackExptInsightAnalysisReportRequest) { +func (p *ExperimentServiceDeleteExperimentTemplateArgs) GetReq() (v *DeleteExperimentTemplateRequest) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceFeedbackExptInsightAnalysisReportArgs_Req_DEFAULT + return ExperimentServiceDeleteExperimentTemplateArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) SetReq(val *FeedbackExptInsightAnalysisReportRequest) { +func (p *ExperimentServiceDeleteExperimentTemplateArgs) SetReq(val *DeleteExperimentTemplateRequest) { p.Req = val } -var fieldIDToName_ExperimentServiceFeedbackExptInsightAnalysisReportArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceDeleteExperimentTemplateArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) IsSetReq() bool { +func (p *ExperimentServiceDeleteExperimentTemplateArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceDeleteExperimentTemplateArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -40189,7 +48656,7 @@ ReadStructBeginError: 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_ExperimentServiceFeedbackExptInsightAnalysisReportArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceDeleteExperimentTemplateArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -40199,8 +48666,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewFeedbackExptInsightAnalysisReportRequest() +func (p *ExperimentServiceDeleteExperimentTemplateArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewDeleteExperimentTemplateRequest() if err := _field.Read(iprot); err != nil { return err } @@ -40208,9 +48675,9 @@ func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) ReadField1(ipro return nil } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceDeleteExperimentTemplateArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("FeedbackExptInsightAnalysisReport_args"); err != nil { + if err = oprot.WriteStructBegin("DeleteExperimentTemplate_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -40236,7 +48703,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceDeleteExperimentTemplateArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -40253,15 +48720,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) String() string { +func (p *ExperimentServiceDeleteExperimentTemplateArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceFeedbackExptInsightAnalysisReportArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceDeleteExperimentTemplateArgs(%+v)", *p) } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) DeepEqual(ano *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) bool { +func (p *ExperimentServiceDeleteExperimentTemplateArgs) DeepEqual(ano *ExperimentServiceDeleteExperimentTemplateArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -40273,7 +48740,7 @@ func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) DeepEqual(ano * return true } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) Field1DeepEqual(src *FeedbackExptInsightAnalysisReportRequest) bool { +func (p *ExperimentServiceDeleteExperimentTemplateArgs) Field1DeepEqual(src *DeleteExperimentTemplateRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -40281,41 +48748,41 @@ func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) Field1DeepEqual return true } -type ExperimentServiceFeedbackExptInsightAnalysisReportResult struct { - Success *FeedbackExptInsightAnalysisReportResponse `thrift:"success,0,optional" frugal:"0,optional,FeedbackExptInsightAnalysisReportResponse"` +type ExperimentServiceDeleteExperimentTemplateResult struct { + Success *DeleteExperimentTemplateResponse `thrift:"success,0,optional" frugal:"0,optional,DeleteExperimentTemplateResponse"` } -func NewExperimentServiceFeedbackExptInsightAnalysisReportResult() *ExperimentServiceFeedbackExptInsightAnalysisReportResult { - return &ExperimentServiceFeedbackExptInsightAnalysisReportResult{} +func NewExperimentServiceDeleteExperimentTemplateResult() *ExperimentServiceDeleteExperimentTemplateResult { + return &ExperimentServiceDeleteExperimentTemplateResult{} } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) InitDefault() { +func (p *ExperimentServiceDeleteExperimentTemplateResult) InitDefault() { } -var ExperimentServiceFeedbackExptInsightAnalysisReportResult_Success_DEFAULT *FeedbackExptInsightAnalysisReportResponse +var ExperimentServiceDeleteExperimentTemplateResult_Success_DEFAULT *DeleteExperimentTemplateResponse -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) GetSuccess() (v *FeedbackExptInsightAnalysisReportResponse) { +func (p *ExperimentServiceDeleteExperimentTemplateResult) GetSuccess() (v *DeleteExperimentTemplateResponse) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceFeedbackExptInsightAnalysisReportResult_Success_DEFAULT + return ExperimentServiceDeleteExperimentTemplateResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) SetSuccess(x interface{}) { - p.Success = x.(*FeedbackExptInsightAnalysisReportResponse) +func (p *ExperimentServiceDeleteExperimentTemplateResult) SetSuccess(x interface{}) { + p.Success = x.(*DeleteExperimentTemplateResponse) } -var fieldIDToName_ExperimentServiceFeedbackExptInsightAnalysisReportResult = map[int16]string{ +var fieldIDToName_ExperimentServiceDeleteExperimentTemplateResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) IsSetSuccess() bool { +func (p *ExperimentServiceDeleteExperimentTemplateResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceDeleteExperimentTemplateResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -40360,7 +48827,7 @@ ReadStructBeginError: 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_ExperimentServiceFeedbackExptInsightAnalysisReportResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceDeleteExperimentTemplateResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -40370,8 +48837,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewFeedbackExptInsightAnalysisReportResponse() +func (p *ExperimentServiceDeleteExperimentTemplateResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewDeleteExperimentTemplateResponse() if err := _field.Read(iprot); err != nil { return err } @@ -40379,9 +48846,9 @@ func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) ReadField0(ip return nil } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceDeleteExperimentTemplateResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("FeedbackExptInsightAnalysisReport_result"); err != nil { + if err = oprot.WriteStructBegin("DeleteExperimentTemplate_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -40407,7 +48874,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceDeleteExperimentTemplateResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -40426,15 +48893,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) String() string { +func (p *ExperimentServiceDeleteExperimentTemplateResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceFeedbackExptInsightAnalysisReportResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceDeleteExperimentTemplateResult(%+v)", *p) } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) DeepEqual(ano *ExperimentServiceFeedbackExptInsightAnalysisReportResult) bool { +func (p *ExperimentServiceDeleteExperimentTemplateResult) DeepEqual(ano *ExperimentServiceDeleteExperimentTemplateResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -40446,7 +48913,7 @@ func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) DeepEqual(ano return true } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) Field0DeepEqual(src *FeedbackExptInsightAnalysisReportResponse) bool { +func (p *ExperimentServiceDeleteExperimentTemplateResult) Field0DeepEqual(src *DeleteExperimentTemplateResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -40454,41 +48921,41 @@ func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) Field0DeepEqu return true } -type ExperimentServiceListExptInsightAnalysisCommentArgs struct { - Req *ListExptInsightAnalysisCommentRequest `thrift:"req,1" frugal:"1,default,ListExptInsightAnalysisCommentRequest"` +type ExperimentServiceListExperimentTemplatesArgs struct { + Req *ListExperimentTemplatesRequest `thrift:"req,1" frugal:"1,default,ListExperimentTemplatesRequest"` } -func NewExperimentServiceListExptInsightAnalysisCommentArgs() *ExperimentServiceListExptInsightAnalysisCommentArgs { - return &ExperimentServiceListExptInsightAnalysisCommentArgs{} +func NewExperimentServiceListExperimentTemplatesArgs() *ExperimentServiceListExperimentTemplatesArgs { + return &ExperimentServiceListExperimentTemplatesArgs{} } -func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) InitDefault() { +func (p *ExperimentServiceListExperimentTemplatesArgs) InitDefault() { } -var ExperimentServiceListExptInsightAnalysisCommentArgs_Req_DEFAULT *ListExptInsightAnalysisCommentRequest +var ExperimentServiceListExperimentTemplatesArgs_Req_DEFAULT *ListExperimentTemplatesRequest -func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) GetReq() (v *ListExptInsightAnalysisCommentRequest) { +func (p *ExperimentServiceListExperimentTemplatesArgs) GetReq() (v *ListExperimentTemplatesRequest) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceListExptInsightAnalysisCommentArgs_Req_DEFAULT + return ExperimentServiceListExperimentTemplatesArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) SetReq(val *ListExptInsightAnalysisCommentRequest) { +func (p *ExperimentServiceListExperimentTemplatesArgs) SetReq(val *ListExperimentTemplatesRequest) { p.Req = val } -var fieldIDToName_ExperimentServiceListExptInsightAnalysisCommentArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceListExperimentTemplatesArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) IsSetReq() bool { +func (p *ExperimentServiceListExperimentTemplatesArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExperimentTemplatesArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -40533,7 +49000,7 @@ ReadStructBeginError: 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_ExperimentServiceListExptInsightAnalysisCommentArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceListExperimentTemplatesArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -40543,8 +49010,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewListExptInsightAnalysisCommentRequest() +func (p *ExperimentServiceListExperimentTemplatesArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewListExperimentTemplatesRequest() if err := _field.Read(iprot); err != nil { return err } @@ -40552,9 +49019,9 @@ func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) ReadField1(iprot t return nil } -func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExperimentTemplatesArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListExptInsightAnalysisComment_args"); err != nil { + if err = oprot.WriteStructBegin("ListExperimentTemplates_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -40580,7 +49047,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExperimentTemplatesArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -40597,15 +49064,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) String() string { +func (p *ExperimentServiceListExperimentTemplatesArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceListExptInsightAnalysisCommentArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceListExperimentTemplatesArgs(%+v)", *p) } -func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) DeepEqual(ano *ExperimentServiceListExptInsightAnalysisCommentArgs) bool { +func (p *ExperimentServiceListExperimentTemplatesArgs) DeepEqual(ano *ExperimentServiceListExperimentTemplatesArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -40617,7 +49084,7 @@ func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) DeepEqual(ano *Exp return true } -func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) Field1DeepEqual(src *ListExptInsightAnalysisCommentRequest) bool { +func (p *ExperimentServiceListExperimentTemplatesArgs) Field1DeepEqual(src *ListExperimentTemplatesRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -40625,41 +49092,41 @@ func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) Field1DeepEqual(sr return true } -type ExperimentServiceListExptInsightAnalysisCommentResult struct { - Success *ListExptInsightAnalysisCommentResponse `thrift:"success,0,optional" frugal:"0,optional,ListExptInsightAnalysisCommentResponse"` +type ExperimentServiceListExperimentTemplatesResult struct { + Success *ListExperimentTemplatesResponse `thrift:"success,0,optional" frugal:"0,optional,ListExperimentTemplatesResponse"` } -func NewExperimentServiceListExptInsightAnalysisCommentResult() *ExperimentServiceListExptInsightAnalysisCommentResult { - return &ExperimentServiceListExptInsightAnalysisCommentResult{} +func NewExperimentServiceListExperimentTemplatesResult() *ExperimentServiceListExperimentTemplatesResult { + return &ExperimentServiceListExperimentTemplatesResult{} } -func (p *ExperimentServiceListExptInsightAnalysisCommentResult) InitDefault() { +func (p *ExperimentServiceListExperimentTemplatesResult) InitDefault() { } -var ExperimentServiceListExptInsightAnalysisCommentResult_Success_DEFAULT *ListExptInsightAnalysisCommentResponse +var ExperimentServiceListExperimentTemplatesResult_Success_DEFAULT *ListExperimentTemplatesResponse -func (p *ExperimentServiceListExptInsightAnalysisCommentResult) GetSuccess() (v *ListExptInsightAnalysisCommentResponse) { +func (p *ExperimentServiceListExperimentTemplatesResult) GetSuccess() (v *ListExperimentTemplatesResponse) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceListExptInsightAnalysisCommentResult_Success_DEFAULT + return ExperimentServiceListExperimentTemplatesResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceListExptInsightAnalysisCommentResult) SetSuccess(x interface{}) { - p.Success = x.(*ListExptInsightAnalysisCommentResponse) +func (p *ExperimentServiceListExperimentTemplatesResult) SetSuccess(x interface{}) { + p.Success = x.(*ListExperimentTemplatesResponse) } -var fieldIDToName_ExperimentServiceListExptInsightAnalysisCommentResult = map[int16]string{ +var fieldIDToName_ExperimentServiceListExperimentTemplatesResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceListExptInsightAnalysisCommentResult) IsSetSuccess() bool { +func (p *ExperimentServiceListExperimentTemplatesResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceListExptInsightAnalysisCommentResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExperimentTemplatesResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -40704,7 +49171,7 @@ ReadStructBeginError: 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_ExperimentServiceListExptInsightAnalysisCommentResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceListExperimentTemplatesResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -40714,8 +49181,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceListExptInsightAnalysisCommentResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewListExptInsightAnalysisCommentResponse() +func (p *ExperimentServiceListExperimentTemplatesResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewListExperimentTemplatesResponse() if err := _field.Read(iprot); err != nil { return err } @@ -40723,9 +49190,9 @@ func (p *ExperimentServiceListExptInsightAnalysisCommentResult) ReadField0(iprot return nil } -func (p *ExperimentServiceListExptInsightAnalysisCommentResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExperimentTemplatesResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("ListExptInsightAnalysisComment_result"); err != nil { + if err = oprot.WriteStructBegin("ListExperimentTemplates_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -40751,7 +49218,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceListExptInsightAnalysisCommentResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceListExperimentTemplatesResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -40770,15 +49237,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceListExptInsightAnalysisCommentResult) String() string { +func (p *ExperimentServiceListExperimentTemplatesResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceListExptInsightAnalysisCommentResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceListExperimentTemplatesResult(%+v)", *p) } -func (p *ExperimentServiceListExptInsightAnalysisCommentResult) DeepEqual(ano *ExperimentServiceListExptInsightAnalysisCommentResult) bool { +func (p *ExperimentServiceListExperimentTemplatesResult) DeepEqual(ano *ExperimentServiceListExperimentTemplatesResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -40790,7 +49257,7 @@ func (p *ExperimentServiceListExptInsightAnalysisCommentResult) DeepEqual(ano *E return true } -func (p *ExperimentServiceListExptInsightAnalysisCommentResult) Field0DeepEqual(src *ListExptInsightAnalysisCommentResponse) bool { +func (p *ExperimentServiceListExperimentTemplatesResult) Field0DeepEqual(src *ListExperimentTemplatesResponse) bool { if !p.Success.DeepEqual(src) { return false @@ -40798,41 +49265,41 @@ func (p *ExperimentServiceListExptInsightAnalysisCommentResult) Field0DeepEqual( return true } -type ExperimentServiceGetAnalysisRecordFeedbackVoteArgs struct { - Req *GetAnalysisRecordFeedbackVoteRequest `thrift:"req,1" frugal:"1,default,GetAnalysisRecordFeedbackVoteRequest"` +type ExperimentServiceCheckExperimentTemplateNameArgs struct { + Req *CheckExperimentTemplateNameRequest `thrift:"req,1" frugal:"1,default,CheckExperimentTemplateNameRequest"` } -func NewExperimentServiceGetAnalysisRecordFeedbackVoteArgs() *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs { - return &ExperimentServiceGetAnalysisRecordFeedbackVoteArgs{} +func NewExperimentServiceCheckExperimentTemplateNameArgs() *ExperimentServiceCheckExperimentTemplateNameArgs { + return &ExperimentServiceCheckExperimentTemplateNameArgs{} } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) InitDefault() { +func (p *ExperimentServiceCheckExperimentTemplateNameArgs) InitDefault() { } -var ExperimentServiceGetAnalysisRecordFeedbackVoteArgs_Req_DEFAULT *GetAnalysisRecordFeedbackVoteRequest +var ExperimentServiceCheckExperimentTemplateNameArgs_Req_DEFAULT *CheckExperimentTemplateNameRequest -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) GetReq() (v *GetAnalysisRecordFeedbackVoteRequest) { +func (p *ExperimentServiceCheckExperimentTemplateNameArgs) GetReq() (v *CheckExperimentTemplateNameRequest) { if p == nil { return } if !p.IsSetReq() { - return ExperimentServiceGetAnalysisRecordFeedbackVoteArgs_Req_DEFAULT + return ExperimentServiceCheckExperimentTemplateNameArgs_Req_DEFAULT } return p.Req } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) SetReq(val *GetAnalysisRecordFeedbackVoteRequest) { +func (p *ExperimentServiceCheckExperimentTemplateNameArgs) SetReq(val *CheckExperimentTemplateNameRequest) { p.Req = val } -var fieldIDToName_ExperimentServiceGetAnalysisRecordFeedbackVoteArgs = map[int16]string{ +var fieldIDToName_ExperimentServiceCheckExperimentTemplateNameArgs = map[int16]string{ 1: "req", } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) IsSetReq() bool { +func (p *ExperimentServiceCheckExperimentTemplateNameArgs) IsSetReq() bool { return p.Req != nil } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCheckExperimentTemplateNameArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -40877,7 +49344,7 @@ ReadStructBeginError: 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_ExperimentServiceGetAnalysisRecordFeedbackVoteArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceCheckExperimentTemplateNameArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -40887,8 +49354,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) ReadField1(iprot thrift.TProtocol) error { - _field := NewGetAnalysisRecordFeedbackVoteRequest() +func (p *ExperimentServiceCheckExperimentTemplateNameArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewCheckExperimentTemplateNameRequest() if err := _field.Read(iprot); err != nil { return err } @@ -40896,9 +49363,9 @@ func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) ReadField1(iprot th return nil } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCheckExperimentTemplateNameArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("GetAnalysisRecordFeedbackVote_args"); err != nil { + if err = oprot.WriteStructBegin("CheckExperimentTemplateName_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -40924,7 +49391,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCheckExperimentTemplateNameArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -40941,15 +49408,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) String() string { +func (p *ExperimentServiceCheckExperimentTemplateNameArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceGetAnalysisRecordFeedbackVoteArgs(%+v)", *p) + return fmt.Sprintf("ExperimentServiceCheckExperimentTemplateNameArgs(%+v)", *p) } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) DeepEqual(ano *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) bool { +func (p *ExperimentServiceCheckExperimentTemplateNameArgs) DeepEqual(ano *ExperimentServiceCheckExperimentTemplateNameArgs) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -40961,7 +49428,7 @@ func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) DeepEqual(ano *Expe return true } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) Field1DeepEqual(src *GetAnalysisRecordFeedbackVoteRequest) bool { +func (p *ExperimentServiceCheckExperimentTemplateNameArgs) Field1DeepEqual(src *CheckExperimentTemplateNameRequest) bool { if !p.Req.DeepEqual(src) { return false @@ -40969,41 +49436,41 @@ func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) Field1DeepEqual(src return true } -type ExperimentServiceGetAnalysisRecordFeedbackVoteResult struct { - Success *GetAnalysisRecordFeedbackVoteResponse `thrift:"success,0,optional" frugal:"0,optional,GetAnalysisRecordFeedbackVoteResponse"` +type ExperimentServiceCheckExperimentTemplateNameResult struct { + Success *CheckExperimentTemplateNameResponse `thrift:"success,0,optional" frugal:"0,optional,CheckExperimentTemplateNameResponse"` } -func NewExperimentServiceGetAnalysisRecordFeedbackVoteResult() *ExperimentServiceGetAnalysisRecordFeedbackVoteResult { - return &ExperimentServiceGetAnalysisRecordFeedbackVoteResult{} +func NewExperimentServiceCheckExperimentTemplateNameResult() *ExperimentServiceCheckExperimentTemplateNameResult { + return &ExperimentServiceCheckExperimentTemplateNameResult{} } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) InitDefault() { +func (p *ExperimentServiceCheckExperimentTemplateNameResult) InitDefault() { } -var ExperimentServiceGetAnalysisRecordFeedbackVoteResult_Success_DEFAULT *GetAnalysisRecordFeedbackVoteResponse +var ExperimentServiceCheckExperimentTemplateNameResult_Success_DEFAULT *CheckExperimentTemplateNameResponse -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) GetSuccess() (v *GetAnalysisRecordFeedbackVoteResponse) { +func (p *ExperimentServiceCheckExperimentTemplateNameResult) GetSuccess() (v *CheckExperimentTemplateNameResponse) { if p == nil { return } if !p.IsSetSuccess() { - return ExperimentServiceGetAnalysisRecordFeedbackVoteResult_Success_DEFAULT + return ExperimentServiceCheckExperimentTemplateNameResult_Success_DEFAULT } return p.Success } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) SetSuccess(x interface{}) { - p.Success = x.(*GetAnalysisRecordFeedbackVoteResponse) +func (p *ExperimentServiceCheckExperimentTemplateNameResult) SetSuccess(x interface{}) { + p.Success = x.(*CheckExperimentTemplateNameResponse) } -var fieldIDToName_ExperimentServiceGetAnalysisRecordFeedbackVoteResult = map[int16]string{ +var fieldIDToName_ExperimentServiceCheckExperimentTemplateNameResult = map[int16]string{ 0: "success", } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) IsSetSuccess() bool { +func (p *ExperimentServiceCheckExperimentTemplateNameResult) IsSetSuccess() bool { return p.Success != nil } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) Read(iprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCheckExperimentTemplateNameResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -41048,7 +49515,7 @@ ReadStructBeginError: 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_ExperimentServiceGetAnalysisRecordFeedbackVoteResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceCheckExperimentTemplateNameResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -41058,8 +49525,8 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) ReadField0(iprot thrift.TProtocol) error { - _field := NewGetAnalysisRecordFeedbackVoteResponse() +func (p *ExperimentServiceCheckExperimentTemplateNameResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewCheckExperimentTemplateNameResponse() if err := _field.Read(iprot); err != nil { return err } @@ -41067,9 +49534,9 @@ func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) ReadField0(iprot return nil } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) Write(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCheckExperimentTemplateNameResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("GetAnalysisRecordFeedbackVote_result"); err != nil { + if err = oprot.WriteStructBegin("CheckExperimentTemplateName_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -41095,7 +49562,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *ExperimentServiceCheckExperimentTemplateNameResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -41114,15 +49581,15 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) String() string { +func (p *ExperimentServiceCheckExperimentTemplateNameResult) String() string { if p == nil { return "" } - return fmt.Sprintf("ExperimentServiceGetAnalysisRecordFeedbackVoteResult(%+v)", *p) + return fmt.Sprintf("ExperimentServiceCheckExperimentTemplateNameResult(%+v)", *p) } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) DeepEqual(ano *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) bool { +func (p *ExperimentServiceCheckExperimentTemplateNameResult) DeepEqual(ano *ExperimentServiceCheckExperimentTemplateNameResult) bool { if p == ano { return true } else if p == nil || ano == nil { @@ -41134,7 +49601,7 @@ func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) DeepEqual(ano *Ex return true } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) Field0DeepEqual(src *GetAnalysisRecordFeedbackVoteResponse) bool { +func (p *ExperimentServiceCheckExperimentTemplateNameResult) Field0DeepEqual(src *CheckExperimentTemplateNameResponse) bool { if !p.Success.DeepEqual(src) { return false diff --git a/backend/kitex_gen/coze/loop/evaluation/expt/coze.loop.evaluation.expt_validator.go b/backend/kitex_gen/coze/loop/evaluation/expt/coze.loop.evaluation.expt_validator.go index 5e68cc965..dc8db02af 100644 --- a/backend/kitex_gen/coze/loop/evaluation/expt/coze.loop.evaluation.expt_validator.go +++ b/backend/kitex_gen/coze/loop/evaluation/expt/coze.loop.evaluation.expt_validator.go @@ -405,6 +405,188 @@ func (p *ListExperimentStatsResponse) IsValid() error { } return nil } +func (p *CreateExperimentTemplateRequest) IsValid() error { + if p.Meta != nil { + if err := p.Meta.IsValid(); err != nil { + return fmt.Errorf("field Meta not valid, %w", err) + } + } + if p.TripleConfig != nil { + if err := p.TripleConfig.IsValid(); err != nil { + return fmt.Errorf("field TripleConfig not valid, %w", err) + } + } + if p.FieldMappingConfig != nil { + if err := p.FieldMappingConfig.IsValid(); err != nil { + return fmt.Errorf("field FieldMappingConfig not valid, %w", err) + } + } + if p.CreateEvalTargetParam != nil { + if err := p.CreateEvalTargetParam.IsValid(); err != nil { + return fmt.Errorf("field CreateEvalTargetParam not valid, %w", err) + } + } + if p.Session != nil { + if err := p.Session.IsValid(); err != nil { + return fmt.Errorf("field Session not valid, %w", err) + } + } + if p.Base != nil { + if err := p.Base.IsValid(); err != nil { + return fmt.Errorf("field Base not valid, %w", err) + } + } + return nil +} +func (p *CreateExperimentTemplateResponse) IsValid() error { + if p.ExperimentTemplate != nil { + if err := p.ExperimentTemplate.IsValid(); err != nil { + return fmt.Errorf("field ExperimentTemplate not valid, %w", err) + } + } + if p.BaseResp != nil { + if err := p.BaseResp.IsValid(); err != nil { + return fmt.Errorf("field BaseResp not valid, %w", err) + } + } + return nil +} +func (p *BatchGetExperimentTemplateRequest) IsValid() error { + if p.Base != nil { + if err := p.Base.IsValid(); err != nil { + return fmt.Errorf("field Base not valid, %w", err) + } + } + return nil +} +func (p *BatchGetExperimentTemplateResponse) IsValid() error { + if p.BaseResp != nil { + if err := p.BaseResp.IsValid(); err != nil { + return fmt.Errorf("field BaseResp not valid, %w", err) + } + } + return nil +} +func (p *UpdateExperimentTemplateMetaRequest) IsValid() error { + if p.Meta != nil { + if err := p.Meta.IsValid(); err != nil { + return fmt.Errorf("field Meta not valid, %w", err) + } + } + if p.Base != nil { + if err := p.Base.IsValid(); err != nil { + return fmt.Errorf("field Base not valid, %w", err) + } + } + return nil +} +func (p *UpdateExperimentTemplateMetaResponse) IsValid() error { + if p.Meta != nil { + if err := p.Meta.IsValid(); err != nil { + return fmt.Errorf("field Meta not valid, %w", err) + } + } + if p.BaseResp != nil { + if err := p.BaseResp.IsValid(); err != nil { + return fmt.Errorf("field BaseResp not valid, %w", err) + } + } + return nil +} +func (p *UpdateExperimentTemplateRequest) IsValid() error { + if p.Meta != nil { + if err := p.Meta.IsValid(); err != nil { + return fmt.Errorf("field Meta not valid, %w", err) + } + } + if p.TripleConfig != nil { + if err := p.TripleConfig.IsValid(); err != nil { + return fmt.Errorf("field TripleConfig not valid, %w", err) + } + } + if p.FieldMappingConfig != nil { + if err := p.FieldMappingConfig.IsValid(); err != nil { + return fmt.Errorf("field FieldMappingConfig not valid, %w", err) + } + } + if p.CreateEvalTargetParam != nil { + if err := p.CreateEvalTargetParam.IsValid(); err != nil { + return fmt.Errorf("field CreateEvalTargetParam not valid, %w", err) + } + } + if p.Base != nil { + if err := p.Base.IsValid(); err != nil { + return fmt.Errorf("field Base not valid, %w", err) + } + } + return nil +} +func (p *UpdateExperimentTemplateResponse) IsValid() error { + if p.ExperimentTemplate != nil { + if err := p.ExperimentTemplate.IsValid(); err != nil { + return fmt.Errorf("field ExperimentTemplate not valid, %w", err) + } + } + if p.BaseResp != nil { + if err := p.BaseResp.IsValid(); err != nil { + return fmt.Errorf("field BaseResp not valid, %w", err) + } + } + return nil +} +func (p *DeleteExperimentTemplateRequest) IsValid() error { + if p.Base != nil { + if err := p.Base.IsValid(); err != nil { + return fmt.Errorf("field Base not valid, %w", err) + } + } + return nil +} +func (p *DeleteExperimentTemplateResponse) IsValid() error { + if p.BaseResp != nil { + if err := p.BaseResp.IsValid(); err != nil { + return fmt.Errorf("field BaseResp not valid, %w", err) + } + } + return nil +} +func (p *ListExperimentTemplatesRequest) IsValid() error { + if p.FilterOption != nil { + if err := p.FilterOption.IsValid(); err != nil { + return fmt.Errorf("field FilterOption not valid, %w", err) + } + } + if p.Base != nil { + if err := p.Base.IsValid(); err != nil { + return fmt.Errorf("field Base not valid, %w", err) + } + } + return nil +} +func (p *ListExperimentTemplatesResponse) IsValid() error { + if p.BaseResp != nil { + if err := p.BaseResp.IsValid(); err != nil { + return fmt.Errorf("field BaseResp not valid, %w", err) + } + } + return nil +} +func (p *CheckExperimentTemplateNameRequest) IsValid() error { + if p.Base != nil { + if err := p.Base.IsValid(); err != nil { + return fmt.Errorf("field Base not valid, %w", err) + } + } + return nil +} +func (p *CheckExperimentTemplateNameResponse) IsValid() error { + if p.BaseResp != nil { + if err := p.BaseResp.IsValid(); err != nil { + return fmt.Errorf("field BaseResp not valid, %w", err) + } + } + return nil +} func (p *UpsertExptTurnResultFilterRequest) IsValid() error { return nil } diff --git a/backend/kitex_gen/coze/loop/evaluation/expt/experimentservice/client.go b/backend/kitex_gen/coze/loop/evaluation/expt/experimentservice/client.go index f3eeeea5f..6551202e4 100644 --- a/backend/kitex_gen/coze/loop/evaluation/expt/experimentservice/client.go +++ b/backend/kitex_gen/coze/loop/evaluation/expt/experimentservice/client.go @@ -44,6 +44,13 @@ type Client interface { FeedbackExptInsightAnalysisReport(ctx context.Context, req *expt.FeedbackExptInsightAnalysisReportRequest, callOptions ...callopt.Option) (r *expt.FeedbackExptInsightAnalysisReportResponse, err error) ListExptInsightAnalysisComment(ctx context.Context, req *expt.ListExptInsightAnalysisCommentRequest, callOptions ...callopt.Option) (r *expt.ListExptInsightAnalysisCommentResponse, err error) GetAnalysisRecordFeedbackVote(ctx context.Context, req *expt.GetAnalysisRecordFeedbackVoteRequest, callOptions ...callopt.Option) (r *expt.GetAnalysisRecordFeedbackVoteResponse, err error) + CreateExperimentTemplate(ctx context.Context, req *expt.CreateExperimentTemplateRequest, callOptions ...callopt.Option) (r *expt.CreateExperimentTemplateResponse, err error) + BatchGetExperimentTemplate(ctx context.Context, req *expt.BatchGetExperimentTemplateRequest, callOptions ...callopt.Option) (r *expt.BatchGetExperimentTemplateResponse, err error) + UpdateExperimentTemplateMeta(ctx context.Context, req *expt.UpdateExperimentTemplateMetaRequest, callOptions ...callopt.Option) (r *expt.UpdateExperimentTemplateMetaResponse, err error) + UpdateExperimentTemplate(ctx context.Context, req *expt.UpdateExperimentTemplateRequest, callOptions ...callopt.Option) (r *expt.UpdateExperimentTemplateResponse, err error) + DeleteExperimentTemplate(ctx context.Context, req *expt.DeleteExperimentTemplateRequest, callOptions ...callopt.Option) (r *expt.DeleteExperimentTemplateResponse, err error) + ListExperimentTemplates(ctx context.Context, req *expt.ListExperimentTemplatesRequest, callOptions ...callopt.Option) (r *expt.ListExperimentTemplatesResponse, err error) + CheckExperimentTemplateName(ctx context.Context, req *expt.CheckExperimentTemplateNameRequest, callOptions ...callopt.Option) (r *expt.CheckExperimentTemplateNameResponse, err error) } // NewClient creates a client for the service defined in IDL. @@ -239,3 +246,38 @@ func (p *kExperimentServiceClient) GetAnalysisRecordFeedbackVote(ctx context.Con ctx = client.NewCtxWithCallOptions(ctx, callOptions) return p.kClient.GetAnalysisRecordFeedbackVote(ctx, req) } + +func (p *kExperimentServiceClient) CreateExperimentTemplate(ctx context.Context, req *expt.CreateExperimentTemplateRequest, callOptions ...callopt.Option) (r *expt.CreateExperimentTemplateResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.CreateExperimentTemplate(ctx, req) +} + +func (p *kExperimentServiceClient) BatchGetExperimentTemplate(ctx context.Context, req *expt.BatchGetExperimentTemplateRequest, callOptions ...callopt.Option) (r *expt.BatchGetExperimentTemplateResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.BatchGetExperimentTemplate(ctx, req) +} + +func (p *kExperimentServiceClient) UpdateExperimentTemplateMeta(ctx context.Context, req *expt.UpdateExperimentTemplateMetaRequest, callOptions ...callopt.Option) (r *expt.UpdateExperimentTemplateMetaResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.UpdateExperimentTemplateMeta(ctx, req) +} + +func (p *kExperimentServiceClient) UpdateExperimentTemplate(ctx context.Context, req *expt.UpdateExperimentTemplateRequest, callOptions ...callopt.Option) (r *expt.UpdateExperimentTemplateResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.UpdateExperimentTemplate(ctx, req) +} + +func (p *kExperimentServiceClient) DeleteExperimentTemplate(ctx context.Context, req *expt.DeleteExperimentTemplateRequest, callOptions ...callopt.Option) (r *expt.DeleteExperimentTemplateResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.DeleteExperimentTemplate(ctx, req) +} + +func (p *kExperimentServiceClient) ListExperimentTemplates(ctx context.Context, req *expt.ListExperimentTemplatesRequest, callOptions ...callopt.Option) (r *expt.ListExperimentTemplatesResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.ListExperimentTemplates(ctx, req) +} + +func (p *kExperimentServiceClient) CheckExperimentTemplateName(ctx context.Context, req *expt.CheckExperimentTemplateNameRequest, callOptions ...callopt.Option) (r *expt.CheckExperimentTemplateNameResponse, err error) { + ctx = client.NewCtxWithCallOptions(ctx, callOptions) + return p.kClient.CheckExperimentTemplateName(ctx, req) +} diff --git a/backend/kitex_gen/coze/loop/evaluation/expt/experimentservice/experimentservice.go b/backend/kitex_gen/coze/loop/evaluation/expt/experimentservice/experimentservice.go index ad6412c2e..9a5ba5a7e 100644 --- a/backend/kitex_gen/coze/loop/evaluation/expt/experimentservice/experimentservice.go +++ b/backend/kitex_gen/coze/loop/evaluation/expt/experimentservice/experimentservice.go @@ -244,6 +244,55 @@ var serviceMethods = map[string]kitex.MethodInfo{ false, kitex.WithStreamingMode(kitex.StreamingNone), ), + "CreateExperimentTemplate": kitex.NewMethodInfo( + createExperimentTemplateHandler, + newExperimentServiceCreateExperimentTemplateArgs, + newExperimentServiceCreateExperimentTemplateResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), + "BatchGetExperimentTemplate": kitex.NewMethodInfo( + batchGetExperimentTemplateHandler, + newExperimentServiceBatchGetExperimentTemplateArgs, + newExperimentServiceBatchGetExperimentTemplateResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), + "UpdateExperimentTemplateMeta": kitex.NewMethodInfo( + updateExperimentTemplateMetaHandler, + newExperimentServiceUpdateExperimentTemplateMetaArgs, + newExperimentServiceUpdateExperimentTemplateMetaResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), + "UpdateExperimentTemplate": kitex.NewMethodInfo( + updateExperimentTemplateHandler, + newExperimentServiceUpdateExperimentTemplateArgs, + newExperimentServiceUpdateExperimentTemplateResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), + "DeleteExperimentTemplate": kitex.NewMethodInfo( + deleteExperimentTemplateHandler, + newExperimentServiceDeleteExperimentTemplateArgs, + newExperimentServiceDeleteExperimentTemplateResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), + "ListExperimentTemplates": kitex.NewMethodInfo( + listExperimentTemplatesHandler, + newExperimentServiceListExperimentTemplatesArgs, + newExperimentServiceListExperimentTemplatesResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), + "CheckExperimentTemplateName": kitex.NewMethodInfo( + checkExperimentTemplateNameHandler, + newExperimentServiceCheckExperimentTemplateNameArgs, + newExperimentServiceCheckExperimentTemplateNameResult, + false, + kitex.WithStreamingMode(kitex.StreamingNone), + ), } var ( @@ -904,6 +953,139 @@ func newExperimentServiceGetAnalysisRecordFeedbackVoteResult() interface{} { return expt.NewExperimentServiceGetAnalysisRecordFeedbackVoteResult() } +func createExperimentTemplateHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*expt.ExperimentServiceCreateExperimentTemplateArgs) + realResult := result.(*expt.ExperimentServiceCreateExperimentTemplateResult) + success, err := handler.(expt.ExperimentService).CreateExperimentTemplate(ctx, realArg.Req) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newExperimentServiceCreateExperimentTemplateArgs() interface{} { + return expt.NewExperimentServiceCreateExperimentTemplateArgs() +} + +func newExperimentServiceCreateExperimentTemplateResult() interface{} { + return expt.NewExperimentServiceCreateExperimentTemplateResult() +} + +func batchGetExperimentTemplateHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*expt.ExperimentServiceBatchGetExperimentTemplateArgs) + realResult := result.(*expt.ExperimentServiceBatchGetExperimentTemplateResult) + success, err := handler.(expt.ExperimentService).BatchGetExperimentTemplate(ctx, realArg.Req) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newExperimentServiceBatchGetExperimentTemplateArgs() interface{} { + return expt.NewExperimentServiceBatchGetExperimentTemplateArgs() +} + +func newExperimentServiceBatchGetExperimentTemplateResult() interface{} { + return expt.NewExperimentServiceBatchGetExperimentTemplateResult() +} + +func updateExperimentTemplateMetaHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*expt.ExperimentServiceUpdateExperimentTemplateMetaArgs) + realResult := result.(*expt.ExperimentServiceUpdateExperimentTemplateMetaResult) + success, err := handler.(expt.ExperimentService).UpdateExperimentTemplateMeta(ctx, realArg.Req) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newExperimentServiceUpdateExperimentTemplateMetaArgs() interface{} { + return expt.NewExperimentServiceUpdateExperimentTemplateMetaArgs() +} + +func newExperimentServiceUpdateExperimentTemplateMetaResult() interface{} { + return expt.NewExperimentServiceUpdateExperimentTemplateMetaResult() +} + +func updateExperimentTemplateHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*expt.ExperimentServiceUpdateExperimentTemplateArgs) + realResult := result.(*expt.ExperimentServiceUpdateExperimentTemplateResult) + success, err := handler.(expt.ExperimentService).UpdateExperimentTemplate(ctx, realArg.Req) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newExperimentServiceUpdateExperimentTemplateArgs() interface{} { + return expt.NewExperimentServiceUpdateExperimentTemplateArgs() +} + +func newExperimentServiceUpdateExperimentTemplateResult() interface{} { + return expt.NewExperimentServiceUpdateExperimentTemplateResult() +} + +func deleteExperimentTemplateHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*expt.ExperimentServiceDeleteExperimentTemplateArgs) + realResult := result.(*expt.ExperimentServiceDeleteExperimentTemplateResult) + success, err := handler.(expt.ExperimentService).DeleteExperimentTemplate(ctx, realArg.Req) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newExperimentServiceDeleteExperimentTemplateArgs() interface{} { + return expt.NewExperimentServiceDeleteExperimentTemplateArgs() +} + +func newExperimentServiceDeleteExperimentTemplateResult() interface{} { + return expt.NewExperimentServiceDeleteExperimentTemplateResult() +} + +func listExperimentTemplatesHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*expt.ExperimentServiceListExperimentTemplatesArgs) + realResult := result.(*expt.ExperimentServiceListExperimentTemplatesResult) + success, err := handler.(expt.ExperimentService).ListExperimentTemplates(ctx, realArg.Req) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newExperimentServiceListExperimentTemplatesArgs() interface{} { + return expt.NewExperimentServiceListExperimentTemplatesArgs() +} + +func newExperimentServiceListExperimentTemplatesResult() interface{} { + return expt.NewExperimentServiceListExperimentTemplatesResult() +} + +func checkExperimentTemplateNameHandler(ctx context.Context, handler interface{}, arg, result interface{}) error { + realArg := arg.(*expt.ExperimentServiceCheckExperimentTemplateNameArgs) + realResult := result.(*expt.ExperimentServiceCheckExperimentTemplateNameResult) + success, err := handler.(expt.ExperimentService).CheckExperimentTemplateName(ctx, realArg.Req) + if err != nil { + return err + } + realResult.Success = success + return nil +} + +func newExperimentServiceCheckExperimentTemplateNameArgs() interface{} { + return expt.NewExperimentServiceCheckExperimentTemplateNameArgs() +} + +func newExperimentServiceCheckExperimentTemplateNameResult() interface{} { + return expt.NewExperimentServiceCheckExperimentTemplateNameResult() +} + type kClient struct { c client.Client sc client.Streaming @@ -1245,3 +1427,73 @@ func (p *kClient) GetAnalysisRecordFeedbackVote(ctx context.Context, req *expt.G } return _result.GetSuccess(), nil } + +func (p *kClient) CreateExperimentTemplate(ctx context.Context, req *expt.CreateExperimentTemplateRequest) (r *expt.CreateExperimentTemplateResponse, err error) { + var _args expt.ExperimentServiceCreateExperimentTemplateArgs + _args.Req = req + var _result expt.ExperimentServiceCreateExperimentTemplateResult + if err = p.c.Call(ctx, "CreateExperimentTemplate", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + +func (p *kClient) BatchGetExperimentTemplate(ctx context.Context, req *expt.BatchGetExperimentTemplateRequest) (r *expt.BatchGetExperimentTemplateResponse, err error) { + var _args expt.ExperimentServiceBatchGetExperimentTemplateArgs + _args.Req = req + var _result expt.ExperimentServiceBatchGetExperimentTemplateResult + if err = p.c.Call(ctx, "BatchGetExperimentTemplate", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + +func (p *kClient) UpdateExperimentTemplateMeta(ctx context.Context, req *expt.UpdateExperimentTemplateMetaRequest) (r *expt.UpdateExperimentTemplateMetaResponse, err error) { + var _args expt.ExperimentServiceUpdateExperimentTemplateMetaArgs + _args.Req = req + var _result expt.ExperimentServiceUpdateExperimentTemplateMetaResult + if err = p.c.Call(ctx, "UpdateExperimentTemplateMeta", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + +func (p *kClient) UpdateExperimentTemplate(ctx context.Context, req *expt.UpdateExperimentTemplateRequest) (r *expt.UpdateExperimentTemplateResponse, err error) { + var _args expt.ExperimentServiceUpdateExperimentTemplateArgs + _args.Req = req + var _result expt.ExperimentServiceUpdateExperimentTemplateResult + if err = p.c.Call(ctx, "UpdateExperimentTemplate", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + +func (p *kClient) DeleteExperimentTemplate(ctx context.Context, req *expt.DeleteExperimentTemplateRequest) (r *expt.DeleteExperimentTemplateResponse, err error) { + var _args expt.ExperimentServiceDeleteExperimentTemplateArgs + _args.Req = req + var _result expt.ExperimentServiceDeleteExperimentTemplateResult + if err = p.c.Call(ctx, "DeleteExperimentTemplate", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + +func (p *kClient) ListExperimentTemplates(ctx context.Context, req *expt.ListExperimentTemplatesRequest) (r *expt.ListExperimentTemplatesResponse, err error) { + var _args expt.ExperimentServiceListExperimentTemplatesArgs + _args.Req = req + var _result expt.ExperimentServiceListExperimentTemplatesResult + if err = p.c.Call(ctx, "ListExperimentTemplates", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} + +func (p *kClient) CheckExperimentTemplateName(ctx context.Context, req *expt.CheckExperimentTemplateNameRequest) (r *expt.CheckExperimentTemplateNameResponse, err error) { + var _args expt.ExperimentServiceCheckExperimentTemplateNameArgs + _args.Req = req + var _result expt.ExperimentServiceCheckExperimentTemplateNameResult + if err = p.c.Call(ctx, "CheckExperimentTemplateName", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} diff --git a/backend/kitex_gen/coze/loop/evaluation/expt/k-coze.loop.evaluation.expt.go b/backend/kitex_gen/coze/loop/evaluation/expt/k-coze.loop.evaluation.expt.go index e95eed21e..5bf1546f8 100644 --- a/backend/kitex_gen/coze/loop/evaluation/expt/k-coze.loop.evaluation.expt.go +++ b/backend/kitex_gen/coze/loop/evaluation/expt/k-coze.loop.evaluation.expt.go @@ -324,6 +324,48 @@ func (p *CreateExperimentRequest) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 41: + if fieldTypeId == thrift.BOOL { + l, err = p.FastReadField41(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 42: + if fieldTypeId == thrift.MAP { + l, err = p.FastReadField42(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 43: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField43(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 200: if fieldTypeId == thrift.STRUCT { l, err = p.FastReadField200(buf[offset:]) @@ -672,6 +714,66 @@ func (p *CreateExperimentRequest) FastReadField40(buf []byte) (int, error) { return offset, nil } +func (p *CreateExperimentRequest) FastReadField41(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.EnableWeightedScore = _field + return offset, nil +} + +func (p *CreateExperimentRequest) FastReadField42(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[int64]float64, size) + for i := 0; i < size; i++ { + var _key int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _key = v + } + + var _val float64 + if v, l, err := thrift.Binary.ReadDouble(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _val = v + } + + _field[_key] = _val + } + p.EvaluatorScoreWeights = _field + return offset, nil +} + +func (p *CreateExperimentRequest) FastReadField43(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.ExptTemplateID = _field + return offset, nil +} + func (p *CreateExperimentRequest) FastReadField200(buf []byte) (int, error) { offset := 0 _field := common.NewSession() @@ -711,6 +813,8 @@ func (p *CreateExperimentRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWri offset += p.fastWriteField22(buf[offset:], w) offset += p.fastWriteField23(buf[offset:], w) offset += p.fastWriteField31(buf[offset:], w) + offset += p.fastWriteField41(buf[offset:], w) + offset += p.fastWriteField43(buf[offset:], w) offset += p.fastWriteField4(buf[offset:], w) offset += p.fastWriteField5(buf[offset:], w) offset += p.fastWriteField6(buf[offset:], w) @@ -722,6 +826,7 @@ func (p *CreateExperimentRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWri offset += p.fastWriteField32(buf[offset:], w) offset += p.fastWriteField33(buf[offset:], w) offset += p.fastWriteField40(buf[offset:], w) + offset += p.fastWriteField42(buf[offset:], w) offset += p.fastWriteField200(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } @@ -751,6 +856,9 @@ func (p *CreateExperimentRequest) BLength() int { l += p.field32Length() l += p.field33Length() l += p.field40Length() + l += p.field41Length() + l += p.field42Length() + l += p.field43Length() l += p.field200Length() l += p.field255Length() } @@ -948,6 +1056,41 @@ func (p *CreateExperimentRequest) fastWriteField40(buf []byte, w thrift.NocopyWr return offset } +func (p *CreateExperimentRequest) fastWriteField41(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetEnableWeightedScore() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.BOOL, 41) + offset += thrift.Binary.WriteBool(buf[offset:], *p.EnableWeightedScore) + } + return offset +} + +func (p *CreateExperimentRequest) fastWriteField42(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetEvaluatorScoreWeights() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.MAP, 42) + mapBeginOffset := offset + offset += thrift.Binary.MapBeginLength() + var length int + for k, v := range p.EvaluatorScoreWeights { + length++ + offset += thrift.Binary.WriteI64(buf[offset:], k) + offset += thrift.Binary.WriteDouble(buf[offset:], v) + } + thrift.Binary.WriteMapBegin(buf[mapBeginOffset:], thrift.I64, thrift.DOUBLE, length) + } + return offset +} + +func (p *CreateExperimentRequest) fastWriteField43(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetExptTemplateID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 43) + offset += thrift.Binary.WriteI64(buf[offset:], *p.ExptTemplateID) + } + return offset +} + func (p *CreateExperimentRequest) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSession() { @@ -1145,6 +1288,35 @@ func (p *CreateExperimentRequest) field40Length() int { return l } +func (p *CreateExperimentRequest) field41Length() int { + l := 0 + if p.IsSetEnableWeightedScore() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.BoolLength() + } + return l +} + +func (p *CreateExperimentRequest) field42Length() int { + l := 0 + if p.IsSetEvaluatorScoreWeights() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.MapBeginLength() + l += (thrift.Binary.I64Length() + + thrift.Binary.DoubleLength()) * len(p.EvaluatorScoreWeights) + } + return l +} + +func (p *CreateExperimentRequest) field43Length() int { + l := 0 + if p.IsSetExptTemplateID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + func (p *CreateExperimentRequest) field200Length() int { l := 0 if p.IsSetSession() { @@ -1306,6 +1478,29 @@ func (p *CreateExperimentRequest) DeepCopy(s interface{}) error { } } + if src.EnableWeightedScore != nil { + tmp := *src.EnableWeightedScore + p.EnableWeightedScore = &tmp + } + + if src.EvaluatorScoreWeights != nil { + p.EvaluatorScoreWeights = make(map[int64]float64, len(src.EvaluatorScoreWeights)) + for key, val := range src.EvaluatorScoreWeights { + var _key int64 + _key = key + + var _val float64 + _val = val + + p.EvaluatorScoreWeights[_key] = _val + } + } + + if src.ExptTemplateID != nil { + tmp := *src.ExptTemplateID + p.ExptTemplateID = &tmp + } + var _session *common.Session if src.Session != nil { _session = &common.Session{} @@ -1782,6 +1977,34 @@ func (p *SubmitExperimentRequest) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 41: + if fieldTypeId == thrift.BOOL { + l, err = p.FastReadField41(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 42: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField42(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 100: if fieldTypeId == thrift.MAP { l, err = p.FastReadField100(buf[offset:]) @@ -2144,6 +2367,34 @@ func (p *SubmitExperimentRequest) FastReadField40(buf []byte) (int, error) { return offset, nil } +func (p *SubmitExperimentRequest) FastReadField41(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.EnableWeightedScore = _field + return offset, nil +} + +func (p *SubmitExperimentRequest) FastReadField42(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.ExptTemplateID = _field + return offset, nil +} + func (p *SubmitExperimentRequest) FastReadField100(buf []byte) (int, error) { offset := 0 @@ -2215,6 +2466,8 @@ func (p *SubmitExperimentRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWri offset += p.fastWriteField22(buf[offset:], w) offset += p.fastWriteField23(buf[offset:], w) offset += p.fastWriteField31(buf[offset:], w) + offset += p.fastWriteField41(buf[offset:], w) + offset += p.fastWriteField42(buf[offset:], w) offset += p.fastWriteField4(buf[offset:], w) offset += p.fastWriteField5(buf[offset:], w) offset += p.fastWriteField6(buf[offset:], w) @@ -2256,6 +2509,8 @@ func (p *SubmitExperimentRequest) BLength() int { l += p.field32Length() l += p.field33Length() l += p.field40Length() + l += p.field41Length() + l += p.field42Length() l += p.field100Length() l += p.field200Length() l += p.field255Length() @@ -2454,6 +2709,24 @@ func (p *SubmitExperimentRequest) fastWriteField40(buf []byte, w thrift.NocopyWr return offset } +func (p *SubmitExperimentRequest) fastWriteField41(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetEnableWeightedScore() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.BOOL, 41) + offset += thrift.Binary.WriteBool(buf[offset:], *p.EnableWeightedScore) + } + return offset +} + +func (p *SubmitExperimentRequest) fastWriteField42(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetExptTemplateID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 42) + offset += thrift.Binary.WriteI64(buf[offset:], *p.ExptTemplateID) + } + return offset +} + func (p *SubmitExperimentRequest) fastWriteField100(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetExt() { @@ -2668,6 +2941,24 @@ func (p *SubmitExperimentRequest) field40Length() int { return l } +func (p *SubmitExperimentRequest) field41Length() int { + l := 0 + if p.IsSetEnableWeightedScore() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.BoolLength() + } + return l +} + +func (p *SubmitExperimentRequest) field42Length() int { + l := 0 + if p.IsSetExptTemplateID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + func (p *SubmitExperimentRequest) field100Length() int { l := 0 if p.IsSetExt() { @@ -2844,6 +3135,16 @@ func (p *SubmitExperimentRequest) DeepCopy(s interface{}) error { } } + if src.EnableWeightedScore != nil { + tmp := *src.EnableWeightedScore + p.EnableWeightedScore = &tmp + } + + if src.ExptTemplateID != nil { + tmp := *src.ExptTemplateID + p.ExptTemplateID = &tmp + } + if src.Ext != nil { p.Ext = make(map[string]string, len(src.Ext)) for key, val := range src.Ext { @@ -12216,13 +12517,14 @@ func (p *ListExperimentStatsResponse) DeepCopy(s interface{}) error { return nil } -func (p *UpsertExptTurnResultFilterRequest) FastRead(buf []byte) (int, error) { +func (p *CreateExperimentTemplateRequest) FastRead(buf []byte) (int, error) { var err error var offset int var l int var fieldTypeId thrift.TType var fieldId int16 + var issetWorkspaceID bool = false for { fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) offset += l @@ -12240,6 +12542,7 @@ func (p *UpsertExptTurnResultFilterRequest) FastRead(buf []byte) (int, error) { if err != nil { goto ReadFieldError } + issetWorkspaceID = true } else { l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -12247,9 +12550,9 @@ func (p *UpsertExptTurnResultFilterRequest) FastRead(buf []byte) (int, error) { goto SkipFieldError } } - case 2: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField2(buf[offset:]) + case 10: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField10(buf[offset:]) offset += l if err != nil { goto ReadFieldError @@ -12261,9 +12564,9 @@ func (p *UpsertExptTurnResultFilterRequest) FastRead(buf []byte) (int, error) { goto SkipFieldError } } - case 3: - if fieldTypeId == thrift.LIST { - l, err = p.FastReadField3(buf[offset:]) + case 11: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField11(buf[offset:]) offset += l if err != nil { goto ReadFieldError @@ -12275,9 +12578,9 @@ func (p *UpsertExptTurnResultFilterRequest) FastRead(buf []byte) (int, error) { goto SkipFieldError } } - case 4: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField4(buf[offset:]) + case 12: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField12(buf[offset:]) offset += l if err != nil { goto ReadFieldError @@ -12289,9 +12592,23 @@ func (p *UpsertExptTurnResultFilterRequest) FastRead(buf []byte) (int, error) { goto SkipFieldError } } - case 5: + case 20: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField20(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 21: if fieldTypeId == thrift.I32 { - l, err = p.FastReadField5(buf[offset:]) + l, err = p.FastReadField21(buf[offset:]) offset += l if err != nil { goto ReadFieldError @@ -12303,7 +12620,49 @@ func (p *UpsertExptTurnResultFilterRequest) FastRead(buf []byte) (int, error) { goto SkipFieldError } } - default: + case 22: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField22(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 200: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField200(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:]) + 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 { @@ -12312,263 +12671,410 @@ func (p *UpsertExptTurnResultFilterRequest) FastRead(buf []byte) (int, error) { } } + if !issetWorkspaceID { + 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_UpsertExptTurnResultFilterRequest[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_CreateExperimentTemplateRequest[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_CreateExperimentTemplateRequest[fieldId])) } -func (p *UpsertExptTurnResultFilterRequest) FastReadField1(buf []byte) (int, error) { +func (p *CreateExperimentTemplateRequest) FastReadField1(buf []byte) (int, error) { offset := 0 - var _field *int64 + var _field int64 if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { return offset, err } else { offset += l - _field = &v + _field = v } p.WorkspaceID = _field return offset, nil } -func (p *UpsertExptTurnResultFilterRequest) FastReadField2(buf []byte) (int, error) { +func (p *CreateExperimentTemplateRequest) FastReadField10(buf []byte) (int, error) { offset := 0 + _field := expt.NewExptTemplateMeta() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Meta = _field + return offset, nil +} - var _field *int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { +func (p *CreateExperimentTemplateRequest) FastReadField11(buf []byte) (int, error) { + offset := 0 + _field := expt.NewExptTuple() + if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { offset += l - _field = &v } - p.ExperimentID = _field + p.TripleConfig = _field return offset, nil } -func (p *UpsertExptTurnResultFilterRequest) FastReadField3(buf []byte) (int, error) { +func (p *CreateExperimentTemplateRequest) FastReadField12(buf []byte) (int, error) { offset := 0 + _field := expt.NewExptFieldMapping() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.FieldMappingConfig = _field + return offset, nil +} - _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) - offset += l - if err != nil { +func (p *CreateExperimentTemplateRequest) FastReadField20(buf []byte) (int, error) { + offset := 0 + _field := eval_target.NewCreateEvalTargetParam() + if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err + } else { + offset += l } - _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 - } + p.CreateEvalTargetParam = _field + return offset, nil +} - _field = append(_field, _elem) +func (p *CreateExperimentTemplateRequest) FastReadField21(buf []byte) (int, error) { + offset := 0 + + var _field *int32 + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v } - p.ItemIds = _field + p.DefaultEvaluatorsConcurNum = _field return offset, nil } -func (p *UpsertExptTurnResultFilterRequest) FastReadField4(buf []byte) (int, error) { +func (p *CreateExperimentTemplateRequest) FastReadField22(buf []byte) (int, error) { offset := 0 - var _field *UpsertExptTurnResultFilterType + var _field *string if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { return offset, err } else { offset += l _field = &v } - p.FilterType = _field + p.ScheduleCron = _field return offset, nil } -func (p *UpsertExptTurnResultFilterRequest) FastReadField5(buf []byte) (int, error) { +func (p *CreateExperimentTemplateRequest) FastReadField200(buf []byte) (int, error) { offset := 0 + _field := common.NewSession() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Session = _field + return offset, nil +} - var _field *int32 - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { +func (p *CreateExperimentTemplateRequest) FastReadField255(buf []byte) (int, error) { + offset := 0 + _field := base.NewBase() + if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { offset += l - _field = &v } - p.RetryTimes = _field + p.Base = _field return offset, nil } -func (p *UpsertExptTurnResultFilterRequest) FastWrite(buf []byte) int { +func (p *CreateExperimentTemplateRequest) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *UpsertExptTurnResultFilterRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *CreateExperimentTemplateRequest) 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.fastWriteField5(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - offset += p.fastWriteField4(buf[offset:], w) + offset += p.fastWriteField21(buf[offset:], w) + offset += p.fastWriteField10(buf[offset:], w) + offset += p.fastWriteField11(buf[offset:], w) + offset += p.fastWriteField12(buf[offset:], w) + offset += p.fastWriteField20(buf[offset:], w) + offset += p.fastWriteField22(buf[offset:], w) + offset += p.fastWriteField200(buf[offset:], w) + offset += p.fastWriteField255(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset } -func (p *UpsertExptTurnResultFilterRequest) BLength() int { +func (p *CreateExperimentTemplateRequest) BLength() int { l := 0 if p != nil { l += p.field1Length() - l += p.field2Length() - l += p.field3Length() - l += p.field4Length() - l += p.field5Length() + l += p.field10Length() + l += p.field11Length() + l += p.field12Length() + l += p.field20Length() + l += p.field21Length() + l += p.field22Length() + l += p.field200Length() + l += p.field255Length() } l += thrift.Binary.FieldStopLength() return l } -func (p *UpsertExptTurnResultFilterRequest) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *CreateExperimentTemplateRequest) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetWorkspaceID() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) - offset += thrift.Binary.WriteI64(buf[offset:], *p.WorkspaceID) + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) + offset += thrift.Binary.WriteI64(buf[offset:], p.WorkspaceID) + return offset +} + +func (p *CreateExperimentTemplateRequest) fastWriteField10(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetMeta() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 10) + offset += p.Meta.FastWriteNocopy(buf[offset:], w) } return offset } -func (p *UpsertExptTurnResultFilterRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { +func (p *CreateExperimentTemplateRequest) fastWriteField11(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetExperimentID() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) - offset += thrift.Binary.WriteI64(buf[offset:], *p.ExperimentID) + if p.IsSetTripleConfig() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 11) + offset += p.TripleConfig.FastWriteNocopy(buf[offset:], w) } return offset } -func (p *UpsertExptTurnResultFilterRequest) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { +func (p *CreateExperimentTemplateRequest) fastWriteField12(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetItemIds() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 3) - listBeginOffset := offset - offset += thrift.Binary.ListBeginLength() - var length int - for _, v := range p.ItemIds { - length++ - offset += thrift.Binary.WriteI64(buf[offset:], v) - } - thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.I64, length) + if p.IsSetFieldMappingConfig() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 12) + offset += p.FieldMappingConfig.FastWriteNocopy(buf[offset:], w) } return offset } -func (p *UpsertExptTurnResultFilterRequest) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { +func (p *CreateExperimentTemplateRequest) fastWriteField20(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetFilterType() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 4) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.FilterType) + if p.IsSetCreateEvalTargetParam() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 20) + offset += p.CreateEvalTargetParam.FastWriteNocopy(buf[offset:], w) } return offset } -func (p *UpsertExptTurnResultFilterRequest) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { +func (p *CreateExperimentTemplateRequest) fastWriteField21(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetRetryTimes() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 5) - offset += thrift.Binary.WriteI32(buf[offset:], *p.RetryTimes) + if p.IsSetDefaultEvaluatorsConcurNum() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 21) + offset += thrift.Binary.WriteI32(buf[offset:], *p.DefaultEvaluatorsConcurNum) } return offset } -func (p *UpsertExptTurnResultFilterRequest) field1Length() int { +func (p *CreateExperimentTemplateRequest) fastWriteField22(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetScheduleCron() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 22) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ScheduleCron) + } + return offset +} + +func (p *CreateExperimentTemplateRequest) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSession() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 200) + offset += p.Session.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *CreateExperimentTemplateRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetBase() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.Base.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *CreateExperimentTemplateRequest) field1Length() int { l := 0 - if p.IsSetWorkspaceID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + return l +} + +func (p *CreateExperimentTemplateRequest) field10Length() int { + l := 0 + if p.IsSetMeta() { l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() + l += p.Meta.BLength() } return l } -func (p *UpsertExptTurnResultFilterRequest) field2Length() int { +func (p *CreateExperimentTemplateRequest) field11Length() int { l := 0 - if p.IsSetExperimentID() { + if p.IsSetTripleConfig() { l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() + l += p.TripleConfig.BLength() } return l } -func (p *UpsertExptTurnResultFilterRequest) field3Length() int { +func (p *CreateExperimentTemplateRequest) field12Length() int { l := 0 - if p.IsSetItemIds() { + if p.IsSetFieldMappingConfig() { l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.ListBeginLength() - l += - thrift.Binary.I64Length() * len(p.ItemIds) + l += p.FieldMappingConfig.BLength() } return l } -func (p *UpsertExptTurnResultFilterRequest) field4Length() int { +func (p *CreateExperimentTemplateRequest) field20Length() int { l := 0 - if p.IsSetFilterType() { + if p.IsSetCreateEvalTargetParam() { l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.FilterType) + l += p.CreateEvalTargetParam.BLength() } return l } -func (p *UpsertExptTurnResultFilterRequest) field5Length() int { +func (p *CreateExperimentTemplateRequest) field21Length() int { l := 0 - if p.IsSetRetryTimes() { + if p.IsSetDefaultEvaluatorsConcurNum() { l += thrift.Binary.FieldBeginLength() l += thrift.Binary.I32Length() } return l } -func (p *UpsertExptTurnResultFilterRequest) DeepCopy(s interface{}) error { - src, ok := s.(*UpsertExptTurnResultFilterRequest) - if !ok { - return fmt.Errorf("%T's type not matched %T", s, p) +func (p *CreateExperimentTemplateRequest) field22Length() int { + l := 0 + if p.IsSetScheduleCron() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.ScheduleCron) } + return l +} - if src.WorkspaceID != nil { - tmp := *src.WorkspaceID - p.WorkspaceID = &tmp +func (p *CreateExperimentTemplateRequest) field200Length() int { + l := 0 + if p.IsSetSession() { + l += thrift.Binary.FieldBeginLength() + l += p.Session.BLength() } + return l +} - if src.ExperimentID != nil { - tmp := *src.ExperimentID - p.ExperimentID = &tmp - } +func (p *CreateExperimentTemplateRequest) field255Length() int { + l := 0 + if p.IsSetBase() { + l += thrift.Binary.FieldBeginLength() + l += p.Base.BLength() + } + return l +} - if src.ItemIds != nil { - p.ItemIds = make([]int64, 0, len(src.ItemIds)) - for _, elem := range src.ItemIds { - var _elem int64 - _elem = elem - p.ItemIds = append(p.ItemIds, _elem) +func (p *CreateExperimentTemplateRequest) DeepCopy(s interface{}) error { + src, ok := s.(*CreateExperimentTemplateRequest) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + p.WorkspaceID = src.WorkspaceID + + var _meta *expt.ExptTemplateMeta + if src.Meta != nil { + _meta = &expt.ExptTemplateMeta{} + if err := _meta.DeepCopy(src.Meta); err != nil { + return err } } + p.Meta = _meta - if src.FilterType != nil { - tmp := *src.FilterType - p.FilterType = &tmp + var _tripleConfig *expt.ExptTuple + if src.TripleConfig != nil { + _tripleConfig = &expt.ExptTuple{} + if err := _tripleConfig.DeepCopy(src.TripleConfig); err != nil { + return err + } } + p.TripleConfig = _tripleConfig - if src.RetryTimes != nil { - tmp := *src.RetryTimes - p.RetryTimes = &tmp + var _fieldMappingConfig *expt.ExptFieldMapping + if src.FieldMappingConfig != nil { + _fieldMappingConfig = &expt.ExptFieldMapping{} + if err := _fieldMappingConfig.DeepCopy(src.FieldMappingConfig); err != nil { + return err + } + } + p.FieldMappingConfig = _fieldMappingConfig + + var _createEvalTargetParam *eval_target.CreateEvalTargetParam + if src.CreateEvalTargetParam != nil { + _createEvalTargetParam = &eval_target.CreateEvalTargetParam{} + if err := _createEvalTargetParam.DeepCopy(src.CreateEvalTargetParam); err != nil { + return err + } + } + p.CreateEvalTargetParam = _createEvalTargetParam + + if src.DefaultEvaluatorsConcurNum != nil { + tmp := *src.DefaultEvaluatorsConcurNum + p.DefaultEvaluatorsConcurNum = &tmp + } + + if src.ScheduleCron != nil { + var tmp string + if *src.ScheduleCron != "" { + tmp = kutils.StringDeepCopy(*src.ScheduleCron) + } + p.ScheduleCron = &tmp + } + + var _session *common.Session + if src.Session != nil { + _session = &common.Session{} + if err := _session.DeepCopy(src.Session); err != nil { + return err + } + } + p.Session = _session + + var _base *base.Base + if src.Base != nil { + _base = &base.Base{} + if err := _base.DeepCopy(src.Base); err != nil { + return err + } } + p.Base = _base return nil } -func (p *UpsertExptTurnResultFilterResponse) FastRead(buf []byte) (int, error) { +func (p *CreateExperimentTemplateResponse) FastRead(buf []byte) (int, error) { var err error var offset int @@ -12585,6 +13091,20 @@ func (p *UpsertExptTurnResultFilterResponse) FastRead(buf []byte) (int, error) { break } switch fieldId { + case 1: + if fieldTypeId == thrift.STRUCT { + 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 255: if fieldTypeId == thrift.STRUCT { l, err = p.FastReadField255(buf[offset:]) @@ -12612,12 +13132,24 @@ func (p *UpsertExptTurnResultFilterResponse) FastRead(buf []byte) (int, error) { 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_UpsertExptTurnResultFilterResponse[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_CreateExperimentTemplateResponse[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *UpsertExptTurnResultFilterResponse) FastReadField255(buf []byte) (int, error) { +func (p *CreateExperimentTemplateResponse) FastReadField1(buf []byte) (int, error) { + offset := 0 + _field := expt.NewExptTemplate() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.ExperimentTemplate = _field + return offset, nil +} + +func (p *CreateExperimentTemplateResponse) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBaseResp() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -12629,48 +13161,77 @@ func (p *UpsertExptTurnResultFilterResponse) FastReadField255(buf []byte) (int, return offset, nil } -func (p *UpsertExptTurnResultFilterResponse) FastWrite(buf []byte) int { +func (p *CreateExperimentTemplateResponse) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *UpsertExptTurnResultFilterResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *CreateExperimentTemplateResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { + offset += p.fastWriteField1(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset } -func (p *UpsertExptTurnResultFilterResponse) BLength() int { +func (p *CreateExperimentTemplateResponse) BLength() int { l := 0 if p != nil { + l += p.field1Length() l += p.field255Length() } l += thrift.Binary.FieldStopLength() return l } -func (p *UpsertExptTurnResultFilterResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { +func (p *CreateExperimentTemplateResponse) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetExperimentTemplate() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) + offset += p.ExperimentTemplate.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *CreateExperimentTemplateResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) return offset } -func (p *UpsertExptTurnResultFilterResponse) field255Length() int { +func (p *CreateExperimentTemplateResponse) field1Length() int { + l := 0 + if p.IsSetExperimentTemplate() { + l += thrift.Binary.FieldBeginLength() + l += p.ExperimentTemplate.BLength() + } + return l +} + +func (p *CreateExperimentTemplateResponse) field255Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.BaseResp.BLength() return l } -func (p *UpsertExptTurnResultFilterResponse) DeepCopy(s interface{}) error { - src, ok := s.(*UpsertExptTurnResultFilterResponse) +func (p *CreateExperimentTemplateResponse) DeepCopy(s interface{}) error { + src, ok := s.(*CreateExperimentTemplateResponse) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } + var _experimentTemplate *expt.ExptTemplate + if src.ExperimentTemplate != nil { + _experimentTemplate = &expt.ExptTemplate{} + if err := _experimentTemplate.DeepCopy(src.ExperimentTemplate); err != nil { + return err + } + } + p.ExperimentTemplate = _experimentTemplate + var _baseResp *base.BaseResp if src.BaseResp != nil { _baseResp = &base.BaseResp{} @@ -12683,7 +13244,7 @@ func (p *UpsertExptTurnResultFilterResponse) DeepCopy(s interface{}) error { return nil } -func (p *AssociateAnnotationTagReq) FastRead(buf []byte) (int, error) { +func (p *BatchGetExperimentTemplateRequest) FastRead(buf []byte) (int, error) { var err error var offset int @@ -12691,7 +13252,7 @@ func (p *AssociateAnnotationTagReq) FastRead(buf []byte) (int, error) { var fieldTypeId thrift.TType var fieldId int16 var issetWorkspaceID bool = false - var issetExptID bool = false + var issetTemplateIds bool = false for { fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) offset += l @@ -12718,41 +13279,13 @@ func (p *AssociateAnnotationTagReq) FastRead(buf []byte) (int, error) { } } case 2: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.LIST { l, err = p.FastReadField2(buf[offset:]) offset += l if err != nil { goto ReadFieldError } - issetExptID = true - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.I64 { - 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 200: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField200(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } + issetTemplateIds = true } else { l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -12788,7 +13321,7 @@ func (p *AssociateAnnotationTagReq) FastRead(buf []byte) (int, error) { goto RequiredFieldNotSetError } - if !issetExptID { + if !issetTemplateIds { fieldId = 2 goto RequiredFieldNotSetError } @@ -12796,14 +13329,14 @@ func (p *AssociateAnnotationTagReq) FastRead(buf []byte) (int, error) { 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_AssociateAnnotationTagReq[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_BatchGetExperimentTemplateRequest[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_AssociateAnnotationTagReq[fieldId])) + return offset, thrift.NewProtocolException(thrift.INVALID_DATA, fmt.Sprintf("required field %s is not set", fieldIDToName_BatchGetExperimentTemplateRequest[fieldId])) } -func (p *AssociateAnnotationTagReq) FastReadField1(buf []byte) (int, error) { +func (p *BatchGetExperimentTemplateRequest) FastReadField1(buf []byte) (int, error) { offset := 0 var _field int64 @@ -12817,47 +13350,31 @@ func (p *AssociateAnnotationTagReq) FastReadField1(buf []byte) (int, error) { return offset, nil } -func (p *AssociateAnnotationTagReq) FastReadField2(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.ExptID = _field - return offset, nil -} - -func (p *AssociateAnnotationTagReq) FastReadField3(buf []byte) (int, error) { +func (p *BatchGetExperimentTemplateRequest) FastReadField2(buf []byte) (int, error) { offset := 0 - var _field *int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { return offset, err - } else { - offset += l - _field = &v } - p.TagKeyID = _field - return offset, nil -} + _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 + } -func (p *AssociateAnnotationTagReq) FastReadField200(buf []byte) (int, error) { - offset := 0 - _field := common.NewSession() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l + _field = append(_field, _elem) } - p.Session = _field + p.TemplateIds = _field return offset, nil } -func (p *AssociateAnnotationTagReq) FastReadField255(buf []byte) (int, error) { +func (p *BatchGetExperimentTemplateRequest) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBase() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -12869,69 +13386,54 @@ func (p *AssociateAnnotationTagReq) FastReadField255(buf []byte) (int, error) { return offset, nil } -func (p *AssociateAnnotationTagReq) FastWrite(buf []byte) int { +func (p *BatchGetExperimentTemplateRequest) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *AssociateAnnotationTagReq) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *BatchGetExperimentTemplateRequest) 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.fastWriteField200(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset } -func (p *AssociateAnnotationTagReq) BLength() int { +func (p *BatchGetExperimentTemplateRequest) BLength() int { l := 0 if p != nil { l += p.field1Length() l += p.field2Length() - l += p.field3Length() - l += p.field200Length() l += p.field255Length() } l += thrift.Binary.FieldStopLength() return l } -func (p *AssociateAnnotationTagReq) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *BatchGetExperimentTemplateRequest) 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.WorkspaceID) return offset } -func (p *AssociateAnnotationTagReq) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) - offset += thrift.Binary.WriteI64(buf[offset:], p.ExptID) - return offset -} - -func (p *AssociateAnnotationTagReq) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetTagKeyID() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 3) - offset += thrift.Binary.WriteI64(buf[offset:], *p.TagKeyID) - } - return offset -} - -func (p *AssociateAnnotationTagReq) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { +func (p *BatchGetExperimentTemplateRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetSession() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 200) - offset += p.Session.FastWriteNocopy(buf[offset:], w) + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 2) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.TemplateIds { + length++ + offset += thrift.Binary.WriteI64(buf[offset:], v) } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.I64, length) return offset } -func (p *AssociateAnnotationTagReq) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { +func (p *BatchGetExperimentTemplateRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetBase() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) @@ -12940,39 +13442,23 @@ func (p *AssociateAnnotationTagReq) fastWriteField255(buf []byte, w thrift.Nocop return offset } -func (p *AssociateAnnotationTagReq) field1Length() int { +func (p *BatchGetExperimentTemplateRequest) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += thrift.Binary.I64Length() return l } -func (p *AssociateAnnotationTagReq) field2Length() int { +func (p *BatchGetExperimentTemplateRequest) field2Length() int { l := 0 l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - return l -} - -func (p *AssociateAnnotationTagReq) field3Length() int { - l := 0 - if p.IsSetTagKeyID() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - } - return l -} - -func (p *AssociateAnnotationTagReq) field200Length() int { - l := 0 - if p.IsSetSession() { - l += thrift.Binary.FieldBeginLength() - l += p.Session.BLength() - } + l += thrift.Binary.ListBeginLength() + l += + thrift.Binary.I64Length() * len(p.TemplateIds) return l } -func (p *AssociateAnnotationTagReq) field255Length() int { +func (p *BatchGetExperimentTemplateRequest) field255Length() int { l := 0 if p.IsSetBase() { l += thrift.Binary.FieldBeginLength() @@ -12981,29 +13467,22 @@ func (p *AssociateAnnotationTagReq) field255Length() int { return l } -func (p *AssociateAnnotationTagReq) DeepCopy(s interface{}) error { - src, ok := s.(*AssociateAnnotationTagReq) +func (p *BatchGetExperimentTemplateRequest) DeepCopy(s interface{}) error { + src, ok := s.(*BatchGetExperimentTemplateRequest) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } p.WorkspaceID = src.WorkspaceID - p.ExptID = src.ExptID - - if src.TagKeyID != nil { - tmp := *src.TagKeyID - p.TagKeyID = &tmp - } - - var _session *common.Session - if src.Session != nil { - _session = &common.Session{} - if err := _session.DeepCopy(src.Session); err != nil { - return err + if src.TemplateIds != nil { + p.TemplateIds = make([]int64, 0, len(src.TemplateIds)) + for _, elem := range src.TemplateIds { + var _elem int64 + _elem = elem + p.TemplateIds = append(p.TemplateIds, _elem) } } - p.Session = _session var _base *base.Base if src.Base != nil { @@ -13017,7 +13496,7 @@ func (p *AssociateAnnotationTagReq) DeepCopy(s interface{}) error { return nil } -func (p *AssociateAnnotationTagResp) FastRead(buf []byte) (int, error) { +func (p *BatchGetExperimentTemplateResponse) FastRead(buf []byte) (int, error) { var err error var offset int @@ -13034,6 +13513,20 @@ func (p *AssociateAnnotationTagResp) FastRead(buf []byte) (int, error) { 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 255: if fieldTypeId == thrift.STRUCT { l, err = p.FastReadField255(buf[offset:]) @@ -13061,12 +13554,37 @@ func (p *AssociateAnnotationTagResp) FastRead(buf []byte) (int, error) { 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_AssociateAnnotationTagResp[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_BatchGetExperimentTemplateResponse[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *AssociateAnnotationTagResp) FastReadField255(buf []byte) (int, error) { +func (p *BatchGetExperimentTemplateResponse) 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([]*expt.ExptTemplate, 0, size) + values := make([]expt.ExptTemplate, 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.ExperimentTemplates = _field + return offset, nil +} + +func (p *BatchGetExperimentTemplateResponse) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBaseResp() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -13078,48 +13596,94 @@ func (p *AssociateAnnotationTagResp) FastReadField255(buf []byte) (int, error) { return offset, nil } -func (p *AssociateAnnotationTagResp) FastWrite(buf []byte) int { +func (p *BatchGetExperimentTemplateResponse) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *AssociateAnnotationTagResp) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *BatchGetExperimentTemplateResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { + offset += p.fastWriteField1(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset } -func (p *AssociateAnnotationTagResp) BLength() int { +func (p *BatchGetExperimentTemplateResponse) BLength() int { l := 0 if p != nil { + l += p.field1Length() l += p.field255Length() } l += thrift.Binary.FieldStopLength() return l } -func (p *AssociateAnnotationTagResp) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { +func (p *BatchGetExperimentTemplateResponse) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetExperimentTemplates() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 1) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.ExperimentTemplates { + length++ + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) + } + return offset +} + +func (p *BatchGetExperimentTemplateResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) return offset } -func (p *AssociateAnnotationTagResp) field255Length() int { +func (p *BatchGetExperimentTemplateResponse) field1Length() int { + l := 0 + if p.IsSetExperimentTemplates() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.ExperimentTemplates { + _ = v + l += v.BLength() + } + } + return l +} + +func (p *BatchGetExperimentTemplateResponse) field255Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.BaseResp.BLength() return l } -func (p *AssociateAnnotationTagResp) DeepCopy(s interface{}) error { - src, ok := s.(*AssociateAnnotationTagResp) +func (p *BatchGetExperimentTemplateResponse) DeepCopy(s interface{}) error { + src, ok := s.(*BatchGetExperimentTemplateResponse) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } + if src.ExperimentTemplates != nil { + p.ExperimentTemplates = make([]*expt.ExptTemplate, 0, len(src.ExperimentTemplates)) + for _, elem := range src.ExperimentTemplates { + var _elem *expt.ExptTemplate + if elem != nil { + _elem = &expt.ExptTemplate{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.ExperimentTemplates = append(p.ExperimentTemplates, _elem) + } + } + var _baseResp *base.BaseResp if src.BaseResp != nil { _baseResp = &base.BaseResp{} @@ -13132,7 +13696,7 @@ func (p *AssociateAnnotationTagResp) DeepCopy(s interface{}) error { return nil } -func (p *DeleteAnnotationTagReq) FastRead(buf []byte) (int, error) { +func (p *UpdateExperimentTemplateMetaRequest) FastRead(buf []byte) (int, error) { var err error var offset int @@ -13140,7 +13704,7 @@ func (p *DeleteAnnotationTagReq) FastRead(buf []byte) (int, error) { var fieldTypeId thrift.TType var fieldId int16 var issetWorkspaceID bool = false - var issetExptID bool = false + var issetTemplateID bool = false for { fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) offset += l @@ -13173,21 +13737,7 @@ func (p *DeleteAnnotationTagReq) FastRead(buf []byte) (int, error) { if err != nil { goto ReadFieldError } - issetExptID = true - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } + issetTemplateID = true } else { l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -13195,9 +13745,9 @@ func (p *DeleteAnnotationTagReq) FastRead(buf []byte) (int, error) { goto SkipFieldError } } - case 200: + case 10: if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField200(buf[offset:]) + l, err = p.FastReadField10(buf[offset:]) offset += l if err != nil { goto ReadFieldError @@ -13237,7 +13787,7 @@ func (p *DeleteAnnotationTagReq) FastRead(buf []byte) (int, error) { goto RequiredFieldNotSetError } - if !issetExptID { + if !issetTemplateID { fieldId = 2 goto RequiredFieldNotSetError } @@ -13245,14 +13795,14 @@ func (p *DeleteAnnotationTagReq) FastRead(buf []byte) (int, error) { 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_DeleteAnnotationTagReq[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UpdateExperimentTemplateMetaRequest[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_DeleteAnnotationTagReq[fieldId])) + return offset, thrift.NewProtocolException(thrift.INVALID_DATA, fmt.Sprintf("required field %s is not set", fieldIDToName_UpdateExperimentTemplateMetaRequest[fieldId])) } -func (p *DeleteAnnotationTagReq) FastReadField1(buf []byte) (int, error) { +func (p *UpdateExperimentTemplateMetaRequest) FastReadField1(buf []byte) (int, error) { offset := 0 var _field int64 @@ -13266,7 +13816,7 @@ func (p *DeleteAnnotationTagReq) FastReadField1(buf []byte) (int, error) { return offset, nil } -func (p *DeleteAnnotationTagReq) FastReadField2(buf []byte) (int, error) { +func (p *UpdateExperimentTemplateMetaRequest) FastReadField2(buf []byte) (int, error) { offset := 0 var _field int64 @@ -13276,37 +13826,23 @@ func (p *DeleteAnnotationTagReq) FastReadField2(buf []byte) (int, error) { offset += l _field = v } - p.ExptID = _field - return offset, nil -} - -func (p *DeleteAnnotationTagReq) FastReadField3(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.TagKeyID = _field + p.TemplateID = _field return offset, nil } -func (p *DeleteAnnotationTagReq) FastReadField200(buf []byte) (int, error) { +func (p *UpdateExperimentTemplateMetaRequest) FastReadField10(buf []byte) (int, error) { offset := 0 - _field := common.NewSession() + _field := expt.NewExptTemplateMeta() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { offset += l } - p.Session = _field + p.Meta = _field return offset, nil } -func (p *DeleteAnnotationTagReq) FastReadField255(buf []byte) (int, error) { +func (p *UpdateExperimentTemplateMetaRequest) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBase() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -13318,69 +13854,58 @@ func (p *DeleteAnnotationTagReq) FastReadField255(buf []byte) (int, error) { return offset, nil } -func (p *DeleteAnnotationTagReq) FastWrite(buf []byte) int { +func (p *UpdateExperimentTemplateMetaRequest) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *DeleteAnnotationTagReq) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *UpdateExperimentTemplateMetaRequest) 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.fastWriteField200(buf[offset:], w) + offset += p.fastWriteField10(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset } -func (p *DeleteAnnotationTagReq) BLength() int { +func (p *UpdateExperimentTemplateMetaRequest) BLength() int { l := 0 if p != nil { l += p.field1Length() l += p.field2Length() - l += p.field3Length() - l += p.field200Length() + l += p.field10Length() l += p.field255Length() } l += thrift.Binary.FieldStopLength() return l } -func (p *DeleteAnnotationTagReq) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *UpdateExperimentTemplateMetaRequest) 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.WorkspaceID) return offset } -func (p *DeleteAnnotationTagReq) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { +func (p *UpdateExperimentTemplateMetaRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) - offset += thrift.Binary.WriteI64(buf[offset:], p.ExptID) - return offset -} - -func (p *DeleteAnnotationTagReq) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetTagKeyID() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 3) - offset += thrift.Binary.WriteI64(buf[offset:], *p.TagKeyID) - } + offset += thrift.Binary.WriteI64(buf[offset:], p.TemplateID) return offset } -func (p *DeleteAnnotationTagReq) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { +func (p *UpdateExperimentTemplateMetaRequest) fastWriteField10(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetSession() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 200) - offset += p.Session.FastWriteNocopy(buf[offset:], w) + if p.IsSetMeta() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 10) + offset += p.Meta.FastWriteNocopy(buf[offset:], w) } return offset } -func (p *DeleteAnnotationTagReq) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { +func (p *UpdateExperimentTemplateMetaRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetBase() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) @@ -13389,39 +13914,30 @@ func (p *DeleteAnnotationTagReq) fastWriteField255(buf []byte, w thrift.NocopyWr return offset } -func (p *DeleteAnnotationTagReq) field1Length() int { +func (p *UpdateExperimentTemplateMetaRequest) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += thrift.Binary.I64Length() return l } -func (p *DeleteAnnotationTagReq) field2Length() int { +func (p *UpdateExperimentTemplateMetaRequest) field2Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += thrift.Binary.I64Length() return l } -func (p *DeleteAnnotationTagReq) field3Length() int { - l := 0 - if p.IsSetTagKeyID() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - } - return l -} - -func (p *DeleteAnnotationTagReq) field200Length() int { +func (p *UpdateExperimentTemplateMetaRequest) field10Length() int { l := 0 - if p.IsSetSession() { + if p.IsSetMeta() { l += thrift.Binary.FieldBeginLength() - l += p.Session.BLength() + l += p.Meta.BLength() } return l } -func (p *DeleteAnnotationTagReq) field255Length() int { +func (p *UpdateExperimentTemplateMetaRequest) field255Length() int { l := 0 if p.IsSetBase() { l += thrift.Binary.FieldBeginLength() @@ -13430,29 +13946,24 @@ func (p *DeleteAnnotationTagReq) field255Length() int { return l } -func (p *DeleteAnnotationTagReq) DeepCopy(s interface{}) error { - src, ok := s.(*DeleteAnnotationTagReq) +func (p *UpdateExperimentTemplateMetaRequest) DeepCopy(s interface{}) error { + src, ok := s.(*UpdateExperimentTemplateMetaRequest) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } p.WorkspaceID = src.WorkspaceID - p.ExptID = src.ExptID - - if src.TagKeyID != nil { - tmp := *src.TagKeyID - p.TagKeyID = &tmp - } + p.TemplateID = src.TemplateID - var _session *common.Session - if src.Session != nil { - _session = &common.Session{} - if err := _session.DeepCopy(src.Session); err != nil { + var _meta *expt.ExptTemplateMeta + if src.Meta != nil { + _meta = &expt.ExptTemplateMeta{} + if err := _meta.DeepCopy(src.Meta); err != nil { return err } } - p.Session = _session + p.Meta = _meta var _base *base.Base if src.Base != nil { @@ -13466,7 +13977,7 @@ func (p *DeleteAnnotationTagReq) DeepCopy(s interface{}) error { return nil } -func (p *DeleteAnnotationTagResp) FastRead(buf []byte) (int, error) { +func (p *UpdateExperimentTemplateMetaResponse) FastRead(buf []byte) (int, error) { var err error var offset int @@ -13483,6 +13994,20 @@ func (p *DeleteAnnotationTagResp) FastRead(buf []byte) (int, error) { break } switch fieldId { + case 1: + if fieldTypeId == thrift.STRUCT { + 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 255: if fieldTypeId == thrift.STRUCT { l, err = p.FastReadField255(buf[offset:]) @@ -13510,12 +14035,24 @@ func (p *DeleteAnnotationTagResp) FastRead(buf []byte) (int, error) { 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_DeleteAnnotationTagResp[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UpdateExperimentTemplateMetaResponse[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *DeleteAnnotationTagResp) FastReadField255(buf []byte) (int, error) { +func (p *UpdateExperimentTemplateMetaResponse) FastReadField1(buf []byte) (int, error) { + offset := 0 + _field := expt.NewExptTemplateMeta() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Meta = _field + return offset, nil +} + +func (p *UpdateExperimentTemplateMetaResponse) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBaseResp() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -13527,48 +14064,77 @@ func (p *DeleteAnnotationTagResp) FastReadField255(buf []byte) (int, error) { return offset, nil } -func (p *DeleteAnnotationTagResp) FastWrite(buf []byte) int { +func (p *UpdateExperimentTemplateMetaResponse) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *DeleteAnnotationTagResp) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *UpdateExperimentTemplateMetaResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { + offset += p.fastWriteField1(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset } -func (p *DeleteAnnotationTagResp) BLength() int { +func (p *UpdateExperimentTemplateMetaResponse) BLength() int { l := 0 if p != nil { + l += p.field1Length() l += p.field255Length() } l += thrift.Binary.FieldStopLength() return l } -func (p *DeleteAnnotationTagResp) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { +func (p *UpdateExperimentTemplateMetaResponse) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetMeta() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) + offset += p.Meta.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *UpdateExperimentTemplateMetaResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) return offset } -func (p *DeleteAnnotationTagResp) field255Length() int { +func (p *UpdateExperimentTemplateMetaResponse) field1Length() int { + l := 0 + if p.IsSetMeta() { + l += thrift.Binary.FieldBeginLength() + l += p.Meta.BLength() + } + return l +} + +func (p *UpdateExperimentTemplateMetaResponse) field255Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.BaseResp.BLength() return l } -func (p *DeleteAnnotationTagResp) DeepCopy(s interface{}) error { - src, ok := s.(*DeleteAnnotationTagResp) +func (p *UpdateExperimentTemplateMetaResponse) DeepCopy(s interface{}) error { + src, ok := s.(*UpdateExperimentTemplateMetaResponse) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } + var _meta *expt.ExptTemplateMeta + if src.Meta != nil { + _meta = &expt.ExptTemplateMeta{} + if err := _meta.DeepCopy(src.Meta); err != nil { + return err + } + } + p.Meta = _meta + var _baseResp *base.BaseResp if src.BaseResp != nil { _baseResp = &base.BaseResp{} @@ -13581,7 +14147,7 @@ func (p *DeleteAnnotationTagResp) DeepCopy(s interface{}) error { return nil } -func (p *CreateAnnotateRecordReq) FastRead(buf []byte) (int, error) { +func (p *UpdateExperimentTemplateRequest) FastRead(buf []byte) (int, error) { var err error var offset int @@ -13589,10 +14155,7 @@ func (p *CreateAnnotateRecordReq) FastRead(buf []byte) (int, error) { var fieldTypeId thrift.TType var fieldId int16 var issetWorkspaceID bool = false - var issetExptID bool = false - var issetAnnotateRecord bool = false - var issetItemID bool = false - var issetTurnID bool = false + var issetTemplateID bool = false for { fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) offset += l @@ -13625,7 +14188,7 @@ func (p *CreateAnnotateRecordReq) FastRead(buf []byte) (int, error) { if err != nil { goto ReadFieldError } - issetExptID = true + issetTemplateID = true } else { l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -13633,14 +14196,13 @@ func (p *CreateAnnotateRecordReq) FastRead(buf []byte) (int, error) { goto SkipFieldError } } - case 3: + case 10: if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField3(buf[offset:]) + l, err = p.FastReadField10(buf[offset:]) offset += l if err != nil { goto ReadFieldError } - issetAnnotateRecord = true } else { l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -13648,14 +14210,13 @@ func (p *CreateAnnotateRecordReq) FastRead(buf []byte) (int, error) { goto SkipFieldError } } - case 4: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField4(buf[offset:]) + case 11: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField11(buf[offset:]) offset += l if err != nil { goto ReadFieldError } - issetItemID = true } else { l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -13663,14 +14224,13 @@ func (p *CreateAnnotateRecordReq) FastRead(buf []byte) (int, error) { goto SkipFieldError } } - case 5: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField5(buf[offset:]) + case 12: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField12(buf[offset:]) offset += l if err != nil { goto ReadFieldError } - issetTurnID = true } else { l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -13678,9 +14238,37 @@ func (p *CreateAnnotateRecordReq) FastRead(buf []byte) (int, error) { goto SkipFieldError } } - case 200: + case 20: if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField200(buf[offset:]) + l, err = p.FastReadField20(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 21: + if fieldTypeId == thrift.I32 { + l, err = p.FastReadField21(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 22: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField22(buf[offset:]) offset += l if err != nil { goto ReadFieldError @@ -13720,37 +14308,22 @@ func (p *CreateAnnotateRecordReq) FastRead(buf []byte) (int, error) { goto RequiredFieldNotSetError } - if !issetExptID { + if !issetTemplateID { fieldId = 2 goto RequiredFieldNotSetError } - - if !issetAnnotateRecord { - fieldId = 3 - goto RequiredFieldNotSetError - } - - if !issetItemID { - fieldId = 4 - goto RequiredFieldNotSetError - } - - if !issetTurnID { - fieldId = 5 - 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_CreateAnnotateRecordReq[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UpdateExperimentTemplateRequest[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_CreateAnnotateRecordReq[fieldId])) + return offset, thrift.NewProtocolException(thrift.INVALID_DATA, fmt.Sprintf("required field %s is not set", fieldIDToName_UpdateExperimentTemplateRequest[fieldId])) } -func (p *CreateAnnotateRecordReq) FastReadField1(buf []byte) (int, error) { +func (p *UpdateExperimentTemplateRequest) FastReadField1(buf []byte) (int, error) { offset := 0 var _field int64 @@ -13764,7 +14337,7 @@ func (p *CreateAnnotateRecordReq) FastReadField1(buf []byte) (int, error) { return offset, nil } -func (p *CreateAnnotateRecordReq) FastReadField2(buf []byte) (int, error) { +func (p *UpdateExperimentTemplateRequest) FastReadField2(buf []byte) (int, error) { offset := 0 var _field int64 @@ -13774,63 +14347,87 @@ func (p *CreateAnnotateRecordReq) FastReadField2(buf []byte) (int, error) { offset += l _field = v } - p.ExptID = _field + p.TemplateID = _field return offset, nil } -func (p *CreateAnnotateRecordReq) FastReadField3(buf []byte) (int, error) { +func (p *UpdateExperimentTemplateRequest) FastReadField10(buf []byte) (int, error) { offset := 0 - _field := expt.NewAnnotateRecord() + _field := expt.NewExptTemplateMeta() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { offset += l } - p.AnnotateRecord = _field + p.Meta = _field return offset, nil } -func (p *CreateAnnotateRecordReq) FastReadField4(buf []byte) (int, error) { +func (p *UpdateExperimentTemplateRequest) FastReadField11(buf []byte) (int, error) { offset := 0 + _field := expt.NewExptTuple() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.TripleConfig = _field + return offset, nil +} - var _field int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { +func (p *UpdateExperimentTemplateRequest) FastReadField12(buf []byte) (int, error) { + offset := 0 + _field := expt.NewExptFieldMapping() + if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { offset += l - _field = v } - p.ItemID = _field + p.FieldMappingConfig = _field return offset, nil } -func (p *CreateAnnotateRecordReq) FastReadField5(buf []byte) (int, error) { +func (p *UpdateExperimentTemplateRequest) FastReadField20(buf []byte) (int, error) { offset := 0 + _field := eval_target.NewCreateEvalTargetParam() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.CreateEvalTargetParam = _field + return offset, nil +} - var _field int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { +func (p *UpdateExperimentTemplateRequest) FastReadField21(buf []byte) (int, error) { + offset := 0 + + var _field *int32 + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { return offset, err } else { offset += l - _field = v + _field = &v } - p.TurnID = _field + p.DefaultEvaluatorsConcurNum = _field return offset, nil } -func (p *CreateAnnotateRecordReq) FastReadField200(buf []byte) (int, error) { +func (p *UpdateExperimentTemplateRequest) FastReadField22(buf []byte) (int, error) { offset := 0 - _field := common.NewSession() - if l, err := _field.FastRead(buf[offset:]); err != nil { + + var _field *string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { return offset, err } else { offset += l + _field = &v } - p.Session = _field + p.ScheduleCron = _field return offset, nil } -func (p *CreateAnnotateRecordReq) FastReadField255(buf []byte) (int, error) { +func (p *UpdateExperimentTemplateRequest) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBase() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -13842,85 +14439,113 @@ func (p *CreateAnnotateRecordReq) FastReadField255(buf []byte) (int, error) { return offset, nil } -func (p *CreateAnnotateRecordReq) FastWrite(buf []byte) int { +func (p *UpdateExperimentTemplateRequest) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *CreateAnnotateRecordReq) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *UpdateExperimentTemplateRequest) 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.fastWriteField4(buf[offset:], w) - offset += p.fastWriteField5(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - offset += p.fastWriteField200(buf[offset:], w) + offset += p.fastWriteField21(buf[offset:], w) + offset += p.fastWriteField10(buf[offset:], w) + offset += p.fastWriteField11(buf[offset:], w) + offset += p.fastWriteField12(buf[offset:], w) + offset += p.fastWriteField20(buf[offset:], w) + offset += p.fastWriteField22(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset } -func (p *CreateAnnotateRecordReq) BLength() int { +func (p *UpdateExperimentTemplateRequest) BLength() int { l := 0 if p != nil { l += p.field1Length() l += p.field2Length() - l += p.field3Length() - l += p.field4Length() - l += p.field5Length() - l += p.field200Length() + l += p.field10Length() + l += p.field11Length() + l += p.field12Length() + l += p.field20Length() + l += p.field21Length() + l += p.field22Length() l += p.field255Length() } l += thrift.Binary.FieldStopLength() return l } -func (p *CreateAnnotateRecordReq) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *UpdateExperimentTemplateRequest) 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.WorkspaceID) return offset } -func (p *CreateAnnotateRecordReq) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { +func (p *UpdateExperimentTemplateRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) - offset += thrift.Binary.WriteI64(buf[offset:], p.ExptID) + offset += thrift.Binary.WriteI64(buf[offset:], p.TemplateID) return offset } -func (p *CreateAnnotateRecordReq) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { +func (p *UpdateExperimentTemplateRequest) fastWriteField10(buf []byte, w thrift.NocopyWriter) int { offset := 0 - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 3) - offset += p.AnnotateRecord.FastWriteNocopy(buf[offset:], w) + if p.IsSetMeta() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 10) + offset += p.Meta.FastWriteNocopy(buf[offset:], w) + } return offset } -func (p *CreateAnnotateRecordReq) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { +func (p *UpdateExperimentTemplateRequest) fastWriteField11(buf []byte, w thrift.NocopyWriter) int { offset := 0 - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 4) - offset += thrift.Binary.WriteI64(buf[offset:], p.ItemID) + if p.IsSetTripleConfig() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 11) + offset += p.TripleConfig.FastWriteNocopy(buf[offset:], w) + } return offset } -func (p *CreateAnnotateRecordReq) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { +func (p *UpdateExperimentTemplateRequest) fastWriteField12(buf []byte, w thrift.NocopyWriter) int { offset := 0 - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 5) - offset += thrift.Binary.WriteI64(buf[offset:], p.TurnID) + if p.IsSetFieldMappingConfig() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 12) + offset += p.FieldMappingConfig.FastWriteNocopy(buf[offset:], w) + } return offset } -func (p *CreateAnnotateRecordReq) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { +func (p *UpdateExperimentTemplateRequest) fastWriteField20(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetSession() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 200) - offset += p.Session.FastWriteNocopy(buf[offset:], w) + if p.IsSetCreateEvalTargetParam() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 20) + offset += p.CreateEvalTargetParam.FastWriteNocopy(buf[offset:], w) } return offset } -func (p *CreateAnnotateRecordReq) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { +func (p *UpdateExperimentTemplateRequest) fastWriteField21(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetDefaultEvaluatorsConcurNum() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 21) + offset += thrift.Binary.WriteI32(buf[offset:], *p.DefaultEvaluatorsConcurNum) + } + return offset +} + +func (p *UpdateExperimentTemplateRequest) fastWriteField22(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetScheduleCron() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 22) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ScheduleCron) + } + return offset +} + +func (p *UpdateExperimentTemplateRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetBase() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) @@ -13929,51 +14554,75 @@ func (p *CreateAnnotateRecordReq) fastWriteField255(buf []byte, w thrift.NocopyW return offset } -func (p *CreateAnnotateRecordReq) field1Length() int { +func (p *UpdateExperimentTemplateRequest) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += thrift.Binary.I64Length() return l } -func (p *CreateAnnotateRecordReq) field2Length() int { +func (p *UpdateExperimentTemplateRequest) field2Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += thrift.Binary.I64Length() return l } -func (p *CreateAnnotateRecordReq) field3Length() int { +func (p *UpdateExperimentTemplateRequest) field10Length() int { l := 0 - l += thrift.Binary.FieldBeginLength() - l += p.AnnotateRecord.BLength() + if p.IsSetMeta() { + l += thrift.Binary.FieldBeginLength() + l += p.Meta.BLength() + } return l } -func (p *CreateAnnotateRecordReq) field4Length() int { +func (p *UpdateExperimentTemplateRequest) field11Length() int { l := 0 - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() + if p.IsSetTripleConfig() { + l += thrift.Binary.FieldBeginLength() + l += p.TripleConfig.BLength() + } return l } -func (p *CreateAnnotateRecordReq) field5Length() int { +func (p *UpdateExperimentTemplateRequest) field12Length() int { l := 0 - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() + if p.IsSetFieldMappingConfig() { + l += thrift.Binary.FieldBeginLength() + l += p.FieldMappingConfig.BLength() + } return l } -func (p *CreateAnnotateRecordReq) field200Length() int { +func (p *UpdateExperimentTemplateRequest) field20Length() int { l := 0 - if p.IsSetSession() { + if p.IsSetCreateEvalTargetParam() { l += thrift.Binary.FieldBeginLength() - l += p.Session.BLength() + l += p.CreateEvalTargetParam.BLength() } return l } -func (p *CreateAnnotateRecordReq) field255Length() int { +func (p *UpdateExperimentTemplateRequest) field21Length() int { + l := 0 + if p.IsSetDefaultEvaluatorsConcurNum() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + } + return l +} + +func (p *UpdateExperimentTemplateRequest) field22Length() int { + l := 0 + if p.IsSetScheduleCron() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.ScheduleCron) + } + return l +} + +func (p *UpdateExperimentTemplateRequest) field255Length() int { l := 0 if p.IsSetBase() { l += thrift.Binary.FieldBeginLength() @@ -13982,37 +14631,64 @@ func (p *CreateAnnotateRecordReq) field255Length() int { return l } -func (p *CreateAnnotateRecordReq) DeepCopy(s interface{}) error { - src, ok := s.(*CreateAnnotateRecordReq) +func (p *UpdateExperimentTemplateRequest) DeepCopy(s interface{}) error { + src, ok := s.(*UpdateExperimentTemplateRequest) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } p.WorkspaceID = src.WorkspaceID - p.ExptID = src.ExptID + p.TemplateID = src.TemplateID - var _annotateRecord *expt.AnnotateRecord - if src.AnnotateRecord != nil { - _annotateRecord = &expt.AnnotateRecord{} - if err := _annotateRecord.DeepCopy(src.AnnotateRecord); err != nil { + var _meta *expt.ExptTemplateMeta + if src.Meta != nil { + _meta = &expt.ExptTemplateMeta{} + if err := _meta.DeepCopy(src.Meta); err != nil { return err } } - p.AnnotateRecord = _annotateRecord + p.Meta = _meta - p.ItemID = src.ItemID + var _tripleConfig *expt.ExptTuple + if src.TripleConfig != nil { + _tripleConfig = &expt.ExptTuple{} + if err := _tripleConfig.DeepCopy(src.TripleConfig); err != nil { + return err + } + } + p.TripleConfig = _tripleConfig - p.TurnID = src.TurnID + var _fieldMappingConfig *expt.ExptFieldMapping + if src.FieldMappingConfig != nil { + _fieldMappingConfig = &expt.ExptFieldMapping{} + if err := _fieldMappingConfig.DeepCopy(src.FieldMappingConfig); err != nil { + return err + } + } + p.FieldMappingConfig = _fieldMappingConfig - var _session *common.Session - if src.Session != nil { - _session = &common.Session{} - if err := _session.DeepCopy(src.Session); err != nil { + var _createEvalTargetParam *eval_target.CreateEvalTargetParam + if src.CreateEvalTargetParam != nil { + _createEvalTargetParam = &eval_target.CreateEvalTargetParam{} + if err := _createEvalTargetParam.DeepCopy(src.CreateEvalTargetParam); err != nil { return err } } - p.Session = _session + p.CreateEvalTargetParam = _createEvalTargetParam + + if src.DefaultEvaluatorsConcurNum != nil { + tmp := *src.DefaultEvaluatorsConcurNum + p.DefaultEvaluatorsConcurNum = &tmp + } + + if src.ScheduleCron != nil { + var tmp string + if *src.ScheduleCron != "" { + tmp = kutils.StringDeepCopy(*src.ScheduleCron) + } + p.ScheduleCron = &tmp + } var _base *base.Base if src.Base != nil { @@ -14026,14 +14702,13 @@ func (p *CreateAnnotateRecordReq) DeepCopy(s interface{}) error { return nil } -func (p *CreateAnnotateRecordResp) FastRead(buf []byte) (int, error) { +func (p *UpdateExperimentTemplateResponse) FastRead(buf []byte) (int, error) { var err error var offset int var l int var fieldTypeId thrift.TType var fieldId int16 - var issetAnnotateRecordID bool = false for { fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) offset += l @@ -14045,13 +14720,12 @@ func (p *CreateAnnotateRecordResp) FastRead(buf []byte) (int, error) { } switch fieldId { case 1: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.STRUCT { l, err = p.FastReadField1(buf[offset:]) offset += l if err != nil { goto ReadFieldError } - issetAnnotateRecordID = true } else { l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -14082,36 +14756,28 @@ func (p *CreateAnnotateRecordResp) FastRead(buf []byte) (int, error) { } } - if !issetAnnotateRecordID { - 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_CreateAnnotateRecordResp[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UpdateExperimentTemplateResponse[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_CreateAnnotateRecordResp[fieldId])) } -func (p *CreateAnnotateRecordResp) FastReadField1(buf []byte) (int, error) { +func (p *UpdateExperimentTemplateResponse) FastReadField1(buf []byte) (int, error) { offset := 0 - - var _field int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + _field := expt.NewExptTemplate() + if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { offset += l - _field = v } - p.AnnotateRecordID = _field + p.ExperimentTemplate = _field return offset, nil } -func (p *CreateAnnotateRecordResp) FastReadField255(buf []byte) (int, error) { +func (p *UpdateExperimentTemplateResponse) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBaseResp() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -14123,11 +14789,11 @@ func (p *CreateAnnotateRecordResp) FastReadField255(buf []byte) (int, error) { return offset, nil } -func (p *CreateAnnotateRecordResp) FastWrite(buf []byte) int { +func (p *UpdateExperimentTemplateResponse) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *CreateAnnotateRecordResp) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *UpdateExperimentTemplateResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -14137,7 +14803,7 @@ func (p *CreateAnnotateRecordResp) FastWriteNocopy(buf []byte, w thrift.NocopyWr return offset } -func (p *CreateAnnotateRecordResp) BLength() int { +func (p *UpdateExperimentTemplateResponse) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -14147,41 +14813,52 @@ func (p *CreateAnnotateRecordResp) BLength() int { return l } -func (p *CreateAnnotateRecordResp) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *UpdateExperimentTemplateResponse) 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.AnnotateRecordID) + if p.IsSetExperimentTemplate() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) + offset += p.ExperimentTemplate.FastWriteNocopy(buf[offset:], w) + } return offset } -func (p *CreateAnnotateRecordResp) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { +func (p *UpdateExperimentTemplateResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) return offset } -func (p *CreateAnnotateRecordResp) field1Length() int { +func (p *UpdateExperimentTemplateResponse) field1Length() int { l := 0 - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() + if p.IsSetExperimentTemplate() { + l += thrift.Binary.FieldBeginLength() + l += p.ExperimentTemplate.BLength() + } return l } -func (p *CreateAnnotateRecordResp) field255Length() int { +func (p *UpdateExperimentTemplateResponse) field255Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.BaseResp.BLength() return l } -func (p *CreateAnnotateRecordResp) DeepCopy(s interface{}) error { - src, ok := s.(*CreateAnnotateRecordResp) +func (p *UpdateExperimentTemplateResponse) DeepCopy(s interface{}) error { + src, ok := s.(*UpdateExperimentTemplateResponse) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - p.AnnotateRecordID = src.AnnotateRecordID + var _experimentTemplate *expt.ExptTemplate + if src.ExperimentTemplate != nil { + _experimentTemplate = &expt.ExptTemplate{} + if err := _experimentTemplate.DeepCopy(src.ExperimentTemplate); err != nil { + return err + } + } + p.ExperimentTemplate = _experimentTemplate var _baseResp *base.BaseResp if src.BaseResp != nil { @@ -14195,7 +14872,7 @@ func (p *CreateAnnotateRecordResp) DeepCopy(s interface{}) error { return nil } -func (p *UpdateAnnotateRecordReq) FastRead(buf []byte) (int, error) { +func (p *DeleteExperimentTemplateRequest) FastRead(buf []byte) (int, error) { var err error var offset int @@ -14203,11 +14880,7 @@ func (p *UpdateAnnotateRecordReq) FastRead(buf []byte) (int, error) { var fieldTypeId thrift.TType var fieldId int16 var issetWorkspaceID bool = false - var issetExptID bool = false - var issetAnnotateRecords bool = false - var issetAnnotateRecordID bool = false - var issetItemID bool = false - var issetTurnID bool = false + var issetTemplateID bool = false for { fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) offset += l @@ -14240,81 +14913,7 @@ func (p *UpdateAnnotateRecordReq) FastRead(buf []byte) (int, error) { if err != nil { goto ReadFieldError } - issetExptID = true - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 3: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - issetAnnotateRecords = true - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 4: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField4(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - issetAnnotateRecordID = true - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 5: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField5(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - issetItemID = true - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 6: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField6(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - issetTurnID = true - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 200: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField200(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } + issetTemplateID = true } else { l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -14350,42 +14949,22 @@ func (p *UpdateAnnotateRecordReq) FastRead(buf []byte) (int, error) { goto RequiredFieldNotSetError } - if !issetExptID { + if !issetTemplateID { fieldId = 2 goto RequiredFieldNotSetError } - - if !issetAnnotateRecords { - fieldId = 3 - goto RequiredFieldNotSetError - } - - if !issetAnnotateRecordID { - fieldId = 4 - goto RequiredFieldNotSetError - } - - if !issetItemID { - fieldId = 5 - goto RequiredFieldNotSetError - } - - if !issetTurnID { - fieldId = 6 - 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_UpdateAnnotateRecordReq[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_DeleteExperimentTemplateRequest[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_UpdateAnnotateRecordReq[fieldId])) + return offset, thrift.NewProtocolException(thrift.INVALID_DATA, fmt.Sprintf("required field %s is not set", fieldIDToName_DeleteExperimentTemplateRequest[fieldId])) } -func (p *UpdateAnnotateRecordReq) FastReadField1(buf []byte) (int, error) { +func (p *DeleteExperimentTemplateRequest) FastReadField1(buf []byte) (int, error) { offset := 0 var _field int64 @@ -14399,61 +14978,7 @@ func (p *UpdateAnnotateRecordReq) FastReadField1(buf []byte) (int, error) { return offset, nil } -func (p *UpdateAnnotateRecordReq) FastReadField2(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.ExptID = _field - return offset, nil -} - -func (p *UpdateAnnotateRecordReq) FastReadField3(buf []byte) (int, error) { - offset := 0 - _field := expt.NewAnnotateRecord() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.AnnotateRecords = _field - return offset, nil -} - -func (p *UpdateAnnotateRecordReq) FastReadField4(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.AnnotateRecordID = _field - return offset, nil -} - -func (p *UpdateAnnotateRecordReq) FastReadField5(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.ItemID = _field - return offset, nil -} - -func (p *UpdateAnnotateRecordReq) FastReadField6(buf []byte) (int, error) { +func (p *DeleteExperimentTemplateRequest) FastReadField2(buf []byte) (int, error) { offset := 0 var _field int64 @@ -14463,23 +14988,11 @@ func (p *UpdateAnnotateRecordReq) FastReadField6(buf []byte) (int, error) { offset += l _field = v } - p.TurnID = _field - return offset, nil -} - -func (p *UpdateAnnotateRecordReq) FastReadField200(buf []byte) (int, error) { - offset := 0 - _field := common.NewSession() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.Session = _field + p.TemplateID = _field return offset, nil } -func (p *UpdateAnnotateRecordReq) FastReadField255(buf []byte) (int, error) { +func (p *DeleteExperimentTemplateRequest) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBase() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -14491,94 +15004,47 @@ func (p *UpdateAnnotateRecordReq) FastReadField255(buf []byte) (int, error) { return offset, nil } -func (p *UpdateAnnotateRecordReq) FastWrite(buf []byte) int { +func (p *DeleteExperimentTemplateRequest) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *UpdateAnnotateRecordReq) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *DeleteExperimentTemplateRequest) 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.fastWriteField4(buf[offset:], w) - offset += p.fastWriteField5(buf[offset:], w) - offset += p.fastWriteField6(buf[offset:], w) - offset += p.fastWriteField3(buf[offset:], w) - offset += p.fastWriteField200(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset } -func (p *UpdateAnnotateRecordReq) BLength() int { +func (p *DeleteExperimentTemplateRequest) 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 += p.field200Length() l += p.field255Length() } l += thrift.Binary.FieldStopLength() return l } -func (p *UpdateAnnotateRecordReq) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *DeleteExperimentTemplateRequest) 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.WorkspaceID) return offset } -func (p *UpdateAnnotateRecordReq) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { +func (p *DeleteExperimentTemplateRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) - offset += thrift.Binary.WriteI64(buf[offset:], p.ExptID) - return offset -} - -func (p *UpdateAnnotateRecordReq) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 3) - offset += p.AnnotateRecords.FastWriteNocopy(buf[offset:], w) - return offset -} - -func (p *UpdateAnnotateRecordReq) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 4) - offset += thrift.Binary.WriteI64(buf[offset:], p.AnnotateRecordID) - return offset -} - -func (p *UpdateAnnotateRecordReq) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 5) - offset += thrift.Binary.WriteI64(buf[offset:], p.ItemID) - return offset -} - -func (p *UpdateAnnotateRecordReq) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 6) - offset += thrift.Binary.WriteI64(buf[offset:], p.TurnID) - return offset -} - -func (p *UpdateAnnotateRecordReq) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetSession() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 200) - offset += p.Session.FastWriteNocopy(buf[offset:], w) - } + offset += thrift.Binary.WriteI64(buf[offset:], p.TemplateID) return offset } -func (p *UpdateAnnotateRecordReq) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { +func (p *DeleteExperimentTemplateRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetBase() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) @@ -14587,99 +15053,38 @@ func (p *UpdateAnnotateRecordReq) fastWriteField255(buf []byte, w thrift.NocopyW return offset } -func (p *UpdateAnnotateRecordReq) field1Length() int { +func (p *DeleteExperimentTemplateRequest) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += thrift.Binary.I64Length() return l } -func (p *UpdateAnnotateRecordReq) field2Length() int { +func (p *DeleteExperimentTemplateRequest) field2Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += thrift.Binary.I64Length() return l } -func (p *UpdateAnnotateRecordReq) field3Length() int { +func (p *DeleteExperimentTemplateRequest) field255Length() int { l := 0 - l += thrift.Binary.FieldBeginLength() - l += p.AnnotateRecords.BLength() + if p.IsSetBase() { + l += thrift.Binary.FieldBeginLength() + l += p.Base.BLength() + } return l } -func (p *UpdateAnnotateRecordReq) field4Length() int { - l := 0 - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - return l -} - -func (p *UpdateAnnotateRecordReq) field5Length() int { - l := 0 - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - return l -} - -func (p *UpdateAnnotateRecordReq) field6Length() int { - l := 0 - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - return l -} - -func (p *UpdateAnnotateRecordReq) field200Length() int { - l := 0 - if p.IsSetSession() { - l += thrift.Binary.FieldBeginLength() - l += p.Session.BLength() - } - return l -} - -func (p *UpdateAnnotateRecordReq) field255Length() int { - l := 0 - if p.IsSetBase() { - l += thrift.Binary.FieldBeginLength() - l += p.Base.BLength() - } - return l -} - -func (p *UpdateAnnotateRecordReq) DeepCopy(s interface{}) error { - src, ok := s.(*UpdateAnnotateRecordReq) +func (p *DeleteExperimentTemplateRequest) DeepCopy(s interface{}) error { + src, ok := s.(*DeleteExperimentTemplateRequest) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } p.WorkspaceID = src.WorkspaceID - p.ExptID = src.ExptID - - var _annotateRecords *expt.AnnotateRecord - if src.AnnotateRecords != nil { - _annotateRecords = &expt.AnnotateRecord{} - if err := _annotateRecords.DeepCopy(src.AnnotateRecords); err != nil { - return err - } - } - p.AnnotateRecords = _annotateRecords - - p.AnnotateRecordID = src.AnnotateRecordID - - p.ItemID = src.ItemID - - p.TurnID = src.TurnID - - var _session *common.Session - if src.Session != nil { - _session = &common.Session{} - if err := _session.DeepCopy(src.Session); err != nil { - return err - } - } - p.Session = _session + p.TemplateID = src.TemplateID var _base *base.Base if src.Base != nil { @@ -14693,7 +15098,7 @@ func (p *UpdateAnnotateRecordReq) DeepCopy(s interface{}) error { return nil } -func (p *UpdateAnnotateRecordResp) FastRead(buf []byte) (int, error) { +func (p *DeleteExperimentTemplateResponse) FastRead(buf []byte) (int, error) { var err error var offset int @@ -14737,12 +15142,12 @@ func (p *UpdateAnnotateRecordResp) FastRead(buf []byte) (int, error) { 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_UpdateAnnotateRecordResp[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_DeleteExperimentTemplateResponse[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *UpdateAnnotateRecordResp) FastReadField255(buf []byte) (int, error) { +func (p *DeleteExperimentTemplateResponse) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBaseResp() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -14754,11 +15159,11 @@ func (p *UpdateAnnotateRecordResp) FastReadField255(buf []byte) (int, error) { return offset, nil } -func (p *UpdateAnnotateRecordResp) FastWrite(buf []byte) int { +func (p *DeleteExperimentTemplateResponse) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *UpdateAnnotateRecordResp) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *DeleteExperimentTemplateResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField255(buf[offset:], w) @@ -14767,7 +15172,7 @@ func (p *UpdateAnnotateRecordResp) FastWriteNocopy(buf []byte, w thrift.NocopyWr return offset } -func (p *UpdateAnnotateRecordResp) BLength() int { +func (p *DeleteExperimentTemplateResponse) BLength() int { l := 0 if p != nil { l += p.field255Length() @@ -14776,22 +15181,22 @@ func (p *UpdateAnnotateRecordResp) BLength() int { return l } -func (p *UpdateAnnotateRecordResp) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { +func (p *DeleteExperimentTemplateResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) return offset } -func (p *UpdateAnnotateRecordResp) field255Length() int { +func (p *DeleteExperimentTemplateResponse) field255Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.BaseResp.BLength() return l } -func (p *UpdateAnnotateRecordResp) DeepCopy(s interface{}) error { - src, ok := s.(*UpdateAnnotateRecordResp) +func (p *DeleteExperimentTemplateResponse) DeepCopy(s interface{}) error { + src, ok := s.(*DeleteExperimentTemplateResponse) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } @@ -14808,7 +15213,7 @@ func (p *UpdateAnnotateRecordResp) DeepCopy(s interface{}) error { return nil } -func (p *ExportExptResultRequest) FastRead(buf []byte) (int, error) { +func (p *ListExperimentTemplatesRequest) FastRead(buf []byte) (int, error) { var err error var offset int @@ -14816,7 +15221,6 @@ func (p *ExportExptResultRequest) FastRead(buf []byte) (int, error) { var fieldTypeId thrift.TType var fieldId int16 var issetWorkspaceID bool = false - var issetExptID bool = false for { fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) offset += l @@ -14843,13 +15247,12 @@ func (p *ExportExptResultRequest) FastRead(buf []byte) (int, error) { } } case 2: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.I32 { l, err = p.FastReadField2(buf[offset:]) offset += l if err != nil { goto ReadFieldError } - issetExptID = true } else { l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -14857,9 +15260,9 @@ func (p *ExportExptResultRequest) FastRead(buf []byte) (int, error) { goto SkipFieldError } } - case 4: - if fieldTypeId == thrift.STRING { - l, err = p.FastReadField4(buf[offset:]) + case 3: + if fieldTypeId == thrift.I32 { + l, err = p.FastReadField3(buf[offset:]) offset += l if err != nil { goto ReadFieldError @@ -14871,9 +15274,23 @@ func (p *ExportExptResultRequest) FastRead(buf []byte) (int, error) { goto SkipFieldError } } - case 200: + case 20: if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField200(buf[offset:]) + l, err = p.FastReadField20(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 21: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField21(buf[offset:]) offset += l if err != nil { goto ReadFieldError @@ -14912,23 +15329,18 @@ func (p *ExportExptResultRequest) FastRead(buf []byte) (int, error) { fieldId = 1 goto RequiredFieldNotSetError } - - if !issetExptID { - 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_ExportExptResultRequest[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListExperimentTemplatesRequest[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_ExportExptResultRequest[fieldId])) + return offset, thrift.NewProtocolException(thrift.INVALID_DATA, fmt.Sprintf("required field %s is not set", fieldIDToName_ListExperimentTemplatesRequest[fieldId])) } -func (p *ExportExptResultRequest) FastReadField1(buf []byte) (int, error) { +func (p *ListExperimentTemplatesRequest) FastReadField1(buf []byte) (int, error) { offset := 0 var _field int64 @@ -14942,47 +15354,72 @@ func (p *ExportExptResultRequest) FastReadField1(buf []byte) (int, error) { return offset, nil } -func (p *ExportExptResultRequest) FastReadField2(buf []byte) (int, error) { +func (p *ListExperimentTemplatesRequest) FastReadField2(buf []byte) (int, error) { offset := 0 - var _field int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + var _field *int32 + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { return offset, err } else { offset += l - _field = v + _field = &v } - p.ExptID = _field + p.PageNumber = _field return offset, nil } -func (p *ExportExptResultRequest) FastReadField4(buf []byte) (int, error) { +func (p *ListExperimentTemplatesRequest) FastReadField3(buf []byte) (int, error) { offset := 0 - var _field *expt.ExptResultExportType - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + var _field *int32 + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { return offset, err } else { offset += l _field = &v } - p.ExportType = _field + p.PageSize = _field return offset, nil } -func (p *ExportExptResultRequest) FastReadField200(buf []byte) (int, error) { +func (p *ListExperimentTemplatesRequest) FastReadField20(buf []byte) (int, error) { offset := 0 - _field := common.NewSession() + _field := expt.NewExperimentTemplateFilter() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { offset += l } - p.Session = _field + p.FilterOption = _field return offset, nil } -func (p *ExportExptResultRequest) FastReadField255(buf []byte) (int, error) { +func (p *ListExperimentTemplatesRequest) FastReadField21(buf []byte) (int, error) { + offset := 0 + + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]*common.OrderBy, 0, size) + values := make([]common.OrderBy, 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.OrderBys = _field + return offset, nil +} + +func (p *ListExperimentTemplatesRequest) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBase() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -14994,69 +15431,89 @@ func (p *ExportExptResultRequest) FastReadField255(buf []byte) (int, error) { return offset, nil } -func (p *ExportExptResultRequest) FastWrite(buf []byte) int { +func (p *ListExperimentTemplatesRequest) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExportExptResultRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ListExperimentTemplatesRequest) 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.fastWriteField4(buf[offset:], w) - offset += p.fastWriteField200(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) + offset += p.fastWriteField20(buf[offset:], w) + offset += p.fastWriteField21(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset } -func (p *ExportExptResultRequest) BLength() int { +func (p *ListExperimentTemplatesRequest) BLength() int { l := 0 if p != nil { l += p.field1Length() l += p.field2Length() - l += p.field4Length() - l += p.field200Length() + l += p.field3Length() + l += p.field20Length() + l += p.field21Length() l += p.field255Length() } l += thrift.Binary.FieldStopLength() return l } -func (p *ExportExptResultRequest) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ListExperimentTemplatesRequest) 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.WorkspaceID) return offset } -func (p *ExportExptResultRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { +func (p *ListExperimentTemplatesRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { offset := 0 - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) - offset += thrift.Binary.WriteI64(buf[offset:], p.ExptID) + if p.IsSetPageNumber() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 2) + offset += thrift.Binary.WriteI32(buf[offset:], *p.PageNumber) + } return offset } -func (p *ExportExptResultRequest) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { +func (p *ListExperimentTemplatesRequest) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetExportType() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 4) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ExportType) + if p.IsSetPageSize() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 3) + offset += thrift.Binary.WriteI32(buf[offset:], *p.PageSize) } return offset } -func (p *ExportExptResultRequest) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { +func (p *ListExperimentTemplatesRequest) fastWriteField20(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetSession() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 200) - offset += p.Session.FastWriteNocopy(buf[offset:], w) + if p.IsSetFilterOption() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 20) + offset += p.FilterOption.FastWriteNocopy(buf[offset:], w) } return offset } -func (p *ExportExptResultRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { +func (p *ListExperimentTemplatesRequest) fastWriteField21(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetOrderBys() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 21) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.OrderBys { + length++ + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) + } + return offset +} + +func (p *ListExperimentTemplatesRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetBase() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) @@ -15065,39 +15522,54 @@ func (p *ExportExptResultRequest) fastWriteField255(buf []byte, w thrift.NocopyW return offset } -func (p *ExportExptResultRequest) field1Length() int { +func (p *ListExperimentTemplatesRequest) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += thrift.Binary.I64Length() return l } -func (p *ExportExptResultRequest) field2Length() int { +func (p *ListExperimentTemplatesRequest) field2Length() int { l := 0 - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() + if p.IsSetPageNumber() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + } return l } -func (p *ExportExptResultRequest) field4Length() int { +func (p *ListExperimentTemplatesRequest) field3Length() int { l := 0 - if p.IsSetExportType() { + if p.IsSetPageSize() { l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.ExportType) + l += thrift.Binary.I32Length() } return l } -func (p *ExportExptResultRequest) field200Length() int { +func (p *ListExperimentTemplatesRequest) field20Length() int { l := 0 - if p.IsSetSession() { + if p.IsSetFilterOption() { l += thrift.Binary.FieldBeginLength() - l += p.Session.BLength() + l += p.FilterOption.BLength() } return l } -func (p *ExportExptResultRequest) field255Length() int { +func (p *ListExperimentTemplatesRequest) field21Length() int { + l := 0 + if p.IsSetOrderBys() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.OrderBys { + _ = v + l += v.BLength() + } + } + return l +} + +func (p *ListExperimentTemplatesRequest) field255Length() int { l := 0 if p.IsSetBase() { l += thrift.Binary.FieldBeginLength() @@ -15106,29 +15578,47 @@ func (p *ExportExptResultRequest) field255Length() int { return l } -func (p *ExportExptResultRequest) DeepCopy(s interface{}) error { - src, ok := s.(*ExportExptResultRequest) +func (p *ListExperimentTemplatesRequest) DeepCopy(s interface{}) error { + src, ok := s.(*ListExperimentTemplatesRequest) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } p.WorkspaceID = src.WorkspaceID - p.ExptID = src.ExptID + if src.PageNumber != nil { + tmp := *src.PageNumber + p.PageNumber = &tmp + } - if src.ExportType != nil { - tmp := *src.ExportType - p.ExportType = &tmp + if src.PageSize != nil { + tmp := *src.PageSize + p.PageSize = &tmp } - var _session *common.Session - if src.Session != nil { - _session = &common.Session{} - if err := _session.DeepCopy(src.Session); err != nil { + var _filterOption *expt.ExperimentTemplateFilter + if src.FilterOption != nil { + _filterOption = &expt.ExperimentTemplateFilter{} + if err := _filterOption.DeepCopy(src.FilterOption); err != nil { return err } } - p.Session = _session + p.FilterOption = _filterOption + + if src.OrderBys != nil { + p.OrderBys = make([]*common.OrderBy, 0, len(src.OrderBys)) + for _, elem := range src.OrderBys { + var _elem *common.OrderBy + if elem != nil { + _elem = &common.OrderBy{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.OrderBys = append(p.OrderBys, _elem) + } + } var _base *base.Base if src.Base != nil { @@ -15142,14 +15632,13 @@ func (p *ExportExptResultRequest) DeepCopy(s interface{}) error { return nil } -func (p *ExportExptResultResponse) FastRead(buf []byte) (int, error) { +func (p *ListExperimentTemplatesResponse) FastRead(buf []byte) (int, error) { var err error var offset int var l int var fieldTypeId thrift.TType var fieldId int16 - var issetExportID bool = false for { fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) offset += l @@ -15161,13 +15650,26 @@ func (p *ExportExptResultResponse) FastRead(buf []byte) (int, error) { } switch fieldId { case 1: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.LIST { l, err = p.FastReadField1(buf[offset:]) offset += l if err != nil { goto ReadFieldError } - issetExportID = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.I32 { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } } else { l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -15198,36 +15700,55 @@ func (p *ExportExptResultResponse) FastRead(buf []byte) (int, error) { } } - if !issetExportID { - 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_ExportExptResultResponse[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListExperimentTemplatesResponse[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_ExportExptResultResponse[fieldId])) } -func (p *ExportExptResultResponse) FastReadField1(buf []byte) (int, error) { +func (p *ListExperimentTemplatesResponse) FastReadField1(buf []byte) (int, error) { offset := 0 - var _field int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { + return offset, err + } + _field := make([]*expt.ExptTemplate, 0, size) + values := make([]expt.ExptTemplate, 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.ExperimentTemplates = _field + return offset, nil +} + +func (p *ListExperimentTemplatesResponse) FastReadField2(buf []byte) (int, error) { + offset := 0 + + var _field *int32 + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { return offset, err } else { offset += l - _field = v + _field = &v } - p.ExportID = _field + p.Total = _field return offset, nil } -func (p *ExportExptResultResponse) FastReadField255(buf []byte) (int, error) { +func (p *ListExperimentTemplatesResponse) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBaseResp() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -15239,13 +15760,14 @@ func (p *ExportExptResultResponse) FastReadField255(buf []byte) (int, error) { return offset, nil } -func (p *ExportExptResultResponse) FastWrite(buf []byte) int { +func (p *ListExperimentTemplatesResponse) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExportExptResultResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ListExperimentTemplatesResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { + offset += p.fastWriteField2(buf[offset:], w) offset += p.fastWriteField1(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } @@ -15253,51 +15775,103 @@ func (p *ExportExptResultResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWr return offset } -func (p *ExportExptResultResponse) BLength() int { +func (p *ListExperimentTemplatesResponse) BLength() int { l := 0 if p != nil { l += p.field1Length() + l += p.field2Length() l += p.field255Length() } l += thrift.Binary.FieldStopLength() return l } -func (p *ExportExptResultResponse) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ListExperimentTemplatesResponse) 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.ExportID) + if p.IsSetExperimentTemplates() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 1) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.ExperimentTemplates { + length++ + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) + } return offset } -func (p *ExportExptResultResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { +func (p *ListExperimentTemplatesResponse) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetTotal() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 2) + offset += thrift.Binary.WriteI32(buf[offset:], *p.Total) + } + return offset +} + +func (p *ListExperimentTemplatesResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExportExptResultResponse) field1Length() int { +func (p *ListExperimentTemplatesResponse) field1Length() int { l := 0 - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() + if p.IsSetExperimentTemplates() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.ExperimentTemplates { + _ = v + l += v.BLength() + } + } return l } -func (p *ExportExptResultResponse) field255Length() int { +func (p *ListExperimentTemplatesResponse) field2Length() int { + l := 0 + if p.IsSetTotal() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + } + return l +} + +func (p *ListExperimentTemplatesResponse) field255Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.BaseResp.BLength() return l } -func (p *ExportExptResultResponse) DeepCopy(s interface{}) error { - src, ok := s.(*ExportExptResultResponse) +func (p *ListExperimentTemplatesResponse) DeepCopy(s interface{}) error { + src, ok := s.(*ListExperimentTemplatesResponse) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - p.ExportID = src.ExportID + if src.ExperimentTemplates != nil { + p.ExperimentTemplates = make([]*expt.ExptTemplate, 0, len(src.ExperimentTemplates)) + for _, elem := range src.ExperimentTemplates { + var _elem *expt.ExptTemplate + if elem != nil { + _elem = &expt.ExptTemplate{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.ExperimentTemplates = append(p.ExperimentTemplates, _elem) + } + } + + if src.Total != nil { + tmp := *src.Total + p.Total = &tmp + } var _baseResp *base.BaseResp if src.BaseResp != nil { @@ -15311,7 +15885,7 @@ func (p *ExportExptResultResponse) DeepCopy(s interface{}) error { return nil } -func (p *ListExptResultExportRecordRequest) FastRead(buf []byte) (int, error) { +func (p *CheckExperimentTemplateNameRequest) FastRead(buf []byte) (int, error) { var err error var offset int @@ -15319,7 +15893,7 @@ func (p *ListExptResultExportRecordRequest) FastRead(buf []byte) (int, error) { var fieldTypeId thrift.TType var fieldId int16 var issetWorkspaceID bool = false - var issetExptID bool = false + var issetName bool = false for { fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) offset += l @@ -15346,13 +15920,13 @@ func (p *ListExptResultExportRecordRequest) FastRead(buf []byte) (int, error) { } } case 2: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.STRING { l, err = p.FastReadField2(buf[offset:]) offset += l if err != nil { goto ReadFieldError } - issetExptID = true + issetName = true } else { l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -15361,7 +15935,7 @@ func (p *ListExptResultExportRecordRequest) FastRead(buf []byte) (int, error) { } } case 3: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.I64 { l, err = p.FastReadField3(buf[offset:]) offset += l if err != nil { @@ -15374,34 +15948,6 @@ func (p *ListExptResultExportRecordRequest) FastRead(buf []byte) (int, error) { goto SkipFieldError } } - case 4: - if fieldTypeId == thrift.I32 { - 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 200: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField200(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:]) @@ -15430,7 +15976,7 @@ func (p *ListExptResultExportRecordRequest) FastRead(buf []byte) (int, error) { goto RequiredFieldNotSetError } - if !issetExptID { + if !issetName { fieldId = 2 goto RequiredFieldNotSetError } @@ -15438,14 +15984,14 @@ func (p *ListExptResultExportRecordRequest) FastRead(buf []byte) (int, error) { 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_ListExptResultExportRecordRequest[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_CheckExperimentTemplateNameRequest[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_ListExptResultExportRecordRequest[fieldId])) + return offset, thrift.NewProtocolException(thrift.INVALID_DATA, fmt.Sprintf("required field %s is not set", fieldIDToName_CheckExperimentTemplateNameRequest[fieldId])) } -func (p *ListExptResultExportRecordRequest) FastReadField1(buf []byte) (int, error) { +func (p *CheckExperimentTemplateNameRequest) FastReadField1(buf []byte) (int, error) { offset := 0 var _field int64 @@ -15459,61 +16005,35 @@ func (p *ListExptResultExportRecordRequest) FastReadField1(buf []byte) (int, err return offset, nil } -func (p *ListExptResultExportRecordRequest) FastReadField2(buf []byte) (int, error) { +func (p *CheckExperimentTemplateNameRequest) FastReadField2(buf []byte) (int, error) { offset := 0 - var _field int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + var _field string + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { return offset, err } else { offset += l _field = v } - p.ExptID = _field - return offset, nil -} - -func (p *ListExptResultExportRecordRequest) FastReadField3(buf []byte) (int, error) { - offset := 0 - - var _field *int32 - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = &v - } - p.PageNumber = _field + p.Name = _field return offset, nil } -func (p *ListExptResultExportRecordRequest) FastReadField4(buf []byte) (int, error) { +func (p *CheckExperimentTemplateNameRequest) FastReadField3(buf []byte) (int, error) { offset := 0 - var _field *int32 - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + var _field *int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { return offset, err } else { offset += l _field = &v } - p.PageSize = _field - return offset, nil -} - -func (p *ListExptResultExportRecordRequest) FastReadField200(buf []byte) (int, error) { - offset := 0 - _field := common.NewSession() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.Session = _field + p.TemplateID = _field return offset, nil } -func (p *ListExptResultExportRecordRequest) FastReadField255(buf []byte) (int, error) { +func (p *CheckExperimentTemplateNameRequest) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBase() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -15525,80 +16045,58 @@ func (p *ListExptResultExportRecordRequest) FastReadField255(buf []byte) (int, e return offset, nil } -func (p *ListExptResultExportRecordRequest) FastWrite(buf []byte) int { +func (p *CheckExperimentTemplateNameRequest) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ListExptResultExportRecordRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *CheckExperimentTemplateNameRequest) 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.fastWriteField200(buf[offset:], w) + offset += p.fastWriteField2(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset } -func (p *ListExptResultExportRecordRequest) BLength() int { +func (p *CheckExperimentTemplateNameRequest) BLength() int { l := 0 if p != nil { l += p.field1Length() l += p.field2Length() l += p.field3Length() - l += p.field4Length() - l += p.field200Length() l += p.field255Length() } l += thrift.Binary.FieldStopLength() return l } -func (p *ListExptResultExportRecordRequest) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *CheckExperimentTemplateNameRequest) 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.WorkspaceID) return offset } -func (p *ListExptResultExportRecordRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) - offset += thrift.Binary.WriteI64(buf[offset:], p.ExptID) - return offset -} - -func (p *ListExptResultExportRecordRequest) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetPageNumber() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 3) - offset += thrift.Binary.WriteI32(buf[offset:], *p.PageNumber) - } - return offset -} - -func (p *ListExptResultExportRecordRequest) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { +func (p *CheckExperimentTemplateNameRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetPageSize() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 4) - offset += thrift.Binary.WriteI32(buf[offset:], *p.PageSize) - } + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 2) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, p.Name) return offset } -func (p *ListExptResultExportRecordRequest) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { +func (p *CheckExperimentTemplateNameRequest) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetSession() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 200) - offset += p.Session.FastWriteNocopy(buf[offset:], w) + if p.IsSetTemplateID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 3) + offset += thrift.Binary.WriteI64(buf[offset:], *p.TemplateID) } return offset } -func (p *ListExptResultExportRecordRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { +func (p *CheckExperimentTemplateNameRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetBase() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) @@ -15607,48 +16105,30 @@ func (p *ListExptResultExportRecordRequest) fastWriteField255(buf []byte, w thri return offset } -func (p *ListExptResultExportRecordRequest) field1Length() int { +func (p *CheckExperimentTemplateNameRequest) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += thrift.Binary.I64Length() return l } -func (p *ListExptResultExportRecordRequest) field2Length() int { +func (p *CheckExperimentTemplateNameRequest) field2Length() int { l := 0 l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() + l += thrift.Binary.StringLengthNocopy(p.Name) return l } -func (p *ListExptResultExportRecordRequest) field3Length() int { +func (p *CheckExperimentTemplateNameRequest) field3Length() int { l := 0 - if p.IsSetPageNumber() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() - } - return l -} - -func (p *ListExptResultExportRecordRequest) field4Length() int { - l := 0 - if p.IsSetPageSize() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() - } - return l -} - -func (p *ListExptResultExportRecordRequest) field200Length() int { - l := 0 - if p.IsSetSession() { + if p.IsSetTemplateID() { l += thrift.Binary.FieldBeginLength() - l += p.Session.BLength() + l += thrift.Binary.I64Length() } return l } -func (p *ListExptResultExportRecordRequest) field255Length() int { +func (p *CheckExperimentTemplateNameRequest) field255Length() int { l := 0 if p.IsSetBase() { l += thrift.Binary.FieldBeginLength() @@ -15657,34 +16137,22 @@ func (p *ListExptResultExportRecordRequest) field255Length() int { return l } -func (p *ListExptResultExportRecordRequest) DeepCopy(s interface{}) error { - src, ok := s.(*ListExptResultExportRecordRequest) +func (p *CheckExperimentTemplateNameRequest) DeepCopy(s interface{}) error { + src, ok := s.(*CheckExperimentTemplateNameRequest) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } p.WorkspaceID = src.WorkspaceID - p.ExptID = src.ExptID - - if src.PageNumber != nil { - tmp := *src.PageNumber - p.PageNumber = &tmp - } - - if src.PageSize != nil { - tmp := *src.PageSize - p.PageSize = &tmp + if src.Name != "" { + p.Name = kutils.StringDeepCopy(src.Name) } - var _session *common.Session - if src.Session != nil { - _session = &common.Session{} - if err := _session.DeepCopy(src.Session); err != nil { - return err - } + if src.TemplateID != nil { + tmp := *src.TemplateID + p.TemplateID = &tmp } - p.Session = _session var _base *base.Base if src.Base != nil { @@ -15698,14 +16166,13 @@ func (p *ListExptResultExportRecordRequest) DeepCopy(s interface{}) error { return nil } -func (p *ListExptResultExportRecordResponse) FastRead(buf []byte) (int, error) { +func (p *CheckExperimentTemplateNameResponse) FastRead(buf []byte) (int, error) { var err error var offset int var l int var fieldTypeId thrift.TType var fieldId int16 - var issetExptResultExportRecords bool = false for { fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) offset += l @@ -15717,27 +16184,12 @@ func (p *ListExptResultExportRecordResponse) FastRead(buf []byte) (int, error) { } switch fieldId { case 1: - if fieldTypeId == thrift.LIST { + if fieldTypeId == thrift.BOOL { l, err = p.FastReadField1(buf[offset:]) offset += l if err != nil { goto ReadFieldError } - issetExptResultExportRecords = true - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 20: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField20(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } } else { l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -15768,61 +16220,30 @@ func (p *ListExptResultExportRecordResponse) FastRead(buf []byte) (int, error) { } } - if !issetExptResultExportRecords { - 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_ListExptResultExportRecordResponse[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_CheckExperimentTemplateNameResponse[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_ListExptResultExportRecordResponse[fieldId])) -} - -func (p *ListExptResultExportRecordResponse) 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([]*expt.ExptResultExportRecord, 0, size) - values := make([]expt.ExptResultExportRecord, 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.ExptResultExportRecords = _field - return offset, nil } -func (p *ListExptResultExportRecordResponse) FastReadField20(buf []byte) (int, error) { +func (p *CheckExperimentTemplateNameResponse) FastReadField1(buf []byte) (int, error) { offset := 0 - var _field *int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + var _field *bool + if v, l, err := thrift.Binary.ReadBool(buf[offset:]); err != nil { return offset, err } else { offset += l _field = &v } - p.Total = _field + p.IsAvailable = _field return offset, nil } -func (p *ListExptResultExportRecordResponse) FastReadField255(buf []byte) (int, error) { +func (p *CheckExperimentTemplateNameResponse) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBaseResp() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -15834,14 +16255,13 @@ func (p *ListExptResultExportRecordResponse) FastReadField255(buf []byte) (int, return offset, nil } -func (p *ListExptResultExportRecordResponse) FastWrite(buf []byte) int { +func (p *CheckExperimentTemplateNameResponse) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ListExptResultExportRecordResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *CheckExperimentTemplateNameResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { - offset += p.fastWriteField20(buf[offset:], w) offset += p.fastWriteField1(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } @@ -15849,98 +16269,57 @@ func (p *ListExptResultExportRecordResponse) FastWriteNocopy(buf []byte, w thrif return offset } -func (p *ListExptResultExportRecordResponse) BLength() int { +func (p *CheckExperimentTemplateNameResponse) BLength() int { l := 0 if p != nil { l += p.field1Length() - l += p.field20Length() l += p.field255Length() } l += thrift.Binary.FieldStopLength() return l } -func (p *ListExptResultExportRecordResponse) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 1) - listBeginOffset := offset - offset += thrift.Binary.ListBeginLength() - var length int - for _, v := range p.ExptResultExportRecords { - length++ - offset += v.FastWriteNocopy(buf[offset:], w) - } - thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) - return offset -} - -func (p *ListExptResultExportRecordResponse) fastWriteField20(buf []byte, w thrift.NocopyWriter) int { +func (p *CheckExperimentTemplateNameResponse) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetTotal() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 20) - offset += thrift.Binary.WriteI64(buf[offset:], *p.Total) + if p.IsSetIsAvailable() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.BOOL, 1) + offset += thrift.Binary.WriteBool(buf[offset:], *p.IsAvailable) } return offset } -func (p *ListExptResultExportRecordResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { +func (p *CheckExperimentTemplateNameResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ListExptResultExportRecordResponse) field1Length() int { - l := 0 - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.ListBeginLength() - for _, v := range p.ExptResultExportRecords { - _ = v - l += v.BLength() - } - return l -} - -func (p *ListExptResultExportRecordResponse) field20Length() int { +func (p *CheckExperimentTemplateNameResponse) field1Length() int { l := 0 - if p.IsSetTotal() { + if p.IsSetIsAvailable() { l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() + l += thrift.Binary.BoolLength() } return l } -func (p *ListExptResultExportRecordResponse) field255Length() int { +func (p *CheckExperimentTemplateNameResponse) field255Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.BaseResp.BLength() return l } -func (p *ListExptResultExportRecordResponse) DeepCopy(s interface{}) error { - src, ok := s.(*ListExptResultExportRecordResponse) +func (p *CheckExperimentTemplateNameResponse) DeepCopy(s interface{}) error { + src, ok := s.(*CheckExperimentTemplateNameResponse) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - if src.ExptResultExportRecords != nil { - p.ExptResultExportRecords = make([]*expt.ExptResultExportRecord, 0, len(src.ExptResultExportRecords)) - for _, elem := range src.ExptResultExportRecords { - var _elem *expt.ExptResultExportRecord - if elem != nil { - _elem = &expt.ExptResultExportRecord{} - if err := _elem.DeepCopy(elem); err != nil { - return err - } - } - - p.ExptResultExportRecords = append(p.ExptResultExportRecords, _elem) - } - } - - if src.Total != nil { - tmp := *src.Total - p.Total = &tmp + if src.IsAvailable != nil { + tmp := *src.IsAvailable + p.IsAvailable = &tmp } var _baseResp *base.BaseResp @@ -15955,16 +16334,13 @@ func (p *ListExptResultExportRecordResponse) DeepCopy(s interface{}) error { return nil } -func (p *GetExptResultExportRecordRequest) FastRead(buf []byte) (int, error) { +func (p *UpsertExptTurnResultFilterRequest) FastRead(buf []byte) (int, error) { var err error var offset int var l int var fieldTypeId thrift.TType var fieldId int16 - var issetWorkspaceID bool = false - var issetExptID bool = false - var issetExportID bool = false for { fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) offset += l @@ -15982,7 +16358,6 @@ func (p *GetExptResultExportRecordRequest) FastRead(buf []byte) (int, error) { if err != nil { goto ReadFieldError } - issetWorkspaceID = true } else { l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -15997,7 +16372,6 @@ func (p *GetExptResultExportRecordRequest) FastRead(buf []byte) (int, error) { if err != nil { goto ReadFieldError } - issetExptID = true } else { l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -16005,14 +16379,13 @@ func (p *GetExptResultExportRecordRequest) FastRead(buf []byte) (int, error) { goto SkipFieldError } } - case 4: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField4(buf[offset:]) + case 3: + if fieldTypeId == thrift.LIST { + l, err = p.FastReadField3(buf[offset:]) offset += l if err != nil { goto ReadFieldError } - issetExportID = true } else { l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -16020,9 +16393,9 @@ func (p *GetExptResultExportRecordRequest) FastRead(buf []byte) (int, error) { goto SkipFieldError } } - case 200: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField200(buf[offset:]) + case 4: + if fieldTypeId == thrift.STRING { + l, err = p.FastReadField4(buf[offset:]) offset += l if err != nil { goto ReadFieldError @@ -16034,9 +16407,9 @@ func (p *GetExptResultExportRecordRequest) FastRead(buf []byte) (int, error) { goto SkipFieldError } } - case 255: - if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField255(buf[offset:]) + case 5: + if fieldTypeId == thrift.I32 { + l, err = p.FastReadField5(buf[offset:]) offset += l if err != nil { goto ReadFieldError @@ -16057,239 +16430,263 @@ func (p *GetExptResultExportRecordRequest) FastRead(buf []byte) (int, error) { } } - if !issetWorkspaceID { - fieldId = 1 - goto RequiredFieldNotSetError - } - - if !issetExptID { - fieldId = 2 - goto RequiredFieldNotSetError - } - - if !issetExportID { - fieldId = 4 - 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_GetExptResultExportRecordRequest[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UpsertExptTurnResultFilterRequest[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_GetExptResultExportRecordRequest[fieldId])) } -func (p *GetExptResultExportRecordRequest) FastReadField1(buf []byte) (int, error) { +func (p *UpsertExptTurnResultFilterRequest) FastReadField1(buf []byte) (int, error) { offset := 0 - var _field int64 + var _field *int64 if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { return offset, err } else { offset += l - _field = v + _field = &v } p.WorkspaceID = _field return offset, nil } -func (p *GetExptResultExportRecordRequest) FastReadField2(buf []byte) (int, error) { +func (p *UpsertExptTurnResultFilterRequest) FastReadField2(buf []byte) (int, error) { offset := 0 - var _field int64 + var _field *int64 if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { return offset, err } else { offset += l - _field = v + _field = &v } - p.ExptID = _field + p.ExperimentID = _field return offset, nil } -func (p *GetExptResultExportRecordRequest) FastReadField4(buf []byte) (int, error) { +func (p *UpsertExptTurnResultFilterRequest) FastReadField3(buf []byte) (int, error) { offset := 0 - var _field int64 - if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { + _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) + offset += l + if err != nil { return offset, err - } else { - offset += l - _field = v } - p.ExportID = _field + _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.ItemIds = _field return offset, nil } -func (p *GetExptResultExportRecordRequest) FastReadField200(buf []byte) (int, error) { +func (p *UpsertExptTurnResultFilterRequest) FastReadField4(buf []byte) (int, error) { offset := 0 - _field := common.NewSession() - if l, err := _field.FastRead(buf[offset:]); err != nil { + + var _field *UpsertExptTurnResultFilterType + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { return offset, err } else { offset += l + _field = &v } - p.Session = _field + p.FilterType = _field return offset, nil } -func (p *GetExptResultExportRecordRequest) FastReadField255(buf []byte) (int, error) { +func (p *UpsertExptTurnResultFilterRequest) FastReadField5(buf []byte) (int, error) { offset := 0 - _field := base.NewBase() - if l, err := _field.FastRead(buf[offset:]); err != nil { + + var _field *int32 + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { return offset, err } else { offset += l + _field = &v } - p.Base = _field + p.RetryTimes = _field return offset, nil } -func (p *GetExptResultExportRecordRequest) FastWrite(buf []byte) int { +func (p *UpsertExptTurnResultFilterRequest) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *GetExptResultExportRecordRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *UpsertExptTurnResultFilterRequest) 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.fastWriteField5(buf[offset:], w) + offset += p.fastWriteField3(buf[offset:], w) offset += p.fastWriteField4(buf[offset:], w) - offset += p.fastWriteField200(buf[offset:], w) - offset += p.fastWriteField255(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset } -func (p *GetExptResultExportRecordRequest) BLength() int { +func (p *UpsertExptTurnResultFilterRequest) BLength() int { l := 0 if p != nil { l += p.field1Length() l += p.field2Length() + l += p.field3Length() l += p.field4Length() - l += p.field200Length() - l += p.field255Length() + l += p.field5Length() } l += thrift.Binary.FieldStopLength() return l } -func (p *GetExptResultExportRecordRequest) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *UpsertExptTurnResultFilterRequest) 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.WorkspaceID) + if p.IsSetWorkspaceID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) + offset += thrift.Binary.WriteI64(buf[offset:], *p.WorkspaceID) + } return offset } -func (p *GetExptResultExportRecordRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { +func (p *UpsertExptTurnResultFilterRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { offset := 0 - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) - offset += thrift.Binary.WriteI64(buf[offset:], p.ExptID) + if p.IsSetExperimentID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) + offset += thrift.Binary.WriteI64(buf[offset:], *p.ExperimentID) + } return offset } -func (p *GetExptResultExportRecordRequest) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { +func (p *UpsertExptTurnResultFilterRequest) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { offset := 0 - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 4) - offset += thrift.Binary.WriteI64(buf[offset:], p.ExportID) + if p.IsSetItemIds() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 3) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.ItemIds { + length++ + offset += thrift.Binary.WriteI64(buf[offset:], v) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.I64, length) + } return offset } -func (p *GetExptResultExportRecordRequest) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { +func (p *UpsertExptTurnResultFilterRequest) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetSession() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 200) - offset += p.Session.FastWriteNocopy(buf[offset:], w) + if p.IsSetFilterType() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 4) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.FilterType) } return offset } -func (p *GetExptResultExportRecordRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { +func (p *UpsertExptTurnResultFilterRequest) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetBase() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) - offset += p.Base.FastWriteNocopy(buf[offset:], w) + if p.IsSetRetryTimes() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 5) + offset += thrift.Binary.WriteI32(buf[offset:], *p.RetryTimes) } return offset } -func (p *GetExptResultExportRecordRequest) field1Length() int { +func (p *UpsertExptTurnResultFilterRequest) field1Length() int { l := 0 - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() + if p.IsSetWorkspaceID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } return l } -func (p *GetExptResultExportRecordRequest) field2Length() int { +func (p *UpsertExptTurnResultFilterRequest) field2Length() int { l := 0 - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() + if p.IsSetExperimentID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } return l } -func (p *GetExptResultExportRecordRequest) field4Length() int { +func (p *UpsertExptTurnResultFilterRequest) field3Length() int { l := 0 - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() + if p.IsSetItemIds() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + l += + thrift.Binary.I64Length() * len(p.ItemIds) + } return l } -func (p *GetExptResultExportRecordRequest) field200Length() int { +func (p *UpsertExptTurnResultFilterRequest) field4Length() int { l := 0 - if p.IsSetSession() { + if p.IsSetFilterType() { l += thrift.Binary.FieldBeginLength() - l += p.Session.BLength() + l += thrift.Binary.StringLengthNocopy(*p.FilterType) } return l } -func (p *GetExptResultExportRecordRequest) field255Length() int { +func (p *UpsertExptTurnResultFilterRequest) field5Length() int { l := 0 - if p.IsSetBase() { + if p.IsSetRetryTimes() { l += thrift.Binary.FieldBeginLength() - l += p.Base.BLength() + l += thrift.Binary.I32Length() } return l } -func (p *GetExptResultExportRecordRequest) DeepCopy(s interface{}) error { - src, ok := s.(*GetExptResultExportRecordRequest) +func (p *UpsertExptTurnResultFilterRequest) DeepCopy(s interface{}) error { + src, ok := s.(*UpsertExptTurnResultFilterRequest) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - p.WorkspaceID = src.WorkspaceID - - p.ExptID = src.ExptID + if src.WorkspaceID != nil { + tmp := *src.WorkspaceID + p.WorkspaceID = &tmp + } - p.ExportID = src.ExportID + if src.ExperimentID != nil { + tmp := *src.ExperimentID + p.ExperimentID = &tmp + } - var _session *common.Session - if src.Session != nil { - _session = &common.Session{} - if err := _session.DeepCopy(src.Session); err != nil { - return err + if src.ItemIds != nil { + p.ItemIds = make([]int64, 0, len(src.ItemIds)) + for _, elem := range src.ItemIds { + var _elem int64 + _elem = elem + p.ItemIds = append(p.ItemIds, _elem) } } - p.Session = _session - var _base *base.Base - if src.Base != nil { - _base = &base.Base{} - if err := _base.DeepCopy(src.Base); err != nil { - return err - } + if src.FilterType != nil { + tmp := *src.FilterType + p.FilterType = &tmp + } + + if src.RetryTimes != nil { + tmp := *src.RetryTimes + p.RetryTimes = &tmp } - p.Base = _base return nil } -func (p *GetExptResultExportRecordResponse) FastRead(buf []byte) (int, error) { +func (p *UpsertExptTurnResultFilterResponse) FastRead(buf []byte) (int, error) { var err error var offset int @@ -16306,20 +16703,6 @@ func (p *GetExptResultExportRecordResponse) FastRead(buf []byte) (int, error) { break } switch fieldId { - case 1: - if fieldTypeId == thrift.STRUCT { - 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 255: if fieldTypeId == thrift.STRUCT { l, err = p.FastReadField255(buf[offset:]) @@ -16347,24 +16730,12 @@ func (p *GetExptResultExportRecordResponse) FastRead(buf []byte) (int, error) { 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_GetExptResultExportRecordResponse[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UpsertExptTurnResultFilterResponse[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *GetExptResultExportRecordResponse) FastReadField1(buf []byte) (int, error) { - offset := 0 - _field := expt.NewExptResultExportRecord() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.ExptResultExportRecord = _field - return offset, nil -} - -func (p *GetExptResultExportRecordResponse) FastReadField255(buf []byte) (int, error) { +func (p *UpsertExptTurnResultFilterResponse) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBaseResp() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -16376,77 +16747,48 @@ func (p *GetExptResultExportRecordResponse) FastReadField255(buf []byte) (int, e return offset, nil } -func (p *GetExptResultExportRecordResponse) FastWrite(buf []byte) int { +func (p *UpsertExptTurnResultFilterResponse) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *GetExptResultExportRecordResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *UpsertExptTurnResultFilterResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { - offset += p.fastWriteField1(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset } -func (p *GetExptResultExportRecordResponse) BLength() int { +func (p *UpsertExptTurnResultFilterResponse) BLength() int { l := 0 if p != nil { - l += p.field1Length() l += p.field255Length() } l += thrift.Binary.FieldStopLength() return l } -func (p *GetExptResultExportRecordResponse) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetExptResultExportRecord() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) - offset += p.ExptResultExportRecord.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *GetExptResultExportRecordResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { +func (p *UpsertExptTurnResultFilterResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) return offset } -func (p *GetExptResultExportRecordResponse) field1Length() int { - l := 0 - if p.IsSetExptResultExportRecord() { - l += thrift.Binary.FieldBeginLength() - l += p.ExptResultExportRecord.BLength() - } - return l -} - -func (p *GetExptResultExportRecordResponse) field255Length() int { +func (p *UpsertExptTurnResultFilterResponse) field255Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.BaseResp.BLength() return l } -func (p *GetExptResultExportRecordResponse) DeepCopy(s interface{}) error { - src, ok := s.(*GetExptResultExportRecordResponse) +func (p *UpsertExptTurnResultFilterResponse) DeepCopy(s interface{}) error { + src, ok := s.(*UpsertExptTurnResultFilterResponse) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _exptResultExportRecord *expt.ExptResultExportRecord - if src.ExptResultExportRecord != nil { - _exptResultExportRecord = &expt.ExptResultExportRecord{} - if err := _exptResultExportRecord.DeepCopy(src.ExptResultExportRecord); err != nil { - return err - } - } - p.ExptResultExportRecord = _exptResultExportRecord - var _baseResp *base.BaseResp if src.BaseResp != nil { _baseResp = &base.BaseResp{} @@ -16459,7 +16801,7 @@ func (p *GetExptResultExportRecordResponse) DeepCopy(s interface{}) error { return nil } -func (p *GetExptInsightAnalysisRecordRequest) FastRead(buf []byte) (int, error) { +func (p *AssociateAnnotationTagReq) FastRead(buf []byte) (int, error) { var err error var offset int @@ -16468,7 +16810,6 @@ func (p *GetExptInsightAnalysisRecordRequest) FastRead(buf []byte) (int, error) var fieldId int16 var issetWorkspaceID bool = false var issetExptID bool = false - var issetInsightAnalysisRecordID bool = false for { fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) offset += l @@ -16516,7 +16857,6 @@ func (p *GetExptInsightAnalysisRecordRequest) FastRead(buf []byte) (int, error) if err != nil { goto ReadFieldError } - issetInsightAnalysisRecordID = true } else { l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -16570,23 +16910,18 @@ func (p *GetExptInsightAnalysisRecordRequest) FastRead(buf []byte) (int, error) fieldId = 2 goto RequiredFieldNotSetError } - - if !issetInsightAnalysisRecordID { - 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_GetExptInsightAnalysisRecordRequest[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_AssociateAnnotationTagReq[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_GetExptInsightAnalysisRecordRequest[fieldId])) + return offset, thrift.NewProtocolException(thrift.INVALID_DATA, fmt.Sprintf("required field %s is not set", fieldIDToName_AssociateAnnotationTagReq[fieldId])) } -func (p *GetExptInsightAnalysisRecordRequest) FastReadField1(buf []byte) (int, error) { +func (p *AssociateAnnotationTagReq) FastReadField1(buf []byte) (int, error) { offset := 0 var _field int64 @@ -16600,7 +16935,7 @@ func (p *GetExptInsightAnalysisRecordRequest) FastReadField1(buf []byte) (int, e return offset, nil } -func (p *GetExptInsightAnalysisRecordRequest) FastReadField2(buf []byte) (int, error) { +func (p *AssociateAnnotationTagReq) FastReadField2(buf []byte) (int, error) { offset := 0 var _field int64 @@ -16614,21 +16949,21 @@ func (p *GetExptInsightAnalysisRecordRequest) FastReadField2(buf []byte) (int, e return offset, nil } -func (p *GetExptInsightAnalysisRecordRequest) FastReadField3(buf []byte) (int, error) { +func (p *AssociateAnnotationTagReq) FastReadField3(buf []byte) (int, error) { offset := 0 - var _field int64 + var _field *int64 if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { return offset, err } else { offset += l - _field = v + _field = &v } - p.InsightAnalysisRecordID = _field + p.TagKeyID = _field return offset, nil } -func (p *GetExptInsightAnalysisRecordRequest) FastReadField200(buf []byte) (int, error) { +func (p *AssociateAnnotationTagReq) FastReadField200(buf []byte) (int, error) { offset := 0 _field := common.NewSession() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -16640,7 +16975,7 @@ func (p *GetExptInsightAnalysisRecordRequest) FastReadField200(buf []byte) (int, return offset, nil } -func (p *GetExptInsightAnalysisRecordRequest) FastReadField255(buf []byte) (int, error) { +func (p *AssociateAnnotationTagReq) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBase() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -16652,11 +16987,11 @@ func (p *GetExptInsightAnalysisRecordRequest) FastReadField255(buf []byte) (int, return offset, nil } -func (p *GetExptInsightAnalysisRecordRequest) FastWrite(buf []byte) int { +func (p *AssociateAnnotationTagReq) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *GetExptInsightAnalysisRecordRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *AssociateAnnotationTagReq) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -16669,7 +17004,7 @@ func (p *GetExptInsightAnalysisRecordRequest) FastWriteNocopy(buf []byte, w thri return offset } -func (p *GetExptInsightAnalysisRecordRequest) BLength() int { +func (p *AssociateAnnotationTagReq) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -16682,28 +17017,30 @@ func (p *GetExptInsightAnalysisRecordRequest) BLength() int { return l } -func (p *GetExptInsightAnalysisRecordRequest) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *AssociateAnnotationTagReq) 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.WorkspaceID) return offset } -func (p *GetExptInsightAnalysisRecordRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { +func (p *AssociateAnnotationTagReq) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) offset += thrift.Binary.WriteI64(buf[offset:], p.ExptID) return offset } -func (p *GetExptInsightAnalysisRecordRequest) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { +func (p *AssociateAnnotationTagReq) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { offset := 0 - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 3) - offset += thrift.Binary.WriteI64(buf[offset:], p.InsightAnalysisRecordID) + if p.IsSetTagKeyID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 3) + offset += thrift.Binary.WriteI64(buf[offset:], *p.TagKeyID) + } return offset } -func (p *GetExptInsightAnalysisRecordRequest) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { +func (p *AssociateAnnotationTagReq) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSession() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 200) @@ -16712,7 +17049,7 @@ func (p *GetExptInsightAnalysisRecordRequest) fastWriteField200(buf []byte, w th return offset } -func (p *GetExptInsightAnalysisRecordRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { +func (p *AssociateAnnotationTagReq) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetBase() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) @@ -16721,28 +17058,30 @@ func (p *GetExptInsightAnalysisRecordRequest) fastWriteField255(buf []byte, w th return offset } -func (p *GetExptInsightAnalysisRecordRequest) field1Length() int { +func (p *AssociateAnnotationTagReq) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += thrift.Binary.I64Length() return l } -func (p *GetExptInsightAnalysisRecordRequest) field2Length() int { +func (p *AssociateAnnotationTagReq) field2Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += thrift.Binary.I64Length() return l } -func (p *GetExptInsightAnalysisRecordRequest) field3Length() int { +func (p *AssociateAnnotationTagReq) field3Length() int { l := 0 - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() + if p.IsSetTagKeyID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } return l } -func (p *GetExptInsightAnalysisRecordRequest) field200Length() int { +func (p *AssociateAnnotationTagReq) field200Length() int { l := 0 if p.IsSetSession() { l += thrift.Binary.FieldBeginLength() @@ -16751,7 +17090,7 @@ func (p *GetExptInsightAnalysisRecordRequest) field200Length() int { return l } -func (p *GetExptInsightAnalysisRecordRequest) field255Length() int { +func (p *AssociateAnnotationTagReq) field255Length() int { l := 0 if p.IsSetBase() { l += thrift.Binary.FieldBeginLength() @@ -16760,8 +17099,8 @@ func (p *GetExptInsightAnalysisRecordRequest) field255Length() int { return l } -func (p *GetExptInsightAnalysisRecordRequest) DeepCopy(s interface{}) error { - src, ok := s.(*GetExptInsightAnalysisRecordRequest) +func (p *AssociateAnnotationTagReq) DeepCopy(s interface{}) error { + src, ok := s.(*AssociateAnnotationTagReq) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } @@ -16770,7 +17109,10 @@ func (p *GetExptInsightAnalysisRecordRequest) DeepCopy(s interface{}) error { p.ExptID = src.ExptID - p.InsightAnalysisRecordID = src.InsightAnalysisRecordID + if src.TagKeyID != nil { + tmp := *src.TagKeyID + p.TagKeyID = &tmp + } var _session *common.Session if src.Session != nil { @@ -16793,7 +17135,7 @@ func (p *GetExptInsightAnalysisRecordRequest) DeepCopy(s interface{}) error { return nil } -func (p *GetExptInsightAnalysisRecordResponse) FastRead(buf []byte) (int, error) { +func (p *AssociateAnnotationTagResp) FastRead(buf []byte) (int, error) { var err error var offset int @@ -16810,20 +17152,6 @@ func (p *GetExptInsightAnalysisRecordResponse) FastRead(buf []byte) (int, error) break } switch fieldId { - case 1: - if fieldTypeId == thrift.STRUCT { - 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 255: if fieldTypeId == thrift.STRUCT { l, err = p.FastReadField255(buf[offset:]) @@ -16851,24 +17179,12 @@ func (p *GetExptInsightAnalysisRecordResponse) FastRead(buf []byte) (int, error) 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_GetExptInsightAnalysisRecordResponse[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_AssociateAnnotationTagResp[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *GetExptInsightAnalysisRecordResponse) FastReadField1(buf []byte) (int, error) { - offset := 0 - _field := expt.NewExptInsightAnalysisRecord() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.ExptInsightAnalysisRecord = _field - return offset, nil -} - -func (p *GetExptInsightAnalysisRecordResponse) FastReadField255(buf []byte) (int, error) { +func (p *AssociateAnnotationTagResp) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBaseResp() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -16880,77 +17196,48 @@ func (p *GetExptInsightAnalysisRecordResponse) FastReadField255(buf []byte) (int return offset, nil } -func (p *GetExptInsightAnalysisRecordResponse) FastWrite(buf []byte) int { +func (p *AssociateAnnotationTagResp) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *GetExptInsightAnalysisRecordResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *AssociateAnnotationTagResp) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { - offset += p.fastWriteField1(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset } -func (p *GetExptInsightAnalysisRecordResponse) BLength() int { +func (p *AssociateAnnotationTagResp) BLength() int { l := 0 if p != nil { - l += p.field1Length() l += p.field255Length() } l += thrift.Binary.FieldStopLength() return l } -func (p *GetExptInsightAnalysisRecordResponse) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetExptInsightAnalysisRecord() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) - offset += p.ExptInsightAnalysisRecord.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *GetExptInsightAnalysisRecordResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { +func (p *AssociateAnnotationTagResp) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) return offset } -func (p *GetExptInsightAnalysisRecordResponse) field1Length() int { - l := 0 - if p.IsSetExptInsightAnalysisRecord() { - l += thrift.Binary.FieldBeginLength() - l += p.ExptInsightAnalysisRecord.BLength() - } - return l -} - -func (p *GetExptInsightAnalysisRecordResponse) field255Length() int { +func (p *AssociateAnnotationTagResp) field255Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.BaseResp.BLength() return l } -func (p *GetExptInsightAnalysisRecordResponse) DeepCopy(s interface{}) error { - src, ok := s.(*GetExptInsightAnalysisRecordResponse) +func (p *AssociateAnnotationTagResp) DeepCopy(s interface{}) error { + src, ok := s.(*AssociateAnnotationTagResp) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _exptInsightAnalysisRecord *expt.ExptInsightAnalysisRecord - if src.ExptInsightAnalysisRecord != nil { - _exptInsightAnalysisRecord = &expt.ExptInsightAnalysisRecord{} - if err := _exptInsightAnalysisRecord.DeepCopy(src.ExptInsightAnalysisRecord); err != nil { - return err - } - } - p.ExptInsightAnalysisRecord = _exptInsightAnalysisRecord - var _baseResp *base.BaseResp if src.BaseResp != nil { _baseResp = &base.BaseResp{} @@ -16963,7 +17250,7 @@ func (p *GetExptInsightAnalysisRecordResponse) DeepCopy(s interface{}) error { return nil } -func (p *InsightAnalysisExperimentRequest) FastRead(buf []byte) (int, error) { +func (p *DeleteAnnotationTagReq) FastRead(buf []byte) (int, error) { var err error var offset int @@ -17012,6 +17299,20 @@ func (p *InsightAnalysisExperimentRequest) FastRead(buf []byte) (int, error) { goto SkipFieldError } } + case 3: + if fieldTypeId == thrift.I64 { + 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 200: if fieldTypeId == thrift.STRUCT { l, err = p.FastReadField200(buf[offset:]) @@ -17062,14 +17363,14 @@ func (p *InsightAnalysisExperimentRequest) FastRead(buf []byte) (int, error) { 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_InsightAnalysisExperimentRequest[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_DeleteAnnotationTagReq[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_InsightAnalysisExperimentRequest[fieldId])) + return offset, thrift.NewProtocolException(thrift.INVALID_DATA, fmt.Sprintf("required field %s is not set", fieldIDToName_DeleteAnnotationTagReq[fieldId])) } -func (p *InsightAnalysisExperimentRequest) FastReadField1(buf []byte) (int, error) { +func (p *DeleteAnnotationTagReq) FastReadField1(buf []byte) (int, error) { offset := 0 var _field int64 @@ -17083,7 +17384,7 @@ func (p *InsightAnalysisExperimentRequest) FastReadField1(buf []byte) (int, erro return offset, nil } -func (p *InsightAnalysisExperimentRequest) FastReadField2(buf []byte) (int, error) { +func (p *DeleteAnnotationTagReq) FastReadField2(buf []byte) (int, error) { offset := 0 var _field int64 @@ -17097,7 +17398,21 @@ func (p *InsightAnalysisExperimentRequest) FastReadField2(buf []byte) (int, erro return offset, nil } -func (p *InsightAnalysisExperimentRequest) FastReadField200(buf []byte) (int, error) { +func (p *DeleteAnnotationTagReq) FastReadField3(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.TagKeyID = _field + return offset, nil +} + +func (p *DeleteAnnotationTagReq) FastReadField200(buf []byte) (int, error) { offset := 0 _field := common.NewSession() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -17109,7 +17424,7 @@ func (p *InsightAnalysisExperimentRequest) FastReadField200(buf []byte) (int, er return offset, nil } -func (p *InsightAnalysisExperimentRequest) FastReadField255(buf []byte) (int, error) { +func (p *DeleteAnnotationTagReq) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBase() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -17121,15 +17436,16 @@ func (p *InsightAnalysisExperimentRequest) FastReadField255(buf []byte) (int, er return offset, nil } -func (p *InsightAnalysisExperimentRequest) FastWrite(buf []byte) int { +func (p *DeleteAnnotationTagReq) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *InsightAnalysisExperimentRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *DeleteAnnotationTagReq) 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.fastWriteField200(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } @@ -17137,11 +17453,12 @@ func (p *InsightAnalysisExperimentRequest) FastWriteNocopy(buf []byte, w thrift. return offset } -func (p *InsightAnalysisExperimentRequest) BLength() int { +func (p *DeleteAnnotationTagReq) BLength() int { l := 0 if p != nil { l += p.field1Length() l += p.field2Length() + l += p.field3Length() l += p.field200Length() l += p.field255Length() } @@ -17149,21 +17466,30 @@ func (p *InsightAnalysisExperimentRequest) BLength() int { return l } -func (p *InsightAnalysisExperimentRequest) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *DeleteAnnotationTagReq) 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.WorkspaceID) return offset } -func (p *InsightAnalysisExperimentRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { +func (p *DeleteAnnotationTagReq) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) offset += thrift.Binary.WriteI64(buf[offset:], p.ExptID) return offset } -func (p *InsightAnalysisExperimentRequest) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { +func (p *DeleteAnnotationTagReq) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetTagKeyID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 3) + offset += thrift.Binary.WriteI64(buf[offset:], *p.TagKeyID) + } + return offset +} + +func (p *DeleteAnnotationTagReq) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSession() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 200) @@ -17172,7 +17498,7 @@ func (p *InsightAnalysisExperimentRequest) fastWriteField200(buf []byte, w thrif return offset } -func (p *InsightAnalysisExperimentRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { +func (p *DeleteAnnotationTagReq) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetBase() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) @@ -17181,21 +17507,30 @@ func (p *InsightAnalysisExperimentRequest) fastWriteField255(buf []byte, w thrif return offset } -func (p *InsightAnalysisExperimentRequest) field1Length() int { +func (p *DeleteAnnotationTagReq) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += thrift.Binary.I64Length() return l } -func (p *InsightAnalysisExperimentRequest) field2Length() int { +func (p *DeleteAnnotationTagReq) field2Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += thrift.Binary.I64Length() return l } -func (p *InsightAnalysisExperimentRequest) field200Length() int { +func (p *DeleteAnnotationTagReq) field3Length() int { + l := 0 + if p.IsSetTagKeyID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *DeleteAnnotationTagReq) field200Length() int { l := 0 if p.IsSetSession() { l += thrift.Binary.FieldBeginLength() @@ -17204,7 +17539,7 @@ func (p *InsightAnalysisExperimentRequest) field200Length() int { return l } -func (p *InsightAnalysisExperimentRequest) field255Length() int { +func (p *DeleteAnnotationTagReq) field255Length() int { l := 0 if p.IsSetBase() { l += thrift.Binary.FieldBeginLength() @@ -17213,8 +17548,8 @@ func (p *InsightAnalysisExperimentRequest) field255Length() int { return l } -func (p *InsightAnalysisExperimentRequest) DeepCopy(s interface{}) error { - src, ok := s.(*InsightAnalysisExperimentRequest) +func (p *DeleteAnnotationTagReq) DeepCopy(s interface{}) error { + src, ok := s.(*DeleteAnnotationTagReq) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } @@ -17223,6 +17558,11 @@ func (p *InsightAnalysisExperimentRequest) DeepCopy(s interface{}) error { p.ExptID = src.ExptID + if src.TagKeyID != nil { + tmp := *src.TagKeyID + p.TagKeyID = &tmp + } + var _session *common.Session if src.Session != nil { _session = &common.Session{} @@ -17244,14 +17584,13 @@ func (p *InsightAnalysisExperimentRequest) DeepCopy(s interface{}) error { return nil } -func (p *InsightAnalysisExperimentResponse) FastRead(buf []byte) (int, error) { +func (p *DeleteAnnotationTagResp) FastRead(buf []byte) (int, error) { var err error var offset int var l int var fieldTypeId thrift.TType var fieldId int16 - var issetInsightAnalysisRecordID bool = false for { fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) offset += l @@ -17262,21 +17601,6 @@ func (p *InsightAnalysisExperimentResponse) FastRead(buf []byte) (int, error) { break } switch fieldId { - case 1: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - issetInsightAnalysisRecordID = true - } 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:]) @@ -17300,36 +17624,16 @@ func (p *InsightAnalysisExperimentResponse) FastRead(buf []byte) (int, error) { } } - if !issetInsightAnalysisRecordID { - 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_InsightAnalysisExperimentResponse[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_DeleteAnnotationTagResp[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_InsightAnalysisExperimentResponse[fieldId])) -} - -func (p *InsightAnalysisExperimentResponse) 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.InsightAnalysisRecordID = _field - return offset, nil } -func (p *InsightAnalysisExperimentResponse) FastReadField255(buf []byte) (int, error) { +func (p *DeleteAnnotationTagResp) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBaseResp() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -17341,66 +17645,48 @@ func (p *InsightAnalysisExperimentResponse) FastReadField255(buf []byte) (int, e return offset, nil } -func (p *InsightAnalysisExperimentResponse) FastWrite(buf []byte) int { +func (p *DeleteAnnotationTagResp) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *InsightAnalysisExperimentResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *DeleteAnnotationTagResp) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { - offset += p.fastWriteField1(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset } -func (p *InsightAnalysisExperimentResponse) BLength() int { +func (p *DeleteAnnotationTagResp) BLength() int { l := 0 if p != nil { - l += p.field1Length() l += p.field255Length() } l += thrift.Binary.FieldStopLength() return l } -func (p *InsightAnalysisExperimentResponse) 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.InsightAnalysisRecordID) - return offset -} - -func (p *InsightAnalysisExperimentResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { +func (p *DeleteAnnotationTagResp) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) return offset } -func (p *InsightAnalysisExperimentResponse) field1Length() int { - l := 0 - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - return l -} - -func (p *InsightAnalysisExperimentResponse) field255Length() int { +func (p *DeleteAnnotationTagResp) field255Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.BaseResp.BLength() return l } -func (p *InsightAnalysisExperimentResponse) DeepCopy(s interface{}) error { - src, ok := s.(*InsightAnalysisExperimentResponse) +func (p *DeleteAnnotationTagResp) DeepCopy(s interface{}) error { + src, ok := s.(*DeleteAnnotationTagResp) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - p.InsightAnalysisRecordID = src.InsightAnalysisRecordID - var _baseResp *base.BaseResp if src.BaseResp != nil { _baseResp = &base.BaseResp{} @@ -17413,7 +17699,7 @@ func (p *InsightAnalysisExperimentResponse) DeepCopy(s interface{}) error { return nil } -func (p *ListExptInsightAnalysisRecordRequest) FastRead(buf []byte) (int, error) { +func (p *CreateAnnotateRecordReq) FastRead(buf []byte) (int, error) { var err error var offset int @@ -17422,6 +17708,9 @@ func (p *ListExptInsightAnalysisRecordRequest) FastRead(buf []byte) (int, error) var fieldId int16 var issetWorkspaceID bool = false var issetExptID bool = false + var issetAnnotateRecord bool = false + var issetItemID bool = false + var issetTurnID bool = false for { fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) offset += l @@ -17463,12 +17752,13 @@ func (p *ListExptInsightAnalysisRecordRequest) FastRead(buf []byte) (int, error) } } case 3: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.STRUCT { l, err = p.FastReadField3(buf[offset:]) offset += l if err != nil { goto ReadFieldError } + issetAnnotateRecord = true } else { l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -17477,12 +17767,28 @@ func (p *ListExptInsightAnalysisRecordRequest) FastRead(buf []byte) (int, error) } } case 4: - if fieldTypeId == thrift.I32 { + if fieldTypeId == thrift.I64 { l, err = p.FastReadField4(buf[offset:]) offset += l if err != nil { goto ReadFieldError } + issetItemID = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 5: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField5(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetTurnID = true } else { l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -17536,18 +17842,33 @@ func (p *ListExptInsightAnalysisRecordRequest) FastRead(buf []byte) (int, error) fieldId = 2 goto RequiredFieldNotSetError } + + if !issetAnnotateRecord { + fieldId = 3 + goto RequiredFieldNotSetError + } + + if !issetItemID { + fieldId = 4 + goto RequiredFieldNotSetError + } + + if !issetTurnID { + fieldId = 5 + 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_ListExptInsightAnalysisRecordRequest[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_CreateAnnotateRecordReq[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_ListExptInsightAnalysisRecordRequest[fieldId])) + return offset, thrift.NewProtocolException(thrift.INVALID_DATA, fmt.Sprintf("required field %s is not set", fieldIDToName_CreateAnnotateRecordReq[fieldId])) } -func (p *ListExptInsightAnalysisRecordRequest) FastReadField1(buf []byte) (int, error) { +func (p *CreateAnnotateRecordReq) FastReadField1(buf []byte) (int, error) { offset := 0 var _field int64 @@ -17561,7 +17882,7 @@ func (p *ListExptInsightAnalysisRecordRequest) FastReadField1(buf []byte) (int, return offset, nil } -func (p *ListExptInsightAnalysisRecordRequest) FastReadField2(buf []byte) (int, error) { +func (p *CreateAnnotateRecordReq) FastReadField2(buf []byte) (int, error) { offset := 0 var _field int64 @@ -17575,35 +17896,47 @@ func (p *ListExptInsightAnalysisRecordRequest) FastReadField2(buf []byte) (int, return offset, nil } -func (p *ListExptInsightAnalysisRecordRequest) FastReadField3(buf []byte) (int, error) { +func (p *CreateAnnotateRecordReq) FastReadField3(buf []byte) (int, error) { offset := 0 + _field := expt.NewAnnotateRecord() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.AnnotateRecord = _field + return offset, nil +} - var _field *int32 - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { +func (p *CreateAnnotateRecordReq) FastReadField4(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 + _field = v } - p.PageNumber = _field + p.ItemID = _field return offset, nil } -func (p *ListExptInsightAnalysisRecordRequest) FastReadField4(buf []byte) (int, error) { +func (p *CreateAnnotateRecordReq) FastReadField5(buf []byte) (int, error) { offset := 0 - var _field *int32 - if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + var _field int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { return offset, err } else { offset += l - _field = &v + _field = v } - p.PageSize = _field + p.TurnID = _field return offset, nil } -func (p *ListExptInsightAnalysisRecordRequest) FastReadField200(buf []byte) (int, error) { +func (p *CreateAnnotateRecordReq) FastReadField200(buf []byte) (int, error) { offset := 0 _field := common.NewSession() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -17615,7 +17948,7 @@ func (p *ListExptInsightAnalysisRecordRequest) FastReadField200(buf []byte) (int return offset, nil } -func (p *ListExptInsightAnalysisRecordRequest) FastReadField255(buf []byte) (int, error) { +func (p *CreateAnnotateRecordReq) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBase() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -17627,17 +17960,18 @@ func (p *ListExptInsightAnalysisRecordRequest) FastReadField255(buf []byte) (int return offset, nil } -func (p *ListExptInsightAnalysisRecordRequest) FastWrite(buf []byte) int { +func (p *CreateAnnotateRecordReq) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ListExptInsightAnalysisRecordRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *CreateAnnotateRecordReq) 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.fastWriteField3(buf[offset:], w) offset += p.fastWriteField200(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } @@ -17645,13 +17979,14 @@ func (p *ListExptInsightAnalysisRecordRequest) FastWriteNocopy(buf []byte, w thr return offset } -func (p *ListExptInsightAnalysisRecordRequest) BLength() int { +func (p *CreateAnnotateRecordReq) BLength() int { l := 0 if p != nil { l += p.field1Length() l += p.field2Length() l += p.field3Length() l += p.field4Length() + l += p.field5Length() l += p.field200Length() l += p.field255Length() } @@ -17659,39 +17994,42 @@ func (p *ListExptInsightAnalysisRecordRequest) BLength() int { return l } -func (p *ListExptInsightAnalysisRecordRequest) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *CreateAnnotateRecordReq) 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.WorkspaceID) return offset } -func (p *ListExptInsightAnalysisRecordRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { +func (p *CreateAnnotateRecordReq) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) offset += thrift.Binary.WriteI64(buf[offset:], p.ExptID) return offset } -func (p *ListExptInsightAnalysisRecordRequest) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { +func (p *CreateAnnotateRecordReq) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetPageNumber() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 3) - offset += thrift.Binary.WriteI32(buf[offset:], *p.PageNumber) - } + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 3) + offset += p.AnnotateRecord.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ListExptInsightAnalysisRecordRequest) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { +func (p *CreateAnnotateRecordReq) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetPageSize() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 4) - offset += thrift.Binary.WriteI32(buf[offset:], *p.PageSize) - } + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 4) + offset += thrift.Binary.WriteI64(buf[offset:], p.ItemID) return offset } -func (p *ListExptInsightAnalysisRecordRequest) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { +func (p *CreateAnnotateRecordReq) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 5) + offset += thrift.Binary.WriteI64(buf[offset:], p.TurnID) + return offset +} + +func (p *CreateAnnotateRecordReq) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSession() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 200) @@ -17700,7 +18038,7 @@ func (p *ListExptInsightAnalysisRecordRequest) fastWriteField200(buf []byte, w t return offset } -func (p *ListExptInsightAnalysisRecordRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { +func (p *CreateAnnotateRecordReq) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetBase() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) @@ -17709,39 +18047,42 @@ func (p *ListExptInsightAnalysisRecordRequest) fastWriteField255(buf []byte, w t return offset } -func (p *ListExptInsightAnalysisRecordRequest) field1Length() int { +func (p *CreateAnnotateRecordReq) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += thrift.Binary.I64Length() return l } -func (p *ListExptInsightAnalysisRecordRequest) field2Length() int { +func (p *CreateAnnotateRecordReq) field2Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += thrift.Binary.I64Length() return l } -func (p *ListExptInsightAnalysisRecordRequest) field3Length() int { +func (p *CreateAnnotateRecordReq) field3Length() int { l := 0 - if p.IsSetPageNumber() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() - } + l += thrift.Binary.FieldBeginLength() + l += p.AnnotateRecord.BLength() return l } -func (p *ListExptInsightAnalysisRecordRequest) field4Length() int { +func (p *CreateAnnotateRecordReq) field4Length() int { l := 0 - if p.IsSetPageSize() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I32Length() - } + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() return l } -func (p *ListExptInsightAnalysisRecordRequest) field200Length() int { +func (p *CreateAnnotateRecordReq) field5Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + return l +} + +func (p *CreateAnnotateRecordReq) field200Length() int { l := 0 if p.IsSetSession() { l += thrift.Binary.FieldBeginLength() @@ -17750,7 +18091,7 @@ func (p *ListExptInsightAnalysisRecordRequest) field200Length() int { return l } -func (p *ListExptInsightAnalysisRecordRequest) field255Length() int { +func (p *CreateAnnotateRecordReq) field255Length() int { l := 0 if p.IsSetBase() { l += thrift.Binary.FieldBeginLength() @@ -17759,8 +18100,8 @@ func (p *ListExptInsightAnalysisRecordRequest) field255Length() int { return l } -func (p *ListExptInsightAnalysisRecordRequest) DeepCopy(s interface{}) error { - src, ok := s.(*ListExptInsightAnalysisRecordRequest) +func (p *CreateAnnotateRecordReq) DeepCopy(s interface{}) error { + src, ok := s.(*CreateAnnotateRecordReq) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } @@ -17769,15 +18110,18 @@ func (p *ListExptInsightAnalysisRecordRequest) DeepCopy(s interface{}) error { p.ExptID = src.ExptID - if src.PageNumber != nil { - tmp := *src.PageNumber - p.PageNumber = &tmp + var _annotateRecord *expt.AnnotateRecord + if src.AnnotateRecord != nil { + _annotateRecord = &expt.AnnotateRecord{} + if err := _annotateRecord.DeepCopy(src.AnnotateRecord); err != nil { + return err + } } + p.AnnotateRecord = _annotateRecord - if src.PageSize != nil { - tmp := *src.PageSize - p.PageSize = &tmp - } + p.ItemID = src.ItemID + + p.TurnID = src.TurnID var _session *common.Session if src.Session != nil { @@ -17800,14 +18144,14 @@ func (p *ListExptInsightAnalysisRecordRequest) DeepCopy(s interface{}) error { return nil } -func (p *ListExptInsightAnalysisRecordResponse) FastRead(buf []byte) (int, error) { +func (p *CreateAnnotateRecordResp) FastRead(buf []byte) (int, error) { var err error var offset int var l int var fieldTypeId thrift.TType var fieldId int16 - var issetExptInsightAnalysisRecords bool = false + var issetAnnotateRecordID bool = false for { fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) offset += l @@ -17819,27 +18163,13 @@ func (p *ListExptInsightAnalysisRecordResponse) FastRead(buf []byte) (int, error } switch fieldId { case 1: - if fieldTypeId == thrift.LIST { - l, err = p.FastReadField1(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - issetExptInsightAnalysisRecords = true - } else { - l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) - offset += l - if err != nil { - goto SkipFieldError - } - } - case 20: if fieldTypeId == thrift.I64 { - l, err = p.FastReadField20(buf[offset:]) + l, err = p.FastReadField1(buf[offset:]) offset += l if err != nil { goto ReadFieldError } + issetAnnotateRecordID = true } else { l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -17870,7 +18200,7 @@ func (p *ListExptInsightAnalysisRecordResponse) FastRead(buf []byte) (int, error } } - if !issetExptInsightAnalysisRecords { + if !issetAnnotateRecordID { fieldId = 1 goto RequiredFieldNotSetError } @@ -17878,53 +18208,28 @@ func (p *ListExptInsightAnalysisRecordResponse) FastRead(buf []byte) (int, error 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_ListExptInsightAnalysisRecordResponse[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_CreateAnnotateRecordResp[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_ListExptInsightAnalysisRecordResponse[fieldId])) + return offset, thrift.NewProtocolException(thrift.INVALID_DATA, fmt.Sprintf("required field %s is not set", fieldIDToName_CreateAnnotateRecordResp[fieldId])) } -func (p *ListExptInsightAnalysisRecordResponse) FastReadField1(buf []byte) (int, error) { +func (p *CreateAnnotateRecordResp) FastReadField1(buf []byte) (int, error) { offset := 0 - _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) - offset += l - if err != nil { + var _field int64 + if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { return offset, err + } else { + offset += l + _field = v } - _field := make([]*expt.ExptInsightAnalysisRecord, 0, size) - values := make([]expt.ExptInsightAnalysisRecord, 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.ExptInsightAnalysisRecords = _field - return offset, nil -} - -func (p *ListExptInsightAnalysisRecordResponse) FastReadField20(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.Total = _field + p.AnnotateRecordID = _field return offset, nil } -func (p *ListExptInsightAnalysisRecordResponse) FastReadField255(buf []byte) (int, error) { +func (p *CreateAnnotateRecordResp) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBaseResp() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -17936,14 +18241,13 @@ func (p *ListExptInsightAnalysisRecordResponse) FastReadField255(buf []byte) (in return offset, nil } -func (p *ListExptInsightAnalysisRecordResponse) FastWrite(buf []byte) int { +func (p *CreateAnnotateRecordResp) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ListExptInsightAnalysisRecordResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *CreateAnnotateRecordResp) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { - offset += p.fastWriteField20(buf[offset:], w) offset += p.fastWriteField1(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } @@ -17951,99 +18255,51 @@ func (p *ListExptInsightAnalysisRecordResponse) FastWriteNocopy(buf []byte, w th return offset } -func (p *ListExptInsightAnalysisRecordResponse) BLength() int { +func (p *CreateAnnotateRecordResp) BLength() int { l := 0 if p != nil { l += p.field1Length() - l += p.field20Length() l += p.field255Length() } l += thrift.Binary.FieldStopLength() return l } -func (p *ListExptInsightAnalysisRecordResponse) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 1) - listBeginOffset := offset - offset += thrift.Binary.ListBeginLength() - var length int - for _, v := range p.ExptInsightAnalysisRecords { - length++ - offset += v.FastWriteNocopy(buf[offset:], w) - } - thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) - return offset -} - -func (p *ListExptInsightAnalysisRecordResponse) fastWriteField20(buf []byte, w thrift.NocopyWriter) int { +func (p *CreateAnnotateRecordResp) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetTotal() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 20) - offset += thrift.Binary.WriteI64(buf[offset:], *p.Total) - } + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) + offset += thrift.Binary.WriteI64(buf[offset:], p.AnnotateRecordID) return offset } -func (p *ListExptInsightAnalysisRecordResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { +func (p *CreateAnnotateRecordResp) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ListExptInsightAnalysisRecordResponse) field1Length() int { +func (p *CreateAnnotateRecordResp) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.ListBeginLength() - for _, v := range p.ExptInsightAnalysisRecords { - _ = v - l += v.BLength() - } - return l -} - -func (p *ListExptInsightAnalysisRecordResponse) field20Length() int { - l := 0 - if p.IsSetTotal() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - } + l += thrift.Binary.I64Length() return l } -func (p *ListExptInsightAnalysisRecordResponse) field255Length() int { +func (p *CreateAnnotateRecordResp) field255Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.BaseResp.BLength() return l } -func (p *ListExptInsightAnalysisRecordResponse) DeepCopy(s interface{}) error { - src, ok := s.(*ListExptInsightAnalysisRecordResponse) +func (p *CreateAnnotateRecordResp) DeepCopy(s interface{}) error { + src, ok := s.(*CreateAnnotateRecordResp) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - if src.ExptInsightAnalysisRecords != nil { - p.ExptInsightAnalysisRecords = make([]*expt.ExptInsightAnalysisRecord, 0, len(src.ExptInsightAnalysisRecords)) - for _, elem := range src.ExptInsightAnalysisRecords { - var _elem *expt.ExptInsightAnalysisRecord - if elem != nil { - _elem = &expt.ExptInsightAnalysisRecord{} - if err := _elem.DeepCopy(elem); err != nil { - return err - } - } - - p.ExptInsightAnalysisRecords = append(p.ExptInsightAnalysisRecords, _elem) - } - } - - if src.Total != nil { - tmp := *src.Total - p.Total = &tmp - } + p.AnnotateRecordID = src.AnnotateRecordID var _baseResp *base.BaseResp if src.BaseResp != nil { @@ -18057,7 +18313,7 @@ func (p *ListExptInsightAnalysisRecordResponse) DeepCopy(s interface{}) error { return nil } -func (p *DeleteExptInsightAnalysisRecordRequest) FastRead(buf []byte) (int, error) { +func (p *UpdateAnnotateRecordReq) FastRead(buf []byte) (int, error) { var err error var offset int @@ -18066,7 +18322,10 @@ func (p *DeleteExptInsightAnalysisRecordRequest) FastRead(buf []byte) (int, erro var fieldId int16 var issetWorkspaceID bool = false var issetExptID bool = false - var issetInsightAnalysisRecordID bool = false + var issetAnnotateRecords bool = false + var issetAnnotateRecordID bool = false + var issetItemID bool = false + var issetTurnID bool = false for { fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) offset += l @@ -18108,13 +18367,58 @@ func (p *DeleteExptInsightAnalysisRecordRequest) FastRead(buf []byte) (int, erro } } case 3: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.STRUCT { l, err = p.FastReadField3(buf[offset:]) offset += l if err != nil { goto ReadFieldError } - issetInsightAnalysisRecordID = true + issetAnnotateRecords = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 4: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField4(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetAnnotateRecordID = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 5: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField5(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetItemID = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 6: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField6(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetTurnID = true } else { l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -18169,22 +18473,37 @@ func (p *DeleteExptInsightAnalysisRecordRequest) FastRead(buf []byte) (int, erro goto RequiredFieldNotSetError } - if !issetInsightAnalysisRecordID { + if !issetAnnotateRecords { fieldId = 3 goto RequiredFieldNotSetError } + + if !issetAnnotateRecordID { + fieldId = 4 + goto RequiredFieldNotSetError + } + + if !issetItemID { + fieldId = 5 + goto RequiredFieldNotSetError + } + + if !issetTurnID { + fieldId = 6 + 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_DeleteExptInsightAnalysisRecordRequest[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UpdateAnnotateRecordReq[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_DeleteExptInsightAnalysisRecordRequest[fieldId])) + return offset, thrift.NewProtocolException(thrift.INVALID_DATA, fmt.Sprintf("required field %s is not set", fieldIDToName_UpdateAnnotateRecordReq[fieldId])) } -func (p *DeleteExptInsightAnalysisRecordRequest) FastReadField1(buf []byte) (int, error) { +func (p *UpdateAnnotateRecordReq) FastReadField1(buf []byte) (int, error) { offset := 0 var _field int64 @@ -18198,7 +18517,7 @@ func (p *DeleteExptInsightAnalysisRecordRequest) FastReadField1(buf []byte) (int return offset, nil } -func (p *DeleteExptInsightAnalysisRecordRequest) FastReadField2(buf []byte) (int, error) { +func (p *UpdateAnnotateRecordReq) FastReadField2(buf []byte) (int, error) { offset := 0 var _field int64 @@ -18212,7 +18531,19 @@ func (p *DeleteExptInsightAnalysisRecordRequest) FastReadField2(buf []byte) (int return offset, nil } -func (p *DeleteExptInsightAnalysisRecordRequest) FastReadField3(buf []byte) (int, error) { +func (p *UpdateAnnotateRecordReq) FastReadField3(buf []byte) (int, error) { + offset := 0 + _field := expt.NewAnnotateRecord() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.AnnotateRecords = _field + return offset, nil +} + +func (p *UpdateAnnotateRecordReq) FastReadField4(buf []byte) (int, error) { offset := 0 var _field int64 @@ -18222,11 +18553,39 @@ func (p *DeleteExptInsightAnalysisRecordRequest) FastReadField3(buf []byte) (int offset += l _field = v } - p.InsightAnalysisRecordID = _field + p.AnnotateRecordID = _field return offset, nil } -func (p *DeleteExptInsightAnalysisRecordRequest) FastReadField200(buf []byte) (int, error) { +func (p *UpdateAnnotateRecordReq) FastReadField5(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.ItemID = _field + return offset, nil +} + +func (p *UpdateAnnotateRecordReq) FastReadField6(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.TurnID = _field + return offset, nil +} + +func (p *UpdateAnnotateRecordReq) FastReadField200(buf []byte) (int, error) { offset := 0 _field := common.NewSession() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -18238,7 +18597,7 @@ func (p *DeleteExptInsightAnalysisRecordRequest) FastReadField200(buf []byte) (i return offset, nil } -func (p *DeleteExptInsightAnalysisRecordRequest) FastReadField255(buf []byte) (int, error) { +func (p *UpdateAnnotateRecordReq) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBase() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -18250,15 +18609,18 @@ func (p *DeleteExptInsightAnalysisRecordRequest) FastReadField255(buf []byte) (i return offset, nil } -func (p *DeleteExptInsightAnalysisRecordRequest) FastWrite(buf []byte) int { +func (p *UpdateAnnotateRecordReq) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *DeleteExptInsightAnalysisRecordRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *UpdateAnnotateRecordReq) 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.fastWriteField4(buf[offset:], w) + offset += p.fastWriteField5(buf[offset:], w) + offset += p.fastWriteField6(buf[offset:], w) offset += p.fastWriteField3(buf[offset:], w) offset += p.fastWriteField200(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) @@ -18267,12 +18629,15 @@ func (p *DeleteExptInsightAnalysisRecordRequest) FastWriteNocopy(buf []byte, w t return offset } -func (p *DeleteExptInsightAnalysisRecordRequest) BLength() int { +func (p *UpdateAnnotateRecordReq) 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 += p.field200Length() l += p.field255Length() } @@ -18280,37 +18645,58 @@ func (p *DeleteExptInsightAnalysisRecordRequest) BLength() int { return l } -func (p *DeleteExptInsightAnalysisRecordRequest) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *UpdateAnnotateRecordReq) 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.WorkspaceID) return offset } -func (p *DeleteExptInsightAnalysisRecordRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { +func (p *UpdateAnnotateRecordReq) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) offset += thrift.Binary.WriteI64(buf[offset:], p.ExptID) return offset } -func (p *DeleteExptInsightAnalysisRecordRequest) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { +func (p *UpdateAnnotateRecordReq) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { offset := 0 - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 3) - offset += thrift.Binary.WriteI64(buf[offset:], p.InsightAnalysisRecordID) + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 3) + offset += p.AnnotateRecords.FastWriteNocopy(buf[offset:], w) return offset } -func (p *DeleteExptInsightAnalysisRecordRequest) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { +func (p *UpdateAnnotateRecordReq) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetSession() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 200) - offset += p.Session.FastWriteNocopy(buf[offset:], w) - } + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 4) + offset += thrift.Binary.WriteI64(buf[offset:], p.AnnotateRecordID) return offset } -func (p *DeleteExptInsightAnalysisRecordRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { +func (p *UpdateAnnotateRecordReq) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 5) + offset += thrift.Binary.WriteI64(buf[offset:], p.ItemID) + return offset +} + +func (p *UpdateAnnotateRecordReq) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 6) + offset += thrift.Binary.WriteI64(buf[offset:], p.TurnID) + return offset +} + +func (p *UpdateAnnotateRecordReq) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSession() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 200) + offset += p.Session.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *UpdateAnnotateRecordReq) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetBase() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) @@ -18319,28 +18705,49 @@ func (p *DeleteExptInsightAnalysisRecordRequest) fastWriteField255(buf []byte, w return offset } -func (p *DeleteExptInsightAnalysisRecordRequest) field1Length() int { +func (p *UpdateAnnotateRecordReq) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += thrift.Binary.I64Length() return l } -func (p *DeleteExptInsightAnalysisRecordRequest) field2Length() int { +func (p *UpdateAnnotateRecordReq) field2Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += thrift.Binary.I64Length() return l } -func (p *DeleteExptInsightAnalysisRecordRequest) field3Length() int { +func (p *UpdateAnnotateRecordReq) field3Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += p.AnnotateRecords.BLength() + return l +} + +func (p *UpdateAnnotateRecordReq) field4Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += thrift.Binary.I64Length() return l } -func (p *DeleteExptInsightAnalysisRecordRequest) field200Length() int { +func (p *UpdateAnnotateRecordReq) field5Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + return l +} + +func (p *UpdateAnnotateRecordReq) field6Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + return l +} + +func (p *UpdateAnnotateRecordReq) field200Length() int { l := 0 if p.IsSetSession() { l += thrift.Binary.FieldBeginLength() @@ -18349,7 +18756,7 @@ func (p *DeleteExptInsightAnalysisRecordRequest) field200Length() int { return l } -func (p *DeleteExptInsightAnalysisRecordRequest) field255Length() int { +func (p *UpdateAnnotateRecordReq) field255Length() int { l := 0 if p.IsSetBase() { l += thrift.Binary.FieldBeginLength() @@ -18358,8 +18765,8 @@ func (p *DeleteExptInsightAnalysisRecordRequest) field255Length() int { return l } -func (p *DeleteExptInsightAnalysisRecordRequest) DeepCopy(s interface{}) error { - src, ok := s.(*DeleteExptInsightAnalysisRecordRequest) +func (p *UpdateAnnotateRecordReq) DeepCopy(s interface{}) error { + src, ok := s.(*UpdateAnnotateRecordReq) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } @@ -18368,7 +18775,20 @@ func (p *DeleteExptInsightAnalysisRecordRequest) DeepCopy(s interface{}) error { p.ExptID = src.ExptID - p.InsightAnalysisRecordID = src.InsightAnalysisRecordID + var _annotateRecords *expt.AnnotateRecord + if src.AnnotateRecords != nil { + _annotateRecords = &expt.AnnotateRecord{} + if err := _annotateRecords.DeepCopy(src.AnnotateRecords); err != nil { + return err + } + } + p.AnnotateRecords = _annotateRecords + + p.AnnotateRecordID = src.AnnotateRecordID + + p.ItemID = src.ItemID + + p.TurnID = src.TurnID var _session *common.Session if src.Session != nil { @@ -18391,7 +18811,7 @@ func (p *DeleteExptInsightAnalysisRecordRequest) DeepCopy(s interface{}) error { return nil } -func (p *DeleteExptInsightAnalysisRecordResponse) FastRead(buf []byte) (int, error) { +func (p *UpdateAnnotateRecordResp) FastRead(buf []byte) (int, error) { var err error var offset int @@ -18435,12 +18855,12 @@ func (p *DeleteExptInsightAnalysisRecordResponse) FastRead(buf []byte) (int, err 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_DeleteExptInsightAnalysisRecordResponse[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UpdateAnnotateRecordResp[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *DeleteExptInsightAnalysisRecordResponse) FastReadField255(buf []byte) (int, error) { +func (p *UpdateAnnotateRecordResp) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBaseResp() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -18452,11 +18872,11 @@ func (p *DeleteExptInsightAnalysisRecordResponse) FastReadField255(buf []byte) ( return offset, nil } -func (p *DeleteExptInsightAnalysisRecordResponse) FastWrite(buf []byte) int { +func (p *UpdateAnnotateRecordResp) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *DeleteExptInsightAnalysisRecordResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *UpdateAnnotateRecordResp) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField255(buf[offset:], w) @@ -18465,7 +18885,7 @@ func (p *DeleteExptInsightAnalysisRecordResponse) FastWriteNocopy(buf []byte, w return offset } -func (p *DeleteExptInsightAnalysisRecordResponse) BLength() int { +func (p *UpdateAnnotateRecordResp) BLength() int { l := 0 if p != nil { l += p.field255Length() @@ -18474,22 +18894,22 @@ func (p *DeleteExptInsightAnalysisRecordResponse) BLength() int { return l } -func (p *DeleteExptInsightAnalysisRecordResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { +func (p *UpdateAnnotateRecordResp) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) return offset } -func (p *DeleteExptInsightAnalysisRecordResponse) field255Length() int { +func (p *UpdateAnnotateRecordResp) field255Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.BaseResp.BLength() return l } -func (p *DeleteExptInsightAnalysisRecordResponse) DeepCopy(s interface{}) error { - src, ok := s.(*DeleteExptInsightAnalysisRecordResponse) +func (p *UpdateAnnotateRecordResp) DeepCopy(s interface{}) error { + src, ok := s.(*UpdateAnnotateRecordResp) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } @@ -18506,7 +18926,7 @@ func (p *DeleteExptInsightAnalysisRecordResponse) DeepCopy(s interface{}) error return nil } -func (p *FeedbackExptInsightAnalysisReportRequest) FastRead(buf []byte) (int, error) { +func (p *ExportExptResultRequest) FastRead(buf []byte) (int, error) { var err error var offset int @@ -18515,8 +18935,6 @@ func (p *FeedbackExptInsightAnalysisReportRequest) FastRead(buf []byte) (int, er var fieldId int16 var issetWorkspaceID bool = false var issetExptID bool = false - var issetInsightAnalysisRecordID bool = false - var issetFeedbackActionType bool = false for { fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) offset += l @@ -18557,21 +18975,6 @@ func (p *FeedbackExptInsightAnalysisReportRequest) FastRead(buf []byte) (int, er goto SkipFieldError } } - case 3: - if fieldTypeId == thrift.I64 { - l, err = p.FastReadField3(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } - issetInsightAnalysisRecordID = true - } 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:]) @@ -18579,35 +18982,6 @@ func (p *FeedbackExptInsightAnalysisReportRequest) FastRead(buf []byte) (int, er if err != nil { goto ReadFieldError } - issetFeedbackActionType = true - } 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.I64 { - l, err = p.FastReadField6(buf[offset:]) - offset += l - if err != nil { - goto ReadFieldError - } } else { l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -18661,28 +19035,18 @@ func (p *FeedbackExptInsightAnalysisReportRequest) FastRead(buf []byte) (int, er fieldId = 2 goto RequiredFieldNotSetError } - - if !issetInsightAnalysisRecordID { - fieldId = 3 - goto RequiredFieldNotSetError - } - - if !issetFeedbackActionType { - fieldId = 4 - 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_FeedbackExptInsightAnalysisReportRequest[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExportExptResultRequest[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_FeedbackExptInsightAnalysisReportRequest[fieldId])) + return offset, thrift.NewProtocolException(thrift.INVALID_DATA, fmt.Sprintf("required field %s is not set", fieldIDToName_ExportExptResultRequest[fieldId])) } -func (p *FeedbackExptInsightAnalysisReportRequest) FastReadField1(buf []byte) (int, error) { +func (p *ExportExptResultRequest) FastReadField1(buf []byte) (int, error) { offset := 0 var _field int64 @@ -18696,7 +19060,7 @@ func (p *FeedbackExptInsightAnalysisReportRequest) FastReadField1(buf []byte) (i return offset, nil } -func (p *FeedbackExptInsightAnalysisReportRequest) FastReadField2(buf []byte) (int, error) { +func (p *ExportExptResultRequest) FastReadField2(buf []byte) (int, error) { offset := 0 var _field int64 @@ -18710,63 +19074,21 @@ func (p *FeedbackExptInsightAnalysisReportRequest) FastReadField2(buf []byte) (i return offset, nil } -func (p *FeedbackExptInsightAnalysisReportRequest) FastReadField3(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.InsightAnalysisRecordID = _field - return offset, nil -} - -func (p *FeedbackExptInsightAnalysisReportRequest) FastReadField4(buf []byte) (int, error) { - offset := 0 - - var _field expt.FeedbackActionType - if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - _field = v - } - p.FeedbackActionType = _field - return offset, nil -} - -func (p *FeedbackExptInsightAnalysisReportRequest) FastReadField5(buf []byte) (int, error) { +func (p *ExportExptResultRequest) FastReadField4(buf []byte) (int, error) { offset := 0 - var _field *string + var _field *expt.ExptResultExportType if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { return offset, err } else { offset += l _field = &v } - p.Comment = _field - return offset, nil -} - -func (p *FeedbackExptInsightAnalysisReportRequest) FastReadField6(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.CommentID = _field + p.ExportType = _field return offset, nil } -func (p *FeedbackExptInsightAnalysisReportRequest) FastReadField200(buf []byte) (int, error) { +func (p *ExportExptResultRequest) FastReadField200(buf []byte) (int, error) { offset := 0 _field := common.NewSession() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -18778,7 +19100,7 @@ func (p *FeedbackExptInsightAnalysisReportRequest) FastReadField200(buf []byte) return offset, nil } -func (p *FeedbackExptInsightAnalysisReportRequest) FastReadField255(buf []byte) (int, error) { +func (p *ExportExptResultRequest) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBase() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -18790,19 +19112,16 @@ func (p *FeedbackExptInsightAnalysisReportRequest) FastReadField255(buf []byte) return offset, nil } -func (p *FeedbackExptInsightAnalysisReportRequest) FastWrite(buf []byte) int { +func (p *ExportExptResultRequest) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *FeedbackExptInsightAnalysisReportRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExportExptResultRequest) 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.fastWriteField6(buf[offset:], w) offset += p.fastWriteField4(buf[offset:], w) - offset += p.fastWriteField5(buf[offset:], w) offset += p.fastWriteField200(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } @@ -18810,15 +19129,12 @@ func (p *FeedbackExptInsightAnalysisReportRequest) FastWriteNocopy(buf []byte, w return offset } -func (p *FeedbackExptInsightAnalysisReportRequest) BLength() int { +func (p *ExportExptResultRequest) 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 += p.field200Length() l += p.field255Length() } @@ -18826,117 +19142,71 @@ func (p *FeedbackExptInsightAnalysisReportRequest) BLength() int { return l } -func (p *FeedbackExptInsightAnalysisReportRequest) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExportExptResultRequest) 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.WorkspaceID) return offset } -func (p *FeedbackExptInsightAnalysisReportRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { +func (p *ExportExptResultRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) offset += thrift.Binary.WriteI64(buf[offset:], p.ExptID) return offset } -func (p *FeedbackExptInsightAnalysisReportRequest) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { +func (p *ExportExptResultRequest) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { offset := 0 - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 3) - offset += thrift.Binary.WriteI64(buf[offset:], p.InsightAnalysisRecordID) + if p.IsSetExportType() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 4) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.ExportType) + } return offset } -func (p *FeedbackExptInsightAnalysisReportRequest) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { +func (p *ExportExptResultRequest) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { offset := 0 - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 4) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, p.FeedbackActionType) + if p.IsSetSession() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 200) + offset += p.Session.FastWriteNocopy(buf[offset:], w) + } return offset } -func (p *FeedbackExptInsightAnalysisReportRequest) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { +func (p *ExportExptResultRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetComment() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 5) - offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Comment) + if p.IsSetBase() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.Base.FastWriteNocopy(buf[offset:], w) } return offset } -func (p *FeedbackExptInsightAnalysisReportRequest) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetCommentID() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 6) - offset += thrift.Binary.WriteI64(buf[offset:], *p.CommentID) - } - return offset -} - -func (p *FeedbackExptInsightAnalysisReportRequest) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetSession() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 200) - offset += p.Session.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *FeedbackExptInsightAnalysisReportRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - if p.IsSetBase() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) - offset += p.Base.FastWriteNocopy(buf[offset:], w) - } - return offset -} - -func (p *FeedbackExptInsightAnalysisReportRequest) field1Length() int { - l := 0 - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - return l -} - -func (p *FeedbackExptInsightAnalysisReportRequest) field2Length() int { +func (p *ExportExptResultRequest) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += thrift.Binary.I64Length() return l } -func (p *FeedbackExptInsightAnalysisReportRequest) field3Length() int { +func (p *ExportExptResultRequest) field2Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += thrift.Binary.I64Length() return l } -func (p *FeedbackExptInsightAnalysisReportRequest) field4Length() int { - l := 0 - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(p.FeedbackActionType) - return l -} - -func (p *FeedbackExptInsightAnalysisReportRequest) field5Length() int { - l := 0 - if p.IsSetComment() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.StringLengthNocopy(*p.Comment) - } - return l -} - -func (p *FeedbackExptInsightAnalysisReportRequest) field6Length() int { +func (p *ExportExptResultRequest) field4Length() int { l := 0 - if p.IsSetCommentID() { + if p.IsSetExportType() { l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() + l += thrift.Binary.StringLengthNocopy(*p.ExportType) } return l } -func (p *FeedbackExptInsightAnalysisReportRequest) field200Length() int { +func (p *ExportExptResultRequest) field200Length() int { l := 0 if p.IsSetSession() { l += thrift.Binary.FieldBeginLength() @@ -18945,7 +19215,7 @@ func (p *FeedbackExptInsightAnalysisReportRequest) field200Length() int { return l } -func (p *FeedbackExptInsightAnalysisReportRequest) field255Length() int { +func (p *ExportExptResultRequest) field255Length() int { l := 0 if p.IsSetBase() { l += thrift.Binary.FieldBeginLength() @@ -18954,8 +19224,8 @@ func (p *FeedbackExptInsightAnalysisReportRequest) field255Length() int { return l } -func (p *FeedbackExptInsightAnalysisReportRequest) DeepCopy(s interface{}) error { - src, ok := s.(*FeedbackExptInsightAnalysisReportRequest) +func (p *ExportExptResultRequest) DeepCopy(s interface{}) error { + src, ok := s.(*ExportExptResultRequest) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } @@ -18964,21 +19234,9 @@ func (p *FeedbackExptInsightAnalysisReportRequest) DeepCopy(s interface{}) error p.ExptID = src.ExptID - p.InsightAnalysisRecordID = src.InsightAnalysisRecordID - - p.FeedbackActionType = src.FeedbackActionType - - if src.Comment != nil { - var tmp string - if *src.Comment != "" { - tmp = kutils.StringDeepCopy(*src.Comment) - } - p.Comment = &tmp - } - - if src.CommentID != nil { - tmp := *src.CommentID - p.CommentID = &tmp + if src.ExportType != nil { + tmp := *src.ExportType + p.ExportType = &tmp } var _session *common.Session @@ -19002,13 +19260,14 @@ func (p *FeedbackExptInsightAnalysisReportRequest) DeepCopy(s interface{}) error return nil } -func (p *FeedbackExptInsightAnalysisReportResponse) FastRead(buf []byte) (int, error) { +func (p *ExportExptResultResponse) FastRead(buf []byte) (int, error) { var err error var offset int var l int var fieldTypeId thrift.TType var fieldId int16 + var issetExportID bool = false for { fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) offset += l @@ -19019,6 +19278,21 @@ func (p *FeedbackExptInsightAnalysisReportResponse) FastRead(buf []byte) (int, e break } switch fieldId { + case 1: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetExportID = true + } 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:]) @@ -19042,16 +19316,36 @@ func (p *FeedbackExptInsightAnalysisReportResponse) FastRead(buf []byte) (int, e } } + if !issetExportID { + 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_FeedbackExptInsightAnalysisReportResponse[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExportExptResultResponse[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_ExportExptResultResponse[fieldId])) } -func (p *FeedbackExptInsightAnalysisReportResponse) FastReadField255(buf []byte) (int, error) { +func (p *ExportExptResultResponse) 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.ExportID = _field + return offset, nil +} + +func (p *ExportExptResultResponse) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBaseResp() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -19063,48 +19357,66 @@ func (p *FeedbackExptInsightAnalysisReportResponse) FastReadField255(buf []byte) return offset, nil } -func (p *FeedbackExptInsightAnalysisReportResponse) FastWrite(buf []byte) int { +func (p *ExportExptResultResponse) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *FeedbackExptInsightAnalysisReportResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExportExptResultResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { + offset += p.fastWriteField1(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset } -func (p *FeedbackExptInsightAnalysisReportResponse) BLength() int { +func (p *ExportExptResultResponse) BLength() int { l := 0 if p != nil { + l += p.field1Length() l += p.field255Length() } l += thrift.Binary.FieldStopLength() return l } -func (p *FeedbackExptInsightAnalysisReportResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { +func (p *ExportExptResultResponse) 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.ExportID) + return offset +} + +func (p *ExportExptResultResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) return offset } -func (p *FeedbackExptInsightAnalysisReportResponse) field255Length() int { +func (p *ExportExptResultResponse) field1Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + return l +} + +func (p *ExportExptResultResponse) field255Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.BaseResp.BLength() return l } -func (p *FeedbackExptInsightAnalysisReportResponse) DeepCopy(s interface{}) error { - src, ok := s.(*FeedbackExptInsightAnalysisReportResponse) +func (p *ExportExptResultResponse) DeepCopy(s interface{}) error { + src, ok := s.(*ExportExptResultResponse) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } + p.ExportID = src.ExportID + var _baseResp *base.BaseResp if src.BaseResp != nil { _baseResp = &base.BaseResp{} @@ -19117,7 +19429,7 @@ func (p *FeedbackExptInsightAnalysisReportResponse) DeepCopy(s interface{}) erro return nil } -func (p *ListExptInsightAnalysisCommentRequest) FastRead(buf []byte) (int, error) { +func (p *ListExptResultExportRecordRequest) FastRead(buf []byte) (int, error) { var err error var offset int @@ -19126,7 +19438,6 @@ func (p *ListExptInsightAnalysisCommentRequest) FastRead(buf []byte) (int, error var fieldId int16 var issetWorkspaceID bool = false var issetExptID bool = false - var issetInsightAnalysisRecordID bool = false for { fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) offset += l @@ -19168,13 +19479,12 @@ func (p *ListExptInsightAnalysisCommentRequest) FastRead(buf []byte) (int, error } } case 3: - if fieldTypeId == thrift.I64 { + if fieldTypeId == thrift.I32 { l, err = p.FastReadField3(buf[offset:]) offset += l if err != nil { goto ReadFieldError } - issetInsightAnalysisRecordID = true } else { l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -19196,20 +19506,6 @@ func (p *ListExptInsightAnalysisCommentRequest) FastRead(buf []byte) (int, error goto SkipFieldError } } - case 5: - if fieldTypeId == thrift.I32 { - 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 200: if fieldTypeId == thrift.STRUCT { l, err = p.FastReadField200(buf[offset:]) @@ -19256,23 +19552,18 @@ func (p *ListExptInsightAnalysisCommentRequest) FastRead(buf []byte) (int, error fieldId = 2 goto RequiredFieldNotSetError } - - if !issetInsightAnalysisRecordID { - 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_ListExptInsightAnalysisCommentRequest[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListExptResultExportRecordRequest[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_ListExptInsightAnalysisCommentRequest[fieldId])) + return offset, thrift.NewProtocolException(thrift.INVALID_DATA, fmt.Sprintf("required field %s is not set", fieldIDToName_ListExptResultExportRecordRequest[fieldId])) } -func (p *ListExptInsightAnalysisCommentRequest) FastReadField1(buf []byte) (int, error) { +func (p *ListExptResultExportRecordRequest) FastReadField1(buf []byte) (int, error) { offset := 0 var _field int64 @@ -19286,7 +19577,7 @@ func (p *ListExptInsightAnalysisCommentRequest) FastReadField1(buf []byte) (int, return offset, nil } -func (p *ListExptInsightAnalysisCommentRequest) FastReadField2(buf []byte) (int, error) { +func (p *ListExptResultExportRecordRequest) FastReadField2(buf []byte) (int, error) { offset := 0 var _field int64 @@ -19300,21 +19591,7 @@ func (p *ListExptInsightAnalysisCommentRequest) FastReadField2(buf []byte) (int, return offset, nil } -func (p *ListExptInsightAnalysisCommentRequest) FastReadField3(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.InsightAnalysisRecordID = _field - return offset, nil -} - -func (p *ListExptInsightAnalysisCommentRequest) FastReadField4(buf []byte) (int, error) { +func (p *ListExptResultExportRecordRequest) FastReadField3(buf []byte) (int, error) { offset := 0 var _field *int32 @@ -19328,7 +19605,7 @@ func (p *ListExptInsightAnalysisCommentRequest) FastReadField4(buf []byte) (int, return offset, nil } -func (p *ListExptInsightAnalysisCommentRequest) FastReadField5(buf []byte) (int, error) { +func (p *ListExptResultExportRecordRequest) FastReadField4(buf []byte) (int, error) { offset := 0 var _field *int32 @@ -19342,7 +19619,7 @@ func (p *ListExptInsightAnalysisCommentRequest) FastReadField5(buf []byte) (int, return offset, nil } -func (p *ListExptInsightAnalysisCommentRequest) FastReadField200(buf []byte) (int, error) { +func (p *ListExptResultExportRecordRequest) FastReadField200(buf []byte) (int, error) { offset := 0 _field := common.NewSession() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -19354,7 +19631,7 @@ func (p *ListExptInsightAnalysisCommentRequest) FastReadField200(buf []byte) (in return offset, nil } -func (p *ListExptInsightAnalysisCommentRequest) FastReadField255(buf []byte) (int, error) { +func (p *ListExptResultExportRecordRequest) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBase() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -19366,18 +19643,17 @@ func (p *ListExptInsightAnalysisCommentRequest) FastReadField255(buf []byte) (in return offset, nil } -func (p *ListExptInsightAnalysisCommentRequest) FastWrite(buf []byte) int { +func (p *ListExptResultExportRecordRequest) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ListExptInsightAnalysisCommentRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ListExptResultExportRecordRequest) 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.fastWriteField200(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } @@ -19385,14 +19661,13 @@ func (p *ListExptInsightAnalysisCommentRequest) FastWriteNocopy(buf []byte, w th return offset } -func (p *ListExptInsightAnalysisCommentRequest) BLength() int { +func (p *ListExptResultExportRecordRequest) BLength() int { l := 0 if p != nil { l += p.field1Length() l += p.field2Length() l += p.field3Length() l += p.field4Length() - l += p.field5Length() l += p.field200Length() l += p.field255Length() } @@ -19400,46 +19675,39 @@ func (p *ListExptInsightAnalysisCommentRequest) BLength() int { return l } -func (p *ListExptInsightAnalysisCommentRequest) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ListExptResultExportRecordRequest) 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.WorkspaceID) return offset } -func (p *ListExptInsightAnalysisCommentRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { +func (p *ListExptResultExportRecordRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) offset += thrift.Binary.WriteI64(buf[offset:], p.ExptID) return offset } -func (p *ListExptInsightAnalysisCommentRequest) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 3) - offset += thrift.Binary.WriteI64(buf[offset:], p.InsightAnalysisRecordID) - return offset -} - -func (p *ListExptInsightAnalysisCommentRequest) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { +func (p *ListExptResultExportRecordRequest) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetPageNumber() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 4) + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 3) offset += thrift.Binary.WriteI32(buf[offset:], *p.PageNumber) } return offset } -func (p *ListExptInsightAnalysisCommentRequest) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { +func (p *ListExptResultExportRecordRequest) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetPageSize() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 5) + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 4) offset += thrift.Binary.WriteI32(buf[offset:], *p.PageSize) } return offset } -func (p *ListExptInsightAnalysisCommentRequest) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { +func (p *ListExptResultExportRecordRequest) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSession() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 200) @@ -19448,7 +19716,7 @@ func (p *ListExptInsightAnalysisCommentRequest) fastWriteField200(buf []byte, w return offset } -func (p *ListExptInsightAnalysisCommentRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { +func (p *ListExptResultExportRecordRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetBase() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) @@ -19457,28 +19725,21 @@ func (p *ListExptInsightAnalysisCommentRequest) fastWriteField255(buf []byte, w return offset } -func (p *ListExptInsightAnalysisCommentRequest) field1Length() int { - l := 0 - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - return l -} - -func (p *ListExptInsightAnalysisCommentRequest) field2Length() int { +func (p *ListExptResultExportRecordRequest) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += thrift.Binary.I64Length() return l } -func (p *ListExptInsightAnalysisCommentRequest) field3Length() int { +func (p *ListExptResultExportRecordRequest) field2Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += thrift.Binary.I64Length() return l } -func (p *ListExptInsightAnalysisCommentRequest) field4Length() int { +func (p *ListExptResultExportRecordRequest) field3Length() int { l := 0 if p.IsSetPageNumber() { l += thrift.Binary.FieldBeginLength() @@ -19487,7 +19748,7 @@ func (p *ListExptInsightAnalysisCommentRequest) field4Length() int { return l } -func (p *ListExptInsightAnalysisCommentRequest) field5Length() int { +func (p *ListExptResultExportRecordRequest) field4Length() int { l := 0 if p.IsSetPageSize() { l += thrift.Binary.FieldBeginLength() @@ -19496,7 +19757,7 @@ func (p *ListExptInsightAnalysisCommentRequest) field5Length() int { return l } -func (p *ListExptInsightAnalysisCommentRequest) field200Length() int { +func (p *ListExptResultExportRecordRequest) field200Length() int { l := 0 if p.IsSetSession() { l += thrift.Binary.FieldBeginLength() @@ -19505,7 +19766,7 @@ func (p *ListExptInsightAnalysisCommentRequest) field200Length() int { return l } -func (p *ListExptInsightAnalysisCommentRequest) field255Length() int { +func (p *ListExptResultExportRecordRequest) field255Length() int { l := 0 if p.IsSetBase() { l += thrift.Binary.FieldBeginLength() @@ -19514,8 +19775,8 @@ func (p *ListExptInsightAnalysisCommentRequest) field255Length() int { return l } -func (p *ListExptInsightAnalysisCommentRequest) DeepCopy(s interface{}) error { - src, ok := s.(*ListExptInsightAnalysisCommentRequest) +func (p *ListExptResultExportRecordRequest) DeepCopy(s interface{}) error { + src, ok := s.(*ListExptResultExportRecordRequest) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } @@ -19524,8 +19785,6 @@ func (p *ListExptInsightAnalysisCommentRequest) DeepCopy(s interface{}) error { p.ExptID = src.ExptID - p.InsightAnalysisRecordID = src.InsightAnalysisRecordID - if src.PageNumber != nil { tmp := *src.PageNumber p.PageNumber = &tmp @@ -19557,14 +19816,14 @@ func (p *ListExptInsightAnalysisCommentRequest) DeepCopy(s interface{}) error { return nil } -func (p *ListExptInsightAnalysisCommentResponse) FastRead(buf []byte) (int, error) { +func (p *ListExptResultExportRecordResponse) FastRead(buf []byte) (int, error) { var err error var offset int var l int var fieldTypeId thrift.TType var fieldId int16 - var issetExptInsightAnalysisFeedbackComments bool = false + var issetExptResultExportRecords bool = false for { fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) offset += l @@ -19582,7 +19841,7 @@ func (p *ListExptInsightAnalysisCommentResponse) FastRead(buf []byte) (int, erro if err != nil { goto ReadFieldError } - issetExptInsightAnalysisFeedbackComments = true + issetExptResultExportRecords = true } else { l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -19627,7 +19886,7 @@ func (p *ListExptInsightAnalysisCommentResponse) FastRead(buf []byte) (int, erro } } - if !issetExptInsightAnalysisFeedbackComments { + if !issetExptResultExportRecords { fieldId = 1 goto RequiredFieldNotSetError } @@ -19635,14 +19894,14 @@ func (p *ListExptInsightAnalysisCommentResponse) FastRead(buf []byte) (int, erro 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_ListExptInsightAnalysisCommentResponse[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ListExptResultExportRecordResponse[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_ListExptInsightAnalysisCommentResponse[fieldId])) + return offset, thrift.NewProtocolException(thrift.INVALID_DATA, fmt.Sprintf("required field %s is not set", fieldIDToName_ListExptResultExportRecordResponse[fieldId])) } -func (p *ListExptInsightAnalysisCommentResponse) FastReadField1(buf []byte) (int, error) { +func (p *ListExptResultExportRecordResponse) FastReadField1(buf []byte) (int, error) { offset := 0 _, size, l, err := thrift.Binary.ReadListBegin(buf[offset:]) @@ -19650,8 +19909,8 @@ func (p *ListExptInsightAnalysisCommentResponse) FastReadField1(buf []byte) (int if err != nil { return offset, err } - _field := make([]*expt.ExptInsightAnalysisFeedbackComment, 0, size) - values := make([]expt.ExptInsightAnalysisFeedbackComment, size) + _field := make([]*expt.ExptResultExportRecord, 0, size) + values := make([]expt.ExptResultExportRecord, size) for i := 0; i < size; i++ { _elem := &values[i] _elem.InitDefault() @@ -19663,11 +19922,11 @@ func (p *ListExptInsightAnalysisCommentResponse) FastReadField1(buf []byte) (int _field = append(_field, _elem) } - p.ExptInsightAnalysisFeedbackComments = _field + p.ExptResultExportRecords = _field return offset, nil } -func (p *ListExptInsightAnalysisCommentResponse) FastReadField20(buf []byte) (int, error) { +func (p *ListExptResultExportRecordResponse) FastReadField20(buf []byte) (int, error) { offset := 0 var _field *int64 @@ -19681,7 +19940,7 @@ func (p *ListExptInsightAnalysisCommentResponse) FastReadField20(buf []byte) (in return offset, nil } -func (p *ListExptInsightAnalysisCommentResponse) FastReadField255(buf []byte) (int, error) { +func (p *ListExptResultExportRecordResponse) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBaseResp() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -19693,11 +19952,11 @@ func (p *ListExptInsightAnalysisCommentResponse) FastReadField255(buf []byte) (i return offset, nil } -func (p *ListExptInsightAnalysisCommentResponse) FastWrite(buf []byte) int { +func (p *ListExptResultExportRecordResponse) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ListExptInsightAnalysisCommentResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ListExptResultExportRecordResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField20(buf[offset:], w) @@ -19708,7 +19967,7 @@ func (p *ListExptInsightAnalysisCommentResponse) FastWriteNocopy(buf []byte, w t return offset } -func (p *ListExptInsightAnalysisCommentResponse) BLength() int { +func (p *ListExptResultExportRecordResponse) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -19719,13 +19978,13 @@ func (p *ListExptInsightAnalysisCommentResponse) BLength() int { return l } -func (p *ListExptInsightAnalysisCommentResponse) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ListExptResultExportRecordResponse) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 1) listBeginOffset := offset offset += thrift.Binary.ListBeginLength() var length int - for _, v := range p.ExptInsightAnalysisFeedbackComments { + for _, v := range p.ExptResultExportRecords { length++ offset += v.FastWriteNocopy(buf[offset:], w) } @@ -19733,7 +19992,7 @@ func (p *ListExptInsightAnalysisCommentResponse) fastWriteField1(buf []byte, w t return offset } -func (p *ListExptInsightAnalysisCommentResponse) fastWriteField20(buf []byte, w thrift.NocopyWriter) int { +func (p *ListExptResultExportRecordResponse) fastWriteField20(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetTotal() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 20) @@ -19742,25 +20001,25 @@ func (p *ListExptInsightAnalysisCommentResponse) fastWriteField20(buf []byte, w return offset } -func (p *ListExptInsightAnalysisCommentResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { +func (p *ListExptResultExportRecordResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ListExptInsightAnalysisCommentResponse) field1Length() int { +func (p *ListExptResultExportRecordResponse) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += thrift.Binary.ListBeginLength() - for _, v := range p.ExptInsightAnalysisFeedbackComments { + for _, v := range p.ExptResultExportRecords { _ = v l += v.BLength() } return l } -func (p *ListExptInsightAnalysisCommentResponse) field20Length() int { +func (p *ListExptResultExportRecordResponse) field20Length() int { l := 0 if p.IsSetTotal() { l += thrift.Binary.FieldBeginLength() @@ -19769,31 +20028,31 @@ func (p *ListExptInsightAnalysisCommentResponse) field20Length() int { return l } -func (p *ListExptInsightAnalysisCommentResponse) field255Length() int { +func (p *ListExptResultExportRecordResponse) field255Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.BaseResp.BLength() return l } -func (p *ListExptInsightAnalysisCommentResponse) DeepCopy(s interface{}) error { - src, ok := s.(*ListExptInsightAnalysisCommentResponse) +func (p *ListExptResultExportRecordResponse) DeepCopy(s interface{}) error { + src, ok := s.(*ListExptResultExportRecordResponse) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - if src.ExptInsightAnalysisFeedbackComments != nil { - p.ExptInsightAnalysisFeedbackComments = make([]*expt.ExptInsightAnalysisFeedbackComment, 0, len(src.ExptInsightAnalysisFeedbackComments)) - for _, elem := range src.ExptInsightAnalysisFeedbackComments { - var _elem *expt.ExptInsightAnalysisFeedbackComment + if src.ExptResultExportRecords != nil { + p.ExptResultExportRecords = make([]*expt.ExptResultExportRecord, 0, len(src.ExptResultExportRecords)) + for _, elem := range src.ExptResultExportRecords { + var _elem *expt.ExptResultExportRecord if elem != nil { - _elem = &expt.ExptInsightAnalysisFeedbackComment{} + _elem = &expt.ExptResultExportRecord{} if err := _elem.DeepCopy(elem); err != nil { return err } } - p.ExptInsightAnalysisFeedbackComments = append(p.ExptInsightAnalysisFeedbackComments, _elem) + p.ExptResultExportRecords = append(p.ExptResultExportRecords, _elem) } } @@ -19814,13 +20073,16 @@ func (p *ListExptInsightAnalysisCommentResponse) DeepCopy(s interface{}) error { return nil } -func (p *GetAnalysisRecordFeedbackVoteRequest) FastRead(buf []byte) (int, error) { +func (p *GetExptResultExportRecordRequest) FastRead(buf []byte) (int, error) { var err error var offset int var l int var fieldTypeId thrift.TType var fieldId int16 + var issetWorkspaceID bool = false + var issetExptID bool = false + var issetExportID bool = false for { fieldTypeId, fieldId, l, err = thrift.Binary.ReadFieldBegin(buf[offset:]) offset += l @@ -19838,6 +20100,7 @@ func (p *GetAnalysisRecordFeedbackVoteRequest) FastRead(buf []byte) (int, error) if err != nil { goto ReadFieldError } + issetWorkspaceID = true } else { l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -19852,6 +20115,7 @@ func (p *GetAnalysisRecordFeedbackVoteRequest) FastRead(buf []byte) (int, error) if err != nil { goto ReadFieldError } + issetExptID = true } else { l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -19859,13 +20123,14 @@ func (p *GetAnalysisRecordFeedbackVoteRequest) FastRead(buf []byte) (int, error) goto SkipFieldError } } - case 3: + case 4: if fieldTypeId == thrift.I64 { - l, err = p.FastReadField3(buf[offset:]) + l, err = p.FastReadField4(buf[offset:]) offset += l if err != nil { goto ReadFieldError } + issetExportID = true } else { l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) offset += l @@ -19910,58 +20175,74 @@ func (p *GetAnalysisRecordFeedbackVoteRequest) FastRead(buf []byte) (int, error) } } + if !issetWorkspaceID { + fieldId = 1 + goto RequiredFieldNotSetError + } + + if !issetExptID { + fieldId = 2 + goto RequiredFieldNotSetError + } + + if !issetExportID { + fieldId = 4 + 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_GetAnalysisRecordFeedbackVoteRequest[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_GetExptResultExportRecordRequest[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_GetExptResultExportRecordRequest[fieldId])) } -func (p *GetAnalysisRecordFeedbackVoteRequest) FastReadField1(buf []byte) (int, error) { +func (p *GetExptResultExportRecordRequest) FastReadField1(buf []byte) (int, error) { offset := 0 - var _field *int64 + var _field int64 if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { return offset, err } else { offset += l - _field = &v + _field = v } p.WorkspaceID = _field return offset, nil } -func (p *GetAnalysisRecordFeedbackVoteRequest) FastReadField2(buf []byte) (int, error) { +func (p *GetExptResultExportRecordRequest) FastReadField2(buf []byte) (int, error) { offset := 0 - var _field *int64 + var _field int64 if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { return offset, err } else { offset += l - _field = &v + _field = v } p.ExptID = _field return offset, nil } -func (p *GetAnalysisRecordFeedbackVoteRequest) FastReadField3(buf []byte) (int, error) { +func (p *GetExptResultExportRecordRequest) FastReadField4(buf []byte) (int, error) { offset := 0 - var _field *int64 + var _field int64 if v, l, err := thrift.Binary.ReadI64(buf[offset:]); err != nil { return offset, err } else { offset += l - _field = &v + _field = v } - p.InsightAnalysisRecordID = _field + p.ExportID = _field return offset, nil } -func (p *GetAnalysisRecordFeedbackVoteRequest) FastReadField200(buf []byte) (int, error) { +func (p *GetExptResultExportRecordRequest) FastReadField200(buf []byte) (int, error) { offset := 0 _field := common.NewSession() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -19973,7 +20254,7 @@ func (p *GetAnalysisRecordFeedbackVoteRequest) FastReadField200(buf []byte) (int return offset, nil } -func (p *GetAnalysisRecordFeedbackVoteRequest) FastReadField255(buf []byte) (int, error) { +func (p *GetExptResultExportRecordRequest) FastReadField255(buf []byte) (int, error) { offset := 0 _field := base.NewBase() if l, err := _field.FastRead(buf[offset:]); err != nil { @@ -19985,16 +20266,16 @@ func (p *GetAnalysisRecordFeedbackVoteRequest) FastReadField255(buf []byte) (int return offset, nil } -func (p *GetAnalysisRecordFeedbackVoteRequest) FastWrite(buf []byte) int { +func (p *GetExptResultExportRecordRequest) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *GetAnalysisRecordFeedbackVoteRequest) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *GetExptResultExportRecordRequest) 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.fastWriteField200(buf[offset:], w) offset += p.fastWriteField255(buf[offset:], w) } @@ -20002,12 +20283,12 @@ func (p *GetAnalysisRecordFeedbackVoteRequest) FastWriteNocopy(buf []byte, w thr return offset } -func (p *GetAnalysisRecordFeedbackVoteRequest) BLength() int { +func (p *GetExptResultExportRecordRequest) BLength() int { l := 0 if p != nil { l += p.field1Length() l += p.field2Length() - l += p.field3Length() + l += p.field4Length() l += p.field200Length() l += p.field255Length() } @@ -20015,139 +20296,5665 @@ func (p *GetAnalysisRecordFeedbackVoteRequest) BLength() int { return l } -func (p *GetAnalysisRecordFeedbackVoteRequest) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *GetExptResultExportRecordRequest) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetWorkspaceID() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) - offset += thrift.Binary.WriteI64(buf[offset:], *p.WorkspaceID) - } + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) + offset += thrift.Binary.WriteI64(buf[offset:], p.WorkspaceID) return offset } -func (p *GetAnalysisRecordFeedbackVoteRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { +func (p *GetExptResultExportRecordRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetExptID() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) - offset += thrift.Binary.WriteI64(buf[offset:], *p.ExptID) - } + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) + offset += thrift.Binary.WriteI64(buf[offset:], p.ExptID) return offset } -func (p *GetAnalysisRecordFeedbackVoteRequest) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { +func (p *GetExptResultExportRecordRequest) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetInsightAnalysisRecordID() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 3) - offset += thrift.Binary.WriteI64(buf[offset:], *p.InsightAnalysisRecordID) - } + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 4) + offset += thrift.Binary.WriteI64(buf[offset:], p.ExportID) return offset } -func (p *GetAnalysisRecordFeedbackVoteRequest) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { +func (p *GetExptResultExportRecordRequest) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSession() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 200) offset += p.Session.FastWriteNocopy(buf[offset:], w) } - return offset + return offset +} + +func (p *GetExptResultExportRecordRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetBase() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.Base.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *GetExptResultExportRecordRequest) field1Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + return l +} + +func (p *GetExptResultExportRecordRequest) field2Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + return l +} + +func (p *GetExptResultExportRecordRequest) field4Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + return l +} + +func (p *GetExptResultExportRecordRequest) field200Length() int { + l := 0 + if p.IsSetSession() { + l += thrift.Binary.FieldBeginLength() + l += p.Session.BLength() + } + return l +} + +func (p *GetExptResultExportRecordRequest) field255Length() int { + l := 0 + if p.IsSetBase() { + l += thrift.Binary.FieldBeginLength() + l += p.Base.BLength() + } + return l +} + +func (p *GetExptResultExportRecordRequest) DeepCopy(s interface{}) error { + src, ok := s.(*GetExptResultExportRecordRequest) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + p.WorkspaceID = src.WorkspaceID + + p.ExptID = src.ExptID + + p.ExportID = src.ExportID + + var _session *common.Session + if src.Session != nil { + _session = &common.Session{} + if err := _session.DeepCopy(src.Session); err != nil { + return err + } + } + p.Session = _session + + var _base *base.Base + if src.Base != nil { + _base = &base.Base{} + if err := _base.DeepCopy(src.Base); err != nil { + return err + } + } + p.Base = _base + + return nil +} + +func (p *GetExptResultExportRecordResponse) 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.STRUCT { + 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 255: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField255(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_GetExptResultExportRecordResponse[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *GetExptResultExportRecordResponse) FastReadField1(buf []byte) (int, error) { + offset := 0 + _field := expt.NewExptResultExportRecord() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.ExptResultExportRecord = _field + return offset, nil +} + +func (p *GetExptResultExportRecordResponse) FastReadField255(buf []byte) (int, error) { + offset := 0 + _field := base.NewBaseResp() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.BaseResp = _field + return offset, nil +} + +func (p *GetExptResultExportRecordResponse) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *GetExptResultExportRecordResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField255(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *GetExptResultExportRecordResponse) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field255Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *GetExptResultExportRecordResponse) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetExptResultExportRecord() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) + offset += p.ExptResultExportRecord.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *GetExptResultExportRecordResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) + return offset +} + +func (p *GetExptResultExportRecordResponse) field1Length() int { + l := 0 + if p.IsSetExptResultExportRecord() { + l += thrift.Binary.FieldBeginLength() + l += p.ExptResultExportRecord.BLength() + } + return l +} + +func (p *GetExptResultExportRecordResponse) field255Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += p.BaseResp.BLength() + return l +} + +func (p *GetExptResultExportRecordResponse) DeepCopy(s interface{}) error { + src, ok := s.(*GetExptResultExportRecordResponse) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + var _exptResultExportRecord *expt.ExptResultExportRecord + if src.ExptResultExportRecord != nil { + _exptResultExportRecord = &expt.ExptResultExportRecord{} + if err := _exptResultExportRecord.DeepCopy(src.ExptResultExportRecord); err != nil { + return err + } + } + p.ExptResultExportRecord = _exptResultExportRecord + + var _baseResp *base.BaseResp + if src.BaseResp != nil { + _baseResp = &base.BaseResp{} + if err := _baseResp.DeepCopy(src.BaseResp); err != nil { + return err + } + } + p.BaseResp = _baseResp + + return nil +} + +func (p *GetExptInsightAnalysisRecordRequest) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + var issetWorkspaceID bool = false + var issetExptID bool = false + var issetInsightAnalysisRecordID 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 + } + issetWorkspaceID = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetExptID = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetInsightAnalysisRecordID = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 200: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField200(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:]) + 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 !issetWorkspaceID { + fieldId = 1 + goto RequiredFieldNotSetError + } + + if !issetExptID { + fieldId = 2 + goto RequiredFieldNotSetError + } + + if !issetInsightAnalysisRecordID { + 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_GetExptInsightAnalysisRecordRequest[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_GetExptInsightAnalysisRecordRequest[fieldId])) +} + +func (p *GetExptInsightAnalysisRecordRequest) 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.WorkspaceID = _field + return offset, nil +} + +func (p *GetExptInsightAnalysisRecordRequest) FastReadField2(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.ExptID = _field + return offset, nil +} + +func (p *GetExptInsightAnalysisRecordRequest) FastReadField3(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.InsightAnalysisRecordID = _field + return offset, nil +} + +func (p *GetExptInsightAnalysisRecordRequest) FastReadField200(buf []byte) (int, error) { + offset := 0 + _field := common.NewSession() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Session = _field + return offset, nil +} + +func (p *GetExptInsightAnalysisRecordRequest) FastReadField255(buf []byte) (int, error) { + offset := 0 + _field := base.NewBase() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Base = _field + return offset, nil +} + +func (p *GetExptInsightAnalysisRecordRequest) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *GetExptInsightAnalysisRecordRequest) 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.fastWriteField200(buf[offset:], w) + offset += p.fastWriteField255(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *GetExptInsightAnalysisRecordRequest) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + l += p.field200Length() + l += p.field255Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *GetExptInsightAnalysisRecordRequest) 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.WorkspaceID) + return offset +} + +func (p *GetExptInsightAnalysisRecordRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) + offset += thrift.Binary.WriteI64(buf[offset:], p.ExptID) + return offset +} + +func (p *GetExptInsightAnalysisRecordRequest) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 3) + offset += thrift.Binary.WriteI64(buf[offset:], p.InsightAnalysisRecordID) + return offset +} + +func (p *GetExptInsightAnalysisRecordRequest) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSession() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 200) + offset += p.Session.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *GetExptInsightAnalysisRecordRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetBase() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.Base.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *GetExptInsightAnalysisRecordRequest) field1Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + return l +} + +func (p *GetExptInsightAnalysisRecordRequest) field2Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + return l +} + +func (p *GetExptInsightAnalysisRecordRequest) field3Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + return l +} + +func (p *GetExptInsightAnalysisRecordRequest) field200Length() int { + l := 0 + if p.IsSetSession() { + l += thrift.Binary.FieldBeginLength() + l += p.Session.BLength() + } + return l +} + +func (p *GetExptInsightAnalysisRecordRequest) field255Length() int { + l := 0 + if p.IsSetBase() { + l += thrift.Binary.FieldBeginLength() + l += p.Base.BLength() + } + return l +} + +func (p *GetExptInsightAnalysisRecordRequest) DeepCopy(s interface{}) error { + src, ok := s.(*GetExptInsightAnalysisRecordRequest) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + p.WorkspaceID = src.WorkspaceID + + p.ExptID = src.ExptID + + p.InsightAnalysisRecordID = src.InsightAnalysisRecordID + + var _session *common.Session + if src.Session != nil { + _session = &common.Session{} + if err := _session.DeepCopy(src.Session); err != nil { + return err + } + } + p.Session = _session + + var _base *base.Base + if src.Base != nil { + _base = &base.Base{} + if err := _base.DeepCopy(src.Base); err != nil { + return err + } + } + p.Base = _base + + return nil +} + +func (p *GetExptInsightAnalysisRecordResponse) 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.STRUCT { + 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 255: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField255(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_GetExptInsightAnalysisRecordResponse[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *GetExptInsightAnalysisRecordResponse) FastReadField1(buf []byte) (int, error) { + offset := 0 + _field := expt.NewExptInsightAnalysisRecord() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.ExptInsightAnalysisRecord = _field + return offset, nil +} + +func (p *GetExptInsightAnalysisRecordResponse) FastReadField255(buf []byte) (int, error) { + offset := 0 + _field := base.NewBaseResp() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.BaseResp = _field + return offset, nil +} + +func (p *GetExptInsightAnalysisRecordResponse) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *GetExptInsightAnalysisRecordResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField255(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *GetExptInsightAnalysisRecordResponse) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field255Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *GetExptInsightAnalysisRecordResponse) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetExptInsightAnalysisRecord() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) + offset += p.ExptInsightAnalysisRecord.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *GetExptInsightAnalysisRecordResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) + return offset +} + +func (p *GetExptInsightAnalysisRecordResponse) field1Length() int { + l := 0 + if p.IsSetExptInsightAnalysisRecord() { + l += thrift.Binary.FieldBeginLength() + l += p.ExptInsightAnalysisRecord.BLength() + } + return l +} + +func (p *GetExptInsightAnalysisRecordResponse) field255Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += p.BaseResp.BLength() + return l +} + +func (p *GetExptInsightAnalysisRecordResponse) DeepCopy(s interface{}) error { + src, ok := s.(*GetExptInsightAnalysisRecordResponse) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + var _exptInsightAnalysisRecord *expt.ExptInsightAnalysisRecord + if src.ExptInsightAnalysisRecord != nil { + _exptInsightAnalysisRecord = &expt.ExptInsightAnalysisRecord{} + if err := _exptInsightAnalysisRecord.DeepCopy(src.ExptInsightAnalysisRecord); err != nil { + return err + } + } + p.ExptInsightAnalysisRecord = _exptInsightAnalysisRecord + + var _baseResp *base.BaseResp + if src.BaseResp != nil { + _baseResp = &base.BaseResp{} + if err := _baseResp.DeepCopy(src.BaseResp); err != nil { + return err + } + } + p.BaseResp = _baseResp + + return nil +} + +func (p *InsightAnalysisExperimentRequest) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + var issetWorkspaceID bool = false + var issetExptID 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 + } + issetWorkspaceID = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetExptID = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 200: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField200(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:]) + 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 !issetWorkspaceID { + fieldId = 1 + goto RequiredFieldNotSetError + } + + if !issetExptID { + 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_InsightAnalysisExperimentRequest[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_InsightAnalysisExperimentRequest[fieldId])) +} + +func (p *InsightAnalysisExperimentRequest) 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.WorkspaceID = _field + return offset, nil +} + +func (p *InsightAnalysisExperimentRequest) FastReadField2(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.ExptID = _field + return offset, nil +} + +func (p *InsightAnalysisExperimentRequest) FastReadField200(buf []byte) (int, error) { + offset := 0 + _field := common.NewSession() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Session = _field + return offset, nil +} + +func (p *InsightAnalysisExperimentRequest) FastReadField255(buf []byte) (int, error) { + offset := 0 + _field := base.NewBase() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Base = _field + return offset, nil +} + +func (p *InsightAnalysisExperimentRequest) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *InsightAnalysisExperimentRequest) 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.fastWriteField200(buf[offset:], w) + offset += p.fastWriteField255(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *InsightAnalysisExperimentRequest) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field200Length() + l += p.field255Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *InsightAnalysisExperimentRequest) 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.WorkspaceID) + return offset +} + +func (p *InsightAnalysisExperimentRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) + offset += thrift.Binary.WriteI64(buf[offset:], p.ExptID) + return offset +} + +func (p *InsightAnalysisExperimentRequest) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSession() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 200) + offset += p.Session.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *InsightAnalysisExperimentRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetBase() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.Base.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *InsightAnalysisExperimentRequest) field1Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + return l +} + +func (p *InsightAnalysisExperimentRequest) field2Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + return l +} + +func (p *InsightAnalysisExperimentRequest) field200Length() int { + l := 0 + if p.IsSetSession() { + l += thrift.Binary.FieldBeginLength() + l += p.Session.BLength() + } + return l +} + +func (p *InsightAnalysisExperimentRequest) field255Length() int { + l := 0 + if p.IsSetBase() { + l += thrift.Binary.FieldBeginLength() + l += p.Base.BLength() + } + return l +} + +func (p *InsightAnalysisExperimentRequest) DeepCopy(s interface{}) error { + src, ok := s.(*InsightAnalysisExperimentRequest) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + p.WorkspaceID = src.WorkspaceID + + p.ExptID = src.ExptID + + var _session *common.Session + if src.Session != nil { + _session = &common.Session{} + if err := _session.DeepCopy(src.Session); err != nil { + return err + } + } + p.Session = _session + + var _base *base.Base + if src.Base != nil { + _base = &base.Base{} + if err := _base.DeepCopy(src.Base); err != nil { + return err + } + } + p.Base = _base + + return nil +} + +func (p *InsightAnalysisExperimentResponse) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + var issetInsightAnalysisRecordID 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 + } + issetInsightAnalysisRecordID = true + } 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:]) + 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 !issetInsightAnalysisRecordID { + 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_InsightAnalysisExperimentResponse[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_InsightAnalysisExperimentResponse[fieldId])) +} + +func (p *InsightAnalysisExperimentResponse) 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.InsightAnalysisRecordID = _field + return offset, nil +} + +func (p *InsightAnalysisExperimentResponse) FastReadField255(buf []byte) (int, error) { + offset := 0 + _field := base.NewBaseResp() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.BaseResp = _field + return offset, nil +} + +func (p *InsightAnalysisExperimentResponse) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *InsightAnalysisExperimentResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField255(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *InsightAnalysisExperimentResponse) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field255Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *InsightAnalysisExperimentResponse) 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.InsightAnalysisRecordID) + return offset +} + +func (p *InsightAnalysisExperimentResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) + return offset +} + +func (p *InsightAnalysisExperimentResponse) field1Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + return l +} + +func (p *InsightAnalysisExperimentResponse) field255Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += p.BaseResp.BLength() + return l +} + +func (p *InsightAnalysisExperimentResponse) DeepCopy(s interface{}) error { + src, ok := s.(*InsightAnalysisExperimentResponse) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + p.InsightAnalysisRecordID = src.InsightAnalysisRecordID + + var _baseResp *base.BaseResp + if src.BaseResp != nil { + _baseResp = &base.BaseResp{} + if err := _baseResp.DeepCopy(src.BaseResp); err != nil { + return err + } + } + p.BaseResp = _baseResp + + return nil +} + +func (p *ListExptInsightAnalysisRecordRequest) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + var issetWorkspaceID bool = false + var issetExptID 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 + } + issetWorkspaceID = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetExptID = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.I32 { + 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.I32 { + 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 200: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField200(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:]) + 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 !issetWorkspaceID { + fieldId = 1 + goto RequiredFieldNotSetError + } + + if !issetExptID { + 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_ListExptInsightAnalysisRecordRequest[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_ListExptInsightAnalysisRecordRequest[fieldId])) +} + +func (p *ListExptInsightAnalysisRecordRequest) 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.WorkspaceID = _field + return offset, nil +} + +func (p *ListExptInsightAnalysisRecordRequest) FastReadField2(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.ExptID = _field + return offset, nil +} + +func (p *ListExptInsightAnalysisRecordRequest) FastReadField3(buf []byte) (int, error) { + offset := 0 + + var _field *int32 + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.PageNumber = _field + return offset, nil +} + +func (p *ListExptInsightAnalysisRecordRequest) FastReadField4(buf []byte) (int, error) { + offset := 0 + + var _field *int32 + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.PageSize = _field + return offset, nil +} + +func (p *ListExptInsightAnalysisRecordRequest) FastReadField200(buf []byte) (int, error) { + offset := 0 + _field := common.NewSession() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Session = _field + return offset, nil +} + +func (p *ListExptInsightAnalysisRecordRequest) FastReadField255(buf []byte) (int, error) { + offset := 0 + _field := base.NewBase() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Base = _field + return offset, nil +} + +func (p *ListExptInsightAnalysisRecordRequest) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ListExptInsightAnalysisRecordRequest) 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.fastWriteField200(buf[offset:], w) + offset += p.fastWriteField255(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ListExptInsightAnalysisRecordRequest) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + l += p.field4Length() + l += p.field200Length() + l += p.field255Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ListExptInsightAnalysisRecordRequest) 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.WorkspaceID) + return offset +} + +func (p *ListExptInsightAnalysisRecordRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) + offset += thrift.Binary.WriteI64(buf[offset:], p.ExptID) + return offset +} + +func (p *ListExptInsightAnalysisRecordRequest) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetPageNumber() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 3) + offset += thrift.Binary.WriteI32(buf[offset:], *p.PageNumber) + } + return offset +} + +func (p *ListExptInsightAnalysisRecordRequest) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetPageSize() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 4) + offset += thrift.Binary.WriteI32(buf[offset:], *p.PageSize) + } + return offset +} + +func (p *ListExptInsightAnalysisRecordRequest) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSession() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 200) + offset += p.Session.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ListExptInsightAnalysisRecordRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetBase() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.Base.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ListExptInsightAnalysisRecordRequest) field1Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + return l +} + +func (p *ListExptInsightAnalysisRecordRequest) field2Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + return l +} + +func (p *ListExptInsightAnalysisRecordRequest) field3Length() int { + l := 0 + if p.IsSetPageNumber() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + } + return l +} + +func (p *ListExptInsightAnalysisRecordRequest) field4Length() int { + l := 0 + if p.IsSetPageSize() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + } + return l +} + +func (p *ListExptInsightAnalysisRecordRequest) field200Length() int { + l := 0 + if p.IsSetSession() { + l += thrift.Binary.FieldBeginLength() + l += p.Session.BLength() + } + return l +} + +func (p *ListExptInsightAnalysisRecordRequest) field255Length() int { + l := 0 + if p.IsSetBase() { + l += thrift.Binary.FieldBeginLength() + l += p.Base.BLength() + } + return l +} + +func (p *ListExptInsightAnalysisRecordRequest) DeepCopy(s interface{}) error { + src, ok := s.(*ListExptInsightAnalysisRecordRequest) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + p.WorkspaceID = src.WorkspaceID + + p.ExptID = src.ExptID + + if src.PageNumber != nil { + tmp := *src.PageNumber + p.PageNumber = &tmp + } + + if src.PageSize != nil { + tmp := *src.PageSize + p.PageSize = &tmp + } + + var _session *common.Session + if src.Session != nil { + _session = &common.Session{} + if err := _session.DeepCopy(src.Session); err != nil { + return err + } + } + p.Session = _session + + var _base *base.Base + if src.Base != nil { + _base = &base.Base{} + if err := _base.DeepCopy(src.Base); err != nil { + return err + } + } + p.Base = _base + + return nil +} + +func (p *ListExptInsightAnalysisRecordResponse) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + var issetExptInsightAnalysisRecords 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.LIST { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetExptInsightAnalysisRecords = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 20: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField20(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:]) + 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 !issetExptInsightAnalysisRecords { + 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_ListExptInsightAnalysisRecordResponse[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_ListExptInsightAnalysisRecordResponse[fieldId])) +} + +func (p *ListExptInsightAnalysisRecordResponse) 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([]*expt.ExptInsightAnalysisRecord, 0, size) + values := make([]expt.ExptInsightAnalysisRecord, 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.ExptInsightAnalysisRecords = _field + return offset, nil +} + +func (p *ListExptInsightAnalysisRecordResponse) FastReadField20(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.Total = _field + return offset, nil +} + +func (p *ListExptInsightAnalysisRecordResponse) FastReadField255(buf []byte) (int, error) { + offset := 0 + _field := base.NewBaseResp() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.BaseResp = _field + return offset, nil +} + +func (p *ListExptInsightAnalysisRecordResponse) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ListExptInsightAnalysisRecordResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField20(buf[offset:], w) + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField255(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ListExptInsightAnalysisRecordResponse) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field20Length() + l += p.field255Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ListExptInsightAnalysisRecordResponse) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 1) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.ExptInsightAnalysisRecords { + length++ + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) + return offset +} + +func (p *ListExptInsightAnalysisRecordResponse) fastWriteField20(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetTotal() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 20) + offset += thrift.Binary.WriteI64(buf[offset:], *p.Total) + } + return offset +} + +func (p *ListExptInsightAnalysisRecordResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) + return offset +} + +func (p *ListExptInsightAnalysisRecordResponse) field1Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.ExptInsightAnalysisRecords { + _ = v + l += v.BLength() + } + return l +} + +func (p *ListExptInsightAnalysisRecordResponse) field20Length() int { + l := 0 + if p.IsSetTotal() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *ListExptInsightAnalysisRecordResponse) field255Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += p.BaseResp.BLength() + return l +} + +func (p *ListExptInsightAnalysisRecordResponse) DeepCopy(s interface{}) error { + src, ok := s.(*ListExptInsightAnalysisRecordResponse) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.ExptInsightAnalysisRecords != nil { + p.ExptInsightAnalysisRecords = make([]*expt.ExptInsightAnalysisRecord, 0, len(src.ExptInsightAnalysisRecords)) + for _, elem := range src.ExptInsightAnalysisRecords { + var _elem *expt.ExptInsightAnalysisRecord + if elem != nil { + _elem = &expt.ExptInsightAnalysisRecord{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.ExptInsightAnalysisRecords = append(p.ExptInsightAnalysisRecords, _elem) + } + } + + if src.Total != nil { + tmp := *src.Total + p.Total = &tmp + } + + var _baseResp *base.BaseResp + if src.BaseResp != nil { + _baseResp = &base.BaseResp{} + if err := _baseResp.DeepCopy(src.BaseResp); err != nil { + return err + } + } + p.BaseResp = _baseResp + + return nil +} + +func (p *DeleteExptInsightAnalysisRecordRequest) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + var issetWorkspaceID bool = false + var issetExptID bool = false + var issetInsightAnalysisRecordID 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 + } + issetWorkspaceID = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetExptID = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetInsightAnalysisRecordID = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 200: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField200(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:]) + 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 !issetWorkspaceID { + fieldId = 1 + goto RequiredFieldNotSetError + } + + if !issetExptID { + fieldId = 2 + goto RequiredFieldNotSetError + } + + if !issetInsightAnalysisRecordID { + 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_DeleteExptInsightAnalysisRecordRequest[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_DeleteExptInsightAnalysisRecordRequest[fieldId])) +} + +func (p *DeleteExptInsightAnalysisRecordRequest) 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.WorkspaceID = _field + return offset, nil +} + +func (p *DeleteExptInsightAnalysisRecordRequest) FastReadField2(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.ExptID = _field + return offset, nil +} + +func (p *DeleteExptInsightAnalysisRecordRequest) FastReadField3(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.InsightAnalysisRecordID = _field + return offset, nil +} + +func (p *DeleteExptInsightAnalysisRecordRequest) FastReadField200(buf []byte) (int, error) { + offset := 0 + _field := common.NewSession() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Session = _field + return offset, nil +} + +func (p *DeleteExptInsightAnalysisRecordRequest) FastReadField255(buf []byte) (int, error) { + offset := 0 + _field := base.NewBase() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Base = _field + return offset, nil +} + +func (p *DeleteExptInsightAnalysisRecordRequest) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *DeleteExptInsightAnalysisRecordRequest) 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.fastWriteField200(buf[offset:], w) + offset += p.fastWriteField255(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *DeleteExptInsightAnalysisRecordRequest) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + l += p.field200Length() + l += p.field255Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *DeleteExptInsightAnalysisRecordRequest) 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.WorkspaceID) + return offset +} + +func (p *DeleteExptInsightAnalysisRecordRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) + offset += thrift.Binary.WriteI64(buf[offset:], p.ExptID) + return offset +} + +func (p *DeleteExptInsightAnalysisRecordRequest) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 3) + offset += thrift.Binary.WriteI64(buf[offset:], p.InsightAnalysisRecordID) + return offset +} + +func (p *DeleteExptInsightAnalysisRecordRequest) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSession() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 200) + offset += p.Session.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *DeleteExptInsightAnalysisRecordRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetBase() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.Base.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *DeleteExptInsightAnalysisRecordRequest) field1Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + return l +} + +func (p *DeleteExptInsightAnalysisRecordRequest) field2Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + return l +} + +func (p *DeleteExptInsightAnalysisRecordRequest) field3Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + return l +} + +func (p *DeleteExptInsightAnalysisRecordRequest) field200Length() int { + l := 0 + if p.IsSetSession() { + l += thrift.Binary.FieldBeginLength() + l += p.Session.BLength() + } + return l +} + +func (p *DeleteExptInsightAnalysisRecordRequest) field255Length() int { + l := 0 + if p.IsSetBase() { + l += thrift.Binary.FieldBeginLength() + l += p.Base.BLength() + } + return l +} + +func (p *DeleteExptInsightAnalysisRecordRequest) DeepCopy(s interface{}) error { + src, ok := s.(*DeleteExptInsightAnalysisRecordRequest) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + p.WorkspaceID = src.WorkspaceID + + p.ExptID = src.ExptID + + p.InsightAnalysisRecordID = src.InsightAnalysisRecordID + + var _session *common.Session + if src.Session != nil { + _session = &common.Session{} + if err := _session.DeepCopy(src.Session); err != nil { + return err + } + } + p.Session = _session + + var _base *base.Base + if src.Base != nil { + _base = &base.Base{} + if err := _base.DeepCopy(src.Base); err != nil { + return err + } + } + p.Base = _base + + return nil +} + +func (p *DeleteExptInsightAnalysisRecordResponse) 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 255: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField255(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_DeleteExptInsightAnalysisRecordResponse[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *DeleteExptInsightAnalysisRecordResponse) FastReadField255(buf []byte) (int, error) { + offset := 0 + _field := base.NewBaseResp() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.BaseResp = _field + return offset, nil +} + +func (p *DeleteExptInsightAnalysisRecordResponse) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *DeleteExptInsightAnalysisRecordResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField255(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *DeleteExptInsightAnalysisRecordResponse) BLength() int { + l := 0 + if p != nil { + l += p.field255Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *DeleteExptInsightAnalysisRecordResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) + return offset +} + +func (p *DeleteExptInsightAnalysisRecordResponse) field255Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += p.BaseResp.BLength() + return l +} + +func (p *DeleteExptInsightAnalysisRecordResponse) DeepCopy(s interface{}) error { + src, ok := s.(*DeleteExptInsightAnalysisRecordResponse) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + var _baseResp *base.BaseResp + if src.BaseResp != nil { + _baseResp = &base.BaseResp{} + if err := _baseResp.DeepCopy(src.BaseResp); err != nil { + return err + } + } + p.BaseResp = _baseResp + + return nil +} + +func (p *FeedbackExptInsightAnalysisReportRequest) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + var issetWorkspaceID bool = false + var issetExptID bool = false + var issetInsightAnalysisRecordID bool = false + var issetFeedbackActionType 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 + } + issetWorkspaceID = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetExptID = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetInsightAnalysisRecordID = true + } 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 + } + issetFeedbackActionType = true + } 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.I64 { + 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 + } + } + case 200: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField200(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:]) + 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 !issetWorkspaceID { + fieldId = 1 + goto RequiredFieldNotSetError + } + + if !issetExptID { + fieldId = 2 + goto RequiredFieldNotSetError + } + + if !issetInsightAnalysisRecordID { + fieldId = 3 + goto RequiredFieldNotSetError + } + + if !issetFeedbackActionType { + fieldId = 4 + 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_FeedbackExptInsightAnalysisReportRequest[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_FeedbackExptInsightAnalysisReportRequest[fieldId])) +} + +func (p *FeedbackExptInsightAnalysisReportRequest) 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.WorkspaceID = _field + return offset, nil +} + +func (p *FeedbackExptInsightAnalysisReportRequest) FastReadField2(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.ExptID = _field + return offset, nil +} + +func (p *FeedbackExptInsightAnalysisReportRequest) FastReadField3(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.InsightAnalysisRecordID = _field + return offset, nil +} + +func (p *FeedbackExptInsightAnalysisReportRequest) FastReadField4(buf []byte) (int, error) { + offset := 0 + + var _field expt.FeedbackActionType + if v, l, err := thrift.Binary.ReadString(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = v + } + p.FeedbackActionType = _field + return offset, nil +} + +func (p *FeedbackExptInsightAnalysisReportRequest) FastReadField5(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.Comment = _field + return offset, nil +} + +func (p *FeedbackExptInsightAnalysisReportRequest) FastReadField6(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.CommentID = _field + return offset, nil +} + +func (p *FeedbackExptInsightAnalysisReportRequest) FastReadField200(buf []byte) (int, error) { + offset := 0 + _field := common.NewSession() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Session = _field + return offset, nil +} + +func (p *FeedbackExptInsightAnalysisReportRequest) FastReadField255(buf []byte) (int, error) { + offset := 0 + _field := base.NewBase() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Base = _field + return offset, nil +} + +func (p *FeedbackExptInsightAnalysisReportRequest) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *FeedbackExptInsightAnalysisReportRequest) 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.fastWriteField6(buf[offset:], w) + offset += p.fastWriteField4(buf[offset:], w) + offset += p.fastWriteField5(buf[offset:], w) + offset += p.fastWriteField200(buf[offset:], w) + offset += p.fastWriteField255(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *FeedbackExptInsightAnalysisReportRequest) 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 += p.field200Length() + l += p.field255Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *FeedbackExptInsightAnalysisReportRequest) 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.WorkspaceID) + return offset +} + +func (p *FeedbackExptInsightAnalysisReportRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) + offset += thrift.Binary.WriteI64(buf[offset:], p.ExptID) + return offset +} + +func (p *FeedbackExptInsightAnalysisReportRequest) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 3) + offset += thrift.Binary.WriteI64(buf[offset:], p.InsightAnalysisRecordID) + return offset +} + +func (p *FeedbackExptInsightAnalysisReportRequest) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 4) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, p.FeedbackActionType) + return offset +} + +func (p *FeedbackExptInsightAnalysisReportRequest) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetComment() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRING, 5) + offset += thrift.Binary.WriteStringNocopy(buf[offset:], w, *p.Comment) + } + return offset +} + +func (p *FeedbackExptInsightAnalysisReportRequest) fastWriteField6(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetCommentID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 6) + offset += thrift.Binary.WriteI64(buf[offset:], *p.CommentID) + } + return offset +} + +func (p *FeedbackExptInsightAnalysisReportRequest) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSession() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 200) + offset += p.Session.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *FeedbackExptInsightAnalysisReportRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetBase() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.Base.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *FeedbackExptInsightAnalysisReportRequest) field1Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + return l +} + +func (p *FeedbackExptInsightAnalysisReportRequest) field2Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + return l +} + +func (p *FeedbackExptInsightAnalysisReportRequest) field3Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + return l +} + +func (p *FeedbackExptInsightAnalysisReportRequest) field4Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(p.FeedbackActionType) + return l +} + +func (p *FeedbackExptInsightAnalysisReportRequest) field5Length() int { + l := 0 + if p.IsSetComment() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.StringLengthNocopy(*p.Comment) + } + return l +} + +func (p *FeedbackExptInsightAnalysisReportRequest) field6Length() int { + l := 0 + if p.IsSetCommentID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *FeedbackExptInsightAnalysisReportRequest) field200Length() int { + l := 0 + if p.IsSetSession() { + l += thrift.Binary.FieldBeginLength() + l += p.Session.BLength() + } + return l +} + +func (p *FeedbackExptInsightAnalysisReportRequest) field255Length() int { + l := 0 + if p.IsSetBase() { + l += thrift.Binary.FieldBeginLength() + l += p.Base.BLength() + } + return l +} + +func (p *FeedbackExptInsightAnalysisReportRequest) DeepCopy(s interface{}) error { + src, ok := s.(*FeedbackExptInsightAnalysisReportRequest) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + p.WorkspaceID = src.WorkspaceID + + p.ExptID = src.ExptID + + p.InsightAnalysisRecordID = src.InsightAnalysisRecordID + + p.FeedbackActionType = src.FeedbackActionType + + if src.Comment != nil { + var tmp string + if *src.Comment != "" { + tmp = kutils.StringDeepCopy(*src.Comment) + } + p.Comment = &tmp + } + + if src.CommentID != nil { + tmp := *src.CommentID + p.CommentID = &tmp + } + + var _session *common.Session + if src.Session != nil { + _session = &common.Session{} + if err := _session.DeepCopy(src.Session); err != nil { + return err + } + } + p.Session = _session + + var _base *base.Base + if src.Base != nil { + _base = &base.Base{} + if err := _base.DeepCopy(src.Base); err != nil { + return err + } + } + p.Base = _base + + return nil +} + +func (p *FeedbackExptInsightAnalysisReportResponse) 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 255: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField255(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_FeedbackExptInsightAnalysisReportResponse[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *FeedbackExptInsightAnalysisReportResponse) FastReadField255(buf []byte) (int, error) { + offset := 0 + _field := base.NewBaseResp() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.BaseResp = _field + return offset, nil +} + +func (p *FeedbackExptInsightAnalysisReportResponse) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *FeedbackExptInsightAnalysisReportResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField255(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *FeedbackExptInsightAnalysisReportResponse) BLength() int { + l := 0 + if p != nil { + l += p.field255Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *FeedbackExptInsightAnalysisReportResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) + return offset +} + +func (p *FeedbackExptInsightAnalysisReportResponse) field255Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += p.BaseResp.BLength() + return l +} + +func (p *FeedbackExptInsightAnalysisReportResponse) DeepCopy(s interface{}) error { + src, ok := s.(*FeedbackExptInsightAnalysisReportResponse) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + var _baseResp *base.BaseResp + if src.BaseResp != nil { + _baseResp = &base.BaseResp{} + if err := _baseResp.DeepCopy(src.BaseResp); err != nil { + return err + } + } + p.BaseResp = _baseResp + + return nil +} + +func (p *ListExptInsightAnalysisCommentRequest) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + var issetWorkspaceID bool = false + var issetExptID bool = false + var issetInsightAnalysisRecordID 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 + } + issetWorkspaceID = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 2: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField2(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetExptID = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 3: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField3(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetInsightAnalysisRecordID = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 4: + if fieldTypeId == thrift.I32 { + 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.I32 { + 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 200: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField200(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:]) + 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 !issetWorkspaceID { + fieldId = 1 + goto RequiredFieldNotSetError + } + + if !issetExptID { + fieldId = 2 + goto RequiredFieldNotSetError + } + + if !issetInsightAnalysisRecordID { + 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_ListExptInsightAnalysisCommentRequest[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_ListExptInsightAnalysisCommentRequest[fieldId])) +} + +func (p *ListExptInsightAnalysisCommentRequest) 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.WorkspaceID = _field + return offset, nil +} + +func (p *ListExptInsightAnalysisCommentRequest) FastReadField2(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.ExptID = _field + return offset, nil +} + +func (p *ListExptInsightAnalysisCommentRequest) FastReadField3(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.InsightAnalysisRecordID = _field + return offset, nil +} + +func (p *ListExptInsightAnalysisCommentRequest) FastReadField4(buf []byte) (int, error) { + offset := 0 + + var _field *int32 + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.PageNumber = _field + return offset, nil +} + +func (p *ListExptInsightAnalysisCommentRequest) FastReadField5(buf []byte) (int, error) { + offset := 0 + + var _field *int32 + if v, l, err := thrift.Binary.ReadI32(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + _field = &v + } + p.PageSize = _field + return offset, nil +} + +func (p *ListExptInsightAnalysisCommentRequest) FastReadField200(buf []byte) (int, error) { + offset := 0 + _field := common.NewSession() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Session = _field + return offset, nil +} + +func (p *ListExptInsightAnalysisCommentRequest) FastReadField255(buf []byte) (int, error) { + offset := 0 + _field := base.NewBase() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Base = _field + return offset, nil +} + +func (p *ListExptInsightAnalysisCommentRequest) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ListExptInsightAnalysisCommentRequest) 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.fastWriteField200(buf[offset:], w) + offset += p.fastWriteField255(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ListExptInsightAnalysisCommentRequest) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + l += p.field4Length() + l += p.field5Length() + l += p.field200Length() + l += p.field255Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ListExptInsightAnalysisCommentRequest) 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.WorkspaceID) + return offset +} + +func (p *ListExptInsightAnalysisCommentRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) + offset += thrift.Binary.WriteI64(buf[offset:], p.ExptID) + return offset +} + +func (p *ListExptInsightAnalysisCommentRequest) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 3) + offset += thrift.Binary.WriteI64(buf[offset:], p.InsightAnalysisRecordID) + return offset +} + +func (p *ListExptInsightAnalysisCommentRequest) fastWriteField4(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetPageNumber() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 4) + offset += thrift.Binary.WriteI32(buf[offset:], *p.PageNumber) + } + return offset +} + +func (p *ListExptInsightAnalysisCommentRequest) fastWriteField5(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetPageSize() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I32, 5) + offset += thrift.Binary.WriteI32(buf[offset:], *p.PageSize) + } + return offset +} + +func (p *ListExptInsightAnalysisCommentRequest) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSession() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 200) + offset += p.Session.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ListExptInsightAnalysisCommentRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetBase() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.Base.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ListExptInsightAnalysisCommentRequest) field1Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + return l +} + +func (p *ListExptInsightAnalysisCommentRequest) field2Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + return l +} + +func (p *ListExptInsightAnalysisCommentRequest) field3Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + return l +} + +func (p *ListExptInsightAnalysisCommentRequest) field4Length() int { + l := 0 + if p.IsSetPageNumber() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + } + return l +} + +func (p *ListExptInsightAnalysisCommentRequest) field5Length() int { + l := 0 + if p.IsSetPageSize() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I32Length() + } + return l +} + +func (p *ListExptInsightAnalysisCommentRequest) field200Length() int { + l := 0 + if p.IsSetSession() { + l += thrift.Binary.FieldBeginLength() + l += p.Session.BLength() + } + return l +} + +func (p *ListExptInsightAnalysisCommentRequest) field255Length() int { + l := 0 + if p.IsSetBase() { + l += thrift.Binary.FieldBeginLength() + l += p.Base.BLength() + } + return l +} + +func (p *ListExptInsightAnalysisCommentRequest) DeepCopy(s interface{}) error { + src, ok := s.(*ListExptInsightAnalysisCommentRequest) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + p.WorkspaceID = src.WorkspaceID + + p.ExptID = src.ExptID + + p.InsightAnalysisRecordID = src.InsightAnalysisRecordID + + if src.PageNumber != nil { + tmp := *src.PageNumber + p.PageNumber = &tmp + } + + if src.PageSize != nil { + tmp := *src.PageSize + p.PageSize = &tmp + } + + var _session *common.Session + if src.Session != nil { + _session = &common.Session{} + if err := _session.DeepCopy(src.Session); err != nil { + return err + } + } + p.Session = _session + + var _base *base.Base + if src.Base != nil { + _base = &base.Base{} + if err := _base.DeepCopy(src.Base); err != nil { + return err + } + } + p.Base = _base + + return nil +} + +func (p *ListExptInsightAnalysisCommentResponse) FastRead(buf []byte) (int, error) { + + var err error + var offset int + var l int + var fieldTypeId thrift.TType + var fieldId int16 + var issetExptInsightAnalysisFeedbackComments 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.LIST { + l, err = p.FastReadField1(buf[offset:]) + offset += l + if err != nil { + goto ReadFieldError + } + issetExptInsightAnalysisFeedbackComments = true + } else { + l, err = thrift.Binary.Skip(buf[offset:], fieldTypeId) + offset += l + if err != nil { + goto SkipFieldError + } + } + case 20: + if fieldTypeId == thrift.I64 { + l, err = p.FastReadField20(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:]) + 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 !issetExptInsightAnalysisFeedbackComments { + 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_ListExptInsightAnalysisCommentResponse[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_ListExptInsightAnalysisCommentResponse[fieldId])) +} + +func (p *ListExptInsightAnalysisCommentResponse) 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([]*expt.ExptInsightAnalysisFeedbackComment, 0, size) + values := make([]expt.ExptInsightAnalysisFeedbackComment, 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.ExptInsightAnalysisFeedbackComments = _field + return offset, nil +} + +func (p *ListExptInsightAnalysisCommentResponse) FastReadField20(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.Total = _field + return offset, nil +} + +func (p *ListExptInsightAnalysisCommentResponse) FastReadField255(buf []byte) (int, error) { + offset := 0 + _field := base.NewBaseResp() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.BaseResp = _field + return offset, nil +} + +func (p *ListExptInsightAnalysisCommentResponse) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ListExptInsightAnalysisCommentResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField20(buf[offset:], w) + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField255(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ListExptInsightAnalysisCommentResponse) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field20Length() + l += p.field255Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ListExptInsightAnalysisCommentResponse) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.LIST, 1) + listBeginOffset := offset + offset += thrift.Binary.ListBeginLength() + var length int + for _, v := range p.ExptInsightAnalysisFeedbackComments { + length++ + offset += v.FastWriteNocopy(buf[offset:], w) + } + thrift.Binary.WriteListBegin(buf[listBeginOffset:], thrift.STRUCT, length) + return offset +} + +func (p *ListExptInsightAnalysisCommentResponse) fastWriteField20(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetTotal() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 20) + offset += thrift.Binary.WriteI64(buf[offset:], *p.Total) + } + return offset +} + +func (p *ListExptInsightAnalysisCommentResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) + return offset +} + +func (p *ListExptInsightAnalysisCommentResponse) field1Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.ListBeginLength() + for _, v := range p.ExptInsightAnalysisFeedbackComments { + _ = v + l += v.BLength() + } + return l +} + +func (p *ListExptInsightAnalysisCommentResponse) field20Length() int { + l := 0 + if p.IsSetTotal() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *ListExptInsightAnalysisCommentResponse) field255Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += p.BaseResp.BLength() + return l +} + +func (p *ListExptInsightAnalysisCommentResponse) DeepCopy(s interface{}) error { + src, ok := s.(*ListExptInsightAnalysisCommentResponse) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.ExptInsightAnalysisFeedbackComments != nil { + p.ExptInsightAnalysisFeedbackComments = make([]*expt.ExptInsightAnalysisFeedbackComment, 0, len(src.ExptInsightAnalysisFeedbackComments)) + for _, elem := range src.ExptInsightAnalysisFeedbackComments { + var _elem *expt.ExptInsightAnalysisFeedbackComment + if elem != nil { + _elem = &expt.ExptInsightAnalysisFeedbackComment{} + if err := _elem.DeepCopy(elem); err != nil { + return err + } + } + + p.ExptInsightAnalysisFeedbackComments = append(p.ExptInsightAnalysisFeedbackComments, _elem) + } + } + + if src.Total != nil { + tmp := *src.Total + p.Total = &tmp + } + + var _baseResp *base.BaseResp + if src.BaseResp != nil { + _baseResp = &base.BaseResp{} + if err := _baseResp.DeepCopy(src.BaseResp); err != nil { + return err + } + } + p.BaseResp = _baseResp + + return nil +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) 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.I64 { + 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.I64 { + 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.I64 { + 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 200: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField200(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:]) + 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_GetAnalysisRecordFeedbackVoteRequest[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) 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.WorkspaceID = _field + return offset, nil +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) FastReadField2(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.ExptID = _field + return offset, nil +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) FastReadField3(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.InsightAnalysisRecordID = _field + return offset, nil +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) FastReadField200(buf []byte) (int, error) { + offset := 0 + _field := common.NewSession() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Session = _field + return offset, nil +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) FastReadField255(buf []byte) (int, error) { + offset := 0 + _field := base.NewBase() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Base = _field + return offset, nil +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) 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.fastWriteField200(buf[offset:], w) + offset += p.fastWriteField255(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field2Length() + l += p.field3Length() + l += p.field200Length() + l += p.field255Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetWorkspaceID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 1) + offset += thrift.Binary.WriteI64(buf[offset:], *p.WorkspaceID) + } + return offset +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) fastWriteField2(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetExptID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 2) + offset += thrift.Binary.WriteI64(buf[offset:], *p.ExptID) + } + return offset +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) fastWriteField3(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetInsightAnalysisRecordID() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.I64, 3) + offset += thrift.Binary.WriteI64(buf[offset:], *p.InsightAnalysisRecordID) + } + return offset +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) fastWriteField200(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSession() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 200) + offset += p.Session.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetBase() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.Base.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) field1Length() int { + l := 0 + if p.IsSetWorkspaceID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) field2Length() int { + l := 0 + if p.IsSetExptID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) field3Length() int { + l := 0 + if p.IsSetInsightAnalysisRecordID() { + l += thrift.Binary.FieldBeginLength() + l += thrift.Binary.I64Length() + } + return l +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) field200Length() int { + l := 0 + if p.IsSetSession() { + l += thrift.Binary.FieldBeginLength() + l += p.Session.BLength() + } + return l +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) field255Length() int { + l := 0 + if p.IsSetBase() { + l += thrift.Binary.FieldBeginLength() + l += p.Base.BLength() + } + return l +} + +func (p *GetAnalysisRecordFeedbackVoteRequest) DeepCopy(s interface{}) error { + src, ok := s.(*GetAnalysisRecordFeedbackVoteRequest) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + if src.WorkspaceID != nil { + tmp := *src.WorkspaceID + p.WorkspaceID = &tmp + } + + if src.ExptID != nil { + tmp := *src.ExptID + p.ExptID = &tmp + } + + if src.InsightAnalysisRecordID != nil { + tmp := *src.InsightAnalysisRecordID + p.InsightAnalysisRecordID = &tmp + } + + var _session *common.Session + if src.Session != nil { + _session = &common.Session{} + if err := _session.DeepCopy(src.Session); err != nil { + return err + } + } + p.Session = _session + + var _base *base.Base + if src.Base != nil { + _base = &base.Base{} + if err := _base.DeepCopy(src.Base); err != nil { + return err + } + } + p.Base = _base + + return nil +} + +func (p *GetAnalysisRecordFeedbackVoteResponse) 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.STRUCT { + 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 255: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField255(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_GetAnalysisRecordFeedbackVoteResponse[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *GetAnalysisRecordFeedbackVoteResponse) FastReadField1(buf []byte) (int, error) { + offset := 0 + _field := expt.NewExptInsightAnalysisFeedbackVote() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Vote = _field + return offset, nil +} + +func (p *GetAnalysisRecordFeedbackVoteResponse) FastReadField255(buf []byte) (int, error) { + offset := 0 + _field := base.NewBaseResp() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.BaseResp = _field + return offset, nil +} + +func (p *GetAnalysisRecordFeedbackVoteResponse) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *GetAnalysisRecordFeedbackVoteResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) + offset += p.fastWriteField255(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *GetAnalysisRecordFeedbackVoteResponse) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + l += p.field255Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *GetAnalysisRecordFeedbackVoteResponse) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetVote() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) + offset += p.Vote.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *GetAnalysisRecordFeedbackVoteResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) + offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) + return offset +} + +func (p *GetAnalysisRecordFeedbackVoteResponse) field1Length() int { + l := 0 + if p.IsSetVote() { + l += thrift.Binary.FieldBeginLength() + l += p.Vote.BLength() + } + return l +} + +func (p *GetAnalysisRecordFeedbackVoteResponse) field255Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += p.BaseResp.BLength() + return l +} + +func (p *GetAnalysisRecordFeedbackVoteResponse) DeepCopy(s interface{}) error { + src, ok := s.(*GetAnalysisRecordFeedbackVoteResponse) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + var _vote *expt.ExptInsightAnalysisFeedbackVote + if src.Vote != nil { + _vote = &expt.ExptInsightAnalysisFeedbackVote{} + if err := _vote.DeepCopy(src.Vote); err != nil { + return err + } + } + p.Vote = _vote + + var _baseResp *base.BaseResp + if src.BaseResp != nil { + _baseResp = &base.BaseResp{} + if err := _baseResp.DeepCopy(src.BaseResp); err != nil { + return err + } + } + p.BaseResp = _baseResp + + return nil +} + +func (p *ExperimentServiceCheckExperimentNameArgs) 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.STRUCT { + 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 + } + } + 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_ExperimentServiceCheckExperimentNameArgs[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ExperimentServiceCheckExperimentNameArgs) FastReadField1(buf []byte) (int, error) { + offset := 0 + _field := NewCheckExperimentNameRequest() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Req = _field + return offset, nil +} + +func (p *ExperimentServiceCheckExperimentNameArgs) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ExperimentServiceCheckExperimentNameArgs) 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 *ExperimentServiceCheckExperimentNameArgs) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ExperimentServiceCheckExperimentNameArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) + offset += p.Req.FastWriteNocopy(buf[offset:], w) + return offset +} + +func (p *ExperimentServiceCheckExperimentNameArgs) field1Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += p.Req.BLength() + return l +} + +func (p *ExperimentServiceCheckExperimentNameArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceCheckExperimentNameArgs) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + var _req *CheckExperimentNameRequest + if src.Req != nil { + _req = &CheckExperimentNameRequest{} + if err := _req.DeepCopy(src.Req); err != nil { + return err + } + } + p.Req = _req + + return nil +} + +func (p *ExperimentServiceCheckExperimentNameResult) 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 0: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField0(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_ExperimentServiceCheckExperimentNameResult[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ExperimentServiceCheckExperimentNameResult) FastReadField0(buf []byte) (int, error) { + offset := 0 + _field := NewCheckExperimentNameResponse() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Success = _field + return offset, nil +} + +func (p *ExperimentServiceCheckExperimentNameResult) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ExperimentServiceCheckExperimentNameResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField0(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ExperimentServiceCheckExperimentNameResult) BLength() int { + l := 0 + if p != nil { + l += p.field0Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ExperimentServiceCheckExperimentNameResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSuccess() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) + offset += p.Success.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ExperimentServiceCheckExperimentNameResult) field0Length() int { + l := 0 + if p.IsSetSuccess() { + l += thrift.Binary.FieldBeginLength() + l += p.Success.BLength() + } + return l +} + +func (p *ExperimentServiceCheckExperimentNameResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceCheckExperimentNameResult) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + var _success *CheckExperimentNameResponse + if src.Success != nil { + _success = &CheckExperimentNameResponse{} + if err := _success.DeepCopy(src.Success); err != nil { + return err + } + } + p.Success = _success + + return nil +} + +func (p *ExperimentServiceCreateExperimentArgs) 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.STRUCT { + 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 + } + } + 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_ExperimentServiceCreateExperimentArgs[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ExperimentServiceCreateExperimentArgs) FastReadField1(buf []byte) (int, error) { + offset := 0 + _field := NewCreateExperimentRequest() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Req = _field + return offset, nil +} + +func (p *ExperimentServiceCreateExperimentArgs) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ExperimentServiceCreateExperimentArgs) 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 *ExperimentServiceCreateExperimentArgs) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ExperimentServiceCreateExperimentArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) + offset += p.Req.FastWriteNocopy(buf[offset:], w) + return offset +} + +func (p *ExperimentServiceCreateExperimentArgs) field1Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += p.Req.BLength() + return l +} + +func (p *ExperimentServiceCreateExperimentArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceCreateExperimentArgs) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + var _req *CreateExperimentRequest + if src.Req != nil { + _req = &CreateExperimentRequest{} + if err := _req.DeepCopy(src.Req); err != nil { + return err + } + } + p.Req = _req + + return nil +} + +func (p *ExperimentServiceCreateExperimentResult) 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 0: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField0(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_ExperimentServiceCreateExperimentResult[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ExperimentServiceCreateExperimentResult) FastReadField0(buf []byte) (int, error) { + offset := 0 + _field := NewCreateExperimentResponse() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Success = _field + return offset, nil +} + +func (p *ExperimentServiceCreateExperimentResult) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ExperimentServiceCreateExperimentResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField0(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ExperimentServiceCreateExperimentResult) BLength() int { + l := 0 + if p != nil { + l += p.field0Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ExperimentServiceCreateExperimentResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSuccess() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) + offset += p.Success.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ExperimentServiceCreateExperimentResult) field0Length() int { + l := 0 + if p.IsSetSuccess() { + l += thrift.Binary.FieldBeginLength() + l += p.Success.BLength() + } + return l +} + +func (p *ExperimentServiceCreateExperimentResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceCreateExperimentResult) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + var _success *CreateExperimentResponse + if src.Success != nil { + _success = &CreateExperimentResponse{} + if err := _success.DeepCopy(src.Success); err != nil { + return err + } + } + p.Success = _success + + return nil +} + +func (p *ExperimentServiceSubmitExperimentArgs) 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.STRUCT { + 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 + } + } + 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_ExperimentServiceSubmitExperimentArgs[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ExperimentServiceSubmitExperimentArgs) FastReadField1(buf []byte) (int, error) { + offset := 0 + _field := NewSubmitExperimentRequest() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Req = _field + return offset, nil +} + +func (p *ExperimentServiceSubmitExperimentArgs) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ExperimentServiceSubmitExperimentArgs) 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 *ExperimentServiceSubmitExperimentArgs) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ExperimentServiceSubmitExperimentArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) + offset += p.Req.FastWriteNocopy(buf[offset:], w) + return offset +} + +func (p *ExperimentServiceSubmitExperimentArgs) field1Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += p.Req.BLength() + return l +} + +func (p *ExperimentServiceSubmitExperimentArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceSubmitExperimentArgs) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + var _req *SubmitExperimentRequest + if src.Req != nil { + _req = &SubmitExperimentRequest{} + if err := _req.DeepCopy(src.Req); err != nil { + return err + } + } + p.Req = _req + + return nil +} + +func (p *ExperimentServiceSubmitExperimentResult) 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 0: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField0(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_ExperimentServiceSubmitExperimentResult[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ExperimentServiceSubmitExperimentResult) FastReadField0(buf []byte) (int, error) { + offset := 0 + _field := NewSubmitExperimentResponse() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Success = _field + return offset, nil +} + +func (p *ExperimentServiceSubmitExperimentResult) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ExperimentServiceSubmitExperimentResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField0(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ExperimentServiceSubmitExperimentResult) BLength() int { + l := 0 + if p != nil { + l += p.field0Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ExperimentServiceSubmitExperimentResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSuccess() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) + offset += p.Success.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ExperimentServiceSubmitExperimentResult) field0Length() int { + l := 0 + if p.IsSetSuccess() { + l += thrift.Binary.FieldBeginLength() + l += p.Success.BLength() + } + return l +} + +func (p *ExperimentServiceSubmitExperimentResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceSubmitExperimentResult) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + var _success *SubmitExperimentResponse + if src.Success != nil { + _success = &SubmitExperimentResponse{} + if err := _success.DeepCopy(src.Success); err != nil { + return err + } + } + p.Success = _success + + return nil +} + +func (p *ExperimentServiceBatchGetExperimentsArgs) 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.STRUCT { + 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 + } + } + 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_ExperimentServiceBatchGetExperimentsArgs[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ExperimentServiceBatchGetExperimentsArgs) FastReadField1(buf []byte) (int, error) { + offset := 0 + _field := NewBatchGetExperimentsRequest() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Req = _field + return offset, nil +} + +func (p *ExperimentServiceBatchGetExperimentsArgs) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ExperimentServiceBatchGetExperimentsArgs) 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 *ExperimentServiceBatchGetExperimentsArgs) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ExperimentServiceBatchGetExperimentsArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) + offset += p.Req.FastWriteNocopy(buf[offset:], w) + return offset +} + +func (p *ExperimentServiceBatchGetExperimentsArgs) field1Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += p.Req.BLength() + return l +} + +func (p *ExperimentServiceBatchGetExperimentsArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceBatchGetExperimentsArgs) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + var _req *BatchGetExperimentsRequest + if src.Req != nil { + _req = &BatchGetExperimentsRequest{} + if err := _req.DeepCopy(src.Req); err != nil { + return err + } + } + p.Req = _req + + return nil +} + +func (p *ExperimentServiceBatchGetExperimentsResult) 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 0: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField0(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_ExperimentServiceBatchGetExperimentsResult[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ExperimentServiceBatchGetExperimentsResult) FastReadField0(buf []byte) (int, error) { + offset := 0 + _field := NewBatchGetExperimentsResponse() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Success = _field + return offset, nil +} + +func (p *ExperimentServiceBatchGetExperimentsResult) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ExperimentServiceBatchGetExperimentsResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField0(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ExperimentServiceBatchGetExperimentsResult) BLength() int { + l := 0 + if p != nil { + l += p.field0Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ExperimentServiceBatchGetExperimentsResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSuccess() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) + offset += p.Success.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ExperimentServiceBatchGetExperimentsResult) field0Length() int { + l := 0 + if p.IsSetSuccess() { + l += thrift.Binary.FieldBeginLength() + l += p.Success.BLength() + } + return l +} + +func (p *ExperimentServiceBatchGetExperimentsResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceBatchGetExperimentsResult) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + var _success *BatchGetExperimentsResponse + if src.Success != nil { + _success = &BatchGetExperimentsResponse{} + if err := _success.DeepCopy(src.Success); err != nil { + return err + } + } + p.Success = _success + + return nil +} + +func (p *ExperimentServiceListExperimentsArgs) 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.STRUCT { + 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 + } + } + 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_ExperimentServiceListExperimentsArgs[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ExperimentServiceListExperimentsArgs) FastReadField1(buf []byte) (int, error) { + offset := 0 + _field := NewListExperimentsRequest() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Req = _field + return offset, nil +} + +func (p *ExperimentServiceListExperimentsArgs) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ExperimentServiceListExperimentsArgs) 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 *ExperimentServiceListExperimentsArgs) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ExperimentServiceListExperimentsArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) + offset += p.Req.FastWriteNocopy(buf[offset:], w) + return offset +} + +func (p *ExperimentServiceListExperimentsArgs) field1Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += p.Req.BLength() + return l +} + +func (p *ExperimentServiceListExperimentsArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceListExperimentsArgs) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + var _req *ListExperimentsRequest + if src.Req != nil { + _req = &ListExperimentsRequest{} + if err := _req.DeepCopy(src.Req); err != nil { + return err + } + } + p.Req = _req + + return nil +} + +func (p *ExperimentServiceListExperimentsResult) 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 0: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField0(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_ExperimentServiceListExperimentsResult[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ExperimentServiceListExperimentsResult) FastReadField0(buf []byte) (int, error) { + offset := 0 + _field := NewListExperimentsResponse() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Success = _field + return offset, nil +} + +func (p *ExperimentServiceListExperimentsResult) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ExperimentServiceListExperimentsResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField0(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ExperimentServiceListExperimentsResult) BLength() int { + l := 0 + if p != nil { + l += p.field0Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ExperimentServiceListExperimentsResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSuccess() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) + offset += p.Success.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ExperimentServiceListExperimentsResult) field0Length() int { + l := 0 + if p.IsSetSuccess() { + l += thrift.Binary.FieldBeginLength() + l += p.Success.BLength() + } + return l +} + +func (p *ExperimentServiceListExperimentsResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceListExperimentsResult) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + var _success *ListExperimentsResponse + if src.Success != nil { + _success = &ListExperimentsResponse{} + if err := _success.DeepCopy(src.Success); err != nil { + return err + } + } + p.Success = _success + + return nil +} + +func (p *ExperimentServiceUpdateExperimentArgs) 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.STRUCT { + 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 + } + } + 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_ExperimentServiceUpdateExperimentArgs[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ExperimentServiceUpdateExperimentArgs) FastReadField1(buf []byte) (int, error) { + offset := 0 + _field := NewUpdateExperimentRequest() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Req = _field + return offset, nil +} + +func (p *ExperimentServiceUpdateExperimentArgs) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ExperimentServiceUpdateExperimentArgs) 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 *ExperimentServiceUpdateExperimentArgs) BLength() int { + l := 0 + if p != nil { + l += p.field1Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ExperimentServiceUpdateExperimentArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) + offset += p.Req.FastWriteNocopy(buf[offset:], w) + return offset +} + +func (p *ExperimentServiceUpdateExperimentArgs) field1Length() int { + l := 0 + l += thrift.Binary.FieldBeginLength() + l += p.Req.BLength() + return l +} + +func (p *ExperimentServiceUpdateExperimentArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceUpdateExperimentArgs) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + var _req *UpdateExperimentRequest + if src.Req != nil { + _req = &UpdateExperimentRequest{} + if err := _req.DeepCopy(src.Req); err != nil { + return err + } + } + p.Req = _req + + return nil +} + +func (p *ExperimentServiceUpdateExperimentResult) 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 0: + if fieldTypeId == thrift.STRUCT { + l, err = p.FastReadField0(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_ExperimentServiceUpdateExperimentResult[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) +} + +func (p *ExperimentServiceUpdateExperimentResult) FastReadField0(buf []byte) (int, error) { + offset := 0 + _field := NewUpdateExperimentResponse() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l + } + p.Success = _field + return offset, nil +} + +func (p *ExperimentServiceUpdateExperimentResult) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) +} + +func (p *ExperimentServiceUpdateExperimentResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField0(buf[offset:], w) + } + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset +} + +func (p *ExperimentServiceUpdateExperimentResult) BLength() int { + l := 0 + if p != nil { + l += p.field0Length() + } + l += thrift.Binary.FieldStopLength() + return l +} + +func (p *ExperimentServiceUpdateExperimentResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p.IsSetSuccess() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) + offset += p.Success.FastWriteNocopy(buf[offset:], w) + } + return offset +} + +func (p *ExperimentServiceUpdateExperimentResult) field0Length() int { + l := 0 + if p.IsSetSuccess() { + l += thrift.Binary.FieldBeginLength() + l += p.Success.BLength() + } + return l +} + +func (p *ExperimentServiceUpdateExperimentResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceUpdateExperimentResult) + if !ok { + return fmt.Errorf("%T's type not matched %T", s, p) + } + + var _success *UpdateExperimentResponse + if src.Success != nil { + _success = &UpdateExperimentResponse{} + if err := _success.DeepCopy(src.Success); err != nil { + return err + } + } + p.Success = _success + + return nil +} + +func (p *ExperimentServiceDeleteExperimentArgs) 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.STRUCT { + 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 + } + } + 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_ExperimentServiceDeleteExperimentArgs[fieldId]), err) +SkipFieldError: + return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *GetAnalysisRecordFeedbackVoteRequest) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceDeleteExperimentArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - if p.IsSetBase() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) - offset += p.Base.FastWriteNocopy(buf[offset:], w) + _field := NewDeleteExperimentRequest() + if l, err := _field.FastRead(buf[offset:]); err != nil { + return offset, err + } else { + offset += l } - return offset + p.Req = _field + return offset, nil } -func (p *GetAnalysisRecordFeedbackVoteRequest) field1Length() int { - l := 0 - if p.IsSetWorkspaceID() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() - } - return l +func (p *ExperimentServiceDeleteExperimentArgs) FastWrite(buf []byte) int { + return p.FastWriteNocopy(buf, nil) } -func (p *GetAnalysisRecordFeedbackVoteRequest) field2Length() int { - l := 0 - if p.IsSetExptID() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() +func (p *ExperimentServiceDeleteExperimentArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + if p != nil { + offset += p.fastWriteField1(buf[offset:], w) } - return l + offset += thrift.Binary.WriteFieldStop(buf[offset:]) + return offset } -func (p *GetAnalysisRecordFeedbackVoteRequest) field3Length() int { +func (p *ExperimentServiceDeleteExperimentArgs) BLength() int { l := 0 - if p.IsSetInsightAnalysisRecordID() { - l += thrift.Binary.FieldBeginLength() - l += thrift.Binary.I64Length() + if p != nil { + l += p.field1Length() } + l += thrift.Binary.FieldStopLength() return l } -func (p *GetAnalysisRecordFeedbackVoteRequest) field200Length() int { - l := 0 - if p.IsSetSession() { - l += thrift.Binary.FieldBeginLength() - l += p.Session.BLength() - } - return l +func (p *ExperimentServiceDeleteExperimentArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { + offset := 0 + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) + offset += p.Req.FastWriteNocopy(buf[offset:], w) + return offset } -func (p *GetAnalysisRecordFeedbackVoteRequest) field255Length() int { +func (p *ExperimentServiceDeleteExperimentArgs) field1Length() int { l := 0 - if p.IsSetBase() { - l += thrift.Binary.FieldBeginLength() - l += p.Base.BLength() - } + l += thrift.Binary.FieldBeginLength() + l += p.Req.BLength() return l } -func (p *GetAnalysisRecordFeedbackVoteRequest) DeepCopy(s interface{}) error { - src, ok := s.(*GetAnalysisRecordFeedbackVoteRequest) +func (p *ExperimentServiceDeleteExperimentArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceDeleteExperimentArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - if src.WorkspaceID != nil { - tmp := *src.WorkspaceID - p.WorkspaceID = &tmp - } - - if src.ExptID != nil { - tmp := *src.ExptID - p.ExptID = &tmp - } - - if src.InsightAnalysisRecordID != nil { - tmp := *src.InsightAnalysisRecordID - p.InsightAnalysisRecordID = &tmp - } - - var _session *common.Session - if src.Session != nil { - _session = &common.Session{} - if err := _session.DeepCopy(src.Session); err != nil { - return err - } - } - p.Session = _session - - var _base *base.Base - if src.Base != nil { - _base = &base.Base{} - if err := _base.DeepCopy(src.Base); err != nil { + var _req *DeleteExperimentRequest + if src.Req != nil { + _req = &DeleteExperimentRequest{} + if err := _req.DeepCopy(src.Req); err != nil { return err } } - p.Base = _base + p.Req = _req return nil } -func (p *GetAnalysisRecordFeedbackVoteResponse) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceDeleteExperimentResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -20164,23 +25971,9 @@ func (p *GetAnalysisRecordFeedbackVoteResponse) FastRead(buf []byte) (int, error break } switch fieldId { - case 1: - if fieldTypeId == thrift.STRUCT { - 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 255: + case 0: if fieldTypeId == thrift.STRUCT { - l, err = p.FastReadField255(buf[offset:]) + l, err = p.FastReadField0(buf[offset:]) offset += l if err != nil { goto ReadFieldError @@ -20205,119 +25998,82 @@ func (p *GetAnalysisRecordFeedbackVoteResponse) FastRead(buf []byte) (int, error 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_GetAnalysisRecordFeedbackVoteResponse[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceDeleteExperimentResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *GetAnalysisRecordFeedbackVoteResponse) FastReadField1(buf []byte) (int, error) { - offset := 0 - _field := expt.NewExptInsightAnalysisFeedbackVote() - if l, err := _field.FastRead(buf[offset:]); err != nil { - return offset, err - } else { - offset += l - } - p.Vote = _field - return offset, nil -} - -func (p *GetAnalysisRecordFeedbackVoteResponse) FastReadField255(buf []byte) (int, error) { +func (p *ExperimentServiceDeleteExperimentResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := base.NewBaseResp() + _field := NewDeleteExperimentResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { offset += l } - p.BaseResp = _field + p.Success = _field return offset, nil } -func (p *GetAnalysisRecordFeedbackVoteResponse) FastWrite(buf []byte) int { +func (p *ExperimentServiceDeleteExperimentResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *GetAnalysisRecordFeedbackVoteResponse) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceDeleteExperimentResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { - offset += p.fastWriteField1(buf[offset:], w) - offset += p.fastWriteField255(buf[offset:], w) + offset += p.fastWriteField0(buf[offset:], w) } offset += thrift.Binary.WriteFieldStop(buf[offset:]) return offset } -func (p *GetAnalysisRecordFeedbackVoteResponse) BLength() int { +func (p *ExperimentServiceDeleteExperimentResult) BLength() int { l := 0 if p != nil { - l += p.field1Length() - l += p.field255Length() + l += p.field0Length() } l += thrift.Binary.FieldStopLength() return l } -func (p *GetAnalysisRecordFeedbackVoteResponse) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceDeleteExperimentResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 - if p.IsSetVote() { - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) - offset += p.Vote.FastWriteNocopy(buf[offset:], w) + if p.IsSetSuccess() { + offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) + offset += p.Success.FastWriteNocopy(buf[offset:], w) } return offset } -func (p *GetAnalysisRecordFeedbackVoteResponse) fastWriteField255(buf []byte, w thrift.NocopyWriter) int { - offset := 0 - offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 255) - offset += p.BaseResp.FastWriteNocopy(buf[offset:], w) - return offset -} - -func (p *GetAnalysisRecordFeedbackVoteResponse) field1Length() int { +func (p *ExperimentServiceDeleteExperimentResult) field0Length() int { l := 0 - if p.IsSetVote() { + if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() - l += p.Vote.BLength() + l += p.Success.BLength() } return l } -func (p *GetAnalysisRecordFeedbackVoteResponse) field255Length() int { - l := 0 - l += thrift.Binary.FieldBeginLength() - l += p.BaseResp.BLength() - return l -} - -func (p *GetAnalysisRecordFeedbackVoteResponse) DeepCopy(s interface{}) error { - src, ok := s.(*GetAnalysisRecordFeedbackVoteResponse) +func (p *ExperimentServiceDeleteExperimentResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceDeleteExperimentResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _vote *expt.ExptInsightAnalysisFeedbackVote - if src.Vote != nil { - _vote = &expt.ExptInsightAnalysisFeedbackVote{} - if err := _vote.DeepCopy(src.Vote); err != nil { - return err - } - } - p.Vote = _vote - - var _baseResp *base.BaseResp - if src.BaseResp != nil { - _baseResp = &base.BaseResp{} - if err := _baseResp.DeepCopy(src.BaseResp); err != nil { + var _success *DeleteExperimentResponse + if src.Success != nil { + _success = &DeleteExperimentResponse{} + if err := _success.DeepCopy(src.Success); err != nil { return err } } - p.BaseResp = _baseResp + p.Success = _success return nil } -func (p *ExperimentServiceCheckExperimentNameArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceBatchDeleteExperimentsArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -20361,14 +26117,14 @@ func (p *ExperimentServiceCheckExperimentNameArgs) FastRead(buf []byte) (int, er 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_ExperimentServiceCheckExperimentNameArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceBatchDeleteExperimentsArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceCheckExperimentNameArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceBatchDeleteExperimentsArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewCheckExperimentNameRequest() + _field := NewBatchDeleteExperimentsRequest() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -20378,11 +26134,11 @@ func (p *ExperimentServiceCheckExperimentNameArgs) FastReadField1(buf []byte) (i return offset, nil } -func (p *ExperimentServiceCheckExperimentNameArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceBatchDeleteExperimentsArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceCheckExperimentNameArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceBatchDeleteExperimentsArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -20391,7 +26147,7 @@ func (p *ExperimentServiceCheckExperimentNameArgs) FastWriteNocopy(buf []byte, w return offset } -func (p *ExperimentServiceCheckExperimentNameArgs) BLength() int { +func (p *ExperimentServiceBatchDeleteExperimentsArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -20400,29 +26156,29 @@ func (p *ExperimentServiceCheckExperimentNameArgs) BLength() int { return l } -func (p *ExperimentServiceCheckExperimentNameArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceBatchDeleteExperimentsArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceCheckExperimentNameArgs) field1Length() int { +func (p *ExperimentServiceBatchDeleteExperimentsArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceCheckExperimentNameArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceCheckExperimentNameArgs) +func (p *ExperimentServiceBatchDeleteExperimentsArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceBatchDeleteExperimentsArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *CheckExperimentNameRequest + var _req *BatchDeleteExperimentsRequest if src.Req != nil { - _req = &CheckExperimentNameRequest{} + _req = &BatchDeleteExperimentsRequest{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -20432,7 +26188,7 @@ func (p *ExperimentServiceCheckExperimentNameArgs) DeepCopy(s interface{}) error return nil } -func (p *ExperimentServiceCheckExperimentNameResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceBatchDeleteExperimentsResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -20476,14 +26232,14 @@ func (p *ExperimentServiceCheckExperimentNameResult) FastRead(buf []byte) (int, 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_ExperimentServiceCheckExperimentNameResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceBatchDeleteExperimentsResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceCheckExperimentNameResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceBatchDeleteExperimentsResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewCheckExperimentNameResponse() + _field := NewBatchDeleteExperimentsResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -20493,11 +26249,11 @@ func (p *ExperimentServiceCheckExperimentNameResult) FastReadField0(buf []byte) return offset, nil } -func (p *ExperimentServiceCheckExperimentNameResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceBatchDeleteExperimentsResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceCheckExperimentNameResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceBatchDeleteExperimentsResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -20506,7 +26262,7 @@ func (p *ExperimentServiceCheckExperimentNameResult) FastWriteNocopy(buf []byte, return offset } -func (p *ExperimentServiceCheckExperimentNameResult) BLength() int { +func (p *ExperimentServiceBatchDeleteExperimentsResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -20515,7 +26271,7 @@ func (p *ExperimentServiceCheckExperimentNameResult) BLength() int { return l } -func (p *ExperimentServiceCheckExperimentNameResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceBatchDeleteExperimentsResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -20524,7 +26280,7 @@ func (p *ExperimentServiceCheckExperimentNameResult) fastWriteField0(buf []byte, return offset } -func (p *ExperimentServiceCheckExperimentNameResult) field0Length() int { +func (p *ExperimentServiceBatchDeleteExperimentsResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -20533,15 +26289,15 @@ func (p *ExperimentServiceCheckExperimentNameResult) field0Length() int { return l } -func (p *ExperimentServiceCheckExperimentNameResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceCheckExperimentNameResult) +func (p *ExperimentServiceBatchDeleteExperimentsResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceBatchDeleteExperimentsResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *CheckExperimentNameResponse + var _success *BatchDeleteExperimentsResponse if src.Success != nil { - _success = &CheckExperimentNameResponse{} + _success = &BatchDeleteExperimentsResponse{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -20551,7 +26307,7 @@ func (p *ExperimentServiceCheckExperimentNameResult) DeepCopy(s interface{}) err return nil } -func (p *ExperimentServiceCreateExperimentArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceCloneExperimentArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -20595,14 +26351,14 @@ func (p *ExperimentServiceCreateExperimentArgs) FastRead(buf []byte) (int, error 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_ExperimentServiceCreateExperimentArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceCloneExperimentArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceCreateExperimentArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceCloneExperimentArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewCreateExperimentRequest() + _field := NewCloneExperimentRequest() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -20612,11 +26368,11 @@ func (p *ExperimentServiceCreateExperimentArgs) FastReadField1(buf []byte) (int, return offset, nil } -func (p *ExperimentServiceCreateExperimentArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceCloneExperimentArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceCreateExperimentArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceCloneExperimentArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -20625,7 +26381,7 @@ func (p *ExperimentServiceCreateExperimentArgs) FastWriteNocopy(buf []byte, w th return offset } -func (p *ExperimentServiceCreateExperimentArgs) BLength() int { +func (p *ExperimentServiceCloneExperimentArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -20634,29 +26390,29 @@ func (p *ExperimentServiceCreateExperimentArgs) BLength() int { return l } -func (p *ExperimentServiceCreateExperimentArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceCloneExperimentArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceCreateExperimentArgs) field1Length() int { +func (p *ExperimentServiceCloneExperimentArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceCreateExperimentArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceCreateExperimentArgs) +func (p *ExperimentServiceCloneExperimentArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceCloneExperimentArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *CreateExperimentRequest + var _req *CloneExperimentRequest if src.Req != nil { - _req = &CreateExperimentRequest{} + _req = &CloneExperimentRequest{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -20666,7 +26422,7 @@ func (p *ExperimentServiceCreateExperimentArgs) DeepCopy(s interface{}) error { return nil } -func (p *ExperimentServiceCreateExperimentResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceCloneExperimentResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -20710,14 +26466,14 @@ func (p *ExperimentServiceCreateExperimentResult) FastRead(buf []byte) (int, err 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_ExperimentServiceCreateExperimentResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceCloneExperimentResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceCreateExperimentResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceCloneExperimentResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewCreateExperimentResponse() + _field := NewCloneExperimentResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -20727,11 +26483,11 @@ func (p *ExperimentServiceCreateExperimentResult) FastReadField0(buf []byte) (in return offset, nil } -func (p *ExperimentServiceCreateExperimentResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceCloneExperimentResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceCreateExperimentResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceCloneExperimentResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -20740,7 +26496,7 @@ func (p *ExperimentServiceCreateExperimentResult) FastWriteNocopy(buf []byte, w return offset } -func (p *ExperimentServiceCreateExperimentResult) BLength() int { +func (p *ExperimentServiceCloneExperimentResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -20749,7 +26505,7 @@ func (p *ExperimentServiceCreateExperimentResult) BLength() int { return l } -func (p *ExperimentServiceCreateExperimentResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceCloneExperimentResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -20758,7 +26514,7 @@ func (p *ExperimentServiceCreateExperimentResult) fastWriteField0(buf []byte, w return offset } -func (p *ExperimentServiceCreateExperimentResult) field0Length() int { +func (p *ExperimentServiceCloneExperimentResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -20767,15 +26523,15 @@ func (p *ExperimentServiceCreateExperimentResult) field0Length() int { return l } -func (p *ExperimentServiceCreateExperimentResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceCreateExperimentResult) +func (p *ExperimentServiceCloneExperimentResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceCloneExperimentResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *CreateExperimentResponse + var _success *CloneExperimentResponse if src.Success != nil { - _success = &CreateExperimentResponse{} + _success = &CloneExperimentResponse{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -20785,7 +26541,7 @@ func (p *ExperimentServiceCreateExperimentResult) DeepCopy(s interface{}) error return nil } -func (p *ExperimentServiceSubmitExperimentArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceRunExperimentArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -20829,14 +26585,14 @@ func (p *ExperimentServiceSubmitExperimentArgs) FastRead(buf []byte) (int, error 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_ExperimentServiceSubmitExperimentArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceRunExperimentArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceSubmitExperimentArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceRunExperimentArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewSubmitExperimentRequest() + _field := NewRunExperimentRequest() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -20846,11 +26602,11 @@ func (p *ExperimentServiceSubmitExperimentArgs) FastReadField1(buf []byte) (int, return offset, nil } -func (p *ExperimentServiceSubmitExperimentArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceRunExperimentArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceSubmitExperimentArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceRunExperimentArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -20859,7 +26615,7 @@ func (p *ExperimentServiceSubmitExperimentArgs) FastWriteNocopy(buf []byte, w th return offset } -func (p *ExperimentServiceSubmitExperimentArgs) BLength() int { +func (p *ExperimentServiceRunExperimentArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -20868,29 +26624,29 @@ func (p *ExperimentServiceSubmitExperimentArgs) BLength() int { return l } -func (p *ExperimentServiceSubmitExperimentArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceRunExperimentArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceSubmitExperimentArgs) field1Length() int { +func (p *ExperimentServiceRunExperimentArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceSubmitExperimentArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceSubmitExperimentArgs) +func (p *ExperimentServiceRunExperimentArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceRunExperimentArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *SubmitExperimentRequest + var _req *RunExperimentRequest if src.Req != nil { - _req = &SubmitExperimentRequest{} + _req = &RunExperimentRequest{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -20900,7 +26656,7 @@ func (p *ExperimentServiceSubmitExperimentArgs) DeepCopy(s interface{}) error { return nil } -func (p *ExperimentServiceSubmitExperimentResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceRunExperimentResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -20944,14 +26700,14 @@ func (p *ExperimentServiceSubmitExperimentResult) FastRead(buf []byte) (int, err 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_ExperimentServiceSubmitExperimentResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceRunExperimentResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceSubmitExperimentResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceRunExperimentResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewSubmitExperimentResponse() + _field := NewRunExperimentResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -20961,11 +26717,11 @@ func (p *ExperimentServiceSubmitExperimentResult) FastReadField0(buf []byte) (in return offset, nil } -func (p *ExperimentServiceSubmitExperimentResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceRunExperimentResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceSubmitExperimentResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceRunExperimentResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -20974,7 +26730,7 @@ func (p *ExperimentServiceSubmitExperimentResult) FastWriteNocopy(buf []byte, w return offset } -func (p *ExperimentServiceSubmitExperimentResult) BLength() int { +func (p *ExperimentServiceRunExperimentResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -20983,7 +26739,7 @@ func (p *ExperimentServiceSubmitExperimentResult) BLength() int { return l } -func (p *ExperimentServiceSubmitExperimentResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceRunExperimentResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -20992,7 +26748,7 @@ func (p *ExperimentServiceSubmitExperimentResult) fastWriteField0(buf []byte, w return offset } -func (p *ExperimentServiceSubmitExperimentResult) field0Length() int { +func (p *ExperimentServiceRunExperimentResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -21001,15 +26757,15 @@ func (p *ExperimentServiceSubmitExperimentResult) field0Length() int { return l } -func (p *ExperimentServiceSubmitExperimentResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceSubmitExperimentResult) +func (p *ExperimentServiceRunExperimentResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceRunExperimentResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *SubmitExperimentResponse + var _success *RunExperimentResponse if src.Success != nil { - _success = &SubmitExperimentResponse{} + _success = &RunExperimentResponse{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -21019,7 +26775,7 @@ func (p *ExperimentServiceSubmitExperimentResult) DeepCopy(s interface{}) error return nil } -func (p *ExperimentServiceBatchGetExperimentsArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceRetryExperimentArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -21063,14 +26819,14 @@ func (p *ExperimentServiceBatchGetExperimentsArgs) FastRead(buf []byte) (int, er 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_ExperimentServiceBatchGetExperimentsArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceRetryExperimentArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceBatchGetExperimentsArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceRetryExperimentArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewBatchGetExperimentsRequest() + _field := NewRetryExperimentRequest() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -21080,11 +26836,11 @@ func (p *ExperimentServiceBatchGetExperimentsArgs) FastReadField1(buf []byte) (i return offset, nil } -func (p *ExperimentServiceBatchGetExperimentsArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceRetryExperimentArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceBatchGetExperimentsArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceRetryExperimentArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -21093,7 +26849,7 @@ func (p *ExperimentServiceBatchGetExperimentsArgs) FastWriteNocopy(buf []byte, w return offset } -func (p *ExperimentServiceBatchGetExperimentsArgs) BLength() int { +func (p *ExperimentServiceRetryExperimentArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -21102,29 +26858,29 @@ func (p *ExperimentServiceBatchGetExperimentsArgs) BLength() int { return l } -func (p *ExperimentServiceBatchGetExperimentsArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceRetryExperimentArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceBatchGetExperimentsArgs) field1Length() int { +func (p *ExperimentServiceRetryExperimentArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceBatchGetExperimentsArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceBatchGetExperimentsArgs) +func (p *ExperimentServiceRetryExperimentArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceRetryExperimentArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *BatchGetExperimentsRequest + var _req *RetryExperimentRequest if src.Req != nil { - _req = &BatchGetExperimentsRequest{} + _req = &RetryExperimentRequest{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -21134,7 +26890,7 @@ func (p *ExperimentServiceBatchGetExperimentsArgs) DeepCopy(s interface{}) error return nil } -func (p *ExperimentServiceBatchGetExperimentsResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceRetryExperimentResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -21178,14 +26934,14 @@ func (p *ExperimentServiceBatchGetExperimentsResult) FastRead(buf []byte) (int, 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_ExperimentServiceBatchGetExperimentsResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceRetryExperimentResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceBatchGetExperimentsResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceRetryExperimentResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewBatchGetExperimentsResponse() + _field := NewRetryExperimentResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -21195,11 +26951,11 @@ func (p *ExperimentServiceBatchGetExperimentsResult) FastReadField0(buf []byte) return offset, nil } -func (p *ExperimentServiceBatchGetExperimentsResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceRetryExperimentResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceBatchGetExperimentsResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceRetryExperimentResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -21208,7 +26964,7 @@ func (p *ExperimentServiceBatchGetExperimentsResult) FastWriteNocopy(buf []byte, return offset } -func (p *ExperimentServiceBatchGetExperimentsResult) BLength() int { +func (p *ExperimentServiceRetryExperimentResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -21217,7 +26973,7 @@ func (p *ExperimentServiceBatchGetExperimentsResult) BLength() int { return l } -func (p *ExperimentServiceBatchGetExperimentsResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceRetryExperimentResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -21226,7 +26982,7 @@ func (p *ExperimentServiceBatchGetExperimentsResult) fastWriteField0(buf []byte, return offset } -func (p *ExperimentServiceBatchGetExperimentsResult) field0Length() int { +func (p *ExperimentServiceRetryExperimentResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -21235,15 +26991,15 @@ func (p *ExperimentServiceBatchGetExperimentsResult) field0Length() int { return l } -func (p *ExperimentServiceBatchGetExperimentsResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceBatchGetExperimentsResult) +func (p *ExperimentServiceRetryExperimentResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceRetryExperimentResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *BatchGetExperimentsResponse + var _success *RetryExperimentResponse if src.Success != nil { - _success = &BatchGetExperimentsResponse{} + _success = &RetryExperimentResponse{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -21253,7 +27009,7 @@ func (p *ExperimentServiceBatchGetExperimentsResult) DeepCopy(s interface{}) err return nil } -func (p *ExperimentServiceListExperimentsArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceKillExperimentArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -21297,14 +27053,14 @@ func (p *ExperimentServiceListExperimentsArgs) FastRead(buf []byte) (int, error) 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_ExperimentServiceListExperimentsArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceKillExperimentArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceListExperimentsArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceKillExperimentArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewListExperimentsRequest() + _field := NewKillExperimentRequest() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -21314,11 +27070,11 @@ func (p *ExperimentServiceListExperimentsArgs) FastReadField1(buf []byte) (int, return offset, nil } -func (p *ExperimentServiceListExperimentsArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceKillExperimentArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceListExperimentsArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceKillExperimentArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -21327,7 +27083,7 @@ func (p *ExperimentServiceListExperimentsArgs) FastWriteNocopy(buf []byte, w thr return offset } -func (p *ExperimentServiceListExperimentsArgs) BLength() int { +func (p *ExperimentServiceKillExperimentArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -21336,29 +27092,29 @@ func (p *ExperimentServiceListExperimentsArgs) BLength() int { return l } -func (p *ExperimentServiceListExperimentsArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceKillExperimentArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceListExperimentsArgs) field1Length() int { +func (p *ExperimentServiceKillExperimentArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceListExperimentsArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceListExperimentsArgs) +func (p *ExperimentServiceKillExperimentArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceKillExperimentArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *ListExperimentsRequest + var _req *KillExperimentRequest if src.Req != nil { - _req = &ListExperimentsRequest{} + _req = &KillExperimentRequest{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -21368,7 +27124,7 @@ func (p *ExperimentServiceListExperimentsArgs) DeepCopy(s interface{}) error { return nil } -func (p *ExperimentServiceListExperimentsResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceKillExperimentResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -21412,14 +27168,14 @@ func (p *ExperimentServiceListExperimentsResult) FastRead(buf []byte) (int, erro 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_ExperimentServiceListExperimentsResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceKillExperimentResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceListExperimentsResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceKillExperimentResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewListExperimentsResponse() + _field := NewKillExperimentResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -21429,11 +27185,11 @@ func (p *ExperimentServiceListExperimentsResult) FastReadField0(buf []byte) (int return offset, nil } -func (p *ExperimentServiceListExperimentsResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceKillExperimentResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceListExperimentsResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceKillExperimentResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -21442,7 +27198,7 @@ func (p *ExperimentServiceListExperimentsResult) FastWriteNocopy(buf []byte, w t return offset } -func (p *ExperimentServiceListExperimentsResult) BLength() int { +func (p *ExperimentServiceKillExperimentResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -21451,7 +27207,7 @@ func (p *ExperimentServiceListExperimentsResult) BLength() int { return l } -func (p *ExperimentServiceListExperimentsResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceKillExperimentResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -21460,7 +27216,7 @@ func (p *ExperimentServiceListExperimentsResult) fastWriteField0(buf []byte, w t return offset } -func (p *ExperimentServiceListExperimentsResult) field0Length() int { +func (p *ExperimentServiceKillExperimentResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -21469,15 +27225,15 @@ func (p *ExperimentServiceListExperimentsResult) field0Length() int { return l } -func (p *ExperimentServiceListExperimentsResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceListExperimentsResult) +func (p *ExperimentServiceKillExperimentResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceKillExperimentResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *ListExperimentsResponse + var _success *KillExperimentResponse if src.Success != nil { - _success = &ListExperimentsResponse{} + _success = &KillExperimentResponse{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -21487,7 +27243,7 @@ func (p *ExperimentServiceListExperimentsResult) DeepCopy(s interface{}) error { return nil } -func (p *ExperimentServiceUpdateExperimentArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceBatchGetExperimentResultArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -21531,14 +27287,14 @@ func (p *ExperimentServiceUpdateExperimentArgs) FastRead(buf []byte) (int, error 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_ExperimentServiceUpdateExperimentArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceBatchGetExperimentResultArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceUpdateExperimentArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceBatchGetExperimentResultArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewUpdateExperimentRequest() + _field := NewBatchGetExperimentResultRequest() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -21548,11 +27304,11 @@ func (p *ExperimentServiceUpdateExperimentArgs) FastReadField1(buf []byte) (int, return offset, nil } -func (p *ExperimentServiceUpdateExperimentArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceBatchGetExperimentResultArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceUpdateExperimentArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceBatchGetExperimentResultArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -21561,7 +27317,7 @@ func (p *ExperimentServiceUpdateExperimentArgs) FastWriteNocopy(buf []byte, w th return offset } -func (p *ExperimentServiceUpdateExperimentArgs) BLength() int { +func (p *ExperimentServiceBatchGetExperimentResultArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -21570,29 +27326,29 @@ func (p *ExperimentServiceUpdateExperimentArgs) BLength() int { return l } -func (p *ExperimentServiceUpdateExperimentArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceBatchGetExperimentResultArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceUpdateExperimentArgs) field1Length() int { +func (p *ExperimentServiceBatchGetExperimentResultArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceUpdateExperimentArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceUpdateExperimentArgs) +func (p *ExperimentServiceBatchGetExperimentResultArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceBatchGetExperimentResultArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *UpdateExperimentRequest + var _req *BatchGetExperimentResultRequest if src.Req != nil { - _req = &UpdateExperimentRequest{} + _req = &BatchGetExperimentResultRequest{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -21602,7 +27358,7 @@ func (p *ExperimentServiceUpdateExperimentArgs) DeepCopy(s interface{}) error { return nil } -func (p *ExperimentServiceUpdateExperimentResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceBatchGetExperimentResultResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -21646,14 +27402,14 @@ func (p *ExperimentServiceUpdateExperimentResult) FastRead(buf []byte) (int, err 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_ExperimentServiceUpdateExperimentResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceBatchGetExperimentResultResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceUpdateExperimentResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceBatchGetExperimentResultResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewUpdateExperimentResponse() + _field := NewBatchGetExperimentResultResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -21663,11 +27419,11 @@ func (p *ExperimentServiceUpdateExperimentResult) FastReadField0(buf []byte) (in return offset, nil } -func (p *ExperimentServiceUpdateExperimentResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceBatchGetExperimentResultResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceUpdateExperimentResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceBatchGetExperimentResultResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -21676,7 +27432,7 @@ func (p *ExperimentServiceUpdateExperimentResult) FastWriteNocopy(buf []byte, w return offset } -func (p *ExperimentServiceUpdateExperimentResult) BLength() int { +func (p *ExperimentServiceBatchGetExperimentResultResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -21685,7 +27441,7 @@ func (p *ExperimentServiceUpdateExperimentResult) BLength() int { return l } -func (p *ExperimentServiceUpdateExperimentResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceBatchGetExperimentResultResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -21694,7 +27450,7 @@ func (p *ExperimentServiceUpdateExperimentResult) fastWriteField0(buf []byte, w return offset } -func (p *ExperimentServiceUpdateExperimentResult) field0Length() int { +func (p *ExperimentServiceBatchGetExperimentResultResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -21703,15 +27459,15 @@ func (p *ExperimentServiceUpdateExperimentResult) field0Length() int { return l } -func (p *ExperimentServiceUpdateExperimentResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceUpdateExperimentResult) +func (p *ExperimentServiceBatchGetExperimentResultResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceBatchGetExperimentResultResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *UpdateExperimentResponse + var _success *BatchGetExperimentResultResponse if src.Success != nil { - _success = &UpdateExperimentResponse{} + _success = &BatchGetExperimentResultResponse{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -21721,7 +27477,7 @@ func (p *ExperimentServiceUpdateExperimentResult) DeepCopy(s interface{}) error return nil } -func (p *ExperimentServiceDeleteExperimentArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceCalculateExperimentAggrResultArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -21765,14 +27521,14 @@ func (p *ExperimentServiceDeleteExperimentArgs) FastRead(buf []byte) (int, error 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_ExperimentServiceDeleteExperimentArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceCalculateExperimentAggrResultArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceDeleteExperimentArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceCalculateExperimentAggrResultArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewDeleteExperimentRequest() + _field := NewCalculateExperimentAggrResultRequest() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -21782,11 +27538,11 @@ func (p *ExperimentServiceDeleteExperimentArgs) FastReadField1(buf []byte) (int, return offset, nil } -func (p *ExperimentServiceDeleteExperimentArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceCalculateExperimentAggrResultArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceDeleteExperimentArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceCalculateExperimentAggrResultArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -21795,7 +27551,7 @@ func (p *ExperimentServiceDeleteExperimentArgs) FastWriteNocopy(buf []byte, w th return offset } -func (p *ExperimentServiceDeleteExperimentArgs) BLength() int { +func (p *ExperimentServiceCalculateExperimentAggrResultArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -21804,29 +27560,29 @@ func (p *ExperimentServiceDeleteExperimentArgs) BLength() int { return l } -func (p *ExperimentServiceDeleteExperimentArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceCalculateExperimentAggrResultArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceDeleteExperimentArgs) field1Length() int { +func (p *ExperimentServiceCalculateExperimentAggrResultArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceDeleteExperimentArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceDeleteExperimentArgs) +func (p *ExperimentServiceCalculateExperimentAggrResultArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceCalculateExperimentAggrResultArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *DeleteExperimentRequest + var _req *CalculateExperimentAggrResultRequest if src.Req != nil { - _req = &DeleteExperimentRequest{} + _req = &CalculateExperimentAggrResultRequest{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -21836,7 +27592,7 @@ func (p *ExperimentServiceDeleteExperimentArgs) DeepCopy(s interface{}) error { return nil } -func (p *ExperimentServiceDeleteExperimentResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceCalculateExperimentAggrResultResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -21880,14 +27636,14 @@ func (p *ExperimentServiceDeleteExperimentResult) FastRead(buf []byte) (int, err 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_ExperimentServiceDeleteExperimentResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceCalculateExperimentAggrResultResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceDeleteExperimentResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceCalculateExperimentAggrResultResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewDeleteExperimentResponse() + _field := NewCalculateExperimentAggrResultResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -21897,11 +27653,11 @@ func (p *ExperimentServiceDeleteExperimentResult) FastReadField0(buf []byte) (in return offset, nil } -func (p *ExperimentServiceDeleteExperimentResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceCalculateExperimentAggrResultResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceDeleteExperimentResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceCalculateExperimentAggrResultResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -21910,7 +27666,7 @@ func (p *ExperimentServiceDeleteExperimentResult) FastWriteNocopy(buf []byte, w return offset } -func (p *ExperimentServiceDeleteExperimentResult) BLength() int { +func (p *ExperimentServiceCalculateExperimentAggrResultResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -21919,7 +27675,7 @@ func (p *ExperimentServiceDeleteExperimentResult) BLength() int { return l } -func (p *ExperimentServiceDeleteExperimentResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceCalculateExperimentAggrResultResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -21928,7 +27684,7 @@ func (p *ExperimentServiceDeleteExperimentResult) fastWriteField0(buf []byte, w return offset } -func (p *ExperimentServiceDeleteExperimentResult) field0Length() int { +func (p *ExperimentServiceCalculateExperimentAggrResultResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -21937,15 +27693,15 @@ func (p *ExperimentServiceDeleteExperimentResult) field0Length() int { return l } -func (p *ExperimentServiceDeleteExperimentResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceDeleteExperimentResult) +func (p *ExperimentServiceCalculateExperimentAggrResultResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceCalculateExperimentAggrResultResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *DeleteExperimentResponse + var _success *CalculateExperimentAggrResultResponse if src.Success != nil { - _success = &DeleteExperimentResponse{} + _success = &CalculateExperimentAggrResultResponse{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -21955,7 +27711,7 @@ func (p *ExperimentServiceDeleteExperimentResult) DeepCopy(s interface{}) error return nil } -func (p *ExperimentServiceBatchDeleteExperimentsArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -21999,14 +27755,14 @@ func (p *ExperimentServiceBatchDeleteExperimentsArgs) FastRead(buf []byte) (int, 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_ExperimentServiceBatchDeleteExperimentsArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceBatchGetExperimentAggrResultArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceBatchDeleteExperimentsArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewBatchDeleteExperimentsRequest() + _field := NewBatchGetExperimentAggrResultRequest() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -22016,11 +27772,11 @@ func (p *ExperimentServiceBatchDeleteExperimentsArgs) FastReadField1(buf []byte) return offset, nil } -func (p *ExperimentServiceBatchDeleteExperimentsArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceBatchDeleteExperimentsArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -22029,7 +27785,7 @@ func (p *ExperimentServiceBatchDeleteExperimentsArgs) FastWriteNocopy(buf []byte return offset } -func (p *ExperimentServiceBatchDeleteExperimentsArgs) BLength() int { +func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -22038,29 +27794,29 @@ func (p *ExperimentServiceBatchDeleteExperimentsArgs) BLength() int { return l } -func (p *ExperimentServiceBatchDeleteExperimentsArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceBatchDeleteExperimentsArgs) field1Length() int { +func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceBatchDeleteExperimentsArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceBatchDeleteExperimentsArgs) +func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceBatchGetExperimentAggrResultArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *BatchDeleteExperimentsRequest + var _req *BatchGetExperimentAggrResultRequest if src.Req != nil { - _req = &BatchDeleteExperimentsRequest{} + _req = &BatchGetExperimentAggrResultRequest{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -22070,7 +27826,7 @@ func (p *ExperimentServiceBatchDeleteExperimentsArgs) DeepCopy(s interface{}) er return nil } -func (p *ExperimentServiceBatchDeleteExperimentsResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceBatchGetExperimentAggrResultResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -22114,14 +27870,14 @@ func (p *ExperimentServiceBatchDeleteExperimentsResult) FastRead(buf []byte) (in 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_ExperimentServiceBatchDeleteExperimentsResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceBatchGetExperimentAggrResultResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceBatchDeleteExperimentsResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceBatchGetExperimentAggrResultResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewBatchDeleteExperimentsResponse() + _field := NewBatchGetExperimentAggrResultResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -22131,11 +27887,11 @@ func (p *ExperimentServiceBatchDeleteExperimentsResult) FastReadField0(buf []byt return offset, nil } -func (p *ExperimentServiceBatchDeleteExperimentsResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceBatchGetExperimentAggrResultResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceBatchDeleteExperimentsResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceBatchGetExperimentAggrResultResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -22144,7 +27900,7 @@ func (p *ExperimentServiceBatchDeleteExperimentsResult) FastWriteNocopy(buf []by return offset } -func (p *ExperimentServiceBatchDeleteExperimentsResult) BLength() int { +func (p *ExperimentServiceBatchGetExperimentAggrResultResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -22153,7 +27909,7 @@ func (p *ExperimentServiceBatchDeleteExperimentsResult) BLength() int { return l } -func (p *ExperimentServiceBatchDeleteExperimentsResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceBatchGetExperimentAggrResultResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -22162,7 +27918,7 @@ func (p *ExperimentServiceBatchDeleteExperimentsResult) fastWriteField0(buf []by return offset } -func (p *ExperimentServiceBatchDeleteExperimentsResult) field0Length() int { +func (p *ExperimentServiceBatchGetExperimentAggrResultResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -22171,15 +27927,15 @@ func (p *ExperimentServiceBatchDeleteExperimentsResult) field0Length() int { return l } -func (p *ExperimentServiceBatchDeleteExperimentsResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceBatchDeleteExperimentsResult) +func (p *ExperimentServiceBatchGetExperimentAggrResultResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceBatchGetExperimentAggrResultResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *BatchDeleteExperimentsResponse + var _success *BatchGetExperimentAggrResultResponse if src.Success != nil { - _success = &BatchDeleteExperimentsResponse{} + _success = &BatchGetExperimentAggrResultResponse{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -22189,7 +27945,7 @@ func (p *ExperimentServiceBatchDeleteExperimentsResult) DeepCopy(s interface{}) return nil } -func (p *ExperimentServiceCloneExperimentArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceInvokeExperimentArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -22233,14 +27989,14 @@ func (p *ExperimentServiceCloneExperimentArgs) FastRead(buf []byte) (int, error) 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_ExperimentServiceCloneExperimentArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceInvokeExperimentArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceCloneExperimentArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceInvokeExperimentArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewCloneExperimentRequest() + _field := NewInvokeExperimentRequest() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -22250,11 +28006,11 @@ func (p *ExperimentServiceCloneExperimentArgs) FastReadField1(buf []byte) (int, return offset, nil } -func (p *ExperimentServiceCloneExperimentArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceInvokeExperimentArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceCloneExperimentArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceInvokeExperimentArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -22263,7 +28019,7 @@ func (p *ExperimentServiceCloneExperimentArgs) FastWriteNocopy(buf []byte, w thr return offset } -func (p *ExperimentServiceCloneExperimentArgs) BLength() int { +func (p *ExperimentServiceInvokeExperimentArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -22272,29 +28028,29 @@ func (p *ExperimentServiceCloneExperimentArgs) BLength() int { return l } -func (p *ExperimentServiceCloneExperimentArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceInvokeExperimentArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceCloneExperimentArgs) field1Length() int { +func (p *ExperimentServiceInvokeExperimentArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceCloneExperimentArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceCloneExperimentArgs) +func (p *ExperimentServiceInvokeExperimentArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceInvokeExperimentArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *CloneExperimentRequest + var _req *InvokeExperimentRequest if src.Req != nil { - _req = &CloneExperimentRequest{} + _req = &InvokeExperimentRequest{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -22304,7 +28060,7 @@ func (p *ExperimentServiceCloneExperimentArgs) DeepCopy(s interface{}) error { return nil } -func (p *ExperimentServiceCloneExperimentResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceInvokeExperimentResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -22348,14 +28104,14 @@ func (p *ExperimentServiceCloneExperimentResult) FastRead(buf []byte) (int, erro 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_ExperimentServiceCloneExperimentResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceInvokeExperimentResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceCloneExperimentResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceInvokeExperimentResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewCloneExperimentResponse() + _field := NewInvokeExperimentResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -22365,11 +28121,11 @@ func (p *ExperimentServiceCloneExperimentResult) FastReadField0(buf []byte) (int return offset, nil } -func (p *ExperimentServiceCloneExperimentResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceInvokeExperimentResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceCloneExperimentResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceInvokeExperimentResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -22378,7 +28134,7 @@ func (p *ExperimentServiceCloneExperimentResult) FastWriteNocopy(buf []byte, w t return offset } -func (p *ExperimentServiceCloneExperimentResult) BLength() int { +func (p *ExperimentServiceInvokeExperimentResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -22387,7 +28143,7 @@ func (p *ExperimentServiceCloneExperimentResult) BLength() int { return l } -func (p *ExperimentServiceCloneExperimentResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceInvokeExperimentResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -22396,7 +28152,7 @@ func (p *ExperimentServiceCloneExperimentResult) fastWriteField0(buf []byte, w t return offset } -func (p *ExperimentServiceCloneExperimentResult) field0Length() int { +func (p *ExperimentServiceInvokeExperimentResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -22405,15 +28161,15 @@ func (p *ExperimentServiceCloneExperimentResult) field0Length() int { return l } -func (p *ExperimentServiceCloneExperimentResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceCloneExperimentResult) +func (p *ExperimentServiceInvokeExperimentResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceInvokeExperimentResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *CloneExperimentResponse + var _success *InvokeExperimentResponse if src.Success != nil { - _success = &CloneExperimentResponse{} + _success = &InvokeExperimentResponse{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -22423,7 +28179,7 @@ func (p *ExperimentServiceCloneExperimentResult) DeepCopy(s interface{}) error { return nil } -func (p *ExperimentServiceRunExperimentArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceFinishExperimentArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -22467,14 +28223,14 @@ func (p *ExperimentServiceRunExperimentArgs) FastRead(buf []byte) (int, error) { 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_ExperimentServiceRunExperimentArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceFinishExperimentArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceRunExperimentArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceFinishExperimentArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewRunExperimentRequest() + _field := NewFinishExperimentRequest() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -22484,11 +28240,11 @@ func (p *ExperimentServiceRunExperimentArgs) FastReadField1(buf []byte) (int, er return offset, nil } -func (p *ExperimentServiceRunExperimentArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceFinishExperimentArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceRunExperimentArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceFinishExperimentArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -22497,7 +28253,7 @@ func (p *ExperimentServiceRunExperimentArgs) FastWriteNocopy(buf []byte, w thrif return offset } -func (p *ExperimentServiceRunExperimentArgs) BLength() int { +func (p *ExperimentServiceFinishExperimentArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -22506,29 +28262,29 @@ func (p *ExperimentServiceRunExperimentArgs) BLength() int { return l } -func (p *ExperimentServiceRunExperimentArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceFinishExperimentArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceRunExperimentArgs) field1Length() int { +func (p *ExperimentServiceFinishExperimentArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceRunExperimentArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceRunExperimentArgs) +func (p *ExperimentServiceFinishExperimentArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceFinishExperimentArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *RunExperimentRequest + var _req *FinishExperimentRequest if src.Req != nil { - _req = &RunExperimentRequest{} + _req = &FinishExperimentRequest{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -22538,7 +28294,7 @@ func (p *ExperimentServiceRunExperimentArgs) DeepCopy(s interface{}) error { return nil } -func (p *ExperimentServiceRunExperimentResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceFinishExperimentResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -22582,14 +28338,14 @@ func (p *ExperimentServiceRunExperimentResult) FastRead(buf []byte) (int, error) 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_ExperimentServiceRunExperimentResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceFinishExperimentResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceRunExperimentResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceFinishExperimentResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewRunExperimentResponse() + _field := NewFinishExperimentResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -22599,11 +28355,11 @@ func (p *ExperimentServiceRunExperimentResult) FastReadField0(buf []byte) (int, return offset, nil } -func (p *ExperimentServiceRunExperimentResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceFinishExperimentResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceRunExperimentResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceFinishExperimentResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -22612,7 +28368,7 @@ func (p *ExperimentServiceRunExperimentResult) FastWriteNocopy(buf []byte, w thr return offset } -func (p *ExperimentServiceRunExperimentResult) BLength() int { +func (p *ExperimentServiceFinishExperimentResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -22621,7 +28377,7 @@ func (p *ExperimentServiceRunExperimentResult) BLength() int { return l } -func (p *ExperimentServiceRunExperimentResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceFinishExperimentResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -22630,7 +28386,7 @@ func (p *ExperimentServiceRunExperimentResult) fastWriteField0(buf []byte, w thr return offset } -func (p *ExperimentServiceRunExperimentResult) field0Length() int { +func (p *ExperimentServiceFinishExperimentResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -22639,15 +28395,15 @@ func (p *ExperimentServiceRunExperimentResult) field0Length() int { return l } -func (p *ExperimentServiceRunExperimentResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceRunExperimentResult) +func (p *ExperimentServiceFinishExperimentResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceFinishExperimentResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *RunExperimentResponse + var _success *FinishExperimentResponse if src.Success != nil { - _success = &RunExperimentResponse{} + _success = &FinishExperimentResponse{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -22657,7 +28413,7 @@ func (p *ExperimentServiceRunExperimentResult) DeepCopy(s interface{}) error { return nil } -func (p *ExperimentServiceRetryExperimentArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceListExperimentStatsArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -22701,14 +28457,14 @@ func (p *ExperimentServiceRetryExperimentArgs) FastRead(buf []byte) (int, error) 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_ExperimentServiceRetryExperimentArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceListExperimentStatsArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceRetryExperimentArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceListExperimentStatsArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewRetryExperimentRequest() + _field := NewListExperimentStatsRequest() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -22718,11 +28474,11 @@ func (p *ExperimentServiceRetryExperimentArgs) FastReadField1(buf []byte) (int, return offset, nil } -func (p *ExperimentServiceRetryExperimentArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceListExperimentStatsArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceRetryExperimentArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceListExperimentStatsArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -22731,7 +28487,7 @@ func (p *ExperimentServiceRetryExperimentArgs) FastWriteNocopy(buf []byte, w thr return offset } -func (p *ExperimentServiceRetryExperimentArgs) BLength() int { +func (p *ExperimentServiceListExperimentStatsArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -22740,29 +28496,29 @@ func (p *ExperimentServiceRetryExperimentArgs) BLength() int { return l } -func (p *ExperimentServiceRetryExperimentArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceListExperimentStatsArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceRetryExperimentArgs) field1Length() int { +func (p *ExperimentServiceListExperimentStatsArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceRetryExperimentArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceRetryExperimentArgs) +func (p *ExperimentServiceListExperimentStatsArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceListExperimentStatsArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *RetryExperimentRequest + var _req *ListExperimentStatsRequest if src.Req != nil { - _req = &RetryExperimentRequest{} + _req = &ListExperimentStatsRequest{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -22772,7 +28528,7 @@ func (p *ExperimentServiceRetryExperimentArgs) DeepCopy(s interface{}) error { return nil } -func (p *ExperimentServiceRetryExperimentResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceListExperimentStatsResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -22816,14 +28572,14 @@ func (p *ExperimentServiceRetryExperimentResult) FastRead(buf []byte) (int, erro 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_ExperimentServiceRetryExperimentResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceListExperimentStatsResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceRetryExperimentResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceListExperimentStatsResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewRetryExperimentResponse() + _field := NewListExperimentStatsResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -22833,11 +28589,11 @@ func (p *ExperimentServiceRetryExperimentResult) FastReadField0(buf []byte) (int return offset, nil } -func (p *ExperimentServiceRetryExperimentResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceListExperimentStatsResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceRetryExperimentResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceListExperimentStatsResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -22846,7 +28602,7 @@ func (p *ExperimentServiceRetryExperimentResult) FastWriteNocopy(buf []byte, w t return offset } -func (p *ExperimentServiceRetryExperimentResult) BLength() int { +func (p *ExperimentServiceListExperimentStatsResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -22855,7 +28611,7 @@ func (p *ExperimentServiceRetryExperimentResult) BLength() int { return l } -func (p *ExperimentServiceRetryExperimentResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceListExperimentStatsResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -22864,7 +28620,7 @@ func (p *ExperimentServiceRetryExperimentResult) fastWriteField0(buf []byte, w t return offset } -func (p *ExperimentServiceRetryExperimentResult) field0Length() int { +func (p *ExperimentServiceListExperimentStatsResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -22873,15 +28629,15 @@ func (p *ExperimentServiceRetryExperimentResult) field0Length() int { return l } -func (p *ExperimentServiceRetryExperimentResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceRetryExperimentResult) +func (p *ExperimentServiceListExperimentStatsResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceListExperimentStatsResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *RetryExperimentResponse + var _success *ListExperimentStatsResponse if src.Success != nil { - _success = &RetryExperimentResponse{} + _success = &ListExperimentStatsResponse{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -22891,7 +28647,7 @@ func (p *ExperimentServiceRetryExperimentResult) DeepCopy(s interface{}) error { return nil } -func (p *ExperimentServiceKillExperimentArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -22935,14 +28691,14 @@ func (p *ExperimentServiceKillExperimentArgs) FastRead(buf []byte) (int, error) 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_ExperimentServiceKillExperimentArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceUpsertExptTurnResultFilterArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceKillExperimentArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewKillExperimentRequest() + _field := NewUpsertExptTurnResultFilterRequest() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -22952,11 +28708,11 @@ func (p *ExperimentServiceKillExperimentArgs) FastReadField1(buf []byte) (int, e return offset, nil } -func (p *ExperimentServiceKillExperimentArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceKillExperimentArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -22965,7 +28721,7 @@ func (p *ExperimentServiceKillExperimentArgs) FastWriteNocopy(buf []byte, w thri return offset } -func (p *ExperimentServiceKillExperimentArgs) BLength() int { +func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -22974,29 +28730,29 @@ func (p *ExperimentServiceKillExperimentArgs) BLength() int { return l } -func (p *ExperimentServiceKillExperimentArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceKillExperimentArgs) field1Length() int { +func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceKillExperimentArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceKillExperimentArgs) +func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceUpsertExptTurnResultFilterArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *KillExperimentRequest + var _req *UpsertExptTurnResultFilterRequest if src.Req != nil { - _req = &KillExperimentRequest{} + _req = &UpsertExptTurnResultFilterRequest{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -23006,7 +28762,7 @@ func (p *ExperimentServiceKillExperimentArgs) DeepCopy(s interface{}) error { return nil } -func (p *ExperimentServiceKillExperimentResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceUpsertExptTurnResultFilterResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -23050,14 +28806,14 @@ func (p *ExperimentServiceKillExperimentResult) FastRead(buf []byte) (int, error 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_ExperimentServiceKillExperimentResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceUpsertExptTurnResultFilterResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceKillExperimentResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceUpsertExptTurnResultFilterResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewKillExperimentResponse() + _field := NewUpsertExptTurnResultFilterResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -23067,11 +28823,11 @@ func (p *ExperimentServiceKillExperimentResult) FastReadField0(buf []byte) (int, return offset, nil } -func (p *ExperimentServiceKillExperimentResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceUpsertExptTurnResultFilterResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceKillExperimentResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceUpsertExptTurnResultFilterResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -23080,7 +28836,7 @@ func (p *ExperimentServiceKillExperimentResult) FastWriteNocopy(buf []byte, w th return offset } -func (p *ExperimentServiceKillExperimentResult) BLength() int { +func (p *ExperimentServiceUpsertExptTurnResultFilterResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -23089,7 +28845,7 @@ func (p *ExperimentServiceKillExperimentResult) BLength() int { return l } -func (p *ExperimentServiceKillExperimentResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceUpsertExptTurnResultFilterResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -23098,7 +28854,7 @@ func (p *ExperimentServiceKillExperimentResult) fastWriteField0(buf []byte, w th return offset } -func (p *ExperimentServiceKillExperimentResult) field0Length() int { +func (p *ExperimentServiceUpsertExptTurnResultFilterResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -23107,15 +28863,15 @@ func (p *ExperimentServiceKillExperimentResult) field0Length() int { return l } -func (p *ExperimentServiceKillExperimentResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceKillExperimentResult) +func (p *ExperimentServiceUpsertExptTurnResultFilterResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceUpsertExptTurnResultFilterResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *KillExperimentResponse + var _success *UpsertExptTurnResultFilterResponse if src.Success != nil { - _success = &KillExperimentResponse{} + _success = &UpsertExptTurnResultFilterResponse{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -23125,7 +28881,7 @@ func (p *ExperimentServiceKillExperimentResult) DeepCopy(s interface{}) error { return nil } -func (p *ExperimentServiceBatchGetExperimentResultArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceAssociateAnnotationTagArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -23169,14 +28925,14 @@ func (p *ExperimentServiceBatchGetExperimentResultArgs) FastRead(buf []byte) (in 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_ExperimentServiceBatchGetExperimentResultArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceAssociateAnnotationTagArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceBatchGetExperimentResultArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceAssociateAnnotationTagArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewBatchGetExperimentResultRequest() + _field := NewAssociateAnnotationTagReq() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -23186,11 +28942,11 @@ func (p *ExperimentServiceBatchGetExperimentResultArgs) FastReadField1(buf []byt return offset, nil } -func (p *ExperimentServiceBatchGetExperimentResultArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceAssociateAnnotationTagArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceBatchGetExperimentResultArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceAssociateAnnotationTagArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -23199,7 +28955,7 @@ func (p *ExperimentServiceBatchGetExperimentResultArgs) FastWriteNocopy(buf []by return offset } -func (p *ExperimentServiceBatchGetExperimentResultArgs) BLength() int { +func (p *ExperimentServiceAssociateAnnotationTagArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -23208,29 +28964,29 @@ func (p *ExperimentServiceBatchGetExperimentResultArgs) BLength() int { return l } -func (p *ExperimentServiceBatchGetExperimentResultArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceAssociateAnnotationTagArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceBatchGetExperimentResultArgs) field1Length() int { +func (p *ExperimentServiceAssociateAnnotationTagArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceBatchGetExperimentResultArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceBatchGetExperimentResultArgs) +func (p *ExperimentServiceAssociateAnnotationTagArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceAssociateAnnotationTagArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *BatchGetExperimentResultRequest + var _req *AssociateAnnotationTagReq if src.Req != nil { - _req = &BatchGetExperimentResultRequest{} + _req = &AssociateAnnotationTagReq{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -23240,7 +28996,7 @@ func (p *ExperimentServiceBatchGetExperimentResultArgs) DeepCopy(s interface{}) return nil } -func (p *ExperimentServiceBatchGetExperimentResultResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceAssociateAnnotationTagResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -23284,14 +29040,14 @@ func (p *ExperimentServiceBatchGetExperimentResultResult) FastRead(buf []byte) ( 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_ExperimentServiceBatchGetExperimentResultResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceAssociateAnnotationTagResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceBatchGetExperimentResultResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceAssociateAnnotationTagResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewBatchGetExperimentResultResponse() + _field := NewAssociateAnnotationTagResp() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -23301,11 +29057,11 @@ func (p *ExperimentServiceBatchGetExperimentResultResult) FastReadField0(buf []b return offset, nil } -func (p *ExperimentServiceBatchGetExperimentResultResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceAssociateAnnotationTagResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceBatchGetExperimentResultResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceAssociateAnnotationTagResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -23314,7 +29070,7 @@ func (p *ExperimentServiceBatchGetExperimentResultResult) FastWriteNocopy(buf [] return offset } -func (p *ExperimentServiceBatchGetExperimentResultResult) BLength() int { +func (p *ExperimentServiceAssociateAnnotationTagResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -23323,7 +29079,7 @@ func (p *ExperimentServiceBatchGetExperimentResultResult) BLength() int { return l } -func (p *ExperimentServiceBatchGetExperimentResultResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceAssociateAnnotationTagResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -23332,7 +29088,7 @@ func (p *ExperimentServiceBatchGetExperimentResultResult) fastWriteField0(buf [] return offset } -func (p *ExperimentServiceBatchGetExperimentResultResult) field0Length() int { +func (p *ExperimentServiceAssociateAnnotationTagResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -23341,15 +29097,15 @@ func (p *ExperimentServiceBatchGetExperimentResultResult) field0Length() int { return l } -func (p *ExperimentServiceBatchGetExperimentResultResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceBatchGetExperimentResultResult) +func (p *ExperimentServiceAssociateAnnotationTagResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceAssociateAnnotationTagResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *BatchGetExperimentResultResponse + var _success *AssociateAnnotationTagResp if src.Success != nil { - _success = &BatchGetExperimentResultResponse{} + _success = &AssociateAnnotationTagResp{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -23359,7 +29115,7 @@ func (p *ExperimentServiceBatchGetExperimentResultResult) DeepCopy(s interface{} return nil } -func (p *ExperimentServiceCalculateExperimentAggrResultArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceDeleteAnnotationTagArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -23403,14 +29159,14 @@ func (p *ExperimentServiceCalculateExperimentAggrResultArgs) FastRead(buf []byte 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_ExperimentServiceCalculateExperimentAggrResultArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceDeleteAnnotationTagArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceCalculateExperimentAggrResultArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceDeleteAnnotationTagArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewCalculateExperimentAggrResultRequest() + _field := NewDeleteAnnotationTagReq() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -23420,11 +29176,11 @@ func (p *ExperimentServiceCalculateExperimentAggrResultArgs) FastReadField1(buf return offset, nil } -func (p *ExperimentServiceCalculateExperimentAggrResultArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceDeleteAnnotationTagArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceCalculateExperimentAggrResultArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceDeleteAnnotationTagArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -23433,7 +29189,7 @@ func (p *ExperimentServiceCalculateExperimentAggrResultArgs) FastWriteNocopy(buf return offset } -func (p *ExperimentServiceCalculateExperimentAggrResultArgs) BLength() int { +func (p *ExperimentServiceDeleteAnnotationTagArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -23442,29 +29198,29 @@ func (p *ExperimentServiceCalculateExperimentAggrResultArgs) BLength() int { return l } -func (p *ExperimentServiceCalculateExperimentAggrResultArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceDeleteAnnotationTagArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceCalculateExperimentAggrResultArgs) field1Length() int { +func (p *ExperimentServiceDeleteAnnotationTagArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceCalculateExperimentAggrResultArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceCalculateExperimentAggrResultArgs) +func (p *ExperimentServiceDeleteAnnotationTagArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceDeleteAnnotationTagArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *CalculateExperimentAggrResultRequest + var _req *DeleteAnnotationTagReq if src.Req != nil { - _req = &CalculateExperimentAggrResultRequest{} + _req = &DeleteAnnotationTagReq{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -23474,7 +29230,7 @@ func (p *ExperimentServiceCalculateExperimentAggrResultArgs) DeepCopy(s interfac return nil } -func (p *ExperimentServiceCalculateExperimentAggrResultResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceDeleteAnnotationTagResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -23518,14 +29274,14 @@ func (p *ExperimentServiceCalculateExperimentAggrResultResult) FastRead(buf []by 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_ExperimentServiceCalculateExperimentAggrResultResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceDeleteAnnotationTagResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceCalculateExperimentAggrResultResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceDeleteAnnotationTagResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewCalculateExperimentAggrResultResponse() + _field := NewDeleteAnnotationTagResp() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -23535,11 +29291,11 @@ func (p *ExperimentServiceCalculateExperimentAggrResultResult) FastReadField0(bu return offset, nil } -func (p *ExperimentServiceCalculateExperimentAggrResultResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceDeleteAnnotationTagResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceCalculateExperimentAggrResultResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceDeleteAnnotationTagResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -23548,7 +29304,7 @@ func (p *ExperimentServiceCalculateExperimentAggrResultResult) FastWriteNocopy(b return offset } -func (p *ExperimentServiceCalculateExperimentAggrResultResult) BLength() int { +func (p *ExperimentServiceDeleteAnnotationTagResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -23557,7 +29313,7 @@ func (p *ExperimentServiceCalculateExperimentAggrResultResult) BLength() int { return l } -func (p *ExperimentServiceCalculateExperimentAggrResultResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceDeleteAnnotationTagResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -23566,7 +29322,7 @@ func (p *ExperimentServiceCalculateExperimentAggrResultResult) fastWriteField0(b return offset } -func (p *ExperimentServiceCalculateExperimentAggrResultResult) field0Length() int { +func (p *ExperimentServiceDeleteAnnotationTagResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -23575,15 +29331,15 @@ func (p *ExperimentServiceCalculateExperimentAggrResultResult) field0Length() in return l } -func (p *ExperimentServiceCalculateExperimentAggrResultResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceCalculateExperimentAggrResultResult) +func (p *ExperimentServiceDeleteAnnotationTagResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceDeleteAnnotationTagResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *CalculateExperimentAggrResultResponse + var _success *DeleteAnnotationTagResp if src.Success != nil { - _success = &CalculateExperimentAggrResultResponse{} + _success = &DeleteAnnotationTagResp{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -23593,7 +29349,7 @@ func (p *ExperimentServiceCalculateExperimentAggrResultResult) DeepCopy(s interf return nil } -func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceCreateAnnotateRecordArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -23637,14 +29393,14 @@ func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) FastRead(buf []byte) 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_ExperimentServiceBatchGetExperimentAggrResultArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceCreateAnnotateRecordArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceCreateAnnotateRecordArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewBatchGetExperimentAggrResultRequest() + _field := NewCreateAnnotateRecordReq() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -23654,11 +29410,11 @@ func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) FastReadField1(buf [ return offset, nil } -func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceCreateAnnotateRecordArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceCreateAnnotateRecordArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -23667,7 +29423,7 @@ func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) FastWriteNocopy(buf return offset } -func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) BLength() int { +func (p *ExperimentServiceCreateAnnotateRecordArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -23676,29 +29432,29 @@ func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) BLength() int { return l } -func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceCreateAnnotateRecordArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) field1Length() int { +func (p *ExperimentServiceCreateAnnotateRecordArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceBatchGetExperimentAggrResultArgs) +func (p *ExperimentServiceCreateAnnotateRecordArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceCreateAnnotateRecordArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *BatchGetExperimentAggrResultRequest + var _req *CreateAnnotateRecordReq if src.Req != nil { - _req = &BatchGetExperimentAggrResultRequest{} + _req = &CreateAnnotateRecordReq{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -23708,7 +29464,7 @@ func (p *ExperimentServiceBatchGetExperimentAggrResultArgs) DeepCopy(s interface return nil } -func (p *ExperimentServiceBatchGetExperimentAggrResultResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceCreateAnnotateRecordResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -23752,14 +29508,14 @@ func (p *ExperimentServiceBatchGetExperimentAggrResultResult) FastRead(buf []byt 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_ExperimentServiceBatchGetExperimentAggrResultResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceCreateAnnotateRecordResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceBatchGetExperimentAggrResultResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceCreateAnnotateRecordResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewBatchGetExperimentAggrResultResponse() + _field := NewCreateAnnotateRecordResp() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -23769,11 +29525,11 @@ func (p *ExperimentServiceBatchGetExperimentAggrResultResult) FastReadField0(buf return offset, nil } -func (p *ExperimentServiceBatchGetExperimentAggrResultResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceCreateAnnotateRecordResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceBatchGetExperimentAggrResultResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceCreateAnnotateRecordResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -23782,7 +29538,7 @@ func (p *ExperimentServiceBatchGetExperimentAggrResultResult) FastWriteNocopy(bu return offset } -func (p *ExperimentServiceBatchGetExperimentAggrResultResult) BLength() int { +func (p *ExperimentServiceCreateAnnotateRecordResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -23791,7 +29547,7 @@ func (p *ExperimentServiceBatchGetExperimentAggrResultResult) BLength() int { return l } -func (p *ExperimentServiceBatchGetExperimentAggrResultResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceCreateAnnotateRecordResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -23800,7 +29556,7 @@ func (p *ExperimentServiceBatchGetExperimentAggrResultResult) fastWriteField0(bu return offset } -func (p *ExperimentServiceBatchGetExperimentAggrResultResult) field0Length() int { +func (p *ExperimentServiceCreateAnnotateRecordResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -23809,15 +29565,15 @@ func (p *ExperimentServiceBatchGetExperimentAggrResultResult) field0Length() int return l } -func (p *ExperimentServiceBatchGetExperimentAggrResultResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceBatchGetExperimentAggrResultResult) +func (p *ExperimentServiceCreateAnnotateRecordResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceCreateAnnotateRecordResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *BatchGetExperimentAggrResultResponse + var _success *CreateAnnotateRecordResp if src.Success != nil { - _success = &BatchGetExperimentAggrResultResponse{} + _success = &CreateAnnotateRecordResp{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -23827,7 +29583,7 @@ func (p *ExperimentServiceBatchGetExperimentAggrResultResult) DeepCopy(s interfa return nil } -func (p *ExperimentServiceInvokeExperimentArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceUpdateAnnotateRecordArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -23871,14 +29627,14 @@ func (p *ExperimentServiceInvokeExperimentArgs) FastRead(buf []byte) (int, error 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_ExperimentServiceInvokeExperimentArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceUpdateAnnotateRecordArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceInvokeExperimentArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceUpdateAnnotateRecordArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewInvokeExperimentRequest() + _field := NewUpdateAnnotateRecordReq() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -23888,11 +29644,11 @@ func (p *ExperimentServiceInvokeExperimentArgs) FastReadField1(buf []byte) (int, return offset, nil } -func (p *ExperimentServiceInvokeExperimentArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceUpdateAnnotateRecordArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceInvokeExperimentArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceUpdateAnnotateRecordArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -23901,7 +29657,7 @@ func (p *ExperimentServiceInvokeExperimentArgs) FastWriteNocopy(buf []byte, w th return offset } -func (p *ExperimentServiceInvokeExperimentArgs) BLength() int { +func (p *ExperimentServiceUpdateAnnotateRecordArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -23910,29 +29666,29 @@ func (p *ExperimentServiceInvokeExperimentArgs) BLength() int { return l } -func (p *ExperimentServiceInvokeExperimentArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceUpdateAnnotateRecordArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceInvokeExperimentArgs) field1Length() int { +func (p *ExperimentServiceUpdateAnnotateRecordArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceInvokeExperimentArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceInvokeExperimentArgs) +func (p *ExperimentServiceUpdateAnnotateRecordArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceUpdateAnnotateRecordArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *InvokeExperimentRequest + var _req *UpdateAnnotateRecordReq if src.Req != nil { - _req = &InvokeExperimentRequest{} + _req = &UpdateAnnotateRecordReq{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -23942,7 +29698,7 @@ func (p *ExperimentServiceInvokeExperimentArgs) DeepCopy(s interface{}) error { return nil } -func (p *ExperimentServiceInvokeExperimentResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceUpdateAnnotateRecordResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -23986,14 +29742,14 @@ func (p *ExperimentServiceInvokeExperimentResult) FastRead(buf []byte) (int, err 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_ExperimentServiceInvokeExperimentResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceUpdateAnnotateRecordResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceInvokeExperimentResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceUpdateAnnotateRecordResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewInvokeExperimentResponse() + _field := NewUpdateAnnotateRecordResp() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -24003,11 +29759,11 @@ func (p *ExperimentServiceInvokeExperimentResult) FastReadField0(buf []byte) (in return offset, nil } -func (p *ExperimentServiceInvokeExperimentResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceUpdateAnnotateRecordResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceInvokeExperimentResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceUpdateAnnotateRecordResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -24016,7 +29772,7 @@ func (p *ExperimentServiceInvokeExperimentResult) FastWriteNocopy(buf []byte, w return offset } -func (p *ExperimentServiceInvokeExperimentResult) BLength() int { +func (p *ExperimentServiceUpdateAnnotateRecordResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -24025,7 +29781,7 @@ func (p *ExperimentServiceInvokeExperimentResult) BLength() int { return l } -func (p *ExperimentServiceInvokeExperimentResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceUpdateAnnotateRecordResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -24034,7 +29790,7 @@ func (p *ExperimentServiceInvokeExperimentResult) fastWriteField0(buf []byte, w return offset } -func (p *ExperimentServiceInvokeExperimentResult) field0Length() int { +func (p *ExperimentServiceUpdateAnnotateRecordResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -24043,15 +29799,15 @@ func (p *ExperimentServiceInvokeExperimentResult) field0Length() int { return l } -func (p *ExperimentServiceInvokeExperimentResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceInvokeExperimentResult) +func (p *ExperimentServiceUpdateAnnotateRecordResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceUpdateAnnotateRecordResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *InvokeExperimentResponse + var _success *UpdateAnnotateRecordResp if src.Success != nil { - _success = &InvokeExperimentResponse{} + _success = &UpdateAnnotateRecordResp{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -24061,7 +29817,7 @@ func (p *ExperimentServiceInvokeExperimentResult) DeepCopy(s interface{}) error return nil } -func (p *ExperimentServiceFinishExperimentArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceExportExptResultArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -24105,14 +29861,14 @@ func (p *ExperimentServiceFinishExperimentArgs) FastRead(buf []byte) (int, error 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_ExperimentServiceFinishExperimentArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceExportExptResultArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceFinishExperimentArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceExportExptResultArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewFinishExperimentRequest() + _field := NewExportExptResultRequest() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -24122,11 +29878,11 @@ func (p *ExperimentServiceFinishExperimentArgs) FastReadField1(buf []byte) (int, return offset, nil } -func (p *ExperimentServiceFinishExperimentArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceExportExptResultArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceFinishExperimentArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceExportExptResultArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -24135,7 +29891,7 @@ func (p *ExperimentServiceFinishExperimentArgs) FastWriteNocopy(buf []byte, w th return offset } -func (p *ExperimentServiceFinishExperimentArgs) BLength() int { +func (p *ExperimentServiceExportExptResultArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -24144,29 +29900,29 @@ func (p *ExperimentServiceFinishExperimentArgs) BLength() int { return l } -func (p *ExperimentServiceFinishExperimentArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceExportExptResultArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceFinishExperimentArgs) field1Length() int { +func (p *ExperimentServiceExportExptResultArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceFinishExperimentArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceFinishExperimentArgs) +func (p *ExperimentServiceExportExptResultArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceExportExptResultArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *FinishExperimentRequest + var _req *ExportExptResultRequest if src.Req != nil { - _req = &FinishExperimentRequest{} + _req = &ExportExptResultRequest{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -24176,7 +29932,7 @@ func (p *ExperimentServiceFinishExperimentArgs) DeepCopy(s interface{}) error { return nil } -func (p *ExperimentServiceFinishExperimentResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceExportExptResultResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -24220,14 +29976,14 @@ func (p *ExperimentServiceFinishExperimentResult) FastRead(buf []byte) (int, err 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_ExperimentServiceFinishExperimentResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceExportExptResultResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceFinishExperimentResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceExportExptResultResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewFinishExperimentResponse() + _field := NewExportExptResultResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -24237,11 +29993,11 @@ func (p *ExperimentServiceFinishExperimentResult) FastReadField0(buf []byte) (in return offset, nil } -func (p *ExperimentServiceFinishExperimentResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceExportExptResultResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceFinishExperimentResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceExportExptResultResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -24250,7 +30006,7 @@ func (p *ExperimentServiceFinishExperimentResult) FastWriteNocopy(buf []byte, w return offset } -func (p *ExperimentServiceFinishExperimentResult) BLength() int { +func (p *ExperimentServiceExportExptResultResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -24259,7 +30015,7 @@ func (p *ExperimentServiceFinishExperimentResult) BLength() int { return l } -func (p *ExperimentServiceFinishExperimentResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceExportExptResultResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -24268,7 +30024,7 @@ func (p *ExperimentServiceFinishExperimentResult) fastWriteField0(buf []byte, w return offset } -func (p *ExperimentServiceFinishExperimentResult) field0Length() int { +func (p *ExperimentServiceExportExptResultResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -24277,15 +30033,15 @@ func (p *ExperimentServiceFinishExperimentResult) field0Length() int { return l } -func (p *ExperimentServiceFinishExperimentResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceFinishExperimentResult) +func (p *ExperimentServiceExportExptResultResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceExportExptResultResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *FinishExperimentResponse + var _success *ExportExptResultResponse if src.Success != nil { - _success = &FinishExperimentResponse{} + _success = &ExportExptResultResponse{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -24295,7 +30051,7 @@ func (p *ExperimentServiceFinishExperimentResult) DeepCopy(s interface{}) error return nil } -func (p *ExperimentServiceListExperimentStatsArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceListExptResultExportRecordArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -24339,14 +30095,14 @@ func (p *ExperimentServiceListExperimentStatsArgs) FastRead(buf []byte) (int, er 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_ExperimentServiceListExperimentStatsArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceListExptResultExportRecordArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceListExperimentStatsArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceListExptResultExportRecordArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewListExperimentStatsRequest() + _field := NewListExptResultExportRecordRequest() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -24356,11 +30112,11 @@ func (p *ExperimentServiceListExperimentStatsArgs) FastReadField1(buf []byte) (i return offset, nil } -func (p *ExperimentServiceListExperimentStatsArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceListExptResultExportRecordArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceListExperimentStatsArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceListExptResultExportRecordArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -24369,7 +30125,7 @@ func (p *ExperimentServiceListExperimentStatsArgs) FastWriteNocopy(buf []byte, w return offset } -func (p *ExperimentServiceListExperimentStatsArgs) BLength() int { +func (p *ExperimentServiceListExptResultExportRecordArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -24378,29 +30134,29 @@ func (p *ExperimentServiceListExperimentStatsArgs) BLength() int { return l } -func (p *ExperimentServiceListExperimentStatsArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceListExptResultExportRecordArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceListExperimentStatsArgs) field1Length() int { +func (p *ExperimentServiceListExptResultExportRecordArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceListExperimentStatsArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceListExperimentStatsArgs) +func (p *ExperimentServiceListExptResultExportRecordArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceListExptResultExportRecordArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *ListExperimentStatsRequest + var _req *ListExptResultExportRecordRequest if src.Req != nil { - _req = &ListExperimentStatsRequest{} + _req = &ListExptResultExportRecordRequest{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -24410,7 +30166,7 @@ func (p *ExperimentServiceListExperimentStatsArgs) DeepCopy(s interface{}) error return nil } -func (p *ExperimentServiceListExperimentStatsResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceListExptResultExportRecordResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -24454,14 +30210,14 @@ func (p *ExperimentServiceListExperimentStatsResult) FastRead(buf []byte) (int, 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_ExperimentServiceListExperimentStatsResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceListExptResultExportRecordResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceListExperimentStatsResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceListExptResultExportRecordResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewListExperimentStatsResponse() + _field := NewListExptResultExportRecordResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -24471,11 +30227,11 @@ func (p *ExperimentServiceListExperimentStatsResult) FastReadField0(buf []byte) return offset, nil } -func (p *ExperimentServiceListExperimentStatsResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceListExptResultExportRecordResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceListExperimentStatsResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceListExptResultExportRecordResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -24484,7 +30240,7 @@ func (p *ExperimentServiceListExperimentStatsResult) FastWriteNocopy(buf []byte, return offset } -func (p *ExperimentServiceListExperimentStatsResult) BLength() int { +func (p *ExperimentServiceListExptResultExportRecordResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -24493,7 +30249,7 @@ func (p *ExperimentServiceListExperimentStatsResult) BLength() int { return l } -func (p *ExperimentServiceListExperimentStatsResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceListExptResultExportRecordResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -24502,7 +30258,7 @@ func (p *ExperimentServiceListExperimentStatsResult) fastWriteField0(buf []byte, return offset } -func (p *ExperimentServiceListExperimentStatsResult) field0Length() int { +func (p *ExperimentServiceListExptResultExportRecordResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -24511,15 +30267,15 @@ func (p *ExperimentServiceListExperimentStatsResult) field0Length() int { return l } -func (p *ExperimentServiceListExperimentStatsResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceListExperimentStatsResult) +func (p *ExperimentServiceListExptResultExportRecordResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceListExptResultExportRecordResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *ListExperimentStatsResponse + var _success *ListExptResultExportRecordResponse if src.Success != nil { - _success = &ListExperimentStatsResponse{} + _success = &ListExptResultExportRecordResponse{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -24529,7 +30285,7 @@ func (p *ExperimentServiceListExperimentStatsResult) DeepCopy(s interface{}) err return nil } -func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceGetExptResultExportRecordArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -24573,14 +30329,14 @@ func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) FastRead(buf []byte) ( 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_ExperimentServiceUpsertExptTurnResultFilterArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceGetExptResultExportRecordArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceGetExptResultExportRecordArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewUpsertExptTurnResultFilterRequest() + _field := NewGetExptResultExportRecordRequest() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -24590,11 +30346,11 @@ func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) FastReadField1(buf []b return offset, nil } -func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceGetExptResultExportRecordArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceGetExptResultExportRecordArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -24603,7 +30359,7 @@ func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) FastWriteNocopy(buf [] return offset } -func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) BLength() int { +func (p *ExperimentServiceGetExptResultExportRecordArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -24612,29 +30368,29 @@ func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) BLength() int { return l } -func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceGetExptResultExportRecordArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) field1Length() int { +func (p *ExperimentServiceGetExptResultExportRecordArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceUpsertExptTurnResultFilterArgs) +func (p *ExperimentServiceGetExptResultExportRecordArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceGetExptResultExportRecordArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *UpsertExptTurnResultFilterRequest + var _req *GetExptResultExportRecordRequest if src.Req != nil { - _req = &UpsertExptTurnResultFilterRequest{} + _req = &GetExptResultExportRecordRequest{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -24644,7 +30400,7 @@ func (p *ExperimentServiceUpsertExptTurnResultFilterArgs) DeepCopy(s interface{} return nil } -func (p *ExperimentServiceUpsertExptTurnResultFilterResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceGetExptResultExportRecordResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -24688,14 +30444,14 @@ func (p *ExperimentServiceUpsertExptTurnResultFilterResult) FastRead(buf []byte) 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_ExperimentServiceUpsertExptTurnResultFilterResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceGetExptResultExportRecordResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceUpsertExptTurnResultFilterResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceGetExptResultExportRecordResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewUpsertExptTurnResultFilterResponse() + _field := NewGetExptResultExportRecordResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -24705,11 +30461,11 @@ func (p *ExperimentServiceUpsertExptTurnResultFilterResult) FastReadField0(buf [ return offset, nil } -func (p *ExperimentServiceUpsertExptTurnResultFilterResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceGetExptResultExportRecordResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceUpsertExptTurnResultFilterResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceGetExptResultExportRecordResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -24718,7 +30474,7 @@ func (p *ExperimentServiceUpsertExptTurnResultFilterResult) FastWriteNocopy(buf return offset } -func (p *ExperimentServiceUpsertExptTurnResultFilterResult) BLength() int { +func (p *ExperimentServiceGetExptResultExportRecordResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -24727,7 +30483,7 @@ func (p *ExperimentServiceUpsertExptTurnResultFilterResult) BLength() int { return l } -func (p *ExperimentServiceUpsertExptTurnResultFilterResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceGetExptResultExportRecordResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -24736,7 +30492,7 @@ func (p *ExperimentServiceUpsertExptTurnResultFilterResult) fastWriteField0(buf return offset } -func (p *ExperimentServiceUpsertExptTurnResultFilterResult) field0Length() int { +func (p *ExperimentServiceGetExptResultExportRecordResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -24745,15 +30501,15 @@ func (p *ExperimentServiceUpsertExptTurnResultFilterResult) field0Length() int { return l } -func (p *ExperimentServiceUpsertExptTurnResultFilterResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceUpsertExptTurnResultFilterResult) +func (p *ExperimentServiceGetExptResultExportRecordResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceGetExptResultExportRecordResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *UpsertExptTurnResultFilterResponse + var _success *GetExptResultExportRecordResponse if src.Success != nil { - _success = &UpsertExptTurnResultFilterResponse{} + _success = &GetExptResultExportRecordResponse{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -24763,7 +30519,7 @@ func (p *ExperimentServiceUpsertExptTurnResultFilterResult) DeepCopy(s interface return nil } -func (p *ExperimentServiceAssociateAnnotationTagArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceInsightAnalysisExperimentArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -24807,14 +30563,14 @@ func (p *ExperimentServiceAssociateAnnotationTagArgs) FastRead(buf []byte) (int, 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_ExperimentServiceAssociateAnnotationTagArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceInsightAnalysisExperimentArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceAssociateAnnotationTagArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceInsightAnalysisExperimentArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewAssociateAnnotationTagReq() + _field := NewInsightAnalysisExperimentRequest() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -24824,11 +30580,11 @@ func (p *ExperimentServiceAssociateAnnotationTagArgs) FastReadField1(buf []byte) return offset, nil } -func (p *ExperimentServiceAssociateAnnotationTagArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceInsightAnalysisExperimentArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceAssociateAnnotationTagArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceInsightAnalysisExperimentArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -24837,7 +30593,7 @@ func (p *ExperimentServiceAssociateAnnotationTagArgs) FastWriteNocopy(buf []byte return offset } -func (p *ExperimentServiceAssociateAnnotationTagArgs) BLength() int { +func (p *ExperimentServiceInsightAnalysisExperimentArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -24846,29 +30602,29 @@ func (p *ExperimentServiceAssociateAnnotationTagArgs) BLength() int { return l } -func (p *ExperimentServiceAssociateAnnotationTagArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceInsightAnalysisExperimentArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceAssociateAnnotationTagArgs) field1Length() int { +func (p *ExperimentServiceInsightAnalysisExperimentArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceAssociateAnnotationTagArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceAssociateAnnotationTagArgs) +func (p *ExperimentServiceInsightAnalysisExperimentArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceInsightAnalysisExperimentArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *AssociateAnnotationTagReq + var _req *InsightAnalysisExperimentRequest if src.Req != nil { - _req = &AssociateAnnotationTagReq{} + _req = &InsightAnalysisExperimentRequest{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -24878,7 +30634,7 @@ func (p *ExperimentServiceAssociateAnnotationTagArgs) DeepCopy(s interface{}) er return nil } -func (p *ExperimentServiceAssociateAnnotationTagResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceInsightAnalysisExperimentResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -24922,14 +30678,14 @@ func (p *ExperimentServiceAssociateAnnotationTagResult) FastRead(buf []byte) (in 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_ExperimentServiceAssociateAnnotationTagResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceInsightAnalysisExperimentResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceAssociateAnnotationTagResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceInsightAnalysisExperimentResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewAssociateAnnotationTagResp() + _field := NewInsightAnalysisExperimentResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -24939,11 +30695,11 @@ func (p *ExperimentServiceAssociateAnnotationTagResult) FastReadField0(buf []byt return offset, nil } -func (p *ExperimentServiceAssociateAnnotationTagResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceInsightAnalysisExperimentResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceAssociateAnnotationTagResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceInsightAnalysisExperimentResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -24952,7 +30708,7 @@ func (p *ExperimentServiceAssociateAnnotationTagResult) FastWriteNocopy(buf []by return offset } -func (p *ExperimentServiceAssociateAnnotationTagResult) BLength() int { +func (p *ExperimentServiceInsightAnalysisExperimentResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -24961,7 +30717,7 @@ func (p *ExperimentServiceAssociateAnnotationTagResult) BLength() int { return l } -func (p *ExperimentServiceAssociateAnnotationTagResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceInsightAnalysisExperimentResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -24970,7 +30726,7 @@ func (p *ExperimentServiceAssociateAnnotationTagResult) fastWriteField0(buf []by return offset } -func (p *ExperimentServiceAssociateAnnotationTagResult) field0Length() int { +func (p *ExperimentServiceInsightAnalysisExperimentResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -24979,15 +30735,15 @@ func (p *ExperimentServiceAssociateAnnotationTagResult) field0Length() int { return l } -func (p *ExperimentServiceAssociateAnnotationTagResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceAssociateAnnotationTagResult) +func (p *ExperimentServiceInsightAnalysisExperimentResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceInsightAnalysisExperimentResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *AssociateAnnotationTagResp + var _success *InsightAnalysisExperimentResponse if src.Success != nil { - _success = &AssociateAnnotationTagResp{} + _success = &InsightAnalysisExperimentResponse{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -24997,7 +30753,7 @@ func (p *ExperimentServiceAssociateAnnotationTagResult) DeepCopy(s interface{}) return nil } -func (p *ExperimentServiceDeleteAnnotationTagArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -25041,14 +30797,14 @@ func (p *ExperimentServiceDeleteAnnotationTagArgs) FastRead(buf []byte) (int, er 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_ExperimentServiceDeleteAnnotationTagArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceListExptInsightAnalysisRecordArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceDeleteAnnotationTagArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewDeleteAnnotationTagReq() + _field := NewListExptInsightAnalysisRecordRequest() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -25058,11 +30814,11 @@ func (p *ExperimentServiceDeleteAnnotationTagArgs) FastReadField1(buf []byte) (i return offset, nil } -func (p *ExperimentServiceDeleteAnnotationTagArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceDeleteAnnotationTagArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -25071,7 +30827,7 @@ func (p *ExperimentServiceDeleteAnnotationTagArgs) FastWriteNocopy(buf []byte, w return offset } -func (p *ExperimentServiceDeleteAnnotationTagArgs) BLength() int { +func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -25080,29 +30836,29 @@ func (p *ExperimentServiceDeleteAnnotationTagArgs) BLength() int { return l } -func (p *ExperimentServiceDeleteAnnotationTagArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceDeleteAnnotationTagArgs) field1Length() int { +func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceDeleteAnnotationTagArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceDeleteAnnotationTagArgs) +func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceListExptInsightAnalysisRecordArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *DeleteAnnotationTagReq + var _req *ListExptInsightAnalysisRecordRequest if src.Req != nil { - _req = &DeleteAnnotationTagReq{} + _req = &ListExptInsightAnalysisRecordRequest{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -25112,7 +30868,7 @@ func (p *ExperimentServiceDeleteAnnotationTagArgs) DeepCopy(s interface{}) error return nil } -func (p *ExperimentServiceDeleteAnnotationTagResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceListExptInsightAnalysisRecordResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -25156,14 +30912,14 @@ func (p *ExperimentServiceDeleteAnnotationTagResult) FastRead(buf []byte) (int, 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_ExperimentServiceDeleteAnnotationTagResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceListExptInsightAnalysisRecordResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceDeleteAnnotationTagResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceListExptInsightAnalysisRecordResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewDeleteAnnotationTagResp() + _field := NewListExptInsightAnalysisRecordResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -25173,11 +30929,11 @@ func (p *ExperimentServiceDeleteAnnotationTagResult) FastReadField0(buf []byte) return offset, nil } -func (p *ExperimentServiceDeleteAnnotationTagResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceListExptInsightAnalysisRecordResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceDeleteAnnotationTagResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceListExptInsightAnalysisRecordResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -25186,7 +30942,7 @@ func (p *ExperimentServiceDeleteAnnotationTagResult) FastWriteNocopy(buf []byte, return offset } -func (p *ExperimentServiceDeleteAnnotationTagResult) BLength() int { +func (p *ExperimentServiceListExptInsightAnalysisRecordResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -25195,7 +30951,7 @@ func (p *ExperimentServiceDeleteAnnotationTagResult) BLength() int { return l } -func (p *ExperimentServiceDeleteAnnotationTagResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceListExptInsightAnalysisRecordResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -25204,7 +30960,7 @@ func (p *ExperimentServiceDeleteAnnotationTagResult) fastWriteField0(buf []byte, return offset } -func (p *ExperimentServiceDeleteAnnotationTagResult) field0Length() int { +func (p *ExperimentServiceListExptInsightAnalysisRecordResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -25213,15 +30969,15 @@ func (p *ExperimentServiceDeleteAnnotationTagResult) field0Length() int { return l } -func (p *ExperimentServiceDeleteAnnotationTagResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceDeleteAnnotationTagResult) +func (p *ExperimentServiceListExptInsightAnalysisRecordResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceListExptInsightAnalysisRecordResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *DeleteAnnotationTagResp + var _success *ListExptInsightAnalysisRecordResponse if src.Success != nil { - _success = &DeleteAnnotationTagResp{} + _success = &ListExptInsightAnalysisRecordResponse{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -25231,7 +30987,7 @@ func (p *ExperimentServiceDeleteAnnotationTagResult) DeepCopy(s interface{}) err return nil } -func (p *ExperimentServiceCreateAnnotateRecordArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -25275,14 +31031,14 @@ func (p *ExperimentServiceCreateAnnotateRecordArgs) FastRead(buf []byte) (int, e 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_ExperimentServiceCreateAnnotateRecordArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceDeleteExptInsightAnalysisRecordArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceCreateAnnotateRecordArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewCreateAnnotateRecordReq() + _field := NewDeleteExptInsightAnalysisRecordRequest() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -25292,11 +31048,11 @@ func (p *ExperimentServiceCreateAnnotateRecordArgs) FastReadField1(buf []byte) ( return offset, nil } -func (p *ExperimentServiceCreateAnnotateRecordArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceCreateAnnotateRecordArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -25305,7 +31061,7 @@ func (p *ExperimentServiceCreateAnnotateRecordArgs) FastWriteNocopy(buf []byte, return offset } -func (p *ExperimentServiceCreateAnnotateRecordArgs) BLength() int { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -25314,29 +31070,29 @@ func (p *ExperimentServiceCreateAnnotateRecordArgs) BLength() int { return l } -func (p *ExperimentServiceCreateAnnotateRecordArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceCreateAnnotateRecordArgs) field1Length() int { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceCreateAnnotateRecordArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceCreateAnnotateRecordArgs) +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceDeleteExptInsightAnalysisRecordArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *CreateAnnotateRecordReq + var _req *DeleteExptInsightAnalysisRecordRequest if src.Req != nil { - _req = &CreateAnnotateRecordReq{} + _req = &DeleteExptInsightAnalysisRecordRequest{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -25346,7 +31102,7 @@ func (p *ExperimentServiceCreateAnnotateRecordArgs) DeepCopy(s interface{}) erro return nil } -func (p *ExperimentServiceCreateAnnotateRecordResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -25390,14 +31146,14 @@ func (p *ExperimentServiceCreateAnnotateRecordResult) FastRead(buf []byte) (int, 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_ExperimentServiceCreateAnnotateRecordResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceDeleteExptInsightAnalysisRecordResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceCreateAnnotateRecordResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewCreateAnnotateRecordResp() + _field := NewDeleteExptInsightAnalysisRecordResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -25407,11 +31163,11 @@ func (p *ExperimentServiceCreateAnnotateRecordResult) FastReadField0(buf []byte) return offset, nil } -func (p *ExperimentServiceCreateAnnotateRecordResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceCreateAnnotateRecordResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -25420,7 +31176,7 @@ func (p *ExperimentServiceCreateAnnotateRecordResult) FastWriteNocopy(buf []byte return offset } -func (p *ExperimentServiceCreateAnnotateRecordResult) BLength() int { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -25429,7 +31185,7 @@ func (p *ExperimentServiceCreateAnnotateRecordResult) BLength() int { return l } -func (p *ExperimentServiceCreateAnnotateRecordResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -25438,7 +31194,7 @@ func (p *ExperimentServiceCreateAnnotateRecordResult) fastWriteField0(buf []byte return offset } -func (p *ExperimentServiceCreateAnnotateRecordResult) field0Length() int { +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -25447,15 +31203,15 @@ func (p *ExperimentServiceCreateAnnotateRecordResult) field0Length() int { return l } -func (p *ExperimentServiceCreateAnnotateRecordResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceCreateAnnotateRecordResult) +func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceDeleteExptInsightAnalysisRecordResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *CreateAnnotateRecordResp + var _success *DeleteExptInsightAnalysisRecordResponse if src.Success != nil { - _success = &CreateAnnotateRecordResp{} + _success = &DeleteExptInsightAnalysisRecordResponse{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -25465,7 +31221,7 @@ func (p *ExperimentServiceCreateAnnotateRecordResult) DeepCopy(s interface{}) er return nil } -func (p *ExperimentServiceUpdateAnnotateRecordArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -25509,14 +31265,14 @@ func (p *ExperimentServiceUpdateAnnotateRecordArgs) FastRead(buf []byte) (int, e 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_ExperimentServiceUpdateAnnotateRecordArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceGetExptInsightAnalysisRecordArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceUpdateAnnotateRecordArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewUpdateAnnotateRecordReq() + _field := NewGetExptInsightAnalysisRecordRequest() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -25526,11 +31282,11 @@ func (p *ExperimentServiceUpdateAnnotateRecordArgs) FastReadField1(buf []byte) ( return offset, nil } -func (p *ExperimentServiceUpdateAnnotateRecordArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceUpdateAnnotateRecordArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -25539,7 +31295,7 @@ func (p *ExperimentServiceUpdateAnnotateRecordArgs) FastWriteNocopy(buf []byte, return offset } -func (p *ExperimentServiceUpdateAnnotateRecordArgs) BLength() int { +func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -25548,29 +31304,29 @@ func (p *ExperimentServiceUpdateAnnotateRecordArgs) BLength() int { return l } -func (p *ExperimentServiceUpdateAnnotateRecordArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceUpdateAnnotateRecordArgs) field1Length() int { +func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceUpdateAnnotateRecordArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceUpdateAnnotateRecordArgs) +func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceGetExptInsightAnalysisRecordArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *UpdateAnnotateRecordReq + var _req *GetExptInsightAnalysisRecordRequest if src.Req != nil { - _req = &UpdateAnnotateRecordReq{} + _req = &GetExptInsightAnalysisRecordRequest{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -25580,7 +31336,7 @@ func (p *ExperimentServiceUpdateAnnotateRecordArgs) DeepCopy(s interface{}) erro return nil } -func (p *ExperimentServiceUpdateAnnotateRecordResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -25624,14 +31380,14 @@ func (p *ExperimentServiceUpdateAnnotateRecordResult) FastRead(buf []byte) (int, 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_ExperimentServiceUpdateAnnotateRecordResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceGetExptInsightAnalysisRecordResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceUpdateAnnotateRecordResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewUpdateAnnotateRecordResp() + _field := NewGetExptInsightAnalysisRecordResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -25641,11 +31397,11 @@ func (p *ExperimentServiceUpdateAnnotateRecordResult) FastReadField0(buf []byte) return offset, nil } -func (p *ExperimentServiceUpdateAnnotateRecordResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceUpdateAnnotateRecordResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -25654,7 +31410,7 @@ func (p *ExperimentServiceUpdateAnnotateRecordResult) FastWriteNocopy(buf []byte return offset } -func (p *ExperimentServiceUpdateAnnotateRecordResult) BLength() int { +func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -25663,7 +31419,7 @@ func (p *ExperimentServiceUpdateAnnotateRecordResult) BLength() int { return l } -func (p *ExperimentServiceUpdateAnnotateRecordResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -25672,7 +31428,7 @@ func (p *ExperimentServiceUpdateAnnotateRecordResult) fastWriteField0(buf []byte return offset } -func (p *ExperimentServiceUpdateAnnotateRecordResult) field0Length() int { +func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -25681,15 +31437,15 @@ func (p *ExperimentServiceUpdateAnnotateRecordResult) field0Length() int { return l } -func (p *ExperimentServiceUpdateAnnotateRecordResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceUpdateAnnotateRecordResult) +func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceGetExptInsightAnalysisRecordResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *UpdateAnnotateRecordResp + var _success *GetExptInsightAnalysisRecordResponse if src.Success != nil { - _success = &UpdateAnnotateRecordResp{} + _success = &GetExptInsightAnalysisRecordResponse{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -25699,7 +31455,7 @@ func (p *ExperimentServiceUpdateAnnotateRecordResult) DeepCopy(s interface{}) er return nil } -func (p *ExperimentServiceExportExptResultArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -25743,14 +31499,14 @@ func (p *ExperimentServiceExportExptResultArgs) FastRead(buf []byte) (int, error 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_ExperimentServiceExportExptResultArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceFeedbackExptInsightAnalysisReportArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceExportExptResultArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewExportExptResultRequest() + _field := NewFeedbackExptInsightAnalysisReportRequest() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -25760,11 +31516,11 @@ func (p *ExperimentServiceExportExptResultArgs) FastReadField1(buf []byte) (int, return offset, nil } -func (p *ExperimentServiceExportExptResultArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceExportExptResultArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -25773,7 +31529,7 @@ func (p *ExperimentServiceExportExptResultArgs) FastWriteNocopy(buf []byte, w th return offset } -func (p *ExperimentServiceExportExptResultArgs) BLength() int { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -25782,29 +31538,29 @@ func (p *ExperimentServiceExportExptResultArgs) BLength() int { return l } -func (p *ExperimentServiceExportExptResultArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceExportExptResultArgs) field1Length() int { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceExportExptResultArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceExportExptResultArgs) +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceFeedbackExptInsightAnalysisReportArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *ExportExptResultRequest + var _req *FeedbackExptInsightAnalysisReportRequest if src.Req != nil { - _req = &ExportExptResultRequest{} + _req = &FeedbackExptInsightAnalysisReportRequest{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -25814,7 +31570,7 @@ func (p *ExperimentServiceExportExptResultArgs) DeepCopy(s interface{}) error { return nil } -func (p *ExperimentServiceExportExptResultResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -25858,14 +31614,14 @@ func (p *ExperimentServiceExportExptResultResult) FastRead(buf []byte) (int, err 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_ExperimentServiceExportExptResultResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceFeedbackExptInsightAnalysisReportResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceExportExptResultResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewExportExptResultResponse() + _field := NewFeedbackExptInsightAnalysisReportResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -25875,11 +31631,11 @@ func (p *ExperimentServiceExportExptResultResult) FastReadField0(buf []byte) (in return offset, nil } -func (p *ExperimentServiceExportExptResultResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceExportExptResultResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -25888,7 +31644,7 @@ func (p *ExperimentServiceExportExptResultResult) FastWriteNocopy(buf []byte, w return offset } -func (p *ExperimentServiceExportExptResultResult) BLength() int { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -25897,7 +31653,7 @@ func (p *ExperimentServiceExportExptResultResult) BLength() int { return l } -func (p *ExperimentServiceExportExptResultResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -25906,7 +31662,7 @@ func (p *ExperimentServiceExportExptResultResult) fastWriteField0(buf []byte, w return offset } -func (p *ExperimentServiceExportExptResultResult) field0Length() int { +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -25915,15 +31671,15 @@ func (p *ExperimentServiceExportExptResultResult) field0Length() int { return l } -func (p *ExperimentServiceExportExptResultResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceExportExptResultResult) +func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceFeedbackExptInsightAnalysisReportResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *ExportExptResultResponse + var _success *FeedbackExptInsightAnalysisReportResponse if src.Success != nil { - _success = &ExportExptResultResponse{} + _success = &FeedbackExptInsightAnalysisReportResponse{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -25933,7 +31689,7 @@ func (p *ExperimentServiceExportExptResultResult) DeepCopy(s interface{}) error return nil } -func (p *ExperimentServiceListExptResultExportRecordArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -25977,14 +31733,14 @@ func (p *ExperimentServiceListExptResultExportRecordArgs) FastRead(buf []byte) ( 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_ExperimentServiceListExptResultExportRecordArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceListExptInsightAnalysisCommentArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceListExptResultExportRecordArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewListExptResultExportRecordRequest() + _field := NewListExptInsightAnalysisCommentRequest() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -25994,11 +31750,11 @@ func (p *ExperimentServiceListExptResultExportRecordArgs) FastReadField1(buf []b return offset, nil } -func (p *ExperimentServiceListExptResultExportRecordArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceListExptResultExportRecordArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -26007,7 +31763,7 @@ func (p *ExperimentServiceListExptResultExportRecordArgs) FastWriteNocopy(buf [] return offset } -func (p *ExperimentServiceListExptResultExportRecordArgs) BLength() int { +func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -26016,29 +31772,29 @@ func (p *ExperimentServiceListExptResultExportRecordArgs) BLength() int { return l } -func (p *ExperimentServiceListExptResultExportRecordArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceListExptResultExportRecordArgs) field1Length() int { +func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceListExptResultExportRecordArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceListExptResultExportRecordArgs) +func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceListExptInsightAnalysisCommentArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *ListExptResultExportRecordRequest + var _req *ListExptInsightAnalysisCommentRequest if src.Req != nil { - _req = &ListExptResultExportRecordRequest{} + _req = &ListExptInsightAnalysisCommentRequest{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -26048,7 +31804,7 @@ func (p *ExperimentServiceListExptResultExportRecordArgs) DeepCopy(s interface{} return nil } -func (p *ExperimentServiceListExptResultExportRecordResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceListExptInsightAnalysisCommentResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -26092,14 +31848,14 @@ func (p *ExperimentServiceListExptResultExportRecordResult) FastRead(buf []byte) 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_ExperimentServiceListExptResultExportRecordResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceListExptInsightAnalysisCommentResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceListExptResultExportRecordResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceListExptInsightAnalysisCommentResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewListExptResultExportRecordResponse() + _field := NewListExptInsightAnalysisCommentResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -26109,11 +31865,11 @@ func (p *ExperimentServiceListExptResultExportRecordResult) FastReadField0(buf [ return offset, nil } -func (p *ExperimentServiceListExptResultExportRecordResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceListExptInsightAnalysisCommentResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceListExptResultExportRecordResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceListExptInsightAnalysisCommentResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -26122,7 +31878,7 @@ func (p *ExperimentServiceListExptResultExportRecordResult) FastWriteNocopy(buf return offset } -func (p *ExperimentServiceListExptResultExportRecordResult) BLength() int { +func (p *ExperimentServiceListExptInsightAnalysisCommentResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -26131,7 +31887,7 @@ func (p *ExperimentServiceListExptResultExportRecordResult) BLength() int { return l } -func (p *ExperimentServiceListExptResultExportRecordResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceListExptInsightAnalysisCommentResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -26140,7 +31896,7 @@ func (p *ExperimentServiceListExptResultExportRecordResult) fastWriteField0(buf return offset } -func (p *ExperimentServiceListExptResultExportRecordResult) field0Length() int { +func (p *ExperimentServiceListExptInsightAnalysisCommentResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -26149,15 +31905,15 @@ func (p *ExperimentServiceListExptResultExportRecordResult) field0Length() int { return l } -func (p *ExperimentServiceListExptResultExportRecordResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceListExptResultExportRecordResult) +func (p *ExperimentServiceListExptInsightAnalysisCommentResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceListExptInsightAnalysisCommentResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *ListExptResultExportRecordResponse + var _success *ListExptInsightAnalysisCommentResponse if src.Success != nil { - _success = &ListExptResultExportRecordResponse{} + _success = &ListExptInsightAnalysisCommentResponse{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -26167,7 +31923,7 @@ func (p *ExperimentServiceListExptResultExportRecordResult) DeepCopy(s interface return nil } -func (p *ExperimentServiceGetExptResultExportRecordArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -26211,14 +31967,14 @@ func (p *ExperimentServiceGetExptResultExportRecordArgs) FastRead(buf []byte) (i 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_ExperimentServiceGetExptResultExportRecordArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceGetAnalysisRecordFeedbackVoteArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceGetExptResultExportRecordArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewGetExptResultExportRecordRequest() + _field := NewGetAnalysisRecordFeedbackVoteRequest() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -26228,11 +31984,11 @@ func (p *ExperimentServiceGetExptResultExportRecordArgs) FastReadField1(buf []by return offset, nil } -func (p *ExperimentServiceGetExptResultExportRecordArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceGetExptResultExportRecordArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -26241,7 +31997,7 @@ func (p *ExperimentServiceGetExptResultExportRecordArgs) FastWriteNocopy(buf []b return offset } -func (p *ExperimentServiceGetExptResultExportRecordArgs) BLength() int { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -26250,29 +32006,29 @@ func (p *ExperimentServiceGetExptResultExportRecordArgs) BLength() int { return l } -func (p *ExperimentServiceGetExptResultExportRecordArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceGetExptResultExportRecordArgs) field1Length() int { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceGetExptResultExportRecordArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceGetExptResultExportRecordArgs) +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *GetExptResultExportRecordRequest + var _req *GetAnalysisRecordFeedbackVoteRequest if src.Req != nil { - _req = &GetExptResultExportRecordRequest{} + _req = &GetAnalysisRecordFeedbackVoteRequest{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -26282,7 +32038,7 @@ func (p *ExperimentServiceGetExptResultExportRecordArgs) DeepCopy(s interface{}) return nil } -func (p *ExperimentServiceGetExptResultExportRecordResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -26326,14 +32082,14 @@ func (p *ExperimentServiceGetExptResultExportRecordResult) FastRead(buf []byte) 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_ExperimentServiceGetExptResultExportRecordResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceGetAnalysisRecordFeedbackVoteResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceGetExptResultExportRecordResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewGetExptResultExportRecordResponse() + _field := NewGetAnalysisRecordFeedbackVoteResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -26343,11 +32099,11 @@ func (p *ExperimentServiceGetExptResultExportRecordResult) FastReadField0(buf [] return offset, nil } -func (p *ExperimentServiceGetExptResultExportRecordResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceGetExptResultExportRecordResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -26356,7 +32112,7 @@ func (p *ExperimentServiceGetExptResultExportRecordResult) FastWriteNocopy(buf [ return offset } -func (p *ExperimentServiceGetExptResultExportRecordResult) BLength() int { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -26365,7 +32121,7 @@ func (p *ExperimentServiceGetExptResultExportRecordResult) BLength() int { return l } -func (p *ExperimentServiceGetExptResultExportRecordResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -26374,7 +32130,7 @@ func (p *ExperimentServiceGetExptResultExportRecordResult) fastWriteField0(buf [ return offset } -func (p *ExperimentServiceGetExptResultExportRecordResult) field0Length() int { +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -26383,15 +32139,15 @@ func (p *ExperimentServiceGetExptResultExportRecordResult) field0Length() int { return l } -func (p *ExperimentServiceGetExptResultExportRecordResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceGetExptResultExportRecordResult) +func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceGetAnalysisRecordFeedbackVoteResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *GetExptResultExportRecordResponse + var _success *GetAnalysisRecordFeedbackVoteResponse if src.Success != nil { - _success = &GetExptResultExportRecordResponse{} + _success = &GetAnalysisRecordFeedbackVoteResponse{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -26401,7 +32157,7 @@ func (p *ExperimentServiceGetExptResultExportRecordResult) DeepCopy(s interface{ return nil } -func (p *ExperimentServiceInsightAnalysisExperimentArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceCreateExperimentTemplateArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -26445,14 +32201,14 @@ func (p *ExperimentServiceInsightAnalysisExperimentArgs) FastRead(buf []byte) (i 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_ExperimentServiceInsightAnalysisExperimentArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceCreateExperimentTemplateArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceInsightAnalysisExperimentArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceCreateExperimentTemplateArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewInsightAnalysisExperimentRequest() + _field := NewCreateExperimentTemplateRequest() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -26462,11 +32218,11 @@ func (p *ExperimentServiceInsightAnalysisExperimentArgs) FastReadField1(buf []by return offset, nil } -func (p *ExperimentServiceInsightAnalysisExperimentArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceCreateExperimentTemplateArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceInsightAnalysisExperimentArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceCreateExperimentTemplateArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -26475,7 +32231,7 @@ func (p *ExperimentServiceInsightAnalysisExperimentArgs) FastWriteNocopy(buf []b return offset } -func (p *ExperimentServiceInsightAnalysisExperimentArgs) BLength() int { +func (p *ExperimentServiceCreateExperimentTemplateArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -26484,29 +32240,29 @@ func (p *ExperimentServiceInsightAnalysisExperimentArgs) BLength() int { return l } -func (p *ExperimentServiceInsightAnalysisExperimentArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceCreateExperimentTemplateArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceInsightAnalysisExperimentArgs) field1Length() int { +func (p *ExperimentServiceCreateExperimentTemplateArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceInsightAnalysisExperimentArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceInsightAnalysisExperimentArgs) +func (p *ExperimentServiceCreateExperimentTemplateArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceCreateExperimentTemplateArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *InsightAnalysisExperimentRequest + var _req *CreateExperimentTemplateRequest if src.Req != nil { - _req = &InsightAnalysisExperimentRequest{} + _req = &CreateExperimentTemplateRequest{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -26516,7 +32272,7 @@ func (p *ExperimentServiceInsightAnalysisExperimentArgs) DeepCopy(s interface{}) return nil } -func (p *ExperimentServiceInsightAnalysisExperimentResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceCreateExperimentTemplateResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -26560,14 +32316,14 @@ func (p *ExperimentServiceInsightAnalysisExperimentResult) FastRead(buf []byte) 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_ExperimentServiceInsightAnalysisExperimentResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceCreateExperimentTemplateResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceInsightAnalysisExperimentResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceCreateExperimentTemplateResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewInsightAnalysisExperimentResponse() + _field := NewCreateExperimentTemplateResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -26577,11 +32333,11 @@ func (p *ExperimentServiceInsightAnalysisExperimentResult) FastReadField0(buf [] return offset, nil } -func (p *ExperimentServiceInsightAnalysisExperimentResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceCreateExperimentTemplateResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceInsightAnalysisExperimentResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceCreateExperimentTemplateResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -26590,7 +32346,7 @@ func (p *ExperimentServiceInsightAnalysisExperimentResult) FastWriteNocopy(buf [ return offset } -func (p *ExperimentServiceInsightAnalysisExperimentResult) BLength() int { +func (p *ExperimentServiceCreateExperimentTemplateResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -26599,7 +32355,7 @@ func (p *ExperimentServiceInsightAnalysisExperimentResult) BLength() int { return l } -func (p *ExperimentServiceInsightAnalysisExperimentResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceCreateExperimentTemplateResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -26608,7 +32364,7 @@ func (p *ExperimentServiceInsightAnalysisExperimentResult) fastWriteField0(buf [ return offset } -func (p *ExperimentServiceInsightAnalysisExperimentResult) field0Length() int { +func (p *ExperimentServiceCreateExperimentTemplateResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -26617,15 +32373,15 @@ func (p *ExperimentServiceInsightAnalysisExperimentResult) field0Length() int { return l } -func (p *ExperimentServiceInsightAnalysisExperimentResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceInsightAnalysisExperimentResult) +func (p *ExperimentServiceCreateExperimentTemplateResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceCreateExperimentTemplateResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *InsightAnalysisExperimentResponse + var _success *CreateExperimentTemplateResponse if src.Success != nil { - _success = &InsightAnalysisExperimentResponse{} + _success = &CreateExperimentTemplateResponse{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -26635,7 +32391,7 @@ func (p *ExperimentServiceInsightAnalysisExperimentResult) DeepCopy(s interface{ return nil } -func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceBatchGetExperimentTemplateArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -26679,14 +32435,14 @@ func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) FastRead(buf []byte 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_ExperimentServiceListExptInsightAnalysisRecordArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceBatchGetExperimentTemplateArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceBatchGetExperimentTemplateArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewListExptInsightAnalysisRecordRequest() + _field := NewBatchGetExperimentTemplateRequest() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -26696,11 +32452,11 @@ func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) FastReadField1(buf return offset, nil } -func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceBatchGetExperimentTemplateArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceBatchGetExperimentTemplateArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -26709,7 +32465,7 @@ func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) FastWriteNocopy(buf return offset } -func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) BLength() int { +func (p *ExperimentServiceBatchGetExperimentTemplateArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -26718,29 +32474,29 @@ func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) BLength() int { return l } -func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceBatchGetExperimentTemplateArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) field1Length() int { +func (p *ExperimentServiceBatchGetExperimentTemplateArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceListExptInsightAnalysisRecordArgs) +func (p *ExperimentServiceBatchGetExperimentTemplateArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceBatchGetExperimentTemplateArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *ListExptInsightAnalysisRecordRequest + var _req *BatchGetExperimentTemplateRequest if src.Req != nil { - _req = &ListExptInsightAnalysisRecordRequest{} + _req = &BatchGetExperimentTemplateRequest{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -26750,7 +32506,7 @@ func (p *ExperimentServiceListExptInsightAnalysisRecordArgs) DeepCopy(s interfac return nil } -func (p *ExperimentServiceListExptInsightAnalysisRecordResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceBatchGetExperimentTemplateResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -26794,14 +32550,14 @@ func (p *ExperimentServiceListExptInsightAnalysisRecordResult) FastRead(buf []by 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_ExperimentServiceListExptInsightAnalysisRecordResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceBatchGetExperimentTemplateResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceListExptInsightAnalysisRecordResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceBatchGetExperimentTemplateResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewListExptInsightAnalysisRecordResponse() + _field := NewBatchGetExperimentTemplateResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -26811,11 +32567,11 @@ func (p *ExperimentServiceListExptInsightAnalysisRecordResult) FastReadField0(bu return offset, nil } -func (p *ExperimentServiceListExptInsightAnalysisRecordResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceBatchGetExperimentTemplateResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceListExptInsightAnalysisRecordResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceBatchGetExperimentTemplateResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -26824,7 +32580,7 @@ func (p *ExperimentServiceListExptInsightAnalysisRecordResult) FastWriteNocopy(b return offset } -func (p *ExperimentServiceListExptInsightAnalysisRecordResult) BLength() int { +func (p *ExperimentServiceBatchGetExperimentTemplateResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -26833,7 +32589,7 @@ func (p *ExperimentServiceListExptInsightAnalysisRecordResult) BLength() int { return l } -func (p *ExperimentServiceListExptInsightAnalysisRecordResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceBatchGetExperimentTemplateResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -26842,7 +32598,7 @@ func (p *ExperimentServiceListExptInsightAnalysisRecordResult) fastWriteField0(b return offset } -func (p *ExperimentServiceListExptInsightAnalysisRecordResult) field0Length() int { +func (p *ExperimentServiceBatchGetExperimentTemplateResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -26851,15 +32607,15 @@ func (p *ExperimentServiceListExptInsightAnalysisRecordResult) field0Length() in return l } -func (p *ExperimentServiceListExptInsightAnalysisRecordResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceListExptInsightAnalysisRecordResult) +func (p *ExperimentServiceBatchGetExperimentTemplateResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceBatchGetExperimentTemplateResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *ListExptInsightAnalysisRecordResponse + var _success *BatchGetExperimentTemplateResponse if src.Success != nil { - _success = &ListExptInsightAnalysisRecordResponse{} + _success = &BatchGetExperimentTemplateResponse{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -26869,7 +32625,7 @@ func (p *ExperimentServiceListExptInsightAnalysisRecordResult) DeepCopy(s interf return nil } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceUpdateExperimentTemplateMetaArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -26913,14 +32669,14 @@ func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) FastRead(buf []by 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_ExperimentServiceDeleteExptInsightAnalysisRecordArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceUpdateExperimentTemplateMetaArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceUpdateExperimentTemplateMetaArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewDeleteExptInsightAnalysisRecordRequest() + _field := NewUpdateExperimentTemplateMetaRequest() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -26930,11 +32686,11 @@ func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) FastReadField1(bu return offset, nil } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceUpdateExperimentTemplateMetaArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceUpdateExperimentTemplateMetaArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -26943,7 +32699,7 @@ func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) FastWriteNocopy(b return offset } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) BLength() int { +func (p *ExperimentServiceUpdateExperimentTemplateMetaArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -26952,29 +32708,29 @@ func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) BLength() int { return l } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceUpdateExperimentTemplateMetaArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) field1Length() int { +func (p *ExperimentServiceUpdateExperimentTemplateMetaArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceDeleteExptInsightAnalysisRecordArgs) +func (p *ExperimentServiceUpdateExperimentTemplateMetaArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceUpdateExperimentTemplateMetaArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *DeleteExptInsightAnalysisRecordRequest + var _req *UpdateExperimentTemplateMetaRequest if src.Req != nil { - _req = &DeleteExptInsightAnalysisRecordRequest{} + _req = &UpdateExperimentTemplateMetaRequest{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -26984,7 +32740,7 @@ func (p *ExperimentServiceDeleteExptInsightAnalysisRecordArgs) DeepCopy(s interf return nil } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceUpdateExperimentTemplateMetaResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -27028,14 +32784,14 @@ func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) FastRead(buf [] 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_ExperimentServiceDeleteExptInsightAnalysisRecordResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceUpdateExperimentTemplateMetaResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceUpdateExperimentTemplateMetaResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewDeleteExptInsightAnalysisRecordResponse() + _field := NewUpdateExperimentTemplateMetaResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -27045,11 +32801,11 @@ func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) FastReadField0( return offset, nil } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceUpdateExperimentTemplateMetaResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceUpdateExperimentTemplateMetaResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -27058,7 +32814,7 @@ func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) FastWriteNocopy return offset } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) BLength() int { +func (p *ExperimentServiceUpdateExperimentTemplateMetaResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -27067,7 +32823,7 @@ func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) BLength() int { return l } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceUpdateExperimentTemplateMetaResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -27076,7 +32832,7 @@ func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) fastWriteField0 return offset } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) field0Length() int { +func (p *ExperimentServiceUpdateExperimentTemplateMetaResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -27085,15 +32841,15 @@ func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) field0Length() return l } -func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceDeleteExptInsightAnalysisRecordResult) +func (p *ExperimentServiceUpdateExperimentTemplateMetaResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceUpdateExperimentTemplateMetaResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *DeleteExptInsightAnalysisRecordResponse + var _success *UpdateExperimentTemplateMetaResponse if src.Success != nil { - _success = &DeleteExptInsightAnalysisRecordResponse{} + _success = &UpdateExperimentTemplateMetaResponse{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -27103,7 +32859,7 @@ func (p *ExperimentServiceDeleteExptInsightAnalysisRecordResult) DeepCopy(s inte return nil } -func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceUpdateExperimentTemplateArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -27147,14 +32903,14 @@ func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) FastRead(buf []byte) 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_ExperimentServiceGetExptInsightAnalysisRecordArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceUpdateExperimentTemplateArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceUpdateExperimentTemplateArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewGetExptInsightAnalysisRecordRequest() + _field := NewUpdateExperimentTemplateRequest() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -27164,11 +32920,11 @@ func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) FastReadField1(buf [ return offset, nil } -func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceUpdateExperimentTemplateArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceUpdateExperimentTemplateArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -27177,7 +32933,7 @@ func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) FastWriteNocopy(buf return offset } -func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) BLength() int { +func (p *ExperimentServiceUpdateExperimentTemplateArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -27186,29 +32942,29 @@ func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) BLength() int { return l } -func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceUpdateExperimentTemplateArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) field1Length() int { +func (p *ExperimentServiceUpdateExperimentTemplateArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceGetExptInsightAnalysisRecordArgs) +func (p *ExperimentServiceUpdateExperimentTemplateArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceUpdateExperimentTemplateArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *GetExptInsightAnalysisRecordRequest + var _req *UpdateExperimentTemplateRequest if src.Req != nil { - _req = &GetExptInsightAnalysisRecordRequest{} + _req = &UpdateExperimentTemplateRequest{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -27218,7 +32974,7 @@ func (p *ExperimentServiceGetExptInsightAnalysisRecordArgs) DeepCopy(s interface return nil } -func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceUpdateExperimentTemplateResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -27262,14 +33018,14 @@ func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) FastRead(buf []byt 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_ExperimentServiceGetExptInsightAnalysisRecordResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceUpdateExperimentTemplateResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceUpdateExperimentTemplateResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewGetExptInsightAnalysisRecordResponse() + _field := NewUpdateExperimentTemplateResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -27279,11 +33035,11 @@ func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) FastReadField0(buf return offset, nil } -func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceUpdateExperimentTemplateResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceUpdateExperimentTemplateResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -27292,7 +33048,7 @@ func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) FastWriteNocopy(bu return offset } -func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) BLength() int { +func (p *ExperimentServiceUpdateExperimentTemplateResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -27301,7 +33057,7 @@ func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) BLength() int { return l } -func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceUpdateExperimentTemplateResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -27310,7 +33066,7 @@ func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) fastWriteField0(bu return offset } -func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) field0Length() int { +func (p *ExperimentServiceUpdateExperimentTemplateResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -27319,15 +33075,15 @@ func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) field0Length() int return l } -func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceGetExptInsightAnalysisRecordResult) +func (p *ExperimentServiceUpdateExperimentTemplateResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceUpdateExperimentTemplateResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *GetExptInsightAnalysisRecordResponse + var _success *UpdateExperimentTemplateResponse if src.Success != nil { - _success = &GetExptInsightAnalysisRecordResponse{} + _success = &UpdateExperimentTemplateResponse{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -27337,7 +33093,7 @@ func (p *ExperimentServiceGetExptInsightAnalysisRecordResult) DeepCopy(s interfa return nil } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceDeleteExperimentTemplateArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -27381,14 +33137,14 @@ func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) FastRead(buf [] 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_ExperimentServiceFeedbackExptInsightAnalysisReportArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceDeleteExperimentTemplateArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceDeleteExperimentTemplateArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewFeedbackExptInsightAnalysisReportRequest() + _field := NewDeleteExperimentTemplateRequest() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -27398,11 +33154,11 @@ func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) FastReadField1( return offset, nil } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceDeleteExperimentTemplateArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceDeleteExperimentTemplateArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -27411,7 +33167,7 @@ func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) FastWriteNocopy return offset } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) BLength() int { +func (p *ExperimentServiceDeleteExperimentTemplateArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -27420,29 +33176,29 @@ func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) BLength() int { return l } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceDeleteExperimentTemplateArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) field1Length() int { +func (p *ExperimentServiceDeleteExperimentTemplateArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceFeedbackExptInsightAnalysisReportArgs) +func (p *ExperimentServiceDeleteExperimentTemplateArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceDeleteExperimentTemplateArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *FeedbackExptInsightAnalysisReportRequest + var _req *DeleteExperimentTemplateRequest if src.Req != nil { - _req = &FeedbackExptInsightAnalysisReportRequest{} + _req = &DeleteExperimentTemplateRequest{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -27452,7 +33208,7 @@ func (p *ExperimentServiceFeedbackExptInsightAnalysisReportArgs) DeepCopy(s inte return nil } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceDeleteExperimentTemplateResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -27496,14 +33252,14 @@ func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) FastRead(buf 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_ExperimentServiceFeedbackExptInsightAnalysisReportResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceDeleteExperimentTemplateResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceDeleteExperimentTemplateResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewFeedbackExptInsightAnalysisReportResponse() + _field := NewDeleteExperimentTemplateResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -27513,11 +33269,11 @@ func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) FastReadField return offset, nil } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceDeleteExperimentTemplateResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceDeleteExperimentTemplateResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -27526,7 +33282,7 @@ func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) FastWriteNoco return offset } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) BLength() int { +func (p *ExperimentServiceDeleteExperimentTemplateResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -27535,7 +33291,7 @@ func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) BLength() int return l } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceDeleteExperimentTemplateResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -27544,7 +33300,7 @@ func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) fastWriteFiel return offset } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) field0Length() int { +func (p *ExperimentServiceDeleteExperimentTemplateResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -27553,15 +33309,15 @@ func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) field0Length( return l } -func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceFeedbackExptInsightAnalysisReportResult) +func (p *ExperimentServiceDeleteExperimentTemplateResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceDeleteExperimentTemplateResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *FeedbackExptInsightAnalysisReportResponse + var _success *DeleteExperimentTemplateResponse if src.Success != nil { - _success = &FeedbackExptInsightAnalysisReportResponse{} + _success = &DeleteExperimentTemplateResponse{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -27571,7 +33327,7 @@ func (p *ExperimentServiceFeedbackExptInsightAnalysisReportResult) DeepCopy(s in return nil } -func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceListExperimentTemplatesArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -27615,14 +33371,14 @@ func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) FastRead(buf []byt 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_ExperimentServiceListExptInsightAnalysisCommentArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceListExperimentTemplatesArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceListExperimentTemplatesArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewListExptInsightAnalysisCommentRequest() + _field := NewListExperimentTemplatesRequest() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -27632,11 +33388,11 @@ func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) FastReadField1(buf return offset, nil } -func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceListExperimentTemplatesArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceListExperimentTemplatesArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -27645,7 +33401,7 @@ func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) FastWriteNocopy(bu return offset } -func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) BLength() int { +func (p *ExperimentServiceListExperimentTemplatesArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -27654,29 +33410,29 @@ func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) BLength() int { return l } -func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceListExperimentTemplatesArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) field1Length() int { +func (p *ExperimentServiceListExperimentTemplatesArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceListExptInsightAnalysisCommentArgs) +func (p *ExperimentServiceListExperimentTemplatesArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceListExperimentTemplatesArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *ListExptInsightAnalysisCommentRequest + var _req *ListExperimentTemplatesRequest if src.Req != nil { - _req = &ListExptInsightAnalysisCommentRequest{} + _req = &ListExperimentTemplatesRequest{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -27686,7 +33442,7 @@ func (p *ExperimentServiceListExptInsightAnalysisCommentArgs) DeepCopy(s interfa return nil } -func (p *ExperimentServiceListExptInsightAnalysisCommentResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceListExperimentTemplatesResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -27730,14 +33486,14 @@ func (p *ExperimentServiceListExptInsightAnalysisCommentResult) FastRead(buf []b 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_ExperimentServiceListExptInsightAnalysisCommentResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceListExperimentTemplatesResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceListExptInsightAnalysisCommentResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceListExperimentTemplatesResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewListExptInsightAnalysisCommentResponse() + _field := NewListExperimentTemplatesResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -27747,11 +33503,11 @@ func (p *ExperimentServiceListExptInsightAnalysisCommentResult) FastReadField0(b return offset, nil } -func (p *ExperimentServiceListExptInsightAnalysisCommentResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceListExperimentTemplatesResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceListExptInsightAnalysisCommentResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceListExperimentTemplatesResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -27760,7 +33516,7 @@ func (p *ExperimentServiceListExptInsightAnalysisCommentResult) FastWriteNocopy( return offset } -func (p *ExperimentServiceListExptInsightAnalysisCommentResult) BLength() int { +func (p *ExperimentServiceListExperimentTemplatesResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -27769,7 +33525,7 @@ func (p *ExperimentServiceListExptInsightAnalysisCommentResult) BLength() int { return l } -func (p *ExperimentServiceListExptInsightAnalysisCommentResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceListExperimentTemplatesResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -27778,7 +33534,7 @@ func (p *ExperimentServiceListExptInsightAnalysisCommentResult) fastWriteField0( return offset } -func (p *ExperimentServiceListExptInsightAnalysisCommentResult) field0Length() int { +func (p *ExperimentServiceListExperimentTemplatesResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -27787,15 +33543,15 @@ func (p *ExperimentServiceListExptInsightAnalysisCommentResult) field0Length() i return l } -func (p *ExperimentServiceListExptInsightAnalysisCommentResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceListExptInsightAnalysisCommentResult) +func (p *ExperimentServiceListExperimentTemplatesResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceListExperimentTemplatesResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *ListExptInsightAnalysisCommentResponse + var _success *ListExperimentTemplatesResponse if src.Success != nil { - _success = &ListExptInsightAnalysisCommentResponse{} + _success = &ListExperimentTemplatesResponse{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -27805,7 +33561,7 @@ func (p *ExperimentServiceListExptInsightAnalysisCommentResult) DeepCopy(s inter return nil } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceCheckExperimentTemplateNameArgs) FastRead(buf []byte) (int, error) { var err error var offset int @@ -27849,14 +33605,14 @@ func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) FastRead(buf []byte 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_ExperimentServiceGetAnalysisRecordFeedbackVoteArgs[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceCheckExperimentTemplateNameArgs[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) FastReadField1(buf []byte) (int, error) { +func (p *ExperimentServiceCheckExperimentTemplateNameArgs) FastReadField1(buf []byte) (int, error) { offset := 0 - _field := NewGetAnalysisRecordFeedbackVoteRequest() + _field := NewCheckExperimentTemplateNameRequest() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -27866,11 +33622,11 @@ func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) FastReadField1(buf return offset, nil } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) FastWrite(buf []byte) int { +func (p *ExperimentServiceCheckExperimentTemplateNameArgs) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceCheckExperimentTemplateNameArgs) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField1(buf[offset:], w) @@ -27879,7 +33635,7 @@ func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) FastWriteNocopy(buf return offset } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) BLength() int { +func (p *ExperimentServiceCheckExperimentTemplateNameArgs) BLength() int { l := 0 if p != nil { l += p.field1Length() @@ -27888,29 +33644,29 @@ func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) BLength() int { return l } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceCheckExperimentTemplateNameArgs) fastWriteField1(buf []byte, w thrift.NocopyWriter) int { offset := 0 offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 1) offset += p.Req.FastWriteNocopy(buf[offset:], w) return offset } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) field1Length() int { +func (p *ExperimentServiceCheckExperimentTemplateNameArgs) field1Length() int { l := 0 l += thrift.Binary.FieldBeginLength() l += p.Req.BLength() return l } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) +func (p *ExperimentServiceCheckExperimentTemplateNameArgs) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceCheckExperimentTemplateNameArgs) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _req *GetAnalysisRecordFeedbackVoteRequest + var _req *CheckExperimentTemplateNameRequest if src.Req != nil { - _req = &GetAnalysisRecordFeedbackVoteRequest{} + _req = &CheckExperimentTemplateNameRequest{} if err := _req.DeepCopy(src.Req); err != nil { return err } @@ -27920,7 +33676,7 @@ func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) DeepCopy(s interfac return nil } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) FastRead(buf []byte) (int, error) { +func (p *ExperimentServiceCheckExperimentTemplateNameResult) FastRead(buf []byte) (int, error) { var err error var offset int @@ -27964,14 +33720,14 @@ func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) FastRead(buf []by 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_ExperimentServiceGetAnalysisRecordFeedbackVoteResult[fieldId]), err) + return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExperimentServiceCheckExperimentTemplateNameResult[fieldId]), err) SkipFieldError: return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) FastReadField0(buf []byte) (int, error) { +func (p *ExperimentServiceCheckExperimentTemplateNameResult) FastReadField0(buf []byte) (int, error) { offset := 0 - _field := NewGetAnalysisRecordFeedbackVoteResponse() + _field := NewCheckExperimentTemplateNameResponse() if l, err := _field.FastRead(buf[offset:]); err != nil { return offset, err } else { @@ -27981,11 +33737,11 @@ func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) FastReadField0(bu return offset, nil } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) FastWrite(buf []byte) int { +func (p *ExperimentServiceCheckExperimentTemplateNameResult) FastWrite(buf []byte) int { return p.FastWriteNocopy(buf, nil) } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceCheckExperimentTemplateNameResult) FastWriteNocopy(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p != nil { offset += p.fastWriteField0(buf[offset:], w) @@ -27994,7 +33750,7 @@ func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) FastWriteNocopy(b return offset } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) BLength() int { +func (p *ExperimentServiceCheckExperimentTemplateNameResult) BLength() int { l := 0 if p != nil { l += p.field0Length() @@ -28003,7 +33759,7 @@ func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) BLength() int { return l } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { +func (p *ExperimentServiceCheckExperimentTemplateNameResult) fastWriteField0(buf []byte, w thrift.NocopyWriter) int { offset := 0 if p.IsSetSuccess() { offset += thrift.Binary.WriteFieldBegin(buf[offset:], thrift.STRUCT, 0) @@ -28012,7 +33768,7 @@ func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) fastWriteField0(b return offset } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) field0Length() int { +func (p *ExperimentServiceCheckExperimentTemplateNameResult) field0Length() int { l := 0 if p.IsSetSuccess() { l += thrift.Binary.FieldBeginLength() @@ -28021,15 +33777,15 @@ func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) field0Length() in return l } -func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) DeepCopy(s interface{}) error { - src, ok := s.(*ExperimentServiceGetAnalysisRecordFeedbackVoteResult) +func (p *ExperimentServiceCheckExperimentTemplateNameResult) DeepCopy(s interface{}) error { + src, ok := s.(*ExperimentServiceCheckExperimentTemplateNameResult) if !ok { return fmt.Errorf("%T's type not matched %T", s, p) } - var _success *GetAnalysisRecordFeedbackVoteResponse + var _success *CheckExperimentTemplateNameResponse if src.Success != nil { - _success = &GetAnalysisRecordFeedbackVoteResponse{} + _success = &CheckExperimentTemplateNameResponse{} if err := _success.DeepCopy(src.Success); err != nil { return err } @@ -28302,3 +34058,59 @@ func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteArgs) GetFirstArgument() func (p *ExperimentServiceGetAnalysisRecordFeedbackVoteResult) GetResult() interface{} { return p.Success } + +func (p *ExperimentServiceCreateExperimentTemplateArgs) GetFirstArgument() interface{} { + return p.Req +} + +func (p *ExperimentServiceCreateExperimentTemplateResult) GetResult() interface{} { + return p.Success +} + +func (p *ExperimentServiceBatchGetExperimentTemplateArgs) GetFirstArgument() interface{} { + return p.Req +} + +func (p *ExperimentServiceBatchGetExperimentTemplateResult) GetResult() interface{} { + return p.Success +} + +func (p *ExperimentServiceUpdateExperimentTemplateMetaArgs) GetFirstArgument() interface{} { + return p.Req +} + +func (p *ExperimentServiceUpdateExperimentTemplateMetaResult) GetResult() interface{} { + return p.Success +} + +func (p *ExperimentServiceUpdateExperimentTemplateArgs) GetFirstArgument() interface{} { + return p.Req +} + +func (p *ExperimentServiceUpdateExperimentTemplateResult) GetResult() interface{} { + return p.Success +} + +func (p *ExperimentServiceDeleteExperimentTemplateArgs) GetFirstArgument() interface{} { + return p.Req +} + +func (p *ExperimentServiceDeleteExperimentTemplateResult) GetResult() interface{} { + return p.Success +} + +func (p *ExperimentServiceListExperimentTemplatesArgs) GetFirstArgument() interface{} { + return p.Req +} + +func (p *ExperimentServiceListExperimentTemplatesResult) GetResult() interface{} { + return p.Success +} + +func (p *ExperimentServiceCheckExperimentTemplateNameArgs) GetFirstArgument() interface{} { + return p.Req +} + +func (p *ExperimentServiceCheckExperimentTemplateNameResult) GetResult() interface{} { + return p.Success +} diff --git a/backend/kitex_gen/coze/loop/foundation/domain/auth/auth.go b/backend/kitex_gen/coze/loop/foundation/domain/auth/auth.go index c79d5c6e9..6c88741e3 100644 --- a/backend/kitex_gen/coze/loop/foundation/domain/auth/auth.go +++ b/backend/kitex_gen/coze/loop/foundation/domain/auth/auth.go @@ -17,6 +17,8 @@ const ( AuthEntityTypeEvaluationExperiment = "EvaluationExperiment" + AuthEntityTypeEvaluationExptTemplate = "EvaluationExptTemplate" + AuthEntityTypeEvaluationSet = "EvaluationSet" AuthEntityTypeEvaluator = "Evaluator" diff --git a/backend/loop_gen/coze/loop/evaluation/loexpt/local_experimentservice.go b/backend/loop_gen/coze/loop/evaluation/loexpt/local_experimentservice.go index b0e28f5fb..6e9342e07 100644 --- a/backend/loop_gen/coze/loop/evaluation/loexpt/local_experimentservice.go +++ b/backend/loop_gen/coze/loop/evaluation/loexpt/local_experimentservice.go @@ -733,6 +733,155 @@ func (l *LocalExperimentService) GetAnalysisRecordFeedbackVote(ctx context.Conte return result.GetSuccess(), nil } +// CreateExperimentTemplate +// 实验模板 +func (l *LocalExperimentService) CreateExperimentTemplate(ctx context.Context, req *expt.CreateExperimentTemplateRequest, callOptions ...callopt.Option) (*expt.CreateExperimentTemplateResponse, error) { + chain := l.mds(func(ctx context.Context, in, out interface{}) error { + arg := in.(*expt.ExperimentServiceCreateExperimentTemplateArgs) + result := out.(*expt.ExperimentServiceCreateExperimentTemplateResult) + resp, err := l.impl.CreateExperimentTemplate(ctx, arg.Req) + if err != nil { + return err + } + result.SetSuccess(resp) + return nil + }) + + arg := &expt.ExperimentServiceCreateExperimentTemplateArgs{Req: req} + result := &expt.ExperimentServiceCreateExperimentTemplateResult{} + ctx = l.injectRPCInfo(ctx, "CreateExperimentTemplate") + if err := chain(ctx, arg, result); err != nil { + return nil, err + } + return result.GetSuccess(), nil +} + +func (l *LocalExperimentService) BatchGetExperimentTemplate(ctx context.Context, req *expt.BatchGetExperimentTemplateRequest, callOptions ...callopt.Option) (*expt.BatchGetExperimentTemplateResponse, error) { + chain := l.mds(func(ctx context.Context, in, out interface{}) error { + arg := in.(*expt.ExperimentServiceBatchGetExperimentTemplateArgs) + result := out.(*expt.ExperimentServiceBatchGetExperimentTemplateResult) + resp, err := l.impl.BatchGetExperimentTemplate(ctx, arg.Req) + if err != nil { + return err + } + result.SetSuccess(resp) + return nil + }) + + arg := &expt.ExperimentServiceBatchGetExperimentTemplateArgs{Req: req} + result := &expt.ExperimentServiceBatchGetExperimentTemplateResult{} + ctx = l.injectRPCInfo(ctx, "BatchGetExperimentTemplate") + if err := chain(ctx, arg, result); err != nil { + return nil, err + } + return result.GetSuccess(), nil +} + +func (l *LocalExperimentService) UpdateExperimentTemplateMeta(ctx context.Context, req *expt.UpdateExperimentTemplateMetaRequest, callOptions ...callopt.Option) (*expt.UpdateExperimentTemplateMetaResponse, error) { + chain := l.mds(func(ctx context.Context, in, out interface{}) error { + arg := in.(*expt.ExperimentServiceUpdateExperimentTemplateMetaArgs) + result := out.(*expt.ExperimentServiceUpdateExperimentTemplateMetaResult) + resp, err := l.impl.UpdateExperimentTemplateMeta(ctx, arg.Req) + if err != nil { + return err + } + result.SetSuccess(resp) + return nil + }) + + arg := &expt.ExperimentServiceUpdateExperimentTemplateMetaArgs{Req: req} + result := &expt.ExperimentServiceUpdateExperimentTemplateMetaResult{} + ctx = l.injectRPCInfo(ctx, "UpdateExperimentTemplateMeta") + if err := chain(ctx, arg, result); err != nil { + return nil, err + } + return result.GetSuccess(), nil +} + +func (l *LocalExperimentService) UpdateExperimentTemplate(ctx context.Context, req *expt.UpdateExperimentTemplateRequest, callOptions ...callopt.Option) (*expt.UpdateExperimentTemplateResponse, error) { + chain := l.mds(func(ctx context.Context, in, out interface{}) error { + arg := in.(*expt.ExperimentServiceUpdateExperimentTemplateArgs) + result := out.(*expt.ExperimentServiceUpdateExperimentTemplateResult) + resp, err := l.impl.UpdateExperimentTemplate(ctx, arg.Req) + if err != nil { + return err + } + result.SetSuccess(resp) + return nil + }) + + arg := &expt.ExperimentServiceUpdateExperimentTemplateArgs{Req: req} + result := &expt.ExperimentServiceUpdateExperimentTemplateResult{} + ctx = l.injectRPCInfo(ctx, "UpdateExperimentTemplate") + if err := chain(ctx, arg, result); err != nil { + return nil, err + } + return result.GetSuccess(), nil +} + +func (l *LocalExperimentService) DeleteExperimentTemplate(ctx context.Context, req *expt.DeleteExperimentTemplateRequest, callOptions ...callopt.Option) (*expt.DeleteExperimentTemplateResponse, error) { + chain := l.mds(func(ctx context.Context, in, out interface{}) error { + arg := in.(*expt.ExperimentServiceDeleteExperimentTemplateArgs) + result := out.(*expt.ExperimentServiceDeleteExperimentTemplateResult) + resp, err := l.impl.DeleteExperimentTemplate(ctx, arg.Req) + if err != nil { + return err + } + result.SetSuccess(resp) + return nil + }) + + arg := &expt.ExperimentServiceDeleteExperimentTemplateArgs{Req: req} + result := &expt.ExperimentServiceDeleteExperimentTemplateResult{} + ctx = l.injectRPCInfo(ctx, "DeleteExperimentTemplate") + if err := chain(ctx, arg, result); err != nil { + return nil, err + } + return result.GetSuccess(), nil +} + +func (l *LocalExperimentService) ListExperimentTemplates(ctx context.Context, req *expt.ListExperimentTemplatesRequest, callOptions ...callopt.Option) (*expt.ListExperimentTemplatesResponse, error) { + chain := l.mds(func(ctx context.Context, in, out interface{}) error { + arg := in.(*expt.ExperimentServiceListExperimentTemplatesArgs) + result := out.(*expt.ExperimentServiceListExperimentTemplatesResult) + resp, err := l.impl.ListExperimentTemplates(ctx, arg.Req) + if err != nil { + return err + } + result.SetSuccess(resp) + return nil + }) + + arg := &expt.ExperimentServiceListExperimentTemplatesArgs{Req: req} + result := &expt.ExperimentServiceListExperimentTemplatesResult{} + ctx = l.injectRPCInfo(ctx, "ListExperimentTemplates") + if err := chain(ctx, arg, result); err != nil { + return nil, err + } + return result.GetSuccess(), nil +} + +func (l *LocalExperimentService) CheckExperimentTemplateName(ctx context.Context, req *expt.CheckExperimentTemplateNameRequest, callOptions ...callopt.Option) (*expt.CheckExperimentTemplateNameResponse, error) { + chain := l.mds(func(ctx context.Context, in, out interface{}) error { + arg := in.(*expt.ExperimentServiceCheckExperimentTemplateNameArgs) + result := out.(*expt.ExperimentServiceCheckExperimentTemplateNameResult) + resp, err := l.impl.CheckExperimentTemplateName(ctx, arg.Req) + if err != nil { + return err + } + result.SetSuccess(resp) + return nil + }) + + arg := &expt.ExperimentServiceCheckExperimentTemplateNameArgs{Req: req} + result := &expt.ExperimentServiceCheckExperimentTemplateNameResult{} + ctx = l.injectRPCInfo(ctx, "CheckExperimentTemplateName") + if err := chain(ctx, arg, result); err != nil { + return nil, err + } + return result.GetSuccess(), nil +} + func (l *LocalExperimentService) injectRPCInfo(ctx context.Context, method string) context.Context { rpcStats := rpcinfo.AsMutableRPCStats(rpcinfo.NewRPCStats()) ri := rpcinfo.NewRPCInfo( diff --git a/backend/modules/evaluation/application/convertor/experiment/aggr_result.go b/backend/modules/evaluation/application/convertor/experiment/aggr_result.go index 8aec4357f..820a70886 100644 --- a/backend/modules/evaluation/application/convertor/experiment/aggr_result.go +++ b/backend/modules/evaluation/application/convertor/experiment/aggr_result.go @@ -36,6 +36,12 @@ func ExptAggregateResultDOToDTO(data *entity.ExptAggregateResult) *domain_expt.E if data.UpdateTime != nil { res.UpdateTime = gptr.Of(gptr.Indirect(data.UpdateTime).Unix()) } + + // 转换加权结果:一组 AggregatorResult_ + if len(data.WeightedResults) > 0 { + res.WeightedResults = AggregatorResultDOsToDTOs(data.WeightedResults) + } + return res } diff --git a/backend/modules/evaluation/application/convertor/experiment/expt.go b/backend/modules/evaluation/application/convertor/experiment/expt.go index a74893c86..3ddc96126 100644 --- a/backend/modules/evaluation/application/convertor/experiment/expt.go +++ b/backend/modules/evaluation/application/convertor/experiment/expt.go @@ -32,15 +32,28 @@ func (e *EvalConfConvert) ConvertToEntity(cer *expt.CreateExperimentRequest, eva ec := &entity.EvaluationConfiguration{ ItemConcurNum: ptr.ConvIntPtr[int32, int](cer.ItemConcurNum), } + ec.ConnectorConf.TargetConf = &entity.TargetConf{ TargetVersionID: cer.GetTargetVersionID(), IngressConf: toTargetFieldMappingDO(cer.GetTargetFieldMapping(), cer.GetTargetRuntimeParam()), } if cer.GetEvaluatorFieldMapping() != nil { - ec.ConnectorConf.EvaluatorsConf = &entity.EvaluatorsConf{ + evalsConf := &entity.EvaluatorsConf{ EvaluatorConcurNum: ptr.ConvIntPtr[int32, int](cer.EvaluatorsConcurNum), EvaluatorConf: toEvaluatorConfDO(cer.GetEvaluatorFieldMapping(), evaluatorVersionRunConfigs), } + // 将请求中的 evaluator_score_weights 下沉到 EvaluatorConf.ScoreWeight + if weights := cer.GetEvaluatorScoreWeights(); len(weights) > 0 { + for _, conf := range evalsConf.EvaluatorConf { + if conf == nil { + continue + } + if w, ok := weights[conf.EvaluatorVersionID]; ok && w > 0 { + conf.ScoreWeight = gptr.Of(w) + } + } + } + ec.ConnectorConf.EvaluatorsConf = evalsConf } return ec, nil } @@ -77,6 +90,9 @@ func toEvaluatorConfDO(mapping []*domain_expt.EvaluatorFieldMapping, runConfigMa } ec := make([]*entity.EvaluatorConf, 0, len(mapping)) for _, fm := range mapping { + if fm == nil { + continue + } esf := make([]*entity.FieldConf, 0, len(fm.GetFromEvalSet())) for _, fes := range fm.GetFromEvalSet() { esf = append(esf, &entity.FieldConf{ @@ -93,12 +109,35 @@ func toEvaluatorConfDO(mapping []*domain_expt.EvaluatorFieldMapping, runConfigMa Value: ft.GetConstValue(), }) } + + // 从 EvaluatorIDVersionItem 中提取信息,如果不存在则使用 EvaluatorVersionID + var evaluatorID int64 + var version string + evaluatorVersionID := fm.GetEvaluatorVersionID() + + if fm.IsSetEvaluatorIDVersionItem() { + item := fm.GetEvaluatorIDVersionItem() + if item != nil { + if item.IsSetEvaluatorID() { + evaluatorID = item.GetEvaluatorID() + } + if item.IsSetVersion() { + version = item.GetVersion() + } + if item.IsSetEvaluatorVersionID() { + evaluatorVersionID = item.GetEvaluatorVersionID() + } + } + } + var runConf *evaluatordto.EvaluatorRunConfig = nil if len(runConfigMap) > 0 { runConf = runConfigMap[fm.GetEvaluatorVersionID()] } ec = append(ec, &entity.EvaluatorConf{ - EvaluatorVersionID: fm.GetEvaluatorVersionID(), + EvaluatorVersionID: evaluatorVersionID, + EvaluatorID: evaluatorID, + Version: version, IngressConf: &entity.EvaluatorIngressConf{ EvalSetAdapter: &entity.FieldAdapter{FieldConfs: esf}, TargetAdapter: &entity.FieldAdapter{FieldConfs: tf}, @@ -124,6 +163,26 @@ func (e *EvalConfConvert) ConvertEntityToDTO(ec *entity.EvaluationConfiguration) m := &domain_expt.EvaluatorFieldMapping{ EvaluatorVersionID: evaluatorConf.EvaluatorVersionID, } + + // 构建 EvaluatorIDVersionItem + if evaluatorConf.EvaluatorID > 0 || evaluatorConf.Version != "" || evaluatorConf.EvaluatorVersionID > 0 { + item := &evaluatordto.EvaluatorIDVersionItem{} + if evaluatorConf.EvaluatorID > 0 { + item.SetEvaluatorID(gptr.Of(evaluatorConf.EvaluatorID)) + } + if evaluatorConf.Version != "" { + item.SetVersion(gptr.Of(evaluatorConf.Version)) + } + if evaluatorConf.EvaluatorVersionID > 0 { + item.SetEvaluatorVersionID(gptr.Of(evaluatorConf.EvaluatorVersionID)) + } + // 如果 EvaluatorConf 中有 ScoreWeight,也填充到 item 中 + if evaluatorConf.ScoreWeight != nil && *evaluatorConf.ScoreWeight > 0 { + item.SetScoreWeight(gptr.Of(*evaluatorConf.ScoreWeight)) + } + m.SetEvaluatorIDVersionItem(item) + } + if evaluatorConf.IngressConf.EvalSetAdapter != nil { for _, fc := range evaluatorConf.IngressConf.EvalSetAdapter.FieldConfs { m.FromEvalSet = append(m.FromEvalSet, &domain_expt.FieldMapping{ @@ -200,6 +259,58 @@ func ToExptDTO(experiment *entity.Experiment) *domain_expt.Experiment { evaluatorVersionIDs = append(evaluatorVersionIDs, ref.EvaluatorVersionID) } + // 构建 evaluator_version_id -> score_weight 映射(来自 EvaluatorConf.ScoreWeight) + evalWeights := make(map[int64]float64) + if experiment.EvalConf != nil && experiment.EvalConf.ConnectorConf.EvaluatorsConf != nil { + for _, ec := range experiment.EvalConf.ConnectorConf.EvaluatorsConf.EvaluatorConf { + if ec == nil || ec.ScoreWeight == nil || *ec.ScoreWeight <= 0 { + continue + } + evalWeights[ec.EvaluatorVersionID] = *ec.ScoreWeight + } + } + + // 构建 EvaluatorIDVersionItems 列表 + evaluatorIDVersionItems := make([]*evaluatordto.EvaluatorIDVersionItem, 0) + // 优先从 Evaluators 中获取完整信息(包含 evaluator_id, version, evaluator_version_id) + if len(experiment.Evaluators) > 0 { + for _, evaluator := range experiment.Evaluators { + if evaluator == nil { + continue + } + evaluatorID := evaluator.GetEvaluatorID() + version := evaluator.GetVersion() + evaluatorVersionID := evaluator.GetEvaluatorVersionID() + if evaluatorID > 0 && evaluatorVersionID > 0 { + item := &evaluatordto.EvaluatorIDVersionItem{ + EvaluatorID: gptr.Of(evaluatorID), + Version: gptr.Of(version), + EvaluatorVersionID: gptr.Of(evaluatorVersionID), + } + // 如果 EvalConf 中有权重配置,则填充 + if weight, ok := evalWeights[evaluatorVersionID]; ok && weight > 0 { + item.ScoreWeight = gptr.Of(weight) + } + evaluatorIDVersionItems = append(evaluatorIDVersionItems, item) + } + } + } else if len(experiment.EvaluatorVersionRef) > 0 { + // 如果没有 Evaluators,则从 EvaluatorVersionRef 构建(只有 evaluator_id 和 evaluator_version_id) + for _, ref := range experiment.EvaluatorVersionRef { + if ref.EvaluatorID > 0 && ref.EvaluatorVersionID > 0 { + item := &evaluatordto.EvaluatorIDVersionItem{ + EvaluatorID: gptr.Of(ref.EvaluatorID), + EvaluatorVersionID: gptr.Of(ref.EvaluatorVersionID), + } + // 如果 EvalConf 中有权重配置,则填充 + if weight, ok := evalWeights[ref.EvaluatorVersionID]; ok && weight > 0 { + item.ScoreWeight = gptr.Of(weight) + } + evaluatorIDVersionItems = append(evaluatorIDVersionItems, item) + } + } + } + tm, ems, trtp, evrcs := NewEvalConfConvert().ConvertEntityToDTO(experiment.EvalConf) evaluatorVersionIDMap := slices.ToMap(experiment.Evaluators, func(evaluator *entity.Evaluator) (int64, *entity.Evaluator) { @@ -242,6 +353,8 @@ func ToExptDTO(experiment *entity.Experiment) *domain_expt.Experiment { EvaluatorIDVersionList: evaluatorIDVersionList, } + // 注意:Experiment DTO 中没有 TripleConfig 字段,如果需要可以通过其他方式传递 + if experiment.StartAt != nil { res.StartTime = gptr.Of(experiment.StartAt.Unix()) } @@ -252,6 +365,30 @@ func ToExptDTO(experiment *entity.Experiment) *domain_expt.Experiment { res.ItemConcurNum = gptr.Of(int32(gptr.Indirect(experiment.EvalConf.ItemConcurNum))) } + // 填充权重配置(score_weight_config 和 enable_weighted_score) + enableWeightedScore := len(evalWeights) > 0 + if experiment.EvalConf != nil && experiment.EvalConf.ConnectorConf.EvaluatorsConf != nil { + enableWeightedScore = enableWeightedScore || experiment.EvalConf.ConnectorConf.EvaluatorsConf.EnableScoreWeight + } + if enableWeightedScore { + res.EnableWeightedScore = gptr.Of(true) + res.ScoreWeightConfig = &domain_expt.ExptScoreWeight{ + EnableWeightedScore: gptr.Of(enableWeightedScore), + EvaluatorScoreWeights: evalWeights, + } + } + + // 关联的实验模板(仅在查询时按需填充基础信息) + if experiment.ExptTemplateMeta != nil { + res.ExptTemplateMeta = &domain_expt.ExptTemplateMeta{ + ID: gptr.Of(experiment.ExptTemplateMeta.ID), + WorkspaceID: gptr.Of(experiment.ExptTemplateMeta.WorkspaceID), + Name: gptr.Of(experiment.ExptTemplateMeta.Name), + Desc: gptr.Of(experiment.ExptTemplateMeta.Desc), + ExptType: gptr.Of(domain_expt.ExptType(experiment.ExptTemplateMeta.ExptType)), + } + } + res.EvalTarget = target.EvalTargetDO2DTO(experiment.Target) if experiment.ExptType != entity.ExptType_Online { res.EvalSet = evaluation_set.EvaluationSetDO2DTO(experiment.EvalSet) @@ -350,5 +487,9 @@ func ConvertCreateReq(cer *expt.CreateExperimentRequest, evaluatorVersionRunConf } param.ExptConf = evaluationConfiguration + if cer.IsSetExptTemplateID() { + param.ExptTemplateID = cer.GetExptTemplateID() + } + return param, nil } diff --git a/backend/modules/evaluation/application/convertor/experiment/expt_result.go b/backend/modules/evaluation/application/convertor/experiment/expt_result.go index 14561f8e3..931360501 100644 --- a/backend/modules/evaluation/application/convertor/experiment/expt_result.go +++ b/backend/modules/evaluation/application/convertor/experiment/expt_result.go @@ -264,6 +264,7 @@ func TurnEvaluatorOutputDO2DTO(from *entity.TurnEvaluatorOutput) *domain_expt.Tu } return &domain_expt.TurnEvaluatorOutput{ EvaluatorRecords: evaluatorRecords, + WeightedScore: from.WeightedScore, } } diff --git a/backend/modules/evaluation/application/convertor/experiment/expt_template.go b/backend/modules/evaluation/application/convertor/experiment/expt_template.go new file mode 100644 index 000000000..62c8665b3 --- /dev/null +++ b/backend/modules/evaluation/application/convertor/experiment/expt_template.go @@ -0,0 +1,983 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + +package experiment + +import ( + "fmt" + + "github.com/bytedance/gg/gptr" + + "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/evaluation/domain/common" + evaluatorpkg "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/evaluation/domain/evaluator" + domain_expt "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/evaluation/domain/expt" + "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/evaluation/eval_target" + "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/evaluation/expt" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/application/convertor/evaluation_set" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/application/convertor/evaluator" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/application/convertor/target" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/consts" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/entity" + "github.com/coze-dev/coze-loop/backend/pkg/lang/ptr" +) + +// ConvertCreateExptTemplateReq 转换创建实验模板请求为实体参数 +func ConvertCreateExptTemplateReq(req *expt.CreateExperimentTemplateRequest) (*entity.CreateExptTemplateParam, error) { + param := &entity.CreateExptTemplateParam{ + SpaceID: req.GetWorkspaceID(), + CreateEvalTargetParam: CreateEvalTargetParamDTO2DOForTemplate(req.CreateEvalTargetParam), + } + + fillCreateTemplateMeta(param, req) + fillCreateTemplateTripleConfig(param, req) + + targetFieldMapping, evaluatorFieldMapping, itemConcurNum := buildTemplateFieldMappingsForCreate(req, param) + + evaluatorScoreWeights := buildEvaluatorScoreWeights(param.EvaluatorIDVersionItems) + evaluatorConfs := buildEvaluatorConfsFromItems(param.EvaluatorIDVersionItems, evaluatorFieldMapping) + applyScoreWeightsToEvaluatorConfs(evaluatorScoreWeights, evaluatorConfs) + + param.TemplateConf = buildTemplateConfForCreate(param, req, targetFieldMapping, evaluatorConfs, itemConcurNum) + + return param, nil +} + +// 拆分的子函数:填充创建模板场景下的 Meta +func fillCreateTemplateMeta(param *entity.CreateExptTemplateParam, req *expt.CreateExperimentTemplateRequest) { + if req.GetMeta() == nil { + return + } + meta := req.GetMeta() + param.Name = meta.GetName() + param.Description = meta.GetDesc() + param.ExptType = entity.ExptType(gptr.Indirect(meta.ExptType)) +} + +// 拆分的子函数:从 triple_config 中提取三元组配置 +func fillCreateTemplateTripleConfig(param *entity.CreateExptTemplateParam, req *expt.CreateExperimentTemplateRequest) { + if req.GetTripleConfig() == nil { + return + } + + tripleConfig := req.GetTripleConfig() + param.EvalSetID = tripleConfig.GetEvalSetID() + param.EvalSetVersionID = tripleConfig.GetEvalSetVersionID() + param.TargetID = tripleConfig.GetTargetID() + param.TargetVersionID = tripleConfig.GetTargetVersionID() + + // 从 EvaluatorIDVersionItems 构建 entity 层的 EvaluatorIDVersionItems + evaluatorIDVersionItems := make([]*entity.EvaluatorIDVersionItem, 0) + if items := tripleConfig.GetEvaluatorIDVersionItems(); len(items) > 0 { + for _, item := range items { + if item == nil { + continue + } + entityItem := &entity.EvaluatorIDVersionItem{ + EvaluatorID: item.GetEvaluatorID(), + Version: item.GetVersion(), + EvaluatorVersionID: item.GetEvaluatorVersionID(), + } + if item.IsSetScoreWeight() { + entityItem.ScoreWeight = item.GetScoreWeight() + } + evaluatorIDVersionItems = append(evaluatorIDVersionItems, entityItem) + } + } + param.EvaluatorIDVersionItems = evaluatorIDVersionItems +} + +// 拆分的子函数:构造创建模板场景下的字段映射配置 +func buildTemplateFieldMappingsForCreate( + req *expt.CreateExperimentTemplateRequest, + param *entity.CreateExptTemplateParam, +) (*entity.TargetIngressConf, []*entity.EvaluatorConf, *int32) { + var targetFieldMapping *entity.TargetIngressConf + var evaluatorFieldMapping []*entity.EvaluatorConf + var itemConcurNum *int32 + + if req.FieldMappingConfig == nil { + return targetFieldMapping, evaluatorFieldMapping, itemConcurNum + } + + fieldMappingConfig := req.FieldMappingConfig + // 将 common.RuntimeParam 转换为 entity.RuntimeParam + var entityRuntimeParam *entity.RuntimeParam + if fieldMappingConfig.TargetRuntimeParam != nil { + entityRuntimeParam = &entity.RuntimeParam{ + JSONValue: fieldMappingConfig.TargetRuntimeParam.JSONValue, + } + } + targetFieldMapping = toTargetFieldMappingDOForTemplate(fieldMappingConfig.TargetFieldMapping, entityRuntimeParam) + evaluatorFieldMapping = toEvaluatorFieldMappingDoForTemplate(fieldMappingConfig.EvaluatorFieldMapping, param) + itemConcurNum = fieldMappingConfig.ItemConcurNum + + return targetFieldMapping, evaluatorFieldMapping, itemConcurNum +} + +// 通用子函数:从 EvaluatorIDVersionItems 中提取评分权重 +// 使用 EvaluatorID + Version 作为 key(因为 EvaluatorVersionID 是 service 层填充的) +func buildEvaluatorScoreWeights(items []*entity.EvaluatorIDVersionItem) map[string]float64 { + if len(items) == 0 { + return nil + } + scoreWeights := make(map[string]float64) + for _, item := range items { + if item == nil || item.EvaluatorID <= 0 || item.Version == "" || item.ScoreWeight <= 0 { + continue + } + key := fmt.Sprintf("%d#%s", item.EvaluatorID, item.Version) + scoreWeights[key] = item.ScoreWeight + } + if len(scoreWeights) == 0 { + return nil + } + return scoreWeights +} + +// 通用子函数:基于 EvaluatorIDVersionItems + 字段映射构建 EvaluatorConf 列表 +func buildEvaluatorConfsFromItems( + items []*entity.EvaluatorIDVersionItem, + evaluatorFieldMapping []*entity.EvaluatorConf, +) []*entity.EvaluatorConf { + // 优先使用 EvaluatorIDVersionItems 构造 EvaluatorConf,保证有完整的 evaluator_id / version / evaluator_version_id 信息。 + // 但仅当其中存在有效的 evaluator_version_id 时才启用该路径;否则退化为仅基于字段映射的构造逻辑。 + if len(items) > 0 { + hasValidVersionID := false + for _, item := range items { + if item != nil && item.EvaluatorVersionID > 0 { + hasValidVersionID = true + break + } + } + + if hasValidVersionID { + ingressByVersionID := make(map[int64]*entity.EvaluatorIngressConf) + runConfByVersionID := make(map[int64]*entity.EvaluatorRunConfig) + for _, ec := range evaluatorFieldMapping { + if ec == nil || ec.EvaluatorVersionID <= 0 { + continue + } + ingressByVersionID[ec.EvaluatorVersionID] = ec.IngressConf + if ec.RunConf != nil { + runConfByVersionID[ec.EvaluatorVersionID] = ec.RunConf + } + } + + evaluatorConfs := make([]*entity.EvaluatorConf, 0, len(items)) + for _, item := range items { + if item == nil || item.EvaluatorVersionID <= 0 { + continue + } + conf := &entity.EvaluatorConf{ + EvaluatorVersionID: item.EvaluatorVersionID, + EvaluatorID: item.EvaluatorID, + Version: item.Version, + IngressConf: ingressByVersionID[item.EvaluatorVersionID], + RunConf: runConfByVersionID[item.EvaluatorVersionID], + } + evaluatorConfs = append(evaluatorConfs, conf) + } + if len(evaluatorConfs) > 0 { + return evaluatorConfs + } + // 如果 items 全部被过滤掉(虽然 hasValidVersionID 为 true),则后续仍可退化为基于字段映射的逻辑 + } + } + + // 兼容老用法:没有有效的 EvaluatorIDVersionItems(或根本没有)时,直接透传字段映射里的 EvaluatorConf + if len(evaluatorFieldMapping) == 0 { + return nil + } + evaluatorConfs := make([]*entity.EvaluatorConf, 0, len(evaluatorFieldMapping)) + for _, ec := range evaluatorFieldMapping { + if ec == nil { + continue + } + evaluatorConfs = append(evaluatorConfs, ec) + } + if len(evaluatorConfs) == 0 { + return nil + } + return evaluatorConfs +} + +// 通用子函数:将评分权重下沉到 EvaluatorConf.ScoreWeight +// 使用 EvaluatorID + Version 来匹配权重(因为 EvaluatorVersionID 是 service 层填充的) +func applyScoreWeightsToEvaluatorConfs( + evaluatorScoreWeights map[string]float64, + evaluatorConfs []*entity.EvaluatorConf, +) { + if len(evaluatorScoreWeights) == 0 || len(evaluatorConfs) == 0 { + return + } + for _, ec := range evaluatorConfs { + if ec == nil || ec.EvaluatorID <= 0 || ec.Version == "" { + continue + } + key := fmt.Sprintf("%d#%s", ec.EvaluatorID, ec.Version) + if w, ok := evaluatorScoreWeights[key]; ok && w > 0 { + ec.ScoreWeight = gptr.Of(w) + } + } +} + +// 拆分的子函数:构造创建模板场景下的 TemplateConf +func buildTemplateConfForCreate( + param *entity.CreateExptTemplateParam, + req *expt.CreateExperimentTemplateRequest, + targetFieldMapping *entity.TargetIngressConf, + evaluatorConfs []*entity.EvaluatorConf, + itemConcurNum *int32, +) *entity.ExptTemplateConfiguration { + templateConf := &entity.ExptTemplateConfiguration{ + ItemConcurNum: ptr.ConvIntPtr[int32, int](itemConcurNum), + EvaluatorsConcurNum: ptr.ConvIntPtr[int32, int](req.DefaultEvaluatorsConcurNum), + } + + if targetFieldMapping == nil && len(evaluatorConfs) == 0 { + return templateConf + } + + templateConf.ConnectorConf = entity.Connector{ + TargetConf: &entity.TargetConf{ + TargetVersionID: param.TargetVersionID, + IngressConf: targetFieldMapping, + }, + } + + if len(evaluatorConfs) > 0 { + templateConf.ConnectorConf.EvaluatorsConf = &entity.EvaluatorsConf{ + EvaluatorConf: evaluatorConfs, + } + } + + return templateConf +} + +// toTargetFieldMappingDOForTemplate 转换目标字段映射(用于模板) +func toTargetFieldMappingDOForTemplate(mapping *domain_expt.TargetFieldMapping, rtp *entity.RuntimeParam) *entity.TargetIngressConf { + tic := &entity.TargetIngressConf{EvalSetAdapter: &entity.FieldAdapter{}} + + if mapping != nil { + fc := make([]*entity.FieldConf, 0, len(mapping.GetFromEvalSet())) + for _, fm := range mapping.GetFromEvalSet() { + fc = append(fc, &entity.FieldConf{ + FieldName: fm.GetFieldName(), + FromField: fm.GetFromFieldName(), + Value: fm.GetConstValue(), + }) + } + tic.EvalSetAdapter.FieldConfs = fc + } + + if rtp != nil && rtp.JSONValue != nil && len(*rtp.JSONValue) > 0 { + tic.CustomConf = &entity.FieldAdapter{ + FieldConfs: []*entity.FieldConf{{ + FieldName: consts.FieldAdapterBuiltinFieldNameRuntimeParam, + Value: *rtp.JSONValue, + }}, + } + } + return tic +} + +// toEvaluatorFieldMappingDoForTemplate 转换评估器字段映射为EvaluatorConf(用于模板) +// 将 evaluator_id 和 version 信息保存到 EvaluatorConf 中,供 service 层回填使用 +func toEvaluatorFieldMappingDoForTemplate(mapping []*domain_expt.EvaluatorFieldMapping, param interface{}) []*entity.EvaluatorConf { + if mapping == nil { + return nil + } + result := make([]*entity.EvaluatorConf, 0, len(mapping)) + + for _, fm := range mapping { + if fm == nil { + continue + } + esf := make([]*entity.FieldConf, 0, len(fm.GetFromEvalSet())) + for _, fes := range fm.GetFromEvalSet() { + esf = append(esf, &entity.FieldConf{ + FieldName: fes.GetFieldName(), + FromField: fes.GetFromFieldName(), + Value: fes.GetConstValue(), + }) + } + tf := make([]*entity.FieldConf, 0, len(fm.GetFromTarget())) + for _, ft := range fm.GetFromTarget() { + tf = append(tf, &entity.FieldConf{ + FieldName: ft.GetFieldName(), + FromField: ft.GetFromFieldName(), + Value: ft.GetConstValue(), + }) + } + // 从 EvaluatorIDVersionItem 中提取信息,如果不存在则使用 EvaluatorVersionID + var evaluatorID int64 + var version string + evaluatorVersionID := fm.GetEvaluatorVersionID() + var runConf *entity.EvaluatorRunConfig + + if fm.IsSetEvaluatorIDVersionItem() { + item := fm.GetEvaluatorIDVersionItem() + if item != nil { + if item.IsSetEvaluatorID() { + evaluatorID = item.GetEvaluatorID() + } + if item.IsSetVersion() { + version = item.GetVersion() + } + if item.IsSetEvaluatorVersionID() { + evaluatorVersionID = item.GetEvaluatorVersionID() + } + // 透传 evaluator 运行配置(env + runtime_param) + if item.IsSetRunConfig() && item.GetRunConfig() != nil { + rc := item.GetRunConfig() + runConf = &entity.EvaluatorRunConfig{ + Env: rc.Env, + } + if rc.EvaluatorRuntimeParam != nil { + runConf.EvaluatorRuntimeParam = &entity.RuntimeParam{ + JSONValue: rc.EvaluatorRuntimeParam.JSONValue, + } + } + } + } + } + + // 将 evaluator_id 和 version 信息保存到 EvaluatorConf 中 + conf := &entity.EvaluatorConf{ + EvaluatorVersionID: evaluatorVersionID, + EvaluatorID: evaluatorID, + Version: version, + RunConf: runConf, + IngressConf: &entity.EvaluatorIngressConf{ + EvalSetAdapter: &entity.FieldAdapter{FieldConfs: esf}, + TargetAdapter: &entity.FieldAdapter{FieldConfs: tf}, + }, + } + result = append(result, conf) + } + return result +} + +// ToExptTemplateDTO 转换实验模板实体为DTO +func ToExptTemplateDTO(template *entity.ExptTemplate) *domain_expt.ExptTemplate { + if template == nil { + return nil + } + + dto := &domain_expt.ExptTemplate{} + + fillTemplateMetaDTO(template, dto) + dto.TripleConfig = buildTemplateTripleConfigDTO(template) + dto.FieldMappingConfig = buildTemplateFieldMappingDTO(template) + dto.ScoreWeightConfig = buildTemplateScoreWeightConfigDTO(template) + + // 填充关联数据(EvalSet、EvalTarget、Evaluators)到 TripleConfig + if dto.TripleConfig != nil { + dto.TripleConfig.EvalTarget = target.EvalTargetDO2DTO(template.Target) + if template.Meta != nil && template.Meta.ExptType != entity.ExptType_Online { + dto.TripleConfig.EvalSet = evaluation_set.EvaluationSetDO2DTO(template.EvalSet) + } + dto.TripleConfig.Evaluators = make([]*evaluatorpkg.Evaluator, 0, len(template.Evaluators)) + for _, evaluatorDO := range template.Evaluators { + if evaluatorDO != nil { + dto.TripleConfig.Evaluators = append(dto.TripleConfig.Evaluators, evaluator.ConvertEvaluatorDO2DTO(evaluatorDO)) + } + } + } + + // 填充 BaseInfo + if template.BaseInfo != nil { + dto.BaseInfo = &common.BaseInfo{ + CreatedAt: template.BaseInfo.CreatedAt, + UpdatedAt: template.BaseInfo.UpdatedAt, + DeletedAt: template.BaseInfo.DeletedAt, + } + if template.BaseInfo.CreatedBy != nil { + dto.BaseInfo.CreatedBy = &common.UserInfo{ + UserID: template.BaseInfo.CreatedBy.UserID, + } + } + if template.BaseInfo.UpdatedBy != nil { + dto.BaseInfo.UpdatedBy = &common.UserInfo{ + UserID: template.BaseInfo.UpdatedBy.UserID, + } + } + } + + // 填充 ExptInfo + if template.ExptInfo != nil { + exptInfo := &domain_expt.ExptInfo{ + CreatedExptCount: gptr.Of(template.ExptInfo.CreatedExptCount), + LatestExptID: gptr.Of(template.ExptInfo.LatestExptID), + LatestExptStatus: gptr.Of(domain_expt.ExptStatus(template.ExptInfo.LatestExptStatus)), + } + dto.SetExptInfo(exptInfo) + } + + return dto +} + +// ConvertUpdateExptTemplateMetaReq 转换更新实验模板 Meta 请求为实体参数 +func ConvertUpdateExptTemplateMetaReq(req *expt.UpdateExperimentTemplateMetaRequest) (*entity.UpdateExptTemplateMetaParam, error) { + param := &entity.UpdateExptTemplateMetaParam{ + TemplateID: req.GetTemplateID(), + SpaceID: req.GetWorkspaceID(), + } + + // 从 meta 中提取基本信息 + if req.GetMeta() != nil { + meta := req.GetMeta() + if meta.IsSetName() { + param.Name = meta.GetName() + } + if meta.IsSetDesc() { + param.Description = meta.GetDesc() + } + if meta.IsSetExptType() { + param.ExptType = entity.ExptType(meta.GetExptType()) + } + } + + return param, nil +} + +// 拆分子函数:Meta -> DTO +func fillTemplateMetaDTO(template *entity.ExptTemplate, dto *domain_expt.ExptTemplate) { + if template.Meta == nil { + return + } + dto.Meta = &domain_expt.ExptTemplateMeta{ + ID: gptr.Of(template.Meta.ID), + WorkspaceID: gptr.Of(template.Meta.WorkspaceID), + Name: gptr.Of(template.Meta.Name), + Desc: gptr.Of(template.Meta.Desc), + ExptType: gptr.Of(domain_expt.ExptType(template.Meta.ExptType)), + } +} + +// 拆分子函数:TripleConfig -> DTO +func buildTemplateTripleConfigDTO(template *entity.ExptTemplate) *domain_expt.ExptTuple { + if template.TripleConfig == nil { + return nil + } + + evaluatorIDVersionItems := buildEvaluatorIDVersionItemsDTO(template) + + return &domain_expt.ExptTuple{ + EvalSetID: gptr.Of(template.TripleConfig.EvalSetID), + EvalSetVersionID: gptr.Of(template.TripleConfig.EvalSetVersionID), + TargetID: gptr.Of(template.TripleConfig.TargetID), + TargetVersionID: gptr.Of(template.TripleConfig.TargetVersionID), + EvaluatorIDVersionItems: evaluatorIDVersionItems, + } +} + +// 拆分子函数:根据模板信息构建 EvaluatorIDVersionItems DTO 列表 +func buildEvaluatorIDVersionItemsDTO(template *entity.ExptTemplate) []*evaluatorpkg.EvaluatorIDVersionItem { + evaluatorIDVersionItems := make([]*evaluatorpkg.EvaluatorIDVersionItem, 0) + + // 辅助函数:根据 evaluator_version_id 从 TemplateConf 中提取 RunConfig + buildRunConfigDTO := func(evalVerID int64) *evaluatorpkg.EvaluatorRunConfig { + if template == nil || template.TemplateConf == nil || + template.TemplateConf.ConnectorConf.EvaluatorsConf == nil { + return nil + } + for _, ec := range template.TemplateConf.ConnectorConf.EvaluatorsConf.EvaluatorConf { + if ec == nil || ec.EvaluatorVersionID != evalVerID || ec.RunConf == nil { + continue + } + rc := ec.RunConf + runCfg := evaluatorpkg.NewEvaluatorRunConfig() + runCfg.Env = rc.Env + if rc.EvaluatorRuntimeParam != nil { + runCfg.EvaluatorRuntimeParam = &common.RuntimeParam{ + JSONValue: rc.EvaluatorRuntimeParam.JSONValue, + } + } + return runCfg + } + return nil + } + + // 优先使用 entity 层的 EvaluatorIDVersionItems + if template.TripleConfig != nil && len(template.TripleConfig.EvaluatorIDVersionItems) > 0 { + for _, entityItem := range template.TripleConfig.EvaluatorIDVersionItems { + if entityItem == nil { + continue + } + item := evaluatorpkg.NewEvaluatorIDVersionItem() + item.EvaluatorID = gptr.Of(entityItem.EvaluatorID) + if entityItem.Version != "" { + item.Version = gptr.Of(entityItem.Version) + } + item.EvaluatorVersionID = gptr.Of(entityItem.EvaluatorVersionID) + if entityItem.ScoreWeight > 0 { + item.ScoreWeight = gptr.Of(entityItem.ScoreWeight) + } + // 透传 RunConfig:根据 evaluator_version_id 在 TemplateConf 中查找 + if rc := buildRunConfigDTO(entityItem.EvaluatorVersionID); rc != nil { + item.RunConfig = rc + } + evaluatorIDVersionItems = append(evaluatorIDVersionItems, item) + } + return evaluatorIDVersionItems + } + + if len(template.Evaluators) > 0 { + appendEvaluatorIDVersionItemsFromEvaluators(template, &evaluatorIDVersionItems) + return evaluatorIDVersionItems + } + + if len(template.EvaluatorVersionRef) > 0 { + appendEvaluatorIDVersionItemsFromVersionRef(template, &evaluatorIDVersionItems) + } + + return evaluatorIDVersionItems +} + +// 细分:从 Evaluators 构建 EvaluatorIDVersionItems +func appendEvaluatorIDVersionItemsFromEvaluators( + template *entity.ExptTemplate, + dst *[]*evaluatorpkg.EvaluatorIDVersionItem, +) { + for _, evaluator := range template.Evaluators { + if evaluator == nil { + continue + } + evaluatorID := evaluator.GetEvaluatorID() + version := evaluator.GetVersion() + evaluatorVersionID := evaluator.GetEvaluatorVersionID() + if evaluatorID <= 0 || evaluatorVersionID <= 0 { + continue + } + item := evaluatorpkg.NewEvaluatorIDVersionItem() + item.EvaluatorID = gptr.Of(evaluatorID) + item.Version = gptr.Of(version) + item.EvaluatorVersionID = gptr.Of(evaluatorVersionID) + + if template.TripleConfig != nil && len(template.TripleConfig.EvaluatorIDVersionItems) > 0 { + for _, entityItem := range template.TripleConfig.EvaluatorIDVersionItems { + if entityItem != nil && entityItem.EvaluatorVersionID == evaluatorVersionID && entityItem.ScoreWeight > 0 { + item.ScoreWeight = gptr.Of(entityItem.ScoreWeight) + break + } + } + } + *dst = append(*dst, item) + } +} + +// 细分:从 EvaluatorVersionRef 构建 EvaluatorIDVersionItems +func appendEvaluatorIDVersionItemsFromVersionRef( + template *entity.ExptTemplate, + dst *[]*evaluatorpkg.EvaluatorIDVersionItem, +) { + for _, ref := range template.EvaluatorVersionRef { + if ref.EvaluatorID <= 0 || ref.EvaluatorVersionID <= 0 { + continue + } + item := evaluatorpkg.NewEvaluatorIDVersionItem() + item.EvaluatorID = gptr.Of(ref.EvaluatorID) + item.EvaluatorVersionID = gptr.Of(ref.EvaluatorVersionID) + + if template.TripleConfig != nil && len(template.TripleConfig.EvaluatorIDVersionItems) > 0 { + for _, entityItem := range template.TripleConfig.EvaluatorIDVersionItems { + if entityItem != nil && entityItem.EvaluatorVersionID == ref.EvaluatorVersionID && entityItem.ScoreWeight > 0 { + item.ScoreWeight = gptr.Of(entityItem.ScoreWeight) + break + } + } + } + *dst = append(*dst, item) + } +} + +// 拆分子函数:FieldMappingConfig -> DTO +func buildTemplateFieldMappingDTO(template *entity.ExptTemplate) *domain_expt.ExptFieldMapping { + if template.FieldMappingConfig == nil { + return nil + } + + fieldMapping := &domain_expt.ExptFieldMapping{ + ItemConcurNum: ptr.ConvIntPtr[int, int32](template.FieldMappingConfig.ItemConcurNum), + } + + if template.FieldMappingConfig.TargetFieldMapping != nil { + targetMapping := &domain_expt.TargetFieldMapping{} + for _, fm := range template.FieldMappingConfig.TargetFieldMapping.FromEvalSet { + targetMapping.FromEvalSet = append(targetMapping.FromEvalSet, &domain_expt.FieldMapping{ + FieldName: gptr.Of(fm.FieldName), + FromFieldName: gptr.Of(fm.FromFieldName), + ConstValue: gptr.Of(fm.ConstValue), + }) + } + fieldMapping.TargetFieldMapping = targetMapping + } + + // 为后续构建 EvaluatorIDVersionItem 时准备一个根据 evaluator_version_id 查 RunConf 的辅助函数 + var buildRunConfigDTO func(evalVerID int64) *evaluatorpkg.EvaluatorRunConfig + if template != nil && template.TemplateConf != nil && + template.TemplateConf.ConnectorConf.EvaluatorsConf != nil { + buildRunConfigDTO = func(evalVerID int64) *evaluatorpkg.EvaluatorRunConfig { + for _, ec := range template.TemplateConf.ConnectorConf.EvaluatorsConf.EvaluatorConf { + if ec == nil || ec.EvaluatorVersionID != evalVerID || ec.RunConf == nil { + continue + } + rc := ec.RunConf + runCfg := evaluatorpkg.NewEvaluatorRunConfig() + runCfg.Env = rc.Env + if rc.EvaluatorRuntimeParam != nil { + runCfg.EvaluatorRuntimeParam = &common.RuntimeParam{ + JSONValue: rc.EvaluatorRuntimeParam.JSONValue, + } + } + return runCfg + } + return nil + } + } + + if len(template.FieldMappingConfig.EvaluatorFieldMapping) > 0 { + evaluatorMappings := make([]*domain_expt.EvaluatorFieldMapping, 0, len(template.FieldMappingConfig.EvaluatorFieldMapping)) + for _, em := range template.FieldMappingConfig.EvaluatorFieldMapping { + m := &domain_expt.EvaluatorFieldMapping{ + EvaluatorVersionID: em.EvaluatorVersionID, + } + + // 构建 EvaluatorIDVersionItem(包含 RunConfig) + if em.EvaluatorID > 0 || em.Version != "" || em.EvaluatorVersionID > 0 { + item := &evaluatorpkg.EvaluatorIDVersionItem{} + if em.EvaluatorID > 0 { + item.SetEvaluatorID(gptr.Of(em.EvaluatorID)) + } + if em.Version != "" { + item.SetVersion(gptr.Of(em.Version)) + } + if em.EvaluatorVersionID > 0 { + item.SetEvaluatorVersionID(gptr.Of(em.EvaluatorVersionID)) + // 透传 RunConfig:根据 evaluator_version_id 在 TemplateConf 中查找 + if buildRunConfigDTO != nil { + if rc := buildRunConfigDTO(em.EvaluatorVersionID); rc != nil { + item.RunConfig = rc + } + } + } + m.SetEvaluatorIDVersionItem(item) + } + for _, fm := range em.FromEvalSet { + m.FromEvalSet = append(m.FromEvalSet, &domain_expt.FieldMapping{ + FieldName: gptr.Of(fm.FieldName), + FromFieldName: gptr.Of(fm.FromFieldName), + ConstValue: gptr.Of(fm.ConstValue), + }) + } + for _, fm := range em.FromTarget { + m.FromTarget = append(m.FromTarget, &domain_expt.FieldMapping{ + FieldName: gptr.Of(fm.FieldName), + FromFieldName: gptr.Of(fm.FromFieldName), + ConstValue: gptr.Of(fm.ConstValue), + }) + } + evaluatorMappings = append(evaluatorMappings, m) + } + fieldMapping.EvaluatorFieldMapping = evaluatorMappings + } + + if template.FieldMappingConfig.TargetRuntimeParam != nil { + fieldMapping.TargetRuntimeParam = &common.RuntimeParam{ + JSONValue: template.FieldMappingConfig.TargetRuntimeParam.JSONValue, + } + } + + return fieldMapping +} + +// 拆分子函数:ScoreWeightConfig -> DTO +func buildTemplateScoreWeightConfigDTO(template *entity.ExptTemplate) *domain_expt.ExptScoreWeight { + // 1) 优先使用 TemplateConf.ConnectorConf.EvaluatorsConf 中的 EvaluatorConf.ScoreWeight + evaluatorScoreWeights := buildScoreWeightsFromTemplateConf(template) + + // 2) 若为空,再从 TripleConfig.EvaluatorIDVersionItems.ScoreWeight 补充(向后兼容) + if len(evaluatorScoreWeights) == 0 && + template.TripleConfig != nil && len(template.TripleConfig.EvaluatorIDVersionItems) > 0 { + evaluatorScoreWeights = make(map[int64]float64) + for _, item := range template.TripleConfig.EvaluatorIDVersionItems { + if item == nil || item.EvaluatorVersionID <= 0 || item.ScoreWeight <= 0 { + continue + } + evaluatorScoreWeights[item.EvaluatorVersionID] = item.ScoreWeight + } + } + + // 检查是否启用加权分数:从 EvaluatorsConf.EnableScoreWeight 或是否有权重配置 + hasWeightedScore := len(evaluatorScoreWeights) > 0 + if template.TemplateConf != nil && template.TemplateConf.ConnectorConf.EvaluatorsConf != nil { + hasWeightedScore = hasWeightedScore || template.TemplateConf.ConnectorConf.EvaluatorsConf.EnableScoreWeight + } + if !hasWeightedScore { + return nil + } + + return &domain_expt.ExptScoreWeight{ + EnableWeightedScore: gptr.Of(hasWeightedScore), + EvaluatorScoreWeights: evaluatorScoreWeights, + } +} + +// 细分:从 TemplateConf 中抽取权重 +func buildScoreWeightsFromTemplateConf(template *entity.ExptTemplate) map[int64]float64 { + if template.TemplateConf == nil || template.TemplateConf.ConnectorConf.EvaluatorsConf == nil { + return nil + } + + var evaluatorScoreWeights map[int64]float64 + for _, ec := range template.TemplateConf.ConnectorConf.EvaluatorsConf.EvaluatorConf { + if ec == nil || ec.ScoreWeight == nil || *ec.ScoreWeight <= 0 { + continue + } + if evaluatorScoreWeights == nil { + evaluatorScoreWeights = make(map[int64]float64) + } + evaluatorScoreWeights[ec.EvaluatorVersionID] = *ec.ScoreWeight + } + return evaluatorScoreWeights +} + +// convertTemplateConfToDTO 转换模板配置为DTO +func convertTemplateConfToDTO(conf *entity.ExptTemplateConfiguration) (*domain_expt.TargetFieldMapping, []*domain_expt.EvaluatorFieldMapping, *common.RuntimeParam) { + var targetMapping *domain_expt.TargetFieldMapping + var evaluatorMappings []*domain_expt.EvaluatorFieldMapping + var runtimeParam *common.RuntimeParam + + if conf.ConnectorConf.TargetConf != nil && conf.ConnectorConf.TargetConf.IngressConf != nil { + ingressConf := conf.ConnectorConf.TargetConf.IngressConf + targetMapping = &domain_expt.TargetFieldMapping{} + + if ingressConf.EvalSetAdapter != nil { + for _, fc := range ingressConf.EvalSetAdapter.FieldConfs { + targetMapping.FromEvalSet = append(targetMapping.FromEvalSet, &domain_expt.FieldMapping{ + FieldName: gptr.Of(fc.FieldName), + FromFieldName: gptr.Of(fc.FromField), + ConstValue: gptr.Of(fc.Value), + }) + } + } + + if ingressConf.CustomConf != nil { + for _, fc := range ingressConf.CustomConf.FieldConfs { + if fc.FieldName == consts.FieldAdapterBuiltinFieldNameRuntimeParam { + runtimeParam = &common.RuntimeParam{ + JSONValue: gptr.Of(fc.Value), + } + break + } + } + } + } + + if conf.ConnectorConf.EvaluatorsConf != nil { + for _, evaluatorConf := range conf.ConnectorConf.EvaluatorsConf.EvaluatorConf { + if evaluatorConf.IngressConf == nil { + continue + } + m := &domain_expt.EvaluatorFieldMapping{ + EvaluatorVersionID: evaluatorConf.EvaluatorVersionID, + } + + // 构建 EvaluatorIDVersionItem + if evaluatorConf.EvaluatorID > 0 || evaluatorConf.Version != "" || evaluatorConf.EvaluatorVersionID > 0 { + item := &evaluatorpkg.EvaluatorIDVersionItem{} + if evaluatorConf.EvaluatorID > 0 { + item.SetEvaluatorID(gptr.Of(evaluatorConf.EvaluatorID)) + } + if evaluatorConf.Version != "" { + item.SetVersion(gptr.Of(evaluatorConf.Version)) + } + if evaluatorConf.EvaluatorVersionID > 0 { + item.SetEvaluatorVersionID(gptr.Of(evaluatorConf.EvaluatorVersionID)) + } + // 如果 EvaluatorConf 中有 ScoreWeight,也填充到 item 中 + if evaluatorConf.ScoreWeight != nil && *evaluatorConf.ScoreWeight > 0 { + item.SetScoreWeight(gptr.Of(*evaluatorConf.ScoreWeight)) + } + // 透传 RunConfig:将 entity.EvaluatorRunConfig 转为 DTO + if evaluatorConf.RunConf != nil { + rc := evaluatorConf.RunConf + runCfg := evaluatorpkg.NewEvaluatorRunConfig() + runCfg.Env = rc.Env + if rc.EvaluatorRuntimeParam != nil { + runCfg.EvaluatorRuntimeParam = &common.RuntimeParam{ + JSONValue: rc.EvaluatorRuntimeParam.JSONValue, + } + } + item.RunConfig = runCfg + } + m.SetEvaluatorIDVersionItem(item) + } + if evaluatorConf.IngressConf.EvalSetAdapter != nil { + for _, fc := range evaluatorConf.IngressConf.EvalSetAdapter.FieldConfs { + m.FromEvalSet = append(m.FromEvalSet, &domain_expt.FieldMapping{ + FieldName: gptr.Of(fc.FieldName), + FromFieldName: gptr.Of(fc.FromField), + ConstValue: gptr.Of(fc.Value), + }) + } + } + if evaluatorConf.IngressConf.TargetAdapter != nil { + for _, fc := range evaluatorConf.IngressConf.TargetAdapter.FieldConfs { + m.FromTarget = append(m.FromTarget, &domain_expt.FieldMapping{ + FieldName: gptr.Of(fc.FieldName), + FromFieldName: gptr.Of(fc.FromField), + ConstValue: gptr.Of(fc.Value), + }) + } + } + evaluatorMappings = append(evaluatorMappings, m) + } + } + + return targetMapping, evaluatorMappings, runtimeParam +} + +// CreateEvalTargetParamDTO2DOForTemplate 转换创建评测对象参数(用于模板) +func CreateEvalTargetParamDTO2DOForTemplate(param *eval_target.CreateEvalTargetParam) *entity.CreateEvalTargetParam { + if param == nil { + return nil + } + + res := &entity.CreateEvalTargetParam{ + SourceTargetID: param.SourceTargetID, + SourceTargetVersion: param.SourceTargetVersion, + BotPublishVersion: param.BotPublishVersion, + Region: param.Region, + Env: param.Env, + } + if param.EvalTargetType != nil { + res.EvalTargetType = gptr.Of(entity.EvalTargetType(*param.EvalTargetType)) + } + if param.BotInfoType != nil { + res.BotInfoType = gptr.Of(entity.CozeBotInfoType(*param.BotInfoType)) + } + if param.CustomEvalTarget != nil { + res.CustomEvalTarget = &entity.CustomEvalTarget{ + ID: param.CustomEvalTarget.ID, + Name: param.CustomEvalTarget.Name, + AvatarURL: param.CustomEvalTarget.AvatarURL, + Ext: param.CustomEvalTarget.Ext, + } + } + return res +} + +// ToExptTemplateDTOs 批量转换实验模板实体为DTO +func ToExptTemplateDTOs(templates []*entity.ExptTemplate) []*domain_expt.ExptTemplate { + if len(templates) == 0 { + return nil + } + dtos := make([]*domain_expt.ExptTemplate, 0, len(templates)) + for _, template := range templates { + dtos = append(dtos, ToExptTemplateDTO(template)) + } + return dtos +} + +// ConvertUpdateExptTemplateReq 转换更新实验模板请求为实体参数 +func ConvertUpdateExptTemplateReq(req *expt.UpdateExperimentTemplateRequest) (*entity.UpdateExptTemplateParam, error) { + param := &entity.UpdateExptTemplateParam{ + TemplateID: req.GetTemplateID(), + SpaceID: req.GetWorkspaceID(), + CreateEvalTargetParam: CreateEvalTargetParamDTO2DOForTemplate(req.CreateEvalTargetParam), + } + + // 从 meta 中提取基本信息 + if req.GetMeta() != nil { + meta := req.GetMeta() + param.Name = meta.GetName() + param.Description = meta.GetDesc() + param.ExptType = entity.ExptType(gptr.Indirect(meta.ExptType)) + } + + // 从 triple_config 中提取三元组配置(注意:eval_set_id / target_id 不允许修改,仅允许调整版本与配置) + if req.GetTripleConfig() != nil { + tripleConfig := req.GetTripleConfig() + param.EvalSetVersionID = tripleConfig.GetEvalSetVersionID() + param.TargetVersionID = tripleConfig.GetTargetVersionID() + // 从 EvaluatorIDVersionItems 构建 entity 层的 EvaluatorIDVersionItems + evaluatorIDVersionItems := make([]*entity.EvaluatorIDVersionItem, 0) + if items := tripleConfig.GetEvaluatorIDVersionItems(); len(items) > 0 { + for _, item := range items { + if item == nil { + continue + } + // 构建 entity 层的 EvaluatorIDVersionItem + entityItem := &entity.EvaluatorIDVersionItem{ + EvaluatorID: item.GetEvaluatorID(), + Version: item.GetVersion(), + EvaluatorVersionID: item.GetEvaluatorVersionID(), + } + if item.IsSetScoreWeight() { + entityItem.ScoreWeight = item.GetScoreWeight() + } + evaluatorIDVersionItems = append(evaluatorIDVersionItems, entityItem) + } + } + param.EvaluatorIDVersionItems = evaluatorIDVersionItems + } + + // 从 field_mapping_config 中提取字段映射和运行时参数 + var targetFieldMapping *entity.TargetIngressConf + var evaluatorFieldMapping []*entity.EvaluatorConf + var itemConcurNum *int32 + if req.GetFieldMappingConfig() != nil { + fieldMappingConfig := req.GetFieldMappingConfig() + // 将 common.RuntimeParam 转换为 entity.RuntimeParam + var entityRuntimeParam *entity.RuntimeParam + if fieldMappingConfig.TargetRuntimeParam != nil { + entityRuntimeParam = &entity.RuntimeParam{ + JSONValue: fieldMappingConfig.TargetRuntimeParam.JSONValue, + } + } + targetFieldMapping = toTargetFieldMappingDOForTemplate(fieldMappingConfig.TargetFieldMapping, entityRuntimeParam) + evaluatorFieldMapping = toEvaluatorFieldMappingDoForTemplate(fieldMappingConfig.EvaluatorFieldMapping, param) + itemConcurNum = fieldMappingConfig.ItemConcurNum + } + + // 从 triple_config.evaluator_id_version_items 中提取得分加权配置,并下沉到 EvaluatorConf.ScoreWeight + evaluatorScoreWeights := buildEvaluatorScoreWeights(param.EvaluatorIDVersionItems) + + // 基于 EvaluatorIDVersionItems 构建完整的 EvaluatorConf 列表(包含字段映射与权重) + evaluatorConfs := buildEvaluatorConfsFromItems(param.EvaluatorIDVersionItems, evaluatorFieldMapping) + applyScoreWeightsToEvaluatorConfs(evaluatorScoreWeights, evaluatorConfs) + + // 构建模板配置 + hasFieldMapping := targetFieldMapping != nil || len(evaluatorFieldMapping) > 0 + hasScoreWeight := len(evaluatorScoreWeights) > 0 + hasConcurNum := itemConcurNum != nil || req.DefaultEvaluatorsConcurNum != nil + + if hasFieldMapping || hasScoreWeight || hasConcurNum { + templateConf := &entity.ExptTemplateConfiguration{ + ItemConcurNum: ptr.ConvIntPtr[int32, int](itemConcurNum), + EvaluatorsConcurNum: ptr.ConvIntPtr[int32, int](req.DefaultEvaluatorsConcurNum), + } + + // 构建 ConnectorConf + if hasFieldMapping || len(evaluatorConfs) > 0 { + templateConf.ConnectorConf = entity.Connector{ + TargetConf: &entity.TargetConf{ + TargetVersionID: param.TargetVersionID, + IngressConf: targetFieldMapping, + }, + } + + if len(evaluatorConfs) > 0 { + templateConf.ConnectorConf.EvaluatorsConf = &entity.EvaluatorsConf{ + EvaluatorConf: evaluatorConfs, + } + } + } + + param.TemplateConf = templateConf + } + + return param, nil +} diff --git a/backend/modules/evaluation/application/convertor/experiment/expt_test.go b/backend/modules/evaluation/application/convertor/experiment/expt_test.go index 5fa2dcf4e..e3f9c18b8 100644 --- a/backend/modules/evaluation/application/convertor/experiment/expt_test.go +++ b/backend/modules/evaluation/application/convertor/experiment/expt_test.go @@ -22,6 +22,795 @@ import ( "github.com/coze-dev/coze-loop/backend/pkg/lang/ptr" ) +func TestConvertCreateExptTemplateReq_FieldMappingAndRuntimeAndRunConfig(t *testing.T) { + req := &expt.CreateExperimentTemplateRequest{ + WorkspaceID: 100, + Meta: &domain_expt.ExptTemplateMeta{ + Name: gptr.Of("tpl"), + Desc: gptr.Of("desc"), + ExptType: gptr.Of(domain_expt.ExptType_Offline), + }, + TripleConfig: &domain_expt.ExptTuple{ + EvalSetID: gptr.Of(int64(1)), + EvalSetVersionID: gptr.Of(int64(11)), + TargetID: gptr.Of(int64(2)), + TargetVersionID: gptr.Of(int64(22)), + EvaluatorIDVersionItems: []*evaluatordto.EvaluatorIDVersionItem{ + { + EvaluatorID: gptr.Of(int64(10)), + Version: gptr.Of("v1"), + EvaluatorVersionID: gptr.Of(int64(1001)), + ScoreWeight: gptr.Of(0.5), + }, + }, + }, + FieldMappingConfig: &domain_expt.ExptFieldMapping{ + TargetFieldMapping: &domain_expt.TargetFieldMapping{ + FromEvalSet: []*domain_expt.FieldMapping{ + { + FieldName: gptr.Of("output"), + FromFieldName: gptr.Of("col1"), + ConstValue: gptr.Of(""), + }, + }, + }, + TargetRuntimeParam: &common.RuntimeParam{ + JSONValue: gptr.Of(`{"rt":"v"}`), + }, + EvaluatorFieldMapping: []*domain_expt.EvaluatorFieldMapping{ + { + EvaluatorVersionID: 1001, + FromEvalSet: []*domain_expt.FieldMapping{ + { + FieldName: gptr.Of("input"), + FromFieldName: gptr.Of("col1"), + }, + }, + EvaluatorIDVersionItem: &evaluatordto.EvaluatorIDVersionItem{ + EvaluatorID: gptr.Of(int64(10)), + Version: gptr.Of("v1"), + EvaluatorVersionID: gptr.Of(int64(1001)), + RunConfig: &evaluatordto.EvaluatorRunConfig{ + Env: gptr.Of("prod"), + EvaluatorRuntimeParam: &common.RuntimeParam{ + JSONValue: gptr.Of(`{"k":"v"}`), + }, + }, + }, + }, + }, + ItemConcurNum: gptr.Of(int32(3)), + }, + DefaultEvaluatorsConcurNum: gptr.Of(int32(5)), + } + + param, err := ConvertCreateExptTemplateReq(req) + assert.NoError(t, err) + assert.Equal(t, int64(100), param.SpaceID) + assert.Equal(t, "tpl", param.Name) + assert.Equal(t, entity.ExptType_Offline, param.ExptType) + + // triple config + assert.Equal(t, int64(1), param.EvalSetID) + assert.Equal(t, int64(11), param.EvalSetVersionID) + assert.Equal(t, int64(2), param.TargetID) + assert.Equal(t, int64(22), param.TargetVersionID) + if assert.Len(t, param.EvaluatorIDVersionItems, 1) { + item := param.EvaluatorIDVersionItems[0] + assert.Equal(t, int64(10), item.EvaluatorID) + assert.Equal(t, "v1", item.Version) + assert.Equal(t, int64(1001), item.EvaluatorVersionID) + assert.Equal(t, 0.5, item.ScoreWeight) + } + + // TemplateConf: Target runtime param + assert.NotNil(t, param.TemplateConf) + assert.NotNil(t, param.TemplateConf.ConnectorConf.TargetConf) + assert.NotNil(t, param.TemplateConf.ConnectorConf.TargetConf.IngressConf) + if assert.NotNil(t, param.TemplateConf.ConnectorConf.TargetConf.IngressConf.CustomConf) { + // runtime_param 被放到了 CustomConf 里,对应 consts.FieldAdapterBuiltinFieldNameRuntimeParam + found := false + for _, fc := range param.TemplateConf.ConnectorConf.TargetConf.IngressConf.CustomConf.FieldConfs { + if fc.FieldName == consts.FieldAdapterBuiltinFieldNameRuntimeParam { + found = true + assert.Equal(t, `{"rt":"v"}`, fc.Value) + } + } + assert.True(t, found, "runtime_param field should exist in CustomConf") + } + + // TemplateConf: Evaluator run_config、权重 + evConfs := param.TemplateConf.ConnectorConf.EvaluatorsConf.EvaluatorConf + if assert.Len(t, evConfs, 1) { + ec := evConfs[0] + assert.Equal(t, int64(1001), ec.EvaluatorVersionID) + assert.Equal(t, int64(10), ec.EvaluatorID) + assert.Equal(t, "v1", ec.Version) + // run_config + if assert.NotNil(t, ec.RunConf) { + assert.Equal(t, "prod", gptr.Indirect(ec.RunConf.Env)) + if assert.NotNil(t, ec.RunConf.EvaluatorRuntimeParam) { + assert.Equal(t, `{"k":"v"}`, gptr.Indirect(ec.RunConf.EvaluatorRuntimeParam.JSONValue)) + } + } + // score_weight + if assert.NotNil(t, ec.ScoreWeight) { + assert.Equal(t, 0.5, *ec.ScoreWeight) + } + } + assert.Equal(t, 3, gptr.Indirect(param.TemplateConf.ItemConcurNum)) + assert.Equal(t, 5, gptr.Indirect(param.TemplateConf.EvaluatorsConcurNum)) +} + +func TestConvertUpdateExptTemplateReq_FieldMappingAndRuntimeAndRunConfig(t *testing.T) { + req := &expt.UpdateExperimentTemplateRequest{ + WorkspaceID: 100, + TemplateID: 2001, + Meta: &domain_expt.ExptTemplateMeta{ + Name: gptr.Of("tpl2"), + Desc: gptr.Of("desc2"), + ExptType: gptr.Of(domain_expt.ExptType_Online), + }, + TripleConfig: &domain_expt.ExptTuple{ + EvalSetVersionID: gptr.Of(int64(21)), + TargetVersionID: gptr.Of(int64(31)), + EvaluatorIDVersionItems: []*evaluatordto.EvaluatorIDVersionItem{ + { + EvaluatorID: gptr.Of(int64(20)), + Version: gptr.Of("v2"), + EvaluatorVersionID: gptr.Of(int64(2002)), + ScoreWeight: gptr.Of(0.8), + }, + }, + }, + FieldMappingConfig: &domain_expt.ExptFieldMapping{ + TargetFieldMapping: &domain_expt.TargetFieldMapping{ + FromEvalSet: []*domain_expt.FieldMapping{ + { + FieldName: gptr.Of("output2"), + FromFieldName: gptr.Of("col2"), + }, + }, + }, + TargetRuntimeParam: &common.RuntimeParam{ + JSONValue: gptr.Of(`{"rt2":"v2"}`), + }, + EvaluatorFieldMapping: []*domain_expt.EvaluatorFieldMapping{ + { + EvaluatorVersionID: 2002, + FromEvalSet: []*domain_expt.FieldMapping{ + { + FieldName: gptr.Of("input2"), + FromFieldName: gptr.Of("col2"), + }, + }, + EvaluatorIDVersionItem: &evaluatordto.EvaluatorIDVersionItem{ + EvaluatorID: gptr.Of(int64(20)), + Version: gptr.Of("v2"), + EvaluatorVersionID: gptr.Of(int64(2002)), + RunConfig: &evaluatordto.EvaluatorRunConfig{ + Env: gptr.Of("staging"), + EvaluatorRuntimeParam: &common.RuntimeParam{ + JSONValue: gptr.Of(`{"k2":"v2"}`), + }, + }, + }, + }, + }, + ItemConcurNum: gptr.Of(int32(7)), + }, + DefaultEvaluatorsConcurNum: gptr.Of(int32(9)), + } + + param, err := ConvertUpdateExptTemplateReq(req) + assert.NoError(t, err) + assert.Equal(t, int64(2001), param.TemplateID) + assert.Equal(t, int64(100), param.SpaceID) + assert.Equal(t, "tpl2", param.Name) + assert.Equal(t, entity.ExptType_Online, param.ExptType) + assert.Equal(t, int64(21), param.EvalSetVersionID) + assert.Equal(t, int64(31), param.TargetVersionID) + + // EvaluatorIDVersionItems + if assert.Len(t, param.EvaluatorIDVersionItems, 1) { + it := param.EvaluatorIDVersionItems[0] + assert.Equal(t, int64(20), it.EvaluatorID) + assert.Equal(t, "v2", it.Version) + assert.Equal(t, int64(2002), it.EvaluatorVersionID) + assert.Equal(t, 0.8, it.ScoreWeight) + } + + // TemplateConf + assert.NotNil(t, param.TemplateConf) + assert.Equal(t, 7, gptr.Indirect(param.TemplateConf.ItemConcurNum)) + assert.Equal(t, 9, gptr.Indirect(param.TemplateConf.EvaluatorsConcurNum)) + + // Target runtime param in TemplateConf + tc := param.TemplateConf.ConnectorConf + assert.NotNil(t, tc.TargetConf) + if assert.NotNil(t, tc.TargetConf.IngressConf) && tc.TargetConf.IngressConf.CustomConf != nil { + found := false + for _, fc := range tc.TargetConf.IngressConf.CustomConf.FieldConfs { + if fc.FieldName == consts.FieldAdapterBuiltinFieldNameRuntimeParam { + found = true + assert.Equal(t, `{"rt2":"v2"}`, fc.Value) + } + } + assert.True(t, found, "runtime_param field should exist in TargetConf.CustomConf") + } + + // EvaluatorConf with run_config and score_weight + evConfs := tc.EvaluatorsConf.EvaluatorConf + if assert.Len(t, evConfs, 1) { + ec := evConfs[0] + assert.Equal(t, int64(2002), ec.EvaluatorVersionID) + assert.Equal(t, int64(20), ec.EvaluatorID) + assert.Equal(t, "v2", ec.Version) + if assert.NotNil(t, ec.RunConf) { + assert.Equal(t, "staging", gptr.Indirect(ec.RunConf.Env)) + if assert.NotNil(t, ec.RunConf.EvaluatorRuntimeParam) { + assert.Equal(t, `{"k2":"v2"}`, gptr.Indirect(ec.RunConf.EvaluatorRuntimeParam.JSONValue)) + } + } + if assert.NotNil(t, ec.ScoreWeight) { + assert.Equal(t, 0.8, *ec.ScoreWeight) + } + } +} + +func TestConvertUpdateExptTemplateMetaReq(t *testing.T) { + req := &expt.UpdateExperimentTemplateMetaRequest{ + WorkspaceID: 100, + TemplateID: 2001, + Meta: &domain_expt.ExptTemplateMeta{ + Name: gptr.Of("tpl-meta"), + Desc: gptr.Of("meta-desc"), + ExptType: gptr.Of(domain_expt.ExptType_Online), + }, + } + + param, err := ConvertUpdateExptTemplateMetaReq(req) + assert.NoError(t, err) + assert.Equal(t, int64(2001), param.TemplateID) + assert.Equal(t, int64(100), param.SpaceID) + assert.Equal(t, "tpl-meta", param.Name) + assert.Equal(t, "meta-desc", param.Description) + assert.Equal(t, entity.ExptType_Online, param.ExptType) + + // nil meta 时不应 panic,字段保持默认值 + req.Meta = nil + param, err = ConvertUpdateExptTemplateMetaReq(req) + assert.NoError(t, err) + assert.Equal(t, "", param.Name) + assert.Equal(t, "", param.Description) +} + +func TestToExptTemplateDTO_WithRunConfAndScoreWeight(t *testing.T) { + template := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: 1, + WorkspaceID: 100, + Name: "tpl", + Desc: "desc", + ExptType: entity.ExptType_Offline, + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvalSetID: 10, + EvalSetVersionID: 11, + TargetID: 20, + TargetVersionID: 21, + EvaluatorIDVersionItems: []*entity.EvaluatorIDVersionItem{ + { + EvaluatorID: 1, + Version: "v1", + EvaluatorVersionID: 101, + ScoreWeight: 0.6, + }, + }, + }, + TemplateConf: &entity.ExptTemplateConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EvaluatorConf: []*entity.EvaluatorConf{ + { + EvaluatorVersionID: 101, + EvaluatorID: 1, + Version: "v1", + RunConf: &entity.EvaluatorRunConfig{ + Env: gptr.Of("prod"), + EvaluatorRuntimeParam: &entity.RuntimeParam{ + JSONValue: gptr.Of(`{"foo":"bar"}`), + }, + }, + ScoreWeight: gptr.Of(0.6), + }, + }, + }, + }, + }, + BaseInfo: &entity.BaseInfo{ + CreatedAt: gptr.Of[int64](1), + UpdatedAt: gptr.Of[int64](2), + DeletedAt: gptr.Of[int64](0), + CreatedBy: &entity.UserInfo{UserID: gptr.Of("u1")}, + UpdatedBy: &entity.UserInfo{UserID: gptr.Of("u2")}, + }, + ExptInfo: &entity.ExptInfo{ + CreatedExptCount: 3, + LatestExptID: 99, + LatestExptStatus: entity.ExptStatus_Success, + }, + } + + dto := ToExptTemplateDTO(template) + if assert.NotNil(t, dto) { + assert.NotNil(t, dto.Meta) + assert.Equal(t, int64(1), gptr.Indirect(dto.Meta.ID)) + assert.NotNil(t, dto.TripleConfig) + if assert.Len(t, dto.TripleConfig.EvaluatorIDVersionItems, 1) { + item := dto.TripleConfig.EvaluatorIDVersionItems[0] + assert.Equal(t, int64(1), gptr.Indirect(item.EvaluatorID)) + assert.Equal(t, "v1", gptr.Indirect(item.Version)) + assert.Equal(t, int64(101), gptr.Indirect(item.EvaluatorVersionID)) + assert.Equal(t, 0.6, gptr.Indirect(item.ScoreWeight)) + if assert.NotNil(t, item.RunConfig) && assert.NotNil(t, item.RunConfig.EvaluatorRuntimeParam) { + assert.Equal(t, `{"foo":"bar"}`, gptr.Indirect(item.RunConfig.EvaluatorRuntimeParam.JSONValue)) + } + } + assert.NotNil(t, dto.BaseInfo) + assert.NotNil(t, dto.GetExptInfo()) + assert.Equal(t, int64(3), gptr.Indirect(dto.GetExptInfo().CreatedExptCount)) + } +} + +func TestBuildEvaluatorScoreWeights(t *testing.T) { + // 正常情况 + items := []*entity.EvaluatorIDVersionItem{ + {EvaluatorID: 1, Version: "v1", ScoreWeight: 0.5}, + {EvaluatorID: 2, Version: "v2", ScoreWeight: 0.8}, + // 无效项应被忽略 + {EvaluatorID: 0, Version: "v1", ScoreWeight: 1}, + {EvaluatorID: 3, Version: "", ScoreWeight: 1}, + {EvaluatorID: 4, Version: "v4", ScoreWeight: 0}, + } + weights := buildEvaluatorScoreWeights(items) + if assert.NotNil(t, weights) { + assert.Len(t, weights, 2) + assert.Equal(t, 0.5, weights["1#v1"]) + assert.Equal(t, 0.8, weights["2#v2"]) + } + + // 空或全部无效时返回 nil + assert.Nil(t, buildEvaluatorScoreWeights(nil)) + assert.Nil(t, buildEvaluatorScoreWeights([]*entity.EvaluatorIDVersionItem{ + {EvaluatorID: 0, Version: "v1", ScoreWeight: 1}, + })) +} + +func TestBuildEvaluatorConfsFromItemsAndApplyScoreWeights(t *testing.T) { + // items 中有 evaluator_version_id,触发按 versionID 构建的分支 + items := []*entity.EvaluatorIDVersionItem{ + {EvaluatorID: 1, Version: "v1", EvaluatorVersionID: 101}, + {EvaluatorID: 2, Version: "v2", EvaluatorVersionID: 0}, // 无效,应该被忽略 + } + fieldMappings := []*entity.EvaluatorConf{ + { + EvaluatorVersionID: 101, + IngressConf: &entity.EvaluatorIngressConf{TargetAdapter: &entity.FieldAdapter{}}, + RunConf: &entity.EvaluatorRunConfig{ + Env: gptr.Of("prod"), + }, + }, + } + + confs := buildEvaluatorConfsFromItems(items, fieldMappings) + if assert.Len(t, confs, 1) { + assert.Equal(t, int64(101), confs[0].EvaluatorVersionID) + assert.Equal(t, int64(1), confs[0].EvaluatorID) + assert.Equal(t, "v1", confs[0].Version) + assert.NotNil(t, confs[0].IngressConf) + if assert.NotNil(t, confs[0].RunConf) { + assert.Equal(t, "prod", gptr.Indirect(confs[0].RunConf.Env)) + } + } + + // 应用 score weight + weights := map[string]float64{ + "1#v1": 0.5, + } + applyScoreWeightsToEvaluatorConfs(weights, confs) + if assert.Len(t, confs, 1) && assert.NotNil(t, confs[0].ScoreWeight) { + assert.Equal(t, 0.5, *confs[0].ScoreWeight) + } + + // 当 items 没有有效 versionID 时,退化为直接透传字段映射 + itemsNoVer := []*entity.EvaluatorIDVersionItem{ + {EvaluatorID: 1, Version: "v1", EvaluatorVersionID: 0}, + } + confs2 := buildEvaluatorConfsFromItems(itemsNoVer, fieldMappings) + // 期望直接返回 fieldMappings(过滤掉 nil) + if assert.Len(t, confs2, 1) { + assert.Equal(t, int64(101), confs2[0].EvaluatorVersionID) + } +} + +func TestBuildTemplateConfForCreate(t *testing.T) { + param := &entity.CreateExptTemplateParam{ + TargetVersionID: 21, + } + req := &expt.CreateExperimentTemplateRequest{ + DefaultEvaluatorsConcurNum: gptr.Of(int32(5)), + } + targetIngress := &entity.TargetIngressConf{} + evaluatorConfs := []*entity.EvaluatorConf{ + {EvaluatorVersionID: 101}, + } + itemConcurNum := gptr.Of(int32(3)) + + conf := buildTemplateConfForCreate(param, req, targetIngress, evaluatorConfs, itemConcurNum) + if assert.NotNil(t, conf) { + assert.Equal(t, 3, gptr.Indirect(conf.ItemConcurNum)) + assert.Equal(t, 5, gptr.Indirect(conf.EvaluatorsConcurNum)) + assert.NotNil(t, conf.ConnectorConf.TargetConf) + assert.Equal(t, int64(21), conf.ConnectorConf.TargetConf.TargetVersionID) + if assert.NotNil(t, conf.ConnectorConf.EvaluatorsConf) { + assert.Len(t, conf.ConnectorConf.EvaluatorsConf.EvaluatorConf, 1) + } + } + + // target & evaluator 都为空时,只返回基础并发配置 + conf2 := buildTemplateConfForCreate(param, req, nil, nil, nil) + if assert.NotNil(t, conf2) { + assert.Nil(t, conf2.ConnectorConf.TargetConf) + assert.Nil(t, conf2.ConnectorConf.EvaluatorsConf) + } +} + +func TestToTargetFieldMappingDOForTemplate(t *testing.T) { + // 有 mapping 和 runtime param + mapping := &domain_expt.TargetFieldMapping{ + FromEvalSet: []*domain_expt.FieldMapping{ + { + FieldName: gptr.Of("f1"), + FromFieldName: gptr.Of("src1"), + ConstValue: gptr.Of("v1"), + }, + }, + } + rt := &entity.RuntimeParam{JSONValue: gptr.Of(`{"k":"v"}`)} + conf := toTargetFieldMappingDOForTemplate(mapping, rt) + if assert.NotNil(t, conf) { + if assert.NotNil(t, conf.EvalSetAdapter) && assert.Len(t, conf.EvalSetAdapter.FieldConfs, 1) { + f := conf.EvalSetAdapter.FieldConfs[0] + assert.Equal(t, "f1", f.FieldName) + assert.Equal(t, "src1", f.FromField) + assert.Equal(t, "v1", f.Value) + } + if assert.NotNil(t, conf.CustomConf) && assert.Len(t, conf.CustomConf.FieldConfs, 1) { + f := conf.CustomConf.FieldConfs[0] + assert.Equal(t, consts.FieldAdapterBuiltinFieldNameRuntimeParam, f.FieldName) + assert.Equal(t, `{"k":"v"}`, f.Value) + } + } + + // mapping 为 nil 但 runtime 有值 + conf2 := toTargetFieldMappingDOForTemplate(nil, rt) + if assert.NotNil(t, conf2.CustomConf) { + assert.Len(t, conf2.CustomConf.FieldConfs, 1) + } +} + +func TestToEvaluatorFieldMappingDOForTemplate_RunConfAndDefaults(t *testing.T) { + // 含 EvaluatorIDVersionItem + RunConfig + runParam := &common.RuntimeParam{JSONValue: gptr.Of(`{"rk":"rv"}`)} + mappings := []*domain_expt.EvaluatorFieldMapping{ + { + EvaluatorVersionID: 101, + FromEvalSet: []*domain_expt.FieldMapping{ + { + FieldName: gptr.Of("input"), + FromFieldName: gptr.Of("col1"), + }, + }, + FromTarget: []*domain_expt.FieldMapping{ + { + FieldName: gptr.Of("output"), + FromFieldName: gptr.Of("col2"), + }, + }, + EvaluatorIDVersionItem: &evaluatordto.EvaluatorIDVersionItem{ + EvaluatorID: gptr.Of(int64(1)), + Version: gptr.Of("v1"), + EvaluatorVersionID: gptr.Of(int64(101)), + RunConfig: &evaluatordto.EvaluatorRunConfig{ + Env: gptr.Of("prod"), + EvaluatorRuntimeParam: runParam, + }, + }, + }, + } + + confs := toEvaluatorFieldMappingDoForTemplate(mappings, nil) + if assert.Len(t, confs, 1) { + ec := confs[0] + assert.Equal(t, int64(101), ec.EvaluatorVersionID) + assert.Equal(t, int64(1), ec.EvaluatorID) + assert.Equal(t, "v1", ec.Version) + if assert.NotNil(t, ec.RunConf) { + assert.Equal(t, "prod", gptr.Indirect(ec.RunConf.Env)) + if assert.NotNil(t, ec.RunConf.EvaluatorRuntimeParam) { + assert.Equal(t, `{"rk":"rv"}`, gptr.Indirect(ec.RunConf.EvaluatorRuntimeParam.JSONValue)) + } + } + if assert.NotNil(t, ec.IngressConf) { + assert.Len(t, ec.IngressConf.EvalSetAdapter.FieldConfs, 1) + assert.Len(t, ec.IngressConf.TargetAdapter.FieldConfs, 1) + } + } + + // nil mapping 返回 nil + assert.Nil(t, toEvaluatorFieldMappingDoForTemplate(nil, nil)) +} + +func TestBuildTemplateFieldMappingDTO_WithRunConf(t *testing.T) { + // 准备 TemplateConf 中带 RunConf 的 EvaluatorConf + templateConf := &entity.ExptTemplateConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EvaluatorConf: []*entity.EvaluatorConf{ + { + EvaluatorVersionID: 101, + EvaluatorID: 1, + Version: "v1", + RunConf: &entity.EvaluatorRunConfig{ + Env: gptr.Of("prod"), + EvaluatorRuntimeParam: &entity.RuntimeParam{ + JSONValue: gptr.Of(`{"a":"b"}`), + }, + }, + }, + }, + }, + }, + } + + template := &entity.ExptTemplate{ + FieldMappingConfig: &entity.ExptFieldMapping{ + EvaluatorFieldMapping: []*entity.EvaluatorFieldMapping{ + { + EvaluatorVersionID: 101, + EvaluatorID: 1, + Version: "v1", + FromEvalSet: []*entity.ExptTemplateFieldMapping{ + {FieldName: "input", FromFieldName: "col1"}, + }, + FromTarget: []*entity.ExptTemplateFieldMapping{ + {FieldName: "output", FromFieldName: "col2"}, + }, + }, + }, + }, + TemplateConf: templateConf, + } + + dto := buildTemplateFieldMappingDTO(template) + if assert.NotNil(t, dto) && assert.Len(t, dto.EvaluatorFieldMapping, 1) { + em := dto.EvaluatorFieldMapping[0] + assert.Equal(t, int64(101), em.GetEvaluatorVersionID()) + // EvaluatorIDVersionItem 中应包含 RunConfig + item := em.GetEvaluatorIDVersionItem() + if assert.NotNil(t, item) { + assert.Equal(t, int64(1), item.GetEvaluatorID()) + assert.Equal(t, "v1", item.GetVersion()) + if assert.NotNil(t, item.RunConfig) && assert.NotNil(t, item.RunConfig.EvaluatorRuntimeParam) { + assert.Equal(t, `{"a":"b"}`, item.RunConfig.EvaluatorRuntimeParam.GetJSONValue()) + } + } + } +} + +func TestBuildTemplateFieldMappingDTO_TargetMapping(t *testing.T) { + template := &entity.ExptTemplate{ + FieldMappingConfig: &entity.ExptFieldMapping{ + TargetFieldMapping: &entity.TargetFieldMapping{ + FromEvalSet: []*entity.ExptTemplateFieldMapping{ + {FieldName: "f1", FromFieldName: "src1", ConstValue: "v1"}, + {FieldName: "f2", FromFieldName: "src2", ConstValue: "v2"}, + }, + }, + }, + } + + dto := buildTemplateFieldMappingDTO(template) + if assert.NotNil(t, dto) && assert.NotNil(t, dto.TargetFieldMapping) { + assert.Len(t, dto.TargetFieldMapping.FromEvalSet, 2) + assert.Equal(t, "f1", gptr.Indirect(dto.TargetFieldMapping.FromEvalSet[0].FieldName)) + assert.Equal(t, "src1", gptr.Indirect(dto.TargetFieldMapping.FromEvalSet[0].FromFieldName)) + assert.Equal(t, "v1", gptr.Indirect(dto.TargetFieldMapping.FromEvalSet[0].ConstValue)) + } +} + +func TestConvertTemplateConfToDTO_Full(t *testing.T) { + conf := &entity.ExptTemplateConfiguration{ + ConnectorConf: entity.Connector{ + TargetConf: &entity.TargetConf{ + IngressConf: &entity.TargetIngressConf{ + EvalSetAdapter: &entity.FieldAdapter{ + FieldConfs: []*entity.FieldConf{ + {FieldName: "t1", FromField: "src1", Value: "v1"}, + }, + }, + CustomConf: &entity.FieldAdapter{ + FieldConfs: []*entity.FieldConf{ + {FieldName: consts.FieldAdapterBuiltinFieldNameRuntimeParam, Value: `{"k":"v"}`}, + }, + }, + }, + }, + EvaluatorsConf: &entity.EvaluatorsConf{ + EvaluatorConf: []*entity.EvaluatorConf{ + { + EvaluatorVersionID: 101, + EvaluatorID: 1, + Version: "v1", + ScoreWeight: gptr.Of(0.7), + RunConf: &entity.EvaluatorRunConfig{ + Env: gptr.Of("prod"), + EvaluatorRuntimeParam: &entity.RuntimeParam{ + JSONValue: gptr.Of(`{"rk":"rv"}`), + }, + }, + IngressConf: &entity.EvaluatorIngressConf{ + EvalSetAdapter: &entity.FieldAdapter{ + FieldConfs: []*entity.FieldConf{ + {FieldName: "ein", FromField: "col1", Value: ""}, + }, + }, + TargetAdapter: &entity.FieldAdapter{ + FieldConfs: []*entity.FieldConf{ + {FieldName: "eout", FromField: "col2", Value: ""}, + }, + }, + }, + }, + }, + }, + }, + } + + target, evalMappings, rt := convertTemplateConfToDTO(conf) + if assert.NotNil(t, target) { + assert.Len(t, target.FromEvalSet, 1) + assert.Equal(t, "t1", gptr.Indirect(target.FromEvalSet[0].FieldName)) + } + if assert.NotNil(t, rt) { + assert.Equal(t, `{"k":"v"}`, gptr.Indirect(rt.JSONValue)) + } + if assert.Len(t, evalMappings, 1) { + em := evalMappings[0] + assert.Equal(t, int64(101), em.GetEvaluatorVersionID()) + item := em.GetEvaluatorIDVersionItem() + if assert.NotNil(t, item) { + assert.Equal(t, int64(1), item.GetEvaluatorID()) + assert.Equal(t, "v1", item.GetVersion()) + assert.Equal(t, int64(101), item.GetEvaluatorVersionID()) + if assert.NotNil(t, item.ScoreWeight) { + assert.Equal(t, 0.7, gptr.Indirect(item.ScoreWeight)) + } + if assert.NotNil(t, item.RunConfig) && assert.NotNil(t, item.RunConfig.EvaluatorRuntimeParam) { + assert.Equal(t, `{"rk":"rv"}`, item.RunConfig.EvaluatorRuntimeParam.GetJSONValue()) + } + } + assert.Len(t, em.FromEvalSet, 1) + assert.Len(t, em.FromTarget, 1) + } +} + +func TestAppendEvaluatorIDVersionItemsFromEvaluators(t *testing.T) { + // 准备 evaluator 及其版本 + pev := &entity.PromptEvaluatorVersion{} + pev.SetEvaluatorID(1) + pev.SetVersion("v1") + pev.SetID(101) + eval := &entity.Evaluator{ + EvaluatorType: entity.EvaluatorTypePrompt, + PromptEvaluatorVersion: pev, + } + + // TripleConfig 中包含相同 evaluator_version_id 的权重 + template := &entity.ExptTemplate{ + Evaluators: []*entity.Evaluator{eval}, + TripleConfig: &entity.ExptTemplateTuple{ + EvaluatorIDVersionItems: []*entity.EvaluatorIDVersionItem{ + {EvaluatorVersionID: 101, ScoreWeight: 0.9}, + }, + }, + } + + var dst []*evaluatordto.EvaluatorIDVersionItem + appendEvaluatorIDVersionItemsFromEvaluators(template, &dst) + + if assert.Len(t, dst, 1) { + it := dst[0] + assert.Equal(t, int64(1), gptr.Indirect(it.EvaluatorID)) + assert.Equal(t, "v1", gptr.Indirect(it.Version)) + assert.Equal(t, int64(101), gptr.Indirect(it.EvaluatorVersionID)) + // 权重应该从 TripleConfig.EvaluatorIDVersionItems 中匹配并设置 + if assert.NotNil(t, it.ScoreWeight) { + assert.Equal(t, 0.9, gptr.Indirect(it.ScoreWeight)) + } + } +} + +func TestAppendEvaluatorIDVersionItemsFromVersionRef(t *testing.T) { + template := &entity.ExptTemplate{ + EvaluatorVersionRef: []*entity.ExptTemplateEvaluatorVersionRef{ + {EvaluatorID: 1, EvaluatorVersionID: 101}, + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvaluatorIDVersionItems: []*entity.EvaluatorIDVersionItem{ + {EvaluatorVersionID: 101, ScoreWeight: 0.8}, + }, + }, + } + + var dst []*evaluatordto.EvaluatorIDVersionItem + appendEvaluatorIDVersionItemsFromVersionRef(template, &dst) + + if assert.Len(t, dst, 1) { + it := dst[0] + assert.Equal(t, int64(1), gptr.Indirect(it.EvaluatorID)) + assert.Equal(t, int64(101), gptr.Indirect(it.EvaluatorVersionID)) + // 权重同样在 buildEvaluatorIDVersionItemsDTO 中填充,这里只关心基本字段 + } +} + +func TestBuildEvaluatorIDVersionItemsDTO_FromEvaluators(t *testing.T) { + pev := &entity.PromptEvaluatorVersion{} + pev.SetEvaluatorID(1) + pev.SetVersion("v1") + pev.SetID(101) + eval := &entity.Evaluator{ + EvaluatorType: entity.EvaluatorTypePrompt, + PromptEvaluatorVersion: pev, + } + + template := &entity.ExptTemplate{ + Evaluators: []*entity.Evaluator{eval}, + TripleConfig: &entity.ExptTemplateTuple{ + // 不填 EvaluatorIDVersionItems,强制走 Evaluators 分支 + EvaluatorIDVersionItems: nil, + }, + } + + items := buildEvaluatorIDVersionItemsDTO(template) + if assert.Len(t, items, 1) { + it := items[0] + assert.Equal(t, int64(1), gptr.Indirect(it.EvaluatorID)) + assert.Equal(t, "v1", gptr.Indirect(it.Version)) + assert.Equal(t, int64(101), gptr.Indirect(it.EvaluatorVersionID)) + } +} + +func TestBuildEvaluatorIDVersionItemsDTO_FromVersionRef(t *testing.T) { + template := &entity.ExptTemplate{ + TripleConfig: &entity.ExptTemplateTuple{ + // 这里让 EvaluatorIDVersionItems 为空,从而跳过第一分支 + EvaluatorIDVersionItems: nil, + }, + EvaluatorVersionRef: []*entity.ExptTemplateEvaluatorVersionRef{ + {EvaluatorID: 2, EvaluatorVersionID: 202}, + }, + } + + items := buildEvaluatorIDVersionItemsDTO(template) + if assert.Len(t, items, 1) { + it := items[0] + assert.Equal(t, int64(2), gptr.Indirect(it.EvaluatorID)) + assert.Equal(t, int64(202), gptr.Indirect(it.EvaluatorVersionID)) + } +} + func TestEvalConfConvert_ConvertEntityToDTO(t *testing.T) { raw := `{ "ConnectorConf": @@ -1159,3 +1948,457 @@ func TestConvertCreateReq(t *testing.T) { }) } } + +func TestBuildTemplateScoreWeightConfigDTO_FromTripleConfig(t *testing.T) { + t.Run("从TripleConfig.EvaluatorIDVersionItems构建权重配置", func(t *testing.T) { + template := &entity.ExptTemplate{ + TripleConfig: &entity.ExptTemplateTuple{ + EvaluatorIDVersionItems: []*entity.EvaluatorIDVersionItem{ + { + EvaluatorVersionID: 101, + ScoreWeight: 0.6, + }, + { + EvaluatorVersionID: 102, + ScoreWeight: 0.4, + }, + { + EvaluatorVersionID: 0, // 无效,应该跳过 + ScoreWeight: 0.5, + }, + { + EvaluatorVersionID: 103, + ScoreWeight: 0, // 无效,应该跳过 + }, + nil, // nil项,应该跳过 + }, + }, + } + result := buildTemplateScoreWeightConfigDTO(template) + assert.NotNil(t, result) + assert.True(t, *result.EnableWeightedScore) + assert.Equal(t, 0.6, result.EvaluatorScoreWeights[101]) + assert.Equal(t, 0.4, result.EvaluatorScoreWeights[102]) + assert.NotContains(t, result.EvaluatorScoreWeights, int64(103)) + assert.NotContains(t, result.EvaluatorScoreWeights, int64(0)) + }) + + t.Run("TripleConfig为空,返回nil", func(t *testing.T) { + template := &entity.ExptTemplate{ + TripleConfig: nil, + } + result := buildTemplateScoreWeightConfigDTO(template) + assert.Nil(t, result) + }) + + t.Run("EvaluatorIDVersionItems为空,返回nil", func(t *testing.T) { + template := &entity.ExptTemplate{ + TripleConfig: &entity.ExptTemplateTuple{ + EvaluatorIDVersionItems: []*entity.EvaluatorIDVersionItem{}, + }, + } + result := buildTemplateScoreWeightConfigDTO(template) + assert.Nil(t, result) + }) + + t.Run("TemplateConf已有权重配置,优先使用TemplateConf", func(t *testing.T) { + scoreWeight := 0.8 + template := &entity.ExptTemplate{ + TemplateConf: &entity.ExptTemplateConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EvaluatorConf: []*entity.EvaluatorConf{ + { + EvaluatorVersionID: 201, + ScoreWeight: &scoreWeight, + }, + }, + }, + }, + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvaluatorIDVersionItems: []*entity.EvaluatorIDVersionItem{ + { + EvaluatorVersionID: 101, + ScoreWeight: 0.6, + }, + }, + }, + } + result := buildTemplateScoreWeightConfigDTO(template) + assert.NotNil(t, result) + // 应该使用 TemplateConf 中的权重,而不是 TripleConfig 中的 + assert.Equal(t, 0.8, result.EvaluatorScoreWeights[201]) + assert.NotContains(t, result.EvaluatorScoreWeights, int64(101)) + }) +} + +func TestCreateEvalTargetParamDTO2DOForTemplate(t *testing.T) { + t.Run("正常转换", func(t *testing.T) { + param := &eval_target.CreateEvalTargetParam{ + SourceTargetID: gptr.Of("source_id"), + SourceTargetVersion: gptr.Of("v1"), + BotPublishVersion: gptr.Of("bot_v1"), + Region: gptr.Of("region1"), + Env: gptr.Of("prod"), + } + param.SetEvalTargetType(gptr.Of(domain_eval_target.EvalTargetType_CozeLoopPrompt)) + param.SetBotInfoType(gptr.Of(domain_eval_target.CozeBotInfoType_DraftBot)) + result := CreateEvalTargetParamDTO2DOForTemplate(param) + assert.NotNil(t, result) + assert.NotNil(t, result.SourceTargetID) + assert.Equal(t, "source_id", *result.SourceTargetID) + assert.NotNil(t, result.SourceTargetVersion) + assert.Equal(t, "v1", *result.SourceTargetVersion) + assert.NotNil(t, result.BotPublishVersion) + assert.Equal(t, "bot_v1", *result.BotPublishVersion) + assert.NotNil(t, result.Region) + assert.Equal(t, "region1", *result.Region) + assert.NotNil(t, result.Env) + assert.Equal(t, "prod", *result.Env) + assert.NotNil(t, result.EvalTargetType) + assert.Equal(t, entity.EvalTargetTypeLoopPrompt, *result.EvalTargetType) + assert.NotNil(t, result.BotInfoType) + assert.Equal(t, entity.CozeBotInfoTypeDraftBot, *result.BotInfoType) + }) + + t.Run("param为nil,返回nil", func(t *testing.T) { + result := CreateEvalTargetParamDTO2DOForTemplate(nil) + assert.Nil(t, result) + }) + + t.Run("转换CustomEvalTarget", func(t *testing.T) { + customTarget := domain_eval_target.NewCustomEvalTarget() + customTarget.SetID(gptr.Of("100")) + customTarget.SetName(gptr.Of("custom_target")) + customTarget.SetAvatarURL(gptr.Of("http://example.com/avatar")) + customTarget.Ext = map[string]string{"key": "value"} + param := &eval_target.CreateEvalTargetParam{} + param.SetCustomEvalTarget(customTarget) + result := CreateEvalTargetParamDTO2DOForTemplate(param) + assert.NotNil(t, result) + assert.NotNil(t, result.CustomEvalTarget) + assert.NotNil(t, result.CustomEvalTarget.ID) + assert.Equal(t, "100", *result.CustomEvalTarget.ID) + assert.NotNil(t, result.CustomEvalTarget.Name) + assert.Equal(t, "custom_target", *result.CustomEvalTarget.Name) + assert.NotNil(t, result.CustomEvalTarget.AvatarURL) + assert.Equal(t, "http://example.com/avatar", *result.CustomEvalTarget.AvatarURL) + assert.Equal(t, map[string]string{"key": "value"}, result.CustomEvalTarget.Ext) + }) + + t.Run("EvalTargetType为nil,不设置", func(t *testing.T) { + param := &eval_target.CreateEvalTargetParam{ + SourceTargetID: gptr.Of("source_id"), + } + result := CreateEvalTargetParamDTO2DOForTemplate(param) + assert.NotNil(t, result) + assert.Nil(t, result.EvalTargetType) + }) + + t.Run("BotInfoType为nil,不设置", func(t *testing.T) { + param := &eval_target.CreateEvalTargetParam{ + SourceTargetID: gptr.Of("source_id"), + } + result := CreateEvalTargetParamDTO2DOForTemplate(param) + assert.NotNil(t, result) + assert.Nil(t, result.BotInfoType) + }) +} + +func TestEvalConfConvert_ConvertToEntity_SetScoreWeight(t *testing.T) { + converter := &EvalConfConvert{} + scoreWeight1 := 0.6 + scoreWeight2 := 0.4 + + t.Run("设置ScoreWeight到EvaluatorConf", func(t *testing.T) { + cer := &expt.CreateExperimentRequest{ + EvaluatorFieldMapping: []*domain_expt.EvaluatorFieldMapping{ + domain_expt.NewEvaluatorFieldMapping(), + domain_expt.NewEvaluatorFieldMapping(), + }, + } + cer.EvaluatorFieldMapping[0].SetEvaluatorVersionID(101) + cer.EvaluatorFieldMapping[1].SetEvaluatorVersionID(102) + cer.EvaluatorScoreWeights = map[int64]float64{ + 101: scoreWeight1, + 102: scoreWeight2, + } + + result, err := converter.ConvertToEntity(cer, nil) + assert.NoError(t, err) + assert.NotNil(t, result) + assert.NotNil(t, result.ConnectorConf.EvaluatorsConf) + assert.Len(t, result.ConnectorConf.EvaluatorsConf.EvaluatorConf, 2) + + // 验证 ScoreWeight 被正确设置 + for _, conf := range result.ConnectorConf.EvaluatorsConf.EvaluatorConf { + switch conf.EvaluatorVersionID { + case 101: + assert.NotNil(t, conf.ScoreWeight) + assert.Equal(t, scoreWeight1, *conf.ScoreWeight) + case 102: + assert.NotNil(t, conf.ScoreWeight) + assert.Equal(t, scoreWeight2, *conf.ScoreWeight) + } + } + }) + + t.Run("权重为0或负数,不设置ScoreWeight", func(t *testing.T) { + cer := &expt.CreateExperimentRequest{ + EvaluatorFieldMapping: []*domain_expt.EvaluatorFieldMapping{ + domain_expt.NewEvaluatorFieldMapping(), + }, + } + cer.EvaluatorFieldMapping[0].SetEvaluatorVersionID(101) + cer.EvaluatorScoreWeights = map[int64]float64{ + 101: 0.0, // 权重为0,不应该设置 + } + + result, err := converter.ConvertToEntity(cer, nil) + assert.NoError(t, err) + assert.NotNil(t, result) + if result.ConnectorConf.EvaluatorsConf != nil && len(result.ConnectorConf.EvaluatorsConf.EvaluatorConf) > 0 { + conf := result.ConnectorConf.EvaluatorsConf.EvaluatorConf[0] + // 权重为0,不应该设置 ScoreWeight + assert.Nil(t, conf.ScoreWeight) + } + }) + + t.Run("EvaluatorConf为nil,跳过", func(t *testing.T) { + cer := &expt.CreateExperimentRequest{ + EvaluatorFieldMapping: []*domain_expt.EvaluatorFieldMapping{ + nil, // nil项,应该跳过 + }, + EvaluatorScoreWeights: map[int64]float64{ + 101: scoreWeight1, + }, + } + + result, err := converter.ConvertToEntity(cer, nil) + assert.NoError(t, err) + assert.NotNil(t, result) + // nil项应该被跳过,不会导致panic + }) +} + +func TestToExptDTO_BuildEvaluatorIDVersionItemsFromVersionRef(t *testing.T) { + t.Run("从EvaluatorVersionRef构建EvaluatorIDVersionItems", func(t *testing.T) { + scoreWeight := 0.7 + experiment := &entity.Experiment{ + // 没有 Evaluators,使用 EvaluatorVersionRef + EvaluatorVersionRef: []*entity.ExptEvaluatorVersionRef{ + { + EvaluatorID: 1, + EvaluatorVersionID: 101, + }, + { + EvaluatorID: 2, + EvaluatorVersionID: 102, + }, + { + EvaluatorID: 0, // 无效,应该跳过 + EvaluatorVersionID: 103, + }, + { + EvaluatorID: 3, + EvaluatorVersionID: 0, // 无效,应该跳过 + }, + }, + EvalConf: &entity.EvaluationConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EvaluatorConf: []*entity.EvaluatorConf{ + { + EvaluatorVersionID: 101, + ScoreWeight: &scoreWeight, + }, + }, + }, + }, + }, + } + + result := ToExptDTO(experiment) + assert.NotNil(t, result) + // 验证权重配置被正确填充到 ScoreWeightConfig + if result.ScoreWeightConfig != nil { + assert.Equal(t, scoreWeight, result.ScoreWeightConfig.EvaluatorScoreWeights[101]) + } + // 验证 EvaluatorIDVersionList 被构建(从 evaluatorVersionIDs 构建) + assert.NotNil(t, result.EvaluatorIDVersionList) + }) + + t.Run("优先使用Evaluators,不使用EvaluatorVersionRef", func(t *testing.T) { + experiment := &entity.Experiment{ + Evaluators: []*entity.Evaluator{ + { + ID: 1, + PromptEvaluatorVersion: &entity.PromptEvaluatorVersion{ + EvaluatorID: 1, + ID: 101, + }, + EvaluatorType: entity.EvaluatorTypePrompt, + }, + }, + EvaluatorVersionRef: []*entity.ExptEvaluatorVersionRef{ + { + EvaluatorID: 2, + EvaluatorVersionID: 102, + }, + }, + } + + result := ToExptDTO(experiment) + assert.NotNil(t, result) + // 应该优先使用 Evaluators 的信息构建 EvaluatorIDVersionList + assert.NotNil(t, result.EvaluatorIDVersionList) + }) +} + +func TestToExptDTO_FillExptTemplateMeta(t *testing.T) { + t.Run("填充ExptTemplateMeta", func(t *testing.T) { + experiment := &entity.Experiment{ + ExptTemplateMeta: &entity.ExptTemplateMeta{ + ID: 100, + WorkspaceID: 200, + Name: "template_name", + Desc: "template_desc", + ExptType: entity.ExptType_Offline, + }, + } + + result := ToExptDTO(experiment) + assert.NotNil(t, result) + assert.NotNil(t, result.ExptTemplateMeta) + assert.Equal(t, int64(100), gptr.Indirect(result.ExptTemplateMeta.ID)) + assert.Equal(t, int64(200), gptr.Indirect(result.ExptTemplateMeta.WorkspaceID)) + assert.Equal(t, "template_name", gptr.Indirect(result.ExptTemplateMeta.Name)) + assert.Equal(t, "template_desc", gptr.Indirect(result.ExptTemplateMeta.Desc)) + assert.Equal(t, domain_expt.ExptType_Offline, gptr.Indirect(result.ExptTemplateMeta.ExptType)) + }) + + t.Run("ExptTemplateMeta为nil,不填充", func(t *testing.T) { + experiment := &entity.Experiment{ + ExptTemplateMeta: nil, + } + + result := ToExptDTO(experiment) + assert.NotNil(t, result) + assert.Nil(t, result.ExptTemplateMeta) + }) +} + +func TestToTargetFieldMappingDOForTemplate_RuntimeParam(t *testing.T) { + t.Run("设置RuntimeParam到CustomConf", func(t *testing.T) { + rtp := &entity.RuntimeParam{ + JSONValue: gptr.Of(`{"key":"value"}`), + } + mapping := &domain_expt.TargetFieldMapping{ + FromEvalSet: []*domain_expt.FieldMapping{ + { + FieldName: gptr.Of("field1"), + FromFieldName: gptr.Of("from1"), + }, + }, + } + + result := toTargetFieldMappingDOForTemplate(mapping, rtp) + assert.NotNil(t, result) + assert.NotNil(t, result.CustomConf) + assert.Len(t, result.CustomConf.FieldConfs, 1) + assert.Equal(t, consts.FieldAdapterBuiltinFieldNameRuntimeParam, result.CustomConf.FieldConfs[0].FieldName) + assert.Equal(t, `{"key":"value"}`, result.CustomConf.FieldConfs[0].Value) + }) + + t.Run("RuntimeParam为nil,不设置CustomConf", func(t *testing.T) { + mapping := &domain_expt.TargetFieldMapping{ + FromEvalSet: []*domain_expt.FieldMapping{ + { + FieldName: gptr.Of("field1"), + FromFieldName: gptr.Of("from1"), + }, + }, + } + + result := toTargetFieldMappingDOForTemplate(mapping, nil) + assert.NotNil(t, result) + assert.Nil(t, result.CustomConf) + }) + + t.Run("RuntimeParam.JSONValue为空,不设置CustomConf", func(t *testing.T) { + rtp := &entity.RuntimeParam{ + JSONValue: nil, + } + mapping := &domain_expt.TargetFieldMapping{} + + result := toTargetFieldMappingDOForTemplate(mapping, rtp) + assert.NotNil(t, result) + assert.Nil(t, result.CustomConf) + }) + + t.Run("RuntimeParam.JSONValue为空字符串,不设置CustomConf", func(t *testing.T) { + rtp := &entity.RuntimeParam{ + JSONValue: gptr.Of(""), + } + mapping := &domain_expt.TargetFieldMapping{} + + result := toTargetFieldMappingDOForTemplate(mapping, rtp) + assert.NotNil(t, result) + assert.Nil(t, result.CustomConf) + }) +} + +func TestToEvaluatorFieldMappingDoForTemplate_Complete(t *testing.T) { + t.Run("完整转换评估器字段映射", func(t *testing.T) { + mapping := []*domain_expt.EvaluatorFieldMapping{ + domain_expt.NewEvaluatorFieldMapping(), + } + mapping[0].SetEvaluatorVersionID(101) + mapping[0].SetFromEvalSet([]*domain_expt.FieldMapping{ + { + FieldName: gptr.Of("input"), + FromFieldName: gptr.Of("col1"), + ConstValue: gptr.Of(""), + }, + }) + mapping[0].SetFromTarget([]*domain_expt.FieldMapping{ + { + FieldName: gptr.Of("output"), + FromFieldName: gptr.Of("col2"), + }, + }) + mapping[0].SetEvaluatorIDVersionItem(&evaluatordto.EvaluatorIDVersionItem{ + EvaluatorID: gptr.Of(int64(1)), + Version: gptr.Of("v1"), + EvaluatorVersionID: gptr.Of(int64(101)), + }) + + result := toEvaluatorFieldMappingDoForTemplate(mapping, nil) + assert.NotNil(t, result) + assert.Len(t, result, 1) + conf := result[0] + assert.Equal(t, int64(101), conf.EvaluatorVersionID) + assert.Equal(t, int64(1), conf.EvaluatorID) + assert.Equal(t, "v1", conf.Version) + assert.Len(t, conf.IngressConf.EvalSetAdapter.FieldConfs, 1) + assert.Len(t, conf.IngressConf.TargetAdapter.FieldConfs, 1) + }) + + t.Run("mapping为nil,返回nil", func(t *testing.T) { + result := toEvaluatorFieldMappingDoForTemplate(nil, nil) + assert.Nil(t, result) + }) + + t.Run("mapping包含nil项,跳过", func(t *testing.T) { + mapping := []*domain_expt.EvaluatorFieldMapping{ + nil, + domain_expt.NewEvaluatorFieldMapping(), + } + mapping[1].SetEvaluatorVersionID(101) + + result := toEvaluatorFieldMappingDoForTemplate(mapping, nil) + assert.NotNil(t, result) + assert.Len(t, result, 1) + }) +} diff --git a/backend/modules/evaluation/application/convertor/experiment/filter.go b/backend/modules/evaluation/application/convertor/experiment/filter.go index 4fdfa125a..24ba67d30 100644 --- a/backend/modules/evaluation/application/convertor/experiment/filter.go +++ b/backend/modules/evaluation/application/convertor/experiment/filter.go @@ -81,6 +81,11 @@ func (e *ExptFilterConvertor) ConvertFilters(ctx context.Context, filters *domai continue } ff.CreatedBy = intersectIgnoreNull(ff.CreatedBy, []string{cond.GetValue()}) + case domain_expt.FieldType_UpdatedBy: + if len(cond.GetValue()) == 0 { + continue + } + ff.UpdatedBy = intersectIgnoreNull(ff.UpdatedBy, []string{cond.GetValue()}) case domain_expt.FieldType_ExptStatus: if len(cond.GetValue()) == 0 { continue @@ -174,6 +179,15 @@ func (e *ExptFilterConvertor) ConvertFilters(ctx context.Context, filters *domai } sourceIDs := parseStringList(cond.GetValue()) ff.SourceID = intersectIgnoreNull(ff.SourceID, sourceIDs) + case domain_expt.FieldType_ExperimentTemplateID: + if len(cond.GetValue()) == 0 { + continue + } + ids, err := parseIntList(cond.GetValue()) + if err != nil { + return nil, err + } + ff.ExptTemplateIDs = intersectIgnoreNull(ff.ExptTemplateIDs, ids) default: logs.CtxWarn(ctx, "ConvertFilters with unsupport condition: %v", json.Jsonify(cond)) } @@ -417,6 +431,9 @@ func ConvertExptTurnResultFilterAccelerator(experimentFilter *domain_expt.Experi case domain_expt.FieldType_EvaluatorScore: // 评估器相关,通常为float类型 result.MapCond.EvaluatorScoreFilters = append(result.MapCond.EvaluatorScoreFilters, fieldFilter) + case domain_expt.FieldType_EvaluatorWeightedScore: + // 加权得分,通常为float类型 + result.MapCond.EvaluatorWeightedScoreFilter = fieldFilter case domain_expt.FieldType_ItemRunState: result.ItemRunStatus = append(result.ItemRunStatus, fieldFilter) // case domain_expt.FieldType_TurnRunState: // turn_run_state废弃 @@ -509,3 +526,152 @@ func checkFilterCondition(filterCondition domain_expt.FilterCondition) error { } return nil } + +// NewExptTemplateFilterConvertor 创建实验模板筛选器转换器 +func NewExptTemplateFilterConvertor(evalTargetService service.IEvalTargetService) *ExptTemplateFilterConvertor { + return &ExptTemplateFilterConvertor{ + evalTargetService: evalTargetService, + } +} + +type ExptTemplateFilterConvertor struct { + evalTargetService service.IEvalTargetService +} + +// Convert 转换实验模板筛选选项为实体筛选器 +func (e *ExptTemplateFilterConvertor) Convert(ctx context.Context, etf *domain_expt.ExperimentTemplateFilter, spaceID int64) (*entity.ExptTemplateListFilter, error) { + if etf == nil { + return nil, nil + } + + filters, err := e.ConvertFilters(ctx, etf.GetFilters(), spaceID) + if err != nil { + return nil, err + } + + // 处理关键词搜索(如果有) + if etf.GetKeywordSearch() != nil { + keywordSearch := etf.GetKeywordSearch() + keyword := keywordSearch.GetKeyword() + if len(keyword) > 0 { + // 对于模板,关键词搜索主要用于名称模糊匹配 + filters.FuzzyName = keyword + } + } + + return filters, nil +} + +// ConvertFilters 转换筛选条件 +func (e *ExptTemplateFilterConvertor) ConvertFilters(ctx context.Context, filters *domain_expt.Filters, spaceID int64) (*entity.ExptTemplateListFilter, error) { + efo := &entity.ExptTemplateListFilter{ + Includes: &entity.ExptTemplateFilterFields{}, + Excludes: &entity.ExptTemplateFilterFields{}, + } + + if filters == nil { + return efo, nil + } + + if filters.GetLogicOp() != domain_expt.FilterLogicOp_And { + return nil, fmt.Errorf("ConvertFilters fail, operator type must be and, got: %v", filters.GetLogicOp()) + } + + ffieldsFn := func(operatorType domain_expt.FilterOperatorType) *entity.ExptTemplateFilterFields { + switch operatorType { + case domain_expt.FilterOperatorType_In, domain_expt.FilterOperatorType_Equal: + return efo.Includes + case domain_expt.FilterOperatorType_NotIn, domain_expt.FilterOperatorType_NotEqual: + return efo.Excludes + default: + return &entity.ExptTemplateFilterFields{} + } + } + + for _, cond := range filters.GetFilterConditions() { + if cond.GetField() == nil { + continue + } + ff := ffieldsFn(cond.GetOperator()) + switch cond.GetField().GetFieldType() { + case domain_expt.FieldType_CreatorBy: + if len(cond.GetValue()) == 0 { + continue + } + ff.CreatedBy = intersectIgnoreNull(ff.CreatedBy, []string{cond.GetValue()}) + case domain_expt.FieldType_UpdatedBy: + if len(cond.GetValue()) == 0 { + continue + } + ff.UpdatedBy = intersectIgnoreNull(ff.UpdatedBy, []string{cond.GetValue()}) + case domain_expt.FieldType_EvalSetID: + if len(cond.GetValue()) == 0 { + continue + } + ids, err := parseIntList(cond.GetValue()) + if err != nil { + return nil, err + } + ff.EvalSetIDs = intersectIgnoreNull(ff.EvalSetIDs, ids) + case domain_expt.FieldType_TargetID: + if len(cond.GetValue()) == 0 { + continue + } + ids, err := parseIntList(cond.GetValue()) + if err != nil { + return nil, err + } + ff.TargetIDs = intersectIgnoreNull(ff.TargetIDs, ids) + case domain_expt.FieldType_EvaluatorID: + if len(cond.GetValue()) == 0 { + continue + } + ids, err := parseIntList(cond.GetValue()) + if err != nil { + return nil, err + } + ff.EvaluatorIDs = intersectIgnoreNull(ff.EvaluatorIDs, ids) + case domain_expt.FieldType_TargetType: + if len(cond.GetValue()) == 0 { + continue + } + ids, err := parseIntList(cond.GetValue()) + if err != nil { + return nil, err + } + ff.TargetType = intersectIgnoreNull(ff.TargetType, ids) + case domain_expt.FieldType_SourceTarget: + if cond.GetSourceTarget() == nil || len(cond.GetSourceTarget().GetSourceTargetIds()) == 0 { + continue + } + param := &entity.BatchGetEvalTargetBySourceParam{ + SpaceID: spaceID, + SourceTargetID: cond.GetSourceTarget().GetSourceTargetIds(), + TargetType: entity.EvalTargetType(cond.GetSourceTarget().GetEvalTargetType()), + } + targets, err := e.evalTargetService.BatchGetEvalTargetBySource(ctx, param) + if err != nil { + return nil, err + } + if len(cond.GetSourceTarget().GetSourceTargetIds()) == 1 && len(targets) == 0 { + ff.TargetIDs = append(ff.TargetIDs, -1) // 无效查询,返回空结果 + break + } + targetIDs := make([]int64, 0, len(targets)) + for _, target := range targets { + targetIDs = append(targetIDs, target.ID) + } + ff.TargetIDs = intersectIgnoreNull(ff.TargetIDs, targetIDs) + case domain_expt.FieldType_ExptType: + types, err := parseIntList(cond.GetValue()) + if err != nil { + return nil, err + } + ff.ExptType = intersectIgnoreNull(ff.ExptType, types) + default: + logs.CtxWarn(ctx, "ConvertFilters with unsupport condition: %v", json.Jsonify(cond)) + } + } + + return efo, nil +} diff --git a/backend/modules/evaluation/application/convertor/experiment/filter_test.go b/backend/modules/evaluation/application/convertor/experiment/filter_test.go new file mode 100644 index 000000000..6aa6325c9 --- /dev/null +++ b/backend/modules/evaluation/application/convertor/experiment/filter_test.go @@ -0,0 +1,1498 @@ +// Copyright 2026 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package experiment + +import ( + "context" + "fmt" + "testing" + + "github.com/bytedance/gg/gptr" + "github.com/stretchr/testify/assert" + "go.uber.org/mock/gomock" + + eval_target "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/evaluation/domain/eval_target" + domain_expt "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/evaluation/domain/expt" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/entity" + svcmocks "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/service/mocks" +) + +func TestExptFilterConvertor_Convert_NilOption(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockEvalTargetSvc := svcmocks.NewMockIEvalTargetService(ctrl) + conv := NewExptFilterConvertor(mockEvalTargetSvc) + + got, err := conv.Convert(context.Background(), nil, 100) + assert.NoError(t, err) + assert.Nil(t, got) +} + +func TestExptFilterConvertor_ConvertFilters_BasicFieldsAndDefaultType(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockEvalTargetSvc := svcmocks.NewMockIEvalTargetService(ctrl) + conv := NewExptFilterConvertor(mockEvalTargetSvc) + + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_CreatorBy, + }, + Operator: domain_expt.FilterOperatorType_Equal, + Value: "user1", + }, + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_ExptStatus, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "1,2", + }, + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_SourceID, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "s1,s2", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.NotNil(t, got) + assert.Equal(t, []string{"user1"}, got.Includes.CreatedBy) + assert.ElementsMatch(t, []int64{1, 2}, got.Includes.Status) + assert.ElementsMatch(t, []string{"s1", "s2"}, got.Includes.SourceID) + // 未显式传 ExptType,应该默认补上 Offline + assert.ElementsMatch(t, []int64{int64(domain_expt.ExptType_Offline)}, got.Includes.ExptType) +} + +func TestExptFilterConvertor_ConvertFilters_InvalidLogicOp(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockEvalTargetSvc := svcmocks.NewMockIEvalTargetService(ctrl) + conv := NewExptFilterConvertor(mockEvalTargetSvc) + + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_Or)) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.Error(t, err) + assert.Nil(t, got) +} + +func TestExptFilterConvertor_ConvertFilters_SourceTarget_SingleNoTargets(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockEvalTargetSvc := svcmocks.NewMockIEvalTargetService(ctrl) + conv := NewExptFilterConvertor(mockEvalTargetSvc) + + // 当 SourceTargetIds 只有一个且查不到目标时,应写入 -1 作为兜底 + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_SourceTarget, + }, + Operator: domain_expt.FilterOperatorType_In, + SourceTarget: &domain_expt.SourceTarget{ + EvalTargetType: eval_target.EvalTargetTypePtr(eval_target.EvalTargetType_CozeBot), + SourceTargetIds: []string{"123"}, + }, + }, + }) + + mockEvalTargetSvc.EXPECT(). + BatchGetEvalTargetBySource(gomock.Any(), &entity.BatchGetEvalTargetBySourceParam{ + SpaceID: 100, + SourceTargetID: []string{"123"}, + TargetType: entity.EvalTargetType(eval_target.EvalTargetType_CozeBot), + }). + Return([]*entity.EvalTarget{}, nil) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.NotNil(t, got) + assert.Contains(t, got.Includes.TargetIDs, int64(-1)) +} + +func TestParseIntListAndStringList(t *testing.T) { + ints, err := parseIntList("1,2,3") + assert.NoError(t, err) + assert.ElementsMatch(t, []int64{1, 2, 3}, ints) + + _, err = parseIntList("a,b") + assert.Error(t, err) + + strs := parseStringList("a,b,c") + assert.ElementsMatch(t, []string{"a", "b", "c"}, strs) +} + +func TestParseOperator(t *testing.T) { + cases := []struct { + op domain_expt.FilterOperatorType + want string + err bool + }{ + {domain_expt.FilterOperatorType_Equal, "=", false}, + {domain_expt.FilterOperatorType_NotEqual, "!=", false}, + {domain_expt.FilterOperatorType_Greater, ">", false}, + {domain_expt.FilterOperatorType_GreaterOrEqual, ">=", false}, + {domain_expt.FilterOperatorType_Less, "<", false}, + {domain_expt.FilterOperatorType_LessOrEqual, "<=", false}, + {domain_expt.FilterOperatorType_In, "IN", false}, + {domain_expt.FilterOperatorType_NotIn, "NOT IN", false}, + {domain_expt.FilterOperatorType(999), "", true}, + } + + for _, c := range cases { + got, err := parseOperator(c.op) + if c.err { + assert.Error(t, err) + } else { + assert.NoError(t, err) + assert.Equal(t, c.want, got) + } + } +} + +func TestIntersectIgnoreNull(t *testing.T) { + // s1 为空,返回 s2 + assert.ElementsMatch(t, []int{1, 2}, intersectIgnoreNull([]int{}, []int{1, 2})) + // s2 为空,返回 s1 + assert.ElementsMatch(t, []int{1, 2}, intersectIgnoreNull([]int{1, 2}, []int{})) + // 交集 + assert.ElementsMatch(t, []int{2, 3}, intersectIgnoreNull([]int{1, 2, 3}, []int{2, 3, 4})) +} + +// TestExptFilterConvertor_ConvertFilters_FieldTypes_75_103 测试 ConvertFilters 中各种字段类型的筛选条件 (75-103行) +func TestExptFilterConvertor_ConvertFilters_FieldTypes_75_103(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockEvalTargetSvc := svcmocks.NewMockIEvalTargetService(ctrl) + conv := NewExptFilterConvertor(mockEvalTargetSvc) + + t.Run("CreatorBy字段", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_CreatorBy, + }, + Operator: domain_expt.FilterOperatorType_Equal, + Value: "user1", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.Equal(t, []string{"user1"}, got.Includes.CreatedBy) + }) + + t.Run("CreatorBy字段值为空,跳过", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_CreatorBy, + }, + Operator: domain_expt.FilterOperatorType_Equal, + Value: "", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.Nil(t, got.Includes.CreatedBy) + }) + + t.Run("UpdatedBy字段", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_UpdatedBy, + }, + Operator: domain_expt.FilterOperatorType_Equal, + Value: "user2", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.Equal(t, []string{"user2"}, got.Includes.UpdatedBy) + }) + + t.Run("ExptStatus字段,包含Processing时添加Draining", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_ExptStatus, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "3", // Processing = 3 + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + // 应该包含 Processing (3) 和 Draining (21) + assert.Contains(t, got.Includes.Status, int64(domain_expt.ExptStatus_Processing)) + assert.Contains(t, got.Includes.Status, int64(domain_expt.ExptStatus_Draining)) + }) + + t.Run("ExptStatus字段,不包含Processing时不添加Draining", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_ExptStatus, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "3", // 其他状态 + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.Contains(t, got.Includes.Status, int64(3)) + assert.NotContains(t, got.Includes.Status, int64(2)) // 不应该包含Draining + }) + + t.Run("ExptStatus字段,解析错误返回错误", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_ExptStatus, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "invalid", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.Error(t, err) + assert.Nil(t, got) + }) + + t.Run("EvalSetID字段", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_EvalSetID, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "10,20", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.ElementsMatch(t, []int64{10, 20}, got.Includes.EvalSetIDs) + }) + + t.Run("EvalSetID字段值为空,跳过", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_EvalSetID, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.Nil(t, got.Includes.EvalSetIDs) + }) +} + +// TestExptFilterConvertor_ConvertFilters_FieldTypes_173_261 测试 ConvertFilters 中更多字段类型和辅助函数 (173-261行) +func TestExptFilterConvertor_ConvertFilters_FieldTypes_173_261(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockEvalTargetSvc := svcmocks.NewMockIEvalTargetService(ctrl) + conv := NewExptFilterConvertor(mockEvalTargetSvc) + + t.Run("SourceType字段", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_SourceType, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "1,2", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.ElementsMatch(t, []int64{1, 2}, got.Includes.SourceType) + }) + + t.Run("SourceID字段", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_SourceID, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "s1,s2", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.ElementsMatch(t, []string{"s1", "s2"}, got.Includes.SourceID) + }) + + t.Run("SourceID字段值为空,跳过", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_SourceID, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.Nil(t, got.Includes.SourceID) + }) + + t.Run("ExperimentTemplateID字段", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_ExperimentTemplateID, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "100,200", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.ElementsMatch(t, []int64{100, 200}, got.Includes.ExptTemplateIDs) + }) + + t.Run("ExperimentTemplateID字段值为空,跳过", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_ExperimentTemplateID, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.Nil(t, got.Includes.ExptTemplateIDs) + }) + + t.Run("ExperimentTemplateID字段解析错误返回错误", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_ExperimentTemplateID, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "invalid", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.Error(t, err) + assert.Nil(t, got) + }) + + t.Run("intersectIgnoreNull函数测试", func(t *testing.T) { + // 测试字符串类型 + assert.ElementsMatch(t, []string{"a", "b"}, intersectIgnoreNull([]string{}, []string{"a", "b"})) + assert.ElementsMatch(t, []string{"a", "b"}, intersectIgnoreNull([]string{"a", "b"}, []string{})) + assert.ElementsMatch(t, []string{"b"}, intersectIgnoreNull([]string{"a", "b"}, []string{"b", "c"})) + + // 测试int64类型 + assert.ElementsMatch(t, []int64{1, 2}, intersectIgnoreNull([]int64{}, []int64{1, 2})) + assert.ElementsMatch(t, []int64{1, 2}, intersectIgnoreNull([]int64{1, 2}, []int64{})) + assert.ElementsMatch(t, []int64{2}, intersectIgnoreNull([]int64{1, 2}, []int64{2, 3})) + }) + + t.Run("parseIntList函数测试", func(t *testing.T) { + result, err := parseIntList("1,2,3") + assert.NoError(t, err) + assert.ElementsMatch(t, []int64{1, 2, 3}, result) + + result, err = parseIntList("10") + assert.NoError(t, err) + assert.Equal(t, []int64{10}, result) + + _, err = parseIntList("invalid") + assert.Error(t, err) + + _, err = parseIntList("1,invalid,3") + assert.Error(t, err) + }) + + t.Run("parseStringList函数测试", func(t *testing.T) { + result := parseStringList("a,b,c") + assert.ElementsMatch(t, []string{"a", "b", "c"}, result) + + result = parseStringList("single") + assert.Equal(t, []string{"single"}, result) + + result = parseStringList("") + assert.Equal(t, []string{""}, result) + }) + + t.Run("parseOperator函数测试", func(t *testing.T) { + // 这些测试已经在TestParseOperator中覆盖,这里补充一些边界情况 + operator, err := parseOperator(domain_expt.FilterOperatorType_Equal) + assert.NoError(t, err) + assert.Equal(t, "=", operator) + + operator, err = parseOperator(domain_expt.FilterOperatorType_NotEqual) + assert.NoError(t, err) + assert.Equal(t, "!=", operator) + + _, err = parseOperator(domain_expt.FilterOperatorType(999)) + assert.Error(t, err) + }) +} + +// TestExptTemplateFilterConvertor_Convert_527_676 测试 ExptTemplateFilterConvertor 的 Convert 和 ConvertFilters 方法 (527-676行) +func TestExptTemplateFilterConvertor_Convert_527_676(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockEvalTargetSvc := svcmocks.NewMockIEvalTargetService(ctrl) + conv := NewExptTemplateFilterConvertor(mockEvalTargetSvc) + + t.Run("Convert方法,nil选项返回nil", func(t *testing.T) { + got, err := conv.Convert(context.Background(), nil, 100) + assert.NoError(t, err) + assert.Nil(t, got) + }) + + t.Run("Convert方法,带关键词搜索", func(t *testing.T) { + etf := &domain_expt.ExperimentTemplateFilter{} + keywordSearch := &domain_expt.KeywordSearch{} + keywordSearch.SetKeyword(gptr.Of("test")) + etf.SetKeywordSearch(keywordSearch) + etf.SetFilters(&domain_expt.Filters{ + LogicOp: domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And), + }) + + got, err := conv.Convert(context.Background(), etf, 100) + assert.NoError(t, err) + assert.NotNil(t, got) + assert.Equal(t, "test", got.FuzzyName) + }) + + t.Run("Convert方法,关键词为空,不设置FuzzyName", func(t *testing.T) { + etf := &domain_expt.ExperimentTemplateFilter{} + keywordSearch := &domain_expt.KeywordSearch{} + keywordSearch.SetKeyword(gptr.Of("")) + etf.SetKeywordSearch(keywordSearch) + etf.SetFilters(&domain_expt.Filters{ + LogicOp: domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And), + }) + + got, err := conv.Convert(context.Background(), etf, 100) + assert.NoError(t, err) + assert.NotNil(t, got) + assert.Empty(t, got.FuzzyName) + }) + + t.Run("ConvertFilters方法,nil filters返回空过滤器", func(t *testing.T) { + got, err := conv.ConvertFilters(context.Background(), nil, 100) + assert.NoError(t, err) + assert.NotNil(t, got) + assert.NotNil(t, got.Includes) + assert.NotNil(t, got.Excludes) + }) + + t.Run("ConvertFilters方法,无效的逻辑操作符返回错误", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_Or)) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.Error(t, err) + assert.Nil(t, got) + }) + + t.Run("ConvertFilters方法,CreatorBy字段", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_CreatorBy, + }, + Operator: domain_expt.FilterOperatorType_Equal, + Value: "user1", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.Equal(t, []string{"user1"}, got.Includes.CreatedBy) + }) + + t.Run("ConvertFilters方法,UpdatedBy字段", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_UpdatedBy, + }, + Operator: domain_expt.FilterOperatorType_Equal, + Value: "user2", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.Equal(t, []string{"user2"}, got.Includes.UpdatedBy) + }) + + t.Run("ConvertFilters方法,EvalSetID字段", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_EvalSetID, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "10,20", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.ElementsMatch(t, []int64{10, 20}, got.Includes.EvalSetIDs) + }) + + t.Run("ConvertFilters方法,TargetID字段", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_TargetID, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "30,40", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.ElementsMatch(t, []int64{30, 40}, got.Includes.TargetIDs) + }) + + t.Run("ConvertFilters方法,EvaluatorID字段", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_EvaluatorID, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "50,60", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.ElementsMatch(t, []int64{50, 60}, got.Includes.EvaluatorIDs) + }) + + t.Run("ConvertFilters方法,TargetType字段", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_TargetType, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "1,2", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.ElementsMatch(t, []int64{1, 2}, got.Includes.TargetType) + }) + + t.Run("ConvertFilters方法,SourceTarget字段,单个ID查不到目标时返回-1", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_SourceTarget, + }, + Operator: domain_expt.FilterOperatorType_In, + SourceTarget: &domain_expt.SourceTarget{ + EvalTargetType: eval_target.EvalTargetTypePtr(eval_target.EvalTargetType_CozeBot), + SourceTargetIds: []string{"source1"}, + }, + }, + }) + + mockEvalTargetSvc.EXPECT(). + BatchGetEvalTargetBySource(gomock.Any(), &entity.BatchGetEvalTargetBySourceParam{ + SpaceID: 100, + SourceTargetID: []string{"source1"}, + TargetType: entity.EvalTargetTypeCozeBot, + }). + Return([]*entity.EvalTarget{}, nil) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.Contains(t, got.Includes.TargetIDs, int64(-1)) + }) + + t.Run("ConvertFilters方法,SourceTarget字段,多个ID查不到目标时不返回-1", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_SourceTarget, + }, + Operator: domain_expt.FilterOperatorType_In, + SourceTarget: &domain_expt.SourceTarget{ + EvalTargetType: eval_target.EvalTargetTypePtr(eval_target.EvalTargetType_CozeBot), + SourceTargetIds: []string{"source1", "source2"}, + }, + }, + }) + + mockEvalTargetSvc.EXPECT(). + BatchGetEvalTargetBySource(gomock.Any(), &entity.BatchGetEvalTargetBySourceParam{ + SpaceID: 100, + SourceTargetID: []string{"source1", "source2"}, + TargetType: entity.EvalTargetTypeCozeBot, + }). + Return([]*entity.EvalTarget{}, nil) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.NotContains(t, got.Includes.TargetIDs, int64(-1)) + }) + + t.Run("ConvertFilters方法,SourceTarget字段,查询成功", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_SourceTarget, + }, + Operator: domain_expt.FilterOperatorType_In, + SourceTarget: &domain_expt.SourceTarget{ + EvalTargetType: eval_target.EvalTargetTypePtr(eval_target.EvalTargetType_CozeBot), + SourceTargetIds: []string{"source1"}, + }, + }, + }) + + mockEvalTargetSvc.EXPECT(). + BatchGetEvalTargetBySource(gomock.Any(), &entity.BatchGetEvalTargetBySourceParam{ + SpaceID: 100, + SourceTargetID: []string{"source1"}, + TargetType: entity.EvalTargetTypeCozeBot, + }). + Return([]*entity.EvalTarget{ + {ID: 100}, + {ID: 200}, + }, nil) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.ElementsMatch(t, []int64{100, 200}, got.Includes.TargetIDs) + }) + + t.Run("ConvertFilters方法,SourceTarget字段查询失败返回错误", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_SourceTarget, + }, + Operator: domain_expt.FilterOperatorType_In, + SourceTarget: &domain_expt.SourceTarget{ + EvalTargetType: eval_target.EvalTargetTypePtr(eval_target.EvalTargetType_CozeBot), + SourceTargetIds: []string{"source1"}, + }, + }, + }) + + mockEvalTargetSvc.EXPECT(). + BatchGetEvalTargetBySource(gomock.Any(), gomock.Any()). + Return(nil, fmt.Errorf("query error")) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.Error(t, err) + assert.Nil(t, got) + }) + + t.Run("ConvertFilters方法,ExptType字段", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_ExptType, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "1,2", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.ElementsMatch(t, []int64{1, 2}, got.Includes.ExptType) + }) + + t.Run("ConvertFilters方法,不支持的字段类型记录警告", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType(999), // 不支持的字段类型 + }, + Operator: domain_expt.FilterOperatorType_Equal, + Value: "test", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.NotNil(t, got) + }) + + t.Run("ConvertFilters方法,NotIn操作符设置到Excludes", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_EvalSetID, + }, + Operator: domain_expt.FilterOperatorType_NotIn, + Value: "10,20", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.ElementsMatch(t, []int64{10, 20}, got.Excludes.EvalSetIDs) + }) + + t.Run("ConvertFilters方法,NotEqual操作符设置到Excludes", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_CreatorBy, + }, + Operator: domain_expt.FilterOperatorType_NotEqual, + Value: "user1", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.Equal(t, []string{"user1"}, got.Excludes.CreatedBy) + }) +} + +// TestExptFilterConvertor_ConvertFilters_FieldTypes_110_140 测试 ConvertFilters 中 TargetID, EvaluatorID, TargetType, SourceTarget 字段 (110-140行) +func TestExptFilterConvertor_ConvertFilters_FieldTypes_110_140(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockEvalTargetSvc := svcmocks.NewMockIEvalTargetService(ctrl) + conv := NewExptFilterConvertor(mockEvalTargetSvc) + + t.Run("TargetID字段", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_TargetID, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "10,20", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.ElementsMatch(t, []int64{10, 20}, got.Includes.TargetIDs) + }) + + t.Run("TargetID字段值为空,跳过", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_TargetID, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.Nil(t, got.Includes.TargetIDs) + }) + + t.Run("EvaluatorID字段", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_EvaluatorID, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "50,60", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.ElementsMatch(t, []int64{50, 60}, got.Includes.EvaluatorIDs) + }) + + t.Run("EvaluatorID字段值为空,跳过", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_EvaluatorID, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.Nil(t, got.Includes.EvaluatorIDs) + }) + + t.Run("TargetType字段", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_TargetType, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "1,2", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.ElementsMatch(t, []int64{1, 2}, got.Includes.TargetType) + }) + + t.Run("TargetType字段值为空,跳过", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_TargetType, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.Nil(t, got.Includes.TargetType) + }) + + t.Run("SourceTarget字段,SourceTarget为nil,跳过", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_SourceTarget, + }, + Operator: domain_expt.FilterOperatorType_In, + SourceTarget: nil, + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.Nil(t, got.Includes.TargetIDs) + }) + + t.Run("SourceTarget字段,SourceTargetIds为空,跳过", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_SourceTarget, + }, + Operator: domain_expt.FilterOperatorType_In, + SourceTarget: &domain_expt.SourceTarget{ + EvalTargetType: eval_target.EvalTargetTypePtr(eval_target.EvalTargetType_CozeBot), + SourceTargetIds: []string{}, + }, + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.Nil(t, got.Includes.TargetIDs) + }) +} + +// TestExptFilterConvertor_ConvertFilters_SourceTarget_155_166 测试 SourceTarget 处理后的 targetIDs 构建和 ExptType 字段 (155-166行) +func TestExptFilterConvertor_ConvertFilters_SourceTarget_155_166(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockEvalTargetSvc := svcmocks.NewMockIEvalTargetService(ctrl) + conv := NewExptFilterConvertor(mockEvalTargetSvc) + + t.Run("SourceTarget查询成功,构建targetIDs", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_SourceTarget, + }, + Operator: domain_expt.FilterOperatorType_In, + SourceTarget: &domain_expt.SourceTarget{ + EvalTargetType: eval_target.EvalTargetTypePtr(eval_target.EvalTargetType_CozeBot), + SourceTargetIds: []string{"source1", "source2"}, + }, + }, + }) + + mockEvalTargetSvc.EXPECT(). + BatchGetEvalTargetBySource(gomock.Any(), &entity.BatchGetEvalTargetBySourceParam{ + SpaceID: 100, + SourceTargetID: []string{"source1", "source2"}, + TargetType: entity.EvalTargetTypeCozeBot, + }). + Return([]*entity.EvalTarget{ + {ID: 100}, + {ID: 200}, + }, nil) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.ElementsMatch(t, []int64{100, 200}, got.Includes.TargetIDs) + }) + + t.Run("ExptType字段,设置setDefaultExptTypeFlag为false", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_ExptType, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "2", // Online,不包含Offline (1) + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.NoError(t, err) + assert.ElementsMatch(t, []int64{2}, got.Includes.ExptType) + // 当设置了ExptType时,不应该有默认的Offline类型(除非用户显式指定) + // 这里用户只指定了Online (2),所以不应该包含Offline (1) + assert.NotContains(t, got.Includes.ExptType, int64(domain_expt.ExptType_Offline)) + }) + + t.Run("ExptType字段解析错误返回错误", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_ExptType, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "invalid", + }, + }) + + got, err := conv.ConvertFilters(context.Background(), filters, 100) + assert.Error(t, err) + assert.Nil(t, got) + }) +} + +// TestConvertExptTurnResultFilter 测试 ConvertExptTurnResultFilter 函数 +func TestConvertExptTurnResultFilter(t *testing.T) { + t.Run("nil filters返回空结果", func(t *testing.T) { + result, err := ConvertExptTurnResultFilter(nil) + assert.NoError(t, err) + assert.NotNil(t, result) + assert.Empty(t, result.TrunRunStateFilters) + assert.Empty(t, result.ScoreFilters) + }) + + t.Run("空filters返回空结果", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{}) + + result, err := ConvertExptTurnResultFilter(filters) + assert.NoError(t, err) + assert.NotNil(t, result) + assert.Empty(t, result.TrunRunStateFilters) + assert.Empty(t, result.ScoreFilters) + }) + + t.Run("无效的逻辑操作符返回错误", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_Or)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_TurnRunState, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "1", + }, + }) + + result, err := ConvertExptTurnResultFilter(filters) + assert.Error(t, err) + assert.Nil(t, result) + assert.Contains(t, err.Error(), "invalid logic op") + }) + + t.Run("nil filterCondition跳过", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + nil, + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_TurnRunState, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "1", + }, + }) + + result, err := ConvertExptTurnResultFilter(filters) + assert.NoError(t, err) + assert.NotNil(t, result) + assert.Len(t, result.TrunRunStateFilters, 1) + }) + + t.Run("TurnRunState字段,成功转换", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_TurnRunState, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "1,2", + }, + }) + + result, err := ConvertExptTurnResultFilter(filters) + assert.NoError(t, err) + assert.NotNil(t, result) + assert.Len(t, result.TrunRunStateFilters, 1) + assert.Equal(t, "IN", result.TrunRunStateFilters[0].Operator) + assert.Len(t, result.TrunRunStateFilters[0].Status, 2) + assert.Contains(t, result.TrunRunStateFilters[0].Status, entity.TurnRunState(1)) + assert.Contains(t, result.TrunRunStateFilters[0].Status, entity.TurnRunState(2)) + }) + + t.Run("TurnRunState字段,NotIn操作符", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_TurnRunState, + }, + Operator: domain_expt.FilterOperatorType_NotIn, + Value: "1", + }, + }) + + result, err := ConvertExptTurnResultFilter(filters) + assert.NoError(t, err) + assert.NotNil(t, result) + assert.Len(t, result.TrunRunStateFilters, 1) + assert.Equal(t, "NOT IN", result.TrunRunStateFilters[0].Operator) + }) + + t.Run("TurnRunState字段,无效操作符返回错误", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_TurnRunState, + }, + Operator: domain_expt.FilterOperatorType_Equal, // 无效操作符 + Value: "1", + }, + }) + + result, err := ConvertExptTurnResultFilter(filters) + assert.Error(t, err) + assert.Nil(t, result) + assert.Contains(t, err.Error(), "invalid operator") + }) + + t.Run("TurnRunState字段,parseTurnRunState错误返回错误", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_TurnRunState, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "invalid", + }, + }) + + result, err := ConvertExptTurnResultFilter(filters) + assert.Error(t, err) + assert.Nil(t, result) + assert.Contains(t, err.Error(), "invalid turn run state") + }) + + t.Run("EvaluatorScore字段,成功转换", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + field := &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_EvaluatorScore, + } + field.SetFieldKey(gptr.Of("101")) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: field, + Operator: domain_expt.FilterOperatorType_Greater, + Value: "0.8", + }, + }) + + result, err := ConvertExptTurnResultFilter(filters) + assert.NoError(t, err) + assert.NotNil(t, result) + assert.Len(t, result.ScoreFilters, 1) + assert.Equal(t, 0.8, result.ScoreFilters[0].Score) + assert.Equal(t, ">", result.ScoreFilters[0].Operator) + assert.Equal(t, int64(101), result.ScoreFilters[0].EvaluatorVersionID) + }) + + t.Run("EvaluatorScore字段,解析score错误返回错误", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + field := &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_EvaluatorScore, + } + field.SetFieldKey(gptr.Of("101")) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: field, + Operator: domain_expt.FilterOperatorType_Greater, + Value: "invalid", + }, + }) + + result, err := ConvertExptTurnResultFilter(filters) + assert.Error(t, err) + assert.Nil(t, result) + }) + + t.Run("EvaluatorScore字段,解析evaluatorVersionID错误返回错误", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + field := &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_EvaluatorScore, + } + field.SetFieldKey(gptr.Of("invalid")) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: field, + Operator: domain_expt.FilterOperatorType_Greater, + Value: "0.8", + }, + }) + + result, err := ConvertExptTurnResultFilter(filters) + assert.Error(t, err) + assert.Nil(t, result) + }) + + t.Run("不支持的字段类型返回错误", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_CreatorBy, // 不支持的字段类型 + }, + Operator: domain_expt.FilterOperatorType_Equal, + Value: "user1", + }, + }) + + result, err := ConvertExptTurnResultFilter(filters) + assert.Error(t, err) + assert.Nil(t, result) + assert.Contains(t, err.Error(), "invalid field type") + }) + + t.Run("多个条件,混合TurnRunState和EvaluatorScore", func(t *testing.T) { + filters := &domain_expt.Filters{} + filters.SetLogicOp(domain_expt.FilterLogicOpPtr(domain_expt.FilterLogicOp_And)) + scoreField := &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_EvaluatorScore, + } + scoreField.SetFieldKey(gptr.Of("101")) + filters.SetFilterConditions([]*domain_expt.FilterCondition{ + { + Field: &domain_expt.FilterField{ + FieldType: domain_expt.FieldType_TurnRunState, + }, + Operator: domain_expt.FilterOperatorType_In, + Value: "1", + }, + { + Field: scoreField, + Operator: domain_expt.FilterOperatorType_Greater, + Value: "0.8", + }, + }) + + result, err := ConvertExptTurnResultFilter(filters) + assert.NoError(t, err) + assert.NotNil(t, result) + assert.Len(t, result.TrunRunStateFilters, 1) + assert.Len(t, result.ScoreFilters, 1) + }) +} + +// TestParseTurnRunState 测试 parseTurnRunState 函数 +func TestParseTurnRunState(t *testing.T) { + t.Run("成功解析单个状态", func(t *testing.T) { + cond := &domain_expt.FilterCondition{} + cond.SetValue("1") + + result, err := parseTurnRunState(cond) + assert.NoError(t, err) + assert.Len(t, result, 1) + assert.Equal(t, entity.TurnRunState(1), result[0]) + }) + + t.Run("成功解析多个状态", func(t *testing.T) { + cond := &domain_expt.FilterCondition{} + cond.SetValue("1,2,3") + + result, err := parseTurnRunState(cond) + assert.NoError(t, err) + assert.Len(t, result, 3) + assert.Contains(t, result, entity.TurnRunState(1)) + assert.Contains(t, result, entity.TurnRunState(2)) + assert.Contains(t, result, entity.TurnRunState(3)) + }) + + t.Run("空字符串跳过", func(t *testing.T) { + cond := &domain_expt.FilterCondition{} + cond.SetValue("1,,3") + + result, err := parseTurnRunState(cond) + assert.NoError(t, err) + assert.Len(t, result, 2) // 空字符串被跳过 + assert.Contains(t, result, entity.TurnRunState(1)) + assert.Contains(t, result, entity.TurnRunState(3)) + }) + + t.Run("值开头为空字符串", func(t *testing.T) { + cond := &domain_expt.FilterCondition{} + cond.SetValue(",1,2") + + result, err := parseTurnRunState(cond) + assert.NoError(t, err) + assert.Len(t, result, 2) + assert.Contains(t, result, entity.TurnRunState(1)) + assert.Contains(t, result, entity.TurnRunState(2)) + }) + + t.Run("值结尾为空字符串", func(t *testing.T) { + cond := &domain_expt.FilterCondition{} + cond.SetValue("1,2,") + + result, err := parseTurnRunState(cond) + assert.NoError(t, err) + assert.Len(t, result, 2) + assert.Contains(t, result, entity.TurnRunState(1)) + assert.Contains(t, result, entity.TurnRunState(2)) + }) + + t.Run("无效的状态值返回错误", func(t *testing.T) { + cond := &domain_expt.FilterCondition{} + cond.SetValue("invalid") + + result, err := parseTurnRunState(cond) + assert.Error(t, err) + assert.Nil(t, result) + assert.Contains(t, err.Error(), "invalid turn run state") + }) + + t.Run("部分无效的状态值返回错误", func(t *testing.T) { + cond := &domain_expt.FilterCondition{} + cond.SetValue("1,invalid,3") + + result, err := parseTurnRunState(cond) + assert.Error(t, err) + assert.Nil(t, result) + assert.Contains(t, err.Error(), "invalid turn run state") + }) +} + +// TestCheckFilterCondition 测试 checkFilterCondition 函数 +func TestCheckFilterCondition(t *testing.T) { + t.Run("TurnRunState字段,In操作符,通过验证", func(t *testing.T) { + cond := domain_expt.FilterCondition{} + cond.SetField(&domain_expt.FilterField{ + FieldType: domain_expt.FieldType_TurnRunState, + }) + cond.SetOperator(domain_expt.FilterOperatorType_In) + + err := checkFilterCondition(cond) + assert.NoError(t, err) + }) + + t.Run("TurnRunState字段,NotIn操作符,通过验证", func(t *testing.T) { + cond := domain_expt.FilterCondition{} + cond.SetField(&domain_expt.FilterField{ + FieldType: domain_expt.FieldType_TurnRunState, + }) + cond.SetOperator(domain_expt.FilterOperatorType_NotIn) + + err := checkFilterCondition(cond) + assert.NoError(t, err) + }) + + t.Run("TurnRunState字段,无效操作符返回错误", func(t *testing.T) { + cond := domain_expt.FilterCondition{} + cond.SetField(&domain_expt.FilterField{ + FieldType: domain_expt.FieldType_TurnRunState, + }) + cond.SetOperator(domain_expt.FilterOperatorType_Equal) // 无效操作符 + + err := checkFilterCondition(cond) + assert.Error(t, err) + assert.Contains(t, err.Error(), "invalid operator") + }) + + t.Run("TurnRunState字段,Greater操作符返回错误", func(t *testing.T) { + cond := domain_expt.FilterCondition{} + cond.SetField(&domain_expt.FilterField{ + FieldType: domain_expt.FieldType_TurnRunState, + }) + cond.SetOperator(domain_expt.FilterOperatorType_Greater) + + err := checkFilterCondition(cond) + assert.Error(t, err) + assert.Contains(t, err.Error(), "invalid operator") + }) + + t.Run("其他字段类型,通过验证", func(t *testing.T) { + cond := domain_expt.FilterCondition{} + cond.SetField(&domain_expt.FilterField{ + FieldType: domain_expt.FieldType_CreatorBy, + }) + cond.SetOperator(domain_expt.FilterOperatorType_Equal) + + err := checkFilterCondition(cond) + assert.NoError(t, err) + }) +} diff --git a/backend/modules/evaluation/application/evaluator_app.go b/backend/modules/evaluation/application/evaluator_app.go index 15a03f946..9f40b4d4d 100644 --- a/backend/modules/evaluation/application/evaluator_app.go +++ b/backend/modules/evaluation/application/evaluator_app.go @@ -34,6 +34,7 @@ import ( "github.com/coze-dev/coze-loop/backend/modules/evaluation/pkg/conf" "github.com/coze-dev/coze-loop/backend/modules/evaluation/pkg/encoding" "github.com/coze-dev/coze-loop/backend/modules/evaluation/pkg/errno" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/pkg/utils" "github.com/coze-dev/coze-loop/backend/pkg/errorx" "github.com/coze-dev/coze-loop/backend/pkg/json" "github.com/coze-dev/coze-loop/backend/pkg/lang/goroutine" @@ -54,6 +55,7 @@ func NewEvaluatorHandlerImpl(idgen idgen.IIDGenerator, benefitService benefit.IBenefitService, fileProvider rpc.IFileProvider, evaluatorSourceServices map[entity.EvaluatorType]service.EvaluatorSourceService, + exptResultService service.ExptResultService, ) evaluation.EvaluatorService { handler := &EvaluatorHandlerImpl{ idgen: idgen, @@ -68,6 +70,7 @@ func NewEvaluatorHandlerImpl(idgen idgen.IIDGenerator, benefitService: benefitService, fileProvider: fileProvider, evaluatorSourceServices: evaluatorSourceServices, + exptResultService: exptResultService, } return handler } @@ -86,6 +89,7 @@ type EvaluatorHandlerImpl struct { benefitService benefit.IBenefitService fileProvider rpc.IFileProvider evaluatorSourceServices map[entity.EvaluatorType]service.EvaluatorSourceService + exptResultService service.ExptResultService } // ListEvaluators 按查询条件查询 evaluator @@ -1129,10 +1133,16 @@ func (e *EvaluatorHandlerImpl) UpdateEvaluatorRecord(ctx context.Context, reques return nil, errorx.NewByCode(errno.RiskContentDetectedCode) } correctionDO := evaluatorconvertor.ConvertCorrectionDTO2DO(request.GetCorrection()) + // 对修正分数进行四舍五入到两位小数 + if correctionDO != nil && correctionDO.Score != nil { + roundedScore := utils.RoundScoreToTwoDecimals(*correctionDO.Score) + correctionDO.Score = &roundedScore + } err = e.evaluatorRecordService.CorrectEvaluatorRecord(ctx, evaluatorRecord, correctionDO) if err != nil { return nil, err } + return &evaluatorservice.UpdateEvaluatorRecordResponse{ Record: evaluatorconvertor.ConvertEvaluatorRecordDO2DTO(evaluatorRecord), }, nil diff --git a/backend/modules/evaluation/application/evaluator_app_test.go b/backend/modules/evaluation/application/evaluator_app_test.go index 0ee00521f..46aaa8dde 100644 --- a/backend/modules/evaluation/application/evaluator_app_test.go +++ b/backend/modules/evaluation/application/evaluator_app_test.go @@ -1086,6 +1086,7 @@ func TestEvaluatorHandlerImpl_ComplexBusinessScenarios(t *testing.T) { mockBenefitService := benefitmocks.NewMockIBenefitService(ctrl) mockFileProvider := rpcmocks.NewMockIFileProvider(ctrl) + mockExptResultService := mocks.NewMockExptResultService(ctrl) handler := NewEvaluatorHandlerImpl( mockIDGen, mockConfiger, @@ -1099,6 +1100,7 @@ func TestEvaluatorHandlerImpl_ComplexBusinessScenarios(t *testing.T) { mockBenefitService, mockFileProvider, make(map[entity.EvaluatorType]service.EvaluatorSourceService), + mockExptResultService, ) // 测试复杂的调试场景,涉及多个服务交互 @@ -1503,6 +1505,7 @@ func TestEvaluatorHandlerImpl_ComplexBusinessScenarios(t *testing.T) { mockBenefitService := benefitmocks.NewMockIBenefitService(ctrl) mockFileProvider := rpcmocks.NewMockIFileProvider(ctrl) + mockExptResultService := mocks.NewMockExptResultService(ctrl) handler := NewEvaluatorHandlerImpl( mockIDGen, mockConfiger, @@ -1516,6 +1519,7 @@ func TestEvaluatorHandlerImpl_ComplexBusinessScenarios(t *testing.T) { mockBenefitService, mockFileProvider, make(map[entity.EvaluatorType]service.EvaluatorSourceService), + mockExptResultService, ) // 模拟完整的评估器生命周期:创建 -> 更新 -> 提交版本 -> 运行 -> 删除 diff --git a/backend/modules/evaluation/application/experiment_app.go b/backend/modules/evaluation/application/experiment_app.go index 7e96aaf34..83c62ae3c 100644 --- a/backend/modules/evaluation/application/experiment_app.go +++ b/backend/modules/evaluation/application/experiment_app.go @@ -29,6 +29,7 @@ import ( "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/service" "github.com/coze-dev/coze-loop/backend/modules/evaluation/pkg/contexts" "github.com/coze-dev/coze-loop/backend/modules/evaluation/pkg/errno" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/pkg/utils" "github.com/coze-dev/coze-loop/backend/pkg/errorx" "github.com/coze-dev/coze-loop/backend/pkg/json" "github.com/coze-dev/coze-loop/backend/pkg/lang/goroutine" @@ -68,6 +69,9 @@ type experimentApplication struct { // 新增:EvaluatorService 用于查询内置评估器版本 evaluatorService service.EvaluatorService + + // 实验模板管理服务 + templateManager service.IExptTemplateManager } func NewExperimentApplication( @@ -87,6 +91,7 @@ func NewExperimentApplication( exptResultExportService service.IExptResultExportService, exptInsightAnalysisService service.IExptInsightAnalysisService, evaluatorService service.EvaluatorService, + templateManager service.IExptTemplateManager, ) IExperimentApplication { return &experimentApplication{ resultSvc: resultSvc, @@ -105,6 +110,7 @@ func NewExperimentApplication( IExptResultExportService: exptResultExportService, IExptInsightAnalysisService: exptInsightAnalysisService, evaluatorService: evaluatorService, + templateManager: templateManager, } } @@ -117,8 +123,8 @@ func (e *experimentApplication) CreateExperiment(ctx context.Context, req *expt. } logs.CtxInfo(ctx, "CreateExperiment userIDInContext: %s", session.UserID) - // 收集 evaluator_version_id(包含顺序解析 EvaluatorIDVersionList) - evalVersionIDs, evaluatorVersionRunConfigs, err := e.resolveEvaluatorVersionIDs(ctx, req) + // 收集 evaluator_version_id(包含顺序解析 EvaluatorIDVersionList)、runconfig 和 score weight + evalVersionIDs, evaluatorVersionRunConfigs, evaluatorScoreWeights, err := e.resolveEvaluatorVersionIDsFromCreateReq(ctx, req) if err != nil { return nil, err } @@ -138,6 +144,11 @@ func (e *experimentApplication) CreateExperiment(ctx context.Context, req *expt. } req.EvaluatorVersionIds = evalVersionIDs + // 将解析出的权重配置合并到请求中(如果请求中没有显式设置) + if len(evaluatorScoreWeights) > 0 && len(req.EvaluatorScoreWeights) == 0 { + req.EvaluatorScoreWeights = evaluatorScoreWeights + } + param, err := experiment.ConvertCreateReq(req, evaluatorVersionRunConfigs) if err != nil { return nil, err @@ -153,6 +164,273 @@ func (e *experimentApplication) CreateExperiment(ctx context.Context, req *expt. }, nil } +func (e *experimentApplication) CreateExperimentTemplate(ctx context.Context, req *expt.CreateExperimentTemplateRequest) (r *expt.CreateExperimentTemplateResponse, err error) { + session := entity.NewSession(ctx) + if req.Session != nil && req.Session.UserID != nil { + session = &entity.Session{ + UserID: strconv.FormatInt(gptr.Indirect(req.Session.UserID), 10), + } + } + logs.CtxInfo(ctx, "CreateExperimentTemplate userIDInContext: %s", session.UserID) + + // 权限校验 + if err = e.auth.Authorization(ctx, &rpc.AuthorizationParam{ + ObjectID: strconv.FormatInt(req.GetWorkspaceID(), 10), + SpaceID: req.GetWorkspaceID(), + ActionObjects: []*rpc.ActionObject{{Action: gptr.Of(consts.ActionCreateExptTemplate), EntityType: gptr.Of(rpc.AuthEntityType_Space)}}, + }); err != nil { + return nil, err + } + + param, err := experiment.ConvertCreateExptTemplateReq(req) + if err != nil { + return nil, err + } + + // 业务逻辑已下沉到 service 层,在 Create 方法中会自动解析并回填 evaluator_version_id + createTemplate, err := e.templateManager.Create(ctx, param, session) + if err != nil { + return nil, err + } + + dto := experiment.ToExptTemplateDTO(createTemplate) + // 填充完整的用户信息 + e.mPackExptTemplateUserInfo(ctx, []*domain_expt.ExptTemplate{dto}) + + return &expt.CreateExperimentTemplateResponse{ + ExperimentTemplate: dto, + BaseResp: base.NewBaseResp(), + }, nil +} + +// BatchGetExperimentTemplate 批量获取实验模板 +func (e *experimentApplication) BatchGetExperimentTemplate(ctx context.Context, req *expt.BatchGetExperimentTemplateRequest) (r *expt.BatchGetExperimentTemplateResponse, err error) { + session := entity.NewSession(ctx) + logs.CtxInfo(ctx, "BatchGetExperimentTemplate template_ids: %v, workspace_id: %d", req.GetTemplateIds(), req.GetWorkspaceID()) + + templateIDs := req.GetTemplateIds() + if len(templateIDs) == 0 { + return &expt.BatchGetExperimentTemplateResponse{ + ExperimentTemplates: nil, + BaseResp: base.NewBaseResp(), + }, nil + } + + templates, err := e.templateManager.MGet(ctx, templateIDs, req.GetWorkspaceID(), session) + if err != nil { + return nil, err + } + + // 权限校验,抽象成与实验类似的批量鉴权方法 + if err := e.AuthReadExptTemplates(ctx, templates, req.GetWorkspaceID()); err != nil { + return nil, err + } + + dtos := experiment.ToExptTemplateDTOs(templates) + // 填充完整的用户信息 + e.mPackExptTemplateUserInfo(ctx, dtos) + + return &expt.BatchGetExperimentTemplateResponse{ + ExperimentTemplates: dtos, + BaseResp: base.NewBaseResp(), + }, nil +} + +func (e *experimentApplication) UpdateExperimentTemplate(ctx context.Context, req *expt.UpdateExperimentTemplateRequest) (r *expt.UpdateExperimentTemplateResponse, err error) { + session := entity.NewSession(ctx) + + // 从顶层字段提取 template_id 和 workspace_id + templateID := req.GetTemplateID() + workspaceID := req.GetWorkspaceID() + if templateID == 0 || workspaceID == 0 { + return nil, errorx.NewByCode(errno.CommonInvalidParamCode, errorx.WithExtraMsg("template_id and workspace_id are required")) + } + + logs.CtxInfo(ctx, "UpdateExperimentTemplate template_id: %d, workspace_id: %d", templateID, workspaceID) + + // 获取现有模板用于权限校验 + got, err := e.templateManager.Get(ctx, templateID, workspaceID, session) + if err != nil { + return nil, err + } + + // 权限校验 + err = e.auth.AuthorizationWithoutSPI(ctx, &rpc.AuthorizationWithoutSPIParam{ + ObjectID: strconv.FormatInt(templateID, 10), + SpaceID: workspaceID, + ActionObjects: []*rpc.ActionObject{{Action: gptr.Of(consts.Edit), EntityType: gptr.Of(rpc.AuthEntityType_EvaluationExptTemplate)}}, + OwnerID: gptr.Of(got.GetCreatedBy()), + ResourceSpaceID: workspaceID, + }) + if err != nil { + return nil, err + } + + // 转换请求参数 + param, err := experiment.ConvertUpdateExptTemplateReq(req) + if err != nil { + return nil, err + } + + // 更新模板 + updatedTemplate, err := e.templateManager.Update(ctx, param, session) + if err != nil { + return nil, err + } + + dto := experiment.ToExptTemplateDTO(updatedTemplate) + // 填充完整的用户信息 + e.mPackExptTemplateUserInfo(ctx, []*domain_expt.ExptTemplate{dto}) + + return &expt.UpdateExperimentTemplateResponse{ + ExperimentTemplate: dto, + BaseResp: base.NewBaseResp(), + }, nil +} + +func (e *experimentApplication) UpdateExperimentTemplateMeta(ctx context.Context, req *expt.UpdateExperimentTemplateMetaRequest) (r *expt.UpdateExperimentTemplateMetaResponse, err error) { + session := entity.NewSession(ctx) + + templateID := req.GetTemplateID() + workspaceID := req.GetWorkspaceID() + if templateID == 0 || workspaceID == 0 { + return nil, errorx.NewByCode(errno.CommonInvalidParamCode, errorx.WithExtraMsg("template_id and workspace_id are required")) + } + + logs.CtxInfo(ctx, "UpdateExperimentTemplateMeta template_id: %d, workspace_id: %d", templateID, workspaceID) + + // 获取现有模板用于权限校验 + got, err := e.templateManager.Get(ctx, templateID, workspaceID, session) + if err != nil { + return nil, err + } + + // 权限校验 + err = e.auth.AuthorizationWithoutSPI(ctx, &rpc.AuthorizationWithoutSPIParam{ + ObjectID: strconv.FormatInt(templateID, 10), + SpaceID: workspaceID, + ActionObjects: []*rpc.ActionObject{{Action: gptr.Of(consts.Edit), EntityType: gptr.Of(rpc.AuthEntityType_EvaluationExptTemplate)}}, + OwnerID: gptr.Of(got.GetCreatedBy()), + ResourceSpaceID: workspaceID, + }) + if err != nil { + return nil, err + } + + // 转换请求参数 + param, err := experiment.ConvertUpdateExptTemplateMetaReq(req) + if err != nil { + return nil, err + } + + // 更新模板 meta + updatedTemplate, err := e.templateManager.UpdateMeta(ctx, param, session) + if err != nil { + return nil, err + } + + // 转换为 Meta DTO + var metaDTO *domain_expt.ExptTemplateMeta + if updatedTemplate.Meta != nil { + metaDTO = &domain_expt.ExptTemplateMeta{ + ID: gptr.Of(updatedTemplate.Meta.ID), + WorkspaceID: gptr.Of(updatedTemplate.Meta.WorkspaceID), + Name: gptr.Of(updatedTemplate.Meta.Name), + Desc: gptr.Of(updatedTemplate.Meta.Desc), + ExptType: gptr.Of(domain_expt.ExptType(updatedTemplate.Meta.ExptType)), + } + } + + return &expt.UpdateExperimentTemplateMetaResponse{ + Meta: metaDTO, + BaseResp: base.NewBaseResp(), + }, nil +} + +func (e *experimentApplication) DeleteExperimentTemplate(ctx context.Context, req *expt.DeleteExperimentTemplateRequest) (r *expt.DeleteExperimentTemplateResponse, err error) { + session := entity.NewSession(ctx) + logs.CtxInfo(ctx, "DeleteExperimentTemplate template_id: %d, workspace_id: %d", req.GetTemplateID(), req.GetWorkspaceID()) + + // 获取现有模板用于权限校验 + existingTemplate, err := e.templateManager.Get(ctx, req.GetTemplateID(), req.GetWorkspaceID(), session) + if err != nil { + return nil, err + } + if existingTemplate == nil { + return nil, errorx.NewByCode(errno.CommonInvalidParamCode, errorx.WithExtraMsg("template not found")) + } + + // 权限校验 + err = e.auth.AuthorizationWithoutSPI(ctx, &rpc.AuthorizationWithoutSPIParam{ + ObjectID: strconv.FormatInt(req.GetTemplateID(), 10), + SpaceID: req.GetWorkspaceID(), + ActionObjects: []*rpc.ActionObject{{Action: gptr.Of(consts.Edit), EntityType: gptr.Of(rpc.AuthEntityType_EvaluationExptTemplate)}}, + OwnerID: gptr.Of(existingTemplate.GetCreatedBy()), + ResourceSpaceID: req.GetWorkspaceID(), + }) + if err != nil { + return nil, err + } + + // 删除模板 + if err := e.templateManager.Delete(ctx, req.GetTemplateID(), req.GetWorkspaceID(), session); err != nil { + return nil, err + } + + return &expt.DeleteExperimentTemplateResponse{ + BaseResp: base.NewBaseResp(), + }, nil +} + +// ListExperimentTemplates 列出实验模板 +func (e *experimentApplication) ListExperimentTemplates(ctx context.Context, req *expt.ListExperimentTemplatesRequest) (r *expt.ListExperimentTemplatesResponse, err error) { + session := entity.NewSession(ctx) + err = e.auth.Authorization(ctx, &rpc.AuthorizationParam{ + ObjectID: strconv.FormatInt(req.WorkspaceID, 10), + SpaceID: req.WorkspaceID, + ActionObjects: []*rpc.ActionObject{{Action: gptr.Of(consts.ActionReadExptTemplate), EntityType: gptr.Of(rpc.AuthEntityType_Space)}}, + }) + if err != nil { + return nil, err + } + + // 当 FilterOption 为空时,直接不下发过滤条件,避免在 Filter 转换过程中出现空指针等异常 + var filters *entity.ExptTemplateListFilter + if req.GetFilterOption() != nil { + filters, err = experiment.NewExptTemplateFilterConvertor(e.evalTargetService).Convert(ctx, req.GetFilterOption(), req.GetWorkspaceID()) + if err != nil { + return nil, err + } + } + + orderBys := slices.Transform(req.GetOrderBys(), func(e *common.OrderBy, _ int) *entity.OrderBy { + return &entity.OrderBy{Field: gptr.Of(e.GetField()), IsAsc: gptr.Of(e.GetIsAsc())} + }) + // 如果没有显式指定排序字段,默认按 updated_at 倒序 + if len(orderBys) == 0 { + orderBys = []*entity.OrderBy{ + { + Field: gptr.Of(entity.OrderByUpdatedAt), + IsAsc: gptr.Of(false), + }, + } + } + templates, count, err := e.templateManager.List(ctx, req.GetPageNumber(), req.GetPageSize(), req.GetWorkspaceID(), filters, orderBys, session) + if err != nil { + return nil, err + } + + dtos := experiment.ToExptTemplateDTOs(templates) + // 填充完整的用户信息 + e.mPackExptTemplateUserInfo(ctx, dtos) + + return &expt.ListExperimentTemplatesResponse{ + ExperimentTemplates: dtos, + Total: gptr.Of(int32(count)), + BaseResp: base.NewBaseResp(), + }, nil +} + func (e *experimentApplication) SubmitExperiment(ctx context.Context, req *expt.SubmitExperimentRequest) (r *expt.SubmitExperimentResponse, err error) { logs.CtxInfo(ctx, "SubmitExperiment req: %v", json.Jsonify(req)) if hasDuplicates(req.EvaluatorVersionIds) { @@ -167,7 +445,8 @@ func (e *experimentApplication) SubmitExperiment(ctx context.Context, req *expt. return nil, err } - cresp, err := e.CreateExperiment(ctx, &expt.CreateExperimentRequest{ + // 构建 CreateExperimentRequest,resolveEvaluatorVersionIDs 流程已在 CreateExperiment 中完成 + createReq := &expt.CreateExperimentRequest{ WorkspaceID: req.GetWorkspaceID(), EvalSetVersionID: req.EvalSetVersionID, EvalSetID: req.EvalSetID, @@ -186,7 +465,13 @@ func (e *experimentApplication) SubmitExperiment(ctx context.Context, req *expt. TargetRuntimeParam: req.TargetRuntimeParam, EvaluatorIDVersionList: req.EvaluatorIDVersionList, Session: req.Session, - }) + EnableWeightedScore: req.EnableWeightedScore, + // EvaluatorScoreWeights 会在 CreateExperiment 的 resolveEvaluatorVersionIDsFromCreateReq 中解析 + } + if req.IsSetExptTemplateID() { + createReq.ExptTemplateID = gptr.Of(req.GetExptTemplateID()) + } + cresp, err := e.CreateExperiment(ctx, createReq) if err != nil { return nil, err } @@ -202,6 +487,17 @@ func (e *experimentApplication) SubmitExperiment(ctx context.Context, req *expt. return nil, err } + // 如果有关联的实验模板,更新模板的 ExptInfo(创建实验,数量 +1) + if req.IsSetExptTemplateID() && req.GetExptTemplateID() > 0 { + exptID := gptr.Indirect(cresp.GetExperiment().ID) + exptStatus := entity.ExptStatus_Pending // Submit 时实验状态为 Pending + if err := e.templateManager.UpdateExptInfo(ctx, req.GetExptTemplateID(), req.GetWorkspaceID(), exptID, exptStatus, 1); err != nil { + // 记录错误但不影响主流程 + logs.CtxError(ctx, "[ExptEval] UpdateExptInfo failed after SubmitExperiment, template_id: %v, expt_id: %v, err: %v", + req.GetExptTemplateID(), exptID, err) + } + } + return &expt.SubmitExperimentResponse{ Experiment: cresp.GetExperiment(), RunID: gptr.Of(rresp.GetRunID()), @@ -209,13 +505,26 @@ func (e *experimentApplication) SubmitExperiment(ctx context.Context, req *expt. }, nil } -// resolveEvaluatorVersionIDs 汇总 evaluator_version_ids: +// resolveEvaluatorVersionIDsFromCreateReq 汇总 evaluator_version_ids、runconfig 和权重配置: // 1) 先取请求中的 EvaluatorVersionIds // 2) 从有序 EvaluatorIDVersionList 中批量解析并按输入顺序回填版本ID -func (e *experimentApplication) resolveEvaluatorVersionIDs(ctx context.Context, req *expt.CreateExperimentRequest) ([]int64, map[int64]*evaluatordto.EvaluatorRunConfig, error) { +// 3) 从 EvaluatorIDVersionList 中提取 runconfig 和权重配置,构建 evaluator_version_id 到 runconfig/权重的映射 +// 注意:runconfig 用于评估器运行时配置,score weight 用于加权分数计算 +func (e *experimentApplication) resolveEvaluatorVersionIDsFromCreateReq(ctx context.Context, req *expt.CreateExperimentRequest) ([]int64, map[int64]*evaluatordto.EvaluatorRunConfig, map[int64]float64, error) { evalVersionIDs := make([]int64, 0, len(req.EvaluatorVersionIds)) evalVersionIDs = append(evalVersionIDs, req.EvaluatorVersionIds...) + // 权重映射:key 为 evaluator_version_id,value 为权重(用于加权分数计算) + evaluatorScoreWeights := make(map[int64]float64) + // 如果请求中已经显式设置了权重,优先使用 + if len(req.EvaluatorScoreWeights) > 0 { + for k, v := range req.EvaluatorScoreWeights { + if v > 0 { + evaluatorScoreWeights[k] = v + } + } + } + // 解析有序列表并批量查询:将 BuiltinVisible 与普通版本分离,分别批量查,最后按输入顺序回填版本ID items := req.GetEvaluatorIDVersionList() builtinIDs := make([]int64, 0) @@ -241,7 +550,7 @@ func (e *experimentApplication) resolveEvaluatorVersionIDs(ctx context.Context, if len(builtinIDs) > 0 { evs, err := e.evaluatorService.BatchGetBuiltinEvaluator(ctx, builtinIDs) if err != nil { - return nil, nil, err + return nil, nil, nil, err } for _, ev := range evs { if ev != nil { @@ -254,7 +563,7 @@ func (e *experimentApplication) resolveEvaluatorVersionIDs(ctx context.Context, if len(normalPairs) > 0 { evs, err := e.evaluatorService.BatchGetEvaluatorByIDAndVersion(ctx, normalPairs) if err != nil { - return nil, nil, err + return nil, nil, nil, err } for _, ev := range evs { if ev == nil { @@ -265,7 +574,9 @@ func (e *experimentApplication) resolveEvaluatorVersionIDs(ctx context.Context, } } - // 按输入顺序回填版本ID + // 按输入顺序回填版本ID,同时提取 runconfig 和权重配置 + // runconfig: 用于评估器运行时配置(如超时、重试等) + // score weight: 用于加权分数计算 evaluatorVersionRunConfigs := make(map[int64]*evaluatordto.EvaluatorRunConfig) for _, it := range items { if it == nil { @@ -288,9 +599,20 @@ func (e *experimentApplication) resolveEvaluatorVersionIDs(ctx context.Context, } if verID := ev.GetEvaluatorVersionID(); verID != 0 { evalVersionIDs = append(evalVersionIDs, verID) + // 提取 runconfig(如果存在)- 用于评估器运行时配置 if it.RunConfig != nil { evaluatorVersionRunConfigs[verID] = it.RunConfig } + // 提取权重配置(如果存在且请求中未显式设置)- 用于加权分数计算 + if it.ScoreWeight != nil { + weight := *it.ScoreWeight + if weight > 0 { + // 如果请求中已经显式设置了权重,则不覆盖 + if _, exists := evaluatorScoreWeights[verID]; !exists { + evaluatorScoreWeights[verID] = weight + } + } + } } } @@ -322,7 +644,7 @@ func (e *experimentApplication) resolveEvaluatorVersionIDs(ctx context.Context, } } - return evalVersionIDs, evaluatorVersionRunConfigs, nil + return evalVersionIDs, evaluatorVersionRunConfigs, evaluatorScoreWeights, nil } func (e *experimentApplication) CheckExperimentName(ctx context.Context, req *expt.CheckExperimentNameRequest) (r *expt.CheckExperimentNameResponse, err error) { @@ -349,6 +671,47 @@ func (e *experimentApplication) CheckExperimentName(ctx context.Context, req *ex }, nil } +// CheckExperimentTemplateName 校验实验模板名称是否可用。 +// 如果传入了 template_id,且名称与该模板当前名称相同,则认为可用。 +func (e *experimentApplication) CheckExperimentTemplateName(ctx context.Context, req *expt.CheckExperimentTemplateNameRequest) (r *expt.CheckExperimentTemplateNameResponse, err error) { + // 空间级别创建模板权限校验,沿用 CreateExperimentTemplate 的策略 + if err = e.auth.Authorization(ctx, &rpc.AuthorizationParam{ + ObjectID: strconv.FormatInt(req.GetWorkspaceID(), 10), + SpaceID: req.GetWorkspaceID(), + ActionObjects: []*rpc.ActionObject{{Action: gptr.Of(consts.ActionCreateExptTemplate), EntityType: gptr.Of(rpc.AuthEntityType_Space)}}, + }); err != nil { + return nil, err + } + + session := entity.NewSession(ctx) + + // 如果传了 template_id,且名称与当前模板名称相同,则直接返回可用 + if req.IsSetTemplateID() && req.GetTemplateID() > 0 { + tpl, err := e.templateManager.Get(ctx, req.GetTemplateID(), req.GetWorkspaceID(), session) + if err != nil { + return nil, err + } + if tpl != nil && tpl.Meta != nil && tpl.Meta.Name == req.GetName() { + isAvailable := true + return &expt.CheckExperimentTemplateNameResponse{ + IsAvailable: &isAvailable, + BaseResp: base.NewBaseResp(), + }, nil + } + } + + // 否则走正常的重名校验:模板名在该空间下是否已存在 + pass, err := e.templateManager.CheckName(ctx, req.GetName(), req.GetWorkspaceID(), session) + if err != nil { + return nil, err + } + + return &expt.CheckExperimentTemplateNameResponse{ + IsAvailable: &pass, + BaseResp: base.NewBaseResp(), + }, nil +} + func (e *experimentApplication) BatchGetExperiments(ctx context.Context, req *expt.BatchGetExperimentsRequest) (r *expt.BatchGetExperimentsResponse, err error) { session := entity.NewSession(ctx) @@ -838,6 +1201,23 @@ func (e *experimentApplication) mPackUserInfo(ctx context.Context, expts []*doma return expts, nil } +func (e *experimentApplication) mPackExptTemplateUserInfo(ctx context.Context, templates []*domain_expt.ExptTemplate) { + if len(templates) == 0 { + return + } + + userCarriers := make([]userinfo.UserInfoCarrier, 0, len(templates)) + for _, template := range templates { + if template != nil && template.GetBaseInfo() != nil { + userCarriers = append(userCarriers, template) + } + } + + if len(userCarriers) > 0 { + e.userInfoService.PackUserInfo(ctx, userCarriers) + } +} + func (e *experimentApplication) AuthReadExperiments(ctx context.Context, dos []*entity.Experiment, spaceID int64) error { var authParams []*rpc.AuthorizationWithoutSPIParam for _, do := range dos { @@ -856,6 +1236,24 @@ func (e *experimentApplication) AuthReadExperiments(ctx context.Context, dos []* return e.auth.MAuthorizeWithoutSPI(ctx, spaceID, authParams) } +func (e *experimentApplication) AuthReadExptTemplates(ctx context.Context, templates []*entity.ExptTemplate, spaceID int64) error { + var authParams []*rpc.AuthorizationWithoutSPIParam + for _, tpl := range templates { + if tpl == nil { + continue + } + templateID := tpl.GetID() + authParams = append(authParams, &rpc.AuthorizationWithoutSPIParam{ + ObjectID: strconv.FormatInt(templateID, 10), + SpaceID: spaceID, + ActionObjects: []*rpc.ActionObject{{Action: gptr.Of(consts.Read), EntityType: gptr.Of(rpc.AuthEntityType_EvaluationExptTemplate)}}, + OwnerID: gptr.Of(tpl.GetCreatedBy()), + ResourceSpaceID: spaceID, + }) + } + return e.auth.MAuthorizeWithoutSPI(ctx, spaceID, authParams) +} + func (e *experimentApplication) InvokeExperiment(ctx context.Context, req *expt.InvokeExperimentRequest) (r *expt.InvokeExperimentResponse, err error) { logs.CtxInfo(ctx, "experimentApplication InvokeExperiment, req: %v", json.Jsonify(req)) session := &entity.Session{UserID: strconv.FormatInt(req.GetSession().GetUserID(), 10)} @@ -1060,7 +1458,8 @@ func (e *experimentApplication) CreateAnnotateRecord(ctx context.Context, req *e if err != nil { return nil, err } - recordDO.AnnotateData.Score = &score + roundedScore := utils.RoundScoreToTwoDecimals(score) + recordDO.AnnotateData.Score = &roundedScore } err = e.annotateService.SaveAnnotateRecord(ctx, req.GetExptID(), req.GetItemID(), req.GetTurnID(), recordDO) @@ -1110,7 +1509,8 @@ func (e *experimentApplication) UpdateAnnotateRecord(ctx context.Context, req *e if err != nil { return nil, err } - recordDO.AnnotateData.Score = &score + roundedScore := utils.RoundScoreToTwoDecimals(score) + recordDO.AnnotateData.Score = &roundedScore } err = e.annotateService.UpdateAnnotateRecord(ctx, req.GetItemID(), req.GetTurnID(), recordDO) if err != nil { diff --git a/backend/modules/evaluation/application/experiment_app_test.go b/backend/modules/evaluation/application/experiment_app_test.go index 4844a8072..9147ee2bd 100644 --- a/backend/modules/evaluation/application/experiment_app_test.go +++ b/backend/modules/evaluation/application/experiment_app_test.go @@ -331,6 +331,124 @@ func TestExperimentApplication_CreateExperiment(t *testing.T) { } } +// Test_experimentApplication_resolveEvaluatorVersionIDs_ScoreWeight 测试权重配置提取逻辑(608-612行) +func Test_experimentApplication_resolveEvaluatorVersionIDs_ScoreWeight(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockEvaluatorService := servicemocks.NewMockEvaluatorService(ctrl) + app := &experimentApplication{ + evaluatorService: mockEvaluatorService, + } + ctx := context.Background() + + t.Run("从EvaluatorIDVersionList提取权重,请求中未显式设置", func(t *testing.T) { + req := &exptpb.CreateExperimentRequest{ + EvaluatorIDVersionList: []*evaluator.EvaluatorIDVersionItem{ + { + EvaluatorID: gptr.Of(int64(1)), + Version: gptr.Of("v1"), + EvaluatorVersionID: gptr.Of(int64(101)), + ScoreWeight: gptr.Of(0.6), + }, + }, + } + + evaluator1 := &entity.Evaluator{ + ID: 1, + PromptEvaluatorVersion: &entity.PromptEvaluatorVersion{ + EvaluatorID: 1, + ID: 101, + Version: "v1", + }, + EvaluatorType: entity.EvaluatorTypePrompt, + } + + mockEvaluatorService.EXPECT(). + BatchGetEvaluatorByIDAndVersion(ctx, gomock.Any()). + DoAndReturn(func(_ context.Context, pairs [][2]interface{}) ([]*entity.Evaluator, error) { + // 验证传入的参数 + if assert.Len(t, pairs, 1) { + assert.Equal(t, int64(1), pairs[0][0]) + assert.Equal(t, "v1", pairs[0][1]) + } + return []*entity.Evaluator{evaluator1}, nil + }) + + _, _, weights, err := app.resolveEvaluatorVersionIDsFromCreateReq(ctx, req) + assert.NoError(t, err) + // 应该从 EvaluatorIDVersionList 中提取权重 + // 注意:权重使用从Evaluator中获取的版本ID作为key + assert.Equal(t, 0.6, weights[101]) + }) + + t.Run("请求中已显式设置权重,不覆盖", func(t *testing.T) { + req := &exptpb.CreateExperimentRequest{ + EvaluatorScoreWeights: map[int64]float64{ + 101: 0.8, // 显式设置的权重 + }, + EvaluatorIDVersionList: []*evaluator.EvaluatorIDVersionItem{ + { + EvaluatorID: gptr.Of(int64(1)), + Version: gptr.Of("v1"), + EvaluatorVersionID: gptr.Of(int64(101)), + ScoreWeight: gptr.Of(0.6), // 这个权重不应该覆盖显式设置的 + }, + }, + } + + evaluator1 := &entity.Evaluator{ + ID: 1, + PromptEvaluatorVersion: &entity.PromptEvaluatorVersion{ + EvaluatorID: 1, + ID: 101, + }, + EvaluatorType: entity.EvaluatorTypePrompt, + } + + mockEvaluatorService.EXPECT(). + BatchGetEvaluatorByIDAndVersion(ctx, gomock.Any()). + Return([]*entity.Evaluator{evaluator1}, nil) + + _, _, weights, err := app.resolveEvaluatorVersionIDsFromCreateReq(ctx, req) + assert.NoError(t, err) + // 应该使用显式设置的权重,而不是从 EvaluatorIDVersionList 中提取的 + assert.Equal(t, 0.8, weights[101]) + }) + + t.Run("权重为0或负数,不设置", func(t *testing.T) { + req := &exptpb.CreateExperimentRequest{ + EvaluatorIDVersionList: []*evaluator.EvaluatorIDVersionItem{ + { + EvaluatorID: gptr.Of(int64(1)), + Version: gptr.Of("v1"), + EvaluatorVersionID: gptr.Of(int64(101)), + ScoreWeight: gptr.Of(0.0), // 权重为0,不应该设置 + }, + }, + } + + evaluator1 := &entity.Evaluator{ + ID: 1, + PromptEvaluatorVersion: &entity.PromptEvaluatorVersion{ + EvaluatorID: 1, + ID: 101, + }, + EvaluatorType: entity.EvaluatorTypePrompt, + } + + mockEvaluatorService.EXPECT(). + BatchGetEvaluatorByIDAndVersion(ctx, gomock.Any()). + Return([]*entity.Evaluator{evaluator1}, nil) + + _, _, weights, err := app.resolveEvaluatorVersionIDsFromCreateReq(ctx, req) + assert.NoError(t, err) + // 权重为0,不应该设置 + _, exists := weights[101] + assert.False(t, exists) + }) +} + // Test_experimentApplication_resolveEvaluatorVersionIDs 覆盖 BuiltinVisible 与普通版本解析、去重及映射回填 func Test_experimentApplication_resolveEvaluatorVersionIDs(t *testing.T) { ctrl := gomock.NewController(t) @@ -372,7 +490,7 @@ func Test_experimentApplication_resolveEvaluatorVersionIDs(t *testing.T) { {ID: 3, EvaluatorType: entity.EvaluatorTypePrompt, PromptEvaluatorVersion: &entity.PromptEvaluatorVersion{EvaluatorID: 3, Version: "2.0.0", ID: 30300}}, }, nil) - ids, _, err := app.resolveEvaluatorVersionIDs(ctx, req) + ids, _, weights, err := app.resolveEvaluatorVersionIDsFromCreateReq(ctx, req) if err != nil { t.Fatalf("resolveEvaluatorVersionIDs error: %v", err) } @@ -381,6 +499,8 @@ func Test_experimentApplication_resolveEvaluatorVersionIDs(t *testing.T) { if got, want := len(ids), 4; got != want { t.Fatalf("len(ids)=%d want=%d", got, want) } + // 验证权重映射(如果有的话) + _ = weights if ids[0] != 10101 || ids[1] != 20200 || ids[2] != 20200 || ids[3] != 30300 { t.Fatalf("ids=%v want=[10101 20200 20200 30300]", ids) } @@ -403,32 +523,33 @@ func Test_experimentApplication_resolveEvaluatorVersionIDs_WithEvaluatorFieldMap // 创建测试用的 EvaluatorFieldMapping,其中包含一个缺少 evaluator_version_id 的映射 // 这个映射应该引用一个 BuiltinVisible 的评估器 + // 注意:EvaluatorFieldMapping 中的 Version 现在是 string 类型 mapping1 := expt.NewEvaluatorFieldMapping() - mapping1.SetEvaluatorVersionID(0) // 缺少 evaluator_version_id,需要回填 - mapping1.SetEvaluatorIDVersionItem(&evaluator.EvaluatorIDVersionItem{ + mapping1.EvaluatorVersionID = 0 // 缺少 evaluator_version_id,需要回填 + mapping1.EvaluatorIDVersionItem = &evaluator.EvaluatorIDVersionItem{ EvaluatorID: gptr.Of(int64(1)), - Version: gptr.Of("BuiltinVisible"), - }) + Version: gptr.Of("BuiltinVisible"), // Version 字段现在是 string 类型 + } // 创建另一个映射,引用普通版本 mapping2 := expt.NewEvaluatorFieldMapping() - mapping2.SetEvaluatorVersionID(0) // 缺少 evaluator_version_id,需要回填 - mapping2.SetEvaluatorIDVersionItem(&evaluator.EvaluatorIDVersionItem{ + mapping2.EvaluatorVersionID = 0 // 缺少 evaluator_version_id,需要回填 + mapping2.EvaluatorIDVersionItem = &evaluator.EvaluatorIDVersionItem{ EvaluatorID: gptr.Of(int64(2)), - Version: gptr.Of("1.0.0"), - }) + Version: gptr.Of("1.0.0"), // Version 字段现在是 string 类型 + } // 创建一个已经有 evaluator_version_id 的映射,不应该被处理 mapping3 := expt.NewEvaluatorFieldMapping() - mapping3.SetEvaluatorVersionID(99999) // 已经有值,应该跳过 - mapping3.SetEvaluatorIDVersionItem(&evaluator.EvaluatorIDVersionItem{ + mapping3.EvaluatorVersionID = 99999 // 已经有值,应该跳过 + mapping3.EvaluatorIDVersionItem = &evaluator.EvaluatorIDVersionItem{ EvaluatorID: gptr.Of(int64(3)), - Version: gptr.Of("2.0.0"), - }) + Version: gptr.Of("2.0.0"), // Version 字段现在是 string 类型 + } - // 创建一个没有 EvaluatorIDVersionItem 的映射,应该跳过 + // 创建一个没有 evaluator_id 和 version 的映射,应该跳过 mapping4 := expt.NewEvaluatorFieldMapping() - mapping4.SetEvaluatorVersionID(0) // 缺少 evaluator_version_id + mapping4.EvaluatorVersionID = 0 // 缺少 evaluator_version_id // 但没有 EvaluatorIDVersionItem,应该跳过 req := &exptpb.CreateExperimentRequest{ @@ -456,7 +577,7 @@ func Test_experimentApplication_resolveEvaluatorVersionIDs_WithEvaluatorFieldMap {ID: 3, EvaluatorType: entity.EvaluatorTypePrompt, PromptEvaluatorVersion: &entity.PromptEvaluatorVersion{EvaluatorID: 3, Version: "2.0.0", ID: 30300}}, }, nil) - ids, _, err := app.resolveEvaluatorVersionIDs(ctx, req) + ids, _, weights, err := app.resolveEvaluatorVersionIDsFromCreateReq(ctx, req) if err != nil { t.Fatalf("resolveEvaluatorVersionIDs error: %v", err) } @@ -466,6 +587,8 @@ func Test_experimentApplication_resolveEvaluatorVersionIDs_WithEvaluatorFieldMap if len(ids) != len(expectedIDs) { t.Fatalf("len(ids)=%d want=%d", len(ids), len(expectedIDs)) } + // 验证权重映射(如果有的话) + _ = weights for i, id := range expectedIDs { if ids[i] != id { t.Fatalf("ids[%d]=%d want=%d", i, ids[i], id) @@ -669,6 +792,130 @@ func TestExperimentApplication_SubmitExperiment(t *testing.T) { } } +func TestExperimentApplication_SubmitExperiment_UpdateExptInfo(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockManager := servicemocks.NewMockIExptManager(ctrl) + mockResultSvc := servicemocks.NewMockExptResultService(ctrl) + mockAuth := rpcmocks.NewMockIAuthProvider(ctrl) + mockScheduler := servicemocks.NewMockExptSchedulerEvent(ctrl) + mockIDGen := idgenmock.NewMockIIDGenerator(ctrl) + mockTemplateManager := servicemocks.NewMockIExptTemplateManager(ctrl) + + workspaceID := int64(123) + exptID := int64(456) + templateID := int64(100) + runID := int64(789) + + t.Run("有关联模板,更新模板ExptInfo", func(t *testing.T) { + req := &exptpb.SubmitExperimentRequest{ + WorkspaceID: workspaceID, + ExptTemplateID: gptr.Of(templateID), + Name: gptr.Of("test_experiment"), + CreateEvalTargetParam: &eval_target.CreateEvalTargetParam{ + EvalTargetType: gptr.Of(domain_eval_target.EvalTargetType_CozeBot), + }, + Session: &common.Session{ + UserID: gptr.Of(int64(789)), + }, + } + + mockAuth.EXPECT().Authorization(gomock.Any(), gomock.Any()).Return(nil) + mockManager.EXPECT().CreateExpt(gomock.Any(), gomock.Any(), gomock.Any()). + Return(&entity.Experiment{ID: exptID}, nil) + mockIDGen.EXPECT().GenID(gomock.Any()).Return(runID, nil) + mockManager.EXPECT().LogRun(gomock.Any(), exptID, runID, gomock.Any(), workspaceID, gomock.Any()).Return(nil) + mockManager.EXPECT().Run(gomock.Any(), exptID, runID, workspaceID, gomock.Any(), gomock.Any(), gomock.Any()).Return(nil) + mockTemplateManager.EXPECT(). + UpdateExptInfo(gomock.Any(), templateID, workspaceID, exptID, entity.ExptStatus_Pending, int64(1)). + Return(nil) + + app := &experimentApplication{ + manager: mockManager, + resultSvc: mockResultSvc, + auth: mockAuth, + ExptSchedulerEvent: mockScheduler, + idgen: mockIDGen, + templateManager: mockTemplateManager, + } + + _, err := app.SubmitExperiment(context.Background(), req) + assert.NoError(t, err) + }) + + t.Run("UpdateExptInfo失败不影响主流程", func(t *testing.T) { + req := &exptpb.SubmitExperimentRequest{ + WorkspaceID: workspaceID, + ExptTemplateID: gptr.Of(templateID), + Name: gptr.Of("test_experiment"), + CreateEvalTargetParam: &eval_target.CreateEvalTargetParam{ + EvalTargetType: gptr.Of(domain_eval_target.EvalTargetType_CozeBot), + }, + Session: &common.Session{ + UserID: gptr.Of(int64(789)), + }, + } + + mockAuth.EXPECT().Authorization(gomock.Any(), gomock.Any()).Return(nil) + mockManager.EXPECT().CreateExpt(gomock.Any(), gomock.Any(), gomock.Any()). + Return(&entity.Experiment{ID: exptID}, nil) + mockIDGen.EXPECT().GenID(gomock.Any()).Return(runID, nil) + mockManager.EXPECT().LogRun(gomock.Any(), exptID, runID, gomock.Any(), workspaceID, gomock.Any()).Return(nil) + mockManager.EXPECT().Run(gomock.Any(), exptID, runID, workspaceID, gomock.Any(), gomock.Any(), gomock.Any()).Return(nil) + mockTemplateManager.EXPECT(). + UpdateExptInfo(gomock.Any(), templateID, workspaceID, exptID, entity.ExptStatus_Pending, int64(1)). + Return(errors.New("update error")) + + app := &experimentApplication{ + manager: mockManager, + resultSvc: mockResultSvc, + auth: mockAuth, + ExptSchedulerEvent: mockScheduler, + idgen: mockIDGen, + templateManager: mockTemplateManager, + } + + // UpdateExptInfo失败不应该影响主流程 + _, err := app.SubmitExperiment(context.Background(), req) + assert.NoError(t, err) + }) + + t.Run("没有关联模板,不更新ExptInfo", func(t *testing.T) { + req := &exptpb.SubmitExperimentRequest{ + WorkspaceID: workspaceID, + Name: gptr.Of("test_experiment"), + CreateEvalTargetParam: &eval_target.CreateEvalTargetParam{ + EvalTargetType: gptr.Of(domain_eval_target.EvalTargetType_CozeBot), + }, + Session: &common.Session{ + UserID: gptr.Of(int64(789)), + }, + } + + mockAuth.EXPECT().Authorization(gomock.Any(), gomock.Any()).Return(nil) + mockManager.EXPECT().CreateExpt(gomock.Any(), gomock.Any(), gomock.Any()). + Return(&entity.Experiment{ID: exptID}, nil) + mockIDGen.EXPECT().GenID(gomock.Any()).Return(runID, nil) + mockManager.EXPECT().LogRun(gomock.Any(), exptID, runID, gomock.Any(), workspaceID, gomock.Any()).Return(nil) + mockManager.EXPECT().Run(gomock.Any(), exptID, runID, workspaceID, gomock.Any(), gomock.Any(), gomock.Any()).Return(nil) + // 不应该调用 UpdateExptInfo + mockTemplateManager.EXPECT().UpdateExptInfo(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Times(0) + + app := &experimentApplication{ + manager: mockManager, + resultSvc: mockResultSvc, + auth: mockAuth, + ExptSchedulerEvent: mockScheduler, + idgen: mockIDGen, + templateManager: mockTemplateManager, + } + + _, err := app.SubmitExperiment(context.Background(), req) + assert.NoError(t, err) + }) +} + func TestExperimentApplication_CheckExperimentName(t *testing.T) { ctrl := gomock.NewController(t) defer ctrl.Finish() @@ -772,6 +1019,178 @@ func TestExperimentApplication_CheckExperimentName(t *testing.T) { } } +func TestExperimentApplication_CheckExperimentTemplateName(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockAuth := rpcmocks.NewMockIAuthProvider(ctrl) + mockTemplateManager := servicemocks.NewMockIExptTemplateManager(ctrl) + + workspaceID := int64(123) + templateID := int64(1001) + templateName := "tpl_name" + + tests := []struct { + name string + req *exptpb.CheckExperimentTemplateNameRequest + mockSetup func() + wantResp *exptpb.CheckExperimentTemplateNameResponse + wantErr bool + }{ + { + name: "name available when no template_id", + req: &exptpb.CheckExperimentTemplateNameRequest{ + WorkspaceID: workspaceID, + Name: templateName, + }, + mockSetup: func() { + mockTemplateManager.EXPECT(). + CheckName(gomock.Any(), templateName, workspaceID, &entity.Session{}). + Return(true, nil) + mockAuth.EXPECT(). + Authorization( + gomock.Any(), + gomock.Any(), + ).DoAndReturn(func(_ context.Context, param *rpc.AuthorizationParam) error { + assert.Equal(t, strconv.FormatInt(workspaceID, 10), param.ObjectID) + assert.Equal(t, workspaceID, param.SpaceID) + assert.Equal(t, rpc.AuthEntityType_Space, *param.ActionObjects[0].EntityType) + assert.Equal(t, consts.ActionCreateExptTemplate, *param.ActionObjects[0].Action) + return nil + }) + }, + wantResp: &exptpb.CheckExperimentTemplateNameResponse{ + IsAvailable: gptr.Of(true), + BaseResp: base.NewBaseResp(), + }, + wantErr: false, + }, + { + name: "name not available when no template_id", + req: &exptpb.CheckExperimentTemplateNameRequest{ + WorkspaceID: workspaceID, + Name: templateName, + }, + mockSetup: func() { + mockTemplateManager.EXPECT(). + CheckName(gomock.Any(), templateName, workspaceID, &entity.Session{}). + Return(false, nil) + mockAuth.EXPECT(). + Authorization( + gomock.Any(), + gomock.Any(), + ).DoAndReturn(func(_ context.Context, param *rpc.AuthorizationParam) error { + assert.Equal(t, strconv.FormatInt(workspaceID, 10), param.ObjectID) + assert.Equal(t, workspaceID, param.SpaceID) + assert.Equal(t, rpc.AuthEntityType_Space, *param.ActionObjects[0].EntityType) + assert.Equal(t, consts.ActionCreateExptTemplate, *param.ActionObjects[0].Action) + return nil + }) + }, + wantResp: &exptpb.CheckExperimentTemplateNameResponse{ + IsAvailable: gptr.Of(false), + BaseResp: base.NewBaseResp(), + }, + wantErr: false, + }, + { + name: "same name with template_id returns available without CheckName", + req: &exptpb.CheckExperimentTemplateNameRequest{ + WorkspaceID: workspaceID, + TemplateID: gptr.Of(templateID), + Name: templateName, + }, + mockSetup: func() { + mockTemplateManager.EXPECT(). + Get(gomock.Any(), templateID, workspaceID, &entity.Session{}). + Return(&entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: workspaceID, + Name: templateName, + }, + }, nil) + mockAuth.EXPECT(). + Authorization( + gomock.Any(), + gomock.Any(), + ).DoAndReturn(func(_ context.Context, param *rpc.AuthorizationParam) error { + assert.Equal(t, strconv.FormatInt(workspaceID, 10), param.ObjectID) + assert.Equal(t, workspaceID, param.SpaceID) + assert.Equal(t, rpc.AuthEntityType_Space, *param.ActionObjects[0].EntityType) + assert.Equal(t, consts.ActionCreateExptTemplate, *param.ActionObjects[0].Action) + return nil + }) + }, + wantResp: &exptpb.CheckExperimentTemplateNameResponse{ + IsAvailable: gptr.Of(true), + BaseResp: base.NewBaseResp(), + }, + wantErr: false, + }, + { + name: "different name with template_id falls back to CheckName", + req: &exptpb.CheckExperimentTemplateNameRequest{ + WorkspaceID: workspaceID, + TemplateID: gptr.Of(templateID), + Name: "other_name", + }, + mockSetup: func() { + mockTemplateManager.EXPECT(). + Get(gomock.Any(), templateID, workspaceID, &entity.Session{}). + Return(&entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: workspaceID, + Name: templateName, + }, + }, nil) + mockTemplateManager.EXPECT(). + CheckName(gomock.Any(), "other_name", workspaceID, &entity.Session{}). + Return(true, nil) + mockAuth.EXPECT(). + Authorization( + gomock.Any(), + gomock.Any(), + ).DoAndReturn(func(_ context.Context, param *rpc.AuthorizationParam) error { + assert.Equal(t, strconv.FormatInt(workspaceID, 10), param.ObjectID) + assert.Equal(t, workspaceID, param.SpaceID) + assert.Equal(t, rpc.AuthEntityType_Space, *param.ActionObjects[0].EntityType) + assert.Equal(t, consts.ActionCreateExptTemplate, *param.ActionObjects[0].Action) + return nil + }) + }, + wantResp: &exptpb.CheckExperimentTemplateNameResponse{ + IsAvailable: gptr.Of(true), + BaseResp: base.NewBaseResp(), + }, + wantErr: false, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + tt.mockSetup() + + app := &experimentApplication{ + auth: mockAuth, + templateManager: mockTemplateManager, + } + + gotResp, err := app.CheckExperimentTemplateName(context.Background(), tt.req) + + if tt.wantErr { + assert.Error(t, err) + return + } + + assert.NoError(t, err) + assert.NotNil(t, gotResp) + assert.Equal(t, tt.wantResp.GetIsAvailable(), gotResp.GetIsAvailable()) + }) + } +} + func TestExperimentApplication_BatchGetExperiments(t *testing.T) { ctrl := gomock.NewController(t) defer ctrl.Finish() @@ -2093,8 +2512,6 @@ func TestExperimentApplication_RetryExperiment(t *testing.T) { // 设置 mock 期望 tt.mockSetup() - mockEvaluatorService := servicemocks.NewMockEvaluatorService(ctrl) - // 创建被测试的 experimentApplication 实例 app := NewExperimentApplication( nil, // aggResultSvc @@ -2112,7 +2529,8 @@ func TestExperimentApplication_RetryExperiment(t *testing.T) { nil, nil, nil, - mockEvaluatorService, // evaluatorService + nil, // evaluatorService + nil, // templateManager ) // 执行测试 @@ -2359,6 +2777,7 @@ func TestExperimentApplication_KillExperiment(t *testing.T) { nil, nil, nil, // evaluatorService + nil, // templateManager ) // 设置 context 中的 UserID,这样 entity.NewSession 才能获取到 UserID @@ -2380,56 +2799,754 @@ func TestExperimentApplication_KillExperiment(t *testing.T) { } } -func TestExperimentApplication_BatchGetExperimentResult_(t *testing.T) { +// --------- ExptTemplate related tests ---------- + +func TestExperimentApplication_CreateExperimentTemplate(t *testing.T) { ctrl := gomock.NewController(t) defer ctrl.Finish() - // 创建 mock 对象 + mockTemplateManager := servicemocks.NewMockIExptTemplateManager(ctrl) mockAuth := rpcmocks.NewMockIAuthProvider(ctrl) - mockResultSvc := servicemocks.NewMockExptResultService(ctrl) + mockUserInfo := userinfomocks.NewMockUserInfoService(ctrl) - // 测试数据 - validWorkspaceID := int64(123) - validExptID := int64(456) - validTotal := int64(10) + workspaceID := int64(1001) + userID := int64(42) + templateID := int64(2001) + + req := &exptpb.CreateExperimentTemplateRequest{ + WorkspaceID: workspaceID, + Session: &common.Session{ + UserID: gptr.Of(userID), + }, + Meta: &expt.ExptTemplateMeta{ + Name: gptr.Of("tpl_name"), + Desc: gptr.Of("desc"), + ExptType: gptr.Of(expt.ExptType_Offline), + }, + TripleConfig: &expt.ExptTuple{ + EvalSetID: gptr.Of(int64(1)), + EvalSetVersionID: gptr.Of(int64(2)), + }, + } + + created := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: workspaceID, + Name: "tpl_name", + Desc: "desc", + ExptType: entity.ExptType_Offline, + }, + BaseInfo: &entity.BaseInfo{ + CreatedBy: &entity.UserInfo{UserID: gptr.Of(strconv.FormatInt(userID, 10))}, + UpdatedBy: &entity.UserInfo{UserID: gptr.Of(strconv.FormatInt(userID, 10))}, + }, + } + + // 授权校验 + mockAuth.EXPECT(). + Authorization(gomock.Any(), gomock.Any()). + DoAndReturn(func(_ context.Context, param *rpc.AuthorizationParam) error { + assert.Equal(t, strconv.FormatInt(workspaceID, 10), param.ObjectID) + assert.Equal(t, workspaceID, param.SpaceID) + assert.Len(t, param.ActionObjects, 1) + assert.Equal(t, consts.ActionCreateExptTemplate, *param.ActionObjects[0].Action) + assert.Equal(t, rpc.AuthEntityType_Space, *param.ActionObjects[0].EntityType) + return nil + }) + + mockTemplateManager.EXPECT(). + Create(gomock.Any(), gomock.Any(), &entity.Session{UserID: strconv.FormatInt(userID, 10)}). + Return(created, nil) + // mPackExptTemplateUserInfo 会调用 + mockUserInfo.EXPECT().PackUserInfo(gomock.Any(), gomock.Any()) + + app := NewExperimentApplication( + nil, // aggResultSvc + nil, // resultSvc + nil, // manager + nil, // scheduler + nil, // recordEval + nil, // idgen + nil, // configer + mockAuth, // auth + mockUserInfo, // userInfoService + nil, // evalTargetService + nil, // evaluationSetItemService + nil, // annotateService + nil, // tagRPCAdapter + nil, // exptResultExportService + nil, // exptInsightAnalysisService + nil, // evaluatorService + mockTemplateManager, // templateManager + ) + + resp, err := app.CreateExperimentTemplate(context.Background(), req) + assert.NoError(t, err) + assert.NotNil(t, resp) + assert.Equal(t, templateID, resp.GetExperimentTemplate().GetMeta().GetID()) + assert.Equal(t, "tpl_name", resp.GetExperimentTemplate().GetMeta().GetName()) +} + +func TestExperimentApplication_BatchGetExperimentTemplate(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockTemplateManager := servicemocks.NewMockIExptTemplateManager(ctrl) + mockAuth := rpcmocks.NewMockIAuthProvider(ctrl) + mockUserInfo := userinfomocks.NewMockUserInfoService(ctrl) + + workspaceID := int64(1001) + templateID := int64(2001) tests := []struct { name string - req *exptpb.BatchGetExperimentResultRequest + req *exptpb.BatchGetExperimentTemplateRequest mockSetup func() - wantResp *exptpb.BatchGetExperimentResultResponse + wantLen int wantErr bool }{ { - name: "successfully get experiment results", - req: &exptpb.BatchGetExperimentResultRequest{ - WorkspaceID: validWorkspaceID, - ExperimentIds: []int64{validExptID}, - PageNumber: gptr.Of(int32(1)), - PageSize: gptr.Of(int32(10)), + name: "empty ids returns empty list without calling manager", + req: &exptpb.BatchGetExperimentTemplateRequest{ + WorkspaceID: workspaceID, + TemplateIds: nil, }, mockSetup: func() { - // 模拟权限验证 - mockAuth.EXPECT(). - Authorization( - gomock.Any(), - gomock.Any(), - ).DoAndReturn(func(_ context.Context, param *rpc.AuthorizationParam) error { - assert.Equal(t, strconv.FormatInt(validWorkspaceID, 10), param.ObjectID) - assert.Equal(t, validWorkspaceID, param.SpaceID) - assert.Equal(t, rpc.AuthEntityType_Space, *param.ActionObjects[0].EntityType) - return nil - }) - mockResultSvc.EXPECT().MGetExperimentResult( - gomock.Any(), - gomock.Any(), - ).Return( - &entity.MGetExperimentReportResult{ - ColumnEvaluators: []*entity.ColumnEvaluator{ - {EvaluatorVersionID: 1, Name: gptr.Of("evaluator1")}, + // 当前实现在 template_ids 为空时直接返回,不触发任何鉴权 / MGet 调用 + }, + wantLen: 0, + wantErr: false, + }, + { + name: "success", + req: &exptpb.BatchGetExperimentTemplateRequest{ + WorkspaceID: workspaceID, + TemplateIds: []int64{templateID}, + }, + mockSetup: func() { + templates := []*entity.ExptTemplate{ + { + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: workspaceID, + Name: "tpl", }, - ColumnEvalSetFields: []*entity.ColumnEvalSetField{ - {Name: gptr.Of("field1"), ContentType: entity.ContentTypeText}, + BaseInfo: &entity.BaseInfo{ + CreatedBy: &entity.UserInfo{UserID: gptr.Of("u1")}, + UpdatedBy: &entity.UserInfo{UserID: gptr.Of("u1")}, + }, + }, + } + + mockTemplateManager.EXPECT(). + MGet(gomock.Any(), []int64{templateID}, workspaceID, gomock.Any()). + Return(templates, nil) + + // 批量模板读权限校验 + mockAuth.EXPECT(). + MAuthorizeWithoutSPI(gomock.Any(), workspaceID, gomock.Any()). + DoAndReturn(func(_ context.Context, spaceID int64, params []*rpc.AuthorizationWithoutSPIParam) error { + assert.Equal(t, workspaceID, spaceID) + assert.Len(t, params, 1) + p := params[0] + assert.Equal(t, strconv.FormatInt(templateID, 10), p.ObjectID) + assert.Equal(t, workspaceID, p.SpaceID) + assert.Len(t, p.ActionObjects, 1) + assert.Equal(t, consts.Read, *p.ActionObjects[0].Action) + assert.Equal(t, rpc.AuthEntityType_EvaluationExptTemplate, *p.ActionObjects[0].EntityType) + assert.Equal(t, "u1", *p.OwnerID) + assert.Equal(t, workspaceID, p.ResourceSpaceID) + return nil + }) + + mockUserInfo.EXPECT().PackUserInfo(gomock.Any(), gomock.Any()) + }, + wantLen: 1, + wantErr: false, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + tt.mockSetup() + app := NewExperimentApplication( + nil, // aggResultSvc + nil, // resultSvc + nil, // manager + nil, // scheduler + nil, // recordEval + nil, // idgen + nil, // configer + mockAuth, // auth + mockUserInfo, // userInfoService + nil, // evalTargetService + nil, // evaluationSetItemService + nil, // annotateService + nil, // tagRPCAdapter + nil, // exptResultExportService + nil, // exptInsightAnalysisService + nil, // evaluatorService + mockTemplateManager, // templateManager + ) + resp, err := app.BatchGetExperimentTemplate(context.Background(), tt.req) + if tt.wantErr { + assert.Error(t, err) + return + } + assert.NoError(t, err) + assert.Len(t, resp.GetExperimentTemplates(), tt.wantLen) + }) + } +} + +func TestExperimentApplication_UpdateExperimentTemplate(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockTemplateManager := servicemocks.NewMockIExptTemplateManager(ctrl) + mockAuth := rpcmocks.NewMockIAuthProvider(ctrl) + mockUserInfo := userinfomocks.NewMockUserInfoService(ctrl) + + workspaceID := int64(1001) + templateID := int64(2001) + + t.Run("missing ids", func(t *testing.T) { + app := NewExperimentApplication( + nil, // aggResultSvc + nil, // resultSvc + nil, // manager + nil, // scheduler + nil, // recordEval + nil, // idgen + nil, // configer + mockAuth, // auth + mockUserInfo, // userInfoService + nil, // evalTargetService + nil, // evaluationSetItemService + nil, // annotateService + nil, // tagRPCAdapter + nil, // exptResultExportService + nil, // exptInsightAnalysisService + nil, // evaluatorService + mockTemplateManager, // templateManager + ) + _, err := app.UpdateExperimentTemplate(context.Background(), &exptpb.UpdateExperimentTemplateRequest{}) + assert.Error(t, err) + }) + + t.Run("success", func(t *testing.T) { + req := &exptpb.UpdateExperimentTemplateRequest{ + WorkspaceID: workspaceID, + TemplateID: templateID, + Meta: &expt.ExptTemplateMeta{ + Name: gptr.Of("new_name"), + }, + } + + existing := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: workspaceID, + Name: "old_name", + }, + BaseInfo: &entity.BaseInfo{ + CreatedBy: &entity.UserInfo{UserID: gptr.Of("u1")}, + UpdatedBy: &entity.UserInfo{UserID: gptr.Of("u1")}, + }, + } + + updated := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: workspaceID, + Name: "new_name", + }, + BaseInfo: existing.BaseInfo, + } + + // 先 Get 做权限用 + mockTemplateManager.EXPECT(). + Get(gomock.Any(), templateID, workspaceID, gomock.Any()). + Return(existing, nil) + + // 使用 AuthorizationWithoutSPI 做模板级编辑权限校验 + mockAuth.EXPECT(). + AuthorizationWithoutSPI(gomock.Any(), gomock.Any()). + DoAndReturn(func(_ context.Context, param *rpc.AuthorizationWithoutSPIParam) error { + assert.Equal(t, strconv.FormatInt(templateID, 10), param.ObjectID) + assert.Equal(t, workspaceID, param.SpaceID) + assert.Len(t, param.ActionObjects, 1) + assert.Equal(t, consts.Edit, *param.ActionObjects[0].Action) + assert.Equal(t, rpc.AuthEntityType_EvaluationExptTemplate, *param.ActionObjects[0].EntityType) + assert.Equal(t, "u1", *param.OwnerID) + assert.Equal(t, workspaceID, param.ResourceSpaceID) + return nil + }) + + mockTemplateManager.EXPECT(). + Update(gomock.Any(), gomock.Any(), gomock.Any()). + Return(updated, nil) + mockUserInfo.EXPECT().PackUserInfo(gomock.Any(), gomock.Any()) + + app := NewExperimentApplication( + nil, // aggResultSvc + nil, // resultSvc + nil, // manager + nil, // scheduler + nil, // recordEval + nil, // idgen + nil, // configer + mockAuth, // auth + mockUserInfo, // userInfoService + nil, // evalTargetService + nil, // evaluationSetItemService + nil, // annotateService + nil, // tagRPCAdapter + nil, // exptResultExportService + nil, // exptInsightAnalysisService + nil, // evaluatorService + mockTemplateManager, // templateManager + ) + resp, err := app.UpdateExperimentTemplate(context.Background(), req) + assert.NoError(t, err) + assert.Equal(t, "new_name", resp.GetExperimentTemplate().GetMeta().GetName()) + }) +} + +func TestExperimentApplication_UpdateExperimentTemplateMeta(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockTemplateManager := servicemocks.NewMockIExptTemplateManager(ctrl) + mockAuth := rpcmocks.NewMockIAuthProvider(ctrl) + + workspaceID := int64(1001) + templateID := int64(2001) + + t.Run("missing ids", func(t *testing.T) { + app := NewExperimentApplication( + nil, // aggResultSvc + nil, // resultSvc + nil, // manager + nil, // scheduler + nil, // recordEval + nil, // idgen + nil, // configer + mockAuth, // auth + nil, // userInfoService + nil, // evalTargetService + nil, // evaluationSetItemService + nil, // annotateService + nil, // tagRPCAdapter + nil, // exptResultExportService + nil, // exptInsightAnalysisService + nil, // evaluatorService + mockTemplateManager, // templateManager + ) + _, err := app.UpdateExperimentTemplateMeta(context.Background(), &exptpb.UpdateExperimentTemplateMetaRequest{}) + assert.Error(t, err) + }) + + t.Run("success", func(t *testing.T) { + req := &exptpb.UpdateExperimentTemplateMetaRequest{ + WorkspaceID: workspaceID, + TemplateID: templateID, + Meta: &expt.ExptTemplateMeta{ + Name: gptr.Of("meta_name"), + }, + } + + existing := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: workspaceID, + Name: "old_name", + }, + BaseInfo: &entity.BaseInfo{ + CreatedBy: &entity.UserInfo{UserID: gptr.Of("u1")}, + UpdatedBy: &entity.UserInfo{UserID: gptr.Of("u1")}, + }, + } + + updated := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: workspaceID, + Name: "meta_name", + }, + BaseInfo: existing.BaseInfo, + } + + mockTemplateManager.EXPECT(). + Get(gomock.Any(), templateID, workspaceID, gomock.Any()). + Return(existing, nil) + + mockAuth.EXPECT(). + AuthorizationWithoutSPI(gomock.Any(), gomock.Any()). + DoAndReturn(func(_ context.Context, param *rpc.AuthorizationWithoutSPIParam) error { + assert.Equal(t, strconv.FormatInt(templateID, 10), param.ObjectID) + assert.Equal(t, workspaceID, param.SpaceID) + assert.Len(t, param.ActionObjects, 1) + assert.Equal(t, consts.Edit, *param.ActionObjects[0].Action) + assert.Equal(t, rpc.AuthEntityType_EvaluationExptTemplate, *param.ActionObjects[0].EntityType) + assert.Equal(t, "u1", *param.OwnerID) + assert.Equal(t, workspaceID, param.ResourceSpaceID) + return nil + }) + + mockTemplateManager.EXPECT(). + UpdateMeta(gomock.Any(), gomock.Any(), gomock.Any()). + Return(updated, nil) + + app := NewExperimentApplication( + nil, // aggResultSvc + nil, // resultSvc + nil, // manager + nil, // scheduler + nil, // recordEval + nil, // idgen + nil, // configer + mockAuth, // auth + nil, // userInfoService + nil, // evalTargetService + nil, // evaluationSetItemService + nil, // annotateService + nil, // tagRPCAdapter + nil, // exptResultExportService + nil, // exptInsightAnalysisService + nil, // evaluatorService + mockTemplateManager, // templateManager + ) + resp, err := app.UpdateExperimentTemplateMeta(context.Background(), req) + assert.NoError(t, err) + assert.Equal(t, "meta_name", resp.GetMeta().GetName()) + }) +} + +func TestExperimentApplication_DeleteExperimentTemplate(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockTemplateManager := servicemocks.NewMockIExptTemplateManager(ctrl) + mockAuth := rpcmocks.NewMockIAuthProvider(ctrl) + + workspaceID := int64(1001) + templateID := int64(2001) + + req := &exptpb.DeleteExperimentTemplateRequest{ + WorkspaceID: workspaceID, + TemplateID: templateID, + } + + existing := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: workspaceID, + }, + BaseInfo: &entity.BaseInfo{ + CreatedBy: &entity.UserInfo{UserID: gptr.Of("u1")}, + UpdatedBy: &entity.UserInfo{UserID: gptr.Of("u1")}, + }, + } + + mockTemplateManager.EXPECT(). + Get(gomock.Any(), templateID, workspaceID, gomock.Any()). + Return(existing, nil) + + mockAuth.EXPECT(). + AuthorizationWithoutSPI(gomock.Any(), gomock.Any()). + DoAndReturn(func(_ context.Context, param *rpc.AuthorizationWithoutSPIParam) error { + assert.Equal(t, strconv.FormatInt(templateID, 10), param.ObjectID) + assert.Equal(t, workspaceID, param.SpaceID) + assert.Len(t, param.ActionObjects, 1) + assert.Equal(t, consts.Edit, *param.ActionObjects[0].Action) + assert.Equal(t, rpc.AuthEntityType_EvaluationExptTemplate, *param.ActionObjects[0].EntityType) + assert.Equal(t, "u1", *param.OwnerID) + assert.Equal(t, workspaceID, param.ResourceSpaceID) + return nil + }) + + mockTemplateManager.EXPECT(). + Delete(gomock.Any(), templateID, workspaceID, gomock.Any()). + Return(nil) + + app := NewExperimentApplication( + nil, // aggResultSvc + nil, // resultSvc + nil, // manager + nil, // scheduler + nil, // recordEval + nil, // idgen + nil, // configer + mockAuth, // auth + nil, // userInfoService + nil, // evalTargetService + nil, // evaluationSetItemService + nil, // annotateService + nil, // tagRPCAdapter + nil, // exptResultExportService + nil, // exptInsightAnalysisService + nil, // evaluatorService + mockTemplateManager, // templateManager + ) + resp, err := app.DeleteExperimentTemplate(context.Background(), req) + assert.NoError(t, err) + assert.NotNil(t, resp) +} + +func TestExperimentApplication_ListExperimentTemplates(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockTemplateManager := servicemocks.NewMockIExptTemplateManager(ctrl) + mockAuth := rpcmocks.NewMockIAuthProvider(ctrl) + mockUserInfo := userinfomocks.NewMockUserInfoService(ctrl) + mockEvalTargetSvc := servicemocks.NewMockIEvalTargetService(ctrl) + + workspaceID := int64(1001) + + req := &exptpb.ListExperimentTemplatesRequest{ + WorkspaceID: workspaceID, + PageNumber: gptr.Of(int32(1)), + PageSize: gptr.Of(int32(10)), + } + + mockAuth.EXPECT(). + Authorization(gomock.Any(), gomock.Any()). + DoAndReturn(func(_ context.Context, param *rpc.AuthorizationParam) error { + assert.Equal(t, strconv.FormatInt(workspaceID, 10), param.ObjectID) + assert.Equal(t, workspaceID, param.SpaceID) + assert.Len(t, param.ActionObjects, 1) + assert.Equal(t, consts.ActionReadExptTemplate, *param.ActionObjects[0].Action) + assert.Equal(t, rpc.AuthEntityType_Space, *param.ActionObjects[0].EntityType) + return nil + }) + + // 只要调用了 Convert 就说明 filter 部分覆盖到了,这里不关心具体值 + mockTemplateManager.EXPECT(). + List(gomock.Any(), req.GetPageNumber(), req.GetPageSize(), workspaceID, gomock.Any(), gomock.Any(), gomock.Any()). + Return([]*entity.ExptTemplate{ + { + Meta: &entity.ExptTemplateMeta{ + ID: 1, + WorkspaceID: workspaceID, + Name: "tpl", + }, + BaseInfo: &entity.BaseInfo{ + CreatedBy: &entity.UserInfo{UserID: gptr.Of("u1")}, + UpdatedBy: &entity.UserInfo{UserID: gptr.Of("u1")}, + }, + }, + }, int64(1), nil) + mockUserInfo.EXPECT().PackUserInfo(gomock.Any(), gomock.Any()) + + app := NewExperimentApplication( + nil, // aggResultSvc + nil, // resultSvc + nil, // manager + nil, // scheduler + nil, // recordEval + nil, // idgen + nil, // configer + mockAuth, // auth + mockUserInfo, // userInfoService + mockEvalTargetSvc, // evalTargetService + nil, // evaluationSetItemService + nil, // annotateService + nil, // tagRPCAdapter + nil, // exptResultExportService + nil, // exptInsightAnalysisService + nil, // evaluatorService + mockTemplateManager, // templateManager + ) + resp, err := app.ListExperimentTemplates(context.Background(), req) + assert.NoError(t, err) + assert.Equal(t, int32(1), resp.GetTotal()) + assert.Len(t, resp.GetExperimentTemplates(), 1) +} + +func TestExperimentApplication_ListExperimentTemplates_FilterOptionAndDefaultSort(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockTemplateManager := servicemocks.NewMockIExptTemplateManager(ctrl) + mockAuth := rpcmocks.NewMockIAuthProvider(ctrl) + mockUserInfo := userinfomocks.NewMockUserInfoService(ctrl) + mockEvalTargetSvc := servicemocks.NewMockIEvalTargetService(ctrl) + + workspaceID := int64(1001) + + t.Run("FilterOption为nil,不设置filters", func(t *testing.T) { + req := &exptpb.ListExperimentTemplatesRequest{ + WorkspaceID: workspaceID, + PageNumber: gptr.Of(int32(1)), + PageSize: gptr.Of(int32(10)), + FilterOption: nil, + } + + mockAuth.EXPECT().Authorization(gomock.Any(), gomock.Any()).Return(nil) + mockTemplateManager.EXPECT(). + List(gomock.Any(), req.GetPageNumber(), req.GetPageSize(), workspaceID, nil, gomock.Any(), gomock.Any()). + DoAndReturn(func(_ context.Context, page, size int32, spaceID int64, filter *entity.ExptTemplateListFilter, orderBys []*entity.OrderBy, session *entity.Session) ([]*entity.ExptTemplate, int64, error) { + // 验证filter为nil + assert.Nil(t, filter) + // 验证默认排序 + assert.Len(t, orderBys, 1) + assert.Equal(t, entity.OrderByUpdatedAt, *orderBys[0].Field) + assert.False(t, *orderBys[0].IsAsc) + return []*entity.ExptTemplate{}, int64(0), nil + }) + + app := NewExperimentApplication( + nil, nil, nil, nil, nil, nil, nil, + mockAuth, mockUserInfo, mockEvalTargetSvc, nil, nil, nil, nil, nil, nil, mockTemplateManager, + ) + _, err := app.ListExperimentTemplates(context.Background(), req) + assert.NoError(t, err) + }) + + t.Run("没有显式指定排序,默认按updated_at倒序", func(t *testing.T) { + req := &exptpb.ListExperimentTemplatesRequest{ + WorkspaceID: workspaceID, + PageNumber: gptr.Of(int32(1)), + PageSize: gptr.Of(int32(10)), + OrderBys: nil, // 没有显式指定排序 + } + + mockAuth.EXPECT().Authorization(gomock.Any(), gomock.Any()).Return(nil) + mockTemplateManager.EXPECT(). + List(gomock.Any(), req.GetPageNumber(), req.GetPageSize(), workspaceID, gomock.Any(), gomock.Any(), gomock.Any()). + DoAndReturn(func(_ context.Context, page, size int32, spaceID int64, filter *entity.ExptTemplateListFilter, orderBys []*entity.OrderBy, session *entity.Session) ([]*entity.ExptTemplate, int64, error) { + // 验证默认排序:updated_at 倒序 + assert.Len(t, orderBys, 1) + assert.Equal(t, entity.OrderByUpdatedAt, *orderBys[0].Field) + assert.False(t, *orderBys[0].IsAsc) + return []*entity.ExptTemplate{}, int64(0), nil + }) + + app := NewExperimentApplication( + nil, nil, nil, nil, nil, nil, nil, + mockAuth, mockUserInfo, mockEvalTargetSvc, nil, nil, nil, nil, nil, nil, mockTemplateManager, + ) + _, err := app.ListExperimentTemplates(context.Background(), req) + assert.NoError(t, err) + }) + + t.Run("显式指定排序,使用指定的排序", func(t *testing.T) { + req := &exptpb.ListExperimentTemplatesRequest{ + WorkspaceID: workspaceID, + PageNumber: gptr.Of(int32(1)), + PageSize: gptr.Of(int32(10)), + OrderBys: []*common.OrderBy{ + {Field: gptr.Of("name"), IsAsc: gptr.Of(true)}, + }, + } + + mockAuth.EXPECT().Authorization(gomock.Any(), gomock.Any()).Return(nil) + mockTemplateManager.EXPECT(). + List(gomock.Any(), req.GetPageNumber(), req.GetPageSize(), workspaceID, gomock.Any(), gomock.Any(), gomock.Any()). + DoAndReturn(func(_ context.Context, page, size int32, spaceID int64, filter *entity.ExptTemplateListFilter, orderBys []*entity.OrderBy, session *entity.Session) ([]*entity.ExptTemplate, int64, error) { + // 验证使用指定的排序 + assert.Len(t, orderBys, 1) + assert.Equal(t, "name", *orderBys[0].Field) + assert.True(t, *orderBys[0].IsAsc) + return []*entity.ExptTemplate{}, int64(0), nil + }) + + app := NewExperimentApplication( + nil, nil, nil, nil, nil, nil, nil, + mockAuth, mockUserInfo, mockEvalTargetSvc, nil, nil, nil, nil, nil, nil, mockTemplateManager, + ) + _, err := app.ListExperimentTemplates(context.Background(), req) + assert.NoError(t, err) + }) + + t.Run("FilterOption不为nil,调用Convert", func(t *testing.T) { + req := &exptpb.ListExperimentTemplatesRequest{ + WorkspaceID: workspaceID, + PageNumber: gptr.Of(int32(1)), + PageSize: gptr.Of(int32(10)), + FilterOption: &expt.ExperimentTemplateFilter{ + // 设置一个空的过滤配置,Convert应该能正常处理 + Filters: nil, + }, + } + + mockAuth.EXPECT().Authorization(gomock.Any(), gomock.Any()).Return(nil) + mockTemplateManager.EXPECT(). + List(gomock.Any(), req.GetPageNumber(), req.GetPageSize(), workspaceID, gomock.Any(), gomock.Any(), gomock.Any()). + DoAndReturn(func(_ context.Context, page, size int32, spaceID int64, filter *entity.ExptTemplateListFilter, orderBys []*entity.OrderBy, session *entity.Session) ([]*entity.ExptTemplate, int64, error) { + // 验证filter不为nil(即使Filters为nil,Convert也会返回一个空的filter对象) + assert.NotNil(t, filter) + // 验证默认排序 + assert.Len(t, orderBys, 1) + assert.Equal(t, entity.OrderByUpdatedAt, *orderBys[0].Field) + assert.False(t, *orderBys[0].IsAsc) + return []*entity.ExptTemplate{}, int64(0), nil + }) + + app := NewExperimentApplication( + nil, nil, nil, nil, nil, nil, nil, + mockAuth, mockUserInfo, mockEvalTargetSvc, nil, nil, nil, nil, nil, nil, mockTemplateManager, + ) + // 这个测试主要验证 FilterOption 不为 nil 时会调用 Convert + // 具体的转换逻辑在 filter convertor 的测试中覆盖 + _, err := app.ListExperimentTemplates(context.Background(), req) + assert.NoError(t, err) + }) +} + +func TestExperimentApplication_BatchGetExperimentResult_(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + // 创建 mock 对象 + mockAuth := rpcmocks.NewMockIAuthProvider(ctrl) + mockResultSvc := servicemocks.NewMockExptResultService(ctrl) + + // 测试数据 + validWorkspaceID := int64(123) + validExptID := int64(456) + validTotal := int64(10) + + tests := []struct { + name string + req *exptpb.BatchGetExperimentResultRequest + mockSetup func() + wantResp *exptpb.BatchGetExperimentResultResponse + wantErr bool + }{ + { + name: "successfully get experiment results", + req: &exptpb.BatchGetExperimentResultRequest{ + WorkspaceID: validWorkspaceID, + ExperimentIds: []int64{validExptID}, + PageNumber: gptr.Of(int32(1)), + PageSize: gptr.Of(int32(10)), + }, + mockSetup: func() { + // 模拟权限验证 + mockAuth.EXPECT(). + Authorization( + gomock.Any(), + gomock.Any(), + ).DoAndReturn(func(_ context.Context, param *rpc.AuthorizationParam) error { + assert.Equal(t, strconv.FormatInt(validWorkspaceID, 10), param.ObjectID) + assert.Equal(t, validWorkspaceID, param.SpaceID) + assert.Equal(t, rpc.AuthEntityType_Space, *param.ActionObjects[0].EntityType) + return nil + }) + mockResultSvc.EXPECT().MGetExperimentResult( + gomock.Any(), + gomock.Any(), + ).Return( + &entity.MGetExperimentReportResult{ + ColumnEvaluators: []*entity.ColumnEvaluator{ + {EvaluatorVersionID: 1, Name: gptr.Of("evaluator1")}, + }, + ColumnEvalSetFields: []*entity.ColumnEvalSetField{ + {Name: gptr.Of("field1"), ContentType: entity.ContentTypeText}, }, ExptColumnAnnotations: []*entity.ExptColumnAnnotation{ { @@ -3754,15 +4871,71 @@ func TestExperimentApplication_UpdateAnnotateRecord(t *testing.T) { // 模拟更新记录 mockAnnotateService.EXPECT(). UpdateAnnotateRecord(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). - Return(nil) + DoAndReturn(func(_ context.Context, _ int64, _ int64, recordDO *entity.AnnotateRecord) error { + // 验证 Score 被正确解析和四舍五入 + if recordDO.AnnotateData != nil && recordDO.AnnotateData.Score != nil { + assert.NotNil(t, recordDO.AnnotateData.Score) + } + return nil + }) + mockManager.EXPECT(). + Get(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). + Return(&entity.Experiment{}, nil) + }, + wantResp: &exptpb.UpdateAnnotateRecordResp{ + BaseResp: base.NewBaseResp(), + }, + wantErr: false, + }, { + name: "解析Score并四舍五入到两位小数", + req: &exptpb.UpdateAnnotateRecordReq{ + WorkspaceID: validWorkspaceID, + AnnotateRecordID: validRecordID, + AnnotateRecords: &expt.AnnotateRecord{ + Score: gptr.Of("0.87654321"), // 需要四舍五入到 0.88 + }, + }, + mockSetup: func() { mockManager.EXPECT(). Get(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). Return(&entity.Experiment{}, nil) + mockAuth.EXPECT(). + AuthorizationWithoutSPI(gomock.Any(), gomock.Any()). + Return(nil) + mockAnnotateService.EXPECT(). + UpdateAnnotateRecord(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). + DoAndReturn(func(_ context.Context, _ int64, _ int64, recordDO *entity.AnnotateRecord) error { + // 验证 Score 被正确解析和四舍五入 + assert.NotNil(t, recordDO.AnnotateData) + assert.NotNil(t, recordDO.AnnotateData.Score) + // 0.87654321 四舍五入到两位小数应该是 0.88 + assert.InDelta(t, 0.88, *recordDO.AnnotateData.Score, 0.001) + return nil + }) }, wantResp: &exptpb.UpdateAnnotateRecordResp{ BaseResp: base.NewBaseResp(), }, wantErr: false, + }, { + name: "Score解析失败,返回错误", + req: &exptpb.UpdateAnnotateRecordReq{ + WorkspaceID: validWorkspaceID, + AnnotateRecordID: validRecordID, + AnnotateRecords: &expt.AnnotateRecord{ + Score: gptr.Of("invalid_score"), + }, + }, + mockSetup: func() { + mockManager.EXPECT(). + Get(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). + Return(&entity.Experiment{}, nil) + mockAuth.EXPECT(). + AuthorizationWithoutSPI(gomock.Any(), gomock.Any()). + Return(nil) + }, + wantResp: nil, + wantErr: true, }, { name: "标注记录不存在", req: &exptpb.UpdateAnnotateRecordReq{ @@ -3787,6 +4960,67 @@ func TestExperimentApplication_UpdateAnnotateRecord(t *testing.T) { wantResp: nil, wantErr: true, wantCode: errno.ResourceNotFoundCode, + }, { + name: "解析Score并四舍五入到两位小数", + req: &exptpb.UpdateAnnotateRecordReq{ + WorkspaceID: validWorkspaceID, + AnnotateRecordID: validRecordID, + AnnotateRecords: &expt.AnnotateRecord{ + Score: gptr.Of("0.87654321"), // 需要四舍五入到 0.88 + }, + }, + mockSetup: func() { + mockManager.EXPECT(). + Get(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). + Return(&entity.Experiment{}, nil) + mockAuth.EXPECT(). + AuthorizationWithoutSPI(gomock.Any(), gomock.Any()). + Return(nil) + mockAnnotateService.EXPECT(). + UpdateAnnotateRecord(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). + DoAndReturn(func(_ context.Context, _ int64, _ int64, recordDO *entity.AnnotateRecord) error { + // 验证 Score 被正确解析和四舍五入 + assert.NotNil(t, recordDO.AnnotateData) + assert.NotNil(t, recordDO.AnnotateData.Score) + // 0.87654321 四舍五入到两位小数应该是 0.88 + assert.InDelta(t, 0.88, *recordDO.AnnotateData.Score, 0.001) + return nil + }) + }, + wantResp: &exptpb.UpdateAnnotateRecordResp{ + BaseResp: base.NewBaseResp(), + }, + wantErr: false, + }, { + name: "Score解析失败,返回错误", + req: &exptpb.UpdateAnnotateRecordReq{ + WorkspaceID: validWorkspaceID, + ExptID: int64(789), + ItemID: int64(111), + TurnID: int64(222), + AnnotateRecordID: validRecordID, + AnnotateRecords: &expt.AnnotateRecord{ + AnnotateRecordID: gptr.Of(validRecordID), + Score: gptr.Of("invalid_score"), + }, + }, + mockSetup: func() { + mockManager.EXPECT(). + Get(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). + DoAndReturn(func(_ context.Context, exptID int64, spaceID int64, session *entity.Session) (*entity.Experiment, error) { + return &entity.Experiment{ + ID: exptID, + SpaceID: spaceID, + CreatedBy: "user1", + }, nil + }) + mockAuth.EXPECT(). + AuthorizationWithoutSPI(gomock.Any(), gomock.Any()). + Return(nil) + }, + wantResp: nil, + wantErr: true, + wantCode: 0, // ParseFloat错误不会返回特定的错误码 }} for _, tt := range tests { @@ -3807,9 +5041,12 @@ func TestExperimentApplication_UpdateAnnotateRecord(t *testing.T) { // 验证结果 if tt.wantErr { assert.Error(t, err) - statusErr, ok := errorx.FromStatusError(err) - assert.True(t, ok) - assert.Equal(t, tt.wantCode, statusErr.Code()) + if tt.wantCode != 0 { + statusErr, ok := errorx.FromStatusError(err) + if ok { + assert.Equal(t, tt.wantCode, statusErr.Code()) + } + } return } @@ -3864,7 +5101,14 @@ func TestExperimentApplication_CreateAnnotateRecord(t *testing.T) { // 模拟创建记录 mockAnnotateService.EXPECT(). SaveAnnotateRecord(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). - Return(nil) + DoAndReturn(func(_ context.Context, _ int64, _ int64, _ int64, recordDO *entity.AnnotateRecord) error { + // 验证 Score 被正确解析和四舍五入 + if recordDO.AnnotateData != nil && recordDO.AnnotateData.Score != nil { + // Score 应该已经被四舍五入到两位小数 + assert.NotNil(t, recordDO.AnnotateData.Score) + } + return nil + }) mockManager.EXPECT(). Get(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). Return(&entity.Experiment{}, nil) @@ -3892,6 +5136,65 @@ func TestExperimentApplication_CreateAnnotateRecord(t *testing.T) { wantResp: nil, wantErr: true, wantCode: errno.CommonNoPermissionCode, + }, { + name: "解析Score并四舍五入到两位小数", + req: &exptpb.CreateAnnotateRecordReq{ + WorkspaceID: validWorkspaceID, + ExptID: validExptID, + ItemID: validItemID, + AnnotateRecord: &expt.AnnotateRecord{ + Score: gptr.Of("0.87654321"), // 需要四舍五入到 0.88 + }, + }, + mockSetup: func() { + mockManager.EXPECT(). + Get(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). + Return(&entity.Experiment{}, nil) + mockAuth.EXPECT(). + AuthorizationWithoutSPI(gomock.Any(), gomock.Any()). + Return(nil) + mockIDGen.EXPECT(). + GenID(gomock.Any()). + Return(validRecordID, nil) + mockAnnotateService.EXPECT(). + SaveAnnotateRecord(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). + DoAndReturn(func(_ context.Context, _ int64, _ int64, _ int64, recordDO *entity.AnnotateRecord) error { + // 验证 Score 被正确解析和四舍五入 + assert.NotNil(t, recordDO.AnnotateData) + assert.NotNil(t, recordDO.AnnotateData.Score) + // 0.87654321 四舍五入到两位小数应该是 0.88 + assert.InDelta(t, 0.88, *recordDO.AnnotateData.Score, 0.001) + return nil + }) + }, + wantResp: &exptpb.CreateAnnotateRecordResp{ + AnnotateRecordID: validRecordID, + BaseResp: base.NewBaseResp(), + }, + wantErr: false, + }, { + name: "Score解析失败,返回错误", + req: &exptpb.CreateAnnotateRecordReq{ + WorkspaceID: validWorkspaceID, + ExptID: validExptID, + ItemID: validItemID, + AnnotateRecord: &expt.AnnotateRecord{ + Score: gptr.Of("invalid_score"), + }, + }, + mockSetup: func() { + mockManager.EXPECT(). + Get(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). + Return(&entity.Experiment{}, nil) + mockAuth.EXPECT(). + AuthorizationWithoutSPI(gomock.Any(), gomock.Any()). + Return(nil) + mockIDGen.EXPECT(). + GenID(gomock.Any()). + Return(validRecordID, nil) + }, + wantResp: nil, + wantErr: true, }} for _, tt := range tests { diff --git a/backend/modules/evaluation/application/wire.go b/backend/modules/evaluation/application/wire.go index ae13315b6..28f89417f 100644 --- a/backend/modules/evaluation/application/wire.go +++ b/backend/modules/evaluation/application/wire.go @@ -32,6 +32,7 @@ import ( "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/foundation/file/fileservice" "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/foundation/user/userservice" "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/llm/runtime/llmruntimeservice" + "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/observability/observabilitytraceservice" "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/promptmanageservice" "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/component/rpc" "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/component/userinfo" @@ -45,6 +46,7 @@ import ( foundationrpc "github.com/coze-dev/coze-loop/backend/modules/evaluation/infra/rpc/foundation" notifyrpc "github.com/coze-dev/coze-loop/backend/modules/evaluation/infra/rpc/notify" tagrpc "github.com/coze-dev/coze-loop/backend/modules/evaluation/infra/rpc/tag" + trajectoryrpc "github.com/coze-dev/coze-loop/backend/modules/evaluation/infra/rpc/trajectory" evalconf "github.com/coze-dev/coze-loop/backend/modules/evaluation/pkg/conf" "github.com/coze-dev/coze-loop/backend/pkg/conf" ) @@ -78,10 +80,19 @@ var ( NewEvaluatorHandlerImpl, // Domain Service Sets domainservice.EvaluatorDomainServiceSet, + domainservice.EvaluationSetDomainServiceSet, + domainservice.TargetDomainServiceSet, + domainservice.NewExptResultService, + domainservice.NewEvaluationAnalysisService, // Infrastructure Sets foundationrpc.FoundationRPCSet, + tagrpc.TagRPCSet, + trajectoryrpc.TrajectoryRPCSet, userinfo.NewUserInfoServiceImpl, experimentrepo.ExperimentRepoSet, + experimentmetrics.ExperimentMetricsSet, + evaltargetmetrics.EvalTargetMetricsSet, + evalconf.NewConfiger, flagSet, ) @@ -167,6 +178,12 @@ func InitEvaluatorApplication( limiterFactory limiter.IRateLimiterFactory, fileClient fileservice.Client, plainLimiterFactory limiter.IPlainRateLimiterFactory, + ckDb ck.Provider, + tagClient tagservice.Client, + promptClient promptmanageservice.Client, + pec promptexecuteservice.Client, + dataClient datasetservice.Client, + tracerFactory func() observabilitytraceservice.Client, ) (evaluation.EvaluatorService, error) { wire.Build( evaluatorSet, diff --git a/backend/modules/evaluation/application/wire_gen.go b/backend/modules/evaluation/application/wire_gen.go index df7288f93..cd67b3268 100644 --- a/backend/modules/evaluation/application/wire_gen.go +++ b/backend/modules/evaluation/application/wire_gen.go @@ -28,6 +28,7 @@ import ( "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/foundation/file/fileservice" "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/foundation/user/userservice" "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/llm/runtime/llmruntimeservice" + "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/observability/observabilitytraceservice" "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/prompt/promptmanageservice" "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/component/rpc" "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/component/userinfo" @@ -55,6 +56,7 @@ import ( "github.com/coze-dev/coze-loop/backend/modules/evaluation/infra/rpc/notify" "github.com/coze-dev/coze-loop/backend/modules/evaluation/infra/rpc/prompt" "github.com/coze-dev/coze-loop/backend/modules/evaluation/infra/rpc/tag" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/infra/rpc/trajectory" "github.com/coze-dev/coze-loop/backend/modules/evaluation/infra/runtime" conf2 "github.com/coze-dev/coze-loop/backend/modules/evaluation/pkg/conf" "github.com/coze-dev/coze-loop/backend/pkg/conf" @@ -105,7 +107,7 @@ func InitExperimentApplication(ctx context.Context, idgen2 idgen.IIDGenerator, d } iUserProvider := foundation.NewUserRPCProvider(uc) userInfoService := userinfo.NewUserInfoServiceImpl(iUserProvider) - evaluatorRecordService := service.NewEvaluatorRecordServiceImpl(idgen2, iEvaluatorRecordRepo, exptEventPublisher, evaluatorEventPublisher, userInfoService, iExperimentRepo) + evaluatorRecordService := service.NewEvaluatorRecordServiceImpl(idgen2, iEvaluatorRecordRepo, exptEventPublisher, evaluatorEventPublisher, userInfoService, iExperimentRepo, iExptTurnResultRepo) iTagRPCAdapter := tag.NewTagRPCProvider(tagClient) iExptTurnAnnotateRecordRefDAO := mysql.NewExptTurnAnnotateRecordRefDAO(db2) iExptTurnResultTagRefDAO := mysql.NewExptTurnResultTagRefDAO(db2) @@ -142,8 +144,12 @@ func InitExperimentApplication(ctx context.Context, idgen2 idgen.IIDGenerator, d iExptRunLogRepo := experiment.NewExptRunLogRepo(iExptRunLogDAO) iQuotaDAO := dao.NewQuotaDAO(cmdable) quotaRepo := experiment.NewQuotaService(iQuotaDAO, iLocker) - iExptManager := service.NewExptManager(exptResultService, iExperimentRepo, iExptRunLogRepo, iExptStatsRepo, iExptItemResultRepo, iExptTurnResultRepo, componentIConfiger, quotaRepo, iLocker, idempotentService, exptEventPublisher, auditClient, idgen2, exptMetric, iLatestWriteTracker, evaluationSetVersionService, iEvaluationSetService, iEvalTargetService, serviceEvaluatorService, benefitSvc, exptAggrResultService) - schedulerModeFactory := service.NewSchedulerModeFactory(iExptManager, iExptItemResultRepo, iExptStatsRepo, iExptTurnResultRepo, idgen2, evaluationSetItemService, iExperimentRepo, idempotentService, componentIConfiger, exptEventPublisher, evaluatorRecordService, exptResultService) + iExptTemplateDAO := mysql.NewExptTemplateDAO(db2) + iExptTemplateEvaluatorRefDAO := mysql.NewExptTemplateEvaluatorRefDAO(db2) + iExptTemplateRepo := experiment.NewExptTemplateRepo(iExptTemplateDAO, iExptTemplateEvaluatorRefDAO, idgen2) + iExptTemplateManager := service.NewExptTemplateManager(iExptTemplateRepo, idgen2, serviceEvaluatorService, iEvalTargetService, iEvaluationSetService, evaluationSetVersionService, iLatestWriteTracker) + iExptManager := service.NewExptManager(exptResultService, iExperimentRepo, iExptRunLogRepo, iExptStatsRepo, iExptItemResultRepo, iExptTurnResultRepo, componentIConfiger, quotaRepo, iLocker, idempotentService, exptEventPublisher, auditClient, idgen2, exptMetric, iLatestWriteTracker, evaluationSetVersionService, iEvaluationSetService, iEvalTargetService, serviceEvaluatorService, benefitSvc, exptAggrResultService, iExptTemplateRepo, iExptTemplateManager) + schedulerModeFactory := service.NewSchedulerModeFactory(iExptManager, iExptItemResultRepo, iExptStatsRepo, iExptTurnResultRepo, idgen2, evaluationSetItemService, iExperimentRepo, idempotentService, componentIConfiger, exptEventPublisher, evaluatorRecordService, exptResultService, iExptTemplateManager) exptSchedulerEvent := service.NewExptSchedulerSvc(iExptManager, iExperimentRepo, iExptItemResultRepo, iExptTurnResultRepo, iExptStatsRepo, iExptRunLogRepo, idempotentService, componentIConfiger, quotaRepo, iLocker, exptEventPublisher, auditClient, exptMetric, exptResultService, idgen2, evaluationSetItemService, schedulerModeFactory) iEvalAsyncDAO := dao.NewEvalAsyncDAO(cmdable) iEvalAsyncRepo := experiment.NewEvalAsyncRepo(iEvalAsyncDAO) @@ -161,11 +167,11 @@ func InitExperimentApplication(ctx context.Context, idgen2 idgen.IIDGenerator, d iAgentAdapter := agent.NewAgentAdapter() iNotifyRPCAdapter := notify.NewNotifyRPCAdapter() iExptInsightAnalysisService := service.NewInsightAnalysisService(iExptInsightAnalysisRecordRepo, exptEventPublisher, objectStorage, iAgentAdapter, iExptResultExportService, iNotifyRPCAdapter, iUserProvider, iExperimentRepo, iEvalTargetRepo) - iExperimentApplication := NewExperimentApplication(exptAggrResultService, exptResultService, iExptManager, exptSchedulerEvent, exptItemEvalEvent, idgen2, componentIConfiger, iAuthProvider, userInfoService, iEvalTargetService, evaluationSetItemService, iExptAnnotateService, iTagRPCAdapter, iExptResultExportService, iExptInsightAnalysisService, serviceEvaluatorService) + iExperimentApplication := NewExperimentApplication(exptAggrResultService, exptResultService, iExptManager, exptSchedulerEvent, exptItemEvalEvent, idgen2, componentIConfiger, iAuthProvider, userInfoService, iEvalTargetService, evaluationSetItemService, iExptAnnotateService, iTagRPCAdapter, iExptResultExportService, iExptInsightAnalysisService, serviceEvaluatorService, iExptTemplateManager) return iExperimentApplication, nil } -func InitEvaluatorApplication(ctx context.Context, idgen2 idgen.IIDGenerator, authClient authservice.Client, db2 db.Provider, configFactory conf.IConfigLoaderFactory, rmqFactory mq.IFactory, llmClient llmruntimeservice.Client, meter metrics.Meter, userClient userservice.Client, auditClient audit.IAuditService, cmdable redis.Cmdable, benefitSvc benefit.IBenefitService, limiterFactory limiter.IRateLimiterFactory, fileClient fileservice.Client, plainLimiterFactory limiter.IPlainRateLimiterFactory) (evaluation.EvaluatorService, error) { +func InitEvaluatorApplication(ctx context.Context, idgen2 idgen.IIDGenerator, authClient authservice.Client, db2 db.Provider, configFactory conf.IConfigLoaderFactory, rmqFactory mq.IFactory, llmClient llmruntimeservice.Client, meter metrics.Meter, userClient userservice.Client, auditClient audit.IAuditService, cmdable redis.Cmdable, benefitSvc benefit.IBenefitService, limiterFactory limiter.IRateLimiterFactory, fileClient fileservice.Client, plainLimiterFactory limiter.IPlainRateLimiterFactory, ckDb ck.Provider, tagClient tagservice.Client, promptClient promptmanageservice.Client, pec promptexecuteservice.Client, dataClient datasetservice.Client, tracerFactory func() observabilitytraceservice.Client) (evaluation.EvaluatorService, error) { iConfiger := conf2.NewEvaluatorConfiger(configFactory) iAuthProvider := foundation.NewAuthRPCProvider(authClient) rateLimiter := evaluator.NewRateLimiterImpl(ctx, limiterFactory, iConfiger) @@ -202,11 +208,46 @@ func InitEvaluatorApplication(ctx context.Context, idgen2 idgen.IIDGenerator, au iExptDAO := mysql.NewExptDAO(db2) iExptEvaluatorRefDAO := mysql.NewExptEvaluatorRefDAO(db2) iExperimentRepo := experiment.NewExptRepo(iExptDAO, iExptEvaluatorRefDAO, idgen2) - evaluatorRecordService := service.NewEvaluatorRecordServiceImpl(idgen2, iEvaluatorRecordRepo, exptEventPublisher, evaluatorEventPublisher, userInfoService, iExperimentRepo) + exptTurnResultDAO := mysql.NewExptTurnResultDAO(db2) + iExptTurnEvaluatorResultRefDAO := mysql.NewExptTurnEvaluatorResultRefDAO(db2) + iExptTurnResultRepo := experiment.NewExptTurnResultRepo(idgen2, exptTurnResultDAO, iExptTurnEvaluatorResultRefDAO) + evaluatorRecordService := service.NewEvaluatorRecordServiceImpl(idgen2, iEvaluatorRecordRepo, exptEventPublisher, evaluatorEventPublisher, userInfoService, iExperimentRepo, iExptTurnResultRepo) evaluatorTemplateRepo := evaluator.NewEvaluatorTemplateRepo(evaluatorTagDAO, evaluatorTemplateDAO, idgen2) evaluatorTemplateService := service.NewEvaluatorTemplateService(evaluatorTemplateRepo) iFileProvider := foundation.NewFileRPCProvider(fileClient) - evaluationEvaluatorService := NewEvaluatorHandlerImpl(idgen2, iConfiger, iAuthProvider, evaluatorService, evaluatorRecordService, evaluatorTemplateService, evaluatorExecMetrics, userInfoService, auditClient, benefitSvc, iFileProvider, v) + iExptItemResultDAO := mysql.NewExptItemResultDAO(db2) + iExptItemResultRepo := experiment.NewExptItemResultRepo(iExptItemResultDAO) + iExptTurnAnnotateRecordRefDAO := mysql.NewExptTurnAnnotateRecordRefDAO(db2) + iExptTurnResultTagRefDAO := mysql.NewExptTurnResultTagRefDAO(db2) + iAnnotateRecordDAO := mysql.NewAnnotateRecordDAO(db2) + iExptAnnotateRepo := experiment.NewExptAnnotateRepo(iExptTurnAnnotateRecordRefDAO, iExptTurnResultTagRefDAO, iAnnotateRecordDAO, idgen2) + iExptStatsDAO := mysql.NewExptStatsDAO(db2) + iExptStatsRepo := experiment.NewExptStatsRepo(iExptStatsDAO) + exptMetric := metrics2.NewExperimentMetric(meter) + componentIConfiger, err := conf2.NewConfiger(configFactory) + if err != nil { + return nil, err + } + iExptTurnResultFilterDAO := ck2.NewExptTurnResultFilterDAO(ckDb, componentIConfiger) + iExptTurnResultFilterKeyMappingDAO := mysql.NewExptTurnResultFilterKeyMappingDAO(db2) + iExptTurnResultFilterRepo := experiment.NewExptTurnResultFilterRepo(iExptTurnResultFilterDAO, iExptTurnResultFilterKeyMappingDAO) + evalTargetDAO := mysql3.NewEvalTargetDAO(db2) + evalTargetVersionDAO := mysql3.NewEvalTargetVersionDAO(db2) + evalTargetRecordDAO := mysql3.NewEvalTargetRecordDAO(db2) + iEvalTargetRepo := target.NewEvalTargetRepo(idgen2, db2, evalTargetDAO, evalTargetVersionDAO, evalTargetRecordDAO, iLatestWriteTracker) + evalTargetMetrics := metrics3.NewEvalTargetMetrics(meter) + iPromptRPCAdapter := prompt.NewPromptRPCAdapter(promptClient, pec) + v2 := service.NewSourceTargetOperators(iPromptRPCAdapter) + iTrajectoryAdapter := trajectory.NewAdapter(tracerFactory) + iEvalTargetService := service.NewEvalTargetServiceImpl(iEvalTargetRepo, idgen2, evalTargetMetrics, v2, iTrajectoryAdapter, componentIConfiger) + iDatasetRPCAdapter := data.NewDatasetRPCAdapter(dataClient) + evaluationSetVersionService := service.NewEvaluationSetVersionServiceImpl(iDatasetRPCAdapter) + iEvaluationSetService := service.NewEvaluationSetServiceImpl(iDatasetRPCAdapter) + evaluationSetItemService := service.NewEvaluationSetItemServiceImpl(iDatasetRPCAdapter) + iTagRPCAdapter := tag.NewTagRPCProvider(tagClient) + iEvaluationAnalysisService := service.NewEvaluationAnalysisService() + exptResultService := service.NewExptResultService(iExptItemResultRepo, iExptTurnResultRepo, iExptAnnotateRepo, iExptStatsRepo, iExperimentRepo, exptMetric, iLatestWriteTracker, idgen2, iExptTurnResultFilterRepo, evaluatorService, iEvalTargetService, evaluationSetVersionService, iEvaluationSetService, evaluatorRecordService, evaluationSetItemService, exptEventPublisher, iTagRPCAdapter, iEvaluationAnalysisService) + evaluationEvaluatorService := NewEvaluatorHandlerImpl(idgen2, iConfiger, iAuthProvider, evaluatorService, evaluatorRecordService, evaluatorTemplateService, evaluatorExecMetrics, userInfoService, auditClient, benefitSvc, iFileProvider, v, exptResultService) return evaluationEvaluatorService, nil } @@ -245,7 +286,7 @@ func InitEvalTargetApplication(ctx context.Context, idgen2 idgen.IIDGenerator, d return evalTargetService, nil } -func InitEvalOpenAPIApplication(ctx context.Context, configFactory conf.IConfigLoaderFactory, rmqFactory mq.IFactory, cmdable redis.Cmdable, idgen2 idgen.IIDGenerator, db2 db.Provider, client promptmanageservice.Client, executeClient promptexecuteservice.Client, authClient authservice.Client, meter metrics.Meter, dataClient datasetservice.Client, userClient userservice.Client, llmClient llmruntimeservice.Client, tagClient tagservice.Client, limiterFactory limiter.IRateLimiterFactory, objectStorage fileserver.ObjectStorage, auditClient audit.IAuditService, benefitService benefit.IBenefitService, ckProvider ck.Provider, plainLimiterFactory limiter.IPlainRateLimiterFactory, trajectoryAdapter rpc.ITrajectoryAdapter) (IEvalOpenAPIApplication, error) { +func InitEvalOpenAPIApplication(ctx context.Context, configFactory conf.IConfigLoaderFactory, rmqFactory mq.IFactory, cmdable redis.Cmdable, idgen2 idgen.IIDGenerator, db2 db.Provider, client promptmanageservice.Client, executeClient promptexecuteservice.Client, authClient authservice.Client, meter metrics.Meter, dataClient datasetservice.Client, userClient userservice.Client, llmClient llmruntimeservice.Client, tagClient tagservice.Client, limiterFactory limiter.IRateLimiterFactory, objectStorage fileserver.ObjectStorage, auditClient audit.IAuditService, benefitService benefit.IBenefitService, ckProvider ck.Provider, plainLimiterFactory limiter.IPlainRateLimiterFactory, trajectoryAdapter rpc.ITrajectoryAdapter) (evaluation.EvalOpenAPIService, error) { iEvalAsyncDAO := dao.NewEvalAsyncDAO(cmdable) iEvalAsyncRepo := experiment.NewEvalAsyncRepo(iEvalAsyncDAO) exptEventPublisher, err := producer.NewExptEventPublisher(ctx, configFactory, rmqFactory) @@ -308,7 +349,7 @@ func InitEvalOpenAPIApplication(ctx context.Context, configFactory conf.IConfigL if err != nil { return nil, err } - evaluatorRecordService := service.NewEvaluatorRecordServiceImpl(idgen2, iEvaluatorRecordRepo, exptEventPublisher, evaluatorEventPublisher, userInfoService, iExperimentRepo) + evaluatorRecordService := service.NewEvaluatorRecordServiceImpl(idgen2, iEvaluatorRecordRepo, exptEventPublisher, evaluatorEventPublisher, userInfoService, iExperimentRepo, iExptTurnResultRepo) iTagRPCAdapter := tag.NewTagRPCProvider(tagClient) iExptTurnAnnotateRecordRefDAO := mysql.NewExptTurnAnnotateRecordRefDAO(db2) iExptTurnResultTagRefDAO := mysql.NewExptTurnResultTagRefDAO(db2) @@ -329,8 +370,12 @@ func InitEvalOpenAPIApplication(ctx context.Context, configFactory conf.IConfigL iExptRunLogRepo := experiment.NewExptRunLogRepo(iExptRunLogDAO) iQuotaDAO := dao.NewQuotaDAO(cmdable) quotaRepo := experiment.NewQuotaService(iQuotaDAO, iLocker) - iExptManager := service.NewExptManager(exptResultService, iExperimentRepo, iExptRunLogRepo, iExptStatsRepo, iExptItemResultRepo, iExptTurnResultRepo, iConfiger, quotaRepo, iLocker, idempotentService, exptEventPublisher, auditClient, idgen2, exptMetric, iLatestWriteTracker, evaluationSetVersionService, iEvaluationSetService, iEvalTargetService, evaluatorService, benefitService, exptAggrResultService) - schedulerModeFactory := service.NewSchedulerModeFactory(iExptManager, iExptItemResultRepo, iExptStatsRepo, iExptTurnResultRepo, idgen2, evaluationSetItemService, iExperimentRepo, idempotentService, iConfiger, exptEventPublisher, evaluatorRecordService, exptResultService) + iExptTemplateDAO := mysql.NewExptTemplateDAO(db2) + iExptTemplateEvaluatorRefDAO := mysql.NewExptTemplateEvaluatorRefDAO(db2) + iExptTemplateRepo := experiment.NewExptTemplateRepo(iExptTemplateDAO, iExptTemplateEvaluatorRefDAO, idgen2) + iExptTemplateManager := service.NewExptTemplateManager(iExptTemplateRepo, idgen2, evaluatorService, iEvalTargetService, iEvaluationSetService, evaluationSetVersionService, iLatestWriteTracker) + iExptManager := service.NewExptManager(exptResultService, iExperimentRepo, iExptRunLogRepo, iExptStatsRepo, iExptItemResultRepo, iExptTurnResultRepo, iConfiger, quotaRepo, iLocker, idempotentService, exptEventPublisher, auditClient, idgen2, exptMetric, iLatestWriteTracker, evaluationSetVersionService, iEvaluationSetService, iEvalTargetService, evaluatorService, benefitService, exptAggrResultService, iExptTemplateRepo, iExptTemplateManager) + schedulerModeFactory := service.NewSchedulerModeFactory(iExptManager, iExptItemResultRepo, iExptStatsRepo, iExptTurnResultRepo, idgen2, evaluationSetItemService, iExperimentRepo, idempotentService, iConfiger, exptEventPublisher, evaluatorRecordService, exptResultService, iExptTemplateManager) exptSchedulerEvent := service.NewExptSchedulerSvc(iExptManager, iExperimentRepo, iExptItemResultRepo, iExptTurnResultRepo, iExptStatsRepo, iExptRunLogRepo, idempotentService, iConfiger, quotaRepo, iLocker, exptEventPublisher, auditClient, exptMetric, exptResultService, idgen2, evaluationSetItemService, schedulerModeFactory) exptItemEvalEvent := service.NewExptRecordEvalService(iExptManager, iConfiger, exptEventPublisher, iExptItemResultRepo, iExptTurnResultRepo, iExptStatsRepo, iExperimentRepo, quotaRepo, iLocker, idempotentService, auditClient, exptMetric, exptResultService, iEvalTargetService, evaluationSetItemService, evaluatorRecordService, evaluatorService, idgen2, benefitService, iEvalAsyncRepo) iExptAnnotateService := service.NewExptAnnotateService(db2, iExptAnnotateRepo, iExptTurnResultRepo, exptEventPublisher, evaluationSetItemService, iExperimentRepo, exptResultService, iExptTurnResultFilterRepo, iExptAggrResultRepo) @@ -345,9 +390,9 @@ func InitEvalOpenAPIApplication(ctx context.Context, configFactory conf.IConfigL iAgentAdapter := agent.NewAgentAdapter() iNotifyRPCAdapter := notify.NewNotifyRPCAdapter() iExptInsightAnalysisService := service.NewInsightAnalysisService(iExptInsightAnalysisRecordRepo, exptEventPublisher, objectStorage, iAgentAdapter, iExptResultExportService, iNotifyRPCAdapter, iUserProvider, iExperimentRepo, iEvalTargetRepo) - iExperimentApplication := NewExperimentApplication(exptAggrResultService, exptResultService, iExptManager, exptSchedulerEvent, exptItemEvalEvent, idgen2, iConfiger, iAuthProvider, userInfoService, iEvalTargetService, evaluationSetItemService, iExptAnnotateService, iTagRPCAdapter, iExptResultExportService, iExptInsightAnalysisService, evaluatorService) - v3 := NewEvalOpenAPIApplication(iEvalAsyncRepo, exptEventPublisher, iEvalTargetService, iAuthProvider, iEvaluationSetService, evaluationSetVersionService, evaluationSetItemService, evaluationSetSchemaService, openAPIEvaluationMetrics, userInfoService, iExperimentApplication, iExptManager, exptResultService, exptAggrResultService, evaluatorService, iConfiger) - return v3, nil + iExperimentApplication := NewExperimentApplication(exptAggrResultService, exptResultService, iExptManager, exptSchedulerEvent, exptItemEvalEvent, idgen2, iConfiger, iAuthProvider, userInfoService, iEvalTargetService, evaluationSetItemService, iExptAnnotateService, iTagRPCAdapter, iExptResultExportService, iExptInsightAnalysisService, evaluatorService, iExptTemplateManager) + evalOpenAPIService := NewEvalOpenAPIApplication(iEvalAsyncRepo, exptEventPublisher, iEvalTargetService, iAuthProvider, iEvaluationSetService, evaluationSetVersionService, evaluationSetItemService, evaluationSetSchemaService, openAPIEvaluationMetrics, userInfoService, iExperimentApplication, iExptManager, exptResultService, exptAggrResultService, evaluatorService, iConfiger) + return evalOpenAPIService, nil } // wire.go: @@ -361,7 +406,7 @@ var ( ) evaluatorSet = wire.NewSet( - NewEvaluatorHandlerImpl, service.EvaluatorDomainServiceSet, foundation.FoundationRPCSet, userinfo.NewUserInfoServiceImpl, experiment.ExperimentRepoSet, flagSet, + NewEvaluatorHandlerImpl, service.EvaluatorDomainServiceSet, service.EvaluationSetDomainServiceSet, service.TargetDomainServiceSet, service.NewExptResultService, service.NewEvaluationAnalysisService, foundation.FoundationRPCSet, tag.TagRPCSet, trajectory.TrajectoryRPCSet, userinfo.NewUserInfoServiceImpl, experiment.ExperimentRepoSet, metrics2.ExperimentMetricsSet, metrics3.EvalTargetMetricsSet, conf2.NewConfiger, flagSet, ) evaluationSetSet = wire.NewSet( diff --git a/backend/modules/evaluation/consts/experiment.go b/backend/modules/evaluation/consts/experiment.go index 76396d838..59930c013 100644 --- a/backend/modules/evaluation/consts/experiment.go +++ b/backend/modules/evaluation/consts/experiment.go @@ -12,6 +12,9 @@ const ( ActionReadExpt = "listLoopEvaluationExperiment" ActionDebugEvalTarget = "debugLoopEvalTarget" + + ActionCreateExptTemplate = "createLoopExptTemplate" + ActionReadExptTemplate = "listLoopExptTemplate" ) const ( diff --git a/backend/modules/evaluation/domain/component/rpc/auth.go b/backend/modules/evaluation/domain/component/rpc/auth.go index 9a54d365a..6f6015234 100644 --- a/backend/modules/evaluation/domain/component/rpc/auth.go +++ b/backend/modules/evaluation/domain/component/rpc/auth.go @@ -41,6 +41,8 @@ const ( AuthEntityType_EvaluationExperiment = "EvaluationExperiment" + AuthEntityType_EvaluationExptTemplate = "EvaluationExptTemplate" + AuthEntityType_EvaluationSet = "EvaluationSet" AuthEntityType_Evaluator = "Evaluator" diff --git a/backend/modules/evaluation/domain/entity/evaluation_set.go b/backend/modules/evaluation/domain/entity/evaluation_set.go index 27a9cd942..8a70254be 100644 --- a/backend/modules/evaluation/domain/entity/evaluation_set.go +++ b/backend/modules/evaluation/domain/entity/evaluation_set.go @@ -93,7 +93,7 @@ func (p *DatasetStatus) Scan(value interface{}) (err error) { var result sql.NullInt64 err = result.Scan(value) *p = DatasetStatus(result.Int64) - return + return err } func (p *DatasetStatus) Value() (driver.Value, error) { diff --git a/backend/modules/evaluation/domain/entity/evaluation_set_schema.go b/backend/modules/evaluation/domain/entity/evaluation_set_schema.go index 625902dcd..cf55a49d0 100644 --- a/backend/modules/evaluation/domain/entity/evaluation_set_schema.go +++ b/backend/modules/evaluation/domain/entity/evaluation_set_schema.go @@ -123,7 +123,7 @@ func (p *FieldDisplayFormat) Scan(value interface{}) (err error) { var result sql.NullInt64 err = result.Scan(value) *p = FieldDisplayFormat(result.Int64) - return + return err } func (p *FieldDisplayFormat) Value() (driver.Value, error) { @@ -165,7 +165,7 @@ func (p *FieldStatus) Scan(value interface{}) (err error) { var result sql.NullInt64 err = result.Scan(value) *p = FieldStatus(result.Int64) - return + return err } func (p *FieldStatus) Value() (driver.Value, error) { diff --git a/backend/modules/evaluation/domain/entity/expt.go b/backend/modules/evaluation/domain/entity/expt.go index e83714e30..aacc4dcc5 100644 --- a/backend/modules/evaluation/domain/entity/expt.go +++ b/backend/modules/evaluation/domain/entity/expt.go @@ -108,6 +108,8 @@ type Experiment struct { Stats *ExptStats AggregateResult *ExptAggregateResult + + ExptTemplateMeta *ExptTemplateMeta // 关联的实验模板基础信息(仅在查询时按需填充,包含模板 ID) } func (e *Experiment) ToEvaluatorRefDO() []*ExptEvaluatorRef { @@ -191,6 +193,7 @@ type TargetIngressConf struct { type EvaluatorsConf struct { EvaluatorConcurNum *int EvaluatorConf []*EvaluatorConf + EnableScoreWeight bool } func (e *EvaluatorsConf) Valid(ctx context.Context) error { @@ -224,8 +227,11 @@ func (e *EvaluatorsConf) GetEvaluatorConcurNum() int { type EvaluatorConf struct { EvaluatorVersionID int64 + EvaluatorID int64 // 评估器ID(用于匹配回填 evaluator_version_id) + Version string // 评估器版本号(用于匹配回填 evaluator_version_id) IngressConf *EvaluatorIngressConf RunConf *EvaluatorRunConfig + ScoreWeight *float64 } func (e *EvaluatorConf) Valid(ctx context.Context) error { diff --git a/backend/modules/evaluation/domain/entity/expt_result.go b/backend/modules/evaluation/domain/entity/expt_result.go index b5feaae05..fa34fc6c4 100644 --- a/backend/modules/evaluation/domain/entity/expt_result.go +++ b/backend/modules/evaluation/domain/entity/expt_result.go @@ -35,6 +35,9 @@ const ( // 标注项, FieldKey为TagKeyID FieldType_Annotation FieldType = 23 + // 加权得分, FieldKey为expt_id + FieldType_WeightedScore FieldType = 24 + FieldType_TargetLatency FieldType = 50 FieldType_TargetInputTokens FieldType = 51 FieldType_TargetOutputTokens FieldType = 52 @@ -139,16 +142,17 @@ func (a AggregatorResult) GetScore() float64 { } type ExptAggrResult struct { - ID int64 - SpaceID int64 - ExperimentID int64 - FieldType int32 - FieldKey string - Score float64 - AggrResult []byte - Version int64 - Status int32 - UpdateAt *time.Time + ID int64 + SpaceID int64 + ExperimentID int64 + FieldType int32 + FieldKey string + Score float64 + AggrResult []byte + Version int64 + Status int32 + UpdateAt *time.Time + WeightedScore float64 } func (e *ExptAggrResult) AggrResEqual(other *ExptAggrResult) bool { @@ -180,6 +184,8 @@ type ExptAggregateResult struct { AnnotationResults map[int64]*AnnotationAggregateResult TargetResults *EvalTargetMtrAggrResult UpdateTime *time.Time + // WeightedResults 加权聚合结果列表,对每种聚合指标(Average、p99 等)给出加权后的结果 + WeightedResults []*AggregatorResult } type EvaluatorAggregateResult struct { @@ -288,6 +294,8 @@ type ExptTurnResult struct { EvaluatorResults *EvaluatorResults ErrMsg string TurnIdx int32 + + WeightedScore *float64 // 使用指针类型,nil 表示未计算,非 nil 表示已计算(可能为 0) } func (tr *ExptTurnResult) ToRunLogDO() *ExptTurnResultRunLog { @@ -385,22 +393,61 @@ type ExptListFilter struct { } type ExptFilterFields struct { + CreatedBy []string + UpdatedBy []string + Status []int64 + EvalSetIDs []int64 + TargetIDs []int64 + EvaluatorIDs []int64 + TargetType []int64 + ExptType []int64 + SourceType []int64 + SourceID []string + ExptTemplateIDs []int64 +} + +func (e *ExptFilterFields) IsValid() bool { + if e == nil { + return true + } + for _, slice := range [][]int64{e.Status, e.EvalSetIDs, e.TargetIDs, e.EvaluatorIDs, e.TargetType, e.ExptTemplateIDs} { + for _, item := range slice { + if item < 0 { + return false + } + } + } + for _, item := range e.CreatedBy { + if len(item) <= 0 { + return false + } + } + return true +} + +// ExptTemplateListFilter 实验模板列表筛选器 +type ExptTemplateListFilter struct { + FuzzyName string + Includes *ExptTemplateFilterFields + Excludes *ExptTemplateFilterFields +} + +// ExptTemplateFilterFields 实验模板筛选字段 +type ExptTemplateFilterFields struct { CreatedBy []string - Status []int64 + UpdatedBy []string EvalSetIDs []int64 TargetIDs []int64 EvaluatorIDs []int64 TargetType []int64 ExptType []int64 - SourceType []int64 - SourceID []string } -func (e *ExptFilterFields) IsValid() bool { +func (e *ExptTemplateFilterFields) IsValid() bool { if e == nil { return true } - for _, slice := range [][]int64{e.Status, e.EvalSetIDs, e.TargetIDs, e.EvaluatorIDs, e.TargetType} { + for _, slice := range [][]int64{e.EvalSetIDs, e.TargetIDs, e.EvaluatorIDs, e.TargetType, e.ExptType} { for _, item := range slice { if item < 0 { return false @@ -481,12 +528,13 @@ func NewSession(ctx context.Context) *Session { } type ExptTurnResultFilterMapCond struct { - EvalTargetDataFilters []*FieldFilter - EvaluatorScoreFilters []*FieldFilter - AnnotationFloatFilters []*FieldFilter - AnnotationBoolFilters []*FieldFilter - AnnotationStringFilters []*FieldFilter - EvalTargetMetricsFilters []*FieldFilter + EvalTargetDataFilters []*FieldFilter + EvaluatorScoreFilters []*FieldFilter + EvaluatorWeightedScoreFilter *FieldFilter + AnnotationFloatFilters []*FieldFilter + AnnotationBoolFilters []*FieldFilter + AnnotationStringFilters []*FieldFilter + EvalTargetMetricsFilters []*FieldFilter } type FieldFilter struct { @@ -543,6 +591,7 @@ func (e *ExptTurnResultFilterAccelerator) HasFilters() bool { len(e.TurnRunStatus) > 0 hasFilters = hasFilters || (e.MapCond != nil && (len(e.MapCond.EvalTargetDataFilters) > 0 || len(e.MapCond.EvaluatorScoreFilters) > 0 || + e.MapCond.EvaluatorWeightedScoreFilter != nil || len(e.MapCond.AnnotationFloatFilters) > 0 || len(e.MapCond.AnnotationBoolFilters) > 0 || len(e.MapCond.AnnotationStringFilters) > 0 || @@ -601,6 +650,7 @@ type TurnTargetOutput struct { type TurnEvaluatorOutput struct { EvaluatorRecords map[int64]*EvaluatorRecord + WeightedScore *float64 // 加权汇总得分 } type TurnAnnotateResult struct { @@ -701,6 +751,7 @@ type ExptTurnResultFilterEntity struct { Status ItemRunState `json:"status"` EvalTargetData map[string]string `json:"eval_target_data"` EvaluatorScore map[string]float64 `json:"evaluator_score"` + EvaluatorWeightedScore *float64 `json:"evaluator_weighted_score"` AnnotationFloat map[string]float64 `json:"annotation_float"` AnnotationBool map[string]bool `json:"annotation_bool"` AnnotationString map[string]string `json:"annotation_string"` diff --git a/backend/modules/evaluation/domain/entity/expt_template.go b/backend/modules/evaluation/domain/entity/expt_template.go new file mode 100644 index 000000000..023e4c1c4 --- /dev/null +++ b/backend/modules/evaluation/domain/entity/expt_template.go @@ -0,0 +1,373 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + +package entity + +import ( + "context" + "fmt" + + "github.com/mitchellh/mapstructure" + + "github.com/coze-dev/coze-loop/backend/pkg/errorx" +) + +// ExptTemplate 实验模板实体 +// 用于预先配置评测对象、评测集与评估器,并在创建实验时复用 +type ExptTemplate struct { + Meta *ExptTemplateMeta + TripleConfig *ExptTemplateTuple + FieldMappingConfig *ExptFieldMapping + + // 关联数据(用于内部使用,不存储在数据库中) + Target *EvalTarget + EvalSet *EvaluationSet + Evaluators []*Evaluator + + // 内部使用的评估器版本引用(从 TripleConfig.EvaluatorVersionIds 派生) + EvaluatorVersionRef []*ExptTemplateEvaluatorVersionRef + // 内部使用的模板配置(从 FieldMappingConfig 和 ScoreWeightConfig 派生,用于存储到数据库) + TemplateConf *ExptTemplateConfiguration + + // BaseInfo 基础信息(创建时间、更新时间等) + BaseInfo *BaseInfo + + // ExptInfo 实验运行状态信息(存储在数据库的 expt_info 字段中,JSON格式) + ExptInfo *ExptInfo +} + +// ExptInfo 实验模板关联的实验运行状态信息 +type ExptInfo struct { + // CreatedExptCount 当前模板创建实验数量 + CreatedExptCount int64 `json:"created_expt_count"` + // LatestExptID 最后一次创建实验的ID + LatestExptID int64 `json:"latest_expt_id"` + // LatestExptStatus 最后一次创建实验的执行状态 + LatestExptStatus ExptStatus `json:"latest_expt_status"` +} + +// ExptTemplateMeta 实验模板基础信息 +type ExptTemplateMeta struct { + ID int64 + WorkspaceID int64 + Name string + Desc string + ExptType ExptType +} + +// EvaluatorIDVersionItem 评估器ID和版本映射项 +// 对应 IDL 中的 evaluator.EvaluatorIDVersionItem +type EvaluatorIDVersionItem struct { + EvaluatorID int64 // 评估器ID + Version string // 评估器版本号 + EvaluatorVersionID int64 // 评估器版本ID + ScoreWeight float64 // 得分权重(用于加权评分) +} + +// ExptTemplateTuple 实验模板三元组配置 +// 对应 IDL 中的 ExptTuple +type ExptTemplateTuple struct { + EvalSetID int64 + EvalSetVersionID int64 + TargetID int64 + TargetVersionID int64 + TargetType EvalTargetType + EvaluatorVersionIds []int64 // 从 EvaluatorIDVersionItems 中提取的 evaluator_version_id 列表,用于内部处理(向后兼容) + EvaluatorIDVersionItems []*EvaluatorIDVersionItem // 评估器ID版本项列表(包含完整信息) +} + +// ExptFieldMapping 实验字段映射和运行时参数配置 +type ExptFieldMapping struct { + TargetFieldMapping *TargetFieldMapping + EvaluatorFieldMapping []*EvaluatorFieldMapping + TargetRuntimeParam *RuntimeParam + ItemConcurNum *int +} + +// TargetFieldMapping 目标字段映射 +type TargetFieldMapping struct { + FromEvalSet []*ExptTemplateFieldMapping +} + +// EvaluatorFieldMapping 评估器字段映射 +type EvaluatorFieldMapping struct { + EvaluatorVersionID int64 + EvaluatorID int64 // 评估器ID(用于匹配回填 evaluator_version_id) + Version string // 评估器版本号(用于匹配回填 evaluator_version_id) + FromEvalSet []*ExptTemplateFieldMapping + FromTarget []*ExptTemplateFieldMapping +} + +// ExptTemplateFieldMapping 实验模板字段映射 +type ExptTemplateFieldMapping struct { + FieldName string + ConstValue string + FromFieldName string +} + +// ExptScoreWeight 实验评估器得分加权配置 +type ExptScoreWeight struct { + EnableWeightedScore bool + EvaluatorScoreWeights map[int64]float64 +} + +// ExptTemplateEvaluatorVersionRef 实验模板评估器版本引用 +type ExptTemplateEvaluatorVersionRef struct { + EvaluatorID int64 + EvaluatorVersionID int64 +} + +func (e *ExptTemplateEvaluatorVersionRef) String() string { + return fmt.Sprintf("evaluator_id= %v, evaluator_version_id= %v", e.EvaluatorID, e.EvaluatorVersionID) +} + +// ExptTemplateConfiguration 实验模板配置 +// 包含评估器列表、字段映射、加权配置、默认并发及调度等 +// 该配置会序列化为JSON存储在数据库的template_conf字段中 +type ExptTemplateConfiguration struct { + // 字段映射 & 运行时参数(使用与EvaluationConfiguration类似的结构) + ConnectorConf Connector + ItemConcurNum *int + + // 默认评估器并发数 + EvaluatorsConcurNum *int +} + +// ToEvaluatorRefDO 转换为评估器引用DO +func (e *ExptTemplate) ToEvaluatorRefDO() []*ExptTemplateEvaluatorRef { + if e == nil { + return nil + } + cnt := len(e.EvaluatorVersionRef) + refs := make([]*ExptTemplateEvaluatorRef, 0, cnt) + for _, evr := range e.EvaluatorVersionRef { + refs = append(refs, &ExptTemplateEvaluatorRef{ + SpaceID: e.GetSpaceID(), + ExptTemplateID: e.GetID(), + EvaluatorID: evr.EvaluatorID, + EvaluatorVersionID: evr.EvaluatorVersionID, + }) + } + return refs +} + +// ContainsEvalTarget 是否包含评估对象 +func (e *ExptTemplate) ContainsEvalTarget() bool { + return e != nil && e.GetTargetVersionID() > 0 +} + +// GetID 获取模板ID +func (e *ExptTemplate) GetID() int64 { + if e == nil || e.Meta == nil { + return 0 + } + return e.Meta.ID +} + +// GetSpaceID 获取空间ID +func (e *ExptTemplate) GetSpaceID() int64 { + if e == nil || e.Meta == nil { + return 0 + } + return e.Meta.WorkspaceID +} + +// GetName 获取模板名称 +func (e *ExptTemplate) GetName() string { + if e == nil || e.Meta == nil { + return "" + } + return e.Meta.Name +} + +// GetDescription 获取模板描述 +func (e *ExptTemplate) GetDescription() string { + if e == nil || e.Meta == nil { + return "" + } + return e.Meta.Desc +} + +// GetCreatedBy 获取创建者 +func (e *ExptTemplate) GetCreatedBy() string { + if e == nil || e.BaseInfo == nil || e.BaseInfo.CreatedBy == nil || e.BaseInfo.CreatedBy.UserID == nil { + return "" + } + return *e.BaseInfo.CreatedBy.UserID +} + +// GetExptType 获取实验类型 +func (e *ExptTemplate) GetExptType() ExptType { + if e == nil || e.Meta == nil { + return 0 + } + return e.Meta.ExptType +} + +// GetEvalSetID 获取评测集ID +func (e *ExptTemplate) GetEvalSetID() int64 { + if e == nil || e.TripleConfig == nil { + return 0 + } + return e.TripleConfig.EvalSetID +} + +// GetEvalSetVersionID 获取评测集版本ID +func (e *ExptTemplate) GetEvalSetVersionID() int64 { + if e == nil || e.TripleConfig == nil { + return 0 + } + return e.TripleConfig.EvalSetVersionID +} + +// GetTargetID 获取评估对象ID +func (e *ExptTemplate) GetTargetID() int64 { + if e == nil || e.TripleConfig == nil { + return 0 + } + return e.TripleConfig.TargetID +} + +// GetTargetVersionID 获取评估对象版本ID +func (e *ExptTemplate) GetTargetVersionID() int64 { + if e == nil || e.TripleConfig == nil { + return 0 + } + return e.TripleConfig.TargetVersionID +} + +// GetTargetType 获取评估对象类型 +func (e *ExptTemplate) GetTargetType() EvalTargetType { + if e == nil || e.TripleConfig == nil { + return 0 + } + return e.TripleConfig.TargetType +} + +// GetEvaluatorVersionIds 获取评估器版本ID列表 +func (e *ExptTemplate) GetEvaluatorVersionIds() []int64 { + if e == nil || e.TripleConfig == nil { + return nil + } + // 优先从 EvaluatorIDVersionItems 中提取 + if len(e.TripleConfig.EvaluatorIDVersionItems) > 0 { + ids := make([]int64, 0, len(e.TripleConfig.EvaluatorIDVersionItems)) + for _, item := range e.TripleConfig.EvaluatorIDVersionItems { + if item != nil && item.EvaluatorVersionID > 0 { + ids = append(ids, item.EvaluatorVersionID) + } + } + return ids + } + // 向后兼容:从 EvaluatorVersionIds 获取 + return e.TripleConfig.EvaluatorVersionIds +} + +// GetEvaluatorIDVersionItems 获取评估器ID版本项列表 +func (e *ExptTemplate) GetEvaluatorIDVersionItems() []*EvaluatorIDVersionItem { + if e == nil || e.TripleConfig == nil { + return nil + } + return e.TripleConfig.EvaluatorIDVersionItems +} + +// ExptTemplateEvaluatorRef 实验模板评估器引用DO +type ExptTemplateEvaluatorRef struct { + ID int64 + SpaceID int64 + ExptTemplateID int64 + EvaluatorID int64 + EvaluatorVersionID int64 +} + +// ExptTemplateUpdateFields 实验模板更新字段 +type ExptTemplateUpdateFields struct { + Name string `mapstructure:"name,omitempty"` + Description string `mapstructure:"description,omitempty"` +} + +// ToFieldMap 转换为字段映射 +func (e *ExptTemplateUpdateFields) ToFieldMap() (map[string]any, error) { + m := make(map[string]any) + if err := mapstructure.Decode(e, &m); err != nil { + return nil, errorx.Wrapf(err, "ExptTemplateUpdateFields decode to map fail: %v", e) + } + return m, nil +} + +// Valid 验证模板配置 +func (c *ExptTemplateConfiguration) Valid(ctx context.Context) error { + if c == nil { + return fmt.Errorf("nil ExptTemplateConfiguration") + } + // 验证并发数配置 + if c.ItemConcurNum != nil && *c.ItemConcurNum <= 0 { + return fmt.Errorf("item_concur_num must be greater than 0") + } + if c.EvaluatorsConcurNum != nil && *c.EvaluatorsConcurNum <= 0 { + return fmt.Errorf("evaluators_concur_num must be greater than 0") + } + // 验证ConnectorConf + if c.ConnectorConf.EvaluatorsConf != nil { + if err := c.ConnectorConf.EvaluatorsConf.Valid(ctx); err != nil { + return err + } + } + return nil +} + +// GetDefaultItemConcurNum 获取默认评测集并发数 +func (c *ExptTemplateConfiguration) GetDefaultItemConcurNum() int { + const defaultConcurNum = 1 + if c == nil || c.ItemConcurNum == nil || *c.ItemConcurNum <= 0 { + return defaultConcurNum + } + return *c.ItemConcurNum +} + +// GetDefaultEvaluatorsConcurNum 获取默认评估器并发数 +func (c *ExptTemplateConfiguration) GetDefaultEvaluatorsConcurNum() int { + const defaultConcurNum = 3 + if c == nil || c.EvaluatorsConcurNum == nil || *c.EvaluatorsConcurNum <= 0 { + return defaultConcurNum + } + return *c.EvaluatorsConcurNum +} + +// CreateExptTemplateParam 创建实验模板参数 +type CreateExptTemplateParam struct { + SpaceID int64 + Name string + Description string + EvalSetID int64 + EvalSetVersionID int64 + TargetID int64 + TargetVersionID int64 + EvaluatorIDVersionItems []*EvaluatorIDVersionItem // 评估器ID版本项列表(包含完整信息) + TemplateConf *ExptTemplateConfiguration + ExptType ExptType + CreateEvalTargetParam *CreateEvalTargetParam +} + +// UpdateExptTemplateParam 更新实验模板参数 +type UpdateExptTemplateParam struct { + TemplateID int64 + SpaceID int64 + Name string + Description string + EvalSetVersionID int64 + TargetVersionID int64 + EvaluatorIDVersionItems []*EvaluatorIDVersionItem // 评估器ID版本项列表(包含完整信息) + TemplateConf *ExptTemplateConfiguration + ExptType ExptType + CreateEvalTargetParam *CreateEvalTargetParam +} + +// UpdateExptTemplateMetaParam 更新实验模板 Meta 参数 +type UpdateExptTemplateMetaParam struct { + TemplateID int64 + SpaceID int64 + Name string + Description string + ExptType ExptType +} diff --git a/backend/modules/evaluation/domain/entity/expt_template_test.go b/backend/modules/evaluation/domain/entity/expt_template_test.go new file mode 100644 index 000000000..b61799eb9 --- /dev/null +++ b/backend/modules/evaluation/domain/entity/expt_template_test.go @@ -0,0 +1,601 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + +package entity + +import ( + "context" + "testing" + + "github.com/bytedance/gg/gptr" + "github.com/stretchr/testify/assert" +) + +func TestExptTemplate_ToEvaluatorRefDO(t *testing.T) { + t.Run("normal case", func(t *testing.T) { + e := &ExptTemplate{ + Meta: &ExptTemplateMeta{ + ID: 1, + WorkspaceID: 2, + }, + EvaluatorVersionRef: []*ExptTemplateEvaluatorVersionRef{ + {EvaluatorID: 3, EvaluatorVersionID: 4}, + {EvaluatorID: 5, EvaluatorVersionID: 6}, + }, + } + refs := e.ToEvaluatorRefDO() + assert.Len(t, refs, 2) + assert.Equal(t, int64(2), refs[0].SpaceID) + assert.Equal(t, int64(1), refs[0].ExptTemplateID) + assert.Equal(t, int64(3), refs[0].EvaluatorID) + assert.Equal(t, int64(4), refs[0].EvaluatorVersionID) + assert.Equal(t, int64(5), refs[1].EvaluatorID) + assert.Equal(t, int64(6), refs[1].EvaluatorVersionID) + }) + + t.Run("nil template", func(t *testing.T) { + var e *ExptTemplate + assert.Nil(t, e.ToEvaluatorRefDO()) + }) + + t.Run("empty refs", func(t *testing.T) { + e := &ExptTemplate{ + Meta: &ExptTemplateMeta{ID: 1, WorkspaceID: 2}, + EvaluatorVersionRef: []*ExptTemplateEvaluatorVersionRef{}, + } + refs := e.ToEvaluatorRefDO() + assert.NotNil(t, refs) + assert.Len(t, refs, 0) + }) +} + +func TestExptTemplate_ContainsEvalTarget(t *testing.T) { + t.Run("contains target", func(t *testing.T) { + e := &ExptTemplate{ + TripleConfig: &ExptTemplateTuple{ + TargetVersionID: 100, + }, + } + assert.True(t, e.ContainsEvalTarget()) + }) + + t.Run("no target", func(t *testing.T) { + e := &ExptTemplate{ + TripleConfig: &ExptTemplateTuple{ + TargetVersionID: 0, + }, + } + assert.False(t, e.ContainsEvalTarget()) + }) + + t.Run("nil template", func(t *testing.T) { + var e *ExptTemplate + assert.False(t, e.ContainsEvalTarget()) + }) + + t.Run("nil triple config", func(t *testing.T) { + e := &ExptTemplate{ + TripleConfig: nil, + } + assert.False(t, e.ContainsEvalTarget()) + }) +} + +func TestExptTemplate_GetID(t *testing.T) { + t.Run("normal case", func(t *testing.T) { + e := &ExptTemplate{ + Meta: &ExptTemplateMeta{ID: 123}, + } + assert.Equal(t, int64(123), e.GetID()) + }) + + t.Run("nil template", func(t *testing.T) { + var e *ExptTemplate + assert.Equal(t, int64(0), e.GetID()) + }) + + t.Run("nil meta", func(t *testing.T) { + e := &ExptTemplate{Meta: nil} + assert.Equal(t, int64(0), e.GetID()) + }) +} + +func TestExptTemplate_GetSpaceID(t *testing.T) { + t.Run("normal case", func(t *testing.T) { + e := &ExptTemplate{ + Meta: &ExptTemplateMeta{WorkspaceID: 456}, + } + assert.Equal(t, int64(456), e.GetSpaceID()) + }) + + t.Run("nil template", func(t *testing.T) { + var e *ExptTemplate + assert.Equal(t, int64(0), e.GetSpaceID()) + }) + + t.Run("nil meta", func(t *testing.T) { + e := &ExptTemplate{Meta: nil} + assert.Equal(t, int64(0), e.GetSpaceID()) + }) +} + +func TestExptTemplate_GetName(t *testing.T) { + t.Run("normal case", func(t *testing.T) { + e := &ExptTemplate{ + Meta: &ExptTemplateMeta{Name: "test_template"}, + } + assert.Equal(t, "test_template", e.GetName()) + }) + + t.Run("nil template", func(t *testing.T) { + var e *ExptTemplate + assert.Equal(t, "", e.GetName()) + }) + + t.Run("nil meta", func(t *testing.T) { + e := &ExptTemplate{Meta: nil} + assert.Equal(t, "", e.GetName()) + }) +} + +func TestExptTemplate_GetDescription(t *testing.T) { + t.Run("normal case", func(t *testing.T) { + e := &ExptTemplate{ + Meta: &ExptTemplateMeta{Desc: "test description"}, + } + assert.Equal(t, "test description", e.GetDescription()) + }) + + t.Run("nil template", func(t *testing.T) { + var e *ExptTemplate + assert.Equal(t, "", e.GetDescription()) + }) + + t.Run("nil meta", func(t *testing.T) { + e := &ExptTemplate{Meta: nil} + assert.Equal(t, "", e.GetDescription()) + }) +} + +func TestExptTemplate_GetCreatedBy(t *testing.T) { + t.Run("normal case", func(t *testing.T) { + e := &ExptTemplate{ + BaseInfo: &BaseInfo{ + CreatedBy: &UserInfo{UserID: gptr.Of("user123")}, + }, + } + assert.Equal(t, "user123", e.GetCreatedBy()) + }) + + t.Run("nil template", func(t *testing.T) { + var e *ExptTemplate + assert.Equal(t, "", e.GetCreatedBy()) + }) + + t.Run("nil base info", func(t *testing.T) { + e := &ExptTemplate{BaseInfo: nil} + assert.Equal(t, "", e.GetCreatedBy()) + }) + + t.Run("nil created by", func(t *testing.T) { + e := &ExptTemplate{ + BaseInfo: &BaseInfo{CreatedBy: nil}, + } + assert.Equal(t, "", e.GetCreatedBy()) + }) + + t.Run("nil user id", func(t *testing.T) { + e := &ExptTemplate{ + BaseInfo: &BaseInfo{ + CreatedBy: &UserInfo{UserID: nil}, + }, + } + assert.Equal(t, "", e.GetCreatedBy()) + }) +} + +func TestExptTemplate_GetExptType(t *testing.T) { + t.Run("normal case", func(t *testing.T) { + e := &ExptTemplate{ + Meta: &ExptTemplateMeta{ExptType: ExptType_Offline}, + } + assert.Equal(t, ExptType_Offline, e.GetExptType()) + }) + + t.Run("nil template", func(t *testing.T) { + var e *ExptTemplate + assert.Equal(t, ExptType(0), e.GetExptType()) + }) + + t.Run("nil meta", func(t *testing.T) { + e := &ExptTemplate{Meta: nil} + assert.Equal(t, ExptType(0), e.GetExptType()) + }) +} + +func TestExptTemplate_GetEvalSetID(t *testing.T) { + t.Run("normal case", func(t *testing.T) { + e := &ExptTemplate{ + TripleConfig: &ExptTemplateTuple{EvalSetID: 789}, + } + assert.Equal(t, int64(789), e.GetEvalSetID()) + }) + + t.Run("nil template", func(t *testing.T) { + var e *ExptTemplate + assert.Equal(t, int64(0), e.GetEvalSetID()) + }) + + t.Run("nil triple config", func(t *testing.T) { + e := &ExptTemplate{TripleConfig: nil} + assert.Equal(t, int64(0), e.GetEvalSetID()) + }) +} + +func TestExptTemplate_GetEvalSetVersionID(t *testing.T) { + t.Run("normal case", func(t *testing.T) { + e := &ExptTemplate{ + TripleConfig: &ExptTemplateTuple{EvalSetVersionID: 101}, + } + assert.Equal(t, int64(101), e.GetEvalSetVersionID()) + }) + + t.Run("nil template", func(t *testing.T) { + var e *ExptTemplate + assert.Equal(t, int64(0), e.GetEvalSetVersionID()) + }) + + t.Run("nil triple config", func(t *testing.T) { + e := &ExptTemplate{TripleConfig: nil} + assert.Equal(t, int64(0), e.GetEvalSetVersionID()) + }) +} + +func TestExptTemplate_GetTargetID(t *testing.T) { + t.Run("normal case", func(t *testing.T) { + e := &ExptTemplate{ + TripleConfig: &ExptTemplateTuple{TargetID: 202}, + } + assert.Equal(t, int64(202), e.GetTargetID()) + }) + + t.Run("nil template", func(t *testing.T) { + var e *ExptTemplate + assert.Equal(t, int64(0), e.GetTargetID()) + }) + + t.Run("nil triple config", func(t *testing.T) { + e := &ExptTemplate{TripleConfig: nil} + assert.Equal(t, int64(0), e.GetTargetID()) + }) +} + +func TestExptTemplate_GetTargetVersionID(t *testing.T) { + t.Run("normal case", func(t *testing.T) { + e := &ExptTemplate{ + TripleConfig: &ExptTemplateTuple{TargetVersionID: 303}, + } + assert.Equal(t, int64(303), e.GetTargetVersionID()) + }) + + t.Run("nil template", func(t *testing.T) { + var e *ExptTemplate + assert.Equal(t, int64(0), e.GetTargetVersionID()) + }) + + t.Run("nil triple config", func(t *testing.T) { + e := &ExptTemplate{TripleConfig: nil} + assert.Equal(t, int64(0), e.GetTargetVersionID()) + }) +} + +func TestExptTemplate_GetTargetType(t *testing.T) { + t.Run("normal case", func(t *testing.T) { + e := &ExptTemplate{ + TripleConfig: &ExptTemplateTuple{TargetType: EvalTargetTypeCozeBot}, + } + assert.Equal(t, EvalTargetTypeCozeBot, e.GetTargetType()) + }) + + t.Run("nil template", func(t *testing.T) { + var e *ExptTemplate + assert.Equal(t, EvalTargetType(0), e.GetTargetType()) + }) + + t.Run("nil triple config", func(t *testing.T) { + e := &ExptTemplate{TripleConfig: nil} + assert.Equal(t, EvalTargetType(0), e.GetTargetType()) + }) +} + +func TestExptTemplate_GetEvaluatorVersionIds(t *testing.T) { + t.Run("from EvaluatorIDVersionItems", func(t *testing.T) { + e := &ExptTemplate{ + TripleConfig: &ExptTemplateTuple{ + EvaluatorIDVersionItems: []*EvaluatorIDVersionItem{ + {EvaluatorVersionID: 1}, + {EvaluatorVersionID: 2}, + nil, // nil item should be skipped + {EvaluatorVersionID: 0}, // zero version id should be skipped + {EvaluatorVersionID: 3}, + }, + EvaluatorVersionIds: []int64{99, 100}, // should be ignored + }, + } + ids := e.GetEvaluatorVersionIds() + assert.Equal(t, []int64{1, 2, 3}, ids) + }) + + t.Run("fallback to EvaluatorVersionIds", func(t *testing.T) { + e := &ExptTemplate{ + TripleConfig: &ExptTemplateTuple{ + EvaluatorIDVersionItems: nil, + EvaluatorVersionIds: []int64{4, 5, 6}, + }, + } + ids := e.GetEvaluatorVersionIds() + assert.Equal(t, []int64{4, 5, 6}, ids) + }) + + t.Run("empty EvaluatorIDVersionItems", func(t *testing.T) { + e := &ExptTemplate{ + TripleConfig: &ExptTemplateTuple{ + EvaluatorIDVersionItems: []*EvaluatorIDVersionItem{}, + EvaluatorVersionIds: []int64{7, 8}, + }, + } + ids := e.GetEvaluatorVersionIds() + assert.Equal(t, []int64{7, 8}, ids) + }) + + t.Run("nil template", func(t *testing.T) { + var e *ExptTemplate + assert.Nil(t, e.GetEvaluatorVersionIds()) + }) + + t.Run("nil triple config", func(t *testing.T) { + e := &ExptTemplate{TripleConfig: nil} + assert.Nil(t, e.GetEvaluatorVersionIds()) + }) +} + +func TestExptTemplate_GetEvaluatorIDVersionItems(t *testing.T) { + t.Run("normal case", func(t *testing.T) { + items := []*EvaluatorIDVersionItem{ + {EvaluatorID: 1, Version: "v1", EvaluatorVersionID: 10}, + {EvaluatorID: 2, Version: "v2", EvaluatorVersionID: 20}, + } + e := &ExptTemplate{ + TripleConfig: &ExptTemplateTuple{ + EvaluatorIDVersionItems: items, + }, + } + assert.Equal(t, items, e.GetEvaluatorIDVersionItems()) + }) + + t.Run("nil template", func(t *testing.T) { + var e *ExptTemplate + assert.Nil(t, e.GetEvaluatorIDVersionItems()) + }) + + t.Run("nil triple config", func(t *testing.T) { + e := &ExptTemplate{TripleConfig: nil} + assert.Nil(t, e.GetEvaluatorIDVersionItems()) + }) +} + +func TestExptTemplateEvaluatorVersionRef_String(t *testing.T) { + ref := &ExptTemplateEvaluatorVersionRef{ + EvaluatorID: 123, + EvaluatorVersionID: 456, + } + str := ref.String() + assert.Contains(t, str, "evaluator_id=") + assert.Contains(t, str, "evaluator_version_id=") + assert.Contains(t, str, "123") + assert.Contains(t, str, "456") +} + +func TestExptTemplateUpdateFields_ToFieldMap(t *testing.T) { + t.Run("normal case", func(t *testing.T) { + fields := &ExptTemplateUpdateFields{ + Name: "test_name", + Description: "test_desc", + } + m, err := fields.ToFieldMap() + assert.NoError(t, err) + assert.NotNil(t, m) + assert.Equal(t, "test_name", m["name"]) + assert.Equal(t, "test_desc", m["description"]) + }) + + t.Run("empty fields", func(t *testing.T) { + fields := &ExptTemplateUpdateFields{} + m, err := fields.ToFieldMap() + assert.NoError(t, err) + assert.NotNil(t, m) + }) +} + +func TestExptTemplateConfiguration_Valid(t *testing.T) { + ctx := context.Background() + + t.Run("nil config", func(t *testing.T) { + var c *ExptTemplateConfiguration + err := c.Valid(ctx) + assert.Error(t, err) + assert.Contains(t, err.Error(), "nil ExptTemplateConfiguration") + }) + + t.Run("valid config", func(t *testing.T) { + itemConcurNum := 5 + evaluatorsConcurNum := 3 + c := &ExptTemplateConfiguration{ + ItemConcurNum: &itemConcurNum, + EvaluatorsConcurNum: &evaluatorsConcurNum, + } + err := c.Valid(ctx) + assert.NoError(t, err) + }) + + t.Run("invalid item_concur_num", func(t *testing.T) { + zero := 0 + negative := -1 + testCases := []struct { + name string + num *int + }{ + {"zero", &zero}, + {"negative", &negative}, + } + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + c := &ExptTemplateConfiguration{ + ItemConcurNum: tc.num, + } + err := c.Valid(ctx) + assert.Error(t, err) + assert.Contains(t, err.Error(), "item_concur_num must be greater than 0") + }) + } + }) + + t.Run("invalid evaluators_concur_num", func(t *testing.T) { + zero := 0 + negative := -1 + testCases := []struct { + name string + num *int + }{ + {"zero", &zero}, + {"negative", &negative}, + } + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + c := &ExptTemplateConfiguration{ + EvaluatorsConcurNum: tc.num, + } + err := c.Valid(ctx) + assert.Error(t, err) + assert.Contains(t, err.Error(), "evaluators_concur_num must be greater than 0") + }) + } + }) + + t.Run("valid with EvaluatorsConf", func(t *testing.T) { + itemConcurNum := 2 + c := &ExptTemplateConfiguration{ + ItemConcurNum: &itemConcurNum, + ConnectorConf: Connector{ + EvaluatorsConf: &EvaluatorsConf{ + EvaluatorConf: []*EvaluatorConf{ + { + EvaluatorVersionID: 1, + IngressConf: &EvaluatorIngressConf{ + TargetAdapter: &FieldAdapter{}, + EvalSetAdapter: &FieldAdapter{}, + }, + }, + }, + }, + }, + } + err := c.Valid(ctx) + assert.NoError(t, err) + }) + + t.Run("invalid EvaluatorsConf", func(t *testing.T) { + itemConcurNum := 2 + c := &ExptTemplateConfiguration{ + ItemConcurNum: &itemConcurNum, + ConnectorConf: Connector{ + EvaluatorsConf: &EvaluatorsConf{ + EvaluatorConf: []*EvaluatorConf{ + { + EvaluatorVersionID: 1, + IngressConf: nil, // invalid + }, + }, + }, + }, + } + err := c.Valid(ctx) + assert.Error(t, err) + }) +} + +func TestExptTemplateConfiguration_GetDefaultItemConcurNum(t *testing.T) { + t.Run("with valid value", func(t *testing.T) { + num := 5 + c := &ExptTemplateConfiguration{ + ItemConcurNum: &num, + } + assert.Equal(t, 5, c.GetDefaultItemConcurNum()) + }) + + t.Run("nil config", func(t *testing.T) { + var c *ExptTemplateConfiguration + assert.Equal(t, 1, c.GetDefaultItemConcurNum()) + }) + + t.Run("nil ItemConcurNum", func(t *testing.T) { + c := &ExptTemplateConfiguration{ + ItemConcurNum: nil, + } + assert.Equal(t, 1, c.GetDefaultItemConcurNum()) + }) + + t.Run("zero ItemConcurNum", func(t *testing.T) { + zero := 0 + c := &ExptTemplateConfiguration{ + ItemConcurNum: &zero, + } + assert.Equal(t, 1, c.GetDefaultItemConcurNum()) + }) + + t.Run("negative ItemConcurNum", func(t *testing.T) { + negative := -1 + c := &ExptTemplateConfiguration{ + ItemConcurNum: &negative, + } + assert.Equal(t, 1, c.GetDefaultItemConcurNum()) + }) +} + +func TestExptTemplateConfiguration_GetDefaultEvaluatorsConcurNum(t *testing.T) { + t.Run("with valid value", func(t *testing.T) { + num := 7 + c := &ExptTemplateConfiguration{ + EvaluatorsConcurNum: &num, + } + assert.Equal(t, 7, c.GetDefaultEvaluatorsConcurNum()) + }) + + t.Run("nil config", func(t *testing.T) { + var c *ExptTemplateConfiguration + assert.Equal(t, 3, c.GetDefaultEvaluatorsConcurNum()) + }) + + t.Run("nil EvaluatorsConcurNum", func(t *testing.T) { + c := &ExptTemplateConfiguration{ + EvaluatorsConcurNum: nil, + } + assert.Equal(t, 3, c.GetDefaultEvaluatorsConcurNum()) + }) + + t.Run("zero EvaluatorsConcurNum", func(t *testing.T) { + zero := 0 + c := &ExptTemplateConfiguration{ + EvaluatorsConcurNum: &zero, + } + assert.Equal(t, 3, c.GetDefaultEvaluatorsConcurNum()) + }) + + t.Run("negative EvaluatorsConcurNum", func(t *testing.T) { + negative := -1 + c := &ExptTemplateConfiguration{ + EvaluatorsConcurNum: &negative, + } + assert.Equal(t, 3, c.GetDefaultEvaluatorsConcurNum()) + }) +} diff --git a/backend/modules/evaluation/domain/entity/param.go b/backend/modules/evaluation/domain/entity/param.go index 8d280eb55..783859b6f 100644 --- a/backend/modules/evaluation/domain/entity/param.go +++ b/backend/modules/evaluation/domain/entity/param.go @@ -234,6 +234,7 @@ type CreateExptParam struct { MaxAliveTime int64 `thrift:"max_alive_time,31,optional" frugal:"31,optional,i64" form:"max_alive_time" json:"max_alive_time,omitempty"` SourceType SourceType `thrift:"source_type,32,optional" frugal:"32,optional,SourceType" form:"source_type" json:"source_type,omitempty"` SourceID string `thrift:"source_id,33,optional" frugal:"33,optional,string" form:"source_id" json:"source_id,omitempty"` + ExptTemplateID int64 `thrift:"expt_template_id,34,optional" frugal:"34,optional,i64" form:"expt_template_id" json:"expt_template_id,omitempty"` ExptConf *EvaluationConfiguration } diff --git a/backend/modules/evaluation/domain/entity/target.go b/backend/modules/evaluation/domain/entity/target.go index db507d253..a1e0e18cc 100644 --- a/backend/modules/evaluation/domain/entity/target.go +++ b/backend/modules/evaluation/domain/entity/target.go @@ -88,7 +88,7 @@ func (p *EvalTargetType) Scan(value interface{}) (err error) { var result sql.NullInt64 err = result.Scan(value) *p = EvalTargetType(result.Int64) - return + return err } func (p *EvalTargetType) Value() (driver.Value, error) { diff --git a/backend/modules/evaluation/domain/repo/expt_template.go b/backend/modules/evaluation/domain/repo/expt_template.go new file mode 100644 index 000000000..42031a876 --- /dev/null +++ b/backend/modules/evaluation/domain/repo/expt_template.go @@ -0,0 +1,24 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + +package repo + +import ( + "context" + + "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/entity" +) + +//go:generate mockgen -destination ./mocks/expt_template.go --package mocks . IExptTemplateRepo +type IExptTemplateRepo interface { + Create(ctx context.Context, template *entity.ExptTemplate, refs []*entity.ExptTemplateEvaluatorRef) error + // GetByID 按模板ID获取模板,如果 spaceID 非空则校验空间ID;spaceID 为空时不校验空间ID + GetByID(ctx context.Context, id int64, spaceID *int64) (*entity.ExptTemplate, error) + GetByName(ctx context.Context, name string, spaceID int64) (*entity.ExptTemplate, bool, error) + MGetByID(ctx context.Context, ids []int64, spaceID int64) ([]*entity.ExptTemplate, error) + Update(ctx context.Context, template *entity.ExptTemplate) error + UpdateFields(ctx context.Context, templateID int64, ufields map[string]any) error + UpdateWithRefs(ctx context.Context, template *entity.ExptTemplate, refs []*entity.ExptTemplateEvaluatorRef) error + Delete(ctx context.Context, id, spaceID int64) error + List(ctx context.Context, page, size int32, filter *entity.ExptTemplateListFilter, orders []*entity.OrderBy, spaceID int64) ([]*entity.ExptTemplate, int64, error) +} diff --git a/backend/modules/evaluation/domain/repo/mocks/evaluator_mock.go b/backend/modules/evaluation/domain/repo/mocks/evaluator_mock.go index e250c5635..eab742712 100644 --- a/backend/modules/evaluation/domain/repo/mocks/evaluator_mock.go +++ b/backend/modules/evaluation/domain/repo/mocks/evaluator_mock.go @@ -206,34 +206,34 @@ func (mr *MockIEvaluatorRepoMockRecorder) ListEvaluator(ctx, req any) *gomock.Ca return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListEvaluator", reflect.TypeOf((*MockIEvaluatorRepo)(nil).ListEvaluator), ctx, req) } -// ListEvaluatorVersion mocks base method. -func (m *MockIEvaluatorRepo) ListEvaluatorVersion(ctx context.Context, req *repo.ListEvaluatorVersionRequest) (*repo.ListEvaluatorVersionResponse, error) { +// ListEvaluatorTags mocks base method. +func (m *MockIEvaluatorRepo) ListEvaluatorTags(ctx context.Context, tagType entity.EvaluatorTagKeyType) (map[entity.EvaluatorTagKey][]string, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListEvaluatorVersion", ctx, req) - ret0, _ := ret[0].(*repo.ListEvaluatorVersionResponse) + ret := m.ctrl.Call(m, "ListEvaluatorTags", ctx, tagType) + ret0, _ := ret[0].(map[entity.EvaluatorTagKey][]string) ret1, _ := ret[1].(error) return ret0, ret1 } -// ListEvaluatorVersion indicates an expected call of ListEvaluatorVersion. -func (mr *MockIEvaluatorRepoMockRecorder) ListEvaluatorVersion(ctx, req any) *gomock.Call { +// ListEvaluatorTags indicates an expected call of ListEvaluatorTags. +func (mr *MockIEvaluatorRepoMockRecorder) ListEvaluatorTags(ctx, tagType any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListEvaluatorVersion", reflect.TypeOf((*MockIEvaluatorRepo)(nil).ListEvaluatorVersion), ctx, req) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListEvaluatorTags", reflect.TypeOf((*MockIEvaluatorRepo)(nil).ListEvaluatorTags), ctx, tagType) } -// ListEvaluatorTags mocks base method. -func (m *MockIEvaluatorRepo) ListEvaluatorTags(ctx context.Context, tagType entity.EvaluatorTagKeyType) (map[entity.EvaluatorTagKey][]string, error) { +// ListEvaluatorVersion mocks base method. +func (m *MockIEvaluatorRepo) ListEvaluatorVersion(ctx context.Context, req *repo.ListEvaluatorVersionRequest) (*repo.ListEvaluatorVersionResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListEvaluatorTags", ctx, tagType) - ret0, _ := ret[0].(map[entity.EvaluatorTagKey][]string) + ret := m.ctrl.Call(m, "ListEvaluatorVersion", ctx, req) + ret0, _ := ret[0].(*repo.ListEvaluatorVersionResponse) ret1, _ := ret[1].(error) return ret0, ret1 } -// ListEvaluatorTags indicates an expected call of ListEvaluatorTags. -func (mr *MockIEvaluatorRepoMockRecorder) ListEvaluatorTags(ctx, tagType any) *gomock.Call { +// ListEvaluatorVersion indicates an expected call of ListEvaluatorVersion. +func (mr *MockIEvaluatorRepoMockRecorder) ListEvaluatorVersion(ctx, req any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListEvaluatorTags", reflect.TypeOf((*MockIEvaluatorRepo)(nil).ListEvaluatorTags), ctx, tagType) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListEvaluatorVersion", reflect.TypeOf((*MockIEvaluatorRepo)(nil).ListEvaluatorVersion), ctx, req) } // SubmitEvaluatorVersion mocks base method. diff --git a/backend/modules/evaluation/domain/repo/mocks/expt_template.go b/backend/modules/evaluation/domain/repo/mocks/expt_template.go new file mode 100644 index 000000000..af24e777b --- /dev/null +++ b/backend/modules/evaluation/domain/repo/mocks/expt_template.go @@ -0,0 +1,174 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/repo (interfaces: IExptTemplateRepo) +// +// Generated by this command: +// +// mockgen -destination ./mocks/expt_template.go --package mocks . IExptTemplateRepo +// + +// Package mocks is a generated GoMock package. +package mocks + +import ( + context "context" + reflect "reflect" + + entity "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/entity" + gomock "go.uber.org/mock/gomock" +) + +// MockIExptTemplateRepo is a mock of IExptTemplateRepo interface. +type MockIExptTemplateRepo struct { + ctrl *gomock.Controller + recorder *MockIExptTemplateRepoMockRecorder + isgomock struct{} +} + +// MockIExptTemplateRepoMockRecorder is the mock recorder for MockIExptTemplateRepo. +type MockIExptTemplateRepoMockRecorder struct { + mock *MockIExptTemplateRepo +} + +// NewMockIExptTemplateRepo creates a new mock instance. +func NewMockIExptTemplateRepo(ctrl *gomock.Controller) *MockIExptTemplateRepo { + mock := &MockIExptTemplateRepo{ctrl: ctrl} + mock.recorder = &MockIExptTemplateRepoMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockIExptTemplateRepo) EXPECT() *MockIExptTemplateRepoMockRecorder { + return m.recorder +} + +// Create mocks base method. +func (m *MockIExptTemplateRepo) Create(ctx context.Context, template *entity.ExptTemplate, refs []*entity.ExptTemplateEvaluatorRef) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Create", ctx, template, refs) + ret0, _ := ret[0].(error) + return ret0 +} + +// Create indicates an expected call of Create. +func (mr *MockIExptTemplateRepoMockRecorder) Create(ctx, template, refs any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockIExptTemplateRepo)(nil).Create), ctx, template, refs) +} + +// Delete mocks base method. +func (m *MockIExptTemplateRepo) Delete(ctx context.Context, id, spaceID int64) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Delete", ctx, id, spaceID) + ret0, _ := ret[0].(error) + return ret0 +} + +// Delete indicates an expected call of Delete. +func (mr *MockIExptTemplateRepoMockRecorder) Delete(ctx, id, spaceID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockIExptTemplateRepo)(nil).Delete), ctx, id, spaceID) +} + +// GetByID mocks base method. +func (m *MockIExptTemplateRepo) GetByID(ctx context.Context, id int64, spaceID *int64) (*entity.ExptTemplate, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetByID", ctx, id, spaceID) + ret0, _ := ret[0].(*entity.ExptTemplate) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetByID indicates an expected call of GetByID. +func (mr *MockIExptTemplateRepoMockRecorder) GetByID(ctx, id, spaceID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetByID", reflect.TypeOf((*MockIExptTemplateRepo)(nil).GetByID), ctx, id, spaceID) +} + +// GetByName mocks base method. +func (m *MockIExptTemplateRepo) GetByName(ctx context.Context, name string, spaceID int64) (*entity.ExptTemplate, bool, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetByName", ctx, name, spaceID) + ret0, _ := ret[0].(*entity.ExptTemplate) + ret1, _ := ret[1].(bool) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// GetByName indicates an expected call of GetByName. +func (mr *MockIExptTemplateRepoMockRecorder) GetByName(ctx, name, spaceID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetByName", reflect.TypeOf((*MockIExptTemplateRepo)(nil).GetByName), ctx, name, spaceID) +} + +// List mocks base method. +func (m *MockIExptTemplateRepo) List(ctx context.Context, page, size int32, filter *entity.ExptTemplateListFilter, orders []*entity.OrderBy, spaceID int64) ([]*entity.ExptTemplate, int64, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "List", ctx, page, size, filter, orders, spaceID) + ret0, _ := ret[0].([]*entity.ExptTemplate) + ret1, _ := ret[1].(int64) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// List indicates an expected call of List. +func (mr *MockIExptTemplateRepoMockRecorder) List(ctx, page, size, filter, orders, spaceID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "List", reflect.TypeOf((*MockIExptTemplateRepo)(nil).List), ctx, page, size, filter, orders, spaceID) +} + +// MGetByID mocks base method. +func (m *MockIExptTemplateRepo) MGetByID(ctx context.Context, ids []int64, spaceID int64) ([]*entity.ExptTemplate, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "MGetByID", ctx, ids, spaceID) + ret0, _ := ret[0].([]*entity.ExptTemplate) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// MGetByID indicates an expected call of MGetByID. +func (mr *MockIExptTemplateRepoMockRecorder) MGetByID(ctx, ids, spaceID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MGetByID", reflect.TypeOf((*MockIExptTemplateRepo)(nil).MGetByID), ctx, ids, spaceID) +} + +// Update mocks base method. +func (m *MockIExptTemplateRepo) Update(ctx context.Context, template *entity.ExptTemplate) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Update", ctx, template) + ret0, _ := ret[0].(error) + return ret0 +} + +// Update indicates an expected call of Update. +func (mr *MockIExptTemplateRepoMockRecorder) Update(ctx, template any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Update", reflect.TypeOf((*MockIExptTemplateRepo)(nil).Update), ctx, template) +} + +// UpdateFields mocks base method. +func (m *MockIExptTemplateRepo) UpdateFields(ctx context.Context, templateID int64, ufields map[string]any) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateFields", ctx, templateID, ufields) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateFields indicates an expected call of UpdateFields. +func (mr *MockIExptTemplateRepoMockRecorder) UpdateFields(ctx, templateID, ufields any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateFields", reflect.TypeOf((*MockIExptTemplateRepo)(nil).UpdateFields), ctx, templateID, ufields) +} + +// UpdateWithRefs mocks base method. +func (m *MockIExptTemplateRepo) UpdateWithRefs(ctx context.Context, template *entity.ExptTemplate, refs []*entity.ExptTemplateEvaluatorRef) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateWithRefs", ctx, template, refs) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateWithRefs indicates an expected call of UpdateWithRefs. +func (mr *MockIExptTemplateRepoMockRecorder) UpdateWithRefs(ctx, template, refs any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateWithRefs", reflect.TypeOf((*MockIExptTemplateRepo)(nil).UpdateWithRefs), ctx, template, refs) +} diff --git a/backend/modules/evaluation/domain/service/evaluator_impl.go b/backend/modules/evaluation/domain/service/evaluator_impl.go index 633fc73f8..23194ac31 100644 --- a/backend/modules/evaluation/domain/service/evaluator_impl.go +++ b/backend/modules/evaluation/domain/service/evaluator_impl.go @@ -22,6 +22,7 @@ import ( "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/repo" "github.com/coze-dev/coze-loop/backend/modules/evaluation/pkg/conf" "github.com/coze-dev/coze-loop/backend/modules/evaluation/pkg/errno" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/pkg/utils" "github.com/coze-dev/coze-loop/backend/pkg/errorx" "github.com/coze-dev/coze-loop/backend/pkg/logs" ) @@ -599,6 +600,26 @@ func (e *EvaluatorServiceImpl) makeSubmitIdemKey(cid string) string { return consts.IdemKeySubmitEvaluator + cid } +// roundEvaluatorOutputScore 统一处理评估器输出数据中的分数,保留两位小数 +func roundEvaluatorOutputScore(outputData *entity.EvaluatorOutputData) { + if outputData == nil { + return + } + if outputData.EvaluatorResult == nil { + return + } + // 处理原始分数 + if outputData.EvaluatorResult.Score != nil { + roundedScore := utils.RoundScoreToTwoDecimals(*outputData.EvaluatorResult.Score) + outputData.EvaluatorResult.Score = &roundedScore + } + // 处理修正分数 + if outputData.EvaluatorResult.Correction != nil && outputData.EvaluatorResult.Correction.Score != nil { + roundedScore := utils.RoundScoreToTwoDecimals(*outputData.EvaluatorResult.Correction.Score) + outputData.EvaluatorResult.Correction.Score = &roundedScore + } +} + // RunEvaluator evaluator_version 运行 func (e *EvaluatorServiceImpl) RunEvaluator(ctx context.Context, request *entity.RunEvaluatorRequest) (*entity.EvaluatorRecord, error) { // 使用 BatchGetEvaluatorByVersionID 查询,不传 spaceID,允许查询所有空间的 evaluator @@ -631,6 +652,8 @@ func (e *EvaluatorServiceImpl) RunEvaluator(ctx context.Context, request *entity return nil, err } outputData, runStatus, traceID := evaluatorSourceService.Run(ctx, evaluatorDO, request.InputData, request.EvaluatorRunConf, request.SpaceID, request.DisableTracing) + // 统一处理评估器输出数据中的分数,保留两位小数 + roundEvaluatorOutputScore(outputData) if runStatus == entity.EvaluatorRunStatusFail { logs.CtxWarn(ctx, "[RunEvaluator] Run fail, exptID: %d, exptRunID: %d, itemID: %d, turnID: %d, evaluatorVersionID: %d, traceID: %s, err: %v", request.ExperimentID, request.ExperimentRunID, request.ItemID, request.TurnID, request.EvaluatorVersionID, traceID, outputData.EvaluatorRunError) } @@ -689,7 +712,13 @@ func (e *EvaluatorServiceImpl) DebugEvaluator(ctx context.Context, evaluatorDO * } // 3. 执行Debug // exptSpaceID 目前不影响执行路径,预留透传用途 - return evaluatorSourceService.Debug(ctx, evaluatorDO, inputData, evaluatorRunConf, exptSpaceID) + outputData, err := evaluatorSourceService.Debug(ctx, evaluatorDO, inputData, evaluatorRunConf, exptSpaceID) + if err != nil { + return nil, err + } + // 调试场景也统一对输出分数保留两位小数 + roundEvaluatorOutputScore(outputData) + return outputData, nil } func (e *EvaluatorServiceImpl) CheckNameExist(ctx context.Context, spaceID, evaluatorID int64, name string) (bool, error) { diff --git a/backend/modules/evaluation/domain/service/evaluator_record_impl.go b/backend/modules/evaluation/domain/service/evaluator_record_impl.go index 43d422aa2..1471a6d41 100644 --- a/backend/modules/evaluation/domain/service/evaluator_record_impl.go +++ b/backend/modules/evaluation/domain/service/evaluator_record_impl.go @@ -33,6 +33,7 @@ func NewEvaluatorRecordServiceImpl(idgen idgen.IIDGenerator, evaluatorPublisher events.EvaluatorEventPublisher, userInfoService userinfo.UserInfoService, exptRepo repo.IExperimentRepo, + exptTurnResultRepo repo.IExptTurnResultRepo, ) EvaluatorRecordService { evaluatorRecordServiceOnce.Do(func() { singletonEvaluatorRecordService = &EvaluatorRecordServiceImpl{ @@ -42,6 +43,7 @@ func NewEvaluatorRecordServiceImpl(idgen idgen.IIDGenerator, evaluatorPublisher: evaluatorPublisher, userInfoService: userInfoService, exptRepo: exptRepo, + exptTurnResultRepo: exptTurnResultRepo, } }) return singletonEvaluatorRecordService @@ -55,6 +57,7 @@ type EvaluatorRecordServiceImpl struct { evaluatorPublisher events.EvaluatorEventPublisher userInfoService userinfo.UserInfoService exptRepo repo.IExperimentRepo + exptTurnResultRepo repo.IExptTurnResultRepo } // CorrectEvaluatorRecord 创建 evaluator_version 运行结果 @@ -79,6 +82,16 @@ func (s *EvaluatorRecordServiceImpl) CorrectEvaluatorRecord(ctx context.Context, if err != nil { return err } + + // 如果修改了评估器得分,优先在服务层重新计算并回写行级加权得分 + if correctionDO != nil && correctionDO.Score != nil { + if err := s.recalculateWeightedScoreForTurn(ctx, evaluatorRecordDO); err != nil { + logs.CtxError(ctx, "Failed to recalculate weighted score in CorrectEvaluatorRecord, expt_id: %v, item_id: %v, turn_id: %v, err: %v", + evaluatorRecordDO.ExperimentID, evaluatorRecordDO.ItemID, evaluatorRecordDO.TurnID, err) + // 不向上抛错,避免影响主流程和后续聚合事件 + } + } + expt, err := s.exptRepo.GetByID(ctx, evaluatorRecordDO.ExperimentID, evaluatorRecordDO.SpaceID) if err != nil { return err @@ -132,6 +145,85 @@ func (s *EvaluatorRecordServiceImpl) CorrectEvaluatorRecord(ctx context.Context, return nil } +// recalculateWeightedScoreForTurn 在不依赖其他 service 的前提下,基于 repo 重新计算并回写某一轮的加权得分 +func (s *EvaluatorRecordServiceImpl) recalculateWeightedScoreForTurn(ctx context.Context, rec *entity.EvaluatorRecord) error { + // 1. 获取该轮次的 turn_result + turnResult, err := s.exptTurnResultRepo.Get(ctx, rec.SpaceID, rec.ExperimentID, rec.ItemID, rec.TurnID) + if err != nil { + return err + } + if turnResult == nil { + // 找不到直接返回,不算错误 + return nil + } + + // 2. 获取实验配置,判断是否开启加权得分 + expt, err := s.exptRepo.GetByID(ctx, rec.ExperimentID, rec.SpaceID) + if err != nil { + return err + } + if expt == nil || expt.EvalConf == nil || expt.EvalConf.ConnectorConf.EvaluatorsConf == nil || + !expt.EvalConf.ConnectorConf.EvaluatorsConf.EnableScoreWeight { + // 未启用加权得分,则不需要重算 + return nil + } + + // 3. 获取该 turn_result 的所有评估器结果引用 + refs, err := s.exptTurnResultRepo.BatchGetTurnEvaluatorResultRef(ctx, rec.SpaceID, []int64{turnResult.ID}) + if err != nil { + return err + } + if len(refs) == 0 { + return nil + } + + // 4. 收集所有 evaluator_result_id + evaluatorResultIDs := make([]int64, 0, len(refs)) + for _, r := range refs { + if r.EvaluatorResultID > 0 { + evaluatorResultIDs = append(evaluatorResultIDs, r.EvaluatorResultID) + } + } + if len(evaluatorResultIDs) == 0 { + return nil + } + + // 5. 批量获取 evaluator_record + records, err := s.evaluatorRecordRepo.BatchGetEvaluatorRecord(ctx, evaluatorResultIDs, false) + if err != nil { + return err + } + version2Record := make(map[int64]*entity.EvaluatorRecord, len(records)) + for _, r := range records { + if r != nil { + version2Record[r.EvaluatorVersionID] = r + } + } + + // 6. 构建权重映射 + scoreWeights := make(map[int64]float64) + if expt.EvalConf.ConnectorConf.EvaluatorsConf.EvaluatorConf != nil { + for _, ec := range expt.EvalConf.ConnectorConf.EvaluatorsConf.EvaluatorConf { + if ec != nil && ec.ScoreWeight != nil && *ec.ScoreWeight > 0 && ec.EvaluatorVersionID > 0 { + scoreWeights[ec.EvaluatorVersionID] = *ec.ScoreWeight + } + } + } + + // 7. 计算新的 weighted_score(共用 expt_result_impl.go 中的 calculateWeightedScore) + ws := calculateWeightedScore(version2Record, scoreWeights) + + // 8. 写回 expt_turn_result 的 weighted_score 字段 + updateFields := map[string]any{ + "weighted_score": ws, + } + itemTurnIDs := []*entity.ItemTurnID{{ + ItemID: rec.ItemID, + TurnID: rec.TurnID, + }} + return s.exptTurnResultRepo.UpdateTurnResults(ctx, rec.ExperimentID, itemTurnIDs, rec.SpaceID, updateFields) +} + func (s *EvaluatorRecordServiceImpl) GetEvaluatorRecord(ctx context.Context, evaluatorRecordID int64, includeDeleted bool) (*entity.EvaluatorRecord, error) { return s.evaluatorRecordRepo.GetEvaluatorRecord(ctx, evaluatorRecordID, includeDeleted) } diff --git a/backend/modules/evaluation/domain/service/evaluator_record_impl_test.go b/backend/modules/evaluation/domain/service/evaluator_record_impl_test.go index e84ce22ec..d11abbe1e 100644 --- a/backend/modules/evaluation/domain/service/evaluator_record_impl_test.go +++ b/backend/modules/evaluation/domain/service/evaluator_record_impl_test.go @@ -66,8 +66,8 @@ func TestEvaluatorRecordServiceImpl_CorrectEvaluatorRecord(t *testing.T) { }, Ext: map[string]string{"key": "value"}, }, + // 这里不设置 Score,避免触发加权得分重算逻辑,专注于基础校验 correctionDO: &entity.Correction{ - Score: gptr.Of(0.9), Explain: "Looks good", }, }, @@ -104,8 +104,8 @@ func TestEvaluatorRecordServiceImpl_CorrectEvaluatorRecord(t *testing.T) { ExperimentID: 201, EvaluatorVersionID: 301, }, + // 同样不设置 Score,避免触发加权得分重算逻辑 correctionDO: &entity.Correction{ - Score: gptr.Of(0.8), Explain: "Needs improvement", }, }, @@ -162,7 +162,8 @@ func TestEvaluatorRecordServiceImpl_CorrectEvaluatorRecord(t *testing.T) { ExperimentID: 202, EvaluatorVersionID: 302, }, - correctionDO: &entity.Correction{Score: gptr.Of(0.7)}, + // 不设置 Score,避免触发加权得分重算逻辑 + correctionDO: &entity.Correction{Explain: "aggr error"}, }, prepareMock: func(t *testing.T, f *fields, args args) { f.mockEvaluatorRecordRepo.EXPECT().CorrectEvaluatorRecord(gomock.Any(), gomock.Any()).Return(nil).Times(1) @@ -192,7 +193,8 @@ func TestEvaluatorRecordServiceImpl_CorrectEvaluatorRecord(t *testing.T) { EvaluatorVersionID: 303, BaseInfo: &entity.BaseInfo{CreatedAt: gptr.Of(time.Now().Add(-time.Hour).UnixMilli())}, }, - correctionDO: &entity.Correction{Score: gptr.Of(0.6)}, + // 不设置 Score,避免触发加权得分重算逻辑 + correctionDO: &entity.Correction{}, }, prepareMock: func(t *testing.T, f *fields, args args) { f.mockEvaluatorRecordRepo.EXPECT().CorrectEvaluatorRecord(gomock.Any(), gomock.Any()).Return(nil).Times(1) @@ -264,6 +266,7 @@ func TestNewEvaluatorRecordServiceImpl(t *testing.T) { mockUserInfoService := userinfo_mocks.NewMockUserInfoService(ctrl) mockExptRepo := repo_mocks.NewMockIExperimentRepo(ctrl) + mockExptTurnResultRepo := repo_mocks.NewMockIExptTurnResultRepo(ctrl) service := NewEvaluatorRecordServiceImpl( mockIdgen, @@ -272,6 +275,7 @@ func TestNewEvaluatorRecordServiceImpl(t *testing.T) { mockEvaluatorEventPublisher, mockUserInfoService, mockExptRepo, + mockExptTurnResultRepo, ) assert.NotNil(t, service) } @@ -335,3 +339,283 @@ func TestEvaluatorRecordServiceImpl_BatchGetEvaluatorRecord(t *testing.T) { assert.Nil(t, result) }) } + +func TestEvaluatorRecordServiceImpl_recalculateWeightedScoreForTurn(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + ctx := context.Background() + mockEvaluatorRecordRepo := repo_mocks.NewMockIEvaluatorRecordRepo(ctrl) + mockExptRepo := repo_mocks.NewMockIExperimentRepo(ctrl) + mockExptTurnResultRepo := repo_mocks.NewMockIExptTurnResultRepo(ctrl) + + s := &EvaluatorRecordServiceImpl{ + evaluatorRecordRepo: mockEvaluatorRecordRepo, + exptRepo: mockExptRepo, + exptTurnResultRepo: mockExptTurnResultRepo, + } + + spaceID := int64(100) + exptID := int64(1) + itemID := int64(10) + turnID := int64(20) + evaluatorRecordID := int64(101) + + t.Run("成功重新计算加权得分", func(t *testing.T) { + rec := &entity.EvaluatorRecord{ + ID: evaluatorRecordID, + SpaceID: spaceID, + ExperimentID: exptID, + ItemID: itemID, + TurnID: turnID, + EvaluatorVersionID: 201, + } + + turnResult := &entity.ExptTurnResult{ + ID: 1, + SpaceID: spaceID, + ExptID: exptID, + ItemID: itemID, + TurnID: turnID, + } + + scoreWeight := 0.6 + expt := &entity.Experiment{ + ID: exptID, + SpaceID: spaceID, + EvalConf: &entity.EvaluationConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EnableScoreWeight: true, + EvaluatorConf: []*entity.EvaluatorConf{ + { + EvaluatorVersionID: 201, + ScoreWeight: &scoreWeight, + }, + }, + }, + }, + }, + } + + refs := []*entity.ExptTurnEvaluatorResultRef{ + { + ExptTurnResultID: 1, + EvaluatorResultID: evaluatorRecordID, + }, + } + + score := 0.8 + records := []*entity.EvaluatorRecord{ + { + ID: evaluatorRecordID, + EvaluatorVersionID: 201, + EvaluatorOutputData: &entity.EvaluatorOutputData{ + EvaluatorResult: &entity.EvaluatorResult{ + Score: &score, + }, + }, + }, + } + + mockExptTurnResultRepo.EXPECT().Get(ctx, spaceID, exptID, itemID, turnID).Return(turnResult, nil) + mockExptRepo.EXPECT().GetByID(ctx, exptID, spaceID).Return(expt, nil) + mockExptTurnResultRepo.EXPECT().BatchGetTurnEvaluatorResultRef(ctx, spaceID, []int64{1}).Return(refs, nil) + mockEvaluatorRecordRepo.EXPECT().BatchGetEvaluatorRecord(ctx, []int64{evaluatorRecordID}, false).Return(records, nil) + mockExptTurnResultRepo.EXPECT().UpdateTurnResults(ctx, exptID, gomock.Any(), spaceID, gomock.Any()).Return(nil) + + err := s.recalculateWeightedScoreForTurn(ctx, rec) + assert.NoError(t, err) + }) + + t.Run("turnResult为nil,直接返回", func(t *testing.T) { + rec := &entity.EvaluatorRecord{ + ID: evaluatorRecordID, + SpaceID: spaceID, + ExperimentID: exptID, + ItemID: itemID, + TurnID: turnID, + } + + mockExptTurnResultRepo.EXPECT().Get(ctx, spaceID, exptID, itemID, turnID).Return(nil, nil) + + err := s.recalculateWeightedScoreForTurn(ctx, rec) + assert.NoError(t, err) + }) + + t.Run("获取turnResult失败", func(t *testing.T) { + rec := &entity.EvaluatorRecord{ + ID: evaluatorRecordID, + SpaceID: spaceID, + ExperimentID: exptID, + ItemID: itemID, + TurnID: turnID, + } + + mockExptTurnResultRepo.EXPECT().Get(ctx, spaceID, exptID, itemID, turnID).Return(nil, errors.New("db error")) + + err := s.recalculateWeightedScoreForTurn(ctx, rec) + assert.Error(t, err) + }) + + t.Run("实验未启用加权得分,直接返回", func(t *testing.T) { + rec := &entity.EvaluatorRecord{ + ID: evaluatorRecordID, + SpaceID: spaceID, + ExperimentID: exptID, + ItemID: itemID, + TurnID: turnID, + } + + turnResult := &entity.ExptTurnResult{ + ID: 1, + SpaceID: spaceID, + ExptID: exptID, + ItemID: itemID, + TurnID: turnID, + } + + expt := &entity.Experiment{ + ID: exptID, + SpaceID: spaceID, + EvalConf: &entity.EvaluationConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EnableScoreWeight: false, + }, + }, + }, + } + + mockExptTurnResultRepo.EXPECT().Get(ctx, spaceID, exptID, itemID, turnID).Return(turnResult, nil) + mockExptRepo.EXPECT().GetByID(ctx, exptID, spaceID).Return(expt, nil) + + err := s.recalculateWeightedScoreForTurn(ctx, rec) + assert.NoError(t, err) + }) + + t.Run("实验配置为nil,直接返回", func(t *testing.T) { + rec := &entity.EvaluatorRecord{ + ID: evaluatorRecordID, + SpaceID: spaceID, + ExperimentID: exptID, + ItemID: itemID, + TurnID: turnID, + } + + turnResult := &entity.ExptTurnResult{ + ID: 1, + SpaceID: spaceID, + ExptID: exptID, + ItemID: itemID, + TurnID: turnID, + } + + expt := &entity.Experiment{ + ID: exptID, + SpaceID: spaceID, + EvalConf: nil, + } + + mockExptTurnResultRepo.EXPECT().Get(ctx, spaceID, exptID, itemID, turnID).Return(turnResult, nil) + mockExptRepo.EXPECT().GetByID(ctx, exptID, spaceID).Return(expt, nil) + + err := s.recalculateWeightedScoreForTurn(ctx, rec) + assert.NoError(t, err) + }) + + t.Run("没有评估器结果引用,直接返回", func(t *testing.T) { + rec := &entity.EvaluatorRecord{ + ID: evaluatorRecordID, + SpaceID: spaceID, + ExperimentID: exptID, + ItemID: itemID, + TurnID: turnID, + } + + turnResult := &entity.ExptTurnResult{ + ID: 1, + SpaceID: spaceID, + ExptID: exptID, + ItemID: itemID, + TurnID: turnID, + } + + scoreWeight := 0.6 + expt := &entity.Experiment{ + ID: exptID, + SpaceID: spaceID, + EvalConf: &entity.EvaluationConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EnableScoreWeight: true, + EvaluatorConf: []*entity.EvaluatorConf{ + { + EvaluatorVersionID: 201, + ScoreWeight: &scoreWeight, + }, + }, + }, + }, + }, + } + + mockExptTurnResultRepo.EXPECT().Get(ctx, spaceID, exptID, itemID, turnID).Return(turnResult, nil) + mockExptRepo.EXPECT().GetByID(ctx, exptID, spaceID).Return(expt, nil) + mockExptTurnResultRepo.EXPECT().BatchGetTurnEvaluatorResultRef(ctx, spaceID, []int64{1}).Return([]*entity.ExptTurnEvaluatorResultRef{}, nil) + + err := s.recalculateWeightedScoreForTurn(ctx, rec) + assert.NoError(t, err) + }) + + t.Run("评估器结果ID为0,跳过", func(t *testing.T) { + rec := &entity.EvaluatorRecord{ + ID: evaluatorRecordID, + SpaceID: spaceID, + ExperimentID: exptID, + ItemID: itemID, + TurnID: turnID, + } + + turnResult := &entity.ExptTurnResult{ + ID: 1, + SpaceID: spaceID, + ExptID: exptID, + ItemID: itemID, + TurnID: turnID, + } + + scoreWeight := 0.6 + expt := &entity.Experiment{ + ID: exptID, + SpaceID: spaceID, + EvalConf: &entity.EvaluationConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EnableScoreWeight: true, + EvaluatorConf: []*entity.EvaluatorConf{ + { + EvaluatorVersionID: 201, + ScoreWeight: &scoreWeight, + }, + }, + }, + }, + }, + } + + refs := []*entity.ExptTurnEvaluatorResultRef{ + { + ExptTurnResultID: 1, + EvaluatorResultID: 0, // 无效ID + }, + } + + mockExptTurnResultRepo.EXPECT().Get(ctx, spaceID, exptID, itemID, turnID).Return(turnResult, nil) + mockExptRepo.EXPECT().GetByID(ctx, exptID, spaceID).Return(expt, nil) + mockExptTurnResultRepo.EXPECT().BatchGetTurnEvaluatorResultRef(ctx, spaceID, []int64{1}).Return(refs, nil) + + err := s.recalculateWeightedScoreForTurn(ctx, rec) + assert.NoError(t, err) + }) +} diff --git a/backend/modules/evaluation/domain/service/evaluator_source_code_impl.go b/backend/modules/evaluation/domain/service/evaluator_source_code_impl.go index a08379cad..1ab8aef3e 100755 --- a/backend/modules/evaluation/domain/service/evaluator_source_code_impl.go +++ b/backend/modules/evaluation/domain/service/evaluator_source_code_impl.go @@ -218,19 +218,19 @@ func (c *EvaluatorSourceCodeServiceImpl) Run(ctx context.Context, evaluator *ent // 1. 验证评估器 if err = c.validateEvaluator(evaluator, startTime); err != nil { output, runStatus = c.createErrorOutput(err, errno.InvalidEvaluatorTypeCode, "invalid evaluator type or code evaluator version is nil", startTime) - return + return output, runStatus, traceID } // 2. 准备代码执行环境 code, result, err := c.prepareAndExecuteCode(ctx, evaluator, input, startTime) if err != nil { output, runStatus = c.createErrorOutputFromError(err, startTime) - return + return output, runStatus, traceID } // 3. 处理执行结果 output, runStatus, err = c.processCodeExecutionResult(result, startTime) - return + return output, runStatus, traceID } // handleRunDefer 处理Run方法的defer逻辑 diff --git a/backend/modules/evaluation/domain/service/evaluator_template_impl_test.go b/backend/modules/evaluation/domain/service/evaluator_template_impl_test.go index 45fbe56b4..014980124 100644 --- a/backend/modules/evaluation/domain/service/evaluator_template_impl_test.go +++ b/backend/modules/evaluation/domain/service/evaluator_template_impl_test.go @@ -162,6 +162,128 @@ func TestEvaluatorTemplateServiceImpl_CreateEvaluatorTemplate(t *testing.T) { expectedErrCode: errno.CommonInvalidParamCode, description: "用户ID缺失应该返回错误", }, + { + name: "失败 - 描述长度超过500", + req: &entity.CreateEvaluatorTemplateRequest{ + SpaceID: 100, + Name: "Test Template", + Description: string(make([]byte, 501)), // 501个字符 + EvaluatorType: entity.EvaluatorTypePrompt, + PromptEvaluatorContent: &entity.PromptEvaluatorContent{ + MessageList: []*entity.Message{}, + }, + }, + mockSetup: func(mockRepo *repomocks.MockEvaluatorTemplateRepo) {}, + expectedError: true, + expectedErrCode: errno.CommonInvalidParamCode, + description: "描述长度超过500应该返回错误", + }, + { + name: "失败 - Benchmark长度超过100", + req: &entity.CreateEvaluatorTemplateRequest{ + SpaceID: 100, + Name: "Test Template", + EvaluatorType: entity.EvaluatorTypePrompt, + PromptEvaluatorContent: &entity.PromptEvaluatorContent{ + MessageList: []*entity.Message{}, + }, + EvaluatorInfo: &entity.EvaluatorInfo{ + Benchmark: gptr.Of(string(make([]byte, 101))), // 101个字符 + }, + }, + mockSetup: func(mockRepo *repomocks.MockEvaluatorTemplateRepo) {}, + expectedError: true, + expectedErrCode: errno.CommonInvalidParamCode, + description: "Benchmark长度超过100应该返回错误", + }, + { + name: "失败 - Vendor长度超过100", + req: &entity.CreateEvaluatorTemplateRequest{ + SpaceID: 100, + Name: "Test Template", + EvaluatorType: entity.EvaluatorTypePrompt, + PromptEvaluatorContent: &entity.PromptEvaluatorContent{ + MessageList: []*entity.Message{}, + }, + EvaluatorInfo: &entity.EvaluatorInfo{ + Vendor: gptr.Of(string(make([]byte, 101))), // 101个字符 + }, + }, + mockSetup: func(mockRepo *repomocks.MockEvaluatorTemplateRepo) {}, + expectedError: true, + expectedErrCode: errno.CommonInvalidParamCode, + description: "Vendor长度超过100应该返回错误", + }, + { + name: "失败 - VendorURL长度超过500", + req: &entity.CreateEvaluatorTemplateRequest{ + SpaceID: 100, + Name: "Test Template", + EvaluatorType: entity.EvaluatorTypePrompt, + PromptEvaluatorContent: &entity.PromptEvaluatorContent{ + MessageList: []*entity.Message{}, + }, + EvaluatorInfo: &entity.EvaluatorInfo{ + VendorURL: gptr.Of(string(make([]byte, 501))), // 501个字符 + }, + }, + mockSetup: func(mockRepo *repomocks.MockEvaluatorTemplateRepo) {}, + expectedError: true, + expectedErrCode: errno.CommonInvalidParamCode, + description: "VendorURL长度超过500应该返回错误", + }, + { + name: "失败 - UserManualURL长度超过500", + req: &entity.CreateEvaluatorTemplateRequest{ + SpaceID: 100, + Name: "Test Template", + EvaluatorType: entity.EvaluatorTypePrompt, + PromptEvaluatorContent: &entity.PromptEvaluatorContent{ + MessageList: []*entity.Message{}, + }, + EvaluatorInfo: &entity.EvaluatorInfo{ + UserManualURL: gptr.Of(string(make([]byte, 501))), // 501个字符 + }, + }, + mockSetup: func(mockRepo *repomocks.MockEvaluatorTemplateRepo) {}, + expectedError: true, + expectedErrCode: errno.CommonInvalidParamCode, + description: "UserManualURL长度超过500应该返回错误", + }, + { + name: "成功 - 创建带EvaluatorInfo的模板", + req: &entity.CreateEvaluatorTemplateRequest{ + SpaceID: 100, + Name: "Test Template", + Description: "Test Description", + EvaluatorType: entity.EvaluatorTypePrompt, + PromptEvaluatorContent: &entity.PromptEvaluatorContent{ + MessageList: []*entity.Message{ + { + Content: &entity.Content{ + Text: gptr.Of("Test prompt"), + }, + }, + }, + }, + EvaluatorInfo: &entity.EvaluatorInfo{ + Benchmark: gptr.Of("benchmark1"), + Vendor: gptr.Of("vendor1"), + VendorURL: gptr.Of("https://vendor.com"), + UserManualURL: gptr.Of("https://manual.com"), + }, + }, + mockSetup: func(mockRepo *repomocks.MockEvaluatorTemplateRepo) { + mockRepo.EXPECT(). + CreateEvaluatorTemplate(gomock.Any(), gomock.Any()). + DoAndReturn(func(ctx context.Context, template *entity.EvaluatorTemplate) (*entity.EvaluatorTemplate, error) { + template.ID = 1 + return template, nil + }) + }, + expectedError: false, + description: "成功创建带EvaluatorInfo的评估器模板", + }, { name: "失败 - repo创建错误", req: &entity.CreateEvaluatorTemplateRequest{ @@ -360,6 +482,248 @@ func TestEvaluatorTemplateServiceImpl_UpdateEvaluatorTemplate(t *testing.T) { expectedErrCode: errno.CommonInternalErrorCode, description: "获取模板错误应该返回内部错误", }, + { + name: "失败 - 描述长度超过500", + req: &entity.UpdateEvaluatorTemplateRequest{ + ID: 1, + Description: gptr.Of(string(make([]byte, 501))), // 501个字符 + }, + mockSetup: func(mockRepo *repomocks.MockEvaluatorTemplateRepo) {}, + expectedError: true, + expectedErrCode: errno.CommonInvalidParamCode, + description: "描述长度超过500应该返回错误", + }, + { + name: "失败 - Benchmark长度超过100", + req: &entity.UpdateEvaluatorTemplateRequest{ + ID: 1, + EvaluatorInfo: &entity.EvaluatorInfo{ + Benchmark: gptr.Of(string(make([]byte, 101))), // 101个字符 + }, + }, + mockSetup: func(mockRepo *repomocks.MockEvaluatorTemplateRepo) {}, + expectedError: true, + expectedErrCode: errno.CommonInvalidParamCode, + description: "Benchmark长度超过100应该返回错误", + }, + { + name: "失败 - Vendor长度超过100", + req: &entity.UpdateEvaluatorTemplateRequest{ + ID: 1, + EvaluatorInfo: &entity.EvaluatorInfo{ + Vendor: gptr.Of(string(make([]byte, 101))), // 101个字符 + }, + }, + mockSetup: func(mockRepo *repomocks.MockEvaluatorTemplateRepo) {}, + expectedError: true, + expectedErrCode: errno.CommonInvalidParamCode, + description: "Vendor长度超过100应该返回错误", + }, + { + name: "失败 - VendorURL长度超过500", + req: &entity.UpdateEvaluatorTemplateRequest{ + ID: 1, + EvaluatorInfo: &entity.EvaluatorInfo{ + VendorURL: gptr.Of(string(make([]byte, 501))), // 501个字符 + }, + }, + mockSetup: func(mockRepo *repomocks.MockEvaluatorTemplateRepo) {}, + expectedError: true, + expectedErrCode: errno.CommonInvalidParamCode, + description: "VendorURL长度超过500应该返回错误", + }, + { + name: "失败 - UserManualURL长度超过500", + req: &entity.UpdateEvaluatorTemplateRequest{ + ID: 1, + EvaluatorInfo: &entity.EvaluatorInfo{ + UserManualURL: gptr.Of(string(make([]byte, 501))), // 501个字符 + }, + }, + mockSetup: func(mockRepo *repomocks.MockEvaluatorTemplateRepo) {}, + expectedError: true, + expectedErrCode: errno.CommonInvalidParamCode, + description: "UserManualURL长度超过500应该返回错误", + }, + { + name: "成功 - 部分更新EvaluatorInfo字段", + req: &entity.UpdateEvaluatorTemplateRequest{ + ID: 1, + EvaluatorInfo: &entity.EvaluatorInfo{ + Benchmark: gptr.Of("new_benchmark"), + // 只更新Benchmark,其他字段不更新 + }, + }, + mockSetup: func(mockRepo *repomocks.MockEvaluatorTemplateRepo) { + existingTemplate := &entity.EvaluatorTemplate{ + ID: 1, + SpaceID: 100, + Name: "Original Template", + BaseInfo: &entity.BaseInfo{}, + EvaluatorInfo: &entity.EvaluatorInfo{ + Benchmark: gptr.Of("old_benchmark"), + Vendor: gptr.Of("old_vendor"), + VendorURL: gptr.Of("https://old-vendor.com"), + UserManualURL: gptr.Of("https://old-manual.com"), + }, + } + mockRepo.EXPECT(). + GetEvaluatorTemplate(gomock.Any(), int64(1), false). + Return(existingTemplate, nil) + + mockRepo.EXPECT(). + UpdateEvaluatorTemplate(gomock.Any(), gomock.Any()). + DoAndReturn(func(ctx context.Context, template *entity.EvaluatorTemplate) (*entity.EvaluatorTemplate, error) { + // 验证只更新了Benchmark,其他字段保留 + assert.Equal(t, "new_benchmark", *template.EvaluatorInfo.Benchmark) + assert.Equal(t, "old_vendor", *template.EvaluatorInfo.Vendor) + assert.Equal(t, "https://old-vendor.com", *template.EvaluatorInfo.VendorURL) + assert.Equal(t, "https://old-manual.com", *template.EvaluatorInfo.UserManualURL) + return template, nil + }) + }, + expectedError: false, + description: "成功部分更新EvaluatorInfo字段,保留未更新字段", + }, + { + name: "成功 - 更新EvaluatorInfo到nil模板", + req: &entity.UpdateEvaluatorTemplateRequest{ + ID: 1, + EvaluatorInfo: &entity.EvaluatorInfo{ + Benchmark: gptr.Of("new_benchmark"), + Vendor: gptr.Of("new_vendor"), + }, + }, + mockSetup: func(mockRepo *repomocks.MockEvaluatorTemplateRepo) { + existingTemplate := &entity.EvaluatorTemplate{ + ID: 1, + SpaceID: 100, + Name: "Original Template", + BaseInfo: &entity.BaseInfo{}, + // EvaluatorInfo为nil + } + mockRepo.EXPECT(). + GetEvaluatorTemplate(gomock.Any(), int64(1), false). + Return(existingTemplate, nil) + + mockRepo.EXPECT(). + UpdateEvaluatorTemplate(gomock.Any(), gomock.Any()). + DoAndReturn(func(ctx context.Context, template *entity.EvaluatorTemplate) (*entity.EvaluatorTemplate, error) { + // 验证EvaluatorInfo被创建并设置 + assert.NotNil(t, template.EvaluatorInfo) + assert.Equal(t, "new_benchmark", *template.EvaluatorInfo.Benchmark) + assert.Equal(t, "new_vendor", *template.EvaluatorInfo.Vendor) + return template, nil + }) + }, + expectedError: false, + description: "成功为nil EvaluatorInfo创建并设置字段", + }, + { + name: "成功 - 更新PromptEvaluatorContent", + req: &entity.UpdateEvaluatorTemplateRequest{ + ID: 1, + PromptEvaluatorContent: &entity.PromptEvaluatorContent{ + MessageList: []*entity.Message{ + { + Content: &entity.Content{ + Text: gptr.Of("Updated prompt"), + }, + }, + }, + }, + }, + mockSetup: func(mockRepo *repomocks.MockEvaluatorTemplateRepo) { + existingTemplate := &entity.EvaluatorTemplate{ + ID: 1, + SpaceID: 100, + Name: "Original Template", + BaseInfo: &entity.BaseInfo{}, + } + mockRepo.EXPECT(). + GetEvaluatorTemplate(gomock.Any(), int64(1), false). + Return(existingTemplate, nil) + + mockRepo.EXPECT(). + UpdateEvaluatorTemplate(gomock.Any(), gomock.Any()). + DoAndReturn(func(ctx context.Context, template *entity.EvaluatorTemplate) (*entity.EvaluatorTemplate, error) { + assert.NotNil(t, template.PromptEvaluatorContent) + assert.Len(t, template.PromptEvaluatorContent.MessageList, 1) + return template, nil + }) + }, + expectedError: false, + description: "成功更新PromptEvaluatorContent", + }, + { + name: "成功 - 更新CodeEvaluatorContent", + req: &entity.UpdateEvaluatorTemplateRequest{ + ID: 1, + CodeEvaluatorContent: &entity.CodeEvaluatorContent{ + Lang2CodeContent: map[entity.LanguageType]string{ + entity.LanguageTypePython: "def updated(): pass", + }, + }, + }, + mockSetup: func(mockRepo *repomocks.MockEvaluatorTemplateRepo) { + existingTemplate := &entity.EvaluatorTemplate{ + ID: 1, + SpaceID: 100, + Name: "Original Template", + BaseInfo: &entity.BaseInfo{}, + } + mockRepo.EXPECT(). + GetEvaluatorTemplate(gomock.Any(), int64(1), false). + Return(existingTemplate, nil) + + mockRepo.EXPECT(). + UpdateEvaluatorTemplate(gomock.Any(), gomock.Any()). + DoAndReturn(func(ctx context.Context, template *entity.EvaluatorTemplate) (*entity.EvaluatorTemplate, error) { + assert.NotNil(t, template.CodeEvaluatorContent) + assert.NotEmpty(t, template.CodeEvaluatorContent.Lang2CodeContent) + return template, nil + }) + }, + expectedError: false, + description: "成功更新CodeEvaluatorContent", + }, + { + name: "成功 - 更新其他字段(InputSchemas、OutputSchemas等)", + req: &entity.UpdateEvaluatorTemplateRequest{ + ID: 1, + InputSchemas: []*entity.ArgsSchema{{Key: gptr.Of("input1")}}, + OutputSchemas: []*entity.ArgsSchema{{Key: gptr.Of("output1")}}, + ReceiveChatHistory: gptr.Of(true), + Tags: map[entity.EvaluatorTagLangType]map[entity.EvaluatorTagKey][]string{ + entity.EvaluatorTagLangType_Zh: { + entity.EvaluatorTagKey_Category: {"tag1", "tag2"}, + }, + }, + }, + mockSetup: func(mockRepo *repomocks.MockEvaluatorTemplateRepo) { + existingTemplate := &entity.EvaluatorTemplate{ + ID: 1, + SpaceID: 100, + Name: "Original Template", + BaseInfo: &entity.BaseInfo{}, + } + mockRepo.EXPECT(). + GetEvaluatorTemplate(gomock.Any(), int64(1), false). + Return(existingTemplate, nil) + + mockRepo.EXPECT(). + UpdateEvaluatorTemplate(gomock.Any(), gomock.Any()). + DoAndReturn(func(ctx context.Context, template *entity.EvaluatorTemplate) (*entity.EvaluatorTemplate, error) { + assert.Len(t, template.InputSchemas, 1) + assert.Len(t, template.OutputSchemas, 1) + assert.True(t, *template.ReceiveChatHistory) + assert.NotNil(t, template.Tags) + return template, nil + }) + }, + expectedError: false, + description: "成功更新其他字段", + }, { name: "失败 - 更新模板错误", req: &entity.UpdateEvaluatorTemplateRequest{ diff --git a/backend/modules/evaluation/domain/service/expt_export_impl.go b/backend/modules/evaluation/domain/service/expt_export_impl.go index 8f1e5165f..d9c11603e 100644 --- a/backend/modules/evaluation/domain/service/expt_export_impl.go +++ b/backend/modules/evaluation/domain/service/expt_export_impl.go @@ -378,6 +378,7 @@ const ( columnNameStatus = "status" columnNameLogID = "logID" columnNameTargetTraceID = "targetTraceID" + columnNameWeightedScore = "weightedScore" ) func (e exportCSVHelper) buildColumns(ctx context.Context) ([]string, error) { @@ -406,6 +407,11 @@ func (e exportCSVHelper) buildColumns(ctx context.Context) ([]string, error) { columns = append(columns, getColumnNameEvaluatorReason(ptr.From(colEvaluator.Name), ptr.From(colEvaluator.Version))) } + // 加权得分列(如果有评估器,则添加加权得分列) + if len(e.colEvaluators) > 0 { + columns = append(columns, columnNameWeightedScore) + } + // colAnnotations for _, colAnnotation := range e.colAnnotations { if colAnnotation == nil { @@ -521,6 +527,15 @@ func (e *exportCSVHelper) buildRows(ctx context.Context) ([][]string, error) { rowData = append(rowData, getEvaluatorReason(evaluatorRecord)) } + // 加权得分(如果有评估器,则添加加权得分数据) + if len(e.colEvaluators) > 0 { + weightedScore := "" + if payload.EvaluatorOutput != nil && payload.EvaluatorOutput.WeightedScore != nil { + weightedScore = strconv.FormatFloat(*payload.EvaluatorOutput.WeightedScore, 'f', 2, 64) + } + rowData = append(rowData, weightedScore) + } + // 标注结果,按Annotation的顺序排序 if payload.AnnotateResult != nil && payload.AnnotateResult.AnnotateRecords != nil { annotateRecords := payload.AnnotateResult.AnnotateRecords diff --git a/backend/modules/evaluation/domain/service/expt_manage_execution_impl.go b/backend/modules/evaluation/domain/service/expt_manage_execution_impl.go index 50a3fdd2d..29589f609 100644 --- a/backend/modules/evaluation/domain/service/expt_manage_execution_impl.go +++ b/backend/modules/evaluation/domain/service/expt_manage_execution_impl.go @@ -530,6 +530,15 @@ func (e *ExptMangerImpl) CompleteExpt(ctx context.Context, exptID, spaceID int64 return err } + // 如果实验关联了模板,更新模板的 ExptInfo(状态变更,数量不变) + if got.ExptTemplateMeta != nil && got.ExptTemplateMeta.ID > 0 && e.templateManager != nil { + if err := e.templateManager.UpdateExptInfo(ctx, got.ExptTemplateMeta.ID, spaceID, exptID, status, 0); err != nil { + // 记录错误但不影响主流程 + logs.CtxError(ctx, "[ExptEval] UpdateExptInfo failed in CompleteExpt, template_id: %v, expt_id: %v, err: %v", + got.ExptTemplateMeta.ID, exptID, err) + } + } + if err := NewQuotaService(e.quotaRepo, e.configer).ReleaseExptRun(ctx, exptID, spaceID, session); err != nil { return err } diff --git a/backend/modules/evaluation/domain/service/expt_manage_impl.go b/backend/modules/evaluation/domain/service/expt_manage_impl.go index ad932e634..b8ab5953c 100644 --- a/backend/modules/evaluation/domain/service/expt_manage_impl.go +++ b/backend/modules/evaluation/domain/service/expt_manage_impl.go @@ -57,6 +57,8 @@ func NewExptManager( evaluatorService EvaluatorService, benefitService benefit.IBenefitService, exptAggrResultService ExptAggrResultService, + templateRepo repo.IExptTemplateRepo, + templateManager IExptTemplateManager, ) IExptManager { return &ExptMangerImpl{ // tupleSvc: tupleSvc, @@ -81,6 +83,8 @@ func NewExptManager( evaluatorService: evaluatorService, benefitService: benefitService, exptAggrResultService: exptAggrResultService, + templateRepo: templateRepo, + templateManager: templateManager, } } @@ -107,6 +111,8 @@ type ExptMangerImpl struct { evalTargetService IEvalTargetService evaluatorService EvaluatorService benefitService benefit.IBenefitService + templateRepo repo.IExptTemplateRepo + templateManager IExptTemplateManager } func (e *ExptMangerImpl) MGetDetail(ctx context.Context, exptIDs []int64, spaceID int64, session *entity.Session) ([]*entity.Experiment, error) { @@ -140,6 +146,11 @@ func (e *ExptMangerImpl) GetDetail(ctx context.Context, exptID, spaceID int64, s return nil, err } + // 填充 ExptTemplateMeta + if err := e.fillExptTemplates(ctx, []*entity.Experiment{expt}, spaceID); err != nil { + return nil, err + } + tuple, err := e.getTupleByExpt(ctx, expt, spaceID, session, opts...) if err != nil { return nil, err @@ -186,9 +197,74 @@ func (e *ExptMangerImpl) packExperimentResult(ctx context.Context, expts []*enti } } + // 填充关联的实验模板基础信息 + if err := e.fillExptTemplates(ctx, expts, spaceID); err != nil { + return nil, err + } + return expts, nil } +// fillExptTemplates 为实验列表按需补充关联模板的基础信息(名称、描述等) +func (e *ExptMangerImpl) fillExptTemplates(ctx context.Context, expts []*entity.Experiment, spaceID int64) error { + if len(expts) == 0 || e.templateRepo == nil { + return nil + } + + idSet := make(map[int64]struct{}) + for _, ex := range expts { + if ex == nil || ex.ExptTemplateMeta == nil || ex.ExptTemplateMeta.ID == 0 { + continue + } + idSet[ex.ExptTemplateMeta.ID] = struct{}{} + } + if len(idSet) == 0 { + return nil + } + + templateIDs := make([]int64, 0, len(idSet)) + for id := range idSet { + templateIDs = append(templateIDs, id) + } + + templates, err := e.templateRepo.MGetByID(ctx, templateIDs, spaceID) + if err != nil { + return err + } + if len(templates) == 0 { + // 如果一个模板都查不到(例如都被软删除),将所有带模板 ID 的实验的 ExptTemplateMeta 置为 nil + for _, ex := range expts { + if ex == nil || ex.ExptTemplateMeta == nil || ex.ExptTemplateMeta.ID == 0 { + continue + } + ex.ExptTemplateMeta = nil + } + return nil + } + + templateMap := gslice.ToMap(templates, func(t *entity.ExptTemplate) (int64, *entity.ExptTemplate) { + if t == nil { + return 0, nil + } + return t.GetID(), t + }) + + for _, ex := range expts { + if ex == nil || ex.ExptTemplateMeta == nil || ex.ExptTemplateMeta.ID == 0 { + continue + } + if tpl, ok := templateMap[ex.ExptTemplateMeta.ID]; ok { + // 只回填模板的 Meta 到 Experiment.ExptTemplateMeta,避免在 Experiment 上挂完整模板对象 + ex.ExptTemplateMeta = tpl.Meta + } else { + // 如果模板在数据库中查不到了(已被删除),将 ExptTemplateMeta 设置为 nil + ex.ExptTemplateMeta = nil + } + } + + return nil +} + func (e *ExptMangerImpl) CheckName(ctx context.Context, name string, spaceID int64, session *entity.Session) (pass bool, err error) { _, exist, err := e.exptRepo.GetByName(ctx, name, spaceID) if err != nil { @@ -201,7 +277,32 @@ func (e *ExptMangerImpl) CheckName(ctx context.Context, name string, spaceID int } func (e *ExptMangerImpl) MDelete(ctx context.Context, exptIDs []int64, spaceID int64, session *entity.Session) error { - return e.exptRepo.MDelete(ctx, exptIDs, spaceID) + logs.CtxInfo(ctx, "batch delete expts, expt_ids: %v", exptIDs) + + // 先获取实验信息,用于判断是否关联模板 + expts, err := e.exptRepo.MGetByID(ctx, exptIDs, spaceID) + if err != nil { + return err + } + + // 批量删除实验 + if err := e.exptRepo.MDelete(ctx, exptIDs, spaceID); err != nil { + return err + } + + // 针对每个实验,如果关联了模板,则更新模板的 ExptInfo(删除实验,数量 -1) + for _, expt := range expts { + if expt == nil || expt.ExptTemplateMeta == nil || expt.ExptTemplateMeta.ID <= 0 || e.templateManager == nil { + continue + } + if err := e.templateManager.UpdateExptInfo(ctx, expt.ExptTemplateMeta.ID, spaceID, expt.ID, expt.Status, -1); err != nil { + // 记录错误但不影响主流程 + logs.CtxError(ctx, "[ExptEval] UpdateExptInfo failed in MDelete, template_id: %v, expt_id: %v, err: %v", + expt.ExptTemplateMeta.ID, expt.ID, err) + } + } + + return nil } func (e *ExptMangerImpl) makeExptMutexLockKey(exptID int64) string { @@ -560,6 +661,24 @@ func (e *ExptMangerImpl) CreateExpt(ctx context.Context, req *entity.CreateExptP EvalSet: tuple.EvalSet, } + // 如果提供了模板 ID,设置 ExptTemplateMeta + if req.ExptTemplateID > 0 { + do.ExptTemplateMeta = &entity.ExptTemplateMeta{ + ID: req.ExptTemplateID, + } + } + + // 根据 EvaluatorConf.ScoreWeight 设置实验是否启用分数权重 + if do.EvalConf != nil && do.EvalConf.ConnectorConf.EvaluatorsConf != nil { + do.EvalConf.ConnectorConf.EvaluatorsConf.EnableScoreWeight = false + for _, ec := range do.EvalConf.ConnectorConf.EvaluatorsConf.EvaluatorConf { + if ec != nil && ec.ScoreWeight != nil && *ec.ScoreWeight > 0 { + do.EvalConf.ConnectorConf.EvaluatorsConf.EnableScoreWeight = true + break + } + } + } + if !req.CreateEvalTargetParam.IsNull() { do.TargetType = gptr.Indirect(req.CreateEvalTargetParam.EvalTargetType) if versionedTargetID != nil { @@ -705,7 +824,28 @@ func (e *ExptMangerImpl) Update(ctx context.Context, expt *entity.Experiment, se func (e *ExptMangerImpl) Delete(ctx context.Context, exptID, spaceID int64, session *entity.Session) error { logs.CtxInfo(ctx, "delete expt, expt_id: %v", exptID) - return e.exptRepo.Delete(ctx, exptID, spaceID) + + // 先获取实验信息,用于判断是否关联模板 + expt, err := e.exptRepo.GetByID(ctx, exptID, spaceID) + if err != nil { + return err + } + + // 删除实验 + if err := e.exptRepo.Delete(ctx, exptID, spaceID); err != nil { + return err + } + + // 如果实验关联了模板,更新模板的 ExptInfo(删除实验,数量 -1) + if expt != nil && expt.ExptTemplateMeta != nil && expt.ExptTemplateMeta.ID > 0 && e.templateManager != nil { + if err := e.templateManager.UpdateExptInfo(ctx, expt.ExptTemplateMeta.ID, spaceID, exptID, expt.Status, -1); err != nil { + // 记录错误但不影响主流程 + logs.CtxError(ctx, "[ExptEval] UpdateExptInfo failed in Delete, template_id: %v, expt_id: %v, err: %v", + expt.ExptTemplateMeta.ID, exptID, err) + } + } + + return nil } func (e *ExptMangerImpl) Clone(ctx context.Context, exptID, spaceID int64, session *entity.Session) (*entity.Experiment, error) { diff --git a/backend/modules/evaluation/domain/service/expt_manage_impl_test.go b/backend/modules/evaluation/domain/service/expt_manage_impl_test.go index 04395717c..24d28a4b6 100644 --- a/backend/modules/evaluation/domain/service/expt_manage_impl_test.go +++ b/backend/modules/evaluation/domain/service/expt_manage_impl_test.go @@ -28,6 +28,7 @@ import ( eventsMocks "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/events/mocks" repoMocks "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/repo/mocks" svcMocks "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/service/mocks" + "github.com/stretchr/testify/assert" ) func newTestExptManager(ctrl *gomock.Controller) *ExptMangerImpl { @@ -53,6 +54,8 @@ func newTestExptManager(ctrl *gomock.Controller) *ExptMangerImpl { evalTargetService: svcMocks.NewMockIEvalTargetService(ctrl), evaluatorService: svcMocks.NewMockEvaluatorService(ctrl), benefitService: benefitMocks.NewMockIBenefitService(ctrl), + templateRepo: repoMocks.NewMockIExptTemplateRepo(ctrl), + templateManager: svcMocks.NewMockIExptTemplateManager(ctrl), } } @@ -207,6 +210,85 @@ func TestExptMangerImpl_CreateExpt(t *testing.T) { t.Logf("CreateExpt() 依赖mock通过,未覆盖getExptTupleByID/CheckRun逻辑") } }) + + t.Run("设置ExptTemplateMeta", func(t *testing.T) { + paramWithTemplate := &entity.CreateExptParam{ + WorkspaceID: 1, + Name: "expt_with_template", + EvalSetID: 2, + EvalSetVersionID: 3, + ExptTemplateID: 100, + EvaluatorVersionIds: []int64{10}, + } + expt, err := mgr.CreateExpt(ctx, paramWithTemplate, session) + if err == nil && expt != nil { + if expt.ExptTemplateMeta == nil { + t.Errorf("CreateExpt() ExptTemplateMeta should be set when ExptTemplateID > 0") + } else if expt.ExptTemplateMeta.ID != 100 { + t.Errorf("CreateExpt() ExptTemplateMeta.ID = %v, want 100", expt.ExptTemplateMeta.ID) + } + } + }) + + t.Run("根据ScoreWeight设置EnableScoreWeight", func(t *testing.T) { + scoreWeight := 0.5 + paramWithScoreWeight := &entity.CreateExptParam{ + WorkspaceID: 1, + Name: "expt_with_score_weight", + EvalSetID: 2, + EvalSetVersionID: 3, + EvaluatorVersionIds: []int64{10}, + ExptConf: &entity.EvaluationConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EvaluatorConf: []*entity.EvaluatorConf{ + { + EvaluatorVersionID: 10, + ScoreWeight: &scoreWeight, + }, + }, + }, + }, + }, + } + expt, err := mgr.CreateExpt(ctx, paramWithScoreWeight, session) + if err == nil && expt != nil && expt.EvalConf != nil && + expt.EvalConf.ConnectorConf.EvaluatorsConf != nil { + if !expt.EvalConf.ConnectorConf.EvaluatorsConf.EnableScoreWeight { + t.Errorf("CreateExpt() EnableScoreWeight should be true when ScoreWeight > 0") + } + } + }) + + t.Run("ScoreWeight为0或nil时不启用EnableScoreWeight", func(t *testing.T) { + zeroWeight := 0.0 + paramWithoutScoreWeight := &entity.CreateExptParam{ + WorkspaceID: 1, + Name: "expt_without_score_weight", + EvalSetID: 2, + EvalSetVersionID: 3, + EvaluatorVersionIds: []int64{10}, + ExptConf: &entity.EvaluationConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EvaluatorConf: []*entity.EvaluatorConf{ + { + EvaluatorVersionID: 10, + ScoreWeight: &zeroWeight, + }, + }, + }, + }, + }, + } + expt, err := mgr.CreateExpt(ctx, paramWithoutScoreWeight, session) + if err == nil && expt != nil && expt.EvalConf != nil && + expt.EvalConf.ConnectorConf.EvaluatorsConf != nil { + if expt.EvalConf.ConnectorConf.EvaluatorsConf.EnableScoreWeight { + t.Errorf("CreateExpt() EnableScoreWeight should be false when ScoreWeight <= 0") + } + } + }) } func TestExptMangerImpl_Update(t *testing.T) { @@ -302,10 +384,92 @@ func TestExptMangerImpl_Delete(t *testing.T) { mgr := newTestExptManager(ctrl) ctx := context.Background() session := &entity.Session{UserID: "1"} - mgr.exptRepo.(*repoMocks.MockIExperimentRepo).EXPECT().Delete(ctx, int64(1), int64(1)).Return(nil).AnyTimes() + spaceID := int64(1) + exptID := int64(1) - t.Run("normal", func(t *testing.T) { - err := mgr.Delete(ctx, 1, 1, session) + t.Run("正常删除", func(t *testing.T) { + mockExpt := &entity.Experiment{ + ID: exptID, + SpaceID: spaceID, + } + mgr.exptRepo.(*repoMocks.MockIExperimentRepo).EXPECT().GetByID(ctx, exptID, spaceID).Return(mockExpt, nil) + mgr.exptRepo.(*repoMocks.MockIExperimentRepo).EXPECT().Delete(ctx, exptID, spaceID).Return(nil) + + err := mgr.Delete(ctx, exptID, spaceID, session) + if err != nil { + t.Errorf("Delete() error = %v", err) + } + }) + + t.Run("删除时关联模板,更新模板ExptInfo", func(t *testing.T) { + templateID := int64(100) + mockExpt := &entity.Experiment{ + ID: exptID, + SpaceID: spaceID, + Status: entity.ExptStatus_Success, + ExptTemplateMeta: &entity.ExptTemplateMeta{ID: templateID}, + } + mgr.exptRepo.(*repoMocks.MockIExperimentRepo).EXPECT().GetByID(ctx, exptID, spaceID).Return(mockExpt, nil) + mgr.exptRepo.(*repoMocks.MockIExperimentRepo).EXPECT().Delete(ctx, exptID, spaceID).Return(nil) + mgr.templateManager.(*svcMocks.MockIExptTemplateManager).EXPECT(). + UpdateExptInfo(ctx, templateID, spaceID, exptID, entity.ExptStatus_Success, int64(-1)).Return(nil) + + err := mgr.Delete(ctx, exptID, spaceID, session) + if err != nil { + t.Errorf("Delete() error = %v", err) + } + }) + + t.Run("UpdateExptInfo失败不影响主流程", func(t *testing.T) { + templateID := int64(100) + mockExpt := &entity.Experiment{ + ID: exptID, + SpaceID: spaceID, + Status: entity.ExptStatus_Failed, + ExptTemplateMeta: &entity.ExptTemplateMeta{ID: templateID}, + } + mgr.exptRepo.(*repoMocks.MockIExperimentRepo).EXPECT().GetByID(ctx, exptID, spaceID).Return(mockExpt, nil) + mgr.exptRepo.(*repoMocks.MockIExperimentRepo).EXPECT().Delete(ctx, exptID, spaceID).Return(nil) + mgr.templateManager.(*svcMocks.MockIExptTemplateManager).EXPECT(). + UpdateExptInfo(ctx, templateID, spaceID, exptID, entity.ExptStatus_Failed, int64(-1)). + Return(errors.New("update error")) + + // UpdateExptInfo失败不应该影响主流程,应该返回nil + err := mgr.Delete(ctx, exptID, spaceID, session) + if err != nil { + t.Errorf("Delete() should not return error when UpdateExptInfo fails, got %v", err) + } + }) + + t.Run("实验没有关联模板,跳过UpdateExptInfo", func(t *testing.T) { + mockExpt := &entity.Experiment{ + ID: exptID, + SpaceID: spaceID, + ExptTemplateMeta: nil, + } + mgr.exptRepo.(*repoMocks.MockIExperimentRepo).EXPECT().GetByID(ctx, exptID, spaceID).Return(mockExpt, nil) + mgr.exptRepo.(*repoMocks.MockIExperimentRepo).EXPECT().Delete(ctx, exptID, spaceID).Return(nil) + + err := mgr.Delete(ctx, exptID, spaceID, session) + if err != nil { + t.Errorf("Delete() error = %v", err) + } + }) + + t.Run("templateManager为nil,跳过UpdateExptInfo", func(t *testing.T) { + mgrNoTemplateManager := newTestExptManager(ctrl) + mgrNoTemplateManager.templateManager = nil + templateID := int64(100) + mockExpt := &entity.Experiment{ + ID: exptID, + SpaceID: spaceID, + Status: entity.ExptStatus_Success, + ExptTemplateMeta: &entity.ExptTemplateMeta{ID: templateID}, + } + mgrNoTemplateManager.exptRepo.(*repoMocks.MockIExperimentRepo).EXPECT().GetByID(ctx, exptID, spaceID).Return(mockExpt, nil) + mgrNoTemplateManager.exptRepo.(*repoMocks.MockIExperimentRepo).EXPECT().Delete(ctx, exptID, spaceID).Return(nil) + + err := mgrNoTemplateManager.Delete(ctx, exptID, spaceID, session) if err != nil { t.Errorf("Delete() error = %v", err) } @@ -810,6 +974,8 @@ func TestNewExptManager(t *testing.T) { mockEvaluatorService := svcMocks.NewMockEvaluatorService(ctrl) mockBenefitService := benefitMocks.NewMockIBenefitService(ctrl) mockExptAggrResultService := svcMocks.NewMockExptAggrResultService(ctrl) + mockTemplateRepo := repoMocks.NewMockIExptTemplateRepo(ctrl) + mockTemplateManager := svcMocks.NewMockIExptTemplateManager(ctrl) mgr := NewExptManager( mockExptResultService, @@ -833,6 +999,8 @@ func TestNewExptManager(t *testing.T) { mockEvaluatorService, mockBenefitService, mockExptAggrResultService, + mockTemplateRepo, + mockTemplateManager, ) impl, ok := mgr.(*ExptMangerImpl) @@ -857,3 +1025,369 @@ func TestNewExptManager(t *testing.T) { t.Errorf("benefitService not set correctly") } } + +func TestExptMangerImpl_MDelete(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + mgr := newTestExptManager(ctrl) + ctx := context.Background() + session := &entity.Session{UserID: "1"} + spaceID := int64(1) + + t.Run("正常批量删除", func(t *testing.T) { + exptIDs := []int64{1, 2} + expts := []*entity.Experiment{ + {ID: 1, SpaceID: spaceID}, + {ID: 2, SpaceID: spaceID}, + } + mgr.exptRepo.(*repoMocks.MockIExperimentRepo).EXPECT().MGetByID(ctx, exptIDs, spaceID).Return(expts, nil) + mgr.exptRepo.(*repoMocks.MockIExperimentRepo).EXPECT().MDelete(ctx, exptIDs, spaceID).Return(nil) + + err := mgr.MDelete(ctx, exptIDs, spaceID, session) + if err != nil { + t.Errorf("MDelete() error = %v", err) + } + }) + + t.Run("批量删除时关联模板,更新模板ExptInfo", func(t *testing.T) { + exptIDs := []int64{1, 2} + expts := []*entity.Experiment{ + { + ID: 1, + SpaceID: spaceID, + Status: entity.ExptStatus_Success, + ExptTemplateMeta: &entity.ExptTemplateMeta{ID: 100}, + }, + { + ID: 2, + SpaceID: spaceID, + Status: entity.ExptStatus_Failed, + ExptTemplateMeta: &entity.ExptTemplateMeta{ID: 200}, + }, + } + mgr.exptRepo.(*repoMocks.MockIExperimentRepo).EXPECT().MGetByID(ctx, exptIDs, spaceID).Return(expts, nil) + mgr.exptRepo.(*repoMocks.MockIExperimentRepo).EXPECT().MDelete(ctx, exptIDs, spaceID).Return(nil) + mgr.templateManager.(*svcMocks.MockIExptTemplateManager).EXPECT(). + UpdateExptInfo(ctx, int64(100), spaceID, int64(1), entity.ExptStatus_Success, int64(-1)).Return(nil) + mgr.templateManager.(*svcMocks.MockIExptTemplateManager).EXPECT(). + UpdateExptInfo(ctx, int64(200), spaceID, int64(2), entity.ExptStatus_Failed, int64(-1)).Return(nil) + + err := mgr.MDelete(ctx, exptIDs, spaceID, session) + if err != nil { + t.Errorf("MDelete() error = %v", err) + } + }) + + t.Run("MGetByID失败", func(t *testing.T) { + exptIDs := []int64{1, 2} + mgr.exptRepo.(*repoMocks.MockIExperimentRepo).EXPECT().MGetByID(ctx, exptIDs, spaceID).Return(nil, errors.New("db error")) + + err := mgr.MDelete(ctx, exptIDs, spaceID, session) + if err == nil { + t.Errorf("MDelete() expected error, got nil") + } + }) + + t.Run("MDelete失败", func(t *testing.T) { + exptIDs := []int64{1, 2} + expts := []*entity.Experiment{ + {ID: 1, SpaceID: spaceID}, + {ID: 2, SpaceID: spaceID}, + } + mgr.exptRepo.(*repoMocks.MockIExperimentRepo).EXPECT().MGetByID(ctx, exptIDs, spaceID).Return(expts, nil) + mgr.exptRepo.(*repoMocks.MockIExperimentRepo).EXPECT().MDelete(ctx, exptIDs, spaceID).Return(errors.New("delete error")) + + err := mgr.MDelete(ctx, exptIDs, spaceID, session) + if err == nil { + t.Errorf("MDelete() expected error, got nil") + } + }) + + t.Run("UpdateExptInfo失败不影响主流程", func(t *testing.T) { + exptIDs := []int64{1} + expts := []*entity.Experiment{ + { + ID: 1, + SpaceID: spaceID, + Status: entity.ExptStatus_Success, + ExptTemplateMeta: &entity.ExptTemplateMeta{ID: 100}, + }, + } + mgr.exptRepo.(*repoMocks.MockIExperimentRepo).EXPECT().MGetByID(ctx, exptIDs, spaceID).Return(expts, nil) + mgr.exptRepo.(*repoMocks.MockIExperimentRepo).EXPECT().MDelete(ctx, exptIDs, spaceID).Return(nil) + mgr.templateManager.(*svcMocks.MockIExptTemplateManager).EXPECT(). + UpdateExptInfo(ctx, int64(100), spaceID, int64(1), entity.ExptStatus_Success, int64(-1)). + Return(errors.New("update error")) + + // UpdateExptInfo失败不应该影响主流程,应该返回nil + err := mgr.MDelete(ctx, exptIDs, spaceID, session) + if err != nil { + t.Errorf("MDelete() should not return error when UpdateExptInfo fails, got %v", err) + } + }) + + t.Run("实验没有关联模板,跳过UpdateExptInfo", func(t *testing.T) { + exptIDs := []int64{1, 2} + expts := []*entity.Experiment{ + {ID: 1, SpaceID: spaceID, ExptTemplateMeta: nil}, + {ID: 2, SpaceID: spaceID, ExptTemplateMeta: &entity.ExptTemplateMeta{ID: 0}}, + } + mgr.exptRepo.(*repoMocks.MockIExperimentRepo).EXPECT().MGetByID(ctx, exptIDs, spaceID).Return(expts, nil) + mgr.exptRepo.(*repoMocks.MockIExperimentRepo).EXPECT().MDelete(ctx, exptIDs, spaceID).Return(nil) + + err := mgr.MDelete(ctx, exptIDs, spaceID, session) + if err != nil { + t.Errorf("MDelete() error = %v", err) + } + }) +} + +func TestExptMangerImpl_fillExptTemplates(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + mgr := newTestExptManager(ctrl) + ctx := context.Background() + spaceID := int64(1) + + t.Run("expts为空,直接返回", func(t *testing.T) { + err := mgr.fillExptTemplates(ctx, nil, spaceID) + assert.NoError(t, err) + + err = mgr.fillExptTemplates(ctx, []*entity.Experiment{}, spaceID) + assert.NoError(t, err) + }) + + t.Run("templateRepo为nil,直接返回", func(t *testing.T) { + mgrNoRepo := newTestExptManager(ctrl) + mgrNoRepo.templateRepo = nil + expts := []*entity.Experiment{ + { + ID: 1, + ExptTemplateMeta: &entity.ExptTemplateMeta{ID: 100}, + }, + } + err := mgrNoRepo.fillExptTemplates(ctx, expts, spaceID) + assert.NoError(t, err) + }) + + t.Run("没有有效的ExptTemplateMeta,直接返回", func(t *testing.T) { + expts := []*entity.Experiment{ + {ID: 1, ExptTemplateMeta: nil}, + {ID: 2, ExptTemplateMeta: &entity.ExptTemplateMeta{ID: 0}}, + } + err := mgr.fillExptTemplates(ctx, expts, spaceID) + assert.NoError(t, err) + }) + + t.Run("成功填充模板信息", func(t *testing.T) { + templateID1 := int64(100) + templateID2 := int64(200) + expts := []*entity.Experiment{ + { + ID: 1, + ExptTemplateMeta: &entity.ExptTemplateMeta{ID: templateID1}, + }, + { + ID: 2, + ExptTemplateMeta: &entity.ExptTemplateMeta{ID: templateID2}, + }, + } + + templates := []*entity.ExptTemplate{ + { + Meta: &entity.ExptTemplateMeta{ + ID: templateID1, + WorkspaceID: spaceID, + Name: "template1", + Desc: "desc1", + }, + }, + { + Meta: &entity.ExptTemplateMeta{ + ID: templateID2, + WorkspaceID: spaceID, + Name: "template2", + Desc: "desc2", + }, + }, + } + + mgr.templateRepo.(*repoMocks.MockIExptTemplateRepo).EXPECT(). + MGetByID(ctx, gomock.Any(), spaceID). + DoAndReturn(func(_ context.Context, ids []int64, _ int64) ([]*entity.ExptTemplate, error) { + // 验证ids包含templateID1和templateID2,但不关心顺序 + assert.Len(t, ids, 2) + assert.Contains(t, ids, templateID1) + assert.Contains(t, ids, templateID2) + // 返回对应的模板 + result := make([]*entity.ExptTemplate, 0, 2) + for _, id := range ids { + switch id { + case templateID1: + result = append(result, templates[0]) + case templateID2: + result = append(result, templates[1]) + } + } + return result, nil + }) + + err := mgr.fillExptTemplates(ctx, expts, spaceID) + assert.NoError(t, err) + // 验证模板信息被正确填充 + assert.Equal(t, "template1", expts[0].ExptTemplateMeta.Name) + assert.Equal(t, "template2", expts[1].ExptTemplateMeta.Name) + }) + + t.Run("模板查询返回空列表,将ExptTemplateMeta置为nil", func(t *testing.T) { + templateID := int64(100) + expts := []*entity.Experiment{ + { + ID: 1, + ExptTemplateMeta: &entity.ExptTemplateMeta{ID: templateID}, + }, + } + + mgr.templateRepo.(*repoMocks.MockIExptTemplateRepo).EXPECT(). + MGetByID(ctx, gomock.Any(), spaceID). + DoAndReturn(func(_ context.Context, ids []int64, _ int64) ([]*entity.ExptTemplate, error) { + // 验证ids包含templateID + assert.Len(t, ids, 1) + assert.Contains(t, ids, templateID) + return []*entity.ExptTemplate{}, nil + }) + + err := mgr.fillExptTemplates(ctx, expts, spaceID) + assert.NoError(t, err) + // 模板查询为空,ExptTemplateMeta应该被置为nil + assert.Nil(t, expts[0].ExptTemplateMeta) + }) + + t.Run("模板在数据库中查不到,将ExptTemplateMeta置为nil", func(t *testing.T) { + templateID1 := int64(100) + templateID2 := int64(200) + expts := []*entity.Experiment{ + { + ID: 1, + ExptTemplateMeta: &entity.ExptTemplateMeta{ID: templateID1}, + }, + { + ID: 2, + ExptTemplateMeta: &entity.ExptTemplateMeta{ID: templateID2}, + }, + } + + // 只返回一个模板,另一个查不到 + templates := []*entity.ExptTemplate{ + { + Meta: &entity.ExptTemplateMeta{ + ID: templateID1, + WorkspaceID: spaceID, + Name: "template1", + }, + }, + } + + mgr.templateRepo.(*repoMocks.MockIExptTemplateRepo).EXPECT(). + MGetByID(ctx, gomock.Any(), spaceID). + DoAndReturn(func(_ context.Context, ids []int64, _ int64) ([]*entity.ExptTemplate, error) { + // 验证ids包含templateID1和templateID2,但不关心顺序 + assert.Len(t, ids, 2) + assert.Contains(t, ids, templateID1) + assert.Contains(t, ids, templateID2) + // 只返回templateID1对应的模板(templateID2查不到) + result := make([]*entity.ExptTemplate, 0, 1) + for _, id := range ids { + if id == templateID1 { + result = append(result, templates[0]) + break + } + } + return result, nil + }) + + err := mgr.fillExptTemplates(ctx, expts, spaceID) + assert.NoError(t, err) + // 第一个模板应该被填充 + assert.NotNil(t, expts[0].ExptTemplateMeta) + assert.Equal(t, "template1", expts[0].ExptTemplateMeta.Name) + // 第二个模板查不到,应该被置为nil + assert.Nil(t, expts[1].ExptTemplateMeta) + }) + + t.Run("模板查询失败,返回错误", func(t *testing.T) { + templateID := int64(100) + expts := []*entity.Experiment{ + { + ID: 1, + ExptTemplateMeta: &entity.ExptTemplateMeta{ID: templateID}, + }, + } + + mgr.templateRepo.(*repoMocks.MockIExptTemplateRepo).EXPECT(). + MGetByID(ctx, gomock.Any(), spaceID). + DoAndReturn(func(_ context.Context, ids []int64, _ int64) ([]*entity.ExptTemplate, error) { + // 验证ids包含templateID + assert.Len(t, ids, 1) + assert.Contains(t, ids, templateID) + return nil, errors.New("db error") + }) + + err := mgr.fillExptTemplates(ctx, expts, spaceID) + assert.Error(t, err) + }) + + t.Run("模板为nil,跳过", func(t *testing.T) { + templateID1 := int64(100) + templateID2 := int64(200) + expts := []*entity.Experiment{ + { + ID: 1, + ExptTemplateMeta: &entity.ExptTemplateMeta{ID: templateID1}, + }, + { + ID: 2, + ExptTemplateMeta: &entity.ExptTemplateMeta{ID: templateID2}, + }, + } + + // 返回的模板中包含nil + templates := []*entity.ExptTemplate{ + { + Meta: &entity.ExptTemplateMeta{ + ID: templateID1, + WorkspaceID: spaceID, + Name: "template1", + }, + }, + nil, // nil模板 + } + + mgr.templateRepo.(*repoMocks.MockIExptTemplateRepo).EXPECT(). + MGetByID(ctx, gomock.Any(), spaceID). + DoAndReturn(func(_ context.Context, ids []int64, _ int64) ([]*entity.ExptTemplate, error) { + // 验证ids包含templateID1和templateID2,但不关心顺序 + assert.Len(t, ids, 2) + assert.Contains(t, ids, templateID1) + assert.Contains(t, ids, templateID2) + // 返回对应的模板 + result := make([]*entity.ExptTemplate, 0, 2) + for _, id := range ids { + switch id { + case templateID1: + result = append(result, templates[0]) + case templateID2: + result = append(result, templates[1]) + } + } + return result, nil + }) + + err := mgr.fillExptTemplates(ctx, expts, spaceID) + assert.NoError(t, err) + // 第一个模板应该被填充 + assert.NotNil(t, expts[0].ExptTemplateMeta) + // 第二个模板为nil,对应的实验的ExptTemplateMeta应该被置为nil + assert.Nil(t, expts[1].ExptTemplateMeta) + }) +} diff --git a/backend/modules/evaluation/domain/service/expt_result.go b/backend/modules/evaluation/domain/service/expt_result.go index 09e1885e9..748ccc3d2 100644 --- a/backend/modules/evaluation/domain/service/expt_result.go +++ b/backend/modules/evaluation/domain/service/expt_result.go @@ -27,6 +27,8 @@ type ExptResultService interface { UpsertExptTurnResultFilter(ctx context.Context, spaceID, exptID int64, itemID []int64) error InsertExptTurnResultFilterKeyMappings(ctx context.Context, mappings []*entity.ExptTurnResultFilterKeyMapping) error CompareExptTurnResultFilters(ctx context.Context, spaceID, exptID int64, itemIDs []int64, retryTimes int32) error + // RecalculateWeightedScore 重新计算指定轮次的加权得分并更新到 expt_turn_result + RecalculateWeightedScore(ctx context.Context, spaceID, exptID, itemID, turnID int64) error } type ExptAggrResultService interface { diff --git a/backend/modules/evaluation/domain/service/expt_result_aggr_impl.go b/backend/modules/evaluation/domain/service/expt_result_aggr_impl.go index 3a58fd77f..0b8c3a1ef 100644 --- a/backend/modules/evaluation/domain/service/expt_result_aggr_impl.go +++ b/backend/modules/evaluation/domain/service/expt_result_aggr_impl.go @@ -21,6 +21,7 @@ import ( "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/events" "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/repo" "github.com/coze-dev/coze-loop/backend/modules/evaluation/pkg/errno" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/pkg/utils" "github.com/coze-dev/coze-loop/backend/pkg/errorx" "github.com/coze-dev/coze-loop/backend/pkg/json" "github.com/coze-dev/coze-loop/backend/pkg/lang/maps" @@ -213,12 +214,25 @@ func (e *ExptAggrResultServiceImpl) CreateOrUpdateExptAggrResult(ctx context.Con ExperimentID: experimentID, FieldType: int32(entity.FieldType_EvaluatorScore), FieldKey: strconv.FormatInt(evaluatorVersionID, 10), - Score: averageScore, + Score: utils.RoundScoreToTwoDecimals(averageScore), AggrResult: aggrResultBytes, Version: 0, }) } + // 追加"加权得分"聚合指标(FieldType_WeightedScore): + // 基于行级 WeightedScore 做聚合(加权评分的聚合),而不是对各评估器聚合结果再加权。 + experiment, err := e.experimentRepo.GetByID(ctx, experimentID, spaceID) + if err == nil && experiment != nil && + experiment.EvalConf != nil && experiment.EvalConf.ConnectorConf.EvaluatorsConf != nil && + experiment.EvalConf.ConnectorConf.EvaluatorsConf.EnableScoreWeight { + if weightedAggr, err := e.createWeightedScoreAggrResult(ctx, spaceID, experimentID); err != nil { + return err + } else if weightedAggr != nil { + aggrResults = append(aggrResults, weightedAggr) + } + } + targetAggrResults, err := tmag.buildAggrResult(spaceID, experimentID) if err != nil { return err @@ -263,6 +277,79 @@ func (e *ExptAggrResultServiceImpl) CreateOrUpdateExptAggrResult(ctx context.Con return nil } +// createWeightedScoreAggrResult 基于行级 WeightedScore 计算聚合指标 +// 只统计成功的轮次(TurnRunState_Success) +func (e *ExptAggrResultServiceImpl) createWeightedScoreAggrResult(ctx context.Context, spaceID, experimentID int64) (*entity.ExptAggrResult, error) { + const ( + limit = int64(500) + maxTry = 10000 + ) + + aggGroup := NewAggregatorGroup(WithScoreDistributionAggregator()) + var ( + cursor int64 + hasData bool + ) + + for i := 0; i < maxTry; i++ { + turnResults, nextCursor, err := e.exptTurnResultRepo.ScanTurnResults( + ctx, + experimentID, + []int32{int32(entity.TurnRunState_Success)}, + cursor, + limit, + spaceID, + ) + if err != nil { + return nil, err + } + if len(turnResults) == 0 { + break + } + + for _, tr := range turnResults { + if tr.WeightedScore != nil { + aggGroup.Append(*tr.WeightedScore) + hasData = true + } + } + + if nextCursor == 0 || nextCursor == cursor { + break + } + cursor = nextCursor + } + + if !hasData { + return nil, nil + } + + aggrResult := aggGroup.Result() + var averageScore float64 + for _, r := range aggrResult.AggregatorResults { + if r.AggregatorType == entity.Average { + averageScore = r.GetScore() + break + } + } + + aggrBytes, err := json.Marshal(aggrResult) + if err != nil { + return nil, err + } + + return &entity.ExptAggrResult{ + SpaceID: spaceID, + ExperimentID: experimentID, + FieldType: int32(entity.FieldType_WeightedScore), + // 约定 FieldKey 为 experimentID + FieldKey: strconv.FormatInt(experimentID, 10), + Score: utils.RoundScoreToTwoDecimals(averageScore), + AggrResult: aggrBytes, + Version: 0, + }, nil +} + func (e *ExptAggrResultServiceImpl) UpdateExptAggrResult(ctx context.Context, param *entity.UpdateExptAggrResultParam) (err error) { now := time.Now().Unix() defer func() { @@ -351,8 +438,9 @@ func (e *ExptAggrResultServiceImpl) updateExptAggrResult(ctx context.Context, pa ExperimentID: param.ExperimentID, FieldType: int32(entity.FieldType_EvaluatorScore), FieldKey: strconv.FormatInt(evaluatorVersionID, 10), - Score: averageScore, + Score: utils.RoundScoreToTwoDecimals(averageScore), AggrResult: aggrResultBytes, + Version: version, } err = e.exptAggrResultRepo.UpdateExptAggrResultByVersion(ctx, exptAggrResults, version) @@ -360,6 +448,46 @@ func (e *ExptAggrResultServiceImpl) updateExptAggrResult(ctx context.Context, pa return err } + // 如果实验启用了加权得分,也需要更新加权分数的聚合结果 + experiment, err := e.experimentRepo.GetByID(ctx, param.ExperimentID, param.SpaceID) + if err == nil && experiment != nil && + experiment.EvalConf != nil && experiment.EvalConf.ConnectorConf.EvaluatorsConf != nil && + experiment.EvalConf.ConnectorConf.EvaluatorsConf.EnableScoreWeight { + // 更新加权分数的聚合结果 + weightedAggr, err := e.createWeightedScoreAggrResult(ctx, param.SpaceID, param.ExperimentID) + if err != nil { + logs.CtxError(ctx, "Failed to update weighted score aggr result, exptID: %d, err: %v", param.ExperimentID, err) + // 不返回错误,避免影响主流程 + } else if weightedAggr != nil { + // 检查加权分数的聚合结果是否已存在 + _, err := e.exptAggrResultRepo.GetExptAggrResult(ctx, param.ExperimentID, int32(entity.FieldType_WeightedScore), weightedAggr.FieldKey) + if err != nil { + statusErr, ok := errorx.FromStatusError(err) + if ok && statusErr.Code() == errno.ResourceNotFoundCode { + // 如果不存在,创建新的聚合结果 + if err := e.exptAggrResultRepo.BatchCreateExptAggrResult(ctx, []*entity.ExptAggrResult{weightedAggr}); err != nil { + logs.CtxError(ctx, "Failed to create weighted score aggr result, exptID: %d, err: %v", param.ExperimentID, err) + } + } else { + logs.CtxError(ctx, "Failed to get weighted score aggr result, exptID: %d, err: %v", param.ExperimentID, err) + } + } else { + // 如果已存在,更新聚合结果 + version, err := e.exptAggrResultRepo.UpdateAndGetLatestVersion(ctx, param.ExperimentID, int32(entity.FieldType_WeightedScore), weightedAggr.FieldKey) + if err != nil { + logs.CtxError(ctx, "Failed to update version for weighted score aggr result, exptID: %d, err: %v", param.ExperimentID, err) + } else { + weightedAggr.Version = version + if err := e.exptAggrResultRepo.UpdateExptAggrResultByVersion(ctx, weightedAggr, version); err != nil { + logs.CtxError(ctx, "Failed to update weighted score aggr result, exptID: %d, err: %v", param.ExperimentID, err) + } else { + logs.CtxInfo(ctx, "update weighted score aggr result success, exptID: %d", param.ExperimentID) + } + } + } + } + } + logs.CtxInfo(ctx, "update expt aggr result success, exptID: %d", param.ExperimentID) return nil } @@ -433,6 +561,7 @@ func (e *ExptAggrResultServiceImpl) BatchGetExptAggrResultByExperimentIDs(ctx co TargetID: versionedTargetIDMap[exptID].TargetID, TargetVersionID: versionedTargetIDMap[exptID].VersionID, } + var weightedResults []*entity.AggregatorResult var latestUpdateAt *time.Time for _, fieldResult := range exptResult { @@ -467,13 +596,11 @@ func (e *ExptAggrResultServiceImpl) BatchGetExptAggrResultByExperimentIDs(ctx co if err != nil { return nil, fmt.Errorf("failed to parse evaluator version id from field key %s, err: %v", fieldResult.FieldKey, err) } - aggregateResultDO := entity.AggregateResult{} err = json.Unmarshal(fieldResult.AggrResult, &aggregateResultDO) if err != nil { return nil, fmt.Errorf("json.Unmarshal(%s) failed, err: %v", fieldResult.AggrResult, err) } - evaluator, ok := versionID2Evaluator[evaluatorVersionID] if !ok { return nil, fmt.Errorf("failed to get evaluator by version_id %d", evaluatorVersionID) @@ -487,6 +614,12 @@ func (e *ExptAggrResultServiceImpl) BatchGetExptAggrResultByExperimentIDs(ctx co Version: gptr.Of(evaluator.GetVersion()), } evaluatorResults[evaluatorVersionID] = &evaluatorAggrResult + case int32(entity.FieldType_WeightedScore): + aggregateResultDO := entity.AggregateResult{} + if err := json.Unmarshal(fieldResult.AggrResult, &aggregateResultDO); err != nil { + return nil, fmt.Errorf("json.Unmarshal(%s) failed, err: %v", fieldResult.AggrResult, err) + } + weightedResults = aggregateResultDO.AggregatorResults case int32(entity.FieldType_TargetLatency): ar := entity.AggregateResult{} if err := json.Unmarshal(fieldResult.AggrResult, &ar); err != nil { @@ -520,18 +653,87 @@ func (e *ExptAggrResultServiceImpl) BatchGetExptAggrResultByExperimentIDs(ctx co } } - results = append(results, &entity.ExptAggregateResult{ + exptAgg := &entity.ExptAggregateResult{ ExperimentID: exptID, EvaluatorResults: evaluatorResults, AnnotationResults: annotationResults, TargetResults: targetResults, UpdateTime: latestUpdateAt, - }) + } + if len(weightedResults) > 0 { + exptAgg.WeightedResults = weightedResults + } + results = append(results, exptAgg) } return results, nil } +// calculateWeightedAggregateResults 计算所有数值型聚合指标(如 avg、p99 等)的加权结果 +// 约定:对任意 AggregatorType,只要其 Data.Value 为数值类型(Double),则参与加权计算: +// +// weighted_value = Σ(value_i * weight_i) / Σ(weight_i) +func (e *ExptAggrResultServiceImpl) calculateWeightedAggregateResults( + evaluatorResults map[int64]*entity.EvaluatorAggregateResult, + weights map[int64]float64, +) []*entity.AggregatorResult { + if len(evaluatorResults) == 0 || len(weights) == 0 { + return nil + } + + // aggregatorType -> (sum(value_i * w_i), sum(w_i)) + type aggAcc struct { + sumWeighted float64 + sumWeight float64 + } + accMap := make(map[entity.AggregatorType]*aggAcc) + + for evaluatorVersionID, result := range evaluatorResults { + weight, ok := weights[evaluatorVersionID] + if !ok || weight <= 0 { + continue + } + + for _, aggr := range result.AggregatorResults { + if aggr == nil || aggr.Data == nil || aggr.Data.Value == nil { + continue + } + + v := *aggr.Data.Value + if _, ok := accMap[aggr.AggregatorType]; !ok { + accMap[aggr.AggregatorType] = &aggAcc{} + } + acc := accMap[aggr.AggregatorType] + acc.sumWeighted += v * weight + acc.sumWeight += weight + } + } + + if len(accMap) == 0 { + return nil + } + + weightedResults := make([]*entity.AggregatorResult, 0, len(accMap)) + for aggType, acc := range accMap { + if acc.sumWeight <= 0 { + continue + } + value := acc.sumWeighted / acc.sumWeight + weightedResults = append(weightedResults, &entity.AggregatorResult{ + AggregatorType: aggType, + Data: &entity.AggregateData{ + DataType: entity.Double, + Value: &value, + }, + }) + } + + if len(weightedResults) == 0 { + return nil + } + return weightedResults +} + func (e *ExptAggrResultServiceImpl) batchGetTagInfoByExperimentIDs(ctx context.Context, spaceID int64, exptIDs []int64) (map[int64]*entity.TagInfo, error) { refs, err := e.exptAnnotateRepo.BatchGetExptTurnAnnotateRecordRefs(ctx, exptIDs, spaceID) if err != nil { @@ -689,7 +891,7 @@ func (e *ExptAggrResultServiceImpl) createContinuousNumberExptAggrResult(ctx con FieldKey: param.FieldKey, AggrResult: aggrResultBytes, Version: 0, - Score: averageScore, + Score: utils.RoundScoreToTwoDecimals(averageScore), } err = e.exptAggrResultRepo.CreateExptAggrResult(ctx, exptAggrResult) @@ -832,8 +1034,9 @@ func (e *ExptAggrResultServiceImpl) updateContinuousNumberExptAggrResult(ctx con ExperimentID: param.ExperimentID, FieldType: int32(entity.FieldType_Annotation), FieldKey: param.FieldKey, - Score: averageScore, + Score: utils.RoundScoreToTwoDecimals(averageScore), AggrResult: aggrResultBytes, + Version: version, } err = e.exptAggrResultRepo.UpdateExptAggrResultByVersion(ctx, exptAggrResults, version) @@ -862,6 +1065,7 @@ func (e *ExptAggrResultServiceImpl) updateCategoricalExptAggrResult(ctx context. FieldType: int32(entity.FieldType_Annotation), FieldKey: param.FieldKey, AggrResult: aggrResultBytes, + Version: version, } err = e.exptAggrResultRepo.UpdateExptAggrResultByVersion(ctx, exptAggrResult, version) @@ -891,6 +1095,7 @@ func (e *ExptAggrResultServiceImpl) updateBooleanExptAggrResult(ctx context.Cont FieldType: int32(entity.FieldType_Annotation), FieldKey: param.FieldKey, AggrResult: aggrResultBytes, + Version: version, } err = e.exptAggrResultRepo.UpdateExptAggrResultByVersion(ctx, exptAggrResults, version) @@ -952,7 +1157,7 @@ func (t *targetMtrAggrGroup) buildAggrResult(spaceID, exptID int64) ([]*entity.E ExperimentID: exptID, FieldType: int32(fieldType), FieldKey: fieldKey, - Score: averageScore, + Score: utils.RoundScoreToTwoDecimals(averageScore), AggrResult: aggrResultBytes, }) return nil diff --git a/backend/modules/evaluation/domain/service/expt_result_aggr_impl_test.go b/backend/modules/evaluation/domain/service/expt_result_aggr_impl_test.go index eb3b03651..0f0469032 100644 --- a/backend/modules/evaluation/domain/service/expt_result_aggr_impl_test.go +++ b/backend/modules/evaluation/domain/service/expt_result_aggr_impl_test.go @@ -9,6 +9,7 @@ import ( "errors" "fmt" "math" + "strconv" "testing" "time" @@ -157,16 +158,25 @@ func TestExptAggrResultServiceImpl_CreateExptAggrResult(t *testing.T) { mockMetric := metricsMocks.NewMockExptMetric(ctrl) mockEvalTargetSvc := svcMocks.NewMockIEvalTargetService(ctrl) mockLocker := lockMocks.NewMockILocker(ctrl) + mockExperimentRepo := repoMocks.NewMockIExperimentRepo(ctrl) svc := &ExptAggrResultServiceImpl{ exptTurnResultRepo: mockExptTurnResultRepo, exptAggrResultRepo: mockExptAggrResultRepo, + experimentRepo: mockExperimentRepo, evaluatorRecordService: mockEvaluatorRecordService, metric: mockMetric, evalTargetSvc: mockEvalTargetSvc, locker: mockLocker, } + // CreateExptAggrResult 内部会调用 experimentRepo.GetByID,用于加权得分聚合配置判断。 + // 这里统一 mock 成为空实验以跳过这部分逻辑,避免意外的 nil 访问或未预期调用。 + mockExperimentRepo.EXPECT(). + GetByID(gomock.Any(), tt.exptID, tt.spaceID). + Return((*entity.Experiment)(nil), nil). + AnyTimes() + tt.setup(mockExptTurnResultRepo, mockExptAggrResultRepo, mockEvaluatorRecordService, mockMetric, mockLocker) err := svc.CreateExptAggrResult(context.Background(), tt.spaceID, tt.exptID) @@ -304,14 +314,25 @@ func TestExptAggrResultServiceImpl_UpdateExptAggrResult(t *testing.T) { mockExptTurnResultRepo := repoMocks.NewMockIExptTurnResultRepo(ctrl) mockEvaluatorRecordService := svcMocks.NewMockEvaluatorRecordService(ctrl) mockMetric := metricsMocks.NewMockExptMetric(ctrl) + mockExperimentRepo := repoMocks.NewMockIExperimentRepo(ctrl) svc := &ExptAggrResultServiceImpl{ exptAggrResultRepo: mockExptAggrResultRepo, exptTurnResultRepo: mockExptTurnResultRepo, + experimentRepo: mockExperimentRepo, evaluatorRecordService: mockEvaluatorRecordService, metric: mockMetric, } + // UpdateExptAggrResult 在内部会调用 experimentRepo.GetByID,用于判断是否需要更新加权得分聚合结果。 + // 这里默认返回 nil 实验配置,跳过这部分逻辑,除非用例在 setup 中显式期望其它行为。 + if tt.param != nil { + mockExperimentRepo.EXPECT(). + GetByID(gomock.Any(), tt.param.ExperimentID, tt.param.SpaceID). + Return((*entity.Experiment)(nil), nil). + AnyTimes() + } + tt.setup(mockExptAggrResultRepo, mockExptTurnResultRepo, mockEvaluatorRecordService, mockMetric) err := svc.UpdateExptAggrResult(context.Background(), tt.param) @@ -1351,11 +1372,20 @@ func TestExptAggrResultServiceImpl_CreateOrUpdateExptAggrResult(t *testing.T) { defer ctrl.Finish() mockExptAggrResultRepo := repoMocks.NewMockIExptAggrResultRepo(ctrl) + mockExperimentRepo := repoMocks.NewMockIExperimentRepo(ctrl) svc := &ExptAggrResultServiceImpl{ exptAggrResultRepo: mockExptAggrResultRepo, + experimentRepo: mockExperimentRepo, } + // CreateOrUpdateExptAggrResult 内部在追加加权得分聚合指标时,会调用 experimentRepo.GetByID。 + // 这里统一 mock 为返回 nil 实验,跳过加权逻辑,避免未预期的调用或 nil 访问。 + mockExperimentRepo.EXPECT(). + GetByID(gomock.Any(), tt.exptID, tt.spaceID). + Return((*entity.Experiment)(nil), nil). + AnyTimes() + tt.setup(mockExptAggrResultRepo) err := svc.CreateOrUpdateExptAggrResult(context.Background(), tt.spaceID, tt.exptID, tt.evaluatorVersionID2AggregatorGroup, tt.tmag, tt.existedAggrResults) @@ -2704,3 +2734,953 @@ func TestBucketScoreDistributionAggregator_BoundaryValueHandling(t *testing.T) { assert.Equal(t, int64(numBuckets), totalCount, "Total count should equal number of boundary scores") }) } + +// TestExptAggrResultServiceImpl_CreateOrUpdateExptAggrResult_WithWeightedScore 测试 CreateOrUpdateExptAggrResult 中加权得分聚合结果创建逻辑 (229-235行) +func TestExptAggrResultServiceImpl_CreateOrUpdateExptAggrResult_WithWeightedScore(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockExptAggrResultRepo := repoMocks.NewMockIExptAggrResultRepo(ctrl) + mockExptTurnResultRepo := repoMocks.NewMockIExptTurnResultRepo(ctrl) + mockExperimentRepo := repoMocks.NewMockIExperimentRepo(ctrl) + + svc := &ExptAggrResultServiceImpl{ + exptAggrResultRepo: mockExptAggrResultRepo, + exptTurnResultRepo: mockExptTurnResultRepo, + experimentRepo: mockExperimentRepo, + } + + ctx := context.Background() + spaceID := int64(100) + experimentID := int64(1) + + t.Run("实验启用加权得分,创建加权得分聚合结果", func(t *testing.T) { + evaluatorVersionID2AggregatorGroup := map[int64]*AggregatorGroup{ + 1: func() *AggregatorGroup { + ag := NewAggregatorGroup() + ag.Append(0.8) + return ag + }(), + } + tmag := &targetMtrAggrGroup{ + latency: NewAggregatorGroup(), + inputTokens: NewAggregatorGroup(), + outputTokens: NewAggregatorGroup(), + totalTokens: NewAggregatorGroup(), + } + existedAggrResults := []*entity.ExptAggrResult{} + + // Mock GetByID 返回启用加权得分的实验 + mockExperimentRepo.EXPECT(). + GetByID(ctx, experimentID, spaceID). + Return(&entity.Experiment{ + ID: experimentID, + EvalConf: &entity.EvaluationConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EnableScoreWeight: true, + }, + }, + }, + }, nil) + + // Mock createWeightedScoreAggrResult 的依赖 + // ScanTurnResults 返回有加权得分的 turn results + mockExptTurnResultRepo.EXPECT(). + ScanTurnResults( + ctx, + experimentID, + []int32{int32(entity.TurnRunState_Success)}, + int64(0), + int64(500), + spaceID, + ). + Return([]*entity.ExptTurnResult{ + { + WeightedScore: gptr.Of(0.85), + }, + }, int64(0), nil) + + // Mock BatchCreateExptAggrResult + mockExptAggrResultRepo.EXPECT(). + BatchCreateExptAggrResult(gomock.Any(), gomock.Any()). + DoAndReturn(func(ctx context.Context, results []*entity.ExptAggrResult) error { + // 验证包含加权得分聚合结果 + hasWeightedScore := false + for _, result := range results { + if result.FieldType == int32(entity.FieldType_WeightedScore) { + hasWeightedScore = true + assert.Equal(t, strconv.FormatInt(experimentID, 10), result.FieldKey) + assert.Equal(t, spaceID, result.SpaceID) + assert.Equal(t, experimentID, result.ExperimentID) + } + } + assert.True(t, hasWeightedScore, "应该包含加权得分聚合结果") + return nil + }) + + err := svc.CreateOrUpdateExptAggrResult(ctx, spaceID, experimentID, evaluatorVersionID2AggregatorGroup, tmag, existedAggrResults) + assert.NoError(t, err) + }) + + t.Run("实验未启用加权得分,不创建加权得分聚合结果", func(t *testing.T) { + evaluatorVersionID2AggregatorGroup := map[int64]*AggregatorGroup{ + 1: func() *AggregatorGroup { + ag := NewAggregatorGroup() + ag.Append(0.8) + return ag + }(), + } + tmag := &targetMtrAggrGroup{ + latency: NewAggregatorGroup(), + inputTokens: NewAggregatorGroup(), + outputTokens: NewAggregatorGroup(), + totalTokens: NewAggregatorGroup(), + } + existedAggrResults := []*entity.ExptAggrResult{} + + // Mock GetByID 返回未启用加权得分的实验 + mockExperimentRepo.EXPECT(). + GetByID(ctx, experimentID, spaceID). + Return(&entity.Experiment{ + ID: experimentID, + EvalConf: &entity.EvaluationConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EnableScoreWeight: false, + }, + }, + }, + }, nil) + + // Mock BatchCreateExptAggrResult + mockExptAggrResultRepo.EXPECT(). + BatchCreateExptAggrResult(gomock.Any(), gomock.Any()). + DoAndReturn(func(ctx context.Context, results []*entity.ExptAggrResult) error { + // 验证不包含加权得分聚合结果 + for _, result := range results { + assert.NotEqual(t, int32(entity.FieldType_WeightedScore), result.FieldType, "不应该包含加权得分聚合结果") + } + return nil + }) + + err := svc.CreateOrUpdateExptAggrResult(ctx, spaceID, experimentID, evaluatorVersionID2AggregatorGroup, tmag, existedAggrResults) + assert.NoError(t, err) + }) + + t.Run("createWeightedScoreAggrResult返回错误,返回错误", func(t *testing.T) { + evaluatorVersionID2AggregatorGroup := map[int64]*AggregatorGroup{ + 1: func() *AggregatorGroup { + ag := NewAggregatorGroup() + ag.Append(0.8) + return ag + }(), + } + tmag := &targetMtrAggrGroup{ + latency: NewAggregatorGroup(), + inputTokens: NewAggregatorGroup(), + outputTokens: NewAggregatorGroup(), + totalTokens: NewAggregatorGroup(), + } + existedAggrResults := []*entity.ExptAggrResult{} + + // Mock GetByID 返回启用加权得分的实验 + mockExperimentRepo.EXPECT(). + GetByID(ctx, experimentID, spaceID). + Return(&entity.Experiment{ + ID: experimentID, + EvalConf: &entity.EvaluationConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EnableScoreWeight: true, + }, + }, + }, + }, nil) + + // Mock ScanTurnResults 返回错误 + mockExptTurnResultRepo.EXPECT(). + ScanTurnResults( + ctx, + experimentID, + []int32{int32(entity.TurnRunState_Success)}, + int64(0), + int64(500), + spaceID, + ). + Return(nil, int64(0), errors.New("scan error")) + + err := svc.CreateOrUpdateExptAggrResult(ctx, spaceID, experimentID, evaluatorVersionID2AggregatorGroup, tmag, existedAggrResults) + assert.Error(t, err) + assert.Contains(t, err.Error(), "scan error") + }) +} + +// TestExptAggrResultServiceImpl_createWeightedScoreAggrResult 测试 createWeightedScoreAggrResult 方法 +func TestExptAggrResultServiceImpl_createWeightedScoreAggrResult(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockExptTurnResultRepo := repoMocks.NewMockIExptTurnResultRepo(ctrl) + + svc := &ExptAggrResultServiceImpl{ + exptTurnResultRepo: mockExptTurnResultRepo, + } + + ctx := context.Background() + spaceID := int64(100) + experimentID := int64(1) + + t.Run("成功创建加权得分聚合结果", func(t *testing.T) { + // Mock ScanTurnResults 返回有加权得分的 turn results + mockExptTurnResultRepo.EXPECT(). + ScanTurnResults( + ctx, + experimentID, + []int32{int32(entity.TurnRunState_Success)}, + int64(0), + int64(500), + spaceID, + ). + Return([]*entity.ExptTurnResult{ + { + WeightedScore: gptr.Of(0.85), + }, + { + WeightedScore: gptr.Of(0.90), + }, + }, int64(0), nil) + + result, err := svc.createWeightedScoreAggrResult(ctx, spaceID, experimentID) + assert.NoError(t, err) + assert.NotNil(t, result) + assert.Equal(t, int32(entity.FieldType_WeightedScore), result.FieldType) + assert.Equal(t, strconv.FormatInt(experimentID, 10), result.FieldKey) + assert.Equal(t, spaceID, result.SpaceID) + assert.Equal(t, experimentID, result.ExperimentID) + // 验证平均分是 (0.85 + 0.90) / 2 = 0.875 + assert.Equal(t, 0.88, result.Score) // 四舍五入到两位小数 + }) + + t.Run("没有加权得分数据,返回nil", func(t *testing.T) { + // Mock ScanTurnResults 返回没有加权得分的 turn results + mockExptTurnResultRepo.EXPECT(). + ScanTurnResults( + ctx, + experimentID, + []int32{int32(entity.TurnRunState_Success)}, + int64(0), + int64(500), + spaceID, + ). + Return([]*entity.ExptTurnResult{ + { + WeightedScore: nil, + }, + }, int64(0), nil) + + result, err := svc.createWeightedScoreAggrResult(ctx, spaceID, experimentID) + assert.NoError(t, err) + assert.Nil(t, result) + }) + + t.Run("ScanTurnResults返回错误,返回错误", func(t *testing.T) { + // Mock ScanTurnResults 返回错误 + mockExptTurnResultRepo.EXPECT(). + ScanTurnResults( + ctx, + experimentID, + []int32{int32(entity.TurnRunState_Success)}, + int64(0), + int64(500), + spaceID, + ). + Return(nil, int64(0), errors.New("scan error")) + + result, err := svc.createWeightedScoreAggrResult(ctx, spaceID, experimentID) + assert.Error(t, err) + assert.Nil(t, result) + assert.Contains(t, err.Error(), "scan error") + }) + + t.Run("多页扫描,聚合所有加权得分", func(t *testing.T) { + // 第一页 + mockExptTurnResultRepo.EXPECT(). + ScanTurnResults( + ctx, + experimentID, + []int32{int32(entity.TurnRunState_Success)}, + int64(0), + int64(500), + spaceID, + ). + Return([]*entity.ExptTurnResult{ + { + WeightedScore: gptr.Of(0.80), + }, + }, int64(100), nil) + + // 第二页 + mockExptTurnResultRepo.EXPECT(). + ScanTurnResults( + ctx, + experimentID, + []int32{int32(entity.TurnRunState_Success)}, + int64(100), + int64(500), + spaceID, + ). + Return([]*entity.ExptTurnResult{ + { + WeightedScore: gptr.Of(0.90), + }, + }, int64(0), nil) + + result, err := svc.createWeightedScoreAggrResult(ctx, spaceID, experimentID) + assert.NoError(t, err) + assert.NotNil(t, result) + // 验证平均分是 (0.80 + 0.90) / 2 = 0.85 + assert.Equal(t, 0.85, result.Score) + }) +} + +// TestExptAggrResultServiceImpl_UpdateExptAggrResult_WithWeightedScore 测试 UpdateExptAggrResult 中加权得分聚合结果更新逻辑 (457-484行) +func TestExptAggrResultServiceImpl_UpdateExptAggrResult_WithWeightedScore(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockExptAggrResultRepo := repoMocks.NewMockIExptAggrResultRepo(ctrl) + mockExptTurnResultRepo := repoMocks.NewMockIExptTurnResultRepo(ctrl) + mockEvaluatorRecordService := svcMocks.NewMockEvaluatorRecordService(ctrl) + mockMetric := metricsMocks.NewMockExptMetric(ctrl) + mockExperimentRepo := repoMocks.NewMockIExperimentRepo(ctrl) + + svc := &ExptAggrResultServiceImpl{ + exptAggrResultRepo: mockExptAggrResultRepo, + exptTurnResultRepo: mockExptTurnResultRepo, + evaluatorRecordService: mockEvaluatorRecordService, + metric: mockMetric, + experimentRepo: mockExperimentRepo, + } + + ctx := context.Background() + param := &entity.UpdateExptAggrResultParam{ + SpaceID: 100, + ExperimentID: 1, + FieldType: entity.FieldType_EvaluatorScore, + FieldKey: "1", + } + + t.Run("实验启用加权得分,加权得分聚合结果不存在,创建新的", func(t *testing.T) { + // Mock GetExptAggrResult + mockExptAggrResultRepo.EXPECT(). + GetExptAggrResult(gomock.Any(), int64(1), int32(entity.FieldType_EvaluatorScore), "1"). + Return(&entity.ExptAggrResult{}, nil) + + // Mock UpdateAndGetLatestVersion + mockExptAggrResultRepo.EXPECT(). + UpdateAndGetLatestVersion(gomock.Any(), int64(1), int32(entity.FieldType_EvaluatorScore), "1"). + Return(int64(1), nil) + + // Mock GetTurnEvaluatorResultRefByEvaluatorVersionID + mockExptTurnResultRepo.EXPECT(). + GetTurnEvaluatorResultRefByEvaluatorVersionID(gomock.Any(), int64(100), int64(1), int64(1)). + Return([]*entity.ExptTurnEvaluatorResultRef{ + { + EvaluatorResultID: 1, + }, + }, nil) + + // Mock BatchGetEvaluatorRecord + mockEvaluatorRecordService.EXPECT(). + BatchGetEvaluatorRecord(gomock.Any(), []int64{1}, false). + Return([]*entity.EvaluatorRecord{ + { + ID: 1, + EvaluatorOutputData: &entity.EvaluatorOutputData{ + EvaluatorResult: &entity.EvaluatorResult{ + Score: gptr.Of(0.8), + }, + }, + }, + }, nil) + + // Mock UpdateExptAggrResultByVersion + mockExptAggrResultRepo.EXPECT(). + UpdateExptAggrResultByVersion(gomock.Any(), gomock.Any(), int64(1)). + Return(nil) + + // Mock EmitCalculateExptAggrResult + mockMetric.EXPECT(). + EmitCalculateExptAggrResult(int64(100), int64(entity.UpdateSpecificField), false, gomock.Any()). + Return() + + // Mock GetByID 返回启用加权得分的实验 + mockExperimentRepo.EXPECT(). + GetByID(ctx, int64(1), int64(100)). + Return(&entity.Experiment{ + ID: 1, + EvalConf: &entity.EvaluationConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EnableScoreWeight: true, + }, + }, + }, + }, nil) + + // Mock createWeightedScoreAggrResult 的依赖 + mockExptTurnResultRepo.EXPECT(). + ScanTurnResults( + ctx, + int64(1), + []int32{int32(entity.TurnRunState_Success)}, + int64(0), + int64(500), + int64(100), + ). + Return([]*entity.ExptTurnResult{ + { + WeightedScore: gptr.Of(0.85), + }, + }, int64(0), nil) + + // Mock GetExptAggrResult 返回 ResourceNotFound(加权得分聚合结果不存在) + mockExptAggrResultRepo.EXPECT(). + GetExptAggrResult(ctx, int64(1), int32(entity.FieldType_WeightedScore), "1"). + Return(nil, errorx.NewByCode(errno.ResourceNotFoundCode)) + + // Mock BatchCreateExptAggrResult(创建加权得分聚合结果) + mockExptAggrResultRepo.EXPECT(). + BatchCreateExptAggrResult(ctx, gomock.Any()). + Return(nil) + + err := svc.UpdateExptAggrResult(ctx, param) + assert.NoError(t, err) + }) + + t.Run("实验启用加权得分,加权得分聚合结果已存在,更新", func(t *testing.T) { + // Mock GetExptAggrResult + mockExptAggrResultRepo.EXPECT(). + GetExptAggrResult(gomock.Any(), int64(1), int32(entity.FieldType_EvaluatorScore), "1"). + Return(&entity.ExptAggrResult{}, nil) + + // Mock UpdateAndGetLatestVersion + mockExptAggrResultRepo.EXPECT(). + UpdateAndGetLatestVersion(gomock.Any(), int64(1), int32(entity.FieldType_EvaluatorScore), "1"). + Return(int64(1), nil) + + // Mock GetTurnEvaluatorResultRefByEvaluatorVersionID + mockExptTurnResultRepo.EXPECT(). + GetTurnEvaluatorResultRefByEvaluatorVersionID(gomock.Any(), int64(100), int64(1), int64(1)). + Return([]*entity.ExptTurnEvaluatorResultRef{ + { + EvaluatorResultID: 1, + }, + }, nil) + + // Mock BatchGetEvaluatorRecord + mockEvaluatorRecordService.EXPECT(). + BatchGetEvaluatorRecord(gomock.Any(), []int64{1}, false). + Return([]*entity.EvaluatorRecord{ + { + ID: 1, + EvaluatorOutputData: &entity.EvaluatorOutputData{ + EvaluatorResult: &entity.EvaluatorResult{ + Score: gptr.Of(0.8), + }, + }, + }, + }, nil) + + // Mock UpdateExptAggrResultByVersion + mockExptAggrResultRepo.EXPECT(). + UpdateExptAggrResultByVersion(gomock.Any(), gomock.Any(), int64(1)). + Return(nil) + + // Mock EmitCalculateExptAggrResult + mockMetric.EXPECT(). + EmitCalculateExptAggrResult(int64(100), int64(entity.UpdateSpecificField), false, gomock.Any()). + Return() + + // Mock GetByID 返回启用加权得分的实验 + mockExperimentRepo.EXPECT(). + GetByID(ctx, int64(1), int64(100)). + Return(&entity.Experiment{ + ID: 1, + EvalConf: &entity.EvaluationConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EnableScoreWeight: true, + }, + }, + }, + }, nil) + + // Mock createWeightedScoreAggrResult 的依赖 + mockExptTurnResultRepo.EXPECT(). + ScanTurnResults( + ctx, + int64(1), + []int32{int32(entity.TurnRunState_Success)}, + int64(0), + int64(500), + int64(100), + ). + Return([]*entity.ExptTurnResult{ + { + WeightedScore: gptr.Of(0.85), + }, + }, int64(0), nil) + + // Mock GetExptAggrResult 返回已存在的加权得分聚合结果 + mockExptAggrResultRepo.EXPECT(). + GetExptAggrResult(ctx, int64(1), int32(entity.FieldType_WeightedScore), "1"). + Return(&entity.ExptAggrResult{}, nil) + + // Mock UpdateAndGetLatestVersion(更新版本) + mockExptAggrResultRepo.EXPECT(). + UpdateAndGetLatestVersion(ctx, int64(1), int32(entity.FieldType_WeightedScore), "1"). + Return(int64(2), nil) + + // Mock UpdateExptAggrResultByVersion(更新加权得分聚合结果) + mockExptAggrResultRepo.EXPECT(). + UpdateExptAggrResultByVersion(ctx, gomock.Any(), int64(2)). + DoAndReturn(func(ctx context.Context, result *entity.ExptAggrResult, version int64) error { + assert.Equal(t, int64(2), result.Version) + assert.Equal(t, int32(entity.FieldType_WeightedScore), result.FieldType) + return nil + }). + Return(nil) + + err := svc.UpdateExptAggrResult(ctx, param) + assert.NoError(t, err) + }) + + t.Run("createWeightedScoreAggrResult返回错误,不返回错误(记录日志)", func(t *testing.T) { + // Mock GetExptAggrResult + mockExptAggrResultRepo.EXPECT(). + GetExptAggrResult(gomock.Any(), int64(1), int32(entity.FieldType_EvaluatorScore), "1"). + Return(&entity.ExptAggrResult{}, nil) + + // Mock UpdateAndGetLatestVersion + mockExptAggrResultRepo.EXPECT(). + UpdateAndGetLatestVersion(gomock.Any(), int64(1), int32(entity.FieldType_EvaluatorScore), "1"). + Return(int64(1), nil) + + // Mock GetTurnEvaluatorResultRefByEvaluatorVersionID + mockExptTurnResultRepo.EXPECT(). + GetTurnEvaluatorResultRefByEvaluatorVersionID(gomock.Any(), int64(100), int64(1), int64(1)). + Return([]*entity.ExptTurnEvaluatorResultRef{ + { + EvaluatorResultID: 1, + }, + }, nil) + + // Mock BatchGetEvaluatorRecord + mockEvaluatorRecordService.EXPECT(). + BatchGetEvaluatorRecord(gomock.Any(), []int64{1}, false). + Return([]*entity.EvaluatorRecord{ + { + ID: 1, + EvaluatorOutputData: &entity.EvaluatorOutputData{ + EvaluatorResult: &entity.EvaluatorResult{ + Score: gptr.Of(0.8), + }, + }, + }, + }, nil) + + // Mock UpdateExptAggrResultByVersion + mockExptAggrResultRepo.EXPECT(). + UpdateExptAggrResultByVersion(gomock.Any(), gomock.Any(), int64(1)). + Return(nil) + + // Mock EmitCalculateExptAggrResult + mockMetric.EXPECT(). + EmitCalculateExptAggrResult(int64(100), int64(entity.UpdateSpecificField), false, gomock.Any()). + Return() + + // Mock GetByID 返回启用加权得分的实验 + mockExperimentRepo.EXPECT(). + GetByID(ctx, int64(1), int64(100)). + Return(&entity.Experiment{ + ID: 1, + EvalConf: &entity.EvaluationConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EnableScoreWeight: true, + }, + }, + }, + }, nil) + + // Mock createWeightedScoreAggrResult 返回错误 + mockExptTurnResultRepo.EXPECT(). + ScanTurnResults( + ctx, + int64(1), + []int32{int32(entity.TurnRunState_Success)}, + int64(0), + int64(500), + int64(100), + ). + Return(nil, int64(0), errors.New("scan error")) + + // 即使 createWeightedScoreAggrResult 返回错误,UpdateExptAggrResult 也不应该返回错误 + err := svc.UpdateExptAggrResult(ctx, param) + assert.NoError(t, err) + }) + + t.Run("GetExptAggrResult返回非ResourceNotFound错误,记录日志但不返回错误", func(t *testing.T) { + // Mock GetExptAggrResult + mockExptAggrResultRepo.EXPECT(). + GetExptAggrResult(gomock.Any(), int64(1), int32(entity.FieldType_EvaluatorScore), "1"). + Return(&entity.ExptAggrResult{}, nil) + + // Mock UpdateAndGetLatestVersion + mockExptAggrResultRepo.EXPECT(). + UpdateAndGetLatestVersion(gomock.Any(), int64(1), int32(entity.FieldType_EvaluatorScore), "1"). + Return(int64(1), nil) + + // Mock GetTurnEvaluatorResultRefByEvaluatorVersionID + mockExptTurnResultRepo.EXPECT(). + GetTurnEvaluatorResultRefByEvaluatorVersionID(gomock.Any(), int64(100), int64(1), int64(1)). + Return([]*entity.ExptTurnEvaluatorResultRef{ + { + EvaluatorResultID: 1, + }, + }, nil) + + // Mock BatchGetEvaluatorRecord + mockEvaluatorRecordService.EXPECT(). + BatchGetEvaluatorRecord(gomock.Any(), []int64{1}, false). + Return([]*entity.EvaluatorRecord{ + { + ID: 1, + EvaluatorOutputData: &entity.EvaluatorOutputData{ + EvaluatorResult: &entity.EvaluatorResult{ + Score: gptr.Of(0.8), + }, + }, + }, + }, nil) + + // Mock UpdateExptAggrResultByVersion + mockExptAggrResultRepo.EXPECT(). + UpdateExptAggrResultByVersion(gomock.Any(), gomock.Any(), int64(1)). + Return(nil) + + // Mock EmitCalculateExptAggrResult + mockMetric.EXPECT(). + EmitCalculateExptAggrResult(int64(100), int64(entity.UpdateSpecificField), false, gomock.Any()). + Return() + + // Mock GetByID 返回启用加权得分的实验 + mockExperimentRepo.EXPECT(). + GetByID(ctx, int64(1), int64(100)). + Return(&entity.Experiment{ + ID: 1, + EvalConf: &entity.EvaluationConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EnableScoreWeight: true, + }, + }, + }, + }, nil) + + // Mock createWeightedScoreAggrResult 的依赖 + mockExptTurnResultRepo.EXPECT(). + ScanTurnResults( + ctx, + int64(1), + []int32{int32(entity.TurnRunState_Success)}, + int64(0), + int64(500), + int64(100), + ). + Return([]*entity.ExptTurnResult{ + { + WeightedScore: gptr.Of(0.85), + }, + }, int64(0), nil) + + // Mock GetExptAggrResult 返回非ResourceNotFound错误 + mockExptAggrResultRepo.EXPECT(). + GetExptAggrResult(ctx, int64(1), int32(entity.FieldType_WeightedScore), "1"). + Return(nil, errors.New("db error")) + + // 即使 GetExptAggrResult 返回错误,UpdateExptAggrResult 也不应该返回错误 + err := svc.UpdateExptAggrResult(ctx, param) + assert.NoError(t, err) + }) +} + +// TestExptAggrResultServiceImpl_calculateWeightedAggregateResults 测试 calculateWeightedAggregateResults 方法 +func TestExptAggrResultServiceImpl_calculateWeightedAggregateResults(t *testing.T) { + svc := &ExptAggrResultServiceImpl{} + + t.Run("成功计算加权聚合结果", func(t *testing.T) { + evaluatorResults := map[int64]*entity.EvaluatorAggregateResult{ + 1: { + AggregatorResults: []*entity.AggregatorResult{ + { + AggregatorType: entity.Average, + Data: &entity.AggregateData{ + DataType: entity.Double, + Value: gptr.Of(0.8), + }, + }, + }, + }, + 2: { + AggregatorResults: []*entity.AggregatorResult{ + { + AggregatorType: entity.Average, + Data: &entity.AggregateData{ + DataType: entity.Double, + Value: gptr.Of(0.9), + }, + }, + }, + }, + } + weights := map[int64]float64{ + 1: 0.6, + 2: 0.4, + } + + result := svc.calculateWeightedAggregateResults(evaluatorResults, weights) + assert.NotNil(t, result) + assert.Len(t, result, 1) + assert.Equal(t, entity.Average, result[0].AggregatorType) + // 加权平均 = (0.8 * 0.6 + 0.9 * 0.4) / (0.6 + 0.4) = (0.48 + 0.36) / 1.0 = 0.84 + // 使用 InDelta 进行浮点数近似比较,避免精度问题 + assert.InDelta(t, 0.84, *result[0].Data.Value, 0.0001) + }) + + t.Run("evaluatorResults为空,返回nil", func(t *testing.T) { + weights := map[int64]float64{ + 1: 0.6, + } + result := svc.calculateWeightedAggregateResults(nil, weights) + assert.Nil(t, result) + }) + + t.Run("weights为空,返回nil", func(t *testing.T) { + evaluatorResults := map[int64]*entity.EvaluatorAggregateResult{ + 1: { + AggregatorResults: []*entity.AggregatorResult{ + { + AggregatorType: entity.Average, + Data: &entity.AggregateData{ + DataType: entity.Double, + Value: gptr.Of(0.8), + }, + }, + }, + }, + } + result := svc.calculateWeightedAggregateResults(evaluatorResults, nil) + assert.Nil(t, result) + }) + + t.Run("权重为0或负数,跳过该评估器", func(t *testing.T) { + evaluatorResults := map[int64]*entity.EvaluatorAggregateResult{ + 1: { + AggregatorResults: []*entity.AggregatorResult{ + { + AggregatorType: entity.Average, + Data: &entity.AggregateData{ + DataType: entity.Double, + Value: gptr.Of(0.8), + }, + }, + }, + }, + 2: { + AggregatorResults: []*entity.AggregatorResult{ + { + AggregatorType: entity.Average, + Data: &entity.AggregateData{ + DataType: entity.Double, + Value: gptr.Of(0.9), + }, + }, + }, + }, + } + weights := map[int64]float64{ + 1: 0.6, + 2: 0.0, // 权重为0,应该跳过 + } + + result := svc.calculateWeightedAggregateResults(evaluatorResults, weights) + assert.NotNil(t, result) + assert.Len(t, result, 1) + // 只有评估器1参与计算,所以结果是0.8 + // 使用 InDelta 进行浮点数近似比较,避免精度问题 + assert.InDelta(t, 0.8, *result[0].Data.Value, 0.0001) + }) + + t.Run("评估器结果中Data为nil,跳过", func(t *testing.T) { + evaluatorResults := map[int64]*entity.EvaluatorAggregateResult{ + 1: { + AggregatorResults: []*entity.AggregatorResult{ + { + AggregatorType: entity.Average, + Data: nil, // Data为nil,应该跳过 + }, + }, + }, + } + weights := map[int64]float64{ + 1: 0.6, + } + + result := svc.calculateWeightedAggregateResults(evaluatorResults, weights) + assert.Nil(t, result) + }) + + t.Run("评估器结果中Value为nil,跳过", func(t *testing.T) { + evaluatorResults := map[int64]*entity.EvaluatorAggregateResult{ + 1: { + AggregatorResults: []*entity.AggregatorResult{ + { + AggregatorType: entity.Average, + Data: &entity.AggregateData{ + DataType: entity.Double, + Value: nil, // Value为nil,应该跳过 + }, + }, + }, + }, + } + weights := map[int64]float64{ + 1: 0.6, + } + + result := svc.calculateWeightedAggregateResults(evaluatorResults, weights) + assert.Nil(t, result) + }) + + t.Run("多个聚合类型,分别计算加权平均", func(t *testing.T) { + evaluatorResults := map[int64]*entity.EvaluatorAggregateResult{ + 1: { + AggregatorResults: []*entity.AggregatorResult{ + { + AggregatorType: entity.Average, + Data: &entity.AggregateData{ + DataType: entity.Double, + Value: gptr.Of(0.8), + }, + }, + { + AggregatorType: entity.Max, + Data: &entity.AggregateData{ + DataType: entity.Double, + Value: gptr.Of(0.9), + }, + }, + }, + }, + 2: { + AggregatorResults: []*entity.AggregatorResult{ + { + AggregatorType: entity.Average, + Data: &entity.AggregateData{ + DataType: entity.Double, + Value: gptr.Of(0.7), + }, + }, + { + AggregatorType: entity.Max, + Data: &entity.AggregateData{ + DataType: entity.Double, + Value: gptr.Of(0.85), + }, + }, + }, + }, + } + weights := map[int64]float64{ + 1: 0.6, + 2: 0.4, + } + + result := svc.calculateWeightedAggregateResults(evaluatorResults, weights) + assert.NotNil(t, result) + assert.Len(t, result, 2) + + // 找到Average和Max的结果 + var avgResult, maxResult *entity.AggregatorResult + for _, r := range result { + switch r.AggregatorType { + case entity.Average: + avgResult = r + case entity.Max: + maxResult = r + } + } + + assert.NotNil(t, avgResult) + // Average加权平均 = (0.8 * 0.6 + 0.7 * 0.4) / (0.6 + 0.4) = (0.48 + 0.28) / 1.0 = 0.76 + // 使用 InDelta 进行浮点数近似比较,避免精度问题 + assert.InDelta(t, 0.76, *avgResult.Data.Value, 0.0001) + + assert.NotNil(t, maxResult) + // Max加权平均 = (0.9 * 0.6 + 0.85 * 0.4) / (0.6 + 0.4) = (0.54 + 0.34) / 1.0 = 0.88 + // 使用 InDelta 进行浮点数近似比较,避免精度问题 + assert.InDelta(t, 0.88, *maxResult.Data.Value, 0.0001) + }) + + t.Run("评估器版本ID在weights中不存在,跳过", func(t *testing.T) { + evaluatorResults := map[int64]*entity.EvaluatorAggregateResult{ + 1: { + AggregatorResults: []*entity.AggregatorResult{ + { + AggregatorType: entity.Average, + Data: &entity.AggregateData{ + DataType: entity.Double, + Value: gptr.Of(0.8), + }, + }, + }, + }, + } + weights := map[int64]float64{ + 2: 0.6, // 评估器1不在weights中,应该跳过 + } + + result := svc.calculateWeightedAggregateResults(evaluatorResults, weights) + assert.Nil(t, result) + }) + + t.Run("sumWeight为0,跳过该聚合类型", func(t *testing.T) { + // 这个场景理论上不会发生,因为如果sumWeight为0,说明所有权重都是0或负数 + // 但为了测试代码覆盖,我们可以构造一个场景 + // 实际上,由于我们在循环中检查 weight <= 0 时会跳过,所以sumWeight不会为0 + // 但为了完整性,我们测试一下边界情况 + evaluatorResults := map[int64]*entity.EvaluatorAggregateResult{ + 1: { + AggregatorResults: []*entity.AggregatorResult{ + { + AggregatorType: entity.Average, + Data: &entity.AggregateData{ + DataType: entity.Double, + Value: gptr.Of(0.8), + }, + }, + }, + }, + } + weights := map[int64]float64{ + 1: 0.6, + } + + result := svc.calculateWeightedAggregateResults(evaluatorResults, weights) + assert.NotNil(t, result) + assert.Len(t, result, 1) + }) +} diff --git a/backend/modules/evaluation/domain/service/expt_result_impl.go b/backend/modules/evaluation/domain/service/expt_result_impl.go index e9150b7e5..624fe50ea 100644 --- a/backend/modules/evaluation/domain/service/expt_result_impl.go +++ b/backend/modules/evaluation/domain/service/expt_result_impl.go @@ -55,7 +55,7 @@ func NewExptResultService( tagRPCAdapter rpc.ITagRPCAdapter, analysisService IEvaluationAnalysisService, ) ExptResultService { - return ExptResultServiceImpl{ + return &ExptResultServiceImpl{ ExptItemResultRepo: exptItemResultRepo, ExptTurnResultRepo: exptTurnResultRepo, ExptAnnotateRepo: exptAnnotateRepo, @@ -169,6 +169,29 @@ func (e ExptResultServiceImpl) RecordItemRunLogs(ctx context.Context, exptID, ex logs.CtxInfo(ctx, "[ExptEval] expt item result with recording run_log, expt_id=%v, expt_run_id=%v, item_id=%v, cnt_op: %v", exptID, exptRunID, itemID, json.Jsonify(statsCntOp)) + // 加载实验配置,判断是否启用加权分数,并从 EvaluatorConf.ScoreWeight 构建权重映射 + var ( + enableWeightedScore bool + scoreWeights map[int64]float64 + ) + expt, err := e.ExperimentRepo.GetByID(ctx, exptID, spaceID) + if err == nil && expt != nil && + expt.EvalConf != nil && expt.EvalConf.ConnectorConf.EvaluatorsConf != nil && + expt.EvalConf.ConnectorConf.EvaluatorsConf.EnableScoreWeight { + for _, ec := range expt.EvalConf.ConnectorConf.EvaluatorsConf.EvaluatorConf { + if ec == nil || ec.ScoreWeight == nil || *ec.ScoreWeight <= 0 { + continue + } + if scoreWeights == nil { + scoreWeights = make(map[int64]float64) + } + scoreWeights[ec.EvaluatorVersionID] = *ec.ScoreWeight + } + if len(scoreWeights) > 0 { + enableWeightedScore = true + } + } + var ( turnEvaluatorRefs []*entity.ExptTurnEvaluatorResultRef turn2Result = gslice.ToMap(turnResults, func(t *entity.ExptTurnResult) (int64, *entity.ExptTurnResult) { return t.TurnID, t }) @@ -187,6 +210,34 @@ func (e ExptResultServiceImpl) RecordItemRunLogs(ctx context.Context, exptID, ex result.ExptRunID = rl.ExptRunID turnEvaluatorRefs = append(turnEvaluatorRefs, NewTurnEvaluatorResultRefs(0, result.ExptID, result.ID, spaceID, rl.EvaluatorResultIds)...) + + // 计算并回写当前轮次的加权分数 + if enableWeightedScore && rl.EvaluatorResultIds != nil && len(rl.EvaluatorResultIds.EvalVerIDToResID) > 0 { + evaluatorResultIDs := make([]int64, 0, len(rl.EvaluatorResultIds.EvalVerIDToResID)) + for _, resID := range rl.EvaluatorResultIds.EvalVerIDToResID { + evaluatorResultIDs = append(evaluatorResultIDs, resID) + } + + if len(evaluatorResultIDs) > 0 { + records, err := e.evaluatorRecordService.BatchGetEvaluatorRecord(ctx, evaluatorResultIDs, false) + if err != nil { + logs.CtxError(ctx, "[ExptEval] RecordItemRunLogs BatchGetEvaluatorRecord failed, expt_id=%v, expt_run_id=%v, item_id=%v, turn_id=%v, err=%v", + exptID, exptRunID, itemID, tid, err) + } else { + version2Record := make(map[int64]*entity.EvaluatorRecord, len(records)) + for _, r := range records { + if r == nil { + continue + } + version2Record[r.EvaluatorVersionID] = r + } + + if ws := calculateWeightedScore(version2Record, scoreWeights); ws != nil { + result.WeightedScore = ws + } + } + } + } } if len(turnEvaluatorRefs) > 0 { @@ -1149,6 +1200,37 @@ func (b *PayloadBuilder) fillExptTurnResultFilters(ctx context.Context, createdD if ok { exptTurnResultFilter.EvaluatorScoreCorrected = evaluatorScoreCorrected } + // 填充加权得分 + weightedScore := exptTurnResult.WeightedScore + // 如果 WeightedScore 为 nil,但实验启用了加权分数,则重新计算 + if weightedScore == nil && exptResultBuilder.exptDO != nil && + exptResultBuilder.exptDO.EvalConf != nil && + exptResultBuilder.exptDO.EvalConf.ConnectorConf.EvaluatorsConf != nil && + exptResultBuilder.exptDO.EvalConf.ConnectorConf.EvaluatorsConf.EnableScoreWeight { + // 构建权重映射 + scoreWeights := make(map[int64]float64) + for _, ec := range exptResultBuilder.exptDO.EvalConf.ConnectorConf.EvaluatorsConf.EvaluatorConf { + if ec == nil || ec.ScoreWeight == nil || *ec.ScoreWeight <= 0 { + continue + } + scoreWeights[ec.EvaluatorVersionID] = *ec.ScoreWeight + } + // 如果有评估器结果,则计算加权分数 + // 如果没有权重配置,calculateWeightedScore 会按所有评估器权重都为1进行计算(简单平均) + if len(evaluatorVersionID2Result) > 0 { + // 将 map[int64]*entity.EvaluatorRecord 转换为 calculateWeightedScore 需要的格式 + evaluatorRecords := make(map[int64]*entity.EvaluatorRecord) + for evaluatorVersionID, record := range evaluatorVersionID2Result { + if record != nil { + evaluatorRecords[evaluatorVersionID] = record + } + } + if len(evaluatorRecords) > 0 { + weightedScore = calculateWeightedScore(evaluatorRecords, scoreWeights) + } + } + } + exptTurnResultFilter.EvaluatorWeightedScore = weightedScore exptTurnResultFilter.UpdatedAt = updatedAt b.ExptTurnResultFilters = append(b.ExptTurnResultFilters, exptTurnResultFilter) } @@ -1357,9 +1439,110 @@ func (e *ExptResultBuilder) getTurnEvaluatorResult(ctx context.Context, itemID, } } - return &entity.TurnEvaluatorOutput{ + // 从 expt_turn_result 表回写的字段中读取加权分数 + output := &entity.TurnEvaluatorOutput{ EvaluatorRecords: evaluatorVersionID2Result, } + + turnResultID2TurnResult := gslice.ToMap(e.turnResultDO, func(t *entity.ExptTurnResult) (int64, *entity.ExptTurnResult) { + return t.ID, t + }) + if tr, ok := turnResultID2TurnResult[turnResultID]; ok { + output.WeightedScore = tr.WeightedScore + } + + return output +} + +// calculateWeightedScore 计算加权分数 +func calculateWeightedScore( + evaluatorRecords map[int64]*entity.EvaluatorRecord, + weights map[int64]float64, +) *float64 { + if len(evaluatorRecords) == 0 { + return nil + } + + // 如果未配置权重(weights 为空),则按所有评估器权重相同计算加权分(即简单平均) + if len(weights) == 0 { + var ( + sumScore float64 + cnt int + ) + for _, record := range evaluatorRecords { + if record == nil { + continue + } + // 获取评估器分数(优先使用修正分数) + var score *float64 + if record.EvaluatorOutputData != nil && record.EvaluatorOutputData.EvaluatorResult != nil { + if record.EvaluatorOutputData.EvaluatorResult.Correction != nil && + record.EvaluatorOutputData.EvaluatorResult.Correction.Score != nil { + score = record.EvaluatorOutputData.EvaluatorResult.Correction.Score + } else if record.EvaluatorOutputData.EvaluatorResult.Score != nil { + score = record.EvaluatorOutputData.EvaluatorResult.Score + } + } + if score == nil { + continue + } + sumScore += *score + cnt++ + } + if cnt == 0 { + return nil + } + avg := sumScore / float64(cnt) + roundedAvg := utils.RoundScoreToTwoDecimals(avg) + return &roundedAvg + } + + var totalWeightedScore float64 + var totalWeight float64 + hasValidScore := false + + for evaluatorVersionID, record := range evaluatorRecords { + if record == nil { + continue + } + + // 获取评估器分数(优先使用修正分数) + var score *float64 + if record.EvaluatorOutputData != nil && record.EvaluatorOutputData.EvaluatorResult != nil { + if record.EvaluatorOutputData.EvaluatorResult.Correction != nil && + record.EvaluatorOutputData.EvaluatorResult.Correction.Score != nil { + score = record.EvaluatorOutputData.EvaluatorResult.Correction.Score + } else if record.EvaluatorOutputData.EvaluatorResult.Score != nil { + score = record.EvaluatorOutputData.EvaluatorResult.Score + } + } + + // 如果没有有效分数,跳过 + if score == nil { + continue + } + + // 获取权重 + weight, ok := weights[evaluatorVersionID] + if !ok || weight <= 0 { + continue + } + + // 累加加权分数 + totalWeightedScore += *score * weight + totalWeight += weight + hasValidScore = true + } + + // 如果没有有效分数或权重总和为0,返回nil + if !hasValidScore || totalWeight <= 0 { + return nil + } + + // 计算加权平均分数 + weightedScore := totalWeightedScore / totalWeight + roundedScore := utils.RoundScoreToTwoDecimals(weightedScore) + return &roundedScore } func (e *ExptResultBuilder) buildAnnotateRecords(ctx context.Context) error { @@ -2519,3 +2702,101 @@ func ParseTurnKey(turnKey string) (*TurnKeyComponents, error) { TurnID: turnID, }, nil } + +// RecalculateWeightedScore 重新计算指定轮次的加权得分并更新到 expt_turn_result +func (e *ExptResultServiceImpl) RecalculateWeightedScore(ctx context.Context, spaceID, exptID, itemID, turnID int64) error { + // 获取该轮次对应的 expt_turn_result + turnResult, err := e.ExptTurnResultRepo.Get(ctx, spaceID, exptID, itemID, turnID) + if err != nil { + return err + } + if turnResult == nil { + logs.CtxWarn(ctx, "TurnResult not found, expt_id: %v, item_id: %v, turn_id: %v", exptID, itemID, turnID) + return nil + } + + // 获取实验配置 + expt, err := e.ExperimentRepo.GetByID(ctx, exptID, spaceID) + if err != nil { + return err + } + if expt == nil { + logs.CtxWarn(ctx, "Experiment not found, expt_id: %v", exptID) + return nil + } + + // 检查实验是否启用了加权得分 + if expt.EvalConf == nil || expt.EvalConf.ConnectorConf.EvaluatorsConf == nil || + !expt.EvalConf.ConnectorConf.EvaluatorsConf.EnableScoreWeight { + // 如果未启用加权得分,不需要重新计算 + return nil + } + + // 获取该轮次的所有评估器记录 + turnEvaluatorRefs, err := e.ExptTurnResultRepo.BatchGetTurnEvaluatorResultRef(ctx, spaceID, []int64{turnResult.ID}) + if err != nil { + return err + } + if len(turnEvaluatorRefs) == 0 { + logs.CtxWarn(ctx, "No evaluator refs found for turn_result_id: %v", turnResult.ID) + return nil + } + + // 收集所有评估器结果ID + evaluatorResultIDs := make([]int64, 0, len(turnEvaluatorRefs)) + for _, ref := range turnEvaluatorRefs { + if ref.EvaluatorResultID > 0 { + evaluatorResultIDs = append(evaluatorResultIDs, ref.EvaluatorResultID) + } + } + if len(evaluatorResultIDs) == 0 { + return nil + } + + // 批量获取评估器记录 + evaluatorRecords, err := e.evaluatorRecordService.BatchGetEvaluatorRecord(ctx, evaluatorResultIDs, false) + if err != nil { + return err + } + + // 构建评估器版本ID到评估器记录的映射 + version2Record := make(map[int64]*entity.EvaluatorRecord, len(evaluatorRecords)) + for _, record := range evaluatorRecords { + if record != nil { + version2Record[record.EvaluatorVersionID] = record + } + } + + // 构建权重映射 + scoreWeights := make(map[int64]float64) + if expt.EvalConf.ConnectorConf.EvaluatorsConf.EvaluatorConf != nil { + for _, ec := range expt.EvalConf.ConnectorConf.EvaluatorsConf.EvaluatorConf { + if ec != nil && ec.ScoreWeight != nil && *ec.ScoreWeight > 0 && ec.EvaluatorVersionID > 0 { + scoreWeights[ec.EvaluatorVersionID] = *ec.ScoreWeight + } + } + } + + // 重新计算加权得分 + weightedScore := calculateWeightedScore(version2Record, scoreWeights) + + // 更新 expt_turn_result 的 weighted_score + updateFields := map[string]any{ + "weighted_score": weightedScore, + } + itemTurnIDs := []*entity.ItemTurnID{ + { + ItemID: itemID, + TurnID: turnID, + }, + } + if err := e.ExptTurnResultRepo.UpdateTurnResults(ctx, exptID, itemTurnIDs, spaceID, updateFields); err != nil { + return err + } + + // 注意:不需要在这里触发加权汇总得分的重新计算 + // 因为 EvaluatorRecordServiceImpl.CorrectEvaluatorRecord 中已经发送了 AggrCalculateEvent + // 当 AggrCalculateEvent 消息被处理时,CreateExptAggrResult 方法会自动计算加权分数的聚合结果 + + return nil +} diff --git a/backend/modules/evaluation/domain/service/expt_result_impl_test.go b/backend/modules/evaluation/domain/service/expt_result_impl_test.go index 110f31978..9194ff1a5 100644 --- a/backend/modules/evaluation/domain/service/expt_result_impl_test.go +++ b/backend/modules/evaluation/domain/service/expt_result_impl_test.go @@ -1975,6 +1975,17 @@ func TestExptResultServiceImpl_RecordItemRunLogs(t *testing.T) { defer ctrl.Finish() svc := tt.setup(ctrl) + + // RecordItemRunLogs 内部会通过 ExperimentRepo.GetByID 加载实验配置,用于判断是否启用加权分数。 + // 旧单测未初始化 ExperimentRepo,导致新增逻辑下出现 nil pointer。 + // 这里为所有用例统一注入一个 mock ExperimentRepo,并让 GetByID 返回 nil 实验,跳过加权逻辑。 + mockExperimentRepo := repoMocks.NewMockIExperimentRepo(ctrl) + svc.ExperimentRepo = mockExperimentRepo + mockExperimentRepo.EXPECT(). + GetByID(gomock.Any(), tt.exptID, tt.spaceID). + Return((*entity.Experiment)(nil), nil). + AnyTimes() + _, err := svc.RecordItemRunLogs(context.Background(), tt.exptID, tt.exptRunID, tt.itemID, tt.spaceID) if (err != nil) != tt.wantErr { t.Errorf("RecordItemRunLogs() error = %v, wantErr %v", err, tt.wantErr) @@ -2026,9 +2037,9 @@ func TestNewExptResultService(t *testing.T) { nil, ) - impl, ok := svc.(ExptResultServiceImpl) + impl, ok := svc.(*ExptResultServiceImpl) if !ok { - t.Fatalf("NewExptResultService should return ExptResultServiceImpl") + t.Fatalf("NewExptResultService should return *ExptResultServiceImpl") } // 断言每个依赖都被正确赋值 @@ -4676,3 +4687,1110 @@ func TestExptResultBuilder_buildEvaluatorResult(t *testing.T) { }) } } + +// TestExptResultServiceImpl_RecordItemRunLogs_ScoreWeights 测试 RecordItemRunLogs 中构建 scoreWeights 的逻辑(181-194行) +func TestExptResultServiceImpl_RecordItemRunLogs_ScoreWeights(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + ctx := context.Background() + exptID := int64(1) + exptRunID := int64(1) + itemID := int64(1) + spaceID := int64(100) + + t.Run("启用加权分数,构建权重映射", func(t *testing.T) { + mockExptItemResultRepo := repoMocks.NewMockIExptItemResultRepo(ctrl) + mockExptTurnResultRepo := repoMocks.NewMockIExptTurnResultRepo(ctrl) + mockExptStatsRepo := repoMocks.NewMockIExptStatsRepo(ctrl) + mockEvaluatorRecordService := svcMocks.NewMockEvaluatorRecordService(ctrl) + mockPublisher := eventsMocks.NewMockExptEventPublisher(ctrl) + mockIdgen := idgenMocks.NewMockIIDGenerator(ctrl) + mockExperimentRepo := repoMocks.NewMockIExperimentRepo(ctrl) + + service := ExptResultServiceImpl{ + ExptItemResultRepo: mockExptItemResultRepo, + ExptTurnResultRepo: mockExptTurnResultRepo, + ExptStatsRepo: mockExptStatsRepo, + evaluatorRecordService: mockEvaluatorRecordService, + publisher: mockPublisher, + idgen: mockIdgen, + ExperimentRepo: mockExperimentRepo, + } + + // Mock GetItemRunLog + mockExptItemResultRepo.EXPECT(). + GetItemRunLog(ctx, exptID, exptRunID, itemID, spaceID). + Return(&entity.ExptItemResultRunLog{ + Status: 1, + ResultState: int32(entity.ExptItemResultStateLogged), + }, nil) + + // Mock BatchGet + mockExptItemResultRepo.EXPECT(). + BatchGet(ctx, spaceID, exptID, []int64{itemID}). + Return([]*entity.ExptItemResult{ + {ID: 1, ItemID: itemID, Status: entity.ItemRunState_Processing}, + }, nil) + + // Mock GetItemTurnRunLogs + mockExptTurnResultRepo.EXPECT(). + GetItemTurnRunLogs(ctx, exptID, exptRunID, itemID, spaceID). + Return([]*entity.ExptTurnResultRunLog{ + { + TurnID: 1, + Status: entity.TurnRunState_Success, + EvaluatorResultIds: &entity.EvaluatorResults{EvalVerIDToResID: map[int64]int64{101: 1}}, + }, + }, nil) + + // Mock GetItemTurnResults + mockExptItemResultRepo.EXPECT(). + GetItemTurnResults(ctx, spaceID, exptID, itemID). + Return([]*entity.ExptTurnResult{ + {ID: 1, TurnID: 1, Status: int32(entity.TurnRunState_Success)}, + }, nil) + + // Mock GetByID - 返回启用加权分数的实验配置 + weight1 := 0.6 + weight2 := 0.4 + mockExperimentRepo.EXPECT(). + GetByID(ctx, exptID, spaceID). + Return(&entity.Experiment{ + ID: exptID, + EvalConf: &entity.EvaluationConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EnableScoreWeight: true, + EvaluatorConf: []*entity.EvaluatorConf{ + { + EvaluatorVersionID: 101, + ScoreWeight: &weight1, + }, + { + EvaluatorVersionID: 102, + ScoreWeight: &weight2, + }, + { + EvaluatorVersionID: 103, + ScoreWeight: nil, // nil 权重应该被跳过 + }, + { + EvaluatorVersionID: 104, + ScoreWeight: gptr.Of(0.0), // 0 权重应该被跳过 + }, + }, + }, + }, + }, + }, nil) + + // Mock BatchGetEvaluatorRecord + mockEvaluatorRecordService.EXPECT(). + BatchGetEvaluatorRecord(ctx, []int64{1}, false). + Return([]*entity.EvaluatorRecord{ + { + ID: 1, + EvaluatorVersionID: 101, + EvaluatorOutputData: &entity.EvaluatorOutputData{ + EvaluatorResult: &entity.EvaluatorResult{ + Score: gptr.Of(0.8), + }, + }, + }, + }, nil) + + // Mock idgen + mockIdgen.EXPECT(). + GenMultiIDs(ctx, 1). + Return([]int64{1}, nil) + + // Mock CreateTurnEvaluatorRefs + mockExptTurnResultRepo.EXPECT(). + CreateTurnEvaluatorRefs(ctx, gomock.Any()). + Return(nil) + + // Mock SaveTurnResults + mockExptTurnResultRepo.EXPECT(). + SaveTurnResults(ctx, gomock.Any()). + DoAndReturn(func(_ context.Context, results []*entity.ExptTurnResult) error { + // 验证加权分数被正确计算 + if len(results) > 0 && results[0].WeightedScore != nil { + // 权重为 0.6,分数为 0.8,加权分数应该是 0.8 * 0.6 / 0.6 = 0.8 + assert.NotNil(t, results[0].WeightedScore) + } + return nil + }) + + // Mock UpdateItemsResult + mockExptItemResultRepo.EXPECT(). + UpdateItemsResult(ctx, spaceID, exptID, []int64{itemID}, gomock.Any()). + Return(nil) + + // Mock UpdateItemRunLog + mockExptItemResultRepo.EXPECT(). + UpdateItemRunLog(ctx, exptID, exptRunID, []int64{itemID}, gomock.Any(), spaceID). + Return(nil) + + // Mock ArithOperateCount + mockExptStatsRepo.EXPECT(). + ArithOperateCount(ctx, exptID, spaceID, gomock.Any()). + Return(nil) + + _, err := service.RecordItemRunLogs(ctx, exptID, exptRunID, itemID, spaceID) + assert.NoError(t, err) + }) + + t.Run("未启用加权分数,不构建权重映射", func(t *testing.T) { + mockExptItemResultRepo := repoMocks.NewMockIExptItemResultRepo(ctrl) + mockExptTurnResultRepo := repoMocks.NewMockIExptTurnResultRepo(ctrl) + mockExptStatsRepo := repoMocks.NewMockIExptStatsRepo(ctrl) + mockEvaluatorRecordService := svcMocks.NewMockEvaluatorRecordService(ctrl) + mockPublisher := eventsMocks.NewMockExptEventPublisher(ctrl) + mockIdgen := idgenMocks.NewMockIIDGenerator(ctrl) + mockExperimentRepo := repoMocks.NewMockIExperimentRepo(ctrl) + + service := ExptResultServiceImpl{ + ExptItemResultRepo: mockExptItemResultRepo, + ExptTurnResultRepo: mockExptTurnResultRepo, + ExptStatsRepo: mockExptStatsRepo, + evaluatorRecordService: mockEvaluatorRecordService, + publisher: mockPublisher, + idgen: mockIdgen, + ExperimentRepo: mockExperimentRepo, + } + + // Mock GetItemRunLog + mockExptItemResultRepo.EXPECT(). + GetItemRunLog(ctx, exptID, exptRunID, itemID, spaceID). + Return(&entity.ExptItemResultRunLog{ + Status: 1, + ResultState: int32(entity.ExptItemResultStateLogged), + }, nil) + + // Mock BatchGet + mockExptItemResultRepo.EXPECT(). + BatchGet(ctx, spaceID, exptID, []int64{itemID}). + Return([]*entity.ExptItemResult{ + {ID: 1, ItemID: itemID, Status: entity.ItemRunState_Processing}, + }, nil) + + // Mock GetItemTurnRunLogs + mockExptTurnResultRepo.EXPECT(). + GetItemTurnRunLogs(ctx, exptID, exptRunID, itemID, spaceID). + Return([]*entity.ExptTurnResultRunLog{ + { + TurnID: 1, + Status: entity.TurnRunState_Success, + EvaluatorResultIds: &entity.EvaluatorResults{EvalVerIDToResID: map[int64]int64{101: 1}}, + }, + }, nil) + + // Mock GetItemTurnResults + mockExptItemResultRepo.EXPECT(). + GetItemTurnResults(ctx, spaceID, exptID, itemID). + Return([]*entity.ExptTurnResult{ + {ID: 1, TurnID: 1, Status: int32(entity.TurnRunState_Success)}, + }, nil) + + // Mock GetByID - 返回未启用加权分数的实验配置 + mockExperimentRepo.EXPECT(). + GetByID(ctx, exptID, spaceID). + Return(&entity.Experiment{ + ID: exptID, + EvalConf: &entity.EvaluationConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EnableScoreWeight: false, // 未启用加权分数 + }, + }, + }, + }, nil) + + // Mock idgen + mockIdgen.EXPECT(). + GenMultiIDs(ctx, 1). + Return([]int64{1}, nil) + + // Mock CreateTurnEvaluatorRefs + mockExptTurnResultRepo.EXPECT(). + CreateTurnEvaluatorRefs(ctx, gomock.Any()). + Return(nil) + + // Mock SaveTurnResults + mockExptTurnResultRepo.EXPECT(). + SaveTurnResults(ctx, gomock.Any()). + Return(nil) + + // Mock UpdateItemsResult + mockExptItemResultRepo.EXPECT(). + UpdateItemsResult(ctx, spaceID, exptID, []int64{itemID}, gomock.Any()). + Return(nil) + + // Mock UpdateItemRunLog + mockExptItemResultRepo.EXPECT(). + UpdateItemRunLog(ctx, exptID, exptRunID, []int64{itemID}, gomock.Any(), spaceID). + Return(nil) + + // Mock ArithOperateCount + mockExptStatsRepo.EXPECT(). + ArithOperateCount(ctx, exptID, spaceID, gomock.Any()). + Return(nil) + + _, err := service.RecordItemRunLogs(ctx, exptID, exptRunID, itemID, spaceID) + assert.NoError(t, err) + }) +} + +// TestExptResultServiceImpl_RecordItemRunLogs_CalculateWeightedScore 测试 RecordItemRunLogs 中计算加权分数的逻辑(216-242行) +func TestExptResultServiceImpl_RecordItemRunLogs_CalculateWeightedScore(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + ctx := context.Background() + exptID := int64(1) + exptRunID := int64(1) + itemID := int64(1) + spaceID := int64(100) + + t.Run("成功计算加权分数", func(t *testing.T) { + mockExptItemResultRepo := repoMocks.NewMockIExptItemResultRepo(ctrl) + mockExptTurnResultRepo := repoMocks.NewMockIExptTurnResultRepo(ctrl) + mockExptStatsRepo := repoMocks.NewMockIExptStatsRepo(ctrl) + mockEvaluatorRecordService := svcMocks.NewMockEvaluatorRecordService(ctrl) + mockPublisher := eventsMocks.NewMockExptEventPublisher(ctrl) + mockIdgen := idgenMocks.NewMockIIDGenerator(ctrl) + mockExperimentRepo := repoMocks.NewMockIExperimentRepo(ctrl) + + service := ExptResultServiceImpl{ + ExptItemResultRepo: mockExptItemResultRepo, + ExptTurnResultRepo: mockExptTurnResultRepo, + ExptStatsRepo: mockExptStatsRepo, + evaluatorRecordService: mockEvaluatorRecordService, + publisher: mockPublisher, + idgen: mockIdgen, + ExperimentRepo: mockExperimentRepo, + } + + // Mock GetItemRunLog + mockExptItemResultRepo.EXPECT(). + GetItemRunLog(ctx, exptID, exptRunID, itemID, spaceID). + Return(&entity.ExptItemResultRunLog{ + Status: 1, + ResultState: int32(entity.ExptItemResultStateLogged), + }, nil) + + // Mock BatchGet + mockExptItemResultRepo.EXPECT(). + BatchGet(ctx, spaceID, exptID, []int64{itemID}). + Return([]*entity.ExptItemResult{ + {ID: 1, ItemID: itemID, Status: entity.ItemRunState_Processing}, + }, nil) + + // Mock GetItemTurnRunLogs - 包含评估器结果ID + mockExptTurnResultRepo.EXPECT(). + GetItemTurnRunLogs(ctx, exptID, exptRunID, itemID, spaceID). + Return([]*entity.ExptTurnResultRunLog{ + { + TurnID: 1, + Status: entity.TurnRunState_Success, + EvaluatorResultIds: &entity.EvaluatorResults{EvalVerIDToResID: map[int64]int64{101: 1, 102: 2}}, + }, + }, nil) + + // Mock GetItemTurnResults + mockExptItemResultRepo.EXPECT(). + GetItemTurnResults(ctx, spaceID, exptID, itemID). + Return([]*entity.ExptTurnResult{ + {ID: 1, TurnID: 1, Status: int32(entity.TurnRunState_Success)}, + }, nil) + + // Mock GetByID - 返回启用加权分数的实验配置 + weight1 := 0.6 + weight2 := 0.4 + mockExperimentRepo.EXPECT(). + GetByID(ctx, exptID, spaceID). + Return(&entity.Experiment{ + ID: exptID, + EvalConf: &entity.EvaluationConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EnableScoreWeight: true, + EvaluatorConf: []*entity.EvaluatorConf{ + {EvaluatorVersionID: 101, ScoreWeight: &weight1}, + {EvaluatorVersionID: 102, ScoreWeight: &weight2}, + }, + }, + }, + }, + }, nil) + + // Mock BatchGetEvaluatorRecord - 返回两个评估器记录 + // 注意:由于 map 遍历顺序不确定,使用 gomock.Any() 匹配参数顺序 + score1 := 0.8 + score2 := 0.9 + mockEvaluatorRecordService.EXPECT(). + BatchGetEvaluatorRecord(ctx, gomock.Any(), false). + DoAndReturn(func(_ context.Context, ids []int64, _ bool) ([]*entity.EvaluatorRecord, error) { + // 根据传入的ID顺序返回对应的记录 + records := make([]*entity.EvaluatorRecord, 0, len(ids)) + for _, id := range ids { + switch id { + case 1: + records = append(records, &entity.EvaluatorRecord{ + ID: 1, + EvaluatorVersionID: 101, + EvaluatorOutputData: &entity.EvaluatorOutputData{ + EvaluatorResult: &entity.EvaluatorResult{ + Score: &score1, + }, + }, + }) + case 2: + records = append(records, &entity.EvaluatorRecord{ + ID: 2, + EvaluatorVersionID: 102, + EvaluatorOutputData: &entity.EvaluatorOutputData{ + EvaluatorResult: &entity.EvaluatorResult{ + Score: &score2, + }, + }, + }) + } + } + return records, nil + }) + + // Mock idgen + mockIdgen.EXPECT(). + GenMultiIDs(ctx, 2). + Return([]int64{1, 2}, nil) + + // Mock CreateTurnEvaluatorRefs + mockExptTurnResultRepo.EXPECT(). + CreateTurnEvaluatorRefs(ctx, gomock.Any()). + Return(nil) + + // Mock SaveTurnResults - 验证加权分数被正确计算 + mockExptTurnResultRepo.EXPECT(). + SaveTurnResults(ctx, gomock.Any()). + DoAndReturn(func(_ context.Context, results []*entity.ExptTurnResult) error { + if assert.Len(t, results, 1) { + // 加权分数 = (0.8 * 0.6 + 0.9 * 0.4) / (0.6 + 0.4) = (0.48 + 0.36) / 1.0 = 0.84 + if assert.NotNil(t, results[0].WeightedScore) { + expected := 0.84 + assert.InDelta(t, expected, *results[0].WeightedScore, 0.01) + } + } + return nil + }) + + // Mock UpdateItemsResult + mockExptItemResultRepo.EXPECT(). + UpdateItemsResult(ctx, spaceID, exptID, []int64{itemID}, gomock.Any()). + Return(nil) + + // Mock UpdateItemRunLog + mockExptItemResultRepo.EXPECT(). + UpdateItemRunLog(ctx, exptID, exptRunID, []int64{itemID}, gomock.Any(), spaceID). + Return(nil) + + // Mock ArithOperateCount + mockExptStatsRepo.EXPECT(). + ArithOperateCount(ctx, exptID, spaceID, gomock.Any()). + Return(nil) + + _, err := service.RecordItemRunLogs(ctx, exptID, exptRunID, itemID, spaceID) + assert.NoError(t, err) + }) + + t.Run("BatchGetEvaluatorRecord 失败,记录错误但不中断流程", func(t *testing.T) { + mockExptItemResultRepo := repoMocks.NewMockIExptItemResultRepo(ctrl) + mockExptTurnResultRepo := repoMocks.NewMockIExptTurnResultRepo(ctrl) + mockExptStatsRepo := repoMocks.NewMockIExptStatsRepo(ctrl) + mockEvaluatorRecordService := svcMocks.NewMockEvaluatorRecordService(ctrl) + mockPublisher := eventsMocks.NewMockExptEventPublisher(ctrl) + mockIdgen := idgenMocks.NewMockIIDGenerator(ctrl) + mockExperimentRepo := repoMocks.NewMockIExperimentRepo(ctrl) + + service := ExptResultServiceImpl{ + ExptItemResultRepo: mockExptItemResultRepo, + ExptTurnResultRepo: mockExptTurnResultRepo, + ExptStatsRepo: mockExptStatsRepo, + evaluatorRecordService: mockEvaluatorRecordService, + publisher: mockPublisher, + idgen: mockIdgen, + ExperimentRepo: mockExperimentRepo, + } + + // Mock GetItemRunLog + mockExptItemResultRepo.EXPECT(). + GetItemRunLog(ctx, exptID, exptRunID, itemID, spaceID). + Return(&entity.ExptItemResultRunLog{ + Status: 1, + ResultState: int32(entity.ExptItemResultStateLogged), + }, nil) + + // Mock BatchGet + mockExptItemResultRepo.EXPECT(). + BatchGet(ctx, spaceID, exptID, []int64{itemID}). + Return([]*entity.ExptItemResult{ + {ID: 1, ItemID: itemID, Status: entity.ItemRunState_Processing}, + }, nil) + + // Mock GetItemTurnRunLogs + mockExptTurnResultRepo.EXPECT(). + GetItemTurnRunLogs(ctx, exptID, exptRunID, itemID, spaceID). + Return([]*entity.ExptTurnResultRunLog{ + { + TurnID: 1, + Status: entity.TurnRunState_Success, + EvaluatorResultIds: &entity.EvaluatorResults{EvalVerIDToResID: map[int64]int64{101: 1}}, + }, + }, nil) + + // Mock GetItemTurnResults + mockExptItemResultRepo.EXPECT(). + GetItemTurnResults(ctx, spaceID, exptID, itemID). + Return([]*entity.ExptTurnResult{ + {ID: 1, TurnID: 1, Status: int32(entity.TurnRunState_Success)}, + }, nil) + + // Mock GetByID + weight1 := 0.6 + mockExperimentRepo.EXPECT(). + GetByID(ctx, exptID, spaceID). + Return(&entity.Experiment{ + ID: exptID, + EvalConf: &entity.EvaluationConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EnableScoreWeight: true, + EvaluatorConf: []*entity.EvaluatorConf{ + {EvaluatorVersionID: 101, ScoreWeight: &weight1}, + }, + }, + }, + }, + }, nil) + + // Mock BatchGetEvaluatorRecord - 返回错误 + mockEvaluatorRecordService.EXPECT(). + BatchGetEvaluatorRecord(ctx, []int64{1}, false). + Return(nil, errors.New("db error")) + + // Mock idgen + mockIdgen.EXPECT(). + GenMultiIDs(ctx, 1). + Return([]int64{1}, nil) + + // Mock CreateTurnEvaluatorRefs + mockExptTurnResultRepo.EXPECT(). + CreateTurnEvaluatorRefs(ctx, gomock.Any()). + Return(nil) + + // Mock SaveTurnResults - 加权分数应该为 nil + mockExptTurnResultRepo.EXPECT(). + SaveTurnResults(ctx, gomock.Any()). + DoAndReturn(func(_ context.Context, results []*entity.ExptTurnResult) error { + if assert.Len(t, results, 1) { + assert.Nil(t, results[0].WeightedScore) + } + return nil + }) + + // Mock UpdateItemsResult + mockExptItemResultRepo.EXPECT(). + UpdateItemsResult(ctx, spaceID, exptID, []int64{itemID}, gomock.Any()). + Return(nil) + + // Mock UpdateItemRunLog + mockExptItemResultRepo.EXPECT(). + UpdateItemRunLog(ctx, exptID, exptRunID, []int64{itemID}, gomock.Any(), spaceID). + Return(nil) + + // Mock ArithOperateCount + mockExptStatsRepo.EXPECT(). + ArithOperateCount(ctx, exptID, spaceID, gomock.Any()). + Return(nil) + + _, err := service.RecordItemRunLogs(ctx, exptID, exptRunID, itemID, spaceID) + assert.NoError(t, err) // 即使 BatchGetEvaluatorRecord 失败,流程也应该继续 + }) +} + +// TestCalculateWeightedScore 测试 calculateWeightedScore 函数(1442-1547行) +func TestCalculateWeightedScore(t *testing.T) { + t.Run("空记录返回 nil", func(t *testing.T) { + result := calculateWeightedScore(nil, nil) + assert.Nil(t, result) + + result = calculateWeightedScore(map[int64]*entity.EvaluatorRecord{}, nil) + assert.Nil(t, result) + }) + + t.Run("无权重配置,计算简单平均", func(t *testing.T) { + score1 := 0.8 + score2 := 0.9 + score3 := 0.7 + records := map[int64]*entity.EvaluatorRecord{ + 101: { + EvaluatorVersionID: 101, + EvaluatorOutputData: &entity.EvaluatorOutputData{ + EvaluatorResult: &entity.EvaluatorResult{ + Score: &score1, + }, + }, + }, + 102: { + EvaluatorVersionID: 102, + EvaluatorOutputData: &entity.EvaluatorOutputData{ + EvaluatorResult: &entity.EvaluatorResult{ + Score: &score2, + }, + }, + }, + 103: { + EvaluatorVersionID: 103, + EvaluatorOutputData: &entity.EvaluatorOutputData{ + EvaluatorResult: &entity.EvaluatorResult{ + Score: &score3, + }, + }, + }, + } + + result := calculateWeightedScore(records, nil) + assert.NotNil(t, result) + expected := (0.8 + 0.9 + 0.7) / 3.0 // 0.8 + assert.InDelta(t, expected, *result, 0.01) + }) + + t.Run("有权重配置,计算加权平均", func(t *testing.T) { + score1 := 0.8 + score2 := 0.9 + records := map[int64]*entity.EvaluatorRecord{ + 101: { + EvaluatorVersionID: 101, + EvaluatorOutputData: &entity.EvaluatorOutputData{ + EvaluatorResult: &entity.EvaluatorResult{ + Score: &score1, + }, + }, + }, + 102: { + EvaluatorVersionID: 102, + EvaluatorOutputData: &entity.EvaluatorOutputData{ + EvaluatorResult: &entity.EvaluatorResult{ + Score: &score2, + }, + }, + }, + } + + weights := map[int64]float64{ + 101: 0.6, + 102: 0.4, + } + + result := calculateWeightedScore(records, weights) + assert.NotNil(t, result) + expected := (0.8*0.6 + 0.9*0.4) / (0.6 + 0.4) // 0.84 + assert.InDelta(t, expected, *result, 0.01) + }) + + t.Run("优先使用修正分数", func(t *testing.T) { + originalScore := 0.8 + correctionScore := 0.9 + records := map[int64]*entity.EvaluatorRecord{ + 101: { + EvaluatorVersionID: 101, + EvaluatorOutputData: &entity.EvaluatorOutputData{ + EvaluatorResult: &entity.EvaluatorResult{ + Score: &originalScore, + Correction: &entity.Correction{ + Score: &correctionScore, + }, + }, + }, + }, + } + + result := calculateWeightedScore(records, nil) + assert.NotNil(t, result) + assert.InDelta(t, 0.9, *result, 0.01) // 应该使用修正分数 0.9 + }) + + t.Run("包含 nil 记录,跳过", func(t *testing.T) { + score1 := 0.8 + records := map[int64]*entity.EvaluatorRecord{ + 101: { + EvaluatorVersionID: 101, + EvaluatorOutputData: &entity.EvaluatorOutputData{ + EvaluatorResult: &entity.EvaluatorResult{ + Score: &score1, + }, + }, + }, + 102: nil, // nil 记录应该被跳过 + } + + result := calculateWeightedScore(records, nil) + assert.NotNil(t, result) + assert.InDelta(t, 0.8, *result, 0.01) + }) + + t.Run("记录无分数,返回 nil", func(t *testing.T) { + records := map[int64]*entity.EvaluatorRecord{ + 101: { + EvaluatorVersionID: 101, + EvaluatorOutputData: &entity.EvaluatorOutputData{ + EvaluatorResult: &entity.EvaluatorResult{ + Score: nil, // 无分数 + }, + }, + }, + } + + result := calculateWeightedScore(records, nil) + assert.Nil(t, result) + }) + + t.Run("权重为0或负数,跳过", func(t *testing.T) { + score1 := 0.8 + score2 := 0.9 + records := map[int64]*entity.EvaluatorRecord{ + 101: { + EvaluatorVersionID: 101, + EvaluatorOutputData: &entity.EvaluatorOutputData{ + EvaluatorResult: &entity.EvaluatorResult{ + Score: &score1, + }, + }, + }, + 102: { + EvaluatorVersionID: 102, + EvaluatorOutputData: &entity.EvaluatorOutputData{ + EvaluatorResult: &entity.EvaluatorResult{ + Score: &score2, + }, + }, + }, + } + + weights := map[int64]float64{ + 101: 0.6, + 102: 0.0, // 权重为0,应该被跳过 + } + + result := calculateWeightedScore(records, weights) + assert.NotNil(t, result) + // 只有 101 参与计算,加权分数 = 0.8 * 0.6 / 0.6 = 0.8 + assert.InDelta(t, 0.8, *result, 0.01) + }) + + t.Run("所有记录都被跳过,返回 nil", func(t *testing.T) { + records := map[int64]*entity.EvaluatorRecord{ + 101: { + EvaluatorVersionID: 101, + EvaluatorOutputData: &entity.EvaluatorOutputData{ + EvaluatorResult: &entity.EvaluatorResult{ + Score: nil, + }, + }, + }, + } + + weights := map[int64]float64{ + 101: 0.0, // 权重为0 + } + + result := calculateWeightedScore(records, weights) + assert.Nil(t, result) + }) +} + +// TestExptResultBuilder_FillExptTurnResultFilters_RecalculateWeightedScore 测试 fillExptTurnResultFilters 中重新计算加权分数的逻辑(1211-1232行) +func TestExptResultBuilder_FillExptTurnResultFilters_RecalculateWeightedScore(t *testing.T) { + ctx := context.Background() + + t.Run("WeightedScore 为 nil 且启用加权分数,重新计算", func(t *testing.T) { + builder := &PayloadBuilder{ + SpaceID: 100, + BaselineExptID: 1, + BaseExptItemResultDO: []*entity.ExptItemResult{ + {ItemID: 1, ItemIdx: 1, Status: entity.ItemRunState_Success}, + }, + BaseExptTurnResultDO: []*entity.ExptTurnResult{ + { + ID: 1, + ItemID: 1, + TurnID: 1, + WeightedScore: nil, // 为 nil,需要重新计算 + }, + }, + ExptResultBuilders: []*ExptResultBuilder{ + { + exptDO: &entity.Experiment{ + ID: 1, + EvalConf: &entity.EvaluationConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EnableScoreWeight: true, + EvaluatorConf: []*entity.EvaluatorConf{ + { + EvaluatorVersionID: 101, + ScoreWeight: gptr.Of(0.6), + }, + { + EvaluatorVersionID: 102, + ScoreWeight: gptr.Of(0.4), + }, + }, + }, + }, + }, + }, + turnResultID2EvaluatorVersionID2Result: map[int64]map[int64]*entity.EvaluatorRecord{ + 1: { + 101: { + EvaluatorVersionID: 101, + EvaluatorOutputData: &entity.EvaluatorOutputData{ + EvaluatorResult: &entity.EvaluatorResult{ + Score: gptr.Of(0.8), + }, + }, + }, + 102: { + EvaluatorVersionID: 102, + EvaluatorOutputData: &entity.EvaluatorOutputData{ + EvaluatorResult: &entity.EvaluatorResult{ + Score: gptr.Of(0.9), + }, + }, + }, + }, + }, + }, + }, + } + + err := builder.fillExptTurnResultFilters(ctx, nil, 1) + assert.NoError(t, err) + assert.Len(t, builder.ExptTurnResultFilters, 1) + if assert.NotNil(t, builder.ExptTurnResultFilters[0].EvaluatorWeightedScore) { + // 加权分数 = (0.8 * 0.6 + 0.9 * 0.4) / (0.6 + 0.4) = 0.84 + expected := 0.84 + assert.InDelta(t, expected, *builder.ExptTurnResultFilters[0].EvaluatorWeightedScore, 0.01) + } + }) + + t.Run("WeightedScore 不为 nil,使用已有值", func(t *testing.T) { + existingScore := 0.75 + builder := &PayloadBuilder{ + SpaceID: 100, + BaselineExptID: 1, + BaseExptItemResultDO: []*entity.ExptItemResult{ + {ItemID: 1, ItemIdx: 1, Status: entity.ItemRunState_Success}, + }, + BaseExptTurnResultDO: []*entity.ExptTurnResult{ + { + ID: 1, + ItemID: 1, + TurnID: 1, + WeightedScore: &existingScore, // 已有值,不重新计算 + }, + }, + ExptResultBuilders: []*ExptResultBuilder{ + { + exptDO: &entity.Experiment{ + ID: 1, + EvalConf: &entity.EvaluationConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EnableScoreWeight: true, + }, + }, + }, + }, + turnResultID2EvaluatorVersionID2Result: map[int64]map[int64]*entity.EvaluatorRecord{ + 1: { + 101: { + EvaluatorVersionID: 101, + EvaluatorOutputData: &entity.EvaluatorOutputData{ + EvaluatorResult: &entity.EvaluatorResult{ + Score: gptr.Of(0.8), + }, + }, + }, + }, + }, + }, + }, + } + + err := builder.fillExptTurnResultFilters(ctx, nil, 1) + assert.NoError(t, err) + assert.Len(t, builder.ExptTurnResultFilters, 1) + // 应该使用已有的加权分数 + assert.Equal(t, existingScore, *builder.ExptTurnResultFilters[0].EvaluatorWeightedScore) + }) + + t.Run("未启用加权分数,不重新计算", func(t *testing.T) { + builder := &PayloadBuilder{ + SpaceID: 100, + BaselineExptID: 1, + BaseExptItemResultDO: []*entity.ExptItemResult{ + {ItemID: 1, ItemIdx: 1, Status: entity.ItemRunState_Success}, + }, + BaseExptTurnResultDO: []*entity.ExptTurnResult{ + { + ID: 1, + ItemID: 1, + TurnID: 1, + WeightedScore: nil, + }, + }, + ExptResultBuilders: []*ExptResultBuilder{ + { + exptDO: &entity.Experiment{ + ID: 1, + EvalConf: &entity.EvaluationConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EnableScoreWeight: false, // 未启用 + }, + }, + }, + }, + turnResultID2EvaluatorVersionID2Result: map[int64]map[int64]*entity.EvaluatorRecord{ + 1: { + 101: { + EvaluatorVersionID: 101, + EvaluatorOutputData: &entity.EvaluatorOutputData{ + EvaluatorResult: &entity.EvaluatorResult{ + Score: gptr.Of(0.8), + }, + }, + }, + }, + }, + }, + }, + } + + err := builder.fillExptTurnResultFilters(ctx, nil, 1) + assert.NoError(t, err) + assert.Len(t, builder.ExptTurnResultFilters, 1) + // 未启用加权分数,应该保持为 nil + assert.Nil(t, builder.ExptTurnResultFilters[0].EvaluatorWeightedScore) + }) +} + +// TestExptResultServiceImpl_RecalculateWeightedScore 测试 RecalculateWeightedScore 函数(2707-2802行) +func TestExptResultServiceImpl_RecalculateWeightedScore(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + ctx := context.Background() + spaceID := int64(100) + exptID := int64(1) + itemID := int64(1) + turnID := int64(1) + + t.Run("成功重新计算加权分数", func(t *testing.T) { + mockExptTurnResultRepo := repoMocks.NewMockIExptTurnResultRepo(ctrl) + mockExperimentRepo := repoMocks.NewMockIExperimentRepo(ctrl) + mockEvaluatorRecordService := svcMocks.NewMockEvaluatorRecordService(ctrl) + + service := ExptResultServiceImpl{ + ExptTurnResultRepo: mockExptTurnResultRepo, + ExperimentRepo: mockExperimentRepo, + evaluatorRecordService: mockEvaluatorRecordService, + } + + // Mock Get - 返回 turnResult + turnResultID := int64(10) + mockExptTurnResultRepo.EXPECT(). + Get(ctx, spaceID, exptID, itemID, turnID). + Return(&entity.ExptTurnResult{ + ID: turnResultID, + }, nil) + + // Mock GetByID - 返回启用加权分数的实验配置 + weight1 := 0.6 + weight2 := 0.4 + mockExperimentRepo.EXPECT(). + GetByID(ctx, exptID, spaceID). + Return(&entity.Experiment{ + ID: exptID, + EvalConf: &entity.EvaluationConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EnableScoreWeight: true, + EvaluatorConf: []*entity.EvaluatorConf{ + {EvaluatorVersionID: 101, ScoreWeight: &weight1}, + {EvaluatorVersionID: 102, ScoreWeight: &weight2}, + }, + }, + }, + }, + }, nil) + + // Mock BatchGetTurnEvaluatorResultRef + mockExptTurnResultRepo.EXPECT(). + BatchGetTurnEvaluatorResultRef(ctx, spaceID, []int64{turnResultID}). + Return([]*entity.ExptTurnEvaluatorResultRef{ + {EvaluatorResultID: 1, EvaluatorVersionID: 101}, + {EvaluatorResultID: 2, EvaluatorVersionID: 102}, + }, nil) + + // Mock BatchGetEvaluatorRecord + score1 := 0.8 + score2 := 0.9 + mockEvaluatorRecordService.EXPECT(). + BatchGetEvaluatorRecord(ctx, []int64{1, 2}, false). + Return([]*entity.EvaluatorRecord{ + { + ID: 1, + EvaluatorVersionID: 101, + EvaluatorOutputData: &entity.EvaluatorOutputData{ + EvaluatorResult: &entity.EvaluatorResult{ + Score: &score1, + }, + }, + }, + { + ID: 2, + EvaluatorVersionID: 102, + EvaluatorOutputData: &entity.EvaluatorOutputData{ + EvaluatorResult: &entity.EvaluatorResult{ + Score: &score2, + }, + }, + }, + }, nil) + + // Mock UpdateTurnResults - 验证加权分数被正确更新 + mockExptTurnResultRepo.EXPECT(). + UpdateTurnResults(ctx, exptID, gomock.Any(), spaceID, gomock.Any()). + DoAndReturn(func(_ context.Context, _ int64, itemTurnIDs []*entity.ItemTurnID, _ int64, updateFields map[string]any) error { + assert.Len(t, itemTurnIDs, 1) + assert.Equal(t, itemID, itemTurnIDs[0].ItemID) + assert.Equal(t, turnID, itemTurnIDs[0].TurnID) + if weightedScore, ok := updateFields["weighted_score"].(*float64); ok { + assert.NotNil(t, weightedScore) + expected := 0.84 + assert.InDelta(t, expected, *weightedScore, 0.01) + } + return nil + }) + + err := service.RecalculateWeightedScore(ctx, spaceID, exptID, itemID, turnID) + assert.NoError(t, err) + }) + + t.Run("TurnResult 不存在,返回 nil", func(t *testing.T) { + mockExptTurnResultRepo := repoMocks.NewMockIExptTurnResultRepo(ctrl) + + service := ExptResultServiceImpl{ + ExptTurnResultRepo: mockExptTurnResultRepo, + } + + mockExptTurnResultRepo.EXPECT(). + Get(ctx, spaceID, exptID, itemID, turnID). + Return(nil, nil) + + err := service.RecalculateWeightedScore(ctx, spaceID, exptID, itemID, turnID) + assert.NoError(t, err) // 应该返回 nil,不报错 + }) + + t.Run("Experiment 不存在,返回 nil", func(t *testing.T) { + mockExptTurnResultRepo := repoMocks.NewMockIExptTurnResultRepo(ctrl) + mockExperimentRepo := repoMocks.NewMockIExperimentRepo(ctrl) + + service := ExptResultServiceImpl{ + ExptTurnResultRepo: mockExptTurnResultRepo, + ExperimentRepo: mockExperimentRepo, + } + + mockExptTurnResultRepo.EXPECT(). + Get(ctx, spaceID, exptID, itemID, turnID). + Return(&entity.ExptTurnResult{ID: 10}, nil) + + mockExperimentRepo.EXPECT(). + GetByID(ctx, exptID, spaceID). + Return(nil, nil) + + err := service.RecalculateWeightedScore(ctx, spaceID, exptID, itemID, turnID) + assert.NoError(t, err) // 应该返回 nil,不报错 + }) + + t.Run("未启用加权分数,返回 nil", func(t *testing.T) { + mockExptTurnResultRepo := repoMocks.NewMockIExptTurnResultRepo(ctrl) + mockExperimentRepo := repoMocks.NewMockIExperimentRepo(ctrl) + + service := ExptResultServiceImpl{ + ExptTurnResultRepo: mockExptTurnResultRepo, + ExperimentRepo: mockExperimentRepo, + } + + mockExptTurnResultRepo.EXPECT(). + Get(ctx, spaceID, exptID, itemID, turnID). + Return(&entity.ExptTurnResult{ID: 10}, nil) + + mockExperimentRepo.EXPECT(). + GetByID(ctx, exptID, spaceID). + Return(&entity.Experiment{ + ID: exptID, + EvalConf: &entity.EvaluationConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EnableScoreWeight: false, // 未启用 + }, + }, + }, + }, nil) + + err := service.RecalculateWeightedScore(ctx, spaceID, exptID, itemID, turnID) + assert.NoError(t, err) // 应该返回 nil,不报错 + }) + + t.Run("无评估器引用,返回 nil", func(t *testing.T) { + mockExptTurnResultRepo := repoMocks.NewMockIExptTurnResultRepo(ctrl) + mockExperimentRepo := repoMocks.NewMockIExperimentRepo(ctrl) + + service := ExptResultServiceImpl{ + ExptTurnResultRepo: mockExptTurnResultRepo, + ExperimentRepo: mockExperimentRepo, + } + + mockExptTurnResultRepo.EXPECT(). + Get(ctx, spaceID, exptID, itemID, turnID). + Return(&entity.ExptTurnResult{ID: 10}, nil) + + weight1 := 0.6 + mockExperimentRepo.EXPECT(). + GetByID(ctx, exptID, spaceID). + Return(&entity.Experiment{ + ID: exptID, + EvalConf: &entity.EvaluationConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EnableScoreWeight: true, + EvaluatorConf: []*entity.EvaluatorConf{ + {EvaluatorVersionID: 101, ScoreWeight: &weight1}, + }, + }, + }, + }, + }, nil) + + mockExptTurnResultRepo.EXPECT(). + BatchGetTurnEvaluatorResultRef(ctx, spaceID, []int64{10}). + Return([]*entity.ExptTurnEvaluatorResultRef{}, nil) // 空列表 + + err := service.RecalculateWeightedScore(ctx, spaceID, exptID, itemID, turnID) + assert.NoError(t, err) // 应该返回 nil,不报错 + }) +} 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 a1bfae9e2..7e4e639a7 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 @@ -42,6 +42,7 @@ func NewSchedulerModeFactory( publisher events.ExptEventPublisher, evaluatorRecordService EvaluatorRecordService, resultSvc ExptResultService, + templateManager IExptTemplateManager, ) SchedulerModeFactory { return &DefaultSchedulerModeFactory{ manager: manager, @@ -56,6 +57,7 @@ func NewSchedulerModeFactory( publisher: publisher, evaluatorRecordService: evaluatorRecordService, resultSvc: resultSvc, + templateManager: templateManager, } } @@ -73,6 +75,7 @@ type DefaultSchedulerModeFactory struct { publisher events.ExptEventPublisher evaluatorRecordService EvaluatorRecordService resultSvc ExptResultService + templateManager IExptTemplateManager } func (f *DefaultSchedulerModeFactory) NewSchedulerMode( @@ -80,11 +83,11 @@ func (f *DefaultSchedulerModeFactory) NewSchedulerMode( ) (entity.ExptSchedulerMode, error) { switch mode { case entity.EvaluationModeSubmit: - return NewExptSubmitMode(f.manager, f.exptItemResultRepo, f.exptStatsRepo, f.exptTurnResultRepo, f.idgenerator, f.evaluationSetItemService, f.exptRepo, f.idem, f.configer, f.publisher, f.evaluatorRecordService, f.resultSvc), nil + return NewExptSubmitMode(f.manager, f.exptItemResultRepo, f.exptStatsRepo, f.exptTurnResultRepo, f.idgenerator, f.evaluationSetItemService, f.exptRepo, f.idem, f.configer, f.publisher, f.evaluatorRecordService, f.resultSvc, f.templateManager), nil case entity.EvaluationModeFailRetry: - return NewExptFailRetryMode(f.manager, f.exptItemResultRepo, f.exptStatsRepo, f.exptTurnResultRepo, f.idgenerator, f.exptRepo, f.idem, f.configer, f.publisher, f.evaluatorRecordService), nil + return NewExptFailRetryMode(f.manager, f.exptItemResultRepo, f.exptStatsRepo, f.exptTurnResultRepo, f.idgenerator, f.exptRepo, f.idem, f.configer, f.publisher, f.evaluatorRecordService, f.templateManager), nil case entity.EvaluationModeAppend: - return NewExptAppendMode(f.manager, f.exptItemResultRepo, f.exptStatsRepo, f.exptTurnResultRepo, f.idgenerator, f.evaluationSetItemService, f.exptRepo, f.idem, f.configer, f.publisher, f.evaluatorRecordService), nil + return NewExptAppendMode(f.manager, f.exptItemResultRepo, f.exptStatsRepo, f.exptTurnResultRepo, f.idgenerator, f.evaluationSetItemService, f.exptRepo, f.idem, f.configer, f.publisher, f.evaluatorRecordService, f.templateManager), nil default: return nil, fmt.Errorf("NewSchedulerMode with unknown mode: %v", mode) } @@ -103,6 +106,7 @@ type ExptSubmitExec struct { publisher events.ExptEventPublisher evaluatorRecordService EvaluatorRecordService resultSvc ExptResultService + templateManager IExptTemplateManager } func NewExptSubmitMode( @@ -118,6 +122,7 @@ func NewExptSubmitMode( publisher events.ExptEventPublisher, evaluatorRecordService EvaluatorRecordService, resultSvc ExptResultService, + templateManager IExptTemplateManager, ) *ExptSubmitExec { return &ExptSubmitExec{ manager: manager, @@ -132,6 +137,7 @@ func NewExptSubmitMode( publisher: publisher, evaluatorRecordService: evaluatorRecordService, resultSvc: resultSvc, + templateManager: templateManager, } } @@ -260,6 +266,28 @@ func (e *ExptSubmitExec) ExptStart(ctx context.Context, event *entity.ExptSchedu return err } + // 如果实验关联了模板,更新模板的 ExptInfo + var templateID int64 + if expt.ExptTemplateMeta != nil && expt.ExptTemplateMeta.ID > 0 { + templateID = expt.ExptTemplateMeta.ID + } else { + // 如果 ExptTemplateMeta 为 nil,尝试从数据库重新获取实验对象 + updatedExpt, err := e.exptRepo.GetByID(ctx, event.ExptID, event.SpaceID) + if err == nil && updatedExpt != nil && updatedExpt.ExptTemplateMeta != nil && updatedExpt.ExptTemplateMeta.ID > 0 { + templateID = updatedExpt.ExptTemplateMeta.ID + } + } + if templateID > 0 && e.templateManager != nil { + // 离线实验开始执行,状态变更,数量不变 + if err := e.templateManager.UpdateExptInfo(ctx, templateID, event.SpaceID, event.ExptID, entity.ExptStatus_Processing, 0); err != nil { + logs.CtxError(ctx, "UpdateExptInfo failed in ExptSubmitExec.ExptStart, template_id: %v, expt_id: %v, err: %v", + templateID, event.ExptID, err) + } else { + logs.CtxInfo(ctx, "UpdateExptInfo succeeded in ExptSubmitExec.ExptStart, template_id: %v, expt_id: %v, status: %v", + templateID, event.ExptID, entity.ExptStatus_Processing) + } + } + duration := time.Duration(e.configer.GetExptExecConf(ctx, event.SpaceID).GetZombieIntervalSecond()) * time.Second * 2 if err := e.idem.Set(ctx, idemKey, duration); err != nil { return err @@ -346,6 +374,7 @@ type ExptFailRetryExec struct { configer component.IConfiger publisher events.ExptEventPublisher evaluatorRecordService EvaluatorRecordService + templateManager IExptTemplateManager } func NewExptFailRetryMode( @@ -359,6 +388,7 @@ func NewExptFailRetryMode( configer component.IConfiger, publisher events.ExptEventPublisher, evaluatorRecordService EvaluatorRecordService, + templateManager IExptTemplateManager, ) *ExptFailRetryExec { return &ExptFailRetryExec{ manager: manager, @@ -371,6 +401,7 @@ func NewExptFailRetryMode( configer: configer, publisher: publisher, evaluatorRecordService: evaluatorRecordService, + templateManager: templateManager, } } @@ -487,6 +518,26 @@ func (e *ExptFailRetryExec) ExptStart(ctx context.Context, event *entity.ExptSch return err } + // 如果实验关联了模板,在 FailRetry 模式下重新开始时,也需要更新模板上的最新实验状态 + if e.templateManager != nil { + var templateID int64 + if expt != nil && expt.ExptTemplateMeta != nil && expt.ExptTemplateMeta.ID > 0 { + templateID = expt.ExptTemplateMeta.ID + } else { + // 兜底:从数据库重新获取实验对象 + if updatedExpt, err := e.exptRepo.GetByID(ctx, event.ExptID, event.SpaceID); err == nil && updatedExpt != nil && updatedExpt.ExptTemplateMeta != nil && updatedExpt.ExptTemplateMeta.ID > 0 { + templateID = updatedExpt.ExptTemplateMeta.ID + } + } + if templateID > 0 { + if err := e.templateManager.UpdateExptInfo(ctx, templateID, event.SpaceID, event.ExptID, entity.ExptStatus_Processing, 0); err != nil { + logs.CtxError(ctx, "UpdateExptInfo failed in ExptFailRetryExec.ExptStart, template_id: %v, expt_id: %v, err: %v", templateID, event.ExptID, err) + } else { + logs.CtxInfo(ctx, "UpdateExptInfo succeeded in ExptFailRetryExec.ExptStart, template_id: %v, expt_id: %v, status: %v", templateID, event.ExptID, entity.ExptStatus_Processing) + } + } + } + duration := time.Duration(e.configer.GetExptExecConf(ctx, event.SpaceID).GetZombieIntervalSecond()) * time.Second * 2 if err := e.idem.Set(ctx, idemKey, duration); err != nil { return err @@ -542,6 +593,7 @@ type ExptAppendExec struct { configer component.IConfiger publisher events.ExptEventPublisher evaluatorRecordService EvaluatorRecordService + templateManager IExptTemplateManager } func NewExptAppendMode( @@ -556,6 +608,7 @@ func NewExptAppendMode( configer component.IConfiger, publisher events.ExptEventPublisher, evaluatorRecordService EvaluatorRecordService, + templateManager IExptTemplateManager, ) *ExptAppendExec { return &ExptAppendExec{ manager: manager, @@ -569,6 +622,7 @@ func NewExptAppendMode( configer: configer, publisher: publisher, evaluatorRecordService: evaluatorRecordService, + templateManager: templateManager, } } @@ -621,22 +675,39 @@ func (e *ExptAppendExec) ScheduleStart(ctx context.Context, event *entity.ExptSc logs.CtxInfo(ctx, "ExptAppendExec.ScheduleStart, expt_id: %v, expt_run_id: %v", event.ExptID, event.ExptRunID) deadline := expt.StartAt.Add(time.Duration(expt.MaxAliveTime) * time.Millisecond) if (expt.Status == entity.ExptStatus_Processing || expt.Status == entity.ExptStatus_Pending) && expt.MaxAliveTime > 0 && time.Now().After(deadline) { - expt.Status = entity.ExptStatus_Draining + newStatus := entity.ExptStatus_Draining logs.CtxInfo(ctx, "expt max alive time exceeded, expt_id: %v, expt_run_id: %v, deadline: %v", event.ExptID, event.ExptRunID, deadline) if err := e.exptRepo.Update(ctx, &entity.Experiment{ ID: event.ExptID, SpaceID: event.SpaceID, - Status: entity.ExptStatus_Draining, + Status: newStatus, }); err != nil { logs.CtxError(ctx, "update expt status failed, expt_id: %v, expt_run_id: %v, err: %v", event.ExptID, event.ExptRunID, err) + } else { + // 如果实验关联了模板,更新模板的 ExptInfo(状态变更,数量不变) + if expt.ExptTemplateMeta != nil && expt.ExptTemplateMeta.ID > 0 && e.templateManager != nil { + if err := e.templateManager.UpdateExptInfo(ctx, expt.ExptTemplateMeta.ID, event.SpaceID, event.ExptID, newStatus, 0); err != nil { + logs.CtxError(ctx, "UpdateExptInfo failed in ScheduleStart (Draining), template_id: %v, expt_id: %v, err: %v", + expt.ExptTemplateMeta.ID, event.ExptID, err) + } + } } } else if expt.Status == entity.ExptStatus_Pending { + newStatus := entity.ExptStatus_Processing if err := e.exptRepo.Update(ctx, &entity.Experiment{ ID: event.ExptID, SpaceID: event.SpaceID, - Status: entity.ExptStatus_Processing, + Status: newStatus, }); err != nil { logs.CtxError(ctx, "update expt status failed, expt_id: %v, expt_run_id: %v, err: %v", event.ExptID, event.ExptRunID, err) + } else { + // 如果实验关联了模板,更新模板的 ExptInfo(状态变更,数量不变) + if expt.ExptTemplateMeta != nil && expt.ExptTemplateMeta.ID > 0 && e.templateManager != nil { + if err := e.templateManager.UpdateExptInfo(ctx, expt.ExptTemplateMeta.ID, event.SpaceID, event.ExptID, newStatus, 0); err != nil { + logs.CtxError(ctx, "UpdateExptInfo failed in ScheduleStart, template_id: %v, expt_id: %v, err: %v", + expt.ExptTemplateMeta.ID, event.ExptID, err) + } + } } } return nil diff --git a/backend/modules/evaluation/domain/service/expt_run_scheduler_mode_impl_phase3_test.go b/backend/modules/evaluation/domain/service/expt_run_scheduler_mode_impl_phase3_test.go index 0329820d2..bd4cd0bdd 100755 --- a/backend/modules/evaluation/domain/service/expt_run_scheduler_mode_impl_phase3_test.go +++ b/backend/modules/evaluation/domain/service/expt_run_scheduler_mode_impl_phase3_test.go @@ -248,6 +248,7 @@ func TestDefaultSchedulerModeFactory_NewSchedulerMode_Integration(t *testing.T) mockPublisher := eventmocks.NewMockExptEventPublisher(ctrl) mockEvaluatorRecordService := svcmocks.NewMockEvaluatorRecordService(ctrl) mockResultSvc := svcmocks.NewMockExptResultService(ctrl) + mockTemplateManager := svcmocks.NewMockIExptTemplateManager(ctrl) factory := NewSchedulerModeFactory( mockManager, @@ -262,6 +263,7 @@ func TestDefaultSchedulerModeFactory_NewSchedulerMode_Integration(t *testing.T) mockPublisher, mockEvaluatorRecordService, mockResultSvc, + mockTemplateManager, ) tests := []struct { 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 d21663a17..67dc835ed 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 @@ -326,6 +326,8 @@ func TestExptSubmitExec_ExptStart(t *testing.T) { configer *configmocks.MockIConfiger publisher *eventmocks.MockExptEventPublisher resultSvc *svcmocks.MockExptResultService + evaluatorRecordService *svcmocks.MockEvaluatorRecordService + templateManager *svcmocks.MockIExptTemplateManager } type args struct { @@ -356,6 +358,12 @@ func TestExptSubmitExec_ExptStart(t *testing.T) { }, prepareMock: func(f *fields, ctrl *gomock.Controller, args args) { f.idem.EXPECT().Exist(gomock.Any(), gomock.Any()).Return(false, nil).Times(1) + // 新逻辑中,当 ExptTemplateMeta 为空时,会从 exptRepo.GetByID 重新拉取实验,用于后续模板关联处理。 + // 这里统一返回传入的 mockExpt,避免出现未预期的 GetByID 调用导致的 panic。 + f.exptRepo.EXPECT(). + GetByID(gomock.Any(), args.event.ExptID, args.event.SpaceID). + Return(args.expt, nil). + Times(1) 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}}}, @@ -438,6 +446,8 @@ func TestExptSubmitExec_ExptStart(t *testing.T) { configer: configmocks.NewMockIConfiger(ctrl), publisher: eventmocks.NewMockExptEventPublisher(ctrl), resultSvc: svcmocks.NewMockExptResultService(ctrl), + evaluatorRecordService: svcmocks.NewMockEvaluatorRecordService(ctrl), + templateManager: svcmocks.NewMockIExptTemplateManager(ctrl), } if tt.prepareMock != nil { @@ -456,6 +466,8 @@ func TestExptSubmitExec_ExptStart(t *testing.T) { configer: f.configer, publisher: f.publisher, resultSvc: f.resultSvc, + evaluatorRecordService: f.evaluatorRecordService, + templateManager: f.templateManager, } err := e.ExptStart(tt.args.ctx, tt.args.event, tt.args.expt) @@ -2050,6 +2062,7 @@ func TestNewSchedulerModeFactory(t *testing.T) { publisher := eventmocks.NewMockExptEventPublisher(ctrl) evaluatorRecordService := svcmocks.NewMockEvaluatorRecordService(ctrl) resultService := svcmocks.NewMockExptResultService(ctrl) + templateManager := svcmocks.NewMockIExptTemplateManager(ctrl) factory := NewSchedulerModeFactory( manager, @@ -2064,6 +2077,7 @@ func TestNewSchedulerModeFactory(t *testing.T) { publisher, evaluatorRecordService, resultService, + templateManager, ) tests := []struct { @@ -2127,8 +2141,9 @@ func TestNewExptSubmitMode(t *testing.T) { publisher := eventmocks.NewMockExptEventPublisher(ctrl) evaluatorRecordService := svcmocks.NewMockEvaluatorRecordService(ctrl) resultSvc := svcmocks.NewMockExptResultService(ctrl) + templateManager := svcmocks.NewMockIExptTemplateManager(ctrl) - exec := NewExptSubmitMode(manager, exptItemResultRepo, exptStatsRepo, exptTurnResultRepo, idgenerator, evaluationSetItemService, exptRepo, idem, configer, publisher, evaluatorRecordService, resultSvc) + exec := NewExptSubmitMode(manager, exptItemResultRepo, exptStatsRepo, exptTurnResultRepo, idgenerator, evaluationSetItemService, exptRepo, idem, configer, publisher, evaluatorRecordService, resultSvc, templateManager) assert.NotNil(t, exec) assert.Equal(t, manager, exec.manager) assert.Equal(t, exptItemResultRepo, exec.exptItemResultRepo) @@ -2155,8 +2170,9 @@ func TestNewExptFailRetryMode(t *testing.T) { configer := configmocks.NewMockIConfiger(ctrl) publisher := eventmocks.NewMockExptEventPublisher(ctrl) evaluatorRecordService := svcmocks.NewMockEvaluatorRecordService(ctrl) + templateManager := svcmocks.NewMockIExptTemplateManager(ctrl) - exec := NewExptFailRetryMode(manager, exptItemResultRepo, exptStatsRepo, exptTurnResultRepo, idgenerator, exptRepo, idem, configer, publisher, evaluatorRecordService) + exec := NewExptFailRetryMode(manager, exptItemResultRepo, exptStatsRepo, exptTurnResultRepo, idgenerator, exptRepo, idem, configer, publisher, evaluatorRecordService, templateManager) assert.NotNil(t, exec) assert.Equal(t, manager, exec.manager) assert.Equal(t, exptItemResultRepo, exec.exptItemResultRepo) @@ -2183,8 +2199,9 @@ func TestNewExptAppendMode(t *testing.T) { configer := configmocks.NewMockIConfiger(ctrl) publisher := eventmocks.NewMockExptEventPublisher(ctrl) evaluatorRecordService := svcmocks.NewMockEvaluatorRecordService(ctrl) + templateManager := svcmocks.NewMockIExptTemplateManager(ctrl) - exec := NewExptAppendMode(manager, exptItemResultRepo, exptStatsRepo, exptTurnResultRepo, idgenerator, evaluationSetItemService, exptRepo, idem, configer, publisher, evaluatorRecordService) + exec := NewExptAppendMode(manager, exptItemResultRepo, exptStatsRepo, exptTurnResultRepo, idgenerator, evaluationSetItemService, exptRepo, idem, configer, publisher, evaluatorRecordService, templateManager) assert.NotNil(t, exec) assert.Equal(t, manager, exec.manager) assert.Equal(t, exptItemResultRepo, exec.exptItemResultRepo) diff --git a/backend/modules/evaluation/domain/service/expt_template.go b/backend/modules/evaluation/domain/service/expt_template.go new file mode 100644 index 000000000..9efaf1e7d --- /dev/null +++ b/backend/modules/evaluation/domain/service/expt_template.go @@ -0,0 +1,24 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + +package service + +import ( + "context" + + "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/entity" +) + +//go:generate mockgen -destination ./mocks/expt_template.go --package mocks . IExptTemplateManager +type IExptTemplateManager interface { + CheckName(ctx context.Context, name string, spaceID int64, session *entity.Session) (bool, error) + Create(ctx context.Context, param *entity.CreateExptTemplateParam, session *entity.Session) (*entity.ExptTemplate, error) + Get(ctx context.Context, templateID, spaceID int64, session *entity.Session) (*entity.ExptTemplate, error) + MGet(ctx context.Context, templateIDs []int64, spaceID int64, session *entity.Session) ([]*entity.ExptTemplate, error) + Update(ctx context.Context, param *entity.UpdateExptTemplateParam, session *entity.Session) (*entity.ExptTemplate, error) + UpdateMeta(ctx context.Context, param *entity.UpdateExptTemplateMetaParam, session *entity.Session) (*entity.ExptTemplate, error) + // adjustCount: 实验数量的增量(创建实验时为 +1,删除实验时为 -1,状态变更时为 0) + UpdateExptInfo(ctx context.Context, templateID, spaceID int64, exptID int64, exptStatus entity.ExptStatus, adjustCount int64) error + Delete(ctx context.Context, templateID, spaceID int64, session *entity.Session) error + List(ctx context.Context, page, pageSize int32, spaceID int64, filter *entity.ExptTemplateListFilter, orderBys []*entity.OrderBy, session *entity.Session) ([]*entity.ExptTemplate, int64, error) +} diff --git a/backend/modules/evaluation/domain/service/expt_template_impl.go b/backend/modules/evaluation/domain/service/expt_template_impl.go new file mode 100644 index 000000000..4ce40d751 --- /dev/null +++ b/backend/modules/evaluation/domain/service/expt_template_impl.go @@ -0,0 +1,1092 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + +package service + +import ( + "context" + "fmt" + "time" + + "github.com/bytedance/gg/gptr" + "github.com/bytedance/gg/gslice" + + "github.com/coze-dev/coze-loop/backend/infra/idgen" + "github.com/coze-dev/coze-loop/backend/infra/platestwrite" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/entity" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/repo" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/pkg/contexts" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/pkg/errno" + "github.com/coze-dev/coze-loop/backend/pkg/errorx" + "github.com/coze-dev/coze-loop/backend/pkg/json" + "github.com/coze-dev/coze-loop/backend/pkg/lang/goroutine" + "github.com/coze-dev/coze-loop/backend/pkg/lang/maps" +) + +func NewExptTemplateManager( + templateRepo repo.IExptTemplateRepo, + idgen idgen.IIDGenerator, + evaluatorService EvaluatorService, + evalTargetService IEvalTargetService, + evaluationSetService IEvaluationSetService, + evaluationSetVersionService EvaluationSetVersionService, + lwt platestwrite.ILatestWriteTracker, +) IExptTemplateManager { + return &ExptTemplateManagerImpl{ + templateRepo: templateRepo, + idgen: idgen, + evaluatorService: evaluatorService, + evalTargetService: evalTargetService, + evaluationSetService: evaluationSetService, + evaluationSetVersionService: evaluationSetVersionService, + lwt: lwt, + } +} + +type ExptTemplateManagerImpl struct { + templateRepo repo.IExptTemplateRepo + idgen idgen.IIDGenerator + evaluatorService EvaluatorService + evalTargetService IEvalTargetService + evaluationSetService IEvaluationSetService + evaluationSetVersionService EvaluationSetVersionService + lwt platestwrite.ILatestWriteTracker +} + +func (e *ExptTemplateManagerImpl) CheckName(ctx context.Context, name string, spaceID int64, session *entity.Session) (bool, error) { + _, exists, err := e.templateRepo.GetByName(ctx, name, spaceID) + if err != nil { + return false, err + } + return !exists, nil +} + +func (e *ExptTemplateManagerImpl) Create(ctx context.Context, param *entity.CreateExptTemplateParam, session *entity.Session) (*entity.ExptTemplate, error) { + // 验证名称 + pass, err := e.CheckName(ctx, param.Name, param.SpaceID, session) + if !pass { + return nil, errorx.NewByCode(errno.ExperimentNameExistedCode, errorx.WithExtraMsg(fmt.Sprintf("template name %s already exists", param.Name))) + } + if err != nil { + return nil, err + } + + // 解析并回填评估器版本ID(如果缺失) + // 注意:FieldMappingConfig 中的 EvaluatorFieldMapping 会在 buildFieldMappingConfigAndEnableScoreWeight 中从 TemplateConf 构建 + // 所以只需要回填 TemplateConf 中的 EvaluatorConf 即可 + if err := e.resolveAndFillEvaluatorVersionIDs(ctx, param.SpaceID, param.TemplateConf, param.EvaluatorIDVersionItems); err != nil { + return nil, err + } + + // 验证模板配置 + if param.TemplateConf != nil { + if err := param.TemplateConf.Valid(ctx); err != nil { + return nil, errorx.NewByCode(errno.CommonInvalidParamCode, errorx.WithExtraMsg(err.Error())) + } + } + + // 从 EvaluatorIDVersionItems 构建 evaluatorVersionRefs + evaluatorVersionRefs := e.buildEvaluatorVersionRefs(param.EvaluatorIDVersionItems) + + // 生成模板ID + templateID, err := e.idgen.GenID(ctx) + if err != nil { + return nil, errorx.Wrapf(err, "gen template id fail") + } + + // 处理创建评测对象参数 + finalTargetID, finalTargetVersionID, targetType, err := e.resolveTargetForCreate(ctx, param) + if err != nil { + return nil, err + } + + // 构建模板实体 + now := time.Now() + template := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: param.SpaceID, + Name: param.Name, + Desc: param.Description, + ExptType: param.ExptType, + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvalSetID: param.EvalSetID, + EvalSetVersionID: param.EvalSetVersionID, + TargetID: finalTargetID, + TargetVersionID: finalTargetVersionID, + TargetType: targetType, + EvaluatorVersionIds: e.extractEvaluatorVersionIDs(param.EvaluatorIDVersionItems), + EvaluatorIDVersionItems: param.EvaluatorIDVersionItems, + }, + EvaluatorVersionRef: evaluatorVersionRefs, + TemplateConf: param.TemplateConf, + BaseInfo: &entity.BaseInfo{ + CreatedAt: gptr.Of(now.UnixMilli()), + UpdatedAt: gptr.Of(now.UnixMilli()), + CreatedBy: &entity.UserInfo{UserID: gptr.Of(session.UserID)}, + UpdatedBy: &entity.UserInfo{UserID: gptr.Of(session.UserID)}, + }, + } + + // 从 TemplateConf 构建 FieldMappingConfig,并根据 EvaluatorConf.ScoreWeight 设置是否启用分数权重 + e.buildFieldMappingConfigAndEnableScoreWeight(template, param.TemplateConf) + + // 如果创建了评测对象,更新 TemplateConf 中的 TargetVersionID + if param.CreateEvalTargetParam != nil && !param.CreateEvalTargetParam.IsNull() && template.TemplateConf != nil && template.TemplateConf.ConnectorConf.TargetConf != nil { + template.TemplateConf.ConnectorConf.TargetConf.TargetVersionID = finalTargetVersionID + } + + // 转换为评估器引用DO + refs := template.ToEvaluatorRefDO() + + // 保存到数据库 + if err := e.templateRepo.Create(ctx, template, refs); err != nil { + return nil, err + } + + // 设置写标志,用于主从延迟兜底 + e.lwt.SetWriteFlag(ctx, platestwrite.ResourceTypeExptTemplate, templateID) + + // 填充关联数据(EvalSet、EvalTarget、Evaluators) + // 如果创建了新的 EvalTarget,需要从主库读取以避免主从延迟 + queryCtx := ctx + if param.CreateEvalTargetParam != nil && !param.CreateEvalTargetParam.IsNull() { + queryCtx = contexts.WithCtxWriteDB(ctx) + } + tupleID := e.packTemplateTupleID(template) + exptTuples, err := e.mgetExptTupleByID(queryCtx, []*entity.ExptTupleID{tupleID}, param.SpaceID, session) + if err != nil { + return nil, err + } + if len(exptTuples) > 0 { + template.EvalSet = exptTuples[0].EvalSet + template.Target = exptTuples[0].Target + template.Evaluators = exptTuples[0].Evaluators + } + + return template, nil +} + +func (e *ExptTemplateManagerImpl) Get(ctx context.Context, templateID, spaceID int64, session *entity.Session) (*entity.ExptTemplate, error) { + templates, err := e.MGet(ctx, []int64{templateID}, spaceID, session) + if err != nil { + return nil, err + } + + if len(templates) == 0 { + return nil, errorx.NewByCode(errno.ResourceNotFoundCode, errorx.WithExtraMsg(fmt.Sprintf("template %d not found", templateID))) + } + + return templates[0], nil +} + +func (e *ExptTemplateManagerImpl) MGet(ctx context.Context, templateIDs []int64, spaceID int64, session *entity.Session) ([]*entity.ExptTemplate, error) { + // 参考 ExptMangerImpl.MGet 的方式,如果只有一个模板ID且有写标志,则从主库读取 + if len(templateIDs) == 1 && e.lwt.CheckWriteFlagByID(ctx, platestwrite.ResourceTypeExptTemplate, templateIDs[0]) { + ctx = contexts.WithCtxWriteDB(ctx) + } + + templates, err := e.templateRepo.MGetByID(ctx, templateIDs, spaceID) + if err != nil { + return nil, err + } + + if len(templates) == 0 { + return templates, nil + } + + // 构建 ExptTupleID 列表,用于批量查询关联数据 + tupleIDs := make([]*entity.ExptTupleID, 0, len(templates)) + for _, template := range templates { + tupleIDs = append(tupleIDs, e.packTemplateTupleID(template)) + } + + // 批量查询关联数据 + exptTuples, err := e.mgetExptTupleByID(ctx, tupleIDs, spaceID, session) + if err != nil { + return nil, err + } + + // 填充关联数据 + for idx := range exptTuples { + templates[idx].EvalSet = exptTuples[idx].EvalSet + templates[idx].Target = exptTuples[idx].Target + templates[idx].Evaluators = exptTuples[idx].Evaluators + } + + return templates, nil +} + +func (e *ExptTemplateManagerImpl) Update(ctx context.Context, param *entity.UpdateExptTemplateParam, session *entity.Session) (*entity.ExptTemplate, error) { + // 获取现有模板 + existingTemplate, err := e.templateRepo.GetByID(ctx, param.TemplateID, ¶m.SpaceID) + if err != nil { + return nil, err + } + if existingTemplate == nil { + return nil, errorx.NewByCode(errno.ResourceNotFoundCode, errorx.WithExtraMsg(fmt.Sprintf("template %d not found", param.TemplateID))) + } + + // 如果名称改变,检查新名称是否可用(允许和当前名称重复) + if param.Name != "" && param.Name != existingTemplate.GetName() { + pass, err := e.CheckName(ctx, param.Name, param.SpaceID, session) + if !pass { + return nil, errorx.NewByCode(errno.ExperimentNameExistedCode, errorx.WithExtraMsg(fmt.Sprintf("template name %s already exists", param.Name))) + } + if err != nil { + return nil, err + } + } + + // 解析并回填评估器版本ID(如果缺失),保持与 Create 一致的行为 + // 注意:FieldMappingConfig 中的 EvaluatorFieldMapping 会在 buildFieldMappingConfigAndEnableScoreWeight 中从 TemplateConf 构建 + // 所以只需要回填 TemplateConf 中的 EvaluatorConf 即可 + if err := e.resolveAndFillEvaluatorVersionIDs(ctx, param.SpaceID, param.TemplateConf, param.EvaluatorIDVersionItems); err != nil { + return nil, err + } + + // 验证模板配置 + if param.TemplateConf != nil { + if err := param.TemplateConf.Valid(ctx); err != nil { + return nil, errorx.NewByCode(errno.CommonInvalidParamCode, errorx.WithExtraMsg(err.Error())) + } + } + + // 从 EvaluatorIDVersionItems 构建 evaluatorVersionRefs + evaluatorVersionRefs := e.buildEvaluatorVersionRefs(param.EvaluatorIDVersionItems) + + // 处理创建评测对象参数(需要校验 SourceTargetID 与现有 Target 的 SourceTargetID 一致) + var finalTargetID, finalTargetVersionID int64 + var targetType entity.EvalTargetType + if param.CreateEvalTargetParam != nil && !param.CreateEvalTargetParam.IsNull() { + // 获取现有的 Target 以校验 SourceTargetID + existingTargetID := existingTemplate.GetTargetID() + existingTarget, err := e.evalTargetService.GetEvalTarget(ctx, existingTargetID) + if err != nil { + return nil, errorx.Wrapf(err, "get existing eval target fail, target_id: %d", existingTargetID) + } + if existingTarget == nil { + return nil, errorx.NewByCode(errno.ResourceNotFoundCode, errorx.WithExtraMsg(fmt.Sprintf("existing target %d not found", existingTargetID))) + } + // 校验 SourceTargetID 必须与现有的 Target 的 SourceTargetID 一致 + sourceTargetID := gptr.Indirect(param.CreateEvalTargetParam.SourceTargetID) + if sourceTargetID != existingTarget.SourceTargetID { + return nil, errorx.NewByCode(errno.CommonInvalidParamCode, errorx.WithExtraMsg(fmt.Sprintf("SourceTargetID %s must match existing Target SourceTargetID %s", sourceTargetID, existingTarget.SourceTargetID))) + } + // 创建新的评测对象版本 + opts := make([]entity.Option, 0) + opts = append(opts, entity.WithCozeBotPublishVersion(param.CreateEvalTargetParam.BotPublishVersion), + entity.WithCozeBotInfoType(gptr.Indirect(param.CreateEvalTargetParam.BotInfoType)), + entity.WithRegion(param.CreateEvalTargetParam.Region), + entity.WithEnv(param.CreateEvalTargetParam.Env)) + if param.CreateEvalTargetParam.CustomEvalTarget != nil { + opts = append(opts, entity.WithCustomEvalTarget(&entity.CustomEvalTarget{ + ID: param.CreateEvalTargetParam.CustomEvalTarget.ID, + Name: param.CreateEvalTargetParam.CustomEvalTarget.Name, + AvatarURL: param.CreateEvalTargetParam.CustomEvalTarget.AvatarURL, + Ext: param.CreateEvalTargetParam.CustomEvalTarget.Ext, + })) + } + targetID, targetVersionID, err := e.evalTargetService.CreateEvalTarget(ctx, param.SpaceID, sourceTargetID, gptr.Indirect(param.CreateEvalTargetParam.SourceTargetVersion), gptr.Indirect(param.CreateEvalTargetParam.EvalTargetType), opts...) + if err != nil { + return nil, errorx.Wrapf(err, "CreateEvalTarget failed, param: %v", param.CreateEvalTargetParam) + } + finalTargetID = targetID + finalTargetVersionID = targetVersionID + targetType = gptr.Indirect(param.CreateEvalTargetParam.EvalTargetType) + } else { + // 保持原有 TargetID,不允许修改 + finalTargetID = existingTemplate.GetTargetID() + finalTargetVersionID = param.TargetVersionID + if finalTargetVersionID == 0 { + finalTargetVersionID = existingTemplate.GetTargetVersionID() + } + targetType = existingTemplate.GetTargetType() + } + + // 准备更新后的 Meta + updatedMeta := &entity.ExptTemplateMeta{ + ID: existingTemplate.GetID(), + WorkspaceID: param.SpaceID, + Name: param.Name, + Desc: param.Description, + ExptType: param.ExptType, + } + + // 如果某些字段为空,保持原有值 + if updatedMeta.Name == "" { + updatedMeta.Name = existingTemplate.GetName() + } + if updatedMeta.Desc == "" { + updatedMeta.Desc = existingTemplate.GetDescription() + } + if updatedMeta.ExptType == 0 { + updatedMeta.ExptType = existingTemplate.GetExptType() + } + + // 准备更新后的 TripleConfig + updatedTripleConfig := &entity.ExptTemplateTuple{ + EvalSetID: existingTemplate.GetEvalSetID(), // 不允许修改 + EvalSetVersionID: param.EvalSetVersionID, + TargetID: finalTargetID, + TargetVersionID: finalTargetVersionID, + TargetType: targetType, + EvaluatorVersionIds: e.extractEvaluatorVersionIDs(param.EvaluatorIDVersionItems), + EvaluatorIDVersionItems: param.EvaluatorIDVersionItems, + } + + // 如果某些字段为空,保持原有值 + if updatedTripleConfig.EvalSetVersionID == 0 { + updatedTripleConfig.EvalSetVersionID = existingTemplate.GetEvalSetVersionID() + } + if updatedTripleConfig.TargetVersionID == 0 { + updatedTripleConfig.TargetVersionID = existingTemplate.GetTargetVersionID() + } + + // 如果创建了评测对象,更新 TemplateConf 中的 TargetVersionID + if param.CreateEvalTargetParam != nil && !param.CreateEvalTargetParam.IsNull() && param.TemplateConf != nil && param.TemplateConf.ConnectorConf.TargetConf != nil { + param.TemplateConf.ConnectorConf.TargetConf.TargetVersionID = finalTargetVersionID + } else if param.TemplateConf != nil && param.TemplateConf.ConnectorConf.TargetConf != nil && finalTargetVersionID > 0 { + // 更新 TemplateConf 中的 TargetVersionID(如果提供了新版本) + param.TemplateConf.ConnectorConf.TargetConf.TargetVersionID = finalTargetVersionID + } + + // 构建更新后的模板实体(默认沿用原有 EnableScoreWeight) + now := time.Now() + baseInfo := &entity.BaseInfo{ + UpdatedAt: gptr.Of(now.UnixMilli()), + UpdatedBy: &entity.UserInfo{UserID: gptr.Of(session.UserID)}, + } + // 如果原有模板有 BaseInfo,保留 CreatedAt 和 CreatedBy + if existingTemplate.BaseInfo != nil { + baseInfo.CreatedAt = existingTemplate.BaseInfo.CreatedAt + baseInfo.CreatedBy = existingTemplate.BaseInfo.CreatedBy + } + updatedTemplate := &entity.ExptTemplate{ + Meta: updatedMeta, + TripleConfig: updatedTripleConfig, + EvaluatorVersionRef: evaluatorVersionRefs, + TemplateConf: param.TemplateConf, + BaseInfo: baseInfo, + } + + // 如果 TemplateConf 为空,保持原有值 + if updatedTemplate.TemplateConf == nil { + updatedTemplate.TemplateConf = existingTemplate.TemplateConf + } + + // 从 TemplateConf 构建 FieldMappingConfig,并根据 EvaluatorConf.ScoreWeight 设置是否启用分数权重 + e.buildFieldMappingConfigAndEnableScoreWeight(updatedTemplate, updatedTemplate.TemplateConf) + + // 转换为评估器引用DO + refs := updatedTemplate.ToEvaluatorRefDO() + + // 更新数据库 + if err := e.templateRepo.UpdateWithRefs(ctx, updatedTemplate, refs); err != nil { + return nil, err + } + + // 重新获取更新后的模板 + updatedTemplate, err = e.templateRepo.GetByID(ctx, param.TemplateID, ¶m.SpaceID) + if err != nil { + return nil, err + } + if updatedTemplate == nil { + return nil, errorx.NewByCode(errno.ResourceNotFoundCode, errorx.WithExtraMsg(fmt.Sprintf("template %d not found after update", param.TemplateID))) + } + + // 填充关联数据(EvalSet、EvalTarget、Evaluators) + // 如果创建了新的 EvalTarget,需要从主库读取以避免主从延迟 + queryCtx := ctx + if param.CreateEvalTargetParam != nil && !param.CreateEvalTargetParam.IsNull() { + queryCtx = contexts.WithCtxWriteDB(ctx) + } + tupleID := e.packTemplateTupleID(updatedTemplate) + exptTuples, err := e.mgetExptTupleByID(queryCtx, []*entity.ExptTupleID{tupleID}, param.SpaceID, session) + if err != nil { + return nil, err + } + if len(exptTuples) > 0 { + updatedTemplate.EvalSet = exptTuples[0].EvalSet + updatedTemplate.Target = exptTuples[0].Target + updatedTemplate.Evaluators = exptTuples[0].Evaluators + } + + return updatedTemplate, nil +} + +func (e *ExptTemplateManagerImpl) UpdateMeta(ctx context.Context, param *entity.UpdateExptTemplateMetaParam, session *entity.Session) (*entity.ExptTemplate, error) { + // 获取现有模板 + existingTemplate, err := e.templateRepo.GetByID(ctx, param.TemplateID, ¶m.SpaceID) + if err != nil { + return nil, err + } + if existingTemplate == nil { + return nil, errorx.NewByCode(errno.ResourceNotFoundCode, errorx.WithExtraMsg(fmt.Sprintf("template %d not found", param.TemplateID))) + } + + // 如果名称改变,检查新名称是否可用(允许和当前名称重复) + if param.Name != "" && param.Name != existingTemplate.GetName() { + pass, err := e.CheckName(ctx, param.Name, param.SpaceID, session) + if !pass { + return nil, errorx.NewByCode(errno.ExperimentNameExistedCode, errorx.WithExtraMsg(fmt.Sprintf("template name %s already exists", param.Name))) + } + if err != nil { + return nil, err + } + } + + // 构建更新字段 + ufields := make(map[string]any) + if param.Name != "" { + ufields["name"] = param.Name + } + if param.Description != "" { + ufields["description"] = param.Description + } + if param.ExptType > 0 { + ufields["expt_type"] = int32(param.ExptType) + } + + // 更新 updated_at 和 updated_by + now := time.Now() + ufields["updated_at"] = now + if session != nil && session.UserID != "" { + ufields["updated_by"] = session.UserID + } + + // 更新数据库 + if len(ufields) > 0 { + if err := e.templateRepo.UpdateFields(ctx, param.TemplateID, ufields); err != nil { + return nil, err + } + } + + // 重新获取更新后的模板 + updatedTemplate, err := e.templateRepo.GetByID(ctx, param.TemplateID, ¶m.SpaceID) + if err != nil { + return nil, err + } + if updatedTemplate == nil { + return nil, errorx.NewByCode(errno.ResourceNotFoundCode, errorx.WithExtraMsg(fmt.Sprintf("template %d not found after update", param.TemplateID))) + } + + // 更新 BaseInfo + if updatedTemplate.BaseInfo == nil { + updatedTemplate.BaseInfo = &entity.BaseInfo{} + } + updatedTemplate.BaseInfo.UpdatedAt = gptr.Of(now.UnixMilli()) + if session != nil && session.UserID != "" { + updatedTemplate.BaseInfo.UpdatedBy = &entity.UserInfo{UserID: gptr.Of(session.UserID)} + } + + return updatedTemplate, nil +} + +// UpdateExptInfo 更新实验模板的 ExptInfo +// adjustCount: 实验数量的增量(创建实验时为 +1,删除实验时为 -1,状态变更时为 0) +func (e *ExptTemplateManagerImpl) UpdateExptInfo(ctx context.Context, templateID, spaceID int64, exptID int64, exptStatus entity.ExptStatus, adjustCount int64) error { + // 获取现有模板 + existingTemplate, err := e.templateRepo.GetByID(ctx, templateID, &spaceID) + if err != nil { + return errorx.Wrapf(err, "get template fail, template_id: %d", templateID) + } + if existingTemplate == nil { + return errorx.NewByCode(errno.ResourceNotFoundCode, errorx.WithExtraMsg(fmt.Sprintf("template %d not found", templateID))) + } + + // 初始化或更新 ExptInfo + var exptInfo *entity.ExptInfo + if existingTemplate.ExptInfo != nil { + exptInfo = existingTemplate.ExptInfo + } else { + exptInfo = &entity.ExptInfo{ + CreatedExptCount: 0, + LatestExptID: 0, + LatestExptStatus: entity.ExptStatus_Unknown, + } + } + + // 根据 adjustCount 调整创建实验数量 + if adjustCount != 0 { + exptInfo.CreatedExptCount += adjustCount + if exptInfo.CreatedExptCount < 0 { + exptInfo.CreatedExptCount = 0 + } + } + + // 更新最新实验ID和状态 + exptInfo.LatestExptID = exptID + exptInfo.LatestExptStatus = exptStatus + + // 序列化 ExptInfo + exptInfoBytes, err := json.Marshal(exptInfo) + if err != nil { + return errorx.Wrapf(err, "marshal ExptInfo fail, template_id: %d", templateID) + } + + // 更新数据库 + ufields := map[string]any{ + "expt_info": exptInfoBytes, + } + if err := e.templateRepo.UpdateFields(ctx, templateID, ufields); err != nil { + return errorx.Wrapf(err, "update ExptInfo fail, template_id: %d", templateID) + } + + return nil +} + +func (e *ExptTemplateManagerImpl) Delete(ctx context.Context, templateID, spaceID int64, session *entity.Session) error { + return e.templateRepo.Delete(ctx, templateID, spaceID) +} + +func (e *ExptTemplateManagerImpl) List(ctx context.Context, page, pageSize int32, spaceID int64, filter *entity.ExptTemplateListFilter, orderBys []*entity.OrderBy, session *entity.Session) ([]*entity.ExptTemplate, int64, error) { + templates, count, err := e.templateRepo.List(ctx, page, pageSize, filter, orderBys, spaceID) + if err != nil { + return nil, 0, err + } + + if len(templates) == 0 { + return templates, count, nil + } + + // 构建 ExptTupleID 列表,用于批量查询关联数据 + tupleIDs := make([]*entity.ExptTupleID, 0, len(templates)) + for _, template := range templates { + tupleIDs = append(tupleIDs, e.packTemplateTupleID(template)) + } + + // 批量查询关联数据 + exptTuples, err := e.mgetExptTupleByID(ctx, tupleIDs, spaceID, session) + if err != nil { + return nil, 0, err + } + + // 填充关联数据 + for idx := range exptTuples { + templates[idx].EvalSet = exptTuples[idx].EvalSet + templates[idx].Target = exptTuples[idx].Target + templates[idx].Evaluators = exptTuples[idx].Evaluators + } + + return templates, count, nil +} + +// resolveAndFillEvaluatorVersionIDs 解析并回填评估器版本ID +// 如果 EvaluatorIDVersionItems 中的项缺少 evaluator_version_id,则根据 evaluator_id 和 version 解析并回填 +// 同时回填 TemplateConf 中 EvaluatorConf 缺失的 evaluator_version_id +// 注意:FieldMappingConfig 中的 EvaluatorFieldMapping 会在 buildFieldMappingConfigAndEnableScoreWeight 中从 TemplateConf 构建 +func (e *ExptTemplateManagerImpl) resolveAndFillEvaluatorVersionIDs( + ctx context.Context, + spaceID int64, + templateConf *entity.ExptTemplateConfiguration, + evaluatorIDVersionItems []*entity.EvaluatorIDVersionItem, +) error { + // 收集需要查询的 evaluator_id 和 version + builtinIDs := make([]int64, 0) + normalPairs := make([][2]interface{}, 0) + itemsNeedResolve := make([]*entity.EvaluatorIDVersionItem, 0) + + // 1. 从 EvaluatorIDVersionItems 中收集 + for _, item := range evaluatorIDVersionItems { + if item == nil { + continue + } + // 如果已经有 evaluator_version_id,跳过 + if item.EvaluatorVersionID > 0 { + continue + } + eid := item.EvaluatorID + ver := item.Version + if eid == 0 || ver == "" { + continue + } + itemsNeedResolve = append(itemsNeedResolve, item) + if ver == "BuiltinVisible" { + builtinIDs = append(builtinIDs, eid) + } else { + normalPairs = append(normalPairs, [2]interface{}{eid, ver}) + } + } + + // 2. 从 TemplateConf.EvaluatorsConf.EvaluatorConf 中收集缺失 evaluator_version_id 的项 + if templateConf != nil && templateConf.ConnectorConf.EvaluatorsConf != nil { + for _, ec := range templateConf.ConnectorConf.EvaluatorsConf.EvaluatorConf { + if ec == nil || ec.EvaluatorVersionID > 0 { + continue + } + if ec.EvaluatorID > 0 && ec.Version != "" { + // 检查是否已存在 + found := false + if ec.Version == "BuiltinVisible" { + for _, id := range builtinIDs { + if id == ec.EvaluatorID { + found = true + break + } + } + if !found { + builtinIDs = append(builtinIDs, ec.EvaluatorID) + } + } else { + for _, pair := range normalPairs { + if pair[0].(int64) == ec.EvaluatorID && pair[1].(string) == ec.Version { + found = true + break + } + } + if !found { + normalPairs = append(normalPairs, [2]interface{}{ec.EvaluatorID, ec.Version}) + } + } + } + } + } + + // 如果没有需要解析的项,直接返回 + if len(itemsNeedResolve) == 0 && len(builtinIDs) == 0 && len(normalPairs) == 0 { + return nil + } + + // 批量获取内置与普通版本 + id2Builtin := make(map[int64]*entity.Evaluator, len(builtinIDs)) + if len(builtinIDs) > 0 { + evs, err := e.evaluatorService.BatchGetBuiltinEvaluator(ctx, builtinIDs) + if err != nil { + return errorx.Wrapf(err, "batch get builtin evaluator fail") + } + for _, ev := range evs { + if ev != nil { + id2Builtin[ev.ID] = ev + } + } + } + + pair2Eval := make(map[string]*entity.Evaluator, len(normalPairs)) + if len(normalPairs) > 0 { + evs, err := e.evaluatorService.BatchGetEvaluatorByIDAndVersion(ctx, normalPairs) + if err != nil { + return errorx.Wrapf(err, "batch get evaluator by id and version fail") + } + for _, ev := range evs { + if ev == nil { + continue + } + key := fmt.Sprintf("%d#%s", ev.ID, ev.GetVersion()) + pair2Eval[key] = ev + } + } + + // 回填 EvaluatorIDVersionItems 中缺失的版本ID + for _, item := range itemsNeedResolve { + if item == nil { + continue + } + eid := item.EvaluatorID + ver := item.Version + if eid == 0 || ver == "" { + continue + } + var ev *entity.Evaluator + if ver == "BuiltinVisible" { + ev = id2Builtin[eid] + } else { + key := fmt.Sprintf("%d#%s", eid, ver) + ev = pair2Eval[key] + } + if ev != nil { + if verID := ev.GetEvaluatorVersionID(); verID != 0 { + item.EvaluatorVersionID = verID + } + } + } + + // 构建 evaluator_id + version -> evaluator_version_id 的映射(用于回填 EvaluatorConf) + eidVer2VersionID := make(map[string]int64) + // 从已回填的 items 中构建映射 + for _, item := range evaluatorIDVersionItems { + if item != nil && item.EvaluatorVersionID > 0 { + key := fmt.Sprintf("%d#%s", item.EvaluatorID, item.Version) + eidVer2VersionID[key] = item.EvaluatorVersionID + } + } + // 从查询结果中补充映射 + for _, ev := range id2Builtin { + if ev != nil && ev.GetEvaluatorVersionID() > 0 { + key := fmt.Sprintf("%d#%s", ev.ID, "BuiltinVisible") + eidVer2VersionID[key] = ev.GetEvaluatorVersionID() + } + } + for _, ev := range pair2Eval { + if ev != nil && ev.GetEvaluatorVersionID() > 0 { + key := fmt.Sprintf("%d#%s", ev.ID, ev.GetVersion()) + eidVer2VersionID[key] = ev.GetEvaluatorVersionID() + } + } + + // 回填 TemplateConf 中 EvaluatorConf 缺失的 evaluator_version_id + if templateConf != nil && templateConf.ConnectorConf.EvaluatorsConf != nil { + evaluatorConfs := templateConf.ConnectorConf.EvaluatorsConf.EvaluatorConf + for _, ec := range evaluatorConfs { + if ec == nil { + continue + } + // 如果已经有 evaluator_version_id,跳过 + if ec.EvaluatorVersionID > 0 { + continue + } + // 从映射中查找并回填 + if ec.EvaluatorID > 0 && ec.Version != "" { + key := fmt.Sprintf("%d#%s", ec.EvaluatorID, ec.Version) + if verID, ok := eidVer2VersionID[key]; ok && verID > 0 { + ec.EvaluatorVersionID = verID + } + } + } + } + + return nil +} + +// buildEvaluatorVersionRefs 从 EvaluatorIDVersionItems 构建 evaluatorVersionRefs +func (e *ExptTemplateManagerImpl) buildEvaluatorVersionRefs(items []*entity.EvaluatorIDVersionItem) []*entity.ExptTemplateEvaluatorVersionRef { + refs := make([]*entity.ExptTemplateEvaluatorVersionRef, 0) + for _, item := range items { + if item != nil && item.EvaluatorVersionID > 0 { + refs = append(refs, &entity.ExptTemplateEvaluatorVersionRef{ + EvaluatorID: item.EvaluatorID, + EvaluatorVersionID: item.EvaluatorVersionID, + }) + } + } + return refs +} + +// extractEvaluatorVersionIDs 从 EvaluatorIDVersionItems 中提取 EvaluatorVersionID 列表 +func (e *ExptTemplateManagerImpl) extractEvaluatorVersionIDs(items []*entity.EvaluatorIDVersionItem) []int64 { + ids := make([]int64, 0) + idSet := make(map[int64]bool) + for _, item := range items { + if item != nil && item.EvaluatorVersionID > 0 { + if !idSet[item.EvaluatorVersionID] { + ids = append(ids, item.EvaluatorVersionID) + idSet[item.EvaluatorVersionID] = true + } + } + } + return ids +} + +// resolveTargetForCreate 解析创建模板时的 target 信息 +func (e *ExptTemplateManagerImpl) resolveTargetForCreate(ctx context.Context, param *entity.CreateExptTemplateParam) (targetID, targetVersionID int64, targetType entity.EvalTargetType, err error) { + if param.CreateEvalTargetParam != nil && !param.CreateEvalTargetParam.IsNull() { + // 如果提供了创建评测对象参数,则创建评测对象 + opts := make([]entity.Option, 0) + opts = append(opts, entity.WithCozeBotPublishVersion(param.CreateEvalTargetParam.BotPublishVersion), + entity.WithCozeBotInfoType(gptr.Indirect(param.CreateEvalTargetParam.BotInfoType)), + entity.WithRegion(param.CreateEvalTargetParam.Region), + entity.WithEnv(param.CreateEvalTargetParam.Env)) + if param.CreateEvalTargetParam.CustomEvalTarget != nil { + opts = append(opts, entity.WithCustomEvalTarget(&entity.CustomEvalTarget{ + ID: param.CreateEvalTargetParam.CustomEvalTarget.ID, + Name: param.CreateEvalTargetParam.CustomEvalTarget.Name, + AvatarURL: param.CreateEvalTargetParam.CustomEvalTarget.AvatarURL, + Ext: param.CreateEvalTargetParam.CustomEvalTarget.Ext, + })) + } + targetID, targetVersionID, err := e.evalTargetService.CreateEvalTarget(ctx, param.SpaceID, gptr.Indirect(param.CreateEvalTargetParam.SourceTargetID), gptr.Indirect(param.CreateEvalTargetParam.SourceTargetVersion), gptr.Indirect(param.CreateEvalTargetParam.EvalTargetType), opts...) + if err != nil { + return 0, 0, 0, errorx.Wrapf(err, "CreateEvalTarget failed, param: %v", param.CreateEvalTargetParam) + } + return targetID, targetVersionID, gptr.Indirect(param.CreateEvalTargetParam.EvalTargetType), nil + } + if param.TargetID > 0 { + // 如果提供了 target_id,则获取现有的评测对象 + target, err := e.evalTargetService.GetEvalTarget(ctx, param.TargetID) + if err != nil { + return 0, 0, 0, errorx.Wrapf(err, "get eval target fail, target_id: %d", param.TargetID) + } + if target == nil { + return 0, 0, 0, errorx.NewByCode(errno.ResourceNotFoundCode, errorx.WithExtraMsg(fmt.Sprintf("target %d not found", param.TargetID))) + } + return param.TargetID, param.TargetVersionID, target.EvalTargetType, nil + } + return 0, 0, 0, nil +} + +// buildFieldMappingConfigAndEnableScoreWeight 从 TemplateConf 构建 FieldMappingConfig,并根据 EvaluatorConf.ScoreWeight 设置是否启用分数权重 +func (e *ExptTemplateManagerImpl) buildFieldMappingConfigAndEnableScoreWeight(template *entity.ExptTemplate, templateConf *entity.ExptTemplateConfiguration) { + if templateConf == nil { + return + } + + fieldMappingConfig := &entity.ExptFieldMapping{ + ItemConcurNum: templateConf.ItemConcurNum, + } + + // 从 ConnectorConf 转换字段映射 + if templateConf.ConnectorConf.TargetConf != nil && templateConf.ConnectorConf.TargetConf.IngressConf != nil { + ingressConf := templateConf.ConnectorConf.TargetConf.IngressConf + targetMapping := &entity.TargetFieldMapping{} + if ingressConf.EvalSetAdapter != nil { + for _, fc := range ingressConf.EvalSetAdapter.FieldConfs { + targetMapping.FromEvalSet = append(targetMapping.FromEvalSet, &entity.ExptTemplateFieldMapping{ + FieldName: fc.FieldName, + FromFieldName: fc.FromField, + ConstValue: fc.Value, + }) + } + } + fieldMappingConfig.TargetFieldMapping = targetMapping + + // 提取运行时参数 + if ingressConf.CustomConf != nil { + for _, fc := range ingressConf.CustomConf.FieldConfs { + if fc.FieldName == "builtin_runtime_param" { + fieldMappingConfig.TargetRuntimeParam = &entity.RuntimeParam{ + JSONValue: gptr.Of(fc.Value), + } + break + } + } + } + } + + if templateConf.ConnectorConf.EvaluatorsConf != nil { + evaluatorMappings := make([]*entity.EvaluatorFieldMapping, 0, len(templateConf.ConnectorConf.EvaluatorsConf.EvaluatorConf)) + for _, ec := range templateConf.ConnectorConf.EvaluatorsConf.EvaluatorConf { + if ec.IngressConf == nil { + continue + } + em := &entity.EvaluatorFieldMapping{ + EvaluatorVersionID: ec.EvaluatorVersionID, + } + if ec.IngressConf.EvalSetAdapter != nil { + for _, fc := range ec.IngressConf.EvalSetAdapter.FieldConfs { + em.FromEvalSet = append(em.FromEvalSet, &entity.ExptTemplateFieldMapping{ + FieldName: fc.FieldName, + FromFieldName: fc.FromField, + ConstValue: fc.Value, + }) + } + } + if ec.IngressConf.TargetAdapter != nil { + for _, fc := range ec.IngressConf.TargetAdapter.FieldConfs { + em.FromTarget = append(em.FromTarget, &entity.ExptTemplateFieldMapping{ + FieldName: fc.FieldName, + FromFieldName: fc.FromField, + ConstValue: fc.Value, + }) + } + } + evaluatorMappings = append(evaluatorMappings, em) + } + fieldMappingConfig.EvaluatorFieldMapping = evaluatorMappings + + // 如果有任一评估器配置了分数权重,则标记模板支持分数权重 + if templateConf.ConnectorConf.EvaluatorsConf != nil { + templateConf.ConnectorConf.EvaluatorsConf.EnableScoreWeight = false + for _, ec := range templateConf.ConnectorConf.EvaluatorsConf.EvaluatorConf { + if ec != nil && ec.ScoreWeight != nil && *ec.ScoreWeight > 0 { + templateConf.ConnectorConf.EvaluatorsConf.EnableScoreWeight = true + break + } + } + } + } + + template.FieldMappingConfig = fieldMappingConfig +} + +// packTemplateTupleID 从 ExptTemplate 构建 ExptTupleID +func (e *ExptTemplateManagerImpl) packTemplateTupleID(template *entity.ExptTemplate) *entity.ExptTupleID { + exptTupleID := &entity.ExptTupleID{ + VersionedEvalSetID: &entity.VersionedEvalSetID{ + EvalSetID: template.GetEvalSetID(), + VersionID: template.GetEvalSetVersionID(), + }, + } + + if template.GetTargetID() > 0 || template.GetTargetVersionID() > 0 { + exptTupleID.VersionedTargetID = &entity.VersionedTargetID{ + TargetID: template.GetTargetID(), + VersionID: template.GetTargetVersionID(), + } + } + + // 从 EvaluatorVersionRef 或 EvaluatorIDVersionItems 中提取 EvaluatorVersionIDs + if len(template.EvaluatorVersionRef) > 0 { + evaluatorVersionIDs := make([]int64, 0, len(template.EvaluatorVersionRef)) + for _, ref := range template.EvaluatorVersionRef { + if ref.EvaluatorVersionID > 0 { + evaluatorVersionIDs = append(evaluatorVersionIDs, ref.EvaluatorVersionID) + } + } + exptTupleID.EvaluatorVersionIDs = evaluatorVersionIDs + } else if template.TripleConfig != nil && len(template.TripleConfig.EvaluatorVersionIds) > 0 { + exptTupleID.EvaluatorVersionIDs = template.TripleConfig.EvaluatorVersionIds + } + + return exptTupleID +} + +// mgetExptTupleByID 批量查询关联数据(参考 ExptMangerImpl.mgetExptTupleByID) +func (e *ExptTemplateManagerImpl) mgetExptTupleByID(ctx context.Context, tupleIDs []*entity.ExptTupleID, spaceID int64, session *entity.Session) ([]*entity.ExptTuple, error) { + var ( + versionedTargetIDs = make([]*entity.VersionedTargetID, 0, len(tupleIDs)) + versionedEvalSetIDs = make([]*entity.VersionedEvalSetID, 0, len(tupleIDs)) + evaluatorVersionIDs []int64 + + targets []*entity.EvalTarget + evalSets []*entity.EvaluationSet + evaluators []*entity.Evaluator + ) + + for _, etids := range tupleIDs { + if etids.VersionedEvalSetID != nil { + versionedEvalSetIDs = append(versionedEvalSetIDs, etids.VersionedEvalSetID) + } + if etids.VersionedTargetID != nil { + versionedTargetIDs = append(versionedTargetIDs, etids.VersionedTargetID) + } + if len(etids.EvaluatorVersionIDs) > 0 { + evaluatorVersionIDs = append(evaluatorVersionIDs, etids.EvaluatorVersionIDs...) + } + } + + pool, err := goroutine.NewPool(3) + if err != nil { + return nil, err + } + + // 查询 Target + if len(versionedTargetIDs) > 0 { + pool.Add(func() error { + // 去重 + targetVersionIDs := make([]int64, 0, len(versionedTargetIDs)) + for _, tids := range versionedTargetIDs { + targetVersionIDs = append(targetVersionIDs, tids.VersionID) + } + targetVersionIDs = maps.ToSlice(gslice.ToMap(targetVersionIDs, func(t int64) (int64, bool) { return t, true }), func(k int64, v bool) int64 { return k }) + var poolErr error + targets, poolErr = e.evalTargetService.BatchGetEvalTargetVersion(ctx, spaceID, targetVersionIDs, true) + if poolErr != nil { + return poolErr + } + return nil + }) + } + + // 查询 EvalSet + if len(versionedEvalSetIDs) > 0 { + evalSetVersionIDs := make([]int64, 0, len(versionedEvalSetIDs)) + for _, ids := range versionedEvalSetIDs { + if ids.EvalSetID != ids.VersionID { + evalSetVersionIDs = append(evalSetVersionIDs, ids.VersionID) + } + } + if len(evalSetVersionIDs) > 0 { + pool.Add(func() error { + verIDs := maps.ToSlice(gslice.ToMap(evalSetVersionIDs, func(t int64) (int64, bool) { return t, true }), func(k int64, v bool) int64 { return k }) + // 仅查询未删除版本,避免带出已删除列 + got, poolErr := e.evaluationSetVersionService.BatchGetEvaluationSetVersions(ctx, gptr.Of(spaceID), verIDs, gptr.Of(false)) + if poolErr != nil { + return poolErr + } + for _, elem := range got { + if elem == nil { + continue + } + elem.EvaluationSet.EvaluationSetVersion = elem.Version + evalSets = append(evalSets, elem.EvaluationSet) + } + return nil + }) + } + // 草稿的evalSetID和versionID相同 + evalSetIDs := make([]int64, 0, len(versionedEvalSetIDs)) + for _, ids := range versionedEvalSetIDs { + if ids.EvalSetID == ids.VersionID { + evalSetIDs = append(evalSetIDs, ids.EvalSetID) + } + } + if len(evalSetIDs) > 0 { + pool.Add(func() error { + setIDs := maps.ToSlice(gslice.ToMap(evalSetIDs, func(t int64) (int64, bool) { return t, true }), func(k int64, v bool) int64 { return k }) + got, poolErr := e.evaluationSetService.BatchGetEvaluationSets(ctx, gptr.Of(spaceID), setIDs, gptr.Of(false)) + if poolErr != nil { + return poolErr + } + for _, elem := range got { + if elem == nil { + continue + } + evalSets = append(evalSets, elem) + } + return nil + }) + } + } + + // 查询 Evaluators + if len(evaluatorVersionIDs) > 0 { + pool.Add(func() error { + var poolErr error + evaluators, poolErr = e.evaluatorService.BatchGetEvaluatorVersion(ctx, nil, evaluatorVersionIDs, true) + if poolErr != nil { + return poolErr + } + return nil + }) + } + + if err := pool.Exec(ctx); err != nil { + return nil, err + } + + // 构建结果映射(参考 ExptMangerImpl.mgetExptTupleByID) + targetMap := gslice.ToMap(targets, func(t *entity.EvalTarget) (int64, *entity.EvalTarget) { + if t == nil || t.EvalTargetVersion == nil { + return 0, nil + } + return t.EvalTargetVersion.ID, t + }) + evalSetMap := gslice.ToMap(evalSets, func(t *entity.EvaluationSet) (int64, *entity.EvaluationSet) { + if t == nil { + return 0, nil + } + // 对于版本化的 EvalSet,使用 VersionID 作为 key + if t.EvaluationSetVersion != nil { + return t.EvaluationSetVersion.ID, t + } + // 对于草稿 EvalSet,使用 EvalSetID 作为 key(此时 EvalSetID == VersionID) + return t.ID, t + }) + evaluatorMap := gslice.ToMap(evaluators, func(t *entity.Evaluator) (int64, *entity.Evaluator) { + return t.GetEvaluatorVersionID(), t + }) + + // 构建结果列表 + res := make([]*entity.ExptTuple, 0, len(tupleIDs)) + for _, tupleIDs := range tupleIDs { + tuple := &entity.ExptTuple{ + EvalSet: evalSetMap[tupleIDs.VersionedEvalSetID.VersionID], + } + if tupleIDs.VersionedTargetID != nil { + tuple.Target = targetMap[tupleIDs.VersionedTargetID.VersionID] + } + if len(tupleIDs.EvaluatorVersionIDs) > 0 { + cevaluators := make([]*entity.Evaluator, 0, len(tupleIDs.EvaluatorVersionIDs)) + for _, evaluatorVersionID := range tupleIDs.EvaluatorVersionIDs { + if ev, ok := evaluatorMap[evaluatorVersionID]; ok && ev != nil { + cevaluators = append(cevaluators, ev) + } + } + tuple.Evaluators = cevaluators + } + res = append(res, tuple) + } + + return res, nil +} diff --git a/backend/modules/evaluation/domain/service/expt_template_impl_test.go b/backend/modules/evaluation/domain/service/expt_template_impl_test.go new file mode 100644 index 000000000..2331d54aa --- /dev/null +++ b/backend/modules/evaluation/domain/service/expt_template_impl_test.go @@ -0,0 +1,2754 @@ +// Copyright 2026 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package service + +import ( + "context" + "errors" + "testing" + + "github.com/bytedance/gg/gptr" + "github.com/stretchr/testify/assert" + "go.uber.org/mock/gomock" + + idgenmocks "github.com/coze-dev/coze-loop/backend/infra/idgen/mocks" + platestwrite "github.com/coze-dev/coze-loop/backend/infra/platestwrite" + lwtmocks "github.com/coze-dev/coze-loop/backend/infra/platestwrite/mocks" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/entity" + repo_mocks "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/repo/mocks" + svcmocks "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/service/mocks" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/pkg/errno" + "github.com/coze-dev/coze-loop/backend/pkg/json" +) + +// 基础字段构造,方便多个用例复用 +func newBasicCreateParam() *entity.CreateExptTemplateParam { + return &entity.CreateExptTemplateParam{ + SpaceID: 100, + Name: "tpl", + Description: "desc", + ExptType: entity.ExptType_Offline, + EvalSetID: 1, + EvalSetVersionID: 11, + } +} + +func TestExptTemplateManagerImpl_CheckName(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + mgr := &ExptTemplateManagerImpl{templateRepo: mockRepo} + ctx := context.Background() + spaceID := int64(100) + + t.Run("repo error", func(t *testing.T) { + mockRepo.EXPECT().GetByName(ctx, "tpl", spaceID).Return(nil, false, errors.New("dao err")) + pass, err := mgr.CheckName(ctx, "tpl", spaceID, &entity.Session{}) + assert.Error(t, err) + assert.False(t, pass) + }) + + t.Run("exists", func(t *testing.T) { + mockRepo.EXPECT().GetByName(ctx, "tpl", spaceID).Return(&entity.ExptTemplate{}, true, nil) + pass, err := mgr.CheckName(ctx, "tpl", spaceID, &entity.Session{}) + assert.NoError(t, err) + assert.False(t, pass) + }) + + t.Run("not exists", func(t *testing.T) { + mockRepo.EXPECT().GetByName(ctx, "tpl2", spaceID).Return(nil, false, nil) + pass, err := mgr.CheckName(ctx, "tpl2", spaceID, &entity.Session{}) + assert.NoError(t, err) + assert.True(t, pass) + }) +} + +func TestExptTemplateManagerImpl_Create_NameExists(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + mockIdgen := idgenmocks.NewMockIIDGenerator(ctrl) + mockEvalSvc := svcmocks.NewMockEvaluatorService(ctrl) + mockTargetSvc := svcmocks.NewMockIEvalTargetService(ctrl) + mockEvalSetSvc := svcmocks.NewMockIEvaluationSetService(ctrl) + mockEvalSetVerSvc := svcmocks.NewMockEvaluationSetVersionService(ctrl) + mockLWT := lwtmocks.NewMockILatestWriteTracker(ctrl) + + mgr := NewExptTemplateManager( + mockRepo, + mockIdgen, + mockEvalSvc, + mockTargetSvc, + mockEvalSetSvc, + mockEvalSetVerSvc, + mockLWT, + ) + + ctx := context.Background() + param := newBasicCreateParam() + session := &entity.Session{UserID: "u1"} + + // CheckName 返回已存在 + mockRepo.EXPECT().GetByName(ctx, param.Name, param.SpaceID).Return(&entity.ExptTemplate{}, true, nil) + + got, err := mgr.Create(ctx, param, session) + assert.Error(t, err) + assert.Nil(t, got) + // 只校验这是一个 evaluation 业务错误 code,而不关心具体类型 + code, _, ok := errno.ParseStatusError(err) + assert.True(t, ok) + assert.Equal(t, errno.ExperimentNameExistedCode, int(code)) +} + +func TestExptTemplateManagerImpl_Create_Success(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + mockIdgen := idgenmocks.NewMockIIDGenerator(ctrl) + mockEvalSvc := svcmocks.NewMockEvaluatorService(ctrl) + mockTargetSvc := svcmocks.NewMockIEvalTargetService(ctrl) + mockEvalSetSvc := svcmocks.NewMockIEvaluationSetService(ctrl) + mockEvalSetVerSvc := svcmocks.NewMockEvaluationSetVersionService(ctrl) + mockLWT := lwtmocks.NewMockILatestWriteTracker(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + idgen: mockIdgen, + evaluatorService: mockEvalSvc, + evalTargetService: mockTargetSvc, + evaluationSetService: mockEvalSetSvc, + evaluationSetVersionService: mockEvalSetVerSvc, + lwt: mockLWT, + } + + ctx := context.Background() + param := newBasicCreateParam() + param.EvaluatorIDVersionItems = []*entity.EvaluatorIDVersionItem{ + {EvaluatorID: 10, Version: "v1", EvaluatorVersionID: 1001}, + } + param.TemplateConf = &entity.ExptTemplateConfiguration{} + session := &entity.Session{UserID: "u1"} + + // CheckName + mockRepo.EXPECT().GetByName(ctx, param.Name, param.SpaceID).Return(nil, false, nil) + // idgen + mockIdgen.EXPECT().GenID(ctx).Return(int64(10001), nil) + // mgetExptTupleByID 内部会调用 evaluationSetVersionService / evaluationSetService / evalTargetService / evaluatorService + mockEvalSetVerSvc.EXPECT().BatchGetEvaluationSetVersions(gomock.Any(), gptr.Of(param.SpaceID), gomock.Any(), gptr.Of(false)).Return(nil, nil).AnyTimes() + mockEvalSetSvc.EXPECT().BatchGetEvaluationSets(gomock.Any(), gptr.Of(param.SpaceID), gomock.Any(), gptr.Of(false)).Return(nil, nil).AnyTimes() + mockTargetSvc.EXPECT().BatchGetEvalTargetVersion(gomock.Any(), param.SpaceID, gomock.Any(), true).Return(nil, nil).AnyTimes() + mockEvalSvc.EXPECT().BatchGetEvaluatorVersion(gomock.Any(), nil, gomock.Any(), true).Return(nil, nil).AnyTimes() + // repo.Create + mockRepo.EXPECT().Create(ctx, gomock.Any(), gomock.Any()).Return(nil) + // LWT + mockLWT.EXPECT().SetWriteFlag(ctx, platestwrite.ResourceTypeExptTemplate, int64(10001)).AnyTimes() + + got, err := mgr.Create(ctx, param, session) + assert.NoError(t, err) + assert.NotNil(t, got) + assert.Equal(t, int64(10001), got.GetID()) + assert.Equal(t, param.Name, got.GetName()) + assert.Equal(t, param.SpaceID, got.GetSpaceID()) + assert.Equal(t, param.EvalSetID, got.GetEvalSetID()) + assert.Equal(t, param.EvalSetVersionID, got.GetEvalSetVersionID()) + assert.Equal(t, "u1", got.GetCreatedBy()) +} + +func TestExptTemplateManagerImpl_MGet_UseWriteDBOnSingleWithFlag(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + mockIdgen := idgenmocks.NewMockIIDGenerator(ctrl) + mockEvalSvc := svcmocks.NewMockEvaluatorService(ctrl) + mockTargetSvc := svcmocks.NewMockIEvalTargetService(ctrl) + mockEvalSetSvc := svcmocks.NewMockIEvaluationSetService(ctrl) + mockEvalSetVerSvc := svcmocks.NewMockEvaluationSetVersionService(ctrl) + mockLWT := lwtmocks.NewMockILatestWriteTracker(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + idgen: mockIdgen, + evaluatorService: mockEvalSvc, + evalTargetService: mockTargetSvc, + evaluationSetService: mockEvalSetSvc, + evaluationSetVersionService: mockEvalSetVerSvc, + lwt: mockLWT, + } + + ctx := context.Background() + spaceID := int64(100) + ids := []int64{1} + session := &entity.Session{UserID: "u1"} + + // 写标志为 true,期望带 writeDB 上下文调用 repo.MGetByID + mockLWT.EXPECT().CheckWriteFlagByID(ctx, platestwrite.ResourceTypeExptTemplate, int64(1)).Return(true) + mockRepo.EXPECT().MGetByID(gomock.Any(), ids, spaceID).Return([]*entity.ExptTemplate{ + { + Meta: &entity.ExptTemplateMeta{ + ID: 1, + WorkspaceID: spaceID, + Name: "tpl", + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvalSetID: 10, + EvalSetVersionID: 20, + }, + }, + }, nil) + // mgetExptTupleByID 需要 evaluationSetService / evalTargetService / evaluatorService 的协作,这里用空结果兜底 + mockEvalSetVerSvc.EXPECT().BatchGetEvaluationSetVersions(gomock.Any(), gptr.Of(spaceID), gomock.Any(), gptr.Of(false)).Return(nil, nil).AnyTimes() + mockEvalSetSvc.EXPECT().BatchGetEvaluationSets(gomock.Any(), gptr.Of(spaceID), gomock.Any(), gptr.Of(false)).Return(nil, nil).AnyTimes() + mockTargetSvc.EXPECT().BatchGetEvalTargetVersion(gomock.Any(), spaceID, gomock.Any(), true).Return(nil, nil).AnyTimes() + mockEvalSvc.EXPECT().BatchGetEvaluatorVersion(gomock.Any(), nil, gomock.Any(), true).Return(nil, nil).AnyTimes() + + got, err := mgr.MGet(ctx, ids, spaceID, session) + assert.NoError(t, err) + assert.Len(t, got, 1) + assert.Equal(t, int64(1), got[0].GetID()) +} + +func TestExptTemplateManagerImpl_UpdateMeta_Success(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + } + + ctx := context.Background() + spaceID := int64(100) + templateID := int64(1) + session := &entity.Session{UserID: "u1"} + + param := &entity.UpdateExptTemplateMetaParam{ + TemplateID: templateID, + SpaceID: spaceID, + Name: "", // 不改名,避免触发 CheckName + Description: "new-desc", + ExptType: entity.ExptType_Online, + } + + existing := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + Name: "tpl", + Desc: "old-desc", + ExptType: entity.ExptType_Offline, + }, + } + + updated := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + Name: "tpl", + Desc: "new-desc", + ExptType: entity.ExptType_Online, + }, + } + + // 第一次 GetByID,拿到现有模板 + mockRepo.EXPECT(). + GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)). + Return(existing, nil) + + // UpdateFields:校验写入字段包含 description / expt_type / updated_by + mockRepo.EXPECT(). + UpdateFields(ctx, templateID, gomock.AssignableToTypeOf(map[string]any{})). + DoAndReturn(func(_ context.Context, _ int64, fields map[string]any) error { + assert.Equal(t, "new-desc", fields["description"]) + assert.Equal(t, int32(entity.ExptType_Online), fields["expt_type"]) + assert.Equal(t, "u1", fields["updated_by"]) + // updated_at 为 time.Time,这里不做具体断言 + assert.NotNil(t, fields["updated_at"]) + return nil + }) + + // 第二次 GetByID,返回更新后的模板 + mockRepo.EXPECT(). + GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)). + Return(updated, nil) + + got, err := mgr.UpdateMeta(ctx, param, session) + assert.NoError(t, err) + assert.NotNil(t, got) + assert.Equal(t, "new-desc", got.GetDescription()) + assert.Equal(t, entity.ExptType_Online, got.GetExptType()) + assert.NotNil(t, got.BaseInfo) + if assert.NotNil(t, got.BaseInfo.UpdatedBy) && got.BaseInfo.UpdatedBy.UserID != nil { + assert.Equal(t, "u1", *got.BaseInfo.UpdatedBy.UserID) + } +} + +func TestExptTemplateManagerImpl_UpdateExptInfo_NewAndClamp(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + } + + ctx := context.Background() + spaceID := int64(100) + templateID := int64(1) + + // 场景一:原来没有 ExptInfo,adjustCount = +1 + existing := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + }, + ExptInfo: nil, + } + + gomock.InOrder( + mockRepo.EXPECT(). + GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)). + Return(existing, nil), + mockRepo.EXPECT(). + UpdateFields(ctx, templateID, gomock.AssignableToTypeOf(map[string]any{})). + DoAndReturn(func(_ context.Context, _ int64, fields map[string]any) error { + buf, ok := fields["expt_info"].([]byte) + assert.True(t, ok) + var info entity.ExptInfo + err := json.Unmarshal(buf, &info) + assert.NoError(t, err) + assert.Equal(t, int64(1), info.CreatedExptCount) + assert.Equal(t, int64(200), info.LatestExptID) + assert.Equal(t, entity.ExptStatus_Processing, info.LatestExptStatus) + return nil + }), + ) + + err := mgr.UpdateExptInfo(ctx, templateID, spaceID, 200, entity.ExptStatus_Processing, 1) + assert.NoError(t, err) + + // 场景二:已有 ExptInfo,adjustCount 负数,下限为 0 + existing2 := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + }, + ExptInfo: &entity.ExptInfo{ + CreatedExptCount: 0, + LatestExptID: 100, + LatestExptStatus: entity.ExptStatus_Success, + }, + } + + gomock.InOrder( + mockRepo.EXPECT(). + GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)). + Return(existing2, nil), + mockRepo.EXPECT(). + UpdateFields(ctx, templateID, gomock.AssignableToTypeOf(map[string]any{})). + DoAndReturn(func(_ context.Context, _ int64, fields map[string]any) error { + buf, ok := fields["expt_info"].([]byte) + assert.True(t, ok) + var info entity.ExptInfo + err := json.Unmarshal(buf, &info) + assert.NoError(t, err) + // CreatedExptCount 不会变成负数 + assert.Equal(t, int64(0), info.CreatedExptCount) + assert.Equal(t, int64(300), info.LatestExptID) + assert.Equal(t, entity.ExptStatus_Failed, info.LatestExptStatus) + return nil + }), + ) + + err = mgr.UpdateExptInfo(ctx, templateID, spaceID, 300, entity.ExptStatus_Failed, -5) + assert.NoError(t, err) +} + +func TestExptTemplateManagerImpl_UpdateExptInfo_NotFound(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + } + + ctx := context.Background() + spaceID := int64(100) + templateID := int64(1) + + mockRepo.EXPECT(). + GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)). + Return((*entity.ExptTemplate)(nil), nil) + + err := mgr.UpdateExptInfo(ctx, templateID, spaceID, 1, entity.ExptStatus_Processing, 1) + assert.Error(t, err) + code, _, ok := errno.ParseStatusError(err) + assert.True(t, ok) + assert.Equal(t, errno.ResourceNotFoundCode, int(code)) +} + +func TestExptTemplateManagerImpl_Update_WithCreateEvalTarget(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + mockEvalSvc := svcmocks.NewMockEvaluatorService(ctrl) + mockTargetSvc := svcmocks.NewMockIEvalTargetService(ctrl) + mockEvalSetSvc := svcmocks.NewMockIEvaluationSetService(ctrl) + mockEvalSetVerSvc := svcmocks.NewMockEvaluationSetVersionService(ctrl) + mockLWT := lwtmocks.NewMockILatestWriteTracker(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + evaluatorService: mockEvalSvc, + evalTargetService: mockTargetSvc, + evaluationSetService: mockEvalSetSvc, + evaluationSetVersionService: mockEvalSetVerSvc, + lwt: mockLWT, + } + + ctx := context.Background() + spaceID := int64(100) + templateID := int64(1) + session := &entity.Session{UserID: "u1"} + + // 现有模板 + existing := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + Name: "tpl-old", + Desc: "old-desc", + ExptType: entity.ExptType_Offline, + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvalSetID: 10, + EvalSetVersionID: 11, + TargetID: 20, + TargetVersionID: 21, + TargetType: entity.EvalTargetTypeLoopPrompt, + }, + } + + // 更新参数:改名 + 创建新的 Target + param := &entity.UpdateExptTemplateParam{ + TemplateID: templateID, + SpaceID: spaceID, + Name: "tpl-new", + Description: "new-desc", + EvalSetVersionID: 11, + TargetVersionID: 0, + EvaluatorIDVersionItems: []*entity.EvaluatorIDVersionItem{ + {EvaluatorID: 1, Version: "v1", EvaluatorVersionID: 101}, + }, + TemplateConf: &entity.ExptTemplateConfiguration{ + ConnectorConf: entity.Connector{ + TargetConf: &entity.TargetConf{}, + EvaluatorsConf: &entity.EvaluatorsConf{ + EvaluatorConf: []*entity.EvaluatorConf{ + { + EvaluatorID: 1, + Version: "v1", + IngressConf: &entity.EvaluatorIngressConf{ + EvalSetAdapter: &entity.FieldAdapter{}, + }, + }, + }, + }, + }, + }, + CreateEvalTargetParam: &entity.CreateEvalTargetParam{ + SourceTargetID: gptr.Of("src-id"), + SourceTargetVersion: gptr.Of("v1"), + EvalTargetType: gptr.Of(entity.EvalTargetTypeLoopPrompt), + }, + } + + // CheckName 通过 + mockRepo.EXPECT().GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)).Return(existing, nil) + mockRepo.EXPECT().GetByName(ctx, param.Name, param.SpaceID).Return(nil, false, nil) + + // 解析 evaluator_version_id:TemplateConf 中的 EvaluatorConf 需要解析版本ID + // 测试数据中 EvaluatorConf 有 EvaluatorID: 1, Version: "v1",需要返回对应的 evaluator + mockEvalSvc.EXPECT(). + BatchGetEvaluatorByIDAndVersion(gomock.Any(), gomock.Any()). + DoAndReturn(func(_ context.Context, pairs [][2]interface{}) ([]*entity.Evaluator, error) { + evaluators := make([]*entity.Evaluator, 0) + for _, pair := range pairs { + eid := pair[0].(int64) + ver := pair[1].(string) + if eid == 1 && ver == "v1" { + pev := &entity.PromptEvaluatorVersion{} + pev.SetID(101) + pev.SetEvaluatorID(1) + pev.SetVersion("v1") + evaluators = append(evaluators, &entity.Evaluator{ + ID: 1, + EvaluatorType: entity.EvaluatorTypePrompt, + PromptEvaluatorVersion: pev, + }) + } + } + return evaluators, nil + }). + AnyTimes() + + // Update 中创建新 Target 前需要先获取现有 Target 以校验 SourceTargetID + mockTargetSvc.EXPECT(). + GetEvalTarget(gomock.Any(), int64(20)). + Return(&entity.EvalTarget{ + ID: 20, + SourceTargetID: "src-id", + EvalTargetType: entity.EvalTargetTypeLoopPrompt, + }, nil) + + // 创建新的 Target + mockTargetSvc.EXPECT(). + CreateEvalTarget(gomock.Any(), spaceID, "src-id", "v1", entity.EvalTargetTypeLoopPrompt, gomock.Any()). + Return(int64(30), int64(40), nil) + + // UpdateWithRefs & GetByID + mockRepo.EXPECT(). + UpdateWithRefs(gomock.Any(), gomock.Any(), gomock.Any()). + Return(nil) + updatedTemplateFromDB := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + Name: "tpl-new", + Desc: "new-desc", + ExptType: entity.ExptType_Offline, + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvalSetID: 10, + EvalSetVersionID: 11, + TargetID: 30, + TargetVersionID: 40, + TargetType: entity.EvalTargetTypeLoopPrompt, + EvaluatorVersionIds: []int64{101}, // 用于 packTemplateTupleID 提取 + }, + } + mockRepo.EXPECT(). + GetByID(gomock.Any(), templateID, gomock.AssignableToTypeOf(&spaceID)). + Return(updatedTemplateFromDB, nil) + + // mgetExptTupleByID:由于创建了新 Target,会使用 writeDB context,返回关联数据 + mockTargetSvc.EXPECT(). + BatchGetEvalTargetVersion(gomock.Any(), spaceID, gomock.Any(), true). + DoAndReturn(func(_ context.Context, _ int64, versionIDs []int64, _ bool) ([]*entity.EvalTarget, error) { + targets := make([]*entity.EvalTarget, 0) + for _, vid := range versionIDs { + if vid == 40 { + targets = append(targets, &entity.EvalTarget{ + EvalTargetVersion: &entity.EvalTargetVersion{ID: 40}, + }) + } + } + return targets, nil + }) + mockEvalSetVerSvc.EXPECT(). + BatchGetEvaluationSetVersions(gomock.Any(), gptr.Of(spaceID), gomock.Any(), gptr.Of(false)). + DoAndReturn(func(_ context.Context, _ *int64, versionIDs []int64, _ *bool) ([]*entity.BatchGetEvaluationSetVersionsResult, error) { + results := make([]*entity.BatchGetEvaluationSetVersionsResult, 0) + for _, vid := range versionIDs { + if vid == 11 { + results = append(results, &entity.BatchGetEvaluationSetVersionsResult{ + Version: &entity.EvaluationSetVersion{ID: 11}, + EvaluationSet: &entity.EvaluationSet{ + ID: 10, + EvaluationSetVersion: &entity.EvaluationSetVersion{ID: 11}, + }, + }) + } + } + return results, nil + }) + mockEvalSetSvc.EXPECT(). + BatchGetEvaluationSets(gomock.Any(), gptr.Of(spaceID), gomock.Any(), gptr.Of(false)). + Return(nil, nil). + AnyTimes() + mockEvalSvc.EXPECT(). + BatchGetEvaluatorVersion(gomock.Any(), nil, gomock.Any(), true). + DoAndReturn(func(_ context.Context, _ *int64, versionIDs []int64, _ bool) ([]*entity.Evaluator, error) { + evaluators := make([]*entity.Evaluator, 0) + for _, vid := range versionIDs { + if vid == 101 { + pev := &entity.PromptEvaluatorVersion{} + pev.SetID(101) + evaluators = append(evaluators, &entity.Evaluator{ + PromptEvaluatorVersion: pev, + }) + } + } + return evaluators, nil + }) + + got, err := mgr.Update(ctx, param, session) + assert.NoError(t, err) + assert.NotNil(t, got) + assert.Equal(t, "tpl-new", got.GetName()) + assert.Equal(t, int64(30), got.GetTargetID()) + assert.Equal(t, int64(40), got.GetTargetVersionID()) +} + +func TestExptTemplateManagerImpl_List_FillTuples(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + mockEvalSvc := svcmocks.NewMockEvaluatorService(ctrl) + mockTargetSvc := svcmocks.NewMockIEvalTargetService(ctrl) + mockEvalSetSvc := svcmocks.NewMockIEvaluationSetService(ctrl) + mockEvalSetVerSvc := svcmocks.NewMockEvaluationSetVersionService(ctrl) + mockLWT := lwtmocks.NewMockILatestWriteTracker(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + evaluatorService: mockEvalSvc, + evalTargetService: mockTargetSvc, + evaluationSetService: mockEvalSetSvc, + evaluationSetVersionService: mockEvalSetVerSvc, + lwt: mockLWT, + } + + ctx := context.Background() + spaceID := int64(100) + + templates := []*entity.ExptTemplate{ + { + Meta: &entity.ExptTemplateMeta{ + ID: 1, + WorkspaceID: spaceID, + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvalSetID: 10, + EvalSetVersionID: 11, + TargetID: 20, + TargetVersionID: 21, + EvaluatorVersionIds: []int64{101}, + }, + }, + } + + mockRepo.EXPECT(). + List(ctx, int32(1), int32(10), nil, nil, spaceID). + Return(templates, int64(1), nil) + + // mgetExptTupleByID 相关依赖:返回一个 EvalSet、Target、Evaluator + // 注意:targetMap 使用 EvalTargetVersion.ID 作为 key,所以返回的 Target 需要 EvalTargetVersion.ID = 21 + mockTargetSvc.EXPECT(). + BatchGetEvalTargetVersion(gomock.Any(), spaceID, gomock.Any(), true). + DoAndReturn(func(_ context.Context, _ int64, versionIDs []int64, _ bool) ([]*entity.EvalTarget, error) { + // 确保返回的 Target 的 EvalTargetVersion.ID 匹配请求的 versionID + targets := make([]*entity.EvalTarget, 0) + for _, vid := range versionIDs { + if vid == 21 { + targets = append(targets, &entity.EvalTarget{ + EvalTargetVersion: &entity.EvalTargetVersion{ID: 21}, + }) + } + } + return targets, nil + }) + // evalSetMap 使用 EvaluationSetVersion.ID 作为 key(当 EvalSetID != VersionID 时) + mockEvalSetVerSvc.EXPECT(). + BatchGetEvaluationSetVersions(gomock.Any(), gptr.Of(spaceID), gomock.Any(), gptr.Of(false)). + DoAndReturn(func(_ context.Context, _ *int64, versionIDs []int64, _ *bool) ([]*entity.BatchGetEvaluationSetVersionsResult, error) { + results := make([]*entity.BatchGetEvaluationSetVersionsResult, 0) + for _, vid := range versionIDs { + if vid == 11 { + results = append(results, &entity.BatchGetEvaluationSetVersionsResult{ + Version: &entity.EvaluationSetVersion{ID: 11}, + EvaluationSet: &entity.EvaluationSet{ + ID: 10, + EvaluationSetVersion: &entity.EvaluationSetVersion{ID: 11}, + }, + }) + } + } + return results, nil + }) + mockEvalSetSvc.EXPECT(). + BatchGetEvaluationSets(gomock.Any(), gptr.Of(spaceID), gomock.Any(), gptr.Of(false)). + Return(nil, nil). + AnyTimes() + // evaluatorMap 使用 GetEvaluatorVersionID() 作为 key + mockEvalSvc.EXPECT(). + BatchGetEvaluatorVersion(gomock.Any(), nil, gomock.Any(), true). + DoAndReturn(func(_ context.Context, _ *int64, versionIDs []int64, _ bool) ([]*entity.Evaluator, error) { + evaluators := make([]*entity.Evaluator, 0) + for _, vid := range versionIDs { + if vid == 101 { + pev := &entity.PromptEvaluatorVersion{} + pev.SetID(101) + evaluators = append(evaluators, &entity.Evaluator{ + EvaluatorType: entity.EvaluatorTypePrompt, + PromptEvaluatorVersion: pev, + }) + } + } + return evaluators, nil + }) + + got, total, err := mgr.List(ctx, 1, 10, spaceID, nil, nil, &entity.Session{UserID: "u1"}) + assert.NoError(t, err) + assert.Equal(t, int64(1), total) + if assert.Len(t, got, 1) { + assert.NotNil(t, got[0].EvalSet) + assert.NotNil(t, got[0].Target) + assert.Len(t, got[0].Evaluators, 1) + } +} + +func TestExptTemplateManagerImpl_resolveTargetForCreate_Paths(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockTargetSvc := svcmocks.NewMockIEvalTargetService(ctrl) + mgr := &ExptTemplateManagerImpl{ + evalTargetService: mockTargetSvc, + } + + ctx := context.Background() + + // 分支一:CreateEvalTargetParam 非空 -> 创建新 Target + param1 := &entity.CreateExptTemplateParam{ + SpaceID: 100, + CreateEvalTargetParam: &entity.CreateEvalTargetParam{ + SourceTargetID: gptr.Of("src-id"), + SourceTargetVersion: gptr.Of("v1"), + EvalTargetType: gptr.Of(entity.EvalTargetTypeLoopPrompt), + }, + } + mockTargetSvc.EXPECT(). + CreateEvalTarget(gomock.Any(), int64(100), "src-id", "v1", entity.EvalTargetTypeLoopPrompt, gomock.Any()). + Return(int64(20), int64(21), nil) + + tid, tver, ttype, err := mgr.resolveTargetForCreate(ctx, param1) + assert.NoError(t, err) + assert.Equal(t, int64(20), tid) + assert.Equal(t, int64(21), tver) + assert.Equal(t, entity.EvalTargetTypeLoopPrompt, ttype) + + // 分支二:使用已有 TargetID + param2 := &entity.CreateExptTemplateParam{ + SpaceID: 200, + TargetID: 30, + TargetVersionID: 31, + } + mockTargetSvc.EXPECT(). + GetEvalTarget(gomock.Any(), int64(30)). + Return(&entity.EvalTarget{EvalTargetType: entity.EvalTargetTypeCustomRPCServer}, nil) + + tid2, tver2, ttype2, err := mgr.resolveTargetForCreate(ctx, param2) + assert.NoError(t, err) + assert.Equal(t, int64(30), tid2) + assert.Equal(t, int64(31), tver2) + assert.Equal(t, entity.EvalTargetTypeCustomRPCServer, ttype2) + + // 分支三:既无 CreateEvalTargetParam 也无 TargetID + param3 := &entity.CreateExptTemplateParam{SpaceID: 300} + tid3, tver3, ttype3, err := mgr.resolveTargetForCreate(ctx, param3) + assert.NoError(t, err) + assert.Equal(t, int64(0), tid3) + assert.Equal(t, int64(0), tver3) + assert.Equal(t, entity.EvalTargetType(0), ttype3) +} + +func TestExptTemplateManagerImpl_buildFieldMappingConfigAndEnableScoreWeight(t *testing.T) { + mgr := &ExptTemplateManagerImpl{} + + template := &entity.ExptTemplate{} + templateConf := &entity.ExptTemplateConfiguration{ + ItemConcurNum: gptr.Of(3), + ConnectorConf: entity.Connector{ + TargetConf: &entity.TargetConf{ + IngressConf: &entity.TargetIngressConf{ + EvalSetAdapter: &entity.FieldAdapter{ + FieldConfs: []*entity.FieldConf{ + {FieldName: "t1", FromField: "src1", Value: "v1"}, + }, + }, + CustomConf: &entity.FieldAdapter{ + FieldConfs: []*entity.FieldConf{ + {FieldName: "builtin_runtime_param", Value: `{"k":"v"}`}, + }, + }, + }, + }, + EvaluatorsConf: &entity.EvaluatorsConf{ + EvaluatorConf: []*entity.EvaluatorConf{ + { + EvaluatorVersionID: 101, + ScoreWeight: gptr.Of(0.7), + IngressConf: &entity.EvaluatorIngressConf{ + EvalSetAdapter: &entity.FieldAdapter{ + FieldConfs: []*entity.FieldConf{ + {FieldName: "ein", FromField: "col1", Value: ""}, + }, + }, + TargetAdapter: &entity.FieldAdapter{ + FieldConfs: []*entity.FieldConf{ + {FieldName: "eout", FromField: "col2", Value: ""}, + }, + }, + }, + }, + }, + }, + }, + } + + mgr.buildFieldMappingConfigAndEnableScoreWeight(template, templateConf) + + if assert.NotNil(t, template.FieldMappingConfig) { + assert.Equal(t, 3, gptr.Indirect(template.FieldMappingConfig.ItemConcurNum)) + + // TargetFieldMapping + if assert.NotNil(t, template.FieldMappingConfig.TargetFieldMapping) { + assert.Len(t, template.FieldMappingConfig.TargetFieldMapping.FromEvalSet, 1) + f := template.FieldMappingConfig.TargetFieldMapping.FromEvalSet[0] + assert.Equal(t, "t1", f.FieldName) + assert.Equal(t, "src1", f.FromFieldName) + assert.Equal(t, "v1", f.ConstValue) + } + // TargetRuntimeParam + if assert.NotNil(t, template.FieldMappingConfig.TargetRuntimeParam) { + assert.Equal(t, `{"k":"v"}`, gptr.Indirect(template.FieldMappingConfig.TargetRuntimeParam.JSONValue)) + } + // EvaluatorFieldMapping + if assert.Len(t, template.FieldMappingConfig.EvaluatorFieldMapping, 1) { + em := template.FieldMappingConfig.EvaluatorFieldMapping[0] + assert.Equal(t, int64(101), em.EvaluatorVersionID) + assert.Len(t, em.FromEvalSet, 1) + assert.Len(t, em.FromTarget, 1) + } + } + // EnableScoreWeight 应该被置为 true + if assert.NotNil(t, templateConf.ConnectorConf.EvaluatorsConf) { + assert.True(t, templateConf.ConnectorConf.EvaluatorsConf.EnableScoreWeight) + } +} + +func TestExptTemplateManagerImpl_Delete(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + } + + ctx := context.Background() + spaceID := int64(100) + templateID := int64(1) + + mockRepo.EXPECT().Delete(ctx, templateID, spaceID).Return(nil) + + err := mgr.Delete(ctx, templateID, spaceID, &entity.Session{UserID: "u1"}) + assert.NoError(t, err) +} + +func TestExptTemplateManagerImpl_List_Empty(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + } + + ctx := context.Background() + spaceID := int64(100) + + mockRepo.EXPECT().List(ctx, int32(1), int32(10), gomock.Nil(), gomock.Nil(), spaceID). + Return([]*entity.ExptTemplate{}, int64(0), nil) + + templates, total, err := mgr.List(ctx, 1, 10, spaceID, nil, nil, &entity.Session{UserID: "u1"}) + assert.NoError(t, err) + assert.Equal(t, int64(0), total) + assert.Len(t, templates, 0) +} + +func TestExptTemplateManagerImpl_buildEvaluatorVersionRefsAndExtractIDs(t *testing.T) { + mgr := &ExptTemplateManagerImpl{} + + items := []*entity.EvaluatorIDVersionItem{ + {EvaluatorID: 1, EvaluatorVersionID: 101}, + {EvaluatorID: 2, EvaluatorVersionID: 102}, + // nil 和无效版本ID应该被忽略 + nil, + {EvaluatorID: 3, EvaluatorVersionID: 0}, + } + + refs := mgr.buildEvaluatorVersionRefs(items) + assert.Len(t, refs, 2) + assert.Equal(t, int64(1), refs[0].EvaluatorID) + assert.Equal(t, int64(101), refs[0].EvaluatorVersionID) + + ids := mgr.extractEvaluatorVersionIDs(items) + assert.ElementsMatch(t, []int64{101, 102}, ids) +} + +func TestExptTemplateManagerImpl_packTemplateTupleID(t *testing.T) { + mgr := &ExptTemplateManagerImpl{} + + template := &entity.ExptTemplate{ + TripleConfig: &entity.ExptTemplateTuple{ + EvalSetID: 10, + EvalSetVersionID: 20, + TargetID: 30, + TargetVersionID: 40, + EvaluatorVersionIds: []int64{ + 101, 102, + }, + }, + } + + tupleID := mgr.packTemplateTupleID(template) + if assert.NotNil(t, tupleID.VersionedEvalSetID) { + assert.Equal(t, int64(10), tupleID.VersionedEvalSetID.EvalSetID) + assert.Equal(t, int64(20), tupleID.VersionedEvalSetID.VersionID) + } + if assert.NotNil(t, tupleID.VersionedTargetID) { + assert.Equal(t, int64(30), tupleID.VersionedTargetID.TargetID) + assert.Equal(t, int64(40), tupleID.VersionedTargetID.VersionID) + } + assert.ElementsMatch(t, []int64{101, 102}, tupleID.EvaluatorVersionIDs) +} + +func TestExptTemplateManagerImpl_resolveAndFillEvaluatorVersionIDs_Normal(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockEvalSvc := svcmocks.NewMockEvaluatorService(ctrl) + + mgr := &ExptTemplateManagerImpl{ + evaluatorService: mockEvalSvc, + } + + ctx := context.Background() + spaceID := int64(100) + + // 一个需要解析版本ID的 EvaluatorIDVersionItem + items := []*entity.EvaluatorIDVersionItem{ + { + EvaluatorID: 1, + Version: "v1", + EvaluatorVersionID: 0, + }, + } + + // TemplateConf 中也有一条对应的 EvaluatorConf,需要被回填 + templateConf := &entity.ExptTemplateConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EvaluatorConf: []*entity.EvaluatorConf{ + { + EvaluatorID: 1, + Version: "v1", + EvaluatorVersionID: 0, + }, + }, + }, + }, + } + + // 模拟 evaluatorService 返回一个带版本ID的 Evaluator + ev := &entity.Evaluator{ + ID: 1, + EvaluatorType: entity.EvaluatorTypePrompt, + PromptEvaluatorVersion: &entity.PromptEvaluatorVersion{}, + } + ev.PromptEvaluatorVersion.SetID(101) + ev.PromptEvaluatorVersion.SetVersion("v1") + + normalPairs := [][2]interface{}{ + {int64(1), "v1"}, + } + + mockEvalSvc.EXPECT(). + BatchGetEvaluatorByIDAndVersion(ctx, normalPairs). + Return([]*entity.Evaluator{ev}, nil) + + err := mgr.resolveAndFillEvaluatorVersionIDs(ctx, spaceID, templateConf, items) + assert.NoError(t, err) + + // EvaluatorIDVersionItem 被回填 + assert.Equal(t, int64(101), items[0].EvaluatorVersionID) + // TemplateConf 中的 EvaluatorConf 也被回填 + if assert.NotNil(t, templateConf.ConnectorConf.EvaluatorsConf) && + assert.Len(t, templateConf.ConnectorConf.EvaluatorsConf.EvaluatorConf, 1) { + assert.Equal(t, int64(101), templateConf.ConnectorConf.EvaluatorsConf.EvaluatorConf[0].EvaluatorVersionID) + } +} + +// TestExptTemplateManagerImpl_MGet_NoWriteFlag 测试 MGet 方法在没有写标志时的行为(181-194行) +func TestExptTemplateManagerImpl_MGet_NoWriteFlag(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + mockEvalSvc := svcmocks.NewMockEvaluatorService(ctrl) + mockTargetSvc := svcmocks.NewMockIEvalTargetService(ctrl) + mockEvalSetSvc := svcmocks.NewMockIEvaluationSetService(ctrl) + mockEvalSetVerSvc := svcmocks.NewMockEvaluationSetVersionService(ctrl) + mockLWT := lwtmocks.NewMockILatestWriteTracker(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + evaluatorService: mockEvalSvc, + evalTargetService: mockTargetSvc, + evaluationSetService: mockEvalSetSvc, + evaluationSetVersionService: mockEvalSetVerSvc, + lwt: mockLWT, + } + + ctx := context.Background() + spaceID := int64(100) + ids := []int64{1} + session := &entity.Session{UserID: "u1"} + + // 写标志为 false,不设置 writeDB 上下文 + mockLWT.EXPECT().CheckWriteFlagByID(ctx, platestwrite.ResourceTypeExptTemplate, int64(1)).Return(false) + mockRepo.EXPECT().MGetByID(ctx, ids, spaceID).Return([]*entity.ExptTemplate{ + { + Meta: &entity.ExptTemplateMeta{ + ID: 1, + WorkspaceID: spaceID, + Name: "tpl", + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvalSetID: 10, + EvalSetVersionID: 20, + }, + }, + }, nil) + // mgetExptTupleByID 相关依赖 + mockEvalSetVerSvc.EXPECT().BatchGetEvaluationSetVersions(gomock.Any(), gptr.Of(spaceID), gomock.Any(), gptr.Of(false)).Return(nil, nil).AnyTimes() + mockEvalSetSvc.EXPECT().BatchGetEvaluationSets(gomock.Any(), gptr.Of(spaceID), gomock.Any(), gptr.Of(false)).Return(nil, nil).AnyTimes() + mockTargetSvc.EXPECT().BatchGetEvalTargetVersion(gomock.Any(), spaceID, gomock.Any(), true).Return(nil, nil).AnyTimes() + mockEvalSvc.EXPECT().BatchGetEvaluatorVersion(gomock.Any(), nil, gomock.Any(), true).Return(nil, nil).AnyTimes() + + got, err := mgr.MGet(ctx, ids, spaceID, session) + assert.NoError(t, err) + assert.Len(t, got, 1) + assert.Equal(t, int64(1), got[0].GetID()) +} + +// TestExptTemplateManagerImpl_MGet_MultipleIDs 测试 MGet 方法在多个ID时不检查写标志(181-194行) +func TestExptTemplateManagerImpl_MGet_MultipleIDs(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + mockEvalSvc := svcmocks.NewMockEvaluatorService(ctrl) + mockTargetSvc := svcmocks.NewMockIEvalTargetService(ctrl) + mockEvalSetSvc := svcmocks.NewMockIEvaluationSetService(ctrl) + mockEvalSetVerSvc := svcmocks.NewMockEvaluationSetVersionService(ctrl) + mockLWT := lwtmocks.NewMockILatestWriteTracker(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + evaluatorService: mockEvalSvc, + evalTargetService: mockTargetSvc, + evaluationSetService: mockEvalSetSvc, + evaluationSetVersionService: mockEvalSetVerSvc, + lwt: mockLWT, + } + + ctx := context.Background() + spaceID := int64(100) + ids := []int64{1, 2} + session := &entity.Session{UserID: "u1"} + + // 多个ID时不检查写标志,直接调用 repo.MGetByID + mockRepo.EXPECT().MGetByID(ctx, ids, spaceID).Return([]*entity.ExptTemplate{ + { + Meta: &entity.ExptTemplateMeta{ + ID: 1, + WorkspaceID: spaceID, + Name: "tpl1", + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvalSetID: 10, + EvalSetVersionID: 20, + }, + }, + { + Meta: &entity.ExptTemplateMeta{ + ID: 2, + WorkspaceID: spaceID, + Name: "tpl2", + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvalSetID: 10, + EvalSetVersionID: 20, + }, + }, + }, nil) + // mgetExptTupleByID 相关依赖 + mockEvalSetVerSvc.EXPECT().BatchGetEvaluationSetVersions(gomock.Any(), gptr.Of(spaceID), gomock.Any(), gptr.Of(false)).Return(nil, nil).AnyTimes() + mockEvalSetSvc.EXPECT().BatchGetEvaluationSets(gomock.Any(), gptr.Of(spaceID), gomock.Any(), gptr.Of(false)).Return(nil, nil).AnyTimes() + mockTargetSvc.EXPECT().BatchGetEvalTargetVersion(gomock.Any(), spaceID, gomock.Any(), true).Return(nil, nil).AnyTimes() + mockEvalSvc.EXPECT().BatchGetEvaluatorVersion(gomock.Any(), nil, gomock.Any(), true).Return(nil, nil).AnyTimes() + + got, err := mgr.MGet(ctx, ids, spaceID, session) + assert.NoError(t, err) + assert.Len(t, got, 2) + assert.Equal(t, int64(1), got[0].GetID()) + assert.Equal(t, int64(2), got[1].GetID()) +} + +// TestExptTemplateManagerImpl_Update_NameCheck 测试 Update 方法中名称检查的逻辑(216-242行,实际是221-242行) +func TestExptTemplateManagerImpl_Update_NameCheck(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + mockEvalSvc := svcmocks.NewMockEvaluatorService(ctrl) + mockTargetSvc := svcmocks.NewMockIEvalTargetService(ctrl) + mockEvalSetSvc := svcmocks.NewMockIEvaluationSetService(ctrl) + mockEvalSetVerSvc := svcmocks.NewMockEvaluationSetVersionService(ctrl) + mockLWT := lwtmocks.NewMockILatestWriteTracker(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + evaluatorService: mockEvalSvc, + evalTargetService: mockTargetSvc, + evaluationSetService: mockEvalSetSvc, + evaluationSetVersionService: mockEvalSetVerSvc, + lwt: mockLWT, + } + + ctx := context.Background() + spaceID := int64(100) + templateID := int64(1) + session := &entity.Session{UserID: "u1"} + + t.Run("名称已存在,更新失败", func(t *testing.T) { + existing := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + Name: "tpl-old", + }, + } + + param := &entity.UpdateExptTemplateParam{ + TemplateID: templateID, + SpaceID: spaceID, + Name: "tpl-new", + } + + mockRepo.EXPECT().GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)).Return(existing, nil) + mockRepo.EXPECT().GetByName(ctx, "tpl-new", spaceID).Return(nil, true, nil) + + _, err := mgr.Update(ctx, param, session) + assert.Error(t, err) + code, _, ok := errno.ParseStatusError(err) + assert.True(t, ok) + assert.Equal(t, errno.ExperimentNameExistedCode, int(code)) + }) + + t.Run("名称检查时发生错误", func(t *testing.T) { + existing := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + Name: "tpl-old", + }, + } + + param := &entity.UpdateExptTemplateParam{ + TemplateID: templateID, + SpaceID: spaceID, + Name: "tpl-new", + } + + mockRepo.EXPECT().GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)).Return(existing, nil) + // 当 GetByName 返回错误时,CheckName 返回 (false, err) + // Update 方法先检查 !pass,所以会返回名称已存在的错误,而不是原始错误 + // 这是当前实现的行为:先检查 !pass,再检查 err + mockRepo.EXPECT().GetByName(ctx, "tpl-new", spaceID).Return(nil, false, errors.New("db error")) + + _, err := mgr.Update(ctx, param, session) + assert.Error(t, err) + // 当前实现中,当 GetByName 返回错误时,CheckName 返回 (false, err) + // Update 方法先检查 !pass,所以会返回名称已存在的错误 + code, _, ok := errno.ParseStatusError(err) + assert.True(t, ok) + assert.Equal(t, errno.ExperimentNameExistedCode, int(code)) + }) + + t.Run("名称未改变,跳过检查", func(t *testing.T) { + existing := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + Name: "tpl-same", + ExptType: entity.ExptType_Offline, + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvalSetID: 10, + EvalSetVersionID: 11, + TargetID: 20, + TargetVersionID: 21, + TargetType: entity.EvalTargetTypeLoopPrompt, + }, + } + + param := &entity.UpdateExptTemplateParam{ + TemplateID: templateID, + SpaceID: spaceID, + Name: "tpl-same", // 名称相同,不检查 + } + + mockRepo.EXPECT().GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)).Return(existing, nil) + // 名称相同,不会调用 GetByName + // resolveAndFillEvaluatorVersionIDs 需要 mock + mockEvalSvc.EXPECT().BatchGetEvaluatorByIDAndVersion(gomock.Any(), gomock.Any()).Return(nil, nil).AnyTimes() + // UpdateWithRefs + mockRepo.EXPECT().UpdateWithRefs(gomock.Any(), gomock.Any(), gomock.Any()).Return(nil) + // GetByID 返回更新后的模板 + updatedTemplate := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + Name: "tpl-same", + ExptType: entity.ExptType_Offline, + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvalSetID: 10, + EvalSetVersionID: 11, + TargetID: 20, + TargetVersionID: 21, + TargetType: entity.EvalTargetTypeLoopPrompt, + }, + } + mockRepo.EXPECT().GetByID(gomock.Any(), templateID, gomock.AssignableToTypeOf(&spaceID)).Return(updatedTemplate, nil) + // mgetExptTupleByID 相关依赖 + mockEvalSetVerSvc.EXPECT().BatchGetEvaluationSetVersions(gomock.Any(), gptr.Of(spaceID), gomock.Any(), gptr.Of(false)).Return(nil, nil).AnyTimes() + mockEvalSetSvc.EXPECT().BatchGetEvaluationSets(gomock.Any(), gptr.Of(spaceID), gomock.Any(), gptr.Of(false)).Return(nil, nil).AnyTimes() + mockTargetSvc.EXPECT().BatchGetEvalTargetVersion(gomock.Any(), spaceID, gomock.Any(), true).Return(nil, nil).AnyTimes() + mockEvalSvc.EXPECT().BatchGetEvaluatorVersion(gomock.Any(), nil, gomock.Any(), true).Return(nil, nil).AnyTimes() + + _, err := mgr.Update(ctx, param, session) + assert.NoError(t, err) + }) + + t.Run("名称为空,跳过检查", func(t *testing.T) { + existing := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + Name: "tpl-old", + ExptType: entity.ExptType_Offline, + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvalSetID: 10, + EvalSetVersionID: 11, + TargetID: 20, + TargetVersionID: 21, + TargetType: entity.EvalTargetTypeLoopPrompt, + }, + } + + param := &entity.UpdateExptTemplateParam{ + TemplateID: templateID, + SpaceID: spaceID, + Name: "", // 名称为空,不检查 + } + + mockRepo.EXPECT().GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)).Return(existing, nil) + // 名称为空,不会调用 GetByName + // resolveAndFillEvaluatorVersionIDs 需要 mock + mockEvalSvc.EXPECT().BatchGetEvaluatorByIDAndVersion(gomock.Any(), gomock.Any()).Return(nil, nil).AnyTimes() + // UpdateWithRefs + mockRepo.EXPECT().UpdateWithRefs(gomock.Any(), gomock.Any(), gomock.Any()).Return(nil) + // GetByID 返回更新后的模板(名称保持为 "tpl-old") + updatedTemplate := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + Name: "tpl-old", // 名称为空时,保持原有名称 + ExptType: entity.ExptType_Offline, + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvalSetID: 10, + EvalSetVersionID: 11, + TargetID: 20, + TargetVersionID: 21, + TargetType: entity.EvalTargetTypeLoopPrompt, + }, + } + mockRepo.EXPECT().GetByID(gomock.Any(), templateID, gomock.AssignableToTypeOf(&spaceID)).Return(updatedTemplate, nil) + // mgetExptTupleByID 相关依赖 + mockEvalSetVerSvc.EXPECT().BatchGetEvaluationSetVersions(gomock.Any(), gptr.Of(spaceID), gomock.Any(), gptr.Of(false)).Return(nil, nil).AnyTimes() + mockEvalSetSvc.EXPECT().BatchGetEvaluationSets(gomock.Any(), gptr.Of(spaceID), gomock.Any(), gptr.Of(false)).Return(nil, nil).AnyTimes() + mockTargetSvc.EXPECT().BatchGetEvalTargetVersion(gomock.Any(), spaceID, gomock.Any(), true).Return(nil, nil).AnyTimes() + mockEvalSvc.EXPECT().BatchGetEvaluatorVersion(gomock.Any(), nil, gomock.Any(), true).Return(nil, nil).AnyTimes() + + _, err := mgr.Update(ctx, param, session) + assert.NoError(t, err) + }) +} + +// TestExptTemplateManagerImpl_Get 测试 Get 方法 (171-181行) +func TestExptTemplateManagerImpl_Get(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + mockEvalSvc := svcmocks.NewMockEvaluatorService(ctrl) + mockTargetSvc := svcmocks.NewMockIEvalTargetService(ctrl) + mockEvalSetSvc := svcmocks.NewMockIEvaluationSetService(ctrl) + mockEvalSetVerSvc := svcmocks.NewMockEvaluationSetVersionService(ctrl) + mockLWT := lwtmocks.NewMockILatestWriteTracker(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + evaluatorService: mockEvalSvc, + evalTargetService: mockTargetSvc, + evaluationSetService: mockEvalSetSvc, + evaluationSetVersionService: mockEvalSetVerSvc, + lwt: mockLWT, + } + + ctx := context.Background() + templateID := int64(1) + spaceID := int64(100) + session := &entity.Session{UserID: "u1"} + + t.Run("MGet返回空列表,返回错误", func(t *testing.T) { + mockLWT.EXPECT().CheckWriteFlagByID(ctx, platestwrite.ResourceTypeExptTemplate, templateID).Return(false) + mockRepo.EXPECT().MGetByID(ctx, []int64{templateID}, spaceID).Return([]*entity.ExptTemplate{}, nil) + // mgetExptTupleByID 相关依赖 + mockEvalSetVerSvc.EXPECT().BatchGetEvaluationSetVersions(gomock.Any(), gptr.Of(spaceID), gomock.Any(), gptr.Of(false)).Return(nil, nil).AnyTimes() + mockEvalSetSvc.EXPECT().BatchGetEvaluationSets(gomock.Any(), gptr.Of(spaceID), gomock.Any(), gptr.Of(false)).Return(nil, nil).AnyTimes() + mockTargetSvc.EXPECT().BatchGetEvalTargetVersion(gomock.Any(), spaceID, gomock.Any(), true).Return(nil, nil).AnyTimes() + mockEvalSvc.EXPECT().BatchGetEvaluatorVersion(gomock.Any(), nil, gomock.Any(), true).Return(nil, nil).AnyTimes() + + _, err := mgr.Get(ctx, templateID, spaceID, session) + assert.Error(t, err) + code, _, ok := errno.ParseStatusError(err) + assert.True(t, ok) + assert.Equal(t, errno.ResourceNotFoundCode, int(code)) + }) + + t.Run("MGet返回结果,返回第一个元素", func(t *testing.T) { + template := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + Name: "tpl1", + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvalSetID: 10, + EvalSetVersionID: 11, + }, + } + mockLWT.EXPECT().CheckWriteFlagByID(ctx, platestwrite.ResourceTypeExptTemplate, templateID).Return(false) + mockRepo.EXPECT().MGetByID(ctx, []int64{templateID}, spaceID).Return([]*entity.ExptTemplate{template}, nil) + // mgetExptTupleByID 相关依赖 + mockEvalSetVerSvc.EXPECT().BatchGetEvaluationSetVersions(gomock.Any(), gptr.Of(spaceID), gomock.Any(), gptr.Of(false)).Return(nil, nil).AnyTimes() + mockEvalSetSvc.EXPECT().BatchGetEvaluationSets(gomock.Any(), gptr.Of(spaceID), gomock.Any(), gptr.Of(false)).Return(nil, nil).AnyTimes() + mockTargetSvc.EXPECT().BatchGetEvalTargetVersion(gomock.Any(), spaceID, gomock.Any(), true).Return(nil, nil).AnyTimes() + mockEvalSvc.EXPECT().BatchGetEvaluatorVersion(gomock.Any(), nil, gomock.Any(), true).Return(nil, nil).AnyTimes() + + got, err := mgr.Get(ctx, templateID, spaceID, session) + assert.NoError(t, err) + assert.NotNil(t, got) + assert.Equal(t, templateID, got.GetID()) + }) +} + +// TestExptTemplateManagerImpl_Update_WithCustomEvalTarget 测试 Update 方法中 CustomEvalTarget 选项 (284-290行) +func TestExptTemplateManagerImpl_Update_WithCustomEvalTarget(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + mockEvalSvc := svcmocks.NewMockEvaluatorService(ctrl) + mockTargetSvc := svcmocks.NewMockIEvalTargetService(ctrl) + mockEvalSetSvc := svcmocks.NewMockIEvaluationSetService(ctrl) + mockEvalSetVerSvc := svcmocks.NewMockEvaluationSetVersionService(ctrl) + mockLWT := lwtmocks.NewMockILatestWriteTracker(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + evaluatorService: mockEvalSvc, + evalTargetService: mockTargetSvc, + evaluationSetService: mockEvalSetSvc, + evaluationSetVersionService: mockEvalSetVerSvc, + lwt: mockLWT, + } + + ctx := context.Background() + spaceID := int64(100) + templateID := int64(1) + session := &entity.Session{UserID: "u1"} + + existing := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + Name: "tpl-old", + ExptType: entity.ExptType_Offline, + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvalSetID: 10, + EvalSetVersionID: 11, + TargetID: 20, + TargetVersionID: 21, + TargetType: entity.EvalTargetTypeLoopPrompt, + }, + } + + param := &entity.UpdateExptTemplateParam{ + TemplateID: templateID, + SpaceID: spaceID, + CreateEvalTargetParam: &entity.CreateEvalTargetParam{ + SourceTargetID: gptr.Of("source-1"), + SourceTargetVersion: gptr.Of("v1"), + EvalTargetType: gptr.Of(entity.EvalTargetTypeCustomRPCServer), + CustomEvalTarget: &entity.CustomEvalTarget{ + ID: gptr.Of("custom-1"), + Name: gptr.Of("custom-name"), + AvatarURL: gptr.Of("http://avatar.com"), + Ext: map[string]string{"key": "value"}, + }, + }, + } + + // 获取现有模板 + mockRepo.EXPECT().GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)).Return(existing, nil) + // 获取现有 Target 以校验 SourceTargetID + mockTargetSvc.EXPECT().GetEvalTarget(ctx, int64(20)).Return(&entity.EvalTarget{ + ID: 20, + SourceTargetID: "source-1", + }, nil) + // 创建新的评测对象版本,验证 CustomEvalTarget 选项被传递 + mockTargetSvc.EXPECT().CreateEvalTarget( + ctx, + spaceID, + "source-1", + "v1", + entity.EvalTargetTypeCustomRPCServer, + gomock.Any(), // 验证 opts 中包含 CustomEvalTarget + ).DoAndReturn(func(ctx context.Context, spaceID int64, sourceTargetID, sourceTargetVersion string, targetType entity.EvalTargetType, opts ...entity.Option) (int64, int64, error) { + // 验证 opts 中包含 CustomEvalTarget(通过调用验证) + return 30, 31, nil + }) + // resolveAndFillEvaluatorVersionIDs + mockEvalSvc.EXPECT().BatchGetEvaluatorByIDAndVersion(gomock.Any(), gomock.Any()).Return(nil, nil).AnyTimes() + // UpdateWithRefs + mockRepo.EXPECT().UpdateWithRefs(gomock.Any(), gomock.Any(), gomock.Any()).Return(nil) + // GetByID 返回更新后的模板 + updatedTemplate := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + Name: "tpl-old", + ExptType: entity.ExptType_Offline, + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvalSetID: 10, + EvalSetVersionID: 11, + TargetID: 30, + TargetVersionID: 31, + TargetType: entity.EvalTargetTypeCustomRPCServer, + }, + } + mockRepo.EXPECT().GetByID(gomock.Any(), templateID, gomock.AssignableToTypeOf(&spaceID)).Return(updatedTemplate, nil) + // mgetExptTupleByID 相关依赖 + mockEvalSetVerSvc.EXPECT().BatchGetEvaluationSetVersions(gomock.Any(), gptr.Of(spaceID), gomock.Any(), gptr.Of(false)).Return(nil, nil).AnyTimes() + mockEvalSetSvc.EXPECT().BatchGetEvaluationSets(gomock.Any(), gptr.Of(spaceID), gomock.Any(), gptr.Of(false)).Return(nil, nil).AnyTimes() + mockTargetSvc.EXPECT().BatchGetEvalTargetVersion(gomock.Any(), spaceID, gomock.Any(), true).Return(nil, nil).AnyTimes() + mockEvalSvc.EXPECT().BatchGetEvaluatorVersion(gomock.Any(), nil, gomock.Any(), true).Return(nil, nil).AnyTimes() + + _, err := mgr.Update(ctx, param, session) + assert.NoError(t, err) +} + +// TestExptTemplateManagerImpl_Update_KeepExistingTarget 测试 Update 方法中保持原有 TargetID (298-305行) +func TestExptTemplateManagerImpl_Update_KeepExistingTarget(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + mockEvalSvc := svcmocks.NewMockEvaluatorService(ctrl) + mockTargetSvc := svcmocks.NewMockIEvalTargetService(ctrl) + mockEvalSetSvc := svcmocks.NewMockIEvaluationSetService(ctrl) + mockEvalSetVerSvc := svcmocks.NewMockEvaluationSetVersionService(ctrl) + mockLWT := lwtmocks.NewMockILatestWriteTracker(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + evaluatorService: mockEvalSvc, + evalTargetService: mockTargetSvc, + evaluationSetService: mockEvalSetSvc, + evaluationSetVersionService: mockEvalSetVerSvc, + lwt: mockLWT, + } + + ctx := context.Background() + spaceID := int64(100) + templateID := int64(1) + session := &entity.Session{UserID: "u1"} + + t.Run("TargetVersionID为0,使用原有的", func(t *testing.T) { + existing := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + Name: "tpl-old", + ExptType: entity.ExptType_Offline, + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvalSetID: 10, + EvalSetVersionID: 11, + TargetID: 20, + TargetVersionID: 21, + TargetType: entity.EvalTargetTypeLoopPrompt, + }, + } + + param := &entity.UpdateExptTemplateParam{ + TemplateID: templateID, + SpaceID: spaceID, + TargetVersionID: 0, // 为0,应该使用原有的 + } + + mockRepo.EXPECT().GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)).Return(existing, nil) + // resolveAndFillEvaluatorVersionIDs + mockEvalSvc.EXPECT().BatchGetEvaluatorByIDAndVersion(gomock.Any(), gomock.Any()).Return(nil, nil).AnyTimes() + // UpdateWithRefs - 验证 finalTargetVersionID 为 21(原有的) + mockRepo.EXPECT().UpdateWithRefs(gomock.Any(), gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, template *entity.ExptTemplate, refs []*entity.ExptTemplateEvaluatorRef) error { + assert.Equal(t, int64(20), template.GetTargetID()) + assert.Equal(t, int64(21), template.GetTargetVersionID()) + return nil + }) + // GetByID 返回更新后的模板 + updatedTemplate := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + Name: "tpl-old", + ExptType: entity.ExptType_Offline, + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvalSetID: 10, + EvalSetVersionID: 11, + TargetID: 20, + TargetVersionID: 21, + TargetType: entity.EvalTargetTypeLoopPrompt, + }, + } + mockRepo.EXPECT().GetByID(gomock.Any(), templateID, gomock.AssignableToTypeOf(&spaceID)).Return(updatedTemplate, nil) + // mgetExptTupleByID 相关依赖 + mockEvalSetVerSvc.EXPECT().BatchGetEvaluationSetVersions(gomock.Any(), gptr.Of(spaceID), gomock.Any(), gptr.Of(false)).Return(nil, nil).AnyTimes() + mockEvalSetSvc.EXPECT().BatchGetEvaluationSets(gomock.Any(), gptr.Of(spaceID), gomock.Any(), gptr.Of(false)).Return(nil, nil).AnyTimes() + mockTargetSvc.EXPECT().BatchGetEvalTargetVersion(gomock.Any(), spaceID, gomock.Any(), true).Return(nil, nil).AnyTimes() + mockEvalSvc.EXPECT().BatchGetEvaluatorVersion(gomock.Any(), nil, gomock.Any(), true).Return(nil, nil).AnyTimes() + + _, err := mgr.Update(ctx, param, session) + assert.NoError(t, err) + }) + + t.Run("TargetVersionID不为0,使用新的", func(t *testing.T) { + existing := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + Name: "tpl-old", + ExptType: entity.ExptType_Offline, + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvalSetID: 10, + EvalSetVersionID: 11, + TargetID: 20, + TargetVersionID: 21, + TargetType: entity.EvalTargetTypeLoopPrompt, + }, + } + + param := &entity.UpdateExptTemplateParam{ + TemplateID: templateID, + SpaceID: spaceID, + TargetVersionID: 22, // 不为0,使用新的 + } + + mockRepo.EXPECT().GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)).Return(existing, nil) + // resolveAndFillEvaluatorVersionIDs + mockEvalSvc.EXPECT().BatchGetEvaluatorByIDAndVersion(gomock.Any(), gomock.Any()).Return(nil, nil).AnyTimes() + // UpdateWithRefs - 验证 finalTargetVersionID 为 22(新的) + mockRepo.EXPECT().UpdateWithRefs(gomock.Any(), gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, template *entity.ExptTemplate, refs []*entity.ExptTemplateEvaluatorRef) error { + assert.Equal(t, int64(20), template.GetTargetID()) + assert.Equal(t, int64(22), template.GetTargetVersionID()) + return nil + }) + // GetByID 返回更新后的模板 + updatedTemplate := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + Name: "tpl-old", + ExptType: entity.ExptType_Offline, + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvalSetID: 10, + EvalSetVersionID: 11, + TargetID: 20, + TargetVersionID: 22, + TargetType: entity.EvalTargetTypeLoopPrompt, + }, + } + mockRepo.EXPECT().GetByID(gomock.Any(), templateID, gomock.AssignableToTypeOf(&spaceID)).Return(updatedTemplate, nil) + // mgetExptTupleByID 相关依赖 + mockEvalSetVerSvc.EXPECT().BatchGetEvaluationSetVersions(gomock.Any(), gptr.Of(spaceID), gomock.Any(), gptr.Of(false)).Return(nil, nil).AnyTimes() + mockEvalSetSvc.EXPECT().BatchGetEvaluationSets(gomock.Any(), gptr.Of(spaceID), gomock.Any(), gptr.Of(false)).Return(nil, nil).AnyTimes() + mockTargetSvc.EXPECT().BatchGetEvalTargetVersion(gomock.Any(), spaceID, gomock.Any(), true).Return(nil, nil).AnyTimes() + mockEvalSvc.EXPECT().BatchGetEvaluatorVersion(gomock.Any(), nil, gomock.Any(), true).Return(nil, nil).AnyTimes() + + _, err := mgr.Update(ctx, param, session) + assert.NoError(t, err) + }) +} + +// TestExptTemplateManagerImpl_UpdateMeta_NilTemplate 测试 UpdateMeta 方法中 existingTemplate 为 nil (426-443行) +func TestExptTemplateManagerImpl_UpdateMeta_NilTemplate(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + mockEvalSvc := svcmocks.NewMockEvaluatorService(ctrl) + mockTargetSvc := svcmocks.NewMockIEvalTargetService(ctrl) + mockEvalSetSvc := svcmocks.NewMockIEvaluationSetService(ctrl) + mockEvalSetVerSvc := svcmocks.NewMockEvaluationSetVersionService(ctrl) + mockLWT := lwtmocks.NewMockILatestWriteTracker(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + evaluatorService: mockEvalSvc, + evalTargetService: mockTargetSvc, + evaluationSetService: mockEvalSetSvc, + evaluationSetVersionService: mockEvalSetVerSvc, + lwt: mockLWT, + } + + ctx := context.Background() + spaceID := int64(100) + templateID := int64(1) + session := &entity.Session{UserID: "u1"} + + t.Run("existingTemplate为nil,返回错误", func(t *testing.T) { + param := &entity.UpdateExptTemplateMetaParam{ + TemplateID: templateID, + SpaceID: spaceID, + Name: "new-name", + } + + mockRepo.EXPECT().GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)).Return(nil, nil) + + _, err := mgr.UpdateMeta(ctx, param, session) + assert.Error(t, err) + code, _, ok := errno.ParseStatusError(err) + assert.True(t, ok) + assert.Equal(t, errno.ResourceNotFoundCode, int(code)) + }) + + t.Run("名称改变,检查名称", func(t *testing.T) { + existing := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + Name: "old-name", + }, + } + + param := &entity.UpdateExptTemplateMetaParam{ + TemplateID: templateID, + SpaceID: spaceID, + Name: "new-name", + } + + mockRepo.EXPECT().GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)).Return(existing, nil) + mockRepo.EXPECT().GetByName(ctx, "new-name", spaceID).Return(nil, true, nil) // 名称已存在 + + _, err := mgr.UpdateMeta(ctx, param, session) + assert.Error(t, err) + code, _, ok := errno.ParseStatusError(err) + assert.True(t, ok) + assert.Equal(t, errno.ExperimentNameExistedCode, int(code)) + }) +} + +// TestExptTemplateManagerImpl_resolveAndFillEvaluatorVersionIDs_BuiltinVisible 测试 resolveAndFillEvaluatorVersionIDs 中 BuiltinVisible 处理 (626-634行) +func TestExptTemplateManagerImpl_resolveAndFillEvaluatorVersionIDs_BuiltinVisible(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockEvalSvc := svcmocks.NewMockEvaluatorService(ctrl) + + mgr := &ExptTemplateManagerImpl{ + evaluatorService: mockEvalSvc, + } + + ctx := context.Background() + spaceID := int64(100) + + t.Run("TemplateConf中BuiltinVisible版本已存在,不重复添加", func(t *testing.T) { + templateConf := &entity.ExptTemplateConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EvaluatorConf: []*entity.EvaluatorConf{ + { + EvaluatorID: 1, + Version: "BuiltinVisible", + EvaluatorVersionID: 0, // 需要解析 + }, + }, + }, + }, + } + + evaluatorIDVersionItems := []*entity.EvaluatorIDVersionItem{ + { + EvaluatorID: 1, + Version: "BuiltinVisible", + EvaluatorVersionID: 0, // 需要解析 + }, + } + + // 第一次添加在 evaluatorIDVersionItems 处理中,第二次在 TemplateConf 处理中应该检测到已存在 + builtinEvaluator := &entity.Evaluator{ + ID: 1, + EvaluatorType: entity.EvaluatorTypePrompt, + PromptEvaluatorVersion: &entity.PromptEvaluatorVersion{ + ID: 101, + }, + } + mockEvalSvc.EXPECT().BatchGetBuiltinEvaluator(ctx, []int64{1}).Return([]*entity.Evaluator{builtinEvaluator}, nil) + + err := mgr.resolveAndFillEvaluatorVersionIDs(ctx, spaceID, templateConf, evaluatorIDVersionItems) + assert.NoError(t, err) + // 验证 EvaluatorVersionID 被填充 + assert.Equal(t, int64(101), evaluatorIDVersionItems[0].EvaluatorVersionID) + assert.Equal(t, int64(101), templateConf.ConnectorConf.EvaluatorsConf.EvaluatorConf[0].EvaluatorVersionID) + }) + + t.Run("TemplateConf中BuiltinVisible版本不存在,添加到builtinIDs", func(t *testing.T) { + templateConf := &entity.ExptTemplateConfiguration{ + ConnectorConf: entity.Connector{ + EvaluatorsConf: &entity.EvaluatorsConf{ + EvaluatorConf: []*entity.EvaluatorConf{ + { + EvaluatorID: 2, + Version: "BuiltinVisible", + EvaluatorVersionID: 0, // 需要解析 + }, + }, + }, + }, + } + + evaluatorIDVersionItems := []*entity.EvaluatorIDVersionItem{ + { + EvaluatorID: 1, + Version: "BuiltinVisible", + EvaluatorVersionID: 0, // 需要解析 + }, + } + + // 应该包含两个ID: 1 和 2 + builtinEvaluator1 := &entity.Evaluator{ + ID: 1, + EvaluatorType: entity.EvaluatorTypePrompt, + PromptEvaluatorVersion: &entity.PromptEvaluatorVersion{ + ID: 101, + }, + } + builtinEvaluator2 := &entity.Evaluator{ + ID: 2, + EvaluatorType: entity.EvaluatorTypePrompt, + PromptEvaluatorVersion: &entity.PromptEvaluatorVersion{ + ID: 102, + }, + } + mockEvalSvc.EXPECT().BatchGetBuiltinEvaluator(ctx, gomock.Any()).DoAndReturn(func(ctx context.Context, ids []int64) ([]*entity.Evaluator, error) { + // 验证包含两个ID + assert.Contains(t, ids, int64(1)) + assert.Contains(t, ids, int64(2)) + return []*entity.Evaluator{builtinEvaluator1, builtinEvaluator2}, nil + }) + + err := mgr.resolveAndFillEvaluatorVersionIDs(ctx, spaceID, templateConf, evaluatorIDVersionItems) + assert.NoError(t, err) + // 验证 EvaluatorVersionID 被填充 + assert.Equal(t, int64(101), evaluatorIDVersionItems[0].EvaluatorVersionID) + assert.Equal(t, int64(102), templateConf.ConnectorConf.EvaluatorsConf.EvaluatorConf[0].EvaluatorVersionID) + }) +} + +// TestExptTemplateManagerImpl_resolveAndFillEvaluatorVersionIDs_BatchGetBuiltin 测试批量获取内置评估器 (658-668行) +func TestExptTemplateManagerImpl_resolveAndFillEvaluatorVersionIDs_BatchGetBuiltin(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockEvalSvc := svcmocks.NewMockEvaluatorService(ctrl) + + mgr := &ExptTemplateManagerImpl{ + evaluatorService: mockEvalSvc, + } + + ctx := context.Background() + spaceID := int64(100) + + t.Run("批量获取内置评估器成功,填充id2Builtin", func(t *testing.T) { + evaluatorIDVersionItems := []*entity.EvaluatorIDVersionItem{ + { + EvaluatorID: 1, + Version: "BuiltinVisible", + EvaluatorVersionID: 0, + }, + { + EvaluatorID: 2, + Version: "BuiltinVisible", + EvaluatorVersionID: 0, + }, + } + + builtinEvaluator1 := &entity.Evaluator{ + ID: 1, + EvaluatorType: entity.EvaluatorTypePrompt, + PromptEvaluatorVersion: &entity.PromptEvaluatorVersion{ + ID: 101, + }, + } + builtinEvaluator2 := &entity.Evaluator{ + ID: 2, + EvaluatorType: entity.EvaluatorTypePrompt, + PromptEvaluatorVersion: &entity.PromptEvaluatorVersion{ + ID: 102, + }, + } + builtinEvaluatorNil := (*entity.Evaluator)(nil) // nil 应该被跳过 + + mockEvalSvc.EXPECT().BatchGetBuiltinEvaluator(ctx, []int64{1, 2}).Return([]*entity.Evaluator{ + builtinEvaluator1, + builtinEvaluatorNil, // nil 应该被跳过 + builtinEvaluator2, + }, nil) + + err := mgr.resolveAndFillEvaluatorVersionIDs(ctx, spaceID, nil, evaluatorIDVersionItems) + assert.NoError(t, err) + // 验证 EvaluatorVersionID 被填充 + assert.Equal(t, int64(101), evaluatorIDVersionItems[0].EvaluatorVersionID) + assert.Equal(t, int64(102), evaluatorIDVersionItems[1].EvaluatorVersionID) + }) + + t.Run("批量获取内置评估器失败,返回错误", func(t *testing.T) { + evaluatorIDVersionItems := []*entity.EvaluatorIDVersionItem{ + { + EvaluatorID: 1, + Version: "BuiltinVisible", + EvaluatorVersionID: 0, + }, + } + + mockEvalSvc.EXPECT().BatchGetBuiltinEvaluator(ctx, []int64{1}).Return(nil, errors.New("batch get builtin evaluator fail")) + + err := mgr.resolveAndFillEvaluatorVersionIDs(ctx, spaceID, nil, evaluatorIDVersionItems) + assert.Error(t, err) + assert.Contains(t, err.Error(), "batch get builtin evaluator fail") + }) +} + +// TestExptTemplateManagerImpl_resolveTargetForCreate_WithCustomEvalTarget 测试 resolveTargetForCreate 中 CustomEvalTarget 选项 (795-800行) +func TestExptTemplateManagerImpl_resolveTargetForCreate_WithCustomEvalTarget(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockTargetSvc := svcmocks.NewMockIEvalTargetService(ctrl) + + mgr := &ExptTemplateManagerImpl{ + evalTargetService: mockTargetSvc, + } + + ctx := context.Background() + spaceID := int64(100) + + param := &entity.CreateExptTemplateParam{ + SpaceID: spaceID, + CreateEvalTargetParam: &entity.CreateEvalTargetParam{ + SourceTargetID: gptr.Of("source-1"), + SourceTargetVersion: gptr.Of("v1"), + EvalTargetType: gptr.Of(entity.EvalTargetTypeCustomRPCServer), + CustomEvalTarget: &entity.CustomEvalTarget{ + ID: gptr.Of("custom-1"), + Name: gptr.Of("custom-name"), + AvatarURL: gptr.Of("http://avatar.com"), + Ext: map[string]string{"key": "value"}, + }, + }, + } + + // 验证 CreateEvalTarget 被调用,并且 opts 中包含 CustomEvalTarget + mockTargetSvc.EXPECT().CreateEvalTarget( + ctx, + spaceID, + "source-1", + "v1", + entity.EvalTargetTypeCustomRPCServer, + gomock.Any(), // 验证 opts 中包含 CustomEvalTarget + ).Return(int64(30), int64(31), nil) + + targetID, targetVersionID, targetType, err := mgr.resolveTargetForCreate(ctx, param) + assert.NoError(t, err) + assert.Equal(t, int64(30), targetID) + assert.Equal(t, int64(31), targetVersionID) + assert.Equal(t, entity.EvalTargetTypeCustomRPCServer, targetType) +} + +// TestExptTemplateManagerImpl_mgetExptTupleByID_DraftEvalSet 测试 mgetExptTupleByID 中草稿评估集处理 (1015-1031行) +func TestExptTemplateManagerImpl_mgetExptTupleByID_DraftEvalSet(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockEvalSetSvc := svcmocks.NewMockIEvaluationSetService(ctrl) + mockTargetSvc := svcmocks.NewMockIEvalTargetService(ctrl) + mockEvalSvc := svcmocks.NewMockEvaluatorService(ctrl) + mockEvalSetVerSvc := svcmocks.NewMockEvaluationSetVersionService(ctrl) + + mgr := &ExptTemplateManagerImpl{ + evaluationSetService: mockEvalSetSvc, + evalTargetService: mockTargetSvc, + evaluatorService: mockEvalSvc, + evaluationSetVersionService: mockEvalSetVerSvc, + } + + ctx := context.Background() + spaceID := int64(100) + + t.Run("草稿评估集(evalSetID == versionID),调用BatchGetEvaluationSets", func(t *testing.T) { + tupleIDs := []*entity.ExptTupleID{ + { + VersionedEvalSetID: &entity.VersionedEvalSetID{ + EvalSetID: 10, + VersionID: 10, // 草稿:evalSetID == versionID + }, + }, + } + + evalSet := &entity.EvaluationSet{ + ID: 10, + Name: "eval-set-1", + } + + // 草稿评估集应该调用 BatchGetEvaluationSets + mockEvalSetSvc.EXPECT().BatchGetEvaluationSets( + ctx, + gptr.Of(spaceID), + []int64{10}, + gptr.Of(false), + ).Return([]*entity.EvaluationSet{evalSet}, nil) + + // 其他依赖 + mockEvalSetVerSvc.EXPECT().BatchGetEvaluationSetVersions(gomock.Any(), gptr.Of(spaceID), gomock.Any(), gptr.Of(false)).Return(nil, nil).AnyTimes() + mockTargetSvc.EXPECT().BatchGetEvalTargetVersion(gomock.Any(), spaceID, gomock.Any(), true).Return(nil, nil).AnyTimes() + mockEvalSvc.EXPECT().BatchGetEvaluatorVersion(gomock.Any(), nil, gomock.Any(), true).Return(nil, nil).AnyTimes() + + tuples, err := mgr.mgetExptTupleByID(ctx, tupleIDs, spaceID, &entity.Session{UserID: "u1"}) + assert.NoError(t, err) + assert.Len(t, tuples, 1) + assert.NotNil(t, tuples[0].EvalSet) + assert.Equal(t, int64(10), tuples[0].EvalSet.ID) + }) + + t.Run("草稿评估集返回nil元素,跳过", func(t *testing.T) { + tupleIDs := []*entity.ExptTupleID{ + { + VersionedEvalSetID: &entity.VersionedEvalSetID{ + EvalSetID: 10, + VersionID: 10, // 草稿:evalSetID == versionID + }, + }, + } + + // 返回nil元素,应该被跳过 + mockEvalSetSvc.EXPECT().BatchGetEvaluationSets( + ctx, + gptr.Of(spaceID), + []int64{10}, + gptr.Of(false), + ).Return([]*entity.EvaluationSet{nil}, nil) + + // 其他依赖 + mockEvalSetVerSvc.EXPECT().BatchGetEvaluationSetVersions(gomock.Any(), gptr.Of(spaceID), gomock.Any(), gptr.Of(false)).Return(nil, nil).AnyTimes() + mockTargetSvc.EXPECT().BatchGetEvalTargetVersion(gomock.Any(), spaceID, gomock.Any(), true).Return(nil, nil).AnyTimes() + mockEvalSvc.EXPECT().BatchGetEvaluatorVersion(gomock.Any(), nil, gomock.Any(), true).Return(nil, nil).AnyTimes() + + tuples, err := mgr.mgetExptTupleByID(ctx, tupleIDs, spaceID, &entity.Session{UserID: "u1"}) + assert.NoError(t, err) + assert.Len(t, tuples, 1) + // nil元素被跳过,所以EvalSet应该为nil + assert.Nil(t, tuples[0].EvalSet) + }) + + t.Run("草稿评估集查询失败,返回错误", func(t *testing.T) { + tupleIDs := []*entity.ExptTupleID{ + { + VersionedEvalSetID: &entity.VersionedEvalSetID{ + EvalSetID: 10, + VersionID: 10, // 草稿:evalSetID == versionID + }, + }, + } + + // 查询失败 + mockEvalSetSvc.EXPECT().BatchGetEvaluationSets( + ctx, + gptr.Of(spaceID), + []int64{10}, + gptr.Of(false), + ).Return(nil, errors.New("batch get evaluation sets fail")) + + // 其他依赖 + mockEvalSetVerSvc.EXPECT().BatchGetEvaluationSetVersions(gomock.Any(), gptr.Of(spaceID), gomock.Any(), gptr.Of(false)).Return(nil, nil).AnyTimes() + mockTargetSvc.EXPECT().BatchGetEvalTargetVersion(gomock.Any(), spaceID, gomock.Any(), true).Return(nil, nil).AnyTimes() + mockEvalSvc.EXPECT().BatchGetEvaluatorVersion(gomock.Any(), nil, gomock.Any(), true).Return(nil, nil).AnyTimes() + + _, err := mgr.mgetExptTupleByID(ctx, tupleIDs, spaceID, &entity.Session{UserID: "u1"}) + assert.Error(t, err) + assert.Contains(t, err.Error(), "batch get evaluation sets fail") + }) +} + +// --- 以下为 Update / UpdateMeta / UpdateExptInfo 中 err 分支补充单测 --- + +// TestExptTemplateManagerImpl_Update_GetByIDError 覆盖 Update 中 GetByID 返回错误的分支 (221-225 行) +func TestExptTemplateManagerImpl_Update_GetByIDError(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + } + + ctx := context.Background() + spaceID := int64(100) + templateID := int64(1) + + param := &entity.UpdateExptTemplateParam{ + TemplateID: templateID, + SpaceID: spaceID, + } + + mockRepo.EXPECT(). + GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)). + Return(nil, errors.New("get by id fail")) + + got, err := mgr.Update(ctx, param, &entity.Session{UserID: "u1"}) + assert.Error(t, err) + assert.Nil(t, got) + assert.Contains(t, err.Error(), "get by id fail") +} + +// TestExptTemplateManagerImpl_Update_NotFound 覆盖 Update 中 existingTemplate 为 nil 的分支 (227-229 行) +func TestExptTemplateManagerImpl_Update_NotFound(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + } + + ctx := context.Background() + spaceID := int64(100) + templateID := int64(1) + + param := &entity.UpdateExptTemplateParam{ + TemplateID: templateID, + SpaceID: spaceID, + } + + mockRepo.EXPECT(). + GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)). + Return((*entity.ExptTemplate)(nil), nil) + + got, err := mgr.Update(ctx, param, &entity.Session{UserID: "u1"}) + assert.Error(t, err) + assert.Nil(t, got) + code, _, ok := errno.ParseStatusError(err) + assert.True(t, ok) + assert.Equal(t, errno.ResourceNotFoundCode, int(code)) +} + +// TestExptTemplateManagerImpl_Update_GetEvalTargetError 覆盖 Update 中 GetEvalTarget 失败分支 (265-267 行) +func TestExptTemplateManagerImpl_Update_GetEvalTargetError(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + mockTargetSvc := svcmocks.NewMockIEvalTargetService(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + evalTargetService: mockTargetSvc, + } + + ctx := context.Background() + spaceID := int64(100) + templateID := int64(1) + session := &entity.Session{UserID: "u1"} + + existing := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + Name: "tpl", + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvalSetID: 10, + EvalSetVersionID: 11, + TargetID: 20, + TargetVersionID: 21, + TargetType: entity.EvalTargetTypeLoopPrompt, + }, + } + + param := &entity.UpdateExptTemplateParam{ + TemplateID: templateID, + SpaceID: spaceID, + CreateEvalTargetParam: &entity.CreateEvalTargetParam{ + SourceTargetID: gptr.Of("src-id"), + SourceTargetVersion: gptr.Of("v1"), + EvalTargetType: gptr.Of(entity.EvalTargetTypeLoopPrompt), + }, + } + + mockRepo.EXPECT(). + GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)). + Return(existing, nil) + + // 不修改名称,跳过名称检查;TemplateConf / EvaluatorIDVersionItems 均为 nil,resolveAndFillEvaluatorVersionIDs 直接返回 + + // GetEvalTarget 返回错误 + mockTargetSvc.EXPECT(). + GetEvalTarget(ctx, int64(20)). + Return((*entity.EvalTarget)(nil), errors.New("get eval target fail")) + + got, err := mgr.Update(ctx, param, session) + assert.Error(t, err) + assert.Nil(t, got) + assert.Contains(t, err.Error(), "get existing eval target fail") +} + +// TestExptTemplateManagerImpl_Update_ExistingTargetNotFound 覆盖 existingTarget 为 nil 分支 (269-271 行) +func TestExptTemplateManagerImpl_Update_ExistingTargetNotFound(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + mockTargetSvc := svcmocks.NewMockIEvalTargetService(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + evalTargetService: mockTargetSvc, + } + + ctx := context.Background() + spaceID := int64(100) + templateID := int64(1) + session := &entity.Session{UserID: "u1"} + + existing := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + Name: "tpl", + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvalSetID: 10, + EvalSetVersionID: 11, + TargetID: 20, + TargetVersionID: 21, + TargetType: entity.EvalTargetTypeLoopPrompt, + }, + } + + param := &entity.UpdateExptTemplateParam{ + TemplateID: templateID, + SpaceID: spaceID, + CreateEvalTargetParam: &entity.CreateEvalTargetParam{ + SourceTargetID: gptr.Of("src-id"), + SourceTargetVersion: gptr.Of("v1"), + EvalTargetType: gptr.Of(entity.EvalTargetTypeLoopPrompt), + }, + } + + mockRepo.EXPECT(). + GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)). + Return(existing, nil) + + mockTargetSvc.EXPECT(). + GetEvalTarget(ctx, int64(20)). + Return((*entity.EvalTarget)(nil), nil) + + got, err := mgr.Update(ctx, param, session) + assert.Error(t, err) + assert.Nil(t, got) + code, _, ok := errno.ParseStatusError(err) + assert.True(t, ok) + assert.Equal(t, errno.ResourceNotFoundCode, int(code)) +} + +// TestExptTemplateManagerImpl_Update_SourceTargetIDMismatch 覆盖 SourceTargetID 不一致分支 (272-276 行) +func TestExptTemplateManagerImpl_Update_SourceTargetIDMismatch(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + mockTargetSvc := svcmocks.NewMockIEvalTargetService(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + evalTargetService: mockTargetSvc, + } + + ctx := context.Background() + spaceID := int64(100) + templateID := int64(1) + session := &entity.Session{UserID: "u1"} + + existing := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + Name: "tpl", + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvalSetID: 10, + EvalSetVersionID: 11, + TargetID: 20, + TargetVersionID: 21, + TargetType: entity.EvalTargetTypeLoopPrompt, + }, + } + + param := &entity.UpdateExptTemplateParam{ + TemplateID: templateID, + SpaceID: spaceID, + CreateEvalTargetParam: &entity.CreateEvalTargetParam{ + SourceTargetID: gptr.Of("new-src"), + SourceTargetVersion: gptr.Of("v1"), + EvalTargetType: gptr.Of(entity.EvalTargetTypeLoopPrompt), + }, + } + + mockRepo.EXPECT(). + GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)). + Return(existing, nil) + + mockTargetSvc.EXPECT(). + GetEvalTarget(ctx, int64(20)). + Return(&entity.EvalTarget{ + ID: 20, + SourceTargetID: "old-src", + }, nil) + + got, err := mgr.Update(ctx, param, session) + assert.Error(t, err) + assert.Nil(t, got) + code, _, ok := errno.ParseStatusError(err) + assert.True(t, ok) + assert.Equal(t, errno.CommonInvalidParamCode, int(code)) +} + +// TestExptTemplateManagerImpl_Update_CreateEvalTargetError 覆盖 CreateEvalTarget 失败分支 (291-293 行) +func TestExptTemplateManagerImpl_Update_CreateEvalTargetError(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + mockTargetSvc := svcmocks.NewMockIEvalTargetService(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + evalTargetService: mockTargetSvc, + } + + ctx := context.Background() + spaceID := int64(100) + templateID := int64(1) + session := &entity.Session{UserID: "u1"} + + existing := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + Name: "tpl", + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvalSetID: 10, + EvalSetVersionID: 11, + TargetID: 20, + TargetVersionID: 21, + TargetType: entity.EvalTargetTypeLoopPrompt, + }, + } + + param := &entity.UpdateExptTemplateParam{ + TemplateID: templateID, + SpaceID: spaceID, + CreateEvalTargetParam: &entity.CreateEvalTargetParam{ + SourceTargetID: gptr.Of("src-id"), + SourceTargetVersion: gptr.Of("v1"), + EvalTargetType: gptr.Of(entity.EvalTargetTypeLoopPrompt), + }, + } + + mockRepo.EXPECT(). + GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)). + Return(existing, nil) + + mockTargetSvc.EXPECT(). + GetEvalTarget(ctx, int64(20)). + Return(&entity.EvalTarget{ + ID: 20, + SourceTargetID: "src-id", + }, nil) + + mockTargetSvc.EXPECT(). + CreateEvalTarget(ctx, spaceID, "src-id", "v1", entity.EvalTargetTypeLoopPrompt, gomock.Any()). + Return(int64(0), int64(0), errors.New("create eval target fail")) + + got, err := mgr.Update(ctx, param, session) + assert.Error(t, err) + assert.Nil(t, got) + assert.Contains(t, err.Error(), "CreateEvalTarget failed") +} + +// TestExptTemplateManagerImpl_Update_UpdateWithRefsError 覆盖 UpdateWithRefs 失败分支 (386-387 行) +func TestExptTemplateManagerImpl_Update_UpdateWithRefsError(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + } + + ctx := context.Background() + spaceID := int64(100) + templateID := int64(1) + session := &entity.Session{UserID: "u1"} + + existing := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + Name: "tpl", + ExptType: entity.ExptType_Offline, + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvalSetID: 10, + EvalSetVersionID: 11, + TargetID: 20, + TargetVersionID: 21, + TargetType: entity.EvalTargetTypeLoopPrompt, + }, + } + + param := &entity.UpdateExptTemplateParam{ + TemplateID: templateID, + SpaceID: spaceID, + } + + mockRepo.EXPECT(). + GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)). + Return(existing, nil) + + mockRepo.EXPECT(). + UpdateWithRefs(gomock.Any(), gomock.Any(), gomock.Any()). + Return(errors.New("update with refs fail")) + + got, err := mgr.Update(ctx, param, session) + assert.Error(t, err) + assert.Nil(t, got) + assert.Contains(t, err.Error(), "update with refs fail") +} + +// TestExptTemplateManagerImpl_Update_GetByIDAfterUpdateError 覆盖更新后 GetByID 返回错误分支 (391-393 行) +func TestExptTemplateManagerImpl_Update_GetByIDAfterUpdateError(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + } + + ctx := context.Background() + spaceID := int64(100) + templateID := int64(1) + session := &entity.Session{UserID: "u1"} + + existing := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + Name: "tpl", + ExptType: entity.ExptType_Offline, + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvalSetID: 10, + EvalSetVersionID: 11, + TargetID: 20, + TargetVersionID: 21, + TargetType: entity.EvalTargetTypeLoopPrompt, + }, + } + + param := &entity.UpdateExptTemplateParam{ + TemplateID: templateID, + SpaceID: spaceID, + } + + mockRepo.EXPECT(). + GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)). + Return(existing, nil) + + mockRepo.EXPECT(). + UpdateWithRefs(gomock.Any(), gomock.Any(), gomock.Any()). + Return(nil) + + mockRepo.EXPECT(). + GetByID(gomock.Any(), templateID, gomock.AssignableToTypeOf(&spaceID)). + Return((*entity.ExptTemplate)(nil), errors.New("get after update fail")) + + got, err := mgr.Update(ctx, param, session) + assert.Error(t, err) + assert.Nil(t, got) + assert.Contains(t, err.Error(), "get after update fail") +} + +// TestExptTemplateManagerImpl_Update_GetByIDAfterUpdateNotFound 覆盖更新后模板为 nil 分支 (395-397 行) +func TestExptTemplateManagerImpl_Update_GetByIDAfterUpdateNotFound(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + } + + ctx := context.Background() + spaceID := int64(100) + templateID := int64(1) + session := &entity.Session{UserID: "u1"} + + existing := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + Name: "tpl", + ExptType: entity.ExptType_Offline, + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvalSetID: 10, + EvalSetVersionID: 11, + TargetID: 20, + TargetVersionID: 21, + TargetType: entity.EvalTargetTypeLoopPrompt, + }, + } + + param := &entity.UpdateExptTemplateParam{ + TemplateID: templateID, + SpaceID: spaceID, + } + + mockRepo.EXPECT(). + GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)). + Return(existing, nil) + + mockRepo.EXPECT(). + UpdateWithRefs(gomock.Any(), gomock.Any(), gomock.Any()). + Return(nil) + + mockRepo.EXPECT(). + GetByID(gomock.Any(), templateID, gomock.AssignableToTypeOf(&spaceID)). + Return((*entity.ExptTemplate)(nil), nil) + + got, err := mgr.Update(ctx, param, session) + assert.Error(t, err) + assert.Nil(t, got) + code, _, ok := errno.ParseStatusError(err) + assert.True(t, ok) + assert.Equal(t, errno.ResourceNotFoundCode, int(code)) +} + +// TestExptTemplateManagerImpl_UpdateMeta_GetByIDError 覆盖 UpdateMeta 中 GetByID 返回错误分支 (421-423 行) +func TestExptTemplateManagerImpl_UpdateMeta_GetByIDError(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + } + + ctx := context.Background() + spaceID := int64(100) + templateID := int64(1) + + param := &entity.UpdateExptTemplateMetaParam{ + TemplateID: templateID, + SpaceID: spaceID, + Name: "new-name", + } + + mockRepo.EXPECT(). + GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)). + Return((*entity.ExptTemplate)(nil), errors.New("get by id fail")) + + got, err := mgr.UpdateMeta(ctx, param, &entity.Session{UserID: "u1"}) + assert.Error(t, err) + assert.Nil(t, got) + assert.Contains(t, err.Error(), "get by id fail") +} + +// TestExptTemplateManagerImpl_UpdateMeta_UpdateFieldsError 覆盖 UpdateFields 返回错误分支 (460-463 行) +func TestExptTemplateManagerImpl_UpdateMeta_UpdateFieldsError(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + } + + ctx := context.Background() + spaceID := int64(100) + templateID := int64(1) + + existing := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + Name: "old-name", + }, + } + + param := &entity.UpdateExptTemplateMetaParam{ + TemplateID: templateID, + SpaceID: spaceID, + Name: "old-name", + Description: "new-desc", + } + + mockRepo.EXPECT(). + GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)). + Return(existing, nil) + + mockRepo.EXPECT(). + UpdateFields(ctx, templateID, gomock.AssignableToTypeOf(map[string]any{})). + Return(errors.New("update fields fail")) + + got, err := mgr.UpdateMeta(ctx, param, &entity.Session{UserID: "u1"}) + assert.Error(t, err) + assert.Nil(t, got) + assert.Contains(t, err.Error(), "update fields fail") +} + +// TestExptTemplateManagerImpl_UpdateMeta_GetByIDAfterUpdateError 覆盖 UpdateMeta 中第二次 GetByID 返回错误 (467-469 行) +func TestExptTemplateManagerImpl_UpdateMeta_GetByIDAfterUpdateError(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + } + + ctx := context.Background() + spaceID := int64(100) + templateID := int64(1) + + existing := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + Name: "old-name", + }, + } + + param := &entity.UpdateExptTemplateMetaParam{ + TemplateID: templateID, + SpaceID: spaceID, + Description: "new-desc", + } + + mockRepo.EXPECT(). + GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)). + Return(existing, nil) + + mockRepo.EXPECT(). + UpdateFields(ctx, templateID, gomock.AssignableToTypeOf(map[string]any{})). + Return(nil) + + mockRepo.EXPECT(). + GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)). + Return((*entity.ExptTemplate)(nil), errors.New("get after update fail")) + + got, err := mgr.UpdateMeta(ctx, param, &entity.Session{UserID: "u1"}) + assert.Error(t, err) + assert.Nil(t, got) + assert.Contains(t, err.Error(), "get after update fail") +} + +// TestExptTemplateManagerImpl_UpdateMeta_GetByIDAfterUpdateNotFound 覆盖 UpdateMeta 中 updatedTemplate 为 nil 分支 (471-472 行) +func TestExptTemplateManagerImpl_UpdateMeta_GetByIDAfterUpdateNotFound(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + } + + ctx := context.Background() + spaceID := int64(100) + templateID := int64(1) + + existing := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + Name: "old-name", + }, + } + + param := &entity.UpdateExptTemplateMetaParam{ + TemplateID: templateID, + SpaceID: spaceID, + Description: "new-desc", + } + + mockRepo.EXPECT(). + GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)). + Return(existing, nil) + + mockRepo.EXPECT(). + UpdateFields(ctx, templateID, gomock.AssignableToTypeOf(map[string]any{})). + Return(nil) + + mockRepo.EXPECT(). + GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)). + Return((*entity.ExptTemplate)(nil), nil) + + got, err := mgr.UpdateMeta(ctx, param, &entity.Session{UserID: "u1"}) + assert.Error(t, err) + assert.Nil(t, got) + code, _, ok := errno.ParseStatusError(err) + assert.True(t, ok) + assert.Equal(t, errno.ResourceNotFoundCode, int(code)) +} + +// TestExptTemplateManagerImpl_UpdateExptInfo_GetByIDError 覆盖 UpdateExptInfo 中 GetByID 返回错误分支 (491-493 行) +func TestExptTemplateManagerImpl_UpdateExptInfo_GetByIDError(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + } + + ctx := context.Background() + spaceID := int64(100) + templateID := int64(1) + + mockRepo.EXPECT(). + GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)). + Return((*entity.ExptTemplate)(nil), errors.New("get by id fail")) + + err := mgr.UpdateExptInfo(ctx, templateID, spaceID, 1, entity.ExptStatus_Processing, 1) + assert.Error(t, err) + assert.Contains(t, err.Error(), "get template fail") +} + +// TestExptTemplateManagerImpl_UpdateExptInfo_UpdateFieldsError 覆盖 UpdateExptInfo 中 UpdateFields 返回错误分支 (533-535 行) +func TestExptTemplateManagerImpl_UpdateExptInfo_UpdateFieldsError(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + mockRepo := repo_mocks.NewMockIExptTemplateRepo(ctrl) + + mgr := &ExptTemplateManagerImpl{ + templateRepo: mockRepo, + } + + ctx := context.Background() + spaceID := int64(100) + templateID := int64(1) + + existing := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: templateID, + WorkspaceID: spaceID, + }, + ExptInfo: &entity.ExptInfo{ + CreatedExptCount: 1, + LatestExptID: 10, + LatestExptStatus: entity.ExptStatus_Success, + }, + } + + mockRepo.EXPECT(). + GetByID(ctx, templateID, gomock.AssignableToTypeOf(&spaceID)). + Return(existing, nil) + + mockRepo.EXPECT(). + UpdateFields(ctx, templateID, gomock.AssignableToTypeOf(map[string]any{})). + Return(errors.New("update expt info fail")) + + err := mgr.UpdateExptInfo(ctx, templateID, spaceID, 2, entity.ExptStatus_Processing, 1) + assert.Error(t, err) + assert.Contains(t, err.Error(), "update ExptInfo fail") +} diff --git a/backend/modules/evaluation/domain/service/file_name b/backend/modules/evaluation/domain/service/file_name index 1b943dc61..46abf88e6 100644 --- a/backend/modules/evaluation/domain/service/file_name +++ b/backend/modules/evaluation/domain/service/file_name @@ -1 +1 @@ -ID,status,test_field,test_evaluator,test_evaluator_reason,test_tag,logID,targetTraceID +ID,status,test_field,test_evaluator,test_evaluator_reason,weightedScore,test_tag,logID,targetTraceID diff --git a/backend/modules/evaluation/domain/service/mocks/expt_result.go b/backend/modules/evaluation/domain/service/mocks/expt_result.go index 6b774d58c..812fb85ee 100644 --- a/backend/modules/evaluation/domain/service/mocks/expt_result.go +++ b/backend/modules/evaluation/domain/service/mocks/expt_result.go @@ -217,6 +217,20 @@ func (mr *MockExptResultServiceMockRecorder) UpsertExptTurnResultFilter(ctx, spa return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertExptTurnResultFilter", reflect.TypeOf((*MockExptResultService)(nil).UpsertExptTurnResultFilter), ctx, spaceID, exptID, itemID) } +// RecalculateWeightedScore mocks base method. +func (m *MockExptResultService) RecalculateWeightedScore(ctx context.Context, spaceID, exptID, itemID, turnID int64) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "RecalculateWeightedScore", ctx, spaceID, exptID, itemID, turnID) + ret0, _ := ret[0].(error) + return ret0 +} + +// RecalculateWeightedScore indicates an expected call of RecalculateWeightedScore. +func (mr *MockExptResultServiceMockRecorder) RecalculateWeightedScore(ctx, spaceID, exptID, itemID, turnID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RecalculateWeightedScore", reflect.TypeOf((*MockExptResultService)(nil).RecalculateWeightedScore), ctx, spaceID, exptID, itemID, turnID) +} + // MockExptAggrResultService is a mock of ExptAggrResultService interface. type MockExptAggrResultService struct { ctrl *gomock.Controller diff --git a/backend/modules/evaluation/domain/service/mocks/expt_template_manager.go b/backend/modules/evaluation/domain/service/mocks/expt_template_manager.go new file mode 100644 index 000000000..cf2363bc1 --- /dev/null +++ b/backend/modules/evaluation/domain/service/mocks/expt_template_manager.go @@ -0,0 +1,170 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/service (interfaces: IExptTemplateManager) + +// Package mocks is a generated GoMock package. +package mocks + +import ( + context "context" + reflect "reflect" + + entity "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/entity" + gomock "go.uber.org/mock/gomock" +) + +// MockIExptTemplateManager is a mock of IExptTemplateManager interface. +type MockIExptTemplateManager struct { + ctrl *gomock.Controller + recorder *MockIExptTemplateManagerMockRecorder +} + +// MockIExptTemplateManagerMockRecorder is the mock recorder for MockIExptTemplateManager. +type MockIExptTemplateManagerMockRecorder struct { + mock *MockIExptTemplateManager +} + +// NewMockIExptTemplateManager creates a new mock instance. +func NewMockIExptTemplateManager(ctrl *gomock.Controller) *MockIExptTemplateManager { + mock := &MockIExptTemplateManager{ctrl: ctrl} + mock.recorder = &MockIExptTemplateManagerMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockIExptTemplateManager) EXPECT() *MockIExptTemplateManagerMockRecorder { + return m.recorder +} + +// CheckName mocks base method. +func (m *MockIExptTemplateManager) CheckName(arg0 context.Context, arg1 string, arg2 int64, arg3 *entity.Session) (bool, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CheckName", arg0, arg1, arg2, arg3) + ret0, _ := ret[0].(bool) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CheckName indicates an expected call of CheckName. +func (mr *MockIExptTemplateManagerMockRecorder) CheckName(arg0, arg1, arg2, arg3 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CheckName", reflect.TypeOf((*MockIExptTemplateManager)(nil).CheckName), arg0, arg1, arg2, arg3) +} + +// Create mocks base method. +func (m *MockIExptTemplateManager) Create(arg0 context.Context, arg1 *entity.CreateExptTemplateParam, arg2 *entity.Session) (*entity.ExptTemplate, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Create", arg0, arg1, arg2) + ret0, _ := ret[0].(*entity.ExptTemplate) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// Create indicates an expected call of Create. +func (mr *MockIExptTemplateManagerMockRecorder) Create(arg0, arg1, arg2 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockIExptTemplateManager)(nil).Create), arg0, arg1, arg2) +} + +// Delete mocks base method. +func (m *MockIExptTemplateManager) Delete(arg0 context.Context, arg1, arg2 int64, arg3 *entity.Session) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Delete", arg0, arg1, arg2, arg3) + ret0, _ := ret[0].(error) + return ret0 +} + +// Delete indicates an expected call of Delete. +func (mr *MockIExptTemplateManagerMockRecorder) Delete(arg0, arg1, arg2, arg3 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockIExptTemplateManager)(nil).Delete), arg0, arg1, arg2, arg3) +} + +// Get mocks base method. +func (m *MockIExptTemplateManager) Get(arg0 context.Context, arg1, arg2 int64, arg3 *entity.Session) (*entity.ExptTemplate, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Get", arg0, arg1, arg2, arg3) + ret0, _ := ret[0].(*entity.ExptTemplate) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// Get indicates an expected call of Get. +func (mr *MockIExptTemplateManagerMockRecorder) Get(arg0, arg1, arg2, arg3 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Get", reflect.TypeOf((*MockIExptTemplateManager)(nil).Get), arg0, arg1, arg2, arg3) +} + +// List mocks base method. +func (m *MockIExptTemplateManager) List(arg0 context.Context, arg1, arg2 int32, arg3 int64, arg4 *entity.ExptTemplateListFilter, arg5 []*entity.OrderBy, arg6 *entity.Session) ([]*entity.ExptTemplate, int64, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "List", arg0, arg1, arg2, arg3, arg4, arg5, arg6) + ret0, _ := ret[0].([]*entity.ExptTemplate) + ret1, _ := ret[1].(int64) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// List indicates an expected call of List. +func (mr *MockIExptTemplateManagerMockRecorder) List(arg0, arg1, arg2, arg3, arg4, arg5, arg6 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "List", reflect.TypeOf((*MockIExptTemplateManager)(nil).List), arg0, arg1, arg2, arg3, arg4, arg5, arg6) +} + +// MGet mocks base method. +func (m *MockIExptTemplateManager) MGet(arg0 context.Context, arg1 []int64, arg2 int64, arg3 *entity.Session) ([]*entity.ExptTemplate, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "MGet", arg0, arg1, arg2, arg3) + ret0, _ := ret[0].([]*entity.ExptTemplate) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// MGet indicates an expected call of MGet. +func (mr *MockIExptTemplateManagerMockRecorder) MGet(arg0, arg1, arg2, arg3 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MGet", reflect.TypeOf((*MockIExptTemplateManager)(nil).MGet), arg0, arg1, arg2, arg3) +} + +// Update mocks base method. +func (m *MockIExptTemplateManager) Update(arg0 context.Context, arg1 *entity.UpdateExptTemplateParam, arg2 *entity.Session) (*entity.ExptTemplate, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Update", arg0, arg1, arg2) + ret0, _ := ret[0].(*entity.ExptTemplate) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// Update indicates an expected call of Update. +func (mr *MockIExptTemplateManagerMockRecorder) Update(arg0, arg1, arg2 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Update", reflect.TypeOf((*MockIExptTemplateManager)(nil).Update), arg0, arg1, arg2) +} + +// UpdateExptInfo mocks base method. +func (m *MockIExptTemplateManager) UpdateExptInfo(arg0 context.Context, arg1, arg2, arg3 int64, arg4 entity.ExptStatus, arg5 int64) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateExptInfo", arg0, arg1, arg2, arg3, arg4, arg5) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateExptInfo indicates an expected call of UpdateExptInfo. +func (mr *MockIExptTemplateManagerMockRecorder) UpdateExptInfo(arg0, arg1, arg2, arg3, arg4, arg5 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateExptInfo", reflect.TypeOf((*MockIExptTemplateManager)(nil).UpdateExptInfo), arg0, arg1, arg2, arg3, arg4, arg5) +} + +// UpdateMeta mocks base method. +func (m *MockIExptTemplateManager) UpdateMeta(arg0 context.Context, arg1 *entity.UpdateExptTemplateMetaParam, arg2 *entity.Session) (*entity.ExptTemplate, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateMeta", arg0, arg1, arg2) + ret0, _ := ret[0].(*entity.ExptTemplate) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateMeta indicates an expected call of UpdateMeta. +func (mr *MockIExptTemplateManagerMockRecorder) UpdateMeta(arg0, arg1, arg2 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateMeta", reflect.TypeOf((*MockIExptTemplateManager)(nil).UpdateMeta), arg0, arg1, arg2) +} diff --git a/backend/modules/evaluation/domain/service/wire.go b/backend/modules/evaluation/domain/service/wire.go index daedded65..44daf8ec3 100644 --- a/backend/modules/evaluation/domain/service/wire.go +++ b/backend/modules/evaluation/domain/service/wire.go @@ -33,6 +33,7 @@ var ExperimentDomainServiceSet = wire.NewSet( NewExptResultExportService, NewInsightAnalysisService, NewSchedulerModeFactory, + NewExptTemplateManager, NewEvaluationAnalysisService, // Repo Sets experimentrepo.ExperimentRepoSet, diff --git a/backend/modules/evaluation/infra/repo/experiment/ck/convertor/expt_turn_result_filter.go b/backend/modules/evaluation/infra/repo/experiment/ck/convertor/expt_turn_result_filter.go index 5656b0433..a2ecd22f2 100644 --- a/backend/modules/evaluation/infra/repo/experiment/ck/convertor/expt_turn_result_filter.go +++ b/backend/modules/evaluation/infra/repo/experiment/ck/convertor/expt_turn_result_filter.go @@ -6,6 +6,8 @@ package convertor import ( "strconv" + "github.com/bytedance/gg/gptr" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/entity" "github.com/coze-dev/coze-loop/backend/modules/evaluation/infra/repo/experiment/ck/gorm_gen/model" ) @@ -26,21 +28,22 @@ func ExptTurnResultFilterEntity2PO(filterEntity *entity.ExptTurnResultFilterEnti } exptTurnResultFilter := &model.ExptTurnResultFilter{ - SpaceID: strconv.FormatInt(filterEntity.SpaceID, 10), - ExptID: strconv.FormatInt(filterEntity.ExptID, 10), - ItemID: strconv.FormatInt(filterEntity.ItemID, 10), - ItemIdx: filterEntity.ItemIdx, - TurnID: strconv.FormatInt(filterEntity.TurnID, 10), - Status: int32(filterEntity.Status), - EvalTargetData: filterEntity.EvalTargetData, - EvaluatorScore: filterEntity.EvaluatorScore, - AnnotationFloat: filterEntity.AnnotationFloat, - AnnotationBool: annotationBool, - AnnotationString: filterEntity.AnnotationString, - EvalTargetMetrics: filterEntity.EvalTargetMetrics, - CreatedDate: filterEntity.CreatedDate, - EvalSetVersionID: strconv.FormatInt(filterEntity.EvalSetVersionID, 10), - UpdatedAt: filterEntity.UpdatedAt, + SpaceID: strconv.FormatInt(filterEntity.SpaceID, 10), + ExptID: strconv.FormatInt(filterEntity.ExptID, 10), + ItemID: strconv.FormatInt(filterEntity.ItemID, 10), + ItemIdx: filterEntity.ItemIdx, + TurnID: strconv.FormatInt(filterEntity.TurnID, 10), + Status: int32(filterEntity.Status), + EvalTargetData: filterEntity.EvalTargetData, + EvaluatorScore: filterEntity.EvaluatorScore, + EvaluatorWeightedScore: gptr.Indirect(filterEntity.EvaluatorWeightedScore), + AnnotationFloat: filterEntity.AnnotationFloat, + AnnotationBool: annotationBool, + AnnotationString: filterEntity.AnnotationString, + EvalTargetMetrics: filterEntity.EvalTargetMetrics, + CreatedDate: filterEntity.CreatedDate, + EvalSetVersionID: strconv.FormatInt(filterEntity.EvalSetVersionID, 10), + UpdatedAt: filterEntity.UpdatedAt, } if filterEntity.EvaluatorScoreCorrected { exptTurnResultFilter.EvaluatorScoreCorrected = 1 @@ -61,20 +64,21 @@ func ExptTurnResultFilterPO2Entity(filterPO *model.ExptTurnResultFilter) *entity } exptTurnResultFilterEntity := &entity.ExptTurnResultFilterEntity{ - SpaceID: ParseStringToInt64(filterPO.SpaceID), - ExptID: ParseStringToInt64(filterPO.ExptID), - ItemID: ParseStringToInt64(filterPO.ItemID), - ItemIdx: filterPO.ItemIdx, - TurnID: ParseStringToInt64(filterPO.TurnID), - Status: entity.ItemRunState(filterPO.Status), - EvalTargetData: filterPO.EvalTargetData, - EvaluatorScore: filterPO.EvaluatorScore, - AnnotationFloat: filterPO.AnnotationFloat, - AnnotationBool: annotationBool, - AnnotationString: filterPO.AnnotationString, - EvalTargetMetrics: filterPO.EvalTargetMetrics, - CreatedDate: filterPO.CreatedDate, - EvalSetVersionID: ParseStringToInt64(filterPO.EvalSetVersionID), + SpaceID: ParseStringToInt64(filterPO.SpaceID), + ExptID: ParseStringToInt64(filterPO.ExptID), + ItemID: ParseStringToInt64(filterPO.ItemID), + ItemIdx: filterPO.ItemIdx, + TurnID: ParseStringToInt64(filterPO.TurnID), + Status: entity.ItemRunState(filterPO.Status), + EvalTargetData: filterPO.EvalTargetData, + EvaluatorScore: filterPO.EvaluatorScore, + EvaluatorWeightedScore: gptr.Of(filterPO.EvaluatorWeightedScore), + AnnotationFloat: filterPO.AnnotationFloat, + AnnotationBool: annotationBool, + AnnotationString: filterPO.AnnotationString, + EvalTargetMetrics: filterPO.EvalTargetMetrics, + CreatedDate: filterPO.CreatedDate, + EvalSetVersionID: ParseStringToInt64(filterPO.EvalSetVersionID), } if filterPO.EvaluatorScoreCorrected > 0 { exptTurnResultFilterEntity.EvaluatorScoreCorrected = true diff --git a/backend/modules/evaluation/infra/repo/experiment/ck/expt_turn_result_filter.go b/backend/modules/evaluation/infra/repo/experiment/ck/expt_turn_result_filter.go index 2f84a3ebb..541b10849 100644 --- a/backend/modules/evaluation/infra/repo/experiment/ck/expt_turn_result_filter.go +++ b/backend/modules/evaluation/infra/repo/experiment/ck/expt_turn_result_filter.go @@ -43,12 +43,13 @@ type ItemSnapshotFilter struct { } type ExptTurnResultFilterMapCond struct { - EvalTargetDataFilters []*FieldFilter - EvaluatorScoreFilters []*FieldFilter - AnnotationFloatFilters []*FieldFilter - AnnotationBoolFilters []*FieldFilter - AnnotationStringFilters []*FieldFilter - EvalTargetMetricsFilters []*FieldFilter + EvalTargetDataFilters []*FieldFilter + EvaluatorScoreFilters []*FieldFilter + EvaluatorWeightedScoreFilter *FieldFilter + AnnotationFloatFilters []*FieldFilter + AnnotationBoolFilters []*FieldFilter + AnnotationStringFilters []*FieldFilter + EvalTargetMetricsFilters []*FieldFilter } type KeywordMapCond struct { @@ -284,6 +285,37 @@ func (d *exptTurnResultFilterDAOImpl) buildMapFieldConditions(cond *ExptTurnResu *args = append(*args, floatValue1, floatValue2) } } + // 处理加权得分查询条件 + if cond.MapCond.EvaluatorWeightedScoreFilter != nil { + f := cond.MapCond.EvaluatorWeightedScoreFilter + switch f.Op { + case "=": + floatValue, err := strconv.ParseFloat(fmt.Sprintf("%v", f.Values[0]), 64) + if err != nil { + logs.CtxError(context.Background(), "Parse float value failed: %v", err) + } else { + *whereSQL += fmt.Sprintf(" AND abs(etrf.evaluator_weighted_score - ?) < %g", floatEpsilon) + *args = append(*args, floatValue) + } + case ">", ">=", "<", "<=", "!=": + floatValue, err := strconv.ParseFloat(fmt.Sprintf("%v", f.Values[0]), 64) + if err != nil { + logs.CtxError(context.Background(), "Parse float value failed: %v", err) + } else { + *whereSQL += fmt.Sprintf(" AND etrf.evaluator_weighted_score %s ?", f.Op) + *args = append(*args, floatValue) + } + case "BETWEEN": + floatValue1, err1 := strconv.ParseFloat(fmt.Sprintf("%v", f.Values[0]), 64) + floatValue2, err2 := strconv.ParseFloat(fmt.Sprintf("%v", f.Values[1]), 64) + if err1 != nil || err2 != nil { + logs.CtxError(context.Background(), "Parse float value failed: %v, %v", err1, err2) + } else { + *whereSQL += " AND etrf.evaluator_weighted_score BETWEEN ? AND ?" + *args = append(*args, floatValue1, floatValue2) + } + } + } for _, f := range cond.MapCond.AnnotationFloatFilters { switch f.Op { case "=": @@ -573,6 +605,7 @@ func (d *exptTurnResultFilterDAOImpl) buildGetByExptIDItemIDsSQL(ctx context.Con "etrf.evaluator_score['key8'] as evaluator_score_key_8, " + "etrf.evaluator_score['key9'] as evaluator_score_key_9, " + "etrf.evaluator_score['key10'] as evaluator_score_key_10, " + + "etrf.evaluator_weighted_score, " + "etrf.evaluator_score_corrected " + "FROM " + getClickHouseDatabaseName() + ".expt_turn_result_filter" + " etrf " + "WHERE etrf.space_id = ? AND etrf.expt_id = ? AND etrf.created_date =?" diff --git a/backend/modules/evaluation/infra/repo/experiment/ck/gorm_gen/model/expt_turn_result_filter.gen.go b/backend/modules/evaluation/infra/repo/experiment/ck/gorm_gen/model/expt_turn_result_filter.gen.go index 829661572..da661911e 100644 --- a/backend/modules/evaluation/infra/repo/experiment/ck/gorm_gen/model/expt_turn_result_filter.gen.go +++ b/backend/modules/evaluation/infra/repo/experiment/ck/gorm_gen/model/expt_turn_result_filter.gen.go @@ -25,6 +25,7 @@ type ExptTurnResultFilter struct { AnnotationString map[string]string `gorm:"column:annotation_string;type:Map(String, String);not null" json:"annotation_string"` EvalTargetMetrics map[string]int64 `gorm:"column:eval_target_metrics;type:Map(String, Int64);not null" json:"eval_target_metrics"` EvaluatorScoreCorrected int32 `gorm:"column:evaluator_score_corrected;type:Int32;not null" json:"evaluator_score_corrected"` + EvaluatorWeightedScore float64 `gorm:"column:evaluator_weighted_score;type:Float64;not null" json:"evaluator_weighted_score"` EvalSetVersionID string `gorm:"column:eval_set_version_id;type:String;not null" json:"eval_set_version_id"` CreatedDate time.Time `gorm:"column:created_date;type:Date;not null" json:"created_date"` UpdatedAt time.Time `gorm:"column:updated_at;type:DateTime;not null" json:"updated_at"` diff --git a/backend/modules/evaluation/infra/repo/experiment/ck/model/expt_turn_result_filter.go b/backend/modules/evaluation/infra/repo/experiment/ck/model/expt_turn_result_filter.go index 645b7071a..677aae73f 100644 --- a/backend/modules/evaluation/infra/repo/experiment/ck/model/expt_turn_result_filter.go +++ b/backend/modules/evaluation/infra/repo/experiment/ck/model/expt_turn_result_filter.go @@ -23,6 +23,7 @@ type ExptTurnResultFilter struct { EvaluatorScoreKey8 *float64 `gorm:"column:evaluator_score_key_8"` EvaluatorScoreKey9 *float64 `gorm:"column:evaluator_score_key_9"` EvaluatorScoreKey10 *float64 `gorm:"column:evaluator_score_key_10"` + EvaluatorWeightedScore *float64 `gorm:"column:evaluator_weighted_score"` EvaluatorScoreCorrected int32 `gorm:"column:evaluator_score_corrected"` EvalSetVersionID string `gorm:"column:eval_set_version_id"` CreatedDate time.Time `gorm:"column:created_date"` diff --git a/backend/modules/evaluation/infra/repo/experiment/expt_template_repo_impl.go b/backend/modules/evaluation/infra/repo/experiment/expt_template_repo_impl.go new file mode 100644 index 000000000..1f9fdba43 --- /dev/null +++ b/backend/modules/evaluation/infra/repo/experiment/expt_template_repo_impl.go @@ -0,0 +1,313 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + +package experiment + +import ( + "context" + "fmt" + + "github.com/coze-dev/coze-loop/backend/infra/idgen" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/entity" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/repo" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/infra/repo/experiment/mysql" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/infra/repo/experiment/mysql/convert" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/model" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/pkg/errno" + "github.com/coze-dev/coze-loop/backend/pkg/errorx" + "github.com/coze-dev/coze-loop/backend/pkg/lang/slices" +) + +func NewExptTemplateRepo( + templateDAO mysql.IExptTemplateDAO, + templateEvaluatorRefDAO mysql.IExptTemplateEvaluatorRefDAO, + idgen idgen.IIDGenerator, +) repo.IExptTemplateRepo { + return &exptTemplateRepoImpl{ + templateDAO: templateDAO, + templateEvaluatorRefDAO: templateEvaluatorRefDAO, + idgen: idgen, + } +} + +type exptTemplateRepoImpl struct { + idgen idgen.IIDGenerator + templateDAO mysql.IExptTemplateDAO + templateEvaluatorRefDAO mysql.IExptTemplateEvaluatorRefDAO +} + +func (e *exptTemplateRepoImpl) Create(ctx context.Context, template *entity.ExptTemplate, refs []*entity.ExptTemplateEvaluatorRef) error { + po, err := convert.NewExptTemplateConverter().DO2PO(template) + if err != nil { + return err + } + + if err := e.templateDAO.Create(ctx, po); err != nil { + return err + } + + // 生成评估器引用的ID + if len(refs) > 0 { + ids, err := e.idgen.GenMultiIDs(ctx, len(refs)) + if err != nil { + return err + } + for i, ref := range refs { + ref.ID = ids[i] + } + + refPos := convert.NewExptTemplateEvaluatorRefConverter().DO2PO(refs) + err = e.templateEvaluatorRefDAO.Create(ctx, refPos) + if err != nil { + return err + } + } + + return nil +} + +func (e *exptTemplateRepoImpl) GetByID(ctx context.Context, id int64, spaceID *int64) (*entity.ExptTemplate, error) { + po, err := e.templateDAO.GetByID(ctx, id) + if err != nil { + return nil, err + } + if po == nil { + return nil, nil + } + // 仅在 spaceID 非空时进行空间校验;spaceID 为空则不校验 + if spaceID != nil && po.SpaceID != *spaceID { + return nil, errorx.NewByCode(errno.ResourceNotFoundCode, errorx.WithExtraMsg("template not found or access denied")) + } + + refs, err := e.templateEvaluatorRefDAO.GetByTemplateIDs(ctx, []int64{id}) + if err != nil { + return nil, err + } + + return convert.NewExptTemplateConverter().PO2DO(po, refs) +} + +func (e *exptTemplateRepoImpl) GetByName(ctx context.Context, name string, spaceID int64) (*entity.ExptTemplate, bool, error) { + po, err := e.templateDAO.GetByName(ctx, name, spaceID) + if err != nil { + return nil, false, err + } + if po == nil { + return nil, false, nil + } + + refs, err := e.templateEvaluatorRefDAO.GetByTemplateIDs(ctx, []int64{po.ID}) + if err != nil { + return nil, false, err + } + + do, err := convert.NewExptTemplateConverter().PO2DO(po, refs) + if err != nil { + return nil, false, err + } + + return do, true, nil +} + +func (e *exptTemplateRepoImpl) MGetByID(ctx context.Context, ids []int64, spaceID int64) ([]*entity.ExptTemplate, error) { + if len(ids) == 0 { + return nil, nil + } + + pos, err := e.templateDAO.MGetByID(ctx, ids) + if err != nil { + return nil, err + } + + // 过滤spaceID + filteredPos := make([]*model.ExptTemplate, 0, len(pos)) + templateIDs := make([]int64, 0, len(pos)) + for _, po := range pos { + if po.SpaceID == spaceID { + filteredPos = append(filteredPos, po) + templateIDs = append(templateIDs, po.ID) + } + } + + if len(templateIDs) == 0 { + return nil, nil + } + + refs, err := e.templateEvaluatorRefDAO.GetByTemplateIDs(ctx, templateIDs) + if err != nil { + return nil, err + } + + // 构建refs映射 + refsMap := make(map[int64][]*model.ExptTemplateEvaluatorRef) + for _, ref := range refs { + refsMap[ref.ExptTemplateID] = append(refsMap[ref.ExptTemplateID], ref) + } + + results := make([]*entity.ExptTemplate, 0, len(filteredPos)) + for _, po := range filteredPos { + do, err := convert.NewExptTemplateConverter().PO2DO(po, refsMap[po.ID]) + if err != nil { + return nil, err + } + results = append(results, do) + } + + return results, nil +} + +func (e *exptTemplateRepoImpl) Update(ctx context.Context, template *entity.ExptTemplate) error { + po, err := convert.NewExptTemplateConverter().DO2PO(template) + if err != nil { + return err + } + + return e.templateDAO.Update(ctx, po) +} + +func (e *exptTemplateRepoImpl) UpdateFields(ctx context.Context, templateID int64, ufields map[string]any) error { + return e.templateDAO.UpdateFields(ctx, templateID, ufields) +} + +func (e *exptTemplateRepoImpl) UpdateWithRefs(ctx context.Context, template *entity.ExptTemplate, refs []*entity.ExptTemplateEvaluatorRef) error { + // 更新模板基本信息 + po, err := convert.NewExptTemplateConverter().DO2PO(template) + if err != nil { + return err + } + + if err := e.templateDAO.Update(ctx, po); err != nil { + return err + } + + // 获取现有的评估器引用(包括已软删除的) + existingRefs, err := e.templateEvaluatorRefDAO.GetByTemplateIDsIncludeDeleted(ctx, []int64{template.GetID()}) + if err != nil { + return err + } + + // 构建现有引用的映射:key = evaluator_id#evaluator_version_id, value = ref + existingMap := make(map[string]*model.ExptTemplateEvaluatorRef) + for _, ref := range existingRefs { + key := fmt.Sprintf("%d#%d", ref.EvaluatorID, ref.EvaluatorVersionID) + existingMap[key] = ref + } + + // 构建新引用的映射:key = evaluator_id#evaluator_version_id + newMap := make(map[string]bool) + for _, ref := range refs { + key := fmt.Sprintf("%d#%d", ref.EvaluatorID, ref.EvaluatorVersionID) + newMap[key] = true + } + + // 计算差集 + var toCreate []*entity.ExptTemplateEvaluatorRef + var toRestore []int64 + var toSoftDelete []int64 + + for _, ref := range refs { + key := fmt.Sprintf("%d#%d", ref.EvaluatorID, ref.EvaluatorVersionID) + existingRef, exists := existingMap[key] + if !exists { + // 需要新增 + toCreate = append(toCreate, ref) + } else if existingRef.DeletedAt.Valid { + // 需要恢复(之前被软删除,现在又需要了) + toRestore = append(toRestore, existingRef.ID) + } + // 如果已存在且未删除,则保持不变 + } + + // 找出需要软删除的(现有的但不在新的列表中) + for key, existingRef := range existingMap { + if !newMap[key] && !existingRef.DeletedAt.Valid { + // 需要软删除(存在但不在新列表中) + toSoftDelete = append(toSoftDelete, existingRef.ID) + } + } + + // 执行恢复 + if len(toRestore) > 0 { + if err := e.templateEvaluatorRefDAO.RestoreByIDs(ctx, toRestore); err != nil { + return err + } + } + + // 执行软删除 + if len(toSoftDelete) > 0 { + if err := e.templateEvaluatorRefDAO.SoftDeleteByIDs(ctx, toSoftDelete); err != nil { + return err + } + } + + // 创建新的评估器引用 + if len(toCreate) > 0 { + ids, err := e.idgen.GenMultiIDs(ctx, len(toCreate)) + if err != nil { + return err + } + for i, ref := range toCreate { + ref.ID = ids[i] + } + + refPos := convert.NewExptTemplateEvaluatorRefConverter().DO2PO(toCreate) + if err := e.templateEvaluatorRefDAO.Create(ctx, refPos); err != nil { + return err + } + } + + return nil +} + +func (e *exptTemplateRepoImpl) Delete(ctx context.Context, id, spaceID int64) error { + // 验证spaceID + po, err := e.templateDAO.GetByID(ctx, id) + if err != nil { + return err + } + if po == nil { + return errorx.NewByCode(errno.ResourceNotFoundCode) + } + if po.SpaceID != spaceID { + return errorx.NewByCode(errno.ResourceNotFoundCode, errorx.WithExtraMsg("template not found or access denied")) + } + + return e.templateDAO.Delete(ctx, id) +} + +func (e *exptTemplateRepoImpl) List(ctx context.Context, page, size int32, filter *entity.ExptTemplateListFilter, orders []*entity.OrderBy, spaceID int64) ([]*entity.ExptTemplate, int64, error) { + pos, count, err := e.templateDAO.List(ctx, page, size, filter, orders, spaceID) + if err != nil { + return nil, 0, err + } + + if len(pos) == 0 { + return nil, count, nil + } + + templateIDs := slices.Transform(pos, func(t *model.ExptTemplate, _ int) int64 { + return t.ID + }) + + refs, err := e.templateEvaluatorRefDAO.GetByTemplateIDs(ctx, templateIDs) + if err != nil { + return nil, 0, err + } + + // 构建refs映射 + refsMap := make(map[int64][]*model.ExptTemplateEvaluatorRef) + for _, ref := range refs { + refsMap[ref.ExptTemplateID] = append(refsMap[ref.ExptTemplateID], ref) + } + + results := make([]*entity.ExptTemplate, 0, len(pos)) + for _, po := range pos { + do, err := convert.NewExptTemplateConverter().PO2DO(po, refsMap[po.ID]) + if err != nil { + return nil, 0, err + } + results = append(results, do) + } + + return results, count, nil +} diff --git a/backend/modules/evaluation/infra/repo/experiment/expt_template_repo_impl_test.go b/backend/modules/evaluation/infra/repo/experiment/expt_template_repo_impl_test.go new file mode 100644 index 000000000..9debcac85 --- /dev/null +++ b/backend/modules/evaluation/infra/repo/experiment/expt_template_repo_impl_test.go @@ -0,0 +1,941 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + +package experiment + +import ( + "context" + "errors" + "testing" + "time" + + "github.com/bytedance/gg/gptr" + "github.com/stretchr/testify/assert" + "go.uber.org/mock/gomock" + "gorm.io/gorm" + + "github.com/coze-dev/coze-loop/backend/infra/idgen/mocks" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/entity" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/model" + mysqlMocks "github.com/coze-dev/coze-loop/backend/modules/evaluation/infra/repo/experiment/mysql/mocks" +) + +func newTemplateRepo(ctrl *gomock.Controller) (*exptTemplateRepoImpl, *mysqlMocks.MockIExptTemplateDAO, *mysqlMocks.MockIExptTemplateEvaluatorRefDAO, *mocks.MockIIDGenerator) { + mockTemplateDAO := mysqlMocks.NewMockIExptTemplateDAO(ctrl) + mockRefDAO := mysqlMocks.NewMockIExptTemplateEvaluatorRefDAO(ctrl) + mockIDGen := mocks.NewMockIIDGenerator(ctrl) + return &exptTemplateRepoImpl{ + idgen: mockIDGen, + templateDAO: mockTemplateDAO, + templateEvaluatorRefDAO: mockRefDAO, + }, mockTemplateDAO, mockRefDAO, mockIDGen +} + +func TestExptTemplateRepoImpl_Create(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + repo, mockTemplateDAO, mockRefDAO, mockIDGen := newTemplateRepo(ctrl) + + template := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: 0, + WorkspaceID: 100, + Name: "Test Template", + Desc: "Test Description", + ExptType: entity.ExptType_Offline, + }, + TripleConfig: &entity.ExptTemplateTuple{ + EvalSetID: 1, + EvalSetVersionID: 1, + TargetID: 1, + TargetVersionID: 1, + TargetType: entity.EvalTargetTypeLoopPrompt, + }, + BaseInfo: &entity.BaseInfo{ + CreatedBy: &entity.UserInfo{ + UserID: gptr.Of("user123"), + }, + }, + } + refs := []*entity.ExptTemplateEvaluatorRef{ + { + ID: 0, + SpaceID: 100, + ExptTemplateID: 0, + EvaluatorID: 1, + EvaluatorVersionID: 1, + }, + { + ID: 0, + SpaceID: 100, + ExptTemplateID: 0, + EvaluatorID: 2, + EvaluatorVersionID: 2, + }, + } + + tests := []struct { + name string + mockSetup func() + wantErr bool + }{ + { + name: "success", + mockSetup: func() { + mockTemplateDAO.EXPECT().Create(gomock.Any(), gomock.Any()).Return(nil) + mockIDGen.EXPECT().GenMultiIDs(gomock.Any(), 2).Return([]int64{1, 2}, nil) + mockRefDAO.EXPECT().Create(gomock.Any(), gomock.Any()).Return(nil) + }, + wantErr: false, + }, + { + name: "success_no_refs", + mockSetup: func() { + mockTemplateDAO.EXPECT().Create(gomock.Any(), gomock.Any()).Return(nil) + }, + wantErr: false, + }, + { + name: "fail_templateDAO", + mockSetup: func() { + mockTemplateDAO.EXPECT().Create(gomock.Any(), gomock.Any()).Return(errors.New("dao error")) + }, + wantErr: true, + }, + { + name: "fail_idgen", + mockSetup: func() { + mockTemplateDAO.EXPECT().Create(gomock.Any(), gomock.Any()).Return(nil) + mockIDGen.EXPECT().GenMultiIDs(gomock.Any(), 2).Return(nil, errors.New("idgen error")) + }, + wantErr: true, + }, + { + name: "fail_refDAO", + mockSetup: func() { + mockTemplateDAO.EXPECT().Create(gomock.Any(), gomock.Any()).Return(nil) + mockIDGen.EXPECT().GenMultiIDs(gomock.Any(), 2).Return([]int64{1, 2}, nil) + mockRefDAO.EXPECT().Create(gomock.Any(), gomock.Any()).Return(errors.New("ref error")) + }, + wantErr: true, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + tt.mockSetup() + testRefs := refs + if tt.name == "success_no_refs" { + testRefs = nil + } + err := repo.Create(context.Background(), template, testRefs) + if tt.wantErr { + assert.Error(t, err) + } else { + assert.NoError(t, err) + } + }) + } +} + +func TestExptTemplateRepoImpl_GetByID(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + repo, mockTemplateDAO, mockRefDAO, _ := newTemplateRepo(ctrl) + + tests := []struct { + name string + mockSetup func() + wantErr bool + found bool + spaceID int64 + }{ + { + name: "success", + mockSetup: func() { + mockTemplateDAO.EXPECT().GetByID(gomock.Any(), int64(1)).Return(&model.ExptTemplate{ + ID: 1, + SpaceID: 100, + Name: "Test Template", + }, nil) + mockRefDAO.EXPECT().GetByTemplateIDs(gomock.Any(), []int64{1}).Return([]*model.ExptTemplateEvaluatorRef{ + {ID: 1, ExptTemplateID: 1, EvaluatorID: 1, EvaluatorVersionID: 1}, + }, nil) + }, + wantErr: false, + found: true, + spaceID: 100, + }, + { + name: "not_found", + mockSetup: func() { + mockTemplateDAO.EXPECT().GetByID(gomock.Any(), int64(2)).Return(nil, nil) + }, + wantErr: false, + found: false, + spaceID: 100, + }, + { + name: "wrong_spaceID", + mockSetup: func() { + mockTemplateDAO.EXPECT().GetByID(gomock.Any(), int64(3)).Return(&model.ExptTemplate{ + ID: 3, + SpaceID: 200, + Name: "Test Template", + }, nil) + }, + wantErr: true, + found: false, + spaceID: 100, + }, + { + name: "fail_templateDAO", + mockSetup: func() { + mockTemplateDAO.EXPECT().GetByID(gomock.Any(), int64(4)).Return(nil, errors.New("dao error")) + }, + wantErr: true, + found: false, + spaceID: 100, + }, + { + name: "fail_refDAO", + mockSetup: func() { + mockTemplateDAO.EXPECT().GetByID(gomock.Any(), int64(5)).Return(&model.ExptTemplate{ + ID: 5, + SpaceID: 100, + Name: "Test Template", + }, nil) + mockRefDAO.EXPECT().GetByTemplateIDs(gomock.Any(), []int64{5}).Return(nil, errors.New("ref error")) + }, + wantErr: true, + found: false, + spaceID: 100, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + tt.mockSetup() + var id int64 + switch tt.name { + case "success": + id = 1 + case "not_found": + id = 2 + case "wrong_spaceID": + id = 3 + case "fail_templateDAO": + id = 4 + case "fail_refDAO": + id = 5 + default: + id = 1 + } + var spaceIDPtr *int64 + if tt.spaceID != 0 { + spaceIDPtr = &tt.spaceID + } + got, err := repo.GetByID(context.Background(), id, spaceIDPtr) + if tt.wantErr { + assert.Error(t, err) + assert.Nil(t, got) + } else { + assert.NoError(t, err) + if tt.found { + assert.NotNil(t, got) + } else { + assert.Nil(t, got) + } + } + }) + } +} + +func TestExptTemplateRepoImpl_GetByName(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + repo, mockTemplateDAO, mockRefDAO, _ := newTemplateRepo(ctrl) + + tests := []struct { + name string + mockSetup func() + wantErr bool + found bool + spaceID int64 + }{ + { + name: "success", + mockSetup: func() { + mockTemplateDAO.EXPECT().GetByName(gomock.Any(), "Test Template", int64(100)).Return(&model.ExptTemplate{ + ID: 1, + SpaceID: 100, + Name: "Test Template", + }, nil) + mockRefDAO.EXPECT().GetByTemplateIDs(gomock.Any(), []int64{1}).Return([]*model.ExptTemplateEvaluatorRef{ + {ID: 1, ExptTemplateID: 1, EvaluatorID: 1, EvaluatorVersionID: 1}, + }, nil) + }, + wantErr: false, + found: true, + spaceID: 100, + }, + { + name: "not_found", + mockSetup: func() { + mockTemplateDAO.EXPECT().GetByName(gomock.Any(), "Not Found", int64(100)).Return(nil, nil) + }, + wantErr: false, + found: false, + spaceID: 100, + }, + { + name: "fail_templateDAO", + mockSetup: func() { + mockTemplateDAO.EXPECT().GetByName(gomock.Any(), "Error Template", int64(100)).Return(nil, errors.New("dao error")) + }, + wantErr: true, + found: false, + spaceID: 100, + }, + { + name: "fail_refDAO", + mockSetup: func() { + mockTemplateDAO.EXPECT().GetByName(gomock.Any(), "Ref Error", int64(100)).Return(&model.ExptTemplate{ + ID: 2, + SpaceID: 100, + Name: "Ref Error", + }, nil) + mockRefDAO.EXPECT().GetByTemplateIDs(gomock.Any(), []int64{2}).Return(nil, errors.New("ref error")) + }, + wantErr: true, + found: false, + spaceID: 100, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + tt.mockSetup() + var name string + switch tt.name { + case "success": + name = "Test Template" + case "not_found": + name = "Not Found" + case "fail_templateDAO": + name = "Error Template" + case "fail_refDAO": + name = "Ref Error" + default: + name = "Test Template" + } + got, found, err := repo.GetByName(context.Background(), name, tt.spaceID) + if tt.wantErr { + assert.Error(t, err) + assert.Nil(t, got) + assert.False(t, found) + } else { + assert.NoError(t, err) + assert.Equal(t, tt.found, found) + if tt.found { + assert.NotNil(t, got) + } else { + assert.Nil(t, got) + } + } + }) + } +} + +func TestExptTemplateRepoImpl_MGetByID(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + repo, mockTemplateDAO, mockRefDAO, _ := newTemplateRepo(ctrl) + + tests := []struct { + name string + mockSetup func() + wantErr bool + wantLen int + ids []int64 + spaceID int64 + }{ + { + name: "success", + mockSetup: func() { + mockTemplateDAO.EXPECT().MGetByID(gomock.Any(), []int64{1, 2}, gomock.Any()).Return([]*model.ExptTemplate{ + {ID: 1, SpaceID: 100, Name: "Template 1"}, + {ID: 2, SpaceID: 100, Name: "Template 2"}, + }, nil) + mockRefDAO.EXPECT().GetByTemplateIDs(gomock.Any(), []int64{1, 2}).Return([]*model.ExptTemplateEvaluatorRef{ + {ID: 1, ExptTemplateID: 1, EvaluatorID: 1, EvaluatorVersionID: 1}, + {ID: 2, ExptTemplateID: 2, EvaluatorID: 2, EvaluatorVersionID: 2}, + }, nil) + }, + wantErr: false, + wantLen: 2, + ids: []int64{1, 2}, + spaceID: 100, + }, + { + name: "empty_ids", + mockSetup: func() { + // 空 IDs 应该直接返回,不调用任何 DAO + }, + wantErr: false, + wantLen: 0, + ids: []int64{}, + spaceID: 100, + }, + { + name: "filter_by_spaceID", + mockSetup: func() { + mockTemplateDAO.EXPECT().MGetByID(gomock.Any(), []int64{3, 4}, gomock.Any()).Return([]*model.ExptTemplate{ + {ID: 3, SpaceID: 100, Name: "Template 3"}, + {ID: 4, SpaceID: 200, Name: "Template 4"}, // 不同的 spaceID,应该被过滤 + }, nil) + mockRefDAO.EXPECT().GetByTemplateIDs(gomock.Any(), []int64{3}).Return([]*model.ExptTemplateEvaluatorRef{ + {ID: 3, ExptTemplateID: 3, EvaluatorID: 1, EvaluatorVersionID: 1}, + }, nil) + }, + wantErr: false, + wantLen: 1, + ids: []int64{3, 4}, + spaceID: 100, + }, + { + name: "fail_templateDAO", + mockSetup: func() { + mockTemplateDAO.EXPECT().MGetByID(gomock.Any(), []int64{5, 6}, gomock.Any()).Return(nil, errors.New("dao error")) + }, + wantErr: true, + wantLen: 0, + ids: []int64{5, 6}, + spaceID: 100, + }, + { + name: "fail_refDAO", + mockSetup: func() { + mockTemplateDAO.EXPECT().MGetByID(gomock.Any(), []int64{7, 8}, gomock.Any()).Return([]*model.ExptTemplate{ + {ID: 7, SpaceID: 100, Name: "Template 7"}, + {ID: 8, SpaceID: 100, Name: "Template 8"}, + }, nil) + mockRefDAO.EXPECT().GetByTemplateIDs(gomock.Any(), []int64{7, 8}).Return(nil, errors.New("ref error")) + }, + wantErr: true, + wantLen: 0, + ids: []int64{7, 8}, + spaceID: 100, + }, + { + name: "no_matching_spaceID", + mockSetup: func() { + mockTemplateDAO.EXPECT().MGetByID(gomock.Any(), []int64{9, 10}, gomock.Any()).Return([]*model.ExptTemplate{ + {ID: 9, SpaceID: 200, Name: "Template 9"}, + {ID: 10, SpaceID: 300, Name: "Template 10"}, + }, nil) + // 没有匹配的 spaceID,不会调用 refDAO + }, + wantErr: false, + wantLen: 0, + ids: []int64{9, 10}, + spaceID: 100, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + tt.mockSetup() + got, err := repo.MGetByID(context.Background(), tt.ids, tt.spaceID) + if tt.wantErr { + assert.Error(t, err) + assert.Nil(t, got) + } else { + assert.NoError(t, err) + if tt.wantLen == 0 { + assert.Nil(t, got) + } else { + assert.Len(t, got, tt.wantLen) + } + } + }) + } +} + +func TestExptTemplateRepoImpl_Update(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + repo, mockTemplateDAO, _, _ := newTemplateRepo(ctrl) + + template := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: 1, + WorkspaceID: 100, + Name: "Updated Template", + Desc: "Updated Description", + ExptType: entity.ExptType_Offline, + }, + BaseInfo: &entity.BaseInfo{ + UpdatedBy: &entity.UserInfo{ + UserID: gptr.Of("user123"), + }, + }, + } + + tests := []struct { + name string + mockSetup func() + wantErr bool + }{ + { + name: "success", + mockSetup: func() { + mockTemplateDAO.EXPECT().Update(gomock.Any(), gomock.Any()).Return(nil) + }, + wantErr: false, + }, + { + name: "fail", + mockSetup: func() { + mockTemplateDAO.EXPECT().Update(gomock.Any(), gomock.Any()).Return(errors.New("dao error")) + }, + wantErr: true, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + tt.mockSetup() + err := repo.Update(context.Background(), template) + if tt.wantErr { + assert.Error(t, err) + } else { + assert.NoError(t, err) + } + }) + } +} + +func TestExptTemplateRepoImpl_UpdateFields(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + repo, mockTemplateDAO, _, _ := newTemplateRepo(ctrl) + + tests := []struct { + name string + mockSetup func() + wantErr bool + fields map[string]any + }{ + { + name: "success", + mockSetup: func() { + mockTemplateDAO.EXPECT().UpdateFields(gomock.Any(), int64(1), gomock.Any()).Return(nil) + }, + wantErr: false, + fields: map[string]any{"name": "Updated Name"}, + }, + { + name: "fail", + mockSetup: func() { + mockTemplateDAO.EXPECT().UpdateFields(gomock.Any(), int64(2), gomock.Any()).Return(errors.New("dao error")) + }, + wantErr: true, + fields: map[string]any{"name": "Updated Name"}, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + tt.mockSetup() + var id int64 + if tt.name == "success" { + id = 1 + } else { + id = 2 + } + err := repo.UpdateFields(context.Background(), id, tt.fields) + if tt.wantErr { + assert.Error(t, err) + } else { + assert.NoError(t, err) + } + }) + } +} + +func TestExptTemplateRepoImpl_UpdateWithRefs(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + repo, mockTemplateDAO, mockRefDAO, mockIDGen := newTemplateRepo(ctrl) + + template := &entity.ExptTemplate{ + Meta: &entity.ExptTemplateMeta{ + ID: 1, + WorkspaceID: 100, + Name: "Updated Template", + Desc: "Updated Description", + ExptType: entity.ExptType_Offline, + }, + BaseInfo: &entity.BaseInfo{ + UpdatedBy: &entity.UserInfo{ + UserID: gptr.Of("user123"), + }, + }, + } + + tests := []struct { + name string + mockSetup func() + wantErr bool + refs []*entity.ExptTemplateEvaluatorRef + }{ + { + name: "success_no_refs", + mockSetup: func() { + mockTemplateDAO.EXPECT().Update(gomock.Any(), gomock.Any()).Return(nil) + mockRefDAO.EXPECT().GetByTemplateIDsIncludeDeleted(gomock.Any(), []int64{1}).Return([]*model.ExptTemplateEvaluatorRef{}, nil) + }, + wantErr: false, + refs: []*entity.ExptTemplateEvaluatorRef{}, + }, + { + name: "success_create_new_refs", + mockSetup: func() { + mockTemplateDAO.EXPECT().Update(gomock.Any(), gomock.Any()).Return(nil) + mockRefDAO.EXPECT().GetByTemplateIDsIncludeDeleted(gomock.Any(), []int64{1}).Return([]*model.ExptTemplateEvaluatorRef{}, nil) + mockIDGen.EXPECT().GenMultiIDs(gomock.Any(), 1).Return([]int64{10}, nil) + mockRefDAO.EXPECT().Create(gomock.Any(), gomock.Any()).Return(nil) + }, + wantErr: false, + refs: []*entity.ExptTemplateEvaluatorRef{ + { + ID: 0, + SpaceID: 100, + ExptTemplateID: 1, + EvaluatorID: 1, + EvaluatorVersionID: 1, + }, + }, + }, + { + name: "success_restore_deleted_refs", + mockSetup: func() { + mockTemplateDAO.EXPECT().Update(gomock.Any(), gomock.Any()).Return(nil) + // 返回一个已删除的引用 + mockRefDAO.EXPECT().GetByTemplateIDsIncludeDeleted(gomock.Any(), []int64{1}).Return([]*model.ExptTemplateEvaluatorRef{ + { + ID: 20, + ExptTemplateID: 1, + EvaluatorID: 1, + EvaluatorVersionID: 1, + DeletedAt: gorm.DeletedAt{Valid: true, Time: time.Now()}, // 已删除 + }, + }, nil) + mockRefDAO.EXPECT().RestoreByIDs(gomock.Any(), []int64{20}).Return(nil) + }, + wantErr: false, + refs: []*entity.ExptTemplateEvaluatorRef{ + { + ID: 0, + SpaceID: 100, + ExptTemplateID: 1, + EvaluatorID: 1, + EvaluatorVersionID: 1, + }, + }, + }, + { + name: "success_soft_delete_refs", + mockSetup: func() { + mockTemplateDAO.EXPECT().Update(gomock.Any(), gomock.Any()).Return(nil) + // 返回一个未删除的引用,但不在新的 refs 列表中 + mockRefDAO.EXPECT().GetByTemplateIDsIncludeDeleted(gomock.Any(), []int64{1}).Return([]*model.ExptTemplateEvaluatorRef{ + { + ID: 30, + ExptTemplateID: 1, + EvaluatorID: 1, + EvaluatorVersionID: 1, + DeletedAt: gorm.DeletedAt{Valid: false}, // 未删除 + }, + }, nil) + mockRefDAO.EXPECT().SoftDeleteByIDs(gomock.Any(), []int64{30}).Return(nil) + }, + wantErr: false, + refs: []*entity.ExptTemplateEvaluatorRef{}, // 空的 refs,应该软删除现有的 + }, + { + name: "fail_templateDAO", + mockSetup: func() { + mockTemplateDAO.EXPECT().Update(gomock.Any(), gomock.Any()).Return(errors.New("dao error")) + }, + wantErr: true, + refs: []*entity.ExptTemplateEvaluatorRef{}, + }, + { + name: "fail_get_existing_refs", + mockSetup: func() { + mockTemplateDAO.EXPECT().Update(gomock.Any(), gomock.Any()).Return(nil) + mockRefDAO.EXPECT().GetByTemplateIDsIncludeDeleted(gomock.Any(), []int64{1}).Return(nil, errors.New("ref error")) + }, + wantErr: true, + refs: []*entity.ExptTemplateEvaluatorRef{}, + }, + { + name: "fail_restore", + mockSetup: func() { + mockTemplateDAO.EXPECT().Update(gomock.Any(), gomock.Any()).Return(nil) + mockRefDAO.EXPECT().GetByTemplateIDsIncludeDeleted(gomock.Any(), []int64{1}).Return([]*model.ExptTemplateEvaluatorRef{ + { + ID: 40, + ExptTemplateID: 1, + EvaluatorID: 1, + EvaluatorVersionID: 1, + DeletedAt: gorm.DeletedAt{Valid: true, Time: time.Now()}, + }, + }, nil) + mockRefDAO.EXPECT().RestoreByIDs(gomock.Any(), []int64{40}).Return(errors.New("restore error")) + }, + wantErr: true, + refs: []*entity.ExptTemplateEvaluatorRef{ + { + ID: 0, + SpaceID: 100, + ExptTemplateID: 1, + EvaluatorID: 1, + EvaluatorVersionID: 1, + }, + }, + }, + { + name: "fail_soft_delete", + mockSetup: func() { + mockTemplateDAO.EXPECT().Update(gomock.Any(), gomock.Any()).Return(nil) + mockRefDAO.EXPECT().GetByTemplateIDsIncludeDeleted(gomock.Any(), []int64{1}).Return([]*model.ExptTemplateEvaluatorRef{ + { + ID: 50, + ExptTemplateID: 1, + EvaluatorID: 1, + EvaluatorVersionID: 1, + DeletedAt: gorm.DeletedAt{Valid: false}, + }, + }, nil) + mockRefDAO.EXPECT().SoftDeleteByIDs(gomock.Any(), []int64{50}).Return(errors.New("soft delete error")) + }, + wantErr: true, + refs: []*entity.ExptTemplateEvaluatorRef{}, + }, + { + name: "fail_create_refs", + mockSetup: func() { + mockTemplateDAO.EXPECT().Update(gomock.Any(), gomock.Any()).Return(nil) + mockRefDAO.EXPECT().GetByTemplateIDsIncludeDeleted(gomock.Any(), []int64{1}).Return([]*model.ExptTemplateEvaluatorRef{}, nil) + mockIDGen.EXPECT().GenMultiIDs(gomock.Any(), 1).Return([]int64{60}, nil) + mockRefDAO.EXPECT().Create(gomock.Any(), gomock.Any()).Return(errors.New("create error")) + }, + wantErr: true, + refs: []*entity.ExptTemplateEvaluatorRef{ + { + ID: 0, + SpaceID: 100, + ExptTemplateID: 1, + EvaluatorID: 1, + EvaluatorVersionID: 1, + }, + }, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + tt.mockSetup() + err := repo.UpdateWithRefs(context.Background(), template, tt.refs) + if tt.wantErr { + assert.Error(t, err) + } else { + assert.NoError(t, err) + } + }) + } +} + +func TestExptTemplateRepoImpl_Delete(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + repo, mockTemplateDAO, _, _ := newTemplateRepo(ctrl) + + tests := []struct { + name string + mockSetup func() + wantErr bool + id int64 + spaceID int64 + }{ + { + name: "success", + mockSetup: func() { + mockTemplateDAO.EXPECT().GetByID(gomock.Any(), int64(1)).Return(&model.ExptTemplate{ + ID: 1, + SpaceID: 100, + Name: "Test Template", + }, nil) + mockTemplateDAO.EXPECT().Delete(gomock.Any(), int64(1)).Return(nil) + }, + wantErr: false, + id: 1, + spaceID: 100, + }, + { + name: "not_found", + mockSetup: func() { + mockTemplateDAO.EXPECT().GetByID(gomock.Any(), int64(2)).Return(nil, nil) + }, + wantErr: true, + id: 2, + spaceID: 100, + }, + { + name: "wrong_spaceID", + mockSetup: func() { + mockTemplateDAO.EXPECT().GetByID(gomock.Any(), int64(3)).Return(&model.ExptTemplate{ + ID: 3, + SpaceID: 200, + Name: "Test Template", + }, nil) + }, + wantErr: true, + id: 3, + spaceID: 100, + }, + { + name: "fail_getByID", + mockSetup: func() { + mockTemplateDAO.EXPECT().GetByID(gomock.Any(), int64(4)).Return(nil, errors.New("dao error")) + }, + wantErr: true, + id: 4, + spaceID: 100, + }, + { + name: "fail_delete", + mockSetup: func() { + mockTemplateDAO.EXPECT().GetByID(gomock.Any(), int64(5)).Return(&model.ExptTemplate{ + ID: 5, + SpaceID: 100, + Name: "Test Template", + }, nil) + mockTemplateDAO.EXPECT().Delete(gomock.Any(), int64(5)).Return(errors.New("delete error")) + }, + wantErr: true, + id: 5, + spaceID: 100, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + tt.mockSetup() + err := repo.Delete(context.Background(), tt.id, tt.spaceID) + if tt.wantErr { + assert.Error(t, err) + } else { + assert.NoError(t, err) + } + }) + } +} + +func TestExptTemplateRepoImpl_List(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + repo, mockTemplateDAO, mockRefDAO, _ := newTemplateRepo(ctrl) + + tests := []struct { + name string + mockSetup func() + wantErr bool + wantLen int + wantCount int64 + page int32 + size int32 + spaceID int64 + }{ + { + name: "success", + mockSetup: func() { + mockTemplateDAO.EXPECT().List(gomock.Any(), int32(1), int32(10), gomock.Any(), gomock.Any(), int64(100)).Return([]*model.ExptTemplate{ + {ID: 1, SpaceID: 100, Name: "Template 1"}, + {ID: 2, SpaceID: 100, Name: "Template 2"}, + }, int64(2), nil) + mockRefDAO.EXPECT().GetByTemplateIDs(gomock.Any(), []int64{1, 2}).Return([]*model.ExptTemplateEvaluatorRef{ + {ID: 1, ExptTemplateID: 1, EvaluatorID: 1, EvaluatorVersionID: 1}, + {ID: 2, ExptTemplateID: 2, EvaluatorID: 2, EvaluatorVersionID: 2}, + }, nil) + }, + wantErr: false, + wantLen: 2, + wantCount: 2, + page: 1, + size: 10, + spaceID: 100, + }, + { + name: "empty_list", + mockSetup: func() { + mockTemplateDAO.EXPECT().List(gomock.Any(), int32(1), int32(10), gomock.Any(), gomock.Any(), int64(100)).Return([]*model.ExptTemplate{}, int64(0), nil) + }, + wantErr: false, + wantLen: 0, + wantCount: 0, + page: 1, + size: 10, + spaceID: 100, + }, + { + name: "fail_templateDAO", + mockSetup: func() { + mockTemplateDAO.EXPECT().List(gomock.Any(), int32(1), int32(10), gomock.Any(), gomock.Any(), int64(100)).Return(nil, int64(0), errors.New("dao error")) + }, + wantErr: true, + wantLen: 0, + wantCount: 0, + page: 1, + size: 10, + spaceID: 100, + }, + { + name: "fail_refDAO", + mockSetup: func() { + mockTemplateDAO.EXPECT().List(gomock.Any(), int32(1), int32(10), gomock.Any(), gomock.Any(), int64(100)).Return([]*model.ExptTemplate{ + {ID: 3, SpaceID: 100, Name: "Template 3"}, + }, int64(1), nil) + mockRefDAO.EXPECT().GetByTemplateIDs(gomock.Any(), []int64{3}).Return(nil, errors.New("ref error")) + }, + wantErr: true, + wantLen: 0, + wantCount: 0, + page: 1, + size: 10, + spaceID: 100, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + tt.mockSetup() + got, count, err := repo.List(context.Background(), tt.page, tt.size, nil, nil, tt.spaceID) + if tt.wantErr { + assert.Error(t, err) + assert.Nil(t, got) + } else { + assert.NoError(t, err) + assert.Equal(t, tt.wantCount, count) + if tt.wantLen == 0 { + assert.Nil(t, got) + } else { + assert.Len(t, got, tt.wantLen) + } + } + }) + } +} diff --git a/backend/modules/evaluation/infra/repo/experiment/expt_turn_result_filter_repo_impl.go b/backend/modules/evaluation/infra/repo/experiment/expt_turn_result_filter_repo_impl.go index 24b6ff8ed..43d7df631 100644 --- a/backend/modules/evaluation/infra/repo/experiment/expt_turn_result_filter_repo_impl.go +++ b/backend/modules/evaluation/infra/repo/experiment/expt_turn_result_filter_repo_impl.go @@ -49,6 +49,9 @@ func (e *ExptTurnResultFilterRepoImpl) Save(ctx context.Context, filter []*entit } func fieldFilterEntityToCK(src *entity.FieldFilter) *ck.FieldFilter { + if src == nil { + return nil + } return &ck.FieldFilter{ Key: src.Key, Op: src.Op, @@ -57,8 +60,14 @@ func fieldFilterEntityToCK(src *entity.FieldFilter) *ck.FieldFilter { } func fieldFiltersEntityToCK(src []*entity.FieldFilter) []*ck.FieldFilter { + if len(src) == 0 { + return nil + } res := make([]*ck.FieldFilter, 0, len(src)) for _, f := range src { + if f == nil { + continue + } res = append(res, &ck.FieldFilter{ Key: f.Key, Op: f.Op, diff --git a/backend/modules/evaluation/infra/repo/experiment/mysql/convert/aggr_result.go b/backend/modules/evaluation/infra/repo/experiment/mysql/convert/aggr_result.go index 9b2908389..6cfedd848 100644 --- a/backend/modules/evaluation/infra/repo/experiment/mysql/convert/aggr_result.go +++ b/backend/modules/evaluation/infra/repo/experiment/mysql/convert/aggr_result.go @@ -15,22 +15,22 @@ import ( ) const ( - decimal10_4Min = -999999.9999 - decimal10_4Max = 999999.9999 - decimal10_4Precision = 4 + decimal10_2Min = -999999.99 + decimal10_2Max = 999999.99 + decimal10_2Precision = 2 ) -func clampScoreToDecimal10_4(ctx context.Context, score float64) float64 { - multiplier := math.Pow10(decimal10_4Precision) +func clampScoreToDecimal10_2(ctx context.Context, score float64) float64 { + multiplier := math.Pow10(decimal10_2Precision) rounded := math.Round(score*multiplier) / multiplier - if rounded < decimal10_4Min { - logs.CtxWarn(ctx, "Score value %f (rounded from %f) exceeds decimal(10,4) minimum limit for experiment_id: %d, clamping to %f", rounded, score, decimal10_4Min) - return decimal10_4Min + if rounded < decimal10_2Min { + logs.CtxWarn(ctx, "Score value %f (rounded from %f) exceeds decimal(10,2) minimum limit for experiment_id: %d, clamping to %f", rounded, score, decimal10_2Min) + return decimal10_2Min } - if rounded > decimal10_4Max { - logs.CtxWarn(ctx, "Score value %f (rounded from %f) exceeds decimal(10,4) maximum limit for experiment_id: %d, clamping to %f", rounded, score, decimal10_4Max) - return decimal10_4Max + if rounded > decimal10_2Max { + logs.CtxWarn(ctx, "Score value %f (rounded from %f) exceeds decimal(10,2) maximum limit for experiment_id: %d, clamping to %f", rounded, score, decimal10_2Max) + return decimal10_2Max } return rounded @@ -43,7 +43,7 @@ func ExptAggrResultDOToPO(ctx context.Context, do *entity.ExptAggrResult) *model ExperimentID: do.ExperimentID, FieldType: gptr.Of(do.FieldType), FieldKey: do.FieldKey, - Score: gptr.Of(clampScoreToDecimal10_4(ctx, do.Score)), + Score: gptr.Of(clampScoreToDecimal10_2(ctx, do.Score)), AggrResult: gptr.Of(do.AggrResult), Version: do.Version, Status: do.Status, diff --git a/backend/modules/evaluation/infra/repo/experiment/mysql/convert/expt.go b/backend/modules/evaluation/infra/repo/experiment/mysql/convert/expt.go index 9060514c5..27974ecbc 100644 --- a/backend/modules/evaluation/infra/repo/experiment/mysql/convert/expt.go +++ b/backend/modules/evaluation/infra/repo/experiment/mysql/convert/expt.go @@ -21,6 +21,11 @@ func NewExptConverter() ExptConverter { type ExptConverter struct{} func (ExptConverter) DO2PO(experiment *entity.Experiment) (*model.Experiment, error) { + var exptTemplateID int64 + if experiment.ExptTemplateMeta != nil { + exptTemplateID = experiment.ExptTemplateMeta.ID + } + expt := &model.Experiment{ ID: experiment.ID, SpaceID: experiment.SpaceID, @@ -37,6 +42,7 @@ func (ExptConverter) DO2PO(experiment *entity.Experiment) (*model.Experiment, er StartAt: experiment.StartAt, EndAt: experiment.EndAt, LatestRunID: experiment.LatestRunID, + ExptTemplateID: exptTemplateID, CreditCost: int32(experiment.CreditCost), SourceType: int32(experiment.SourceType), SourceID: experiment.SourceID, @@ -76,7 +82,7 @@ func (ExptConverter) PO2DO(expt *model.Experiment, refs []*model.ExptEvaluatorRe }) } - return &entity.Experiment{ + res := &entity.Experiment{ ID: expt.ID, SpaceID: expt.SpaceID, CreatedBy: expt.CreatedBy, @@ -99,5 +105,14 @@ func (ExptConverter) PO2DO(expt *model.Experiment, refs []*model.ExptEvaluatorRe SourceID: expt.SourceID, ExptType: entity.ExptType(expt.ExptType), MaxAliveTime: gptr.Indirect(expt.MaxAliveTime), - }, nil + } + + // 如果数据库中有模板 ID,则在 ExptTemplateMeta 中回填 ID,方便上层按模板 ID 查询和聚合 + if expt.ExptTemplateID != 0 { + res.ExptTemplateMeta = &entity.ExptTemplateMeta{ + ID: expt.ExptTemplateID, + } + } + + return res, nil } diff --git a/backend/modules/evaluation/infra/repo/experiment/mysql/convert/expt_result.go b/backend/modules/evaluation/infra/repo/experiment/mysql/convert/expt_result.go index 65377527a..f68932c9e 100644 --- a/backend/modules/evaluation/infra/repo/experiment/mysql/convert/expt_result.go +++ b/backend/modules/evaluation/infra/repo/experiment/mysql/convert/expt_result.go @@ -84,19 +84,22 @@ type ExptTurnResultConvertor struct{} func (ExptTurnResultConvertor) PO2DO(tr *model.ExptTurnResult, evaluatorResults *entity.EvaluatorResults) *entity.ExptTurnResult { return &entity.ExptTurnResult{ - ID: tr.ID, - SpaceID: tr.SpaceID, - ExptID: tr.ExptID, - ExptRunID: tr.ExptRunID, - ItemID: tr.ItemID, - TurnID: tr.TurnID, - Status: tr.Status, - TraceID: tr.TraceID, - TargetResultID: tr.TargetResultID, - LogID: tr.LogID, - ErrMsg: conv.UnsafeBytesToString(gptr.Indirect(tr.ErrMsg)), + ID: tr.ID, + SpaceID: tr.SpaceID, + ExptID: tr.ExptID, + ExptRunID: tr.ExptRunID, + ItemID: tr.ItemID, + TurnID: tr.TurnID, + Status: tr.Status, + TraceID: tr.TraceID, + TargetResultID: tr.TargetResultID, + LogID: tr.LogID, + ErrMsg: conv.UnsafeBytesToString(gptr.Indirect(tr.ErrMsg)), + TurnIdx: gptr.Indirect(tr.TurnIdx), + + // 运行期补充字段 EvaluatorResults: evaluatorResults, - TurnIdx: gptr.Indirect(tr.TurnIdx), + WeightedScore: tr.WeightedScore, } } @@ -114,5 +117,7 @@ func (ExptTurnResultConvertor) DO2PO(tr *entity.ExptTurnResult) *model.ExptTurnR LogID: tr.LogID, ErrMsg: gptr.Of(conv.UnsafeStringToBytes(tr.ErrMsg)), TurnIdx: gptr.Of(tr.TurnIdx), + + WeightedScore: tr.WeightedScore, } } diff --git a/backend/modules/evaluation/infra/repo/experiment/mysql/convert/expt_template.go b/backend/modules/evaluation/infra/repo/experiment/mysql/convert/expt_template.go new file mode 100644 index 000000000..36aacb662 --- /dev/null +++ b/backend/modules/evaluation/infra/repo/experiment/mysql/convert/expt_template.go @@ -0,0 +1,276 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + +package convert + +import ( + "github.com/bytedance/gg/gptr" + "github.com/samber/lo" + + "github.com/coze-dev/coze-loop/backend/modules/evaluation/consts" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/entity" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/model" + "github.com/coze-dev/coze-loop/backend/pkg/errorx" + "github.com/coze-dev/coze-loop/backend/pkg/json" +) + +func NewExptTemplateConverter() ExptTemplateConverter { + return ExptTemplateConverter{} +} + +type ExptTemplateConverter struct{} + +// DO2PO 将实体转换为持久化对象 +func (ExptTemplateConverter) DO2PO(template *entity.ExptTemplate) (*model.ExptTemplate, error) { + // 从 Meta 获取基础信息 + var id, spaceID int64 + var name, description string + var exptType entity.ExptType + if template.Meta != nil { + id = template.Meta.ID + spaceID = template.Meta.WorkspaceID + name = template.Meta.Name + description = template.Meta.Desc + exptType = template.Meta.ExptType + } + + // 从 BaseInfo 获取 CreatedBy + var createdBy string + if template.BaseInfo != nil && template.BaseInfo.CreatedBy != nil && template.BaseInfo.CreatedBy.UserID != nil { + createdBy = *template.BaseInfo.CreatedBy.UserID + } + + // 从 TripleConfig 获取三元组信息 + var evalSetID, evalSetVersionID, targetID, targetVersionID int64 + var targetType entity.EvalTargetType + if template.TripleConfig != nil { + evalSetID = template.TripleConfig.EvalSetID + evalSetVersionID = template.TripleConfig.EvalSetVersionID + targetID = template.TripleConfig.TargetID + targetVersionID = template.TripleConfig.TargetVersionID + targetType = template.TripleConfig.TargetType + } + + // 从 BaseInfo 获取 UpdatedBy + var updatedBy string + if template.BaseInfo != nil && template.BaseInfo.UpdatedBy != nil && template.BaseInfo.UpdatedBy.UserID != nil { + updatedBy = *template.BaseInfo.UpdatedBy.UserID + } + + po := &model.ExptTemplate{ + ID: id, + SpaceID: spaceID, + CreatedBy: createdBy, + UpdatedBy: updatedBy, + Name: name, + Description: description, + EvalSetID: evalSetID, + EvalSetVersionID: evalSetVersionID, + TargetID: targetID, + TargetType: int64(targetType), + TargetVersionID: targetVersionID, + ExptType: int32(exptType), + } + + if template.TemplateConf != nil { + bytes, err := json.Marshal(template.TemplateConf) + if err != nil { + return nil, errorx.Wrapf(err, "ExptTemplateConfiguration json marshal fail") + } + po.TemplateConf = &bytes + } + + // 序列化 ExptInfo + if template.ExptInfo != nil { + bytes, err := json.Marshal(template.ExptInfo) + if err != nil { + return nil, errorx.Wrapf(err, "ExptInfo json marshal fail") + } + po.ExptInfo = &bytes + } + + return po, nil +} + +// PO2DO 将持久化对象转换为实体 +func (ExptTemplateConverter) PO2DO(po *model.ExptTemplate, refs []*model.ExptTemplateEvaluatorRef) (*entity.ExptTemplate, error) { + templateConf := new(entity.ExptTemplateConfiguration) + if err := lo.TernaryF( + len(gptr.Indirect(po.TemplateConf)) == 0, + func() error { return nil }, + func() error { return json.Unmarshal(gptr.Indirect(po.TemplateConf), templateConf) }, + ); err != nil { + return nil, errorx.Wrapf(err, "ExptTemplateConfiguration json unmarshal fail, template_id: %v", po.ID) + } + + evaluatorVersionRef := make([]*entity.ExptTemplateEvaluatorVersionRef, 0, len(refs)) + evaluatorVersionIds := make([]int64, 0, len(refs)) + evaluatorIDVersionItems := make([]*entity.EvaluatorIDVersionItem, 0, len(refs)) + for _, ref := range refs { + evaluatorVersionRef = append(evaluatorVersionRef, &entity.ExptTemplateEvaluatorVersionRef{ + EvaluatorVersionID: ref.EvaluatorVersionID, + EvaluatorID: ref.EvaluatorID, + }) + evaluatorVersionIds = append(evaluatorVersionIds, ref.EvaluatorVersionID) + // 构建 EvaluatorIDVersionItem(Version 字段将在服务层从 Evaluators 关联数据中填充) + evaluatorIDVersionItems = append(evaluatorIDVersionItems, &entity.EvaluatorIDVersionItem{ + EvaluatorID: ref.EvaluatorID, + EvaluatorVersionID: ref.EvaluatorVersionID, + // Version 和 ScoreWeight 将在服务层填充 + }) + } + + // 构建 Meta + meta := &entity.ExptTemplateMeta{ + ID: po.ID, + WorkspaceID: po.SpaceID, + Name: po.Name, + Desc: po.Description, + ExptType: entity.ExptType(po.ExptType), + } + + // 构建 TripleConfig + tripleConfig := &entity.ExptTemplateTuple{ + EvalSetID: po.EvalSetID, + EvalSetVersionID: po.EvalSetVersionID, + TargetID: po.TargetID, + TargetVersionID: po.TargetVersionID, + TargetType: entity.EvalTargetType(po.TargetType), + EvaluatorVersionIds: evaluatorVersionIds, + EvaluatorIDVersionItems: evaluatorIDVersionItems, + } + + // 从 TemplateConf 构建 FieldMappingConfig,并根据 EvaluatorConf.ScoreWeight 设置是否启用分数权重 + var fieldMappingConfig *entity.ExptFieldMapping + + if templateConf != nil { + // 构建 FieldMappingConfig + fieldMappingConfig = &entity.ExptFieldMapping{ + ItemConcurNum: templateConf.ItemConcurNum, + } + + // 从 ConnectorConf 转换字段映射 + if templateConf.ConnectorConf.TargetConf != nil && templateConf.ConnectorConf.TargetConf.IngressConf != nil { + ingressConf := templateConf.ConnectorConf.TargetConf.IngressConf + targetMapping := &entity.TargetFieldMapping{} + if ingressConf.EvalSetAdapter != nil { + for _, fc := range ingressConf.EvalSetAdapter.FieldConfs { + targetMapping.FromEvalSet = append(targetMapping.FromEvalSet, &entity.ExptTemplateFieldMapping{ + FieldName: fc.FieldName, + FromFieldName: fc.FromField, + ConstValue: fc.Value, + }) + } + } + fieldMappingConfig.TargetFieldMapping = targetMapping + + // 提取运行时参数(使用统一的内置字段名) + if ingressConf.CustomConf != nil { + for _, fc := range ingressConf.CustomConf.FieldConfs { + if fc.FieldName == consts.FieldAdapterBuiltinFieldNameRuntimeParam { + fieldMappingConfig.TargetRuntimeParam = &entity.RuntimeParam{ + JSONValue: gptr.Of(fc.Value), + } + break + } + } + } + } + + if templateConf.ConnectorConf.EvaluatorsConf != nil { + evaluatorMappings := make([]*entity.EvaluatorFieldMapping, 0, len(templateConf.ConnectorConf.EvaluatorsConf.EvaluatorConf)) + for _, ec := range templateConf.ConnectorConf.EvaluatorsConf.EvaluatorConf { + if ec.IngressConf == nil { + continue + } + em := &entity.EvaluatorFieldMapping{ + EvaluatorVersionID: ec.EvaluatorVersionID, + } + if ec.IngressConf.EvalSetAdapter != nil { + for _, fc := range ec.IngressConf.EvalSetAdapter.FieldConfs { + em.FromEvalSet = append(em.FromEvalSet, &entity.ExptTemplateFieldMapping{ + FieldName: fc.FieldName, + FromFieldName: fc.FromField, + ConstValue: fc.Value, + }) + } + } + if ec.IngressConf.TargetAdapter != nil { + for _, fc := range ec.IngressConf.TargetAdapter.FieldConfs { + em.FromTarget = append(em.FromTarget, &entity.ExptTemplateFieldMapping{ + FieldName: fc.FieldName, + FromFieldName: fc.FromField, + ConstValue: fc.Value, + }) + } + } + evaluatorMappings = append(evaluatorMappings, em) + } + fieldMappingConfig.EvaluatorFieldMapping = evaluatorMappings + + // 如果有任一评估器配置了分数权重,则标记模板支持分数权重 + if templateConf.ConnectorConf.EvaluatorsConf != nil { + templateConf.ConnectorConf.EvaluatorsConf.EnableScoreWeight = false + for _, ec := range templateConf.ConnectorConf.EvaluatorsConf.EvaluatorConf { + if ec != nil && ec.ScoreWeight != nil && *ec.ScoreWeight > 0 { + templateConf.ConnectorConf.EvaluatorsConf.EnableScoreWeight = true + break + } + } + } + } + } + + // 构建 BaseInfo + baseInfo := &entity.BaseInfo{ + CreatedAt: gptr.Of(po.CreatedAt.UnixMilli()), + UpdatedAt: gptr.Of(po.UpdatedAt.UnixMilli()), + CreatedBy: &entity.UserInfo{UserID: gptr.Of(po.CreatedBy)}, + } + if len(po.UpdatedBy) > 0 { + baseInfo.UpdatedBy = &entity.UserInfo{UserID: gptr.Of(po.UpdatedBy)} + } + if po.DeletedAt.Valid { + baseInfo.DeletedAt = gptr.Of(po.DeletedAt.Time.UnixMilli()) + } + + // 反序列化 ExptInfo + var exptInfo *entity.ExptInfo + if po.ExptInfo != nil && len(*po.ExptInfo) > 0 { + exptInfo = new(entity.ExptInfo) + if err := json.Unmarshal(*po.ExptInfo, exptInfo); err != nil { + return nil, errorx.Wrapf(err, "ExptInfo json unmarshal fail, template_id: %v", po.ID) + } + } + + return &entity.ExptTemplate{ + Meta: meta, + TripleConfig: tripleConfig, + FieldMappingConfig: fieldMappingConfig, + EvaluatorVersionRef: evaluatorVersionRef, + TemplateConf: templateConf, + BaseInfo: baseInfo, + ExptInfo: exptInfo, + }, nil +} + +func NewExptTemplateEvaluatorRefConverter() ExptTemplateEvaluatorRefConverter { + return ExptTemplateEvaluatorRefConverter{} +} + +type ExptTemplateEvaluatorRefConverter struct{} + +// DO2PO 将实体引用转换为持久化对象 +func (ExptTemplateEvaluatorRefConverter) DO2PO(refs []*entity.ExptTemplateEvaluatorRef) []*model.ExptTemplateEvaluatorRef { + pos := make([]*model.ExptTemplateEvaluatorRef, 0, len(refs)) + for _, ref := range refs { + pos = append(pos, &model.ExptTemplateEvaluatorRef{ + ID: ref.ID, + SpaceID: ref.SpaceID, + ExptTemplateID: ref.ExptTemplateID, + EvaluatorID: ref.EvaluatorID, + EvaluatorVersionID: ref.EvaluatorVersionID, + }) + } + return pos +} diff --git a/backend/modules/evaluation/infra/repo/experiment/mysql/expt.go b/backend/modules/evaluation/infra/repo/experiment/mysql/expt.go index c3a979358..2f83375d9 100644 --- a/backend/modules/evaluation/infra/repo/experiment/mysql/expt.go +++ b/backend/modules/evaluation/infra/repo/experiment/mysql/expt.go @@ -182,6 +182,11 @@ func (d *exptDAOImpl) toConditions(f *entity.ExptListFilter, orders []*entity.Or return db.Where(fmt.Sprintf("%screated_by %s (?)", exptPrefix, scopeComparator), ffields.CreatedBy) }) } + if ffields != nil && len(ffields.UpdatedBy) > 0 { + conds = append(conds, func(db *gorm.DB) *gorm.DB { + return db.Where(fmt.Sprintf("%supdated_by %s (?)", exptPrefix, scopeComparator), ffields.UpdatedBy) + }) + } if ffields != nil && len(ffields.TargetIDs) > 0 { conds = append(conds, func(db *gorm.DB) *gorm.DB { return db.Where(fmt.Sprintf("%starget_id %s (?)", exptPrefix, scopeComparator), ffields.TargetIDs) @@ -217,6 +222,11 @@ func (d *exptDAOImpl) toConditions(f *entity.ExptListFilter, orders []*entity.Or return db.Where(fmt.Sprintf("%sexpt_type %s (?)", exptPrefix, scopeComparator), ffields.ExptType) }) } + if ffields != nil && len(ffields.ExptTemplateIDs) > 0 { + conds = append(conds, func(db *gorm.DB) *gorm.DB { + return db.Where(fmt.Sprintf("%sexpt_template_id %s (?)", exptPrefix, scopeComparator), ffields.ExptTemplateIDs) + }) + } if ffields != nil && len(ffields.SourceType) > 0 { conds = append(conds, func(db *gorm.DB) *gorm.DB { return db.Where(fmt.Sprintf("%ssource_type %s (?)", exptPrefix, scopeComparator), ffields.SourceType) diff --git a/backend/modules/evaluation/infra/repo/experiment/mysql/expt_aggr_result.go b/backend/modules/evaluation/infra/repo/experiment/mysql/expt_aggr_result.go index 486bbd742..461d4f34f 100644 --- a/backend/modules/evaluation/infra/repo/experiment/mysql/expt_aggr_result.go +++ b/backend/modules/evaluation/infra/repo/experiment/mysql/expt_aggr_result.go @@ -113,13 +113,18 @@ func (dao *ExptAggrResultDAOImpl) UpdateExptAggrResultByVersion(ctx context.Cont exptAggrResult.Status = calculateStatusIdle db := dao.provider.NewSession(ctx, opts...) q := query.Use(db).ExptAggrResult + // 只更新分数字段和聚合结果字段,避免无意覆盖 version、created_at 等字段 _, err := q.WithContext(ctx). Where(q.ExperimentID.Eq(exptAggrResult.ExperimentID), q.FieldType.Eq(gptr.Indirect(exptAggrResult.FieldType)), q.FieldKey.Eq(exptAggrResult.FieldKey), q.Version.Eq(taskVersion), q.Status.Eq(calculateStatusCalculating)). - Updates(exptAggrResult) + Updates(map[string]interface{}{ + "score": exptAggrResult.Score, + "aggr_result": exptAggrResult.AggrResult, + "status": exptAggrResult.Status, + }) if err != nil { return err } diff --git a/backend/modules/evaluation/infra/repo/experiment/mysql/expt_template.go b/backend/modules/evaluation/infra/repo/experiment/mysql/expt_template.go new file mode 100644 index 000000000..52314393b --- /dev/null +++ b/backend/modules/evaluation/infra/repo/experiment/mysql/expt_template.go @@ -0,0 +1,285 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + +package mysql + +import ( + "context" + "errors" + "fmt" + + "github.com/bytedance/gg/gptr" + "gorm.io/gorm" + + "github.com/coze-dev/coze-loop/backend/infra/db" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/consts" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/entity" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/model" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/query" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/pkg/contexts" + "github.com/coze-dev/coze-loop/backend/pkg/errorx" + "github.com/coze-dev/coze-loop/backend/pkg/json" +) + +//go:generate mockgen -destination=mocks/expt_template.go -package=mocks . IExptTemplateDAO +type IExptTemplateDAO interface { + Create(ctx context.Context, template *model.ExptTemplate) error + GetByID(ctx context.Context, id int64) (*model.ExptTemplate, error) + GetByName(ctx context.Context, name string, spaceID int64) (*model.ExptTemplate, error) + MGetByID(ctx context.Context, ids []int64, opts ...db.Option) ([]*model.ExptTemplate, error) + Update(ctx context.Context, template *model.ExptTemplate) error + UpdateFields(ctx context.Context, id int64, ufields map[string]any) error + Delete(ctx context.Context, id int64) error + List(ctx context.Context, page, size int32, filter *entity.ExptTemplateListFilter, orders []*entity.OrderBy, spaceID int64) ([]*model.ExptTemplate, int64, error) +} + +func NewExptTemplateDAO(db db.Provider) IExptTemplateDAO { + return &exptTemplateDAOImpl{ + db: db, + query: query.Use(db.NewSession(context.Background())), + } +} + +type exptTemplateDAOImpl struct { + db db.Provider + query *query.Query +} + +func (d *exptTemplateDAOImpl) Create(ctx context.Context, template *model.ExptTemplate) error { + if err := d.db.NewSession(ctx).Create(template).Error; err != nil { + return errorx.Wrapf(err, "create expt_template fail, model: %v", json.Jsonify(template)) + } + return nil +} + +func (d *exptTemplateDAOImpl) GetByID(ctx context.Context, id int64) (*model.ExptTemplate, error) { + q := query.Use(d.db.NewSession(ctx)).ExptTemplate + result, err := q.WithContext(ctx).Where(q.ID.Eq(id)).First() + if err != nil { + if errors.Is(err, gorm.ErrRecordNotFound) { + return nil, nil + } + return nil, errorx.Wrapf(err, "get expt_template fail, id: %v", id) + } + return result, nil +} + +func (d *exptTemplateDAOImpl) GetByName(ctx context.Context, name string, spaceID int64) (*model.ExptTemplate, error) { + q := query.Use(d.db.NewSession(ctx)).ExptTemplate + result, err := q.WithContext(ctx). + Where(q.SpaceID.Eq(spaceID), q.Name.Eq(name)). + First() + if err != nil { + if errors.Is(err, gorm.ErrRecordNotFound) { + return nil, nil + } + return nil, errorx.Wrapf(err, "get expt_template by name fail, name: %v, space_id: %v", name, spaceID) + } + return result, nil +} + +func (d *exptTemplateDAOImpl) MGetByID(ctx context.Context, ids []int64, opts ...db.Option) ([]*model.ExptTemplate, error) { + if len(ids) == 0 { + return nil, nil + } + template := d.query.ExptTemplate + q := template.WithContext(ctx) + // 如果 context 中有写标志,使用主库 + if contexts.CtxWriteDB(ctx) { + q = q.WriteDB() + } + results, err := q.Where(template.ID.In(ids...)).Find() + if err != nil { + return nil, errorx.Wrapf(err, "mget expt_template fail, ids: %v", ids) + } + return results, nil +} + +func (d *exptTemplateDAOImpl) Update(ctx context.Context, template *model.ExptTemplate) error { + if err := d.db.NewSession(ctx).Model(&model.ExptTemplate{}).Where("id = ?", template.ID).Updates(template).Error; err != nil { + return errorx.Wrapf(err, "update expt_template fail, template_id: %v", template.ID) + } + return nil +} + +func (d *exptTemplateDAOImpl) UpdateFields(ctx context.Context, id int64, ufields map[string]any) error { + q := query.Use(d.db.NewSession(ctx)).ExptTemplate + _, err := q.WithContext(ctx). + Where(q.ID.Eq(id)). + UpdateColumns(ufields) + if err != nil { + return errorx.Wrapf(err, "update expt_template fields fail, template_id: %v, ufields: %v", id, ufields) + } + return nil +} + +func (d *exptTemplateDAOImpl) Delete(ctx context.Context, id int64) error { + if err := d.db.NewSession(ctx).Delete(&model.ExptTemplate{}, id).Error; err != nil { + return errorx.Wrapf(err, "delete expt_template fail, template_id: %v", id) + } + return nil +} + +func (d *exptTemplateDAOImpl) List(ctx context.Context, page, size int32, filter *entity.ExptTemplateListFilter, orders []*entity.OrderBy, spaceID int64) ([]*model.ExptTemplate, int64, error) { + var ( + templates []*model.ExptTemplate + db = d.db.NewSession(ctx) + count int64 + needJoin = d.filterNeedJoin(filter) + ) + + if needJoin { + db = db.Model(&model.ExptTemplate{}). + Joins("INNER JOIN expt_template_evaluator_ref ON expt_template.id = expt_template_evaluator_ref.expt_template_id"). + Where("expt_template.space_id = ?", spaceID). + Where("expt_template.deleted_at IS NULL") + } else { + db = db.Model(&model.ExptTemplate{}). + Where("space_id = ?", spaceID). + Where("deleted_at IS NULL") + } + + conds, ok := d.toConditions(filter, orders) + if !ok { + return templates, 0, nil + } + + for _, cond := range conds { + db = cond(db) + } + + // 只有在需要 join 时才使用 Group,避免重复数据 + if needJoin { + db = db.Group("expt_template.id") + } + db.Count(&count) + + if page > 0 && size > 0 { + db = db.Limit(int(size)).Offset(int((page - 1) * size)) + } else { + db = db.Limit(defaultLimit) + } + + if err := db.Find(&templates).Error; err != nil { + return nil, 0, errorx.Wrapf(err, "list expt_template fail, space_id: %v, page: %v, size: %v, filter: %v", spaceID, page, size, json.Jsonify(filter)) + } + + return templates, count, nil +} + +func (d *exptTemplateDAOImpl) filterNeedJoin(f *entity.ExptTemplateListFilter) bool { + if f != nil { + if f.Includes != nil && len(f.Includes.EvaluatorIDs) > 0 { + return true + } + if f.Excludes != nil && len(f.Excludes.EvaluatorIDs) > 0 { + return true + } + } + return false +} + +func (d *exptTemplateDAOImpl) toConditions(f *entity.ExptTemplateListFilter, orders []*entity.OrderBy) ([]func(tx *gorm.DB) *gorm.DB, bool) { + if f == nil && len(orders) == 0 { + return nil, true + } + + if f != nil && !f.Includes.IsValid() { + return nil, false + } + + var ( + templatePrefix = "" + refPrefix = model.TableNameExptTemplateEvaluatorRef + "." + conditions []func(tx *gorm.DB) *gorm.DB + ) + + if d.filterNeedJoin(f) { + templatePrefix = model.TableNameExptTemplate + "." + } + + condFn := func(comparator, scopeComparator string, ffields *entity.ExptTemplateFilterFields) []func(tx *gorm.DB) *gorm.DB { + var conds []func(tx *gorm.DB) *gorm.DB + + if ffields == nil { + return conds + } + + if len(ffields.CreatedBy) > 0 { + conds = append(conds, func(db *gorm.DB) *gorm.DB { + return db.Where(fmt.Sprintf("%screated_by %s (?)", templatePrefix, scopeComparator), ffields.CreatedBy) + }) + } + if len(ffields.UpdatedBy) > 0 { + conds = append(conds, func(db *gorm.DB) *gorm.DB { + return db.Where(fmt.Sprintf("%supdated_by %s (?)", templatePrefix, scopeComparator), ffields.UpdatedBy) + }) + } + if len(ffields.TargetIDs) > 0 { + conds = append(conds, func(db *gorm.DB) *gorm.DB { + return db.Where(fmt.Sprintf("%starget_id %s (?)", templatePrefix, scopeComparator), ffields.TargetIDs) + }) + } + if len(ffields.EvalSetIDs) > 0 { + conds = append(conds, func(db *gorm.DB) *gorm.DB { + return db.Where(fmt.Sprintf("%seval_set_id %s (?)", templatePrefix, scopeComparator), ffields.EvalSetIDs) + }) + } + if len(ffields.TargetType) > 0 { + conds = append(conds, func(db *gorm.DB) *gorm.DB { + return db.Where(fmt.Sprintf("%starget_type %s (?)", templatePrefix, scopeComparator), ffields.TargetType) + }) + } + if len(ffields.EvaluatorIDs) > 0 { + conds = append(conds, func(db *gorm.DB) *gorm.DB { + return db.Where(fmt.Sprintf("%sevaluator_id %s (?)", refPrefix, scopeComparator), ffields.EvaluatorIDs) + }) + } + if len(ffields.ExptType) > 0 { + conds = append(conds, func(db *gorm.DB) *gorm.DB { + return db.Where(fmt.Sprintf("%sexpt_type %s (?)", templatePrefix, scopeComparator), ffields.ExptType) + }) + } + + return conds + } + + if f != nil && len(f.FuzzyName) > 0 { + conditions = append(conditions, func(db *gorm.DB) *gorm.DB { + return db.Where(templatePrefix+"name like ?", "%"+f.FuzzyName+"%") + }) + } + + if f != nil { + conditions = append(conditions, condFn("=", "IN", f.Includes)...) + conditions = append(conditions, condFn("!=", "NOT IN", f.Excludes)...) + } + + ordered := false + for _, orderBy := range orders { + column := gptr.Indirect(orderBy.Field) + if len(column) == 0 { + continue + } + + ordered = true + // 在闭包内部使用局部变量,避免闭包捕获问题 + col := column + prefix := templatePrefix + conditions = append(conditions, func(db *gorm.DB) *gorm.DB { + sort := consts.SortDesc + if gptr.Indirect(orderBy.IsAsc) { + sort = consts.SortAsc + } + return db.Order(prefix + col + " " + sort) + }) + } + + if !ordered { + conditions = append(conditions, func(db *gorm.DB) *gorm.DB { + return db.Order(templatePrefix + "created_at desc") + }) + } + + return conditions, true +} diff --git a/backend/modules/evaluation/infra/repo/experiment/mysql/expt_template_evaluator_ref.go b/backend/modules/evaluation/infra/repo/experiment/mysql/expt_template_evaluator_ref.go new file mode 100644 index 000000000..ec7a4b6b9 --- /dev/null +++ b/backend/modules/evaluation/infra/repo/experiment/mysql/expt_template_evaluator_ref.go @@ -0,0 +1,109 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + +package mysql + +import ( + "context" + + "github.com/coze-dev/coze-loop/backend/infra/db" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/model" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/query" + "github.com/coze-dev/coze-loop/backend/modules/evaluation/pkg/contexts" + "github.com/coze-dev/coze-loop/backend/pkg/errorx" + "github.com/coze-dev/coze-loop/backend/pkg/json" +) + +//go:generate mockgen -destination=mocks/expt_template_evaluator_ref.go -package=mocks . IExptTemplateEvaluatorRefDAO +type IExptTemplateEvaluatorRefDAO interface { + Create(ctx context.Context, refs []*model.ExptTemplateEvaluatorRef) error + GetByTemplateIDs(ctx context.Context, templateIDs []int64) ([]*model.ExptTemplateEvaluatorRef, error) + GetByTemplateIDsIncludeDeleted(ctx context.Context, templateIDs []int64) ([]*model.ExptTemplateEvaluatorRef, error) + DeleteByTemplateID(ctx context.Context, templateID int64) error + SoftDeleteByIDs(ctx context.Context, ids []int64) error + RestoreByIDs(ctx context.Context, ids []int64) error +} + +func NewExptTemplateEvaluatorRefDAO(db db.Provider) IExptTemplateEvaluatorRefDAO { + return &exptTemplateEvaluatorRefDAOImpl{ + db: db, + query: query.Use(db.NewSession(context.Background())), + } +} + +type exptTemplateEvaluatorRefDAOImpl struct { + db db.Provider + query *query.Query +} + +func (d *exptTemplateEvaluatorRefDAOImpl) Create(ctx context.Context, refs []*model.ExptTemplateEvaluatorRef) error { + if len(refs) == 0 { + return nil + } + if err := d.db.NewSession(ctx).Create(refs).Error; err != nil { + return errorx.Wrapf(err, "create expt_template_evaluator_ref fail, refs: %v", json.Jsonify(refs)) + } + return nil +} + +func (d *exptTemplateEvaluatorRefDAOImpl) GetByTemplateIDs(ctx context.Context, templateIDs []int64) ([]*model.ExptTemplateEvaluatorRef, error) { + if len(templateIDs) == 0 { + return nil, nil + } + ref := d.query.ExptTemplateEvaluatorRef + q := ref.WithContext(ctx) + // 如果 context 中有写标志,使用主库 + if contexts.CtxWriteDB(ctx) { + q = q.WriteDB() + } + results, err := q.Where(ref.ExptTemplateID.In(templateIDs...)).Find() + if err != nil { + return nil, errorx.Wrapf(err, "get expt_template_evaluator_ref by template_ids fail, template_ids: %v", templateIDs) + } + return results, nil +} + +func (d *exptTemplateEvaluatorRefDAOImpl) DeleteByTemplateID(ctx context.Context, templateID int64) error { + q := query.Use(d.db.NewSession(ctx)).ExptTemplateEvaluatorRef + _, err := q.WithContext(ctx).Where(q.ExptTemplateID.Eq(templateID)).Delete() + if err != nil { + return errorx.Wrapf(err, "delete expt_template_evaluator_ref by template_id fail, template_id: %v", templateID) + } + return nil +} + +func (d *exptTemplateEvaluatorRefDAOImpl) GetByTemplateIDsIncludeDeleted(ctx context.Context, templateIDs []int64) ([]*model.ExptTemplateEvaluatorRef, error) { + if len(templateIDs) == 0 { + return nil, nil + } + q := query.Use(d.db.NewSession(ctx)).ExptTemplateEvaluatorRef + results, err := q.WithContext(ctx).Unscoped().Where(q.ExptTemplateID.In(templateIDs...)).Find() + if err != nil { + return nil, errorx.Wrapf(err, "get expt_template_evaluator_ref by template_ids (include deleted) fail, template_ids: %v", templateIDs) + } + return results, nil +} + +func (d *exptTemplateEvaluatorRefDAOImpl) SoftDeleteByIDs(ctx context.Context, ids []int64) error { + if len(ids) == 0 { + return nil + } + q := query.Use(d.db.NewSession(ctx)).ExptTemplateEvaluatorRef + _, err := q.WithContext(ctx).Where(q.ID.In(ids...)).Delete() + if err != nil { + return errorx.Wrapf(err, "soft delete expt_template_evaluator_ref by ids fail, ids: %v", ids) + } + return nil +} + +func (d *exptTemplateEvaluatorRefDAOImpl) RestoreByIDs(ctx context.Context, ids []int64) error { + if len(ids) == 0 { + return nil + } + q := query.Use(d.db.NewSession(ctx)).ExptTemplateEvaluatorRef + _, err := q.WithContext(ctx).Unscoped().Where(q.ID.In(ids...)).Update(q.DeletedAt, nil) + if err != nil { + return errorx.Wrapf(err, "restore expt_template_evaluator_ref by ids fail, ids: %v", ids) + } + return nil +} diff --git a/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/model/experiment.gen.go b/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/model/experiment.gen.go index caa937b7c..1977d92ef 100644 --- a/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/model/experiment.gen.go +++ b/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/model/experiment.gen.go @@ -14,30 +14,31 @@ const TableNameExperiment = "experiment" // Experiment experiment type Experiment struct { - ID int64 `gorm:"column:id;type:bigint(20) unsigned;primaryKey;comment:id" json:"id"` // id - SpaceID int64 `gorm:"column:space_id;type:bigint(20) unsigned;not null;uniqueIndex:uk_expt_item_idx,priority:1;index:idx_space_deleted_created_by,priority:1;index:idx_space_deleted_status,priority:1;index:idx_deleted_dataset,priority:1;index:idx_deleted_target_type,priority:1;index:idx_target_id_delete_at,priority:1;index:idx_eval_set_id_delete_at,priority:1;index:idx_space_start_at,priority:1;index:idx_space_end_at,priority:1;comment:空间 id" json:"space_id"` // 空间 id - CreatedBy string `gorm:"column:created_by;type:varchar(128) character set utf8mb4;not null;index:idx_space_deleted_created_by,priority:2;comment:创建者 id" json:"created_by"` // 创建者 id - Name string `gorm:"column:name;type:varchar(255) character set utf8mb4;not null;uniqueIndex:uk_expt_item_idx,priority:2;comment:实验名称" json:"name"` // 实验名称 - Description string `gorm:"column:description;type:varchar(1024) character set utf8mb4;not null;comment:实验描述" json:"description"` // 实验描述 - EvalSetVersionID int64 `gorm:"column:eval_set_version_id;type:bigint(20) unsigned;not null;index:idx_deleted_dataset,priority:2;comment:评测集版本 id" json:"eval_set_version_id"` // 评测集版本 id - TargetType int64 `gorm:"column:target_type;type:bigint(20) unsigned;not null;index:idx_deleted_target_type,priority:2;comment:评估对象类型" json:"target_type"` // 评估对象类型 - TargetVersionID int64 `gorm:"column:target_version_id;type:bigint(20) unsigned;not null;comment:评估对象版本 id" json:"target_version_id"` // 评估对象版本 id - EvalConf *[]byte `gorm:"column:eval_conf;type:blob binary;comment:实验评估流程配置" json:"eval_conf"` // 实验评估流程配置 - Status int32 `gorm:"column:status;type:int(11) unsigned;not null;index:idx_space_deleted_status,priority:2;comment:状态" json:"status"` // 状态 - StatusMessage *[]byte `gorm:"column:status_message;type:blob binary;comment:状态提示信息" json:"status_message"` // 状态提示信息 - StartAt *time.Time `gorm:"column:start_at;type:timestamp;index:idx_space_start_at,priority:2;comment:开始执行时间" json:"start_at"` // 开始执行时间 - EndAt *time.Time `gorm:"column:end_at;type:timestamp;index:idx_space_end_at,priority:2;comment:结束执行时间" json:"end_at"` // 结束执行时间 - CreatedAt time.Time `gorm:"column:created_at;type:timestamp;not null;default:CURRENT_TIMESTAMP;comment:创建时间" json:"created_at"` // 创建时间 - UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;not null;default:CURRENT_TIMESTAMP;comment:更新时间" json:"updated_at"` // 更新时间 - DeletedAt gorm.DeletedAt `gorm:"column:deleted_at;type:timestamp;uniqueIndex:uk_expt_item_idx,priority:3;index:idx_space_deleted_created_by,priority:3;index:idx_space_deleted_status,priority:3;index:idx_deleted_dataset,priority:3;index:idx_deleted_target_type,priority:3;index:idx_target_id_delete_at,priority:3;index:idx_eval_set_id_delete_at,priority:3;comment:删除时间" json:"deleted_at"` // 删除时间 - LatestRunID int64 `gorm:"column:latest_run_id;type:bigint(20) unsigned;not null;comment:最后运行id" json:"latest_run_id"` // 最后运行id - TargetID int64 `gorm:"column:target_id;type:bigint(20) unsigned;not null;index:idx_target_id_delete_at,priority:2;comment:评估对象 id" json:"target_id"` // 评估对象 id - EvalSetID int64 `gorm:"column:eval_set_id;type:bigint(20) unsigned;not null;index:idx_eval_set_id_delete_at,priority:2;comment:评测集 id" json:"eval_set_id"` // 评测集 id - CreditCost int32 `gorm:"column:credit_cost;type:int(11);not null;comment:权益消耗模式" json:"credit_cost"` // 权益消耗模式 - SourceType int32 `gorm:"column:source_type;type:int(11) unsigned;not null;index:idx_source_type_source_id,priority:1;default:1;comment:实验来源类型,评测:1,自动化任务:2..." json:"source_type"` // 实验来源类型,评测:1,自动化任务:2... - SourceID string `gorm:"column:source_id;type:varchar(128) character set utf8mb4;not null;index:idx_source_type_source_id,priority:2;default:0;comment:实验来源id" json:"source_id"` // 实验来源id - ExptType int32 `gorm:"column:expt_type;type:int(11) unsigned;not null;default:1;comment:实验类型,offline:1,online:2..." json:"expt_type"` // 实验类型,offline:1,online:2... - MaxAliveTime *int64 `gorm:"column:max_alive_time;type:bigint(20) unsigned;comment:最大存活时间" json:"max_alive_time"` // 最大存活时间 + ID int64 `gorm:"column:id;type:bigint(20) unsigned;primaryKey;comment:id" json:"id"` // id + SpaceID int64 `gorm:"column:space_id;type:bigint(20) unsigned;not null;uniqueIndex:uk_expt_item_idx,priority:1;index:idx_space_deleted_created_by,priority:1;index:idx_space_deleted_status,priority:1;index:idx_deleted_dataset,priority:1;index:idx_deleted_target_type,priority:1;index:idx_target_id_delete_at,priority:1;index:idx_eval_set_id_delete_at,priority:1;index:idx_space_start_at,priority:1;index:idx_space_end_at,priority:1;index:idx_space_expt_template_id_delete_at,priority:1;comment:空间 id" json:"space_id"` // 空间 id + CreatedBy string `gorm:"column:created_by;type:varchar(128) character set utf8mb4;not null;index:idx_space_deleted_created_by,priority:2;comment:创建者 id" json:"created_by"` // 创建者 id + Name string `gorm:"column:name;type:varchar(255) character set utf8mb4;not null;uniqueIndex:uk_expt_item_idx,priority:2;comment:实验名称" json:"name"` // 实验名称 + Description string `gorm:"column:description;type:varchar(1024) character set utf8mb4;not null;comment:实验描述" json:"description"` // 实验描述 + EvalSetVersionID int64 `gorm:"column:eval_set_version_id;type:bigint(20) unsigned;not null;index:idx_deleted_dataset,priority:2;comment:评测集版本 id" json:"eval_set_version_id"` // 评测集版本 id + TargetType int64 `gorm:"column:target_type;type:bigint(20) unsigned;not null;index:idx_deleted_target_type,priority:2;comment:评估对象类型" json:"target_type"` // 评估对象类型 + TargetVersionID int64 `gorm:"column:target_version_id;type:bigint(20) unsigned;not null;comment:评估对象版本 id" json:"target_version_id"` // 评估对象版本 id + EvalConf *[]byte `gorm:"column:eval_conf;type:blob binary;comment:实验评估流程配置" json:"eval_conf"` // 实验评估流程配置 + Status int32 `gorm:"column:status;type:int(11) unsigned;not null;index:idx_space_deleted_status,priority:2;comment:状态" json:"status"` // 状态 + StatusMessage *[]byte `gorm:"column:status_message;type:blob binary;comment:状态提示信息" json:"status_message"` // 状态提示信息 + StartAt *time.Time `gorm:"column:start_at;type:timestamp;index:idx_space_start_at,priority:2;comment:开始执行时间" json:"start_at"` // 开始执行时间 + EndAt *time.Time `gorm:"column:end_at;type:timestamp;index:idx_space_end_at,priority:2;comment:结束执行时间" json:"end_at"` // 结束执行时间 + CreatedAt time.Time `gorm:"column:created_at;type:timestamp;not null;default:CURRENT_TIMESTAMP;comment:创建时间" json:"created_at"` // 创建时间 + UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;not null;default:CURRENT_TIMESTAMP;comment:更新时间" json:"updated_at"` // 更新时间 + DeletedAt gorm.DeletedAt `gorm:"column:deleted_at;type:timestamp;uniqueIndex:uk_expt_item_idx,priority:3;index:idx_space_deleted_created_by,priority:3;index:idx_space_deleted_status,priority:3;index:idx_deleted_dataset,priority:3;index:idx_deleted_target_type,priority:3;index:idx_target_id_delete_at,priority:3;index:idx_eval_set_id_delete_at,priority:3;index:idx_space_expt_template_id_delete_at,priority:3;comment:删除时间" json:"deleted_at"` // 删除时间 + LatestRunID int64 `gorm:"column:latest_run_id;type:bigint(20) unsigned;not null;comment:最后运行id" json:"latest_run_id"` // 最后运行id + TargetID int64 `gorm:"column:target_id;type:bigint(20) unsigned;not null;index:idx_target_id_delete_at,priority:2;comment:评估对象 id" json:"target_id"` // 评估对象 id + EvalSetID int64 `gorm:"column:eval_set_id;type:bigint(20) unsigned;not null;index:idx_eval_set_id_delete_at,priority:2;comment:评测集 id" json:"eval_set_id"` // 评测集 id + ExptTemplateID int64 `gorm:"column:expt_template_id;type:bigint(20) unsigned;not null;index:idx_space_expt_template_id_delete_at,priority:2;comment:实验模板 id" json:"expt_template_id"` // 实验模板 id + CreditCost int32 `gorm:"column:credit_cost;type:int(11);not null;comment:权益消耗模式" json:"credit_cost"` // 权益消耗模式 + SourceType int32 `gorm:"column:source_type;type:int(11) unsigned;not null;index:idx_source_type_source_id,priority:1;default:1;comment:实验来源类型,评测:1,自动化任务:2..." json:"source_type"` // 实验来源类型,评测:1,自动化任务:2... + SourceID string `gorm:"column:source_id;type:varchar(128) character set utf8mb4;not null;index:idx_source_type_source_id,priority:2;default:0;comment:实验来源id" json:"source_id"` // 实验来源id + ExptType int32 `gorm:"column:expt_type;type:int(11) unsigned;not null;default:1;comment:实验类型,offline:1,online:2..." json:"expt_type"` // 实验类型,offline:1,online:2... + MaxAliveTime *int64 `gorm:"column:max_alive_time;type:bigint(20) unsigned;comment:最大存活时间" json:"max_alive_time"` // 最大存活时间 } // TableName Experiment's table name diff --git a/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/model/expt_template.gen.go b/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/model/expt_template.gen.go new file mode 100644 index 000000000..c4de4747a --- /dev/null +++ b/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/model/expt_template.gen.go @@ -0,0 +1,39 @@ +// Code generated by gorm.io/gen. DO NOT EDIT. +// Code generated by gorm.io/gen. DO NOT EDIT. +// Code generated by gorm.io/gen. DO NOT EDIT. + +package model + +import ( + "time" + + "gorm.io/gorm" +) + +const TableNameExptTemplate = "expt_template" + +// ExptTemplate expt_template +type ExptTemplate struct { + ID int64 `gorm:"column:id;type:bigint(20) unsigned;primaryKey;comment:id" json:"id"` // id + SpaceID int64 `gorm:"column:space_id;type:bigint(20) unsigned;not null;uniqueIndex:uk_space_id_name_deleted_at,priority:1;index:idx_space_id_created_by_deleted_at,priority:1;index:idx_space_id_eval_set_id_deleted_at,priority:1;index:idx_space_id_target_id_deleted_at,priority:1;index:idx_space_id_expt_type_deleted_at,priority:1;comment:空间 id" json:"space_id"` // 空间 id + Name string `gorm:"column:name;type:varchar(255) character set utf8mb4;not null;uniqueIndex:uk_space_id_name_deleted_at,priority:2;comment:实验模板名称" json:"name"` // 实验模板名称 + Description string `gorm:"column:description;type:varchar(1024) character set utf8mb4;not null;comment:实验模板描述" json:"description"` // 实验模板描述 + EvalSetID int64 `gorm:"column:eval_set_id;type:bigint(20) unsigned;not null;index:idx_space_id_eval_set_id_deleted_at,priority:2;comment:评测集 id(模板创建后不可修改)" json:"eval_set_id"` // 评测集 id(模板创建后不可修改) + EvalSetVersionID int64 `gorm:"column:eval_set_version_id;type:bigint(20) unsigned;not null;comment:评测集默认版本 id" json:"eval_set_version_id"` // 评测集默认版本 id + TargetID int64 `gorm:"column:target_id;type:bigint(20) unsigned;not null;index:idx_space_id_target_id_deleted_at,priority:2;comment:评估对象 id(模板创建后不可修改)" json:"target_id"` // 评估对象 id(模板创建后不可修改) + TargetType int64 `gorm:"column:target_type;type:bigint(20) unsigned;not null;comment:评估对象类型" json:"target_type"` // 评估对象类型 + TargetVersionID int64 `gorm:"column:target_version_id;type:bigint(20) unsigned;not null;comment:评估对象默认版本 id" json:"target_version_id"` // 评估对象默认版本 id + ExptType int32 `gorm:"column:expt_type;type:int(11) unsigned;not null;index:idx_space_id_expt_type_deleted_at,priority:2;default:1;comment:实验类型,offline:1,online:2..." json:"expt_type"` // 实验类型,offline:1,online:2... + TemplateConf *[]byte `gorm:"column:template_conf;type:blob binary;comment:实验模板配置,包含评估器列表、字段映射、加权配置、默认并发及调度等,json" json:"template_conf"` // 实验模板配置,包含评估器列表、字段映射、加权配置、默认并发及调度等,json + ExptInfo *[]byte `gorm:"column:expt_info;type:blob binary;comment:实验运行状态,包含创建实验数量,最后一次实验执行状态,json" json:"expt_info"` // 实验运行状态,包含创建实验数量,最后一次实验执行状态,json + CreatedBy string `gorm:"column:created_by;type:varchar(128);not null;index:idx_space_id_created_by_deleted_at,priority:2;default:0;comment:创建人" json:"created_by"` // 创建人 + UpdatedBy string `gorm:"column:updated_by;type:varchar(128);not null;default:0;comment:更新人" json:"updated_by"` // 更新人 + CreatedAt time.Time `gorm:"column:created_at;type:timestamp;not null;default:CURRENT_TIMESTAMP;comment:创建时间" json:"created_at"` // 创建时间 + UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;not null;default:CURRENT_TIMESTAMP;comment:更新时间" json:"updated_at"` // 更新时间 + DeletedAt gorm.DeletedAt `gorm:"column:deleted_at;type:timestamp;uniqueIndex:uk_space_id_name_deleted_at,priority:3;index:idx_space_id_created_by_deleted_at,priority:3;index:idx_space_id_eval_set_id_deleted_at,priority:3;index:idx_space_id_target_id_deleted_at,priority:3;index:idx_space_id_expt_type_deleted_at,priority:3;comment:删除时间" json:"deleted_at"` // 删除时间 +} + +// TableName ExptTemplate's table name +func (*ExptTemplate) TableName() string { + return TableNameExptTemplate +} diff --git a/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/model/expt_template_evaluator_ref.gen.go b/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/model/expt_template_evaluator_ref.gen.go new file mode 100644 index 000000000..abb1bf117 --- /dev/null +++ b/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/model/expt_template_evaluator_ref.gen.go @@ -0,0 +1,30 @@ +// Code generated by gorm.io/gen. DO NOT EDIT. +// Code generated by gorm.io/gen. DO NOT EDIT. +// Code generated by gorm.io/gen. DO NOT EDIT. + +package model + +import ( + "time" + + "gorm.io/gorm" +) + +const TableNameExptTemplateEvaluatorRef = "expt_template_evaluator_ref" + +// ExptTemplateEvaluatorRef expt_template_evaluator_ref +type ExptTemplateEvaluatorRef struct { + ID int64 `gorm:"column:id;type:bigint(20) unsigned;primaryKey;comment:id" json:"id"` // id + SpaceID int64 `gorm:"column:space_id;type:bigint(20) unsigned;not null;index:idx_space_id_expt_template_id,priority:1;index:idx_space_id_evaluator_id,priority:1;index:idx_space_id_evaluator_version_id,priority:1;comment:空间 id" json:"space_id"` // 空间 id + ExptTemplateID int64 `gorm:"column:expt_template_id;type:bigint(20) unsigned;not null;index:idx_space_id_expt_template_id,priority:2;comment:实验模板 id" json:"expt_template_id"` // 实验模板 id + EvaluatorID int64 `gorm:"column:evaluator_id;type:bigint(20) unsigned;not null;index:idx_space_id_evaluator_id,priority:2;comment:评估器 id" json:"evaluator_id"` // 评估器 id + EvaluatorVersionID int64 `gorm:"column:evaluator_version_id;type:bigint(20) unsigned;not null;index:idx_space_id_evaluator_version_id,priority:2;comment:评估器版本 id" json:"evaluator_version_id"` // 评估器版本 id + CreatedAt time.Time `gorm:"column:created_at;type:timestamp;not null;default:CURRENT_TIMESTAMP;comment:创建时间" json:"created_at"` // 创建时间 + UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;not null;default:CURRENT_TIMESTAMP;comment:更新时间" json:"updated_at"` // 更新时间 + DeletedAt gorm.DeletedAt `gorm:"column:deleted_at;type:timestamp;comment:删除时间" json:"deleted_at"` // 删除时间 +} + +// TableName ExptTemplateEvaluatorRef's table name +func (*ExptTemplateEvaluatorRef) TableName() string { + return TableNameExptTemplateEvaluatorRef +} diff --git a/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/model/expt_turn_result.gen.go b/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/model/expt_turn_result.gen.go index 03ba785ff..7d530c1f4 100644 --- a/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/model/expt_turn_result.gen.go +++ b/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/model/expt_turn_result.gen.go @@ -26,6 +26,7 @@ type ExptTurnResult struct { LogID string `gorm:"column:log_id;type:varchar(128);not null;comment:日志 id" json:"log_id"` // 日志 id TargetResultID int64 `gorm:"column:target_result_id;type:bigint(20) unsigned;not null;comment:target_result_id" json:"target_result_id"` // target_result_id ErrMsg *[]byte `gorm:"column:err_msg;type:blob binary;comment:错误信息" json:"err_msg"` // 错误信息 + WeightedScore *float64 `gorm:"column:weighted_score;type:decimal(10,4);comment:加权汇总得分" json:"weighted_score"` // 加权汇总得分 CreatedAt time.Time `gorm:"column:created_at;type:timestamp;not null;default:CURRENT_TIMESTAMP;comment:创建时间" json:"created_at"` // 创建时间 UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;not null;default:CURRENT_TIMESTAMP;comment:更新时间" json:"updated_at"` // 更新时间 DeletedAt gorm.DeletedAt `gorm:"column:deleted_at;type:timestamp;comment:删除时间" json:"deleted_at"` // 删除时间 diff --git a/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/query/experiment.gen.go b/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/query/experiment.gen.go index 08c778df3..ad98e086c 100644 --- a/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/query/experiment.gen.go +++ b/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/query/experiment.gen.go @@ -46,6 +46,7 @@ func newExperiment(db *gorm.DB, opts ...gen.DOOption) experiment { _experiment.LatestRunID = field.NewInt64(tableName, "latest_run_id") _experiment.TargetID = field.NewInt64(tableName, "target_id") _experiment.EvalSetID = field.NewInt64(tableName, "eval_set_id") + _experiment.ExptTemplateID = field.NewInt64(tableName, "expt_template_id") _experiment.CreditCost = field.NewInt32(tableName, "credit_cost") _experiment.SourceType = field.NewInt32(tableName, "source_type") _experiment.SourceID = field.NewString(tableName, "source_id") @@ -81,6 +82,7 @@ type experiment struct { LatestRunID field.Int64 // 最后运行id TargetID field.Int64 // 评估对象 id EvalSetID field.Int64 // 评测集 id + ExptTemplateID field.Int64 // 实验模板 id CreditCost field.Int32 // 权益消耗模式 SourceType field.Int32 // 实验来源类型,评测:1,自动化任务:2... SourceID field.String // 实验来源id @@ -121,6 +123,7 @@ func (e *experiment) updateTableName(table string) *experiment { e.LatestRunID = field.NewInt64(table, "latest_run_id") e.TargetID = field.NewInt64(table, "target_id") e.EvalSetID = field.NewInt64(table, "eval_set_id") + e.ExptTemplateID = field.NewInt64(table, "expt_template_id") e.CreditCost = field.NewInt32(table, "credit_cost") e.SourceType = field.NewInt32(table, "source_type") e.SourceID = field.NewString(table, "source_id") @@ -152,7 +155,7 @@ func (e *experiment) GetFieldByName(fieldName string) (field.OrderExpr, bool) { } func (e *experiment) fillFieldMap() { - e.fieldMap = make(map[string]field.Expr, 24) + e.fieldMap = make(map[string]field.Expr, 25) e.fieldMap["id"] = e.ID e.fieldMap["space_id"] = e.SpaceID e.fieldMap["created_by"] = e.CreatedBy @@ -172,6 +175,7 @@ func (e *experiment) fillFieldMap() { e.fieldMap["latest_run_id"] = e.LatestRunID e.fieldMap["target_id"] = e.TargetID e.fieldMap["eval_set_id"] = e.EvalSetID + e.fieldMap["expt_template_id"] = e.ExptTemplateID e.fieldMap["credit_cost"] = e.CreditCost e.fieldMap["source_type"] = e.SourceType e.fieldMap["source_id"] = e.SourceID diff --git a/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/query/expt_template.gen.go b/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/query/expt_template.gen.go new file mode 100644 index 000000000..7f1d0b8cd --- /dev/null +++ b/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/query/expt_template.gen.go @@ -0,0 +1,396 @@ +// Code generated by gorm.io/gen. DO NOT EDIT. +// Code generated by gorm.io/gen. DO NOT EDIT. +// Code generated by gorm.io/gen. DO NOT EDIT. + +package query + +import ( + "context" + + "gorm.io/gorm" + "gorm.io/gorm/clause" + "gorm.io/gorm/schema" + + "gorm.io/gen" + "gorm.io/gen/field" + + "gorm.io/plugin/dbresolver" + + "github.com/coze-dev/coze-loop/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/model" +) + +func newExptTemplate(db *gorm.DB, opts ...gen.DOOption) exptTemplate { + _exptTemplate := exptTemplate{} + + _exptTemplate.exptTemplateDo.UseDB(db, opts...) + _exptTemplate.exptTemplateDo.UseModel(&model.ExptTemplate{}) + + tableName := _exptTemplate.exptTemplateDo.TableName() + _exptTemplate.ALL = field.NewAsterisk(tableName) + _exptTemplate.ID = field.NewInt64(tableName, "id") + _exptTemplate.SpaceID = field.NewInt64(tableName, "space_id") + _exptTemplate.Name = field.NewString(tableName, "name") + _exptTemplate.Description = field.NewString(tableName, "description") + _exptTemplate.EvalSetID = field.NewInt64(tableName, "eval_set_id") + _exptTemplate.EvalSetVersionID = field.NewInt64(tableName, "eval_set_version_id") + _exptTemplate.TargetID = field.NewInt64(tableName, "target_id") + _exptTemplate.TargetType = field.NewInt64(tableName, "target_type") + _exptTemplate.TargetVersionID = field.NewInt64(tableName, "target_version_id") + _exptTemplate.ExptType = field.NewInt32(tableName, "expt_type") + _exptTemplate.TemplateConf = field.NewBytes(tableName, "template_conf") + _exptTemplate.ExptInfo = field.NewBytes(tableName, "expt_info") + _exptTemplate.CreatedBy = field.NewString(tableName, "created_by") + _exptTemplate.UpdatedBy = field.NewString(tableName, "updated_by") + _exptTemplate.CreatedAt = field.NewTime(tableName, "created_at") + _exptTemplate.UpdatedAt = field.NewTime(tableName, "updated_at") + _exptTemplate.DeletedAt = field.NewField(tableName, "deleted_at") + + _exptTemplate.fillFieldMap() + + return _exptTemplate +} + +// exptTemplate expt_template +type exptTemplate struct { + exptTemplateDo exptTemplateDo + + ALL field.Asterisk + ID field.Int64 // id + SpaceID field.Int64 // 空间 id + Name field.String // 实验模板名称 + Description field.String // 实验模板描述 + EvalSetID field.Int64 // 评测集 id(模板创建后不可修改) + EvalSetVersionID field.Int64 // 评测集默认版本 id + TargetID field.Int64 // 评估对象 id(模板创建后不可修改) + TargetType field.Int64 // 评估对象类型 + TargetVersionID field.Int64 // 评估对象默认版本 id + ExptType field.Int32 // 实验类型,offline:1,online:2... + TemplateConf field.Bytes // 实验模板配置,包含评估器列表、字段映射、加权配置、默认并发及调度等,json + ExptInfo field.Bytes // 实验运行状态,包含创建实验数量,最后一次实验执行状态,json + CreatedBy field.String // 创建人 + UpdatedBy field.String // 更新人 + CreatedAt field.Time // 创建时间 + UpdatedAt field.Time // 更新时间 + DeletedAt field.Field // 删除时间 + + fieldMap map[string]field.Expr +} + +func (e exptTemplate) Table(newTableName string) *exptTemplate { + e.exptTemplateDo.UseTable(newTableName) + return e.updateTableName(newTableName) +} + +func (e exptTemplate) As(alias string) *exptTemplate { + e.exptTemplateDo.DO = *(e.exptTemplateDo.As(alias).(*gen.DO)) + return e.updateTableName(alias) +} + +func (e *exptTemplate) updateTableName(table string) *exptTemplate { + e.ALL = field.NewAsterisk(table) + e.ID = field.NewInt64(table, "id") + e.SpaceID = field.NewInt64(table, "space_id") + e.Name = field.NewString(table, "name") + e.Description = field.NewString(table, "description") + e.EvalSetID = field.NewInt64(table, "eval_set_id") + e.EvalSetVersionID = field.NewInt64(table, "eval_set_version_id") + e.TargetID = field.NewInt64(table, "target_id") + e.TargetType = field.NewInt64(table, "target_type") + e.TargetVersionID = field.NewInt64(table, "target_version_id") + e.ExptType = field.NewInt32(table, "expt_type") + e.TemplateConf = field.NewBytes(table, "template_conf") + e.ExptInfo = field.NewBytes(table, "expt_info") + e.CreatedBy = field.NewString(table, "created_by") + e.UpdatedBy = field.NewString(table, "updated_by") + e.CreatedAt = field.NewTime(table, "created_at") + e.UpdatedAt = field.NewTime(table, "updated_at") + e.DeletedAt = field.NewField(table, "deleted_at") + + e.fillFieldMap() + + return e +} + +func (e *exptTemplate) WithContext(ctx context.Context) *exptTemplateDo { + return e.exptTemplateDo.WithContext(ctx) +} + +func (e exptTemplate) TableName() string { return e.exptTemplateDo.TableName() } + +func (e exptTemplate) Alias() string { return e.exptTemplateDo.Alias() } + +func (e exptTemplate) Columns(cols ...field.Expr) gen.Columns { + return e.exptTemplateDo.Columns(cols...) +} + +func (e *exptTemplate) GetFieldByName(fieldName string) (field.OrderExpr, bool) { + _f, ok := e.fieldMap[fieldName] + if !ok || _f == nil { + return nil, false + } + _oe, ok := _f.(field.OrderExpr) + return _oe, ok +} + +func (e *exptTemplate) fillFieldMap() { + e.fieldMap = make(map[string]field.Expr, 17) + e.fieldMap["id"] = e.ID + e.fieldMap["space_id"] = e.SpaceID + e.fieldMap["name"] = e.Name + e.fieldMap["description"] = e.Description + e.fieldMap["eval_set_id"] = e.EvalSetID + e.fieldMap["eval_set_version_id"] = e.EvalSetVersionID + e.fieldMap["target_id"] = e.TargetID + e.fieldMap["target_type"] = e.TargetType + e.fieldMap["target_version_id"] = e.TargetVersionID + e.fieldMap["expt_type"] = e.ExptType + e.fieldMap["template_conf"] = e.TemplateConf + e.fieldMap["expt_info"] = e.ExptInfo + e.fieldMap["created_by"] = e.CreatedBy + e.fieldMap["updated_by"] = e.UpdatedBy + e.fieldMap["created_at"] = e.CreatedAt + e.fieldMap["updated_at"] = e.UpdatedAt + e.fieldMap["deleted_at"] = e.DeletedAt +} + +func (e exptTemplate) clone(db *gorm.DB) exptTemplate { + e.exptTemplateDo.ReplaceConnPool(db.Statement.ConnPool) + return e +} + +func (e exptTemplate) replaceDB(db *gorm.DB) exptTemplate { + e.exptTemplateDo.ReplaceDB(db) + return e +} + +type exptTemplateDo struct{ gen.DO } + +func (e exptTemplateDo) Debug() *exptTemplateDo { + return e.withDO(e.DO.Debug()) +} + +func (e exptTemplateDo) WithContext(ctx context.Context) *exptTemplateDo { + return e.withDO(e.DO.WithContext(ctx)) +} + +func (e exptTemplateDo) ReadDB() *exptTemplateDo { + return e.Clauses(dbresolver.Read) +} + +func (e exptTemplateDo) WriteDB() *exptTemplateDo { + return e.Clauses(dbresolver.Write) +} + +func (e exptTemplateDo) Session(config *gorm.Session) *exptTemplateDo { + return e.withDO(e.DO.Session(config)) +} + +func (e exptTemplateDo) Clauses(conds ...clause.Expression) *exptTemplateDo { + return e.withDO(e.DO.Clauses(conds...)) +} + +func (e exptTemplateDo) Returning(value interface{}, columns ...string) *exptTemplateDo { + return e.withDO(e.DO.Returning(value, columns...)) +} + +func (e exptTemplateDo) Not(conds ...gen.Condition) *exptTemplateDo { + return e.withDO(e.DO.Not(conds...)) +} + +func (e exptTemplateDo) Or(conds ...gen.Condition) *exptTemplateDo { + return e.withDO(e.DO.Or(conds...)) +} + +func (e exptTemplateDo) Select(conds ...field.Expr) *exptTemplateDo { + return e.withDO(e.DO.Select(conds...)) +} + +func (e exptTemplateDo) Where(conds ...gen.Condition) *exptTemplateDo { + return e.withDO(e.DO.Where(conds...)) +} + +func (e exptTemplateDo) Order(conds ...field.Expr) *exptTemplateDo { + return e.withDO(e.DO.Order(conds...)) +} + +func (e exptTemplateDo) Distinct(cols ...field.Expr) *exptTemplateDo { + return e.withDO(e.DO.Distinct(cols...)) +} + +func (e exptTemplateDo) Omit(cols ...field.Expr) *exptTemplateDo { + return e.withDO(e.DO.Omit(cols...)) +} + +func (e exptTemplateDo) Join(table schema.Tabler, on ...field.Expr) *exptTemplateDo { + return e.withDO(e.DO.Join(table, on...)) +} + +func (e exptTemplateDo) LeftJoin(table schema.Tabler, on ...field.Expr) *exptTemplateDo { + return e.withDO(e.DO.LeftJoin(table, on...)) +} + +func (e exptTemplateDo) RightJoin(table schema.Tabler, on ...field.Expr) *exptTemplateDo { + return e.withDO(e.DO.RightJoin(table, on...)) +} + +func (e exptTemplateDo) Group(cols ...field.Expr) *exptTemplateDo { + return e.withDO(e.DO.Group(cols...)) +} + +func (e exptTemplateDo) Having(conds ...gen.Condition) *exptTemplateDo { + return e.withDO(e.DO.Having(conds...)) +} + +func (e exptTemplateDo) Limit(limit int) *exptTemplateDo { + return e.withDO(e.DO.Limit(limit)) +} + +func (e exptTemplateDo) Offset(offset int) *exptTemplateDo { + return e.withDO(e.DO.Offset(offset)) +} + +func (e exptTemplateDo) Scopes(funcs ...func(gen.Dao) gen.Dao) *exptTemplateDo { + return e.withDO(e.DO.Scopes(funcs...)) +} + +func (e exptTemplateDo) Unscoped() *exptTemplateDo { + return e.withDO(e.DO.Unscoped()) +} + +func (e exptTemplateDo) Create(values ...*model.ExptTemplate) error { + if len(values) == 0 { + return nil + } + return e.DO.Create(values) +} + +func (e exptTemplateDo) CreateInBatches(values []*model.ExptTemplate, batchSize int) error { + return e.DO.CreateInBatches(values, batchSize) +} + +// Save : !!! underlying implementation is different with GORM +// The method is equivalent to executing the statement: db.Clauses(clause.OnConflict{UpdateAll: true}).Create(values) +func (e exptTemplateDo) Save(values ...*model.ExptTemplate) error { + if len(values) == 0 { + return nil + } + return e.DO.Save(values) +} + +func (e exptTemplateDo) First() (*model.ExptTemplate, error) { + if result, err := e.DO.First(); err != nil { + return nil, err + } else { + return result.(*model.ExptTemplate), nil + } +} + +func (e exptTemplateDo) Take() (*model.ExptTemplate, error) { + if result, err := e.DO.Take(); err != nil { + return nil, err + } else { + return result.(*model.ExptTemplate), nil + } +} + +func (e exptTemplateDo) Last() (*model.ExptTemplate, error) { + if result, err := e.DO.Last(); err != nil { + return nil, err + } else { + return result.(*model.ExptTemplate), nil + } +} + +func (e exptTemplateDo) Find() ([]*model.ExptTemplate, error) { + result, err := e.DO.Find() + return result.([]*model.ExptTemplate), err +} + +func (e exptTemplateDo) FindInBatch(batchSize int, fc func(tx gen.Dao, batch int) error) (results []*model.ExptTemplate, err error) { + buf := make([]*model.ExptTemplate, 0, batchSize) + err = e.DO.FindInBatches(&buf, batchSize, func(tx gen.Dao, batch int) error { + defer func() { results = append(results, buf...) }() + return fc(tx, batch) + }) + return results, err +} + +func (e exptTemplateDo) FindInBatches(result *[]*model.ExptTemplate, batchSize int, fc func(tx gen.Dao, batch int) error) error { + return e.DO.FindInBatches(result, batchSize, fc) +} + +func (e exptTemplateDo) Attrs(attrs ...field.AssignExpr) *exptTemplateDo { + return e.withDO(e.DO.Attrs(attrs...)) +} + +func (e exptTemplateDo) Assign(attrs ...field.AssignExpr) *exptTemplateDo { + return e.withDO(e.DO.Assign(attrs...)) +} + +func (e exptTemplateDo) Joins(fields ...field.RelationField) *exptTemplateDo { + for _, _f := range fields { + e = *e.withDO(e.DO.Joins(_f)) + } + return &e +} + +func (e exptTemplateDo) Preload(fields ...field.RelationField) *exptTemplateDo { + for _, _f := range fields { + e = *e.withDO(e.DO.Preload(_f)) + } + return &e +} + +func (e exptTemplateDo) FirstOrInit() (*model.ExptTemplate, error) { + if result, err := e.DO.FirstOrInit(); err != nil { + return nil, err + } else { + return result.(*model.ExptTemplate), nil + } +} + +func (e exptTemplateDo) FirstOrCreate() (*model.ExptTemplate, error) { + if result, err := e.DO.FirstOrCreate(); err != nil { + return nil, err + } else { + return result.(*model.ExptTemplate), nil + } +} + +func (e exptTemplateDo) FindByPage(offset int, limit int) (result []*model.ExptTemplate, count int64, err error) { + result, err = e.Offset(offset).Limit(limit).Find() + if err != nil { + return + } + + if size := len(result); 0 < limit && 0 < size && size < limit { + count = int64(size + offset) + return + } + + count, err = e.Offset(-1).Limit(-1).Count() + return +} + +func (e exptTemplateDo) ScanByPage(result interface{}, offset int, limit int) (count int64, err error) { + count, err = e.Count() + if err != nil { + return + } + + err = e.Offset(offset).Limit(limit).Scan(result) + return +} + +func (e exptTemplateDo) Scan(result interface{}) (err error) { + return e.DO.Scan(result) +} + +func (e exptTemplateDo) Delete(models ...*model.ExptTemplate) (result gen.ResultInfo, err error) { + return e.DO.Delete(models) +} + +func (e *exptTemplateDo) withDO(do gen.Dao) *exptTemplateDo { + e.DO = *do.(*gen.DO) + return e +} diff --git a/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/query/expt_template_evaluator_ref.gen.go b/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/query/expt_template_evaluator_ref.gen.go new file mode 100644 index 000000000..a91b07e71 --- /dev/null +++ b/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/query/expt_template_evaluator_ref.gen.go @@ -0,0 +1,360 @@ +// Code generated by gorm.io/gen. DO NOT EDIT. +// Code generated by gorm.io/gen. DO NOT EDIT. +// Code generated by gorm.io/gen. DO NOT EDIT. + +package query + +import ( + "context" + + "gorm.io/gorm" + "gorm.io/gorm/clause" + "gorm.io/gorm/schema" + + "gorm.io/gen" + "gorm.io/gen/field" + + "gorm.io/plugin/dbresolver" + + "github.com/coze-dev/coze-loop/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/model" +) + +func newExptTemplateEvaluatorRef(db *gorm.DB, opts ...gen.DOOption) exptTemplateEvaluatorRef { + _exptTemplateEvaluatorRef := exptTemplateEvaluatorRef{} + + _exptTemplateEvaluatorRef.exptTemplateEvaluatorRefDo.UseDB(db, opts...) + _exptTemplateEvaluatorRef.exptTemplateEvaluatorRefDo.UseModel(&model.ExptTemplateEvaluatorRef{}) + + tableName := _exptTemplateEvaluatorRef.exptTemplateEvaluatorRefDo.TableName() + _exptTemplateEvaluatorRef.ALL = field.NewAsterisk(tableName) + _exptTemplateEvaluatorRef.ID = field.NewInt64(tableName, "id") + _exptTemplateEvaluatorRef.SpaceID = field.NewInt64(tableName, "space_id") + _exptTemplateEvaluatorRef.ExptTemplateID = field.NewInt64(tableName, "expt_template_id") + _exptTemplateEvaluatorRef.EvaluatorID = field.NewInt64(tableName, "evaluator_id") + _exptTemplateEvaluatorRef.EvaluatorVersionID = field.NewInt64(tableName, "evaluator_version_id") + _exptTemplateEvaluatorRef.CreatedAt = field.NewTime(tableName, "created_at") + _exptTemplateEvaluatorRef.UpdatedAt = field.NewTime(tableName, "updated_at") + _exptTemplateEvaluatorRef.DeletedAt = field.NewField(tableName, "deleted_at") + + _exptTemplateEvaluatorRef.fillFieldMap() + + return _exptTemplateEvaluatorRef +} + +// exptTemplateEvaluatorRef expt_template_evaluator_ref +type exptTemplateEvaluatorRef struct { + exptTemplateEvaluatorRefDo exptTemplateEvaluatorRefDo + + ALL field.Asterisk + ID field.Int64 // id + SpaceID field.Int64 // 空间 id + ExptTemplateID field.Int64 // 实验模板 id + EvaluatorID field.Int64 // 评估器 id + EvaluatorVersionID field.Int64 // 评估器版本 id + CreatedAt field.Time // 创建时间 + UpdatedAt field.Time // 更新时间 + DeletedAt field.Field // 删除时间 + + fieldMap map[string]field.Expr +} + +func (e exptTemplateEvaluatorRef) Table(newTableName string) *exptTemplateEvaluatorRef { + e.exptTemplateEvaluatorRefDo.UseTable(newTableName) + return e.updateTableName(newTableName) +} + +func (e exptTemplateEvaluatorRef) As(alias string) *exptTemplateEvaluatorRef { + e.exptTemplateEvaluatorRefDo.DO = *(e.exptTemplateEvaluatorRefDo.As(alias).(*gen.DO)) + return e.updateTableName(alias) +} + +func (e *exptTemplateEvaluatorRef) updateTableName(table string) *exptTemplateEvaluatorRef { + e.ALL = field.NewAsterisk(table) + e.ID = field.NewInt64(table, "id") + e.SpaceID = field.NewInt64(table, "space_id") + e.ExptTemplateID = field.NewInt64(table, "expt_template_id") + e.EvaluatorID = field.NewInt64(table, "evaluator_id") + e.EvaluatorVersionID = field.NewInt64(table, "evaluator_version_id") + e.CreatedAt = field.NewTime(table, "created_at") + e.UpdatedAt = field.NewTime(table, "updated_at") + e.DeletedAt = field.NewField(table, "deleted_at") + + e.fillFieldMap() + + return e +} + +func (e *exptTemplateEvaluatorRef) WithContext(ctx context.Context) *exptTemplateEvaluatorRefDo { + return e.exptTemplateEvaluatorRefDo.WithContext(ctx) +} + +func (e exptTemplateEvaluatorRef) TableName() string { return e.exptTemplateEvaluatorRefDo.TableName() } + +func (e exptTemplateEvaluatorRef) Alias() string { return e.exptTemplateEvaluatorRefDo.Alias() } + +func (e exptTemplateEvaluatorRef) Columns(cols ...field.Expr) gen.Columns { + return e.exptTemplateEvaluatorRefDo.Columns(cols...) +} + +func (e *exptTemplateEvaluatorRef) GetFieldByName(fieldName string) (field.OrderExpr, bool) { + _f, ok := e.fieldMap[fieldName] + if !ok || _f == nil { + return nil, false + } + _oe, ok := _f.(field.OrderExpr) + return _oe, ok +} + +func (e *exptTemplateEvaluatorRef) fillFieldMap() { + e.fieldMap = make(map[string]field.Expr, 8) + e.fieldMap["id"] = e.ID + e.fieldMap["space_id"] = e.SpaceID + e.fieldMap["expt_template_id"] = e.ExptTemplateID + e.fieldMap["evaluator_id"] = e.EvaluatorID + e.fieldMap["evaluator_version_id"] = e.EvaluatorVersionID + e.fieldMap["created_at"] = e.CreatedAt + e.fieldMap["updated_at"] = e.UpdatedAt + e.fieldMap["deleted_at"] = e.DeletedAt +} + +func (e exptTemplateEvaluatorRef) clone(db *gorm.DB) exptTemplateEvaluatorRef { + e.exptTemplateEvaluatorRefDo.ReplaceConnPool(db.Statement.ConnPool) + return e +} + +func (e exptTemplateEvaluatorRef) replaceDB(db *gorm.DB) exptTemplateEvaluatorRef { + e.exptTemplateEvaluatorRefDo.ReplaceDB(db) + return e +} + +type exptTemplateEvaluatorRefDo struct{ gen.DO } + +func (e exptTemplateEvaluatorRefDo) Debug() *exptTemplateEvaluatorRefDo { + return e.withDO(e.DO.Debug()) +} + +func (e exptTemplateEvaluatorRefDo) WithContext(ctx context.Context) *exptTemplateEvaluatorRefDo { + return e.withDO(e.DO.WithContext(ctx)) +} + +func (e exptTemplateEvaluatorRefDo) ReadDB() *exptTemplateEvaluatorRefDo { + return e.Clauses(dbresolver.Read) +} + +func (e exptTemplateEvaluatorRefDo) WriteDB() *exptTemplateEvaluatorRefDo { + return e.Clauses(dbresolver.Write) +} + +func (e exptTemplateEvaluatorRefDo) Session(config *gorm.Session) *exptTemplateEvaluatorRefDo { + return e.withDO(e.DO.Session(config)) +} + +func (e exptTemplateEvaluatorRefDo) Clauses(conds ...clause.Expression) *exptTemplateEvaluatorRefDo { + return e.withDO(e.DO.Clauses(conds...)) +} + +func (e exptTemplateEvaluatorRefDo) Returning(value interface{}, columns ...string) *exptTemplateEvaluatorRefDo { + return e.withDO(e.DO.Returning(value, columns...)) +} + +func (e exptTemplateEvaluatorRefDo) Not(conds ...gen.Condition) *exptTemplateEvaluatorRefDo { + return e.withDO(e.DO.Not(conds...)) +} + +func (e exptTemplateEvaluatorRefDo) Or(conds ...gen.Condition) *exptTemplateEvaluatorRefDo { + return e.withDO(e.DO.Or(conds...)) +} + +func (e exptTemplateEvaluatorRefDo) Select(conds ...field.Expr) *exptTemplateEvaluatorRefDo { + return e.withDO(e.DO.Select(conds...)) +} + +func (e exptTemplateEvaluatorRefDo) Where(conds ...gen.Condition) *exptTemplateEvaluatorRefDo { + return e.withDO(e.DO.Where(conds...)) +} + +func (e exptTemplateEvaluatorRefDo) Order(conds ...field.Expr) *exptTemplateEvaluatorRefDo { + return e.withDO(e.DO.Order(conds...)) +} + +func (e exptTemplateEvaluatorRefDo) Distinct(cols ...field.Expr) *exptTemplateEvaluatorRefDo { + return e.withDO(e.DO.Distinct(cols...)) +} + +func (e exptTemplateEvaluatorRefDo) Omit(cols ...field.Expr) *exptTemplateEvaluatorRefDo { + return e.withDO(e.DO.Omit(cols...)) +} + +func (e exptTemplateEvaluatorRefDo) Join(table schema.Tabler, on ...field.Expr) *exptTemplateEvaluatorRefDo { + return e.withDO(e.DO.Join(table, on...)) +} + +func (e exptTemplateEvaluatorRefDo) LeftJoin(table schema.Tabler, on ...field.Expr) *exptTemplateEvaluatorRefDo { + return e.withDO(e.DO.LeftJoin(table, on...)) +} + +func (e exptTemplateEvaluatorRefDo) RightJoin(table schema.Tabler, on ...field.Expr) *exptTemplateEvaluatorRefDo { + return e.withDO(e.DO.RightJoin(table, on...)) +} + +func (e exptTemplateEvaluatorRefDo) Group(cols ...field.Expr) *exptTemplateEvaluatorRefDo { + return e.withDO(e.DO.Group(cols...)) +} + +func (e exptTemplateEvaluatorRefDo) Having(conds ...gen.Condition) *exptTemplateEvaluatorRefDo { + return e.withDO(e.DO.Having(conds...)) +} + +func (e exptTemplateEvaluatorRefDo) Limit(limit int) *exptTemplateEvaluatorRefDo { + return e.withDO(e.DO.Limit(limit)) +} + +func (e exptTemplateEvaluatorRefDo) Offset(offset int) *exptTemplateEvaluatorRefDo { + return e.withDO(e.DO.Offset(offset)) +} + +func (e exptTemplateEvaluatorRefDo) Scopes(funcs ...func(gen.Dao) gen.Dao) *exptTemplateEvaluatorRefDo { + return e.withDO(e.DO.Scopes(funcs...)) +} + +func (e exptTemplateEvaluatorRefDo) Unscoped() *exptTemplateEvaluatorRefDo { + return e.withDO(e.DO.Unscoped()) +} + +func (e exptTemplateEvaluatorRefDo) Create(values ...*model.ExptTemplateEvaluatorRef) error { + if len(values) == 0 { + return nil + } + return e.DO.Create(values) +} + +func (e exptTemplateEvaluatorRefDo) CreateInBatches(values []*model.ExptTemplateEvaluatorRef, batchSize int) error { + return e.DO.CreateInBatches(values, batchSize) +} + +// Save : !!! underlying implementation is different with GORM +// The method is equivalent to executing the statement: db.Clauses(clause.OnConflict{UpdateAll: true}).Create(values) +func (e exptTemplateEvaluatorRefDo) Save(values ...*model.ExptTemplateEvaluatorRef) error { + if len(values) == 0 { + return nil + } + return e.DO.Save(values) +} + +func (e exptTemplateEvaluatorRefDo) First() (*model.ExptTemplateEvaluatorRef, error) { + if result, err := e.DO.First(); err != nil { + return nil, err + } else { + return result.(*model.ExptTemplateEvaluatorRef), nil + } +} + +func (e exptTemplateEvaluatorRefDo) Take() (*model.ExptTemplateEvaluatorRef, error) { + if result, err := e.DO.Take(); err != nil { + return nil, err + } else { + return result.(*model.ExptTemplateEvaluatorRef), nil + } +} + +func (e exptTemplateEvaluatorRefDo) Last() (*model.ExptTemplateEvaluatorRef, error) { + if result, err := e.DO.Last(); err != nil { + return nil, err + } else { + return result.(*model.ExptTemplateEvaluatorRef), nil + } +} + +func (e exptTemplateEvaluatorRefDo) Find() ([]*model.ExptTemplateEvaluatorRef, error) { + result, err := e.DO.Find() + return result.([]*model.ExptTemplateEvaluatorRef), err +} + +func (e exptTemplateEvaluatorRefDo) FindInBatch(batchSize int, fc func(tx gen.Dao, batch int) error) (results []*model.ExptTemplateEvaluatorRef, err error) { + buf := make([]*model.ExptTemplateEvaluatorRef, 0, batchSize) + err = e.DO.FindInBatches(&buf, batchSize, func(tx gen.Dao, batch int) error { + defer func() { results = append(results, buf...) }() + return fc(tx, batch) + }) + return results, err +} + +func (e exptTemplateEvaluatorRefDo) FindInBatches(result *[]*model.ExptTemplateEvaluatorRef, batchSize int, fc func(tx gen.Dao, batch int) error) error { + return e.DO.FindInBatches(result, batchSize, fc) +} + +func (e exptTemplateEvaluatorRefDo) Attrs(attrs ...field.AssignExpr) *exptTemplateEvaluatorRefDo { + return e.withDO(e.DO.Attrs(attrs...)) +} + +func (e exptTemplateEvaluatorRefDo) Assign(attrs ...field.AssignExpr) *exptTemplateEvaluatorRefDo { + return e.withDO(e.DO.Assign(attrs...)) +} + +func (e exptTemplateEvaluatorRefDo) Joins(fields ...field.RelationField) *exptTemplateEvaluatorRefDo { + for _, _f := range fields { + e = *e.withDO(e.DO.Joins(_f)) + } + return &e +} + +func (e exptTemplateEvaluatorRefDo) Preload(fields ...field.RelationField) *exptTemplateEvaluatorRefDo { + for _, _f := range fields { + e = *e.withDO(e.DO.Preload(_f)) + } + return &e +} + +func (e exptTemplateEvaluatorRefDo) FirstOrInit() (*model.ExptTemplateEvaluatorRef, error) { + if result, err := e.DO.FirstOrInit(); err != nil { + return nil, err + } else { + return result.(*model.ExptTemplateEvaluatorRef), nil + } +} + +func (e exptTemplateEvaluatorRefDo) FirstOrCreate() (*model.ExptTemplateEvaluatorRef, error) { + if result, err := e.DO.FirstOrCreate(); err != nil { + return nil, err + } else { + return result.(*model.ExptTemplateEvaluatorRef), nil + } +} + +func (e exptTemplateEvaluatorRefDo) FindByPage(offset int, limit int) (result []*model.ExptTemplateEvaluatorRef, count int64, err error) { + result, err = e.Offset(offset).Limit(limit).Find() + if err != nil { + return + } + + if size := len(result); 0 < limit && 0 < size && size < limit { + count = int64(size + offset) + return + } + + count, err = e.Offset(-1).Limit(-1).Count() + return +} + +func (e exptTemplateEvaluatorRefDo) ScanByPage(result interface{}, offset int, limit int) (count int64, err error) { + count, err = e.Count() + if err != nil { + return + } + + err = e.Offset(offset).Limit(limit).Scan(result) + return +} + +func (e exptTemplateEvaluatorRefDo) Scan(result interface{}) (err error) { + return e.DO.Scan(result) +} + +func (e exptTemplateEvaluatorRefDo) Delete(models ...*model.ExptTemplateEvaluatorRef) (result gen.ResultInfo, err error) { + return e.DO.Delete(models) +} + +func (e *exptTemplateEvaluatorRefDo) withDO(do gen.Dao) *exptTemplateEvaluatorRefDo { + e.DO = *do.(*gen.DO) + return e +} diff --git a/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/query/expt_turn_result.gen.go b/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/query/expt_turn_result.gen.go index a900cf72d..0fcc70406 100644 --- a/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/query/expt_turn_result.gen.go +++ b/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/query/expt_turn_result.gen.go @@ -39,6 +39,7 @@ func newExptTurnResult(db *gorm.DB, opts ...gen.DOOption) exptTurnResult { _exptTurnResult.LogID = field.NewString(tableName, "log_id") _exptTurnResult.TargetResultID = field.NewInt64(tableName, "target_result_id") _exptTurnResult.ErrMsg = field.NewBytes(tableName, "err_msg") + _exptTurnResult.WeightedScore = field.NewFloat64(tableName, "weighted_score") _exptTurnResult.CreatedAt = field.NewTime(tableName, "created_at") _exptTurnResult.UpdatedAt = field.NewTime(tableName, "updated_at") _exptTurnResult.DeletedAt = field.NewField(tableName, "deleted_at") @@ -53,21 +54,22 @@ type exptTurnResult struct { exptTurnResultDo exptTurnResultDo ALL field.Asterisk - ID field.Int64 // id - SpaceID field.Int64 // 空间 id - ExptID field.Int64 // 实验 id - ExptRunID field.Int64 // 实验运行 id - ItemID field.Int64 // item_id - TurnID field.Int64 // turn_id - TurnIdx field.Int32 // turn 序号 - Status field.Int32 // 状态 - TraceID field.Int64 // trace_id - LogID field.String // 日志 id - TargetResultID field.Int64 // target_result_id - ErrMsg field.Bytes // 错误信息 - CreatedAt field.Time // 创建时间 - UpdatedAt field.Time // 更新时间 - DeletedAt field.Field // 删除时间 + ID field.Int64 // id + SpaceID field.Int64 // 空间 id + ExptID field.Int64 // 实验 id + ExptRunID field.Int64 // 实验运行 id + ItemID field.Int64 // item_id + TurnID field.Int64 // turn_id + TurnIdx field.Int32 // turn 序号 + Status field.Int32 // 状态 + TraceID field.Int64 // trace_id + LogID field.String // 日志 id + TargetResultID field.Int64 // target_result_id + ErrMsg field.Bytes // 错误信息 + WeightedScore field.Float64 // 加权汇总得分 + CreatedAt field.Time // 创建时间 + UpdatedAt field.Time // 更新时间 + DeletedAt field.Field // 删除时间 fieldMap map[string]field.Expr } @@ -96,6 +98,7 @@ func (e *exptTurnResult) updateTableName(table string) *exptTurnResult { e.LogID = field.NewString(table, "log_id") e.TargetResultID = field.NewInt64(table, "target_result_id") e.ErrMsg = field.NewBytes(table, "err_msg") + e.WeightedScore = field.NewFloat64(table, "weighted_score") e.CreatedAt = field.NewTime(table, "created_at") e.UpdatedAt = field.NewTime(table, "updated_at") e.DeletedAt = field.NewField(table, "deleted_at") @@ -127,7 +130,7 @@ func (e *exptTurnResult) GetFieldByName(fieldName string) (field.OrderExpr, bool } func (e *exptTurnResult) fillFieldMap() { - e.fieldMap = make(map[string]field.Expr, 15) + e.fieldMap = make(map[string]field.Expr, 16) e.fieldMap["id"] = e.ID e.fieldMap["space_id"] = e.SpaceID e.fieldMap["expt_id"] = e.ExptID @@ -140,6 +143,7 @@ func (e *exptTurnResult) fillFieldMap() { e.fieldMap["log_id"] = e.LogID e.fieldMap["target_result_id"] = e.TargetResultID e.fieldMap["err_msg"] = e.ErrMsg + e.fieldMap["weighted_score"] = e.WeightedScore e.fieldMap["created_at"] = e.CreatedAt e.fieldMap["updated_at"] = e.UpdatedAt e.fieldMap["deleted_at"] = e.DeletedAt diff --git a/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/query/gen.go b/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/query/gen.go index 311f150f6..cbdb0caf3 100644 --- a/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/query/gen.go +++ b/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/query/gen.go @@ -30,6 +30,8 @@ func Use(db *gorm.DB, opts ...gen.DOOption) *Query { ExptResultExportRecord: newExptResultExportRecord(db, opts...), ExptRunLog: newExptRunLog(db, opts...), ExptStats: newExptStats(db, opts...), + ExptTemplate: newExptTemplate(db, opts...), + ExptTemplateEvaluatorRef: newExptTemplateEvaluatorRef(db, opts...), ExptTurnAnnotateRecordRef: newExptTurnAnnotateRecordRef(db, opts...), ExptTurnEvaluatorResultRef: newExptTurnEvaluatorResultRef(db, opts...), ExptTurnResult: newExptTurnResult(db, opts...), @@ -54,6 +56,8 @@ type Query struct { ExptResultExportRecord exptResultExportRecord ExptRunLog exptRunLog ExptStats exptStats + ExptTemplate exptTemplate + ExptTemplateEvaluatorRef exptTemplateEvaluatorRef ExptTurnAnnotateRecordRef exptTurnAnnotateRecordRef ExptTurnEvaluatorResultRef exptTurnEvaluatorResultRef ExptTurnResult exptTurnResult @@ -79,6 +83,8 @@ func (q *Query) clone(db *gorm.DB) *Query { ExptResultExportRecord: q.ExptResultExportRecord.clone(db), ExptRunLog: q.ExptRunLog.clone(db), ExptStats: q.ExptStats.clone(db), + ExptTemplate: q.ExptTemplate.clone(db), + ExptTemplateEvaluatorRef: q.ExptTemplateEvaluatorRef.clone(db), ExptTurnAnnotateRecordRef: q.ExptTurnAnnotateRecordRef.clone(db), ExptTurnEvaluatorResultRef: q.ExptTurnEvaluatorResultRef.clone(db), ExptTurnResult: q.ExptTurnResult.clone(db), @@ -111,6 +117,8 @@ func (q *Query) ReplaceDB(db *gorm.DB) *Query { ExptResultExportRecord: q.ExptResultExportRecord.replaceDB(db), ExptRunLog: q.ExptRunLog.replaceDB(db), ExptStats: q.ExptStats.replaceDB(db), + ExptTemplate: q.ExptTemplate.replaceDB(db), + ExptTemplateEvaluatorRef: q.ExptTemplateEvaluatorRef.replaceDB(db), ExptTurnAnnotateRecordRef: q.ExptTurnAnnotateRecordRef.replaceDB(db), ExptTurnEvaluatorResultRef: q.ExptTurnEvaluatorResultRef.replaceDB(db), ExptTurnResult: q.ExptTurnResult.replaceDB(db), @@ -133,6 +141,8 @@ type queryCtx struct { ExptResultExportRecord *exptResultExportRecordDo ExptRunLog *exptRunLogDo ExptStats *exptStatsDo + ExptTemplate *exptTemplateDo + ExptTemplateEvaluatorRef *exptTemplateEvaluatorRefDo ExptTurnAnnotateRecordRef *exptTurnAnnotateRecordRefDo ExptTurnEvaluatorResultRef *exptTurnEvaluatorResultRefDo ExptTurnResult *exptTurnResultDo @@ -155,6 +165,8 @@ func (q *Query) WithContext(ctx context.Context) *queryCtx { ExptResultExportRecord: q.ExptResultExportRecord.WithContext(ctx), ExptRunLog: q.ExptRunLog.WithContext(ctx), ExptStats: q.ExptStats.WithContext(ctx), + ExptTemplate: q.ExptTemplate.WithContext(ctx), + ExptTemplateEvaluatorRef: q.ExptTemplateEvaluatorRef.WithContext(ctx), ExptTurnAnnotateRecordRef: q.ExptTurnAnnotateRecordRef.WithContext(ctx), ExptTurnEvaluatorResultRef: q.ExptTurnEvaluatorResultRef.WithContext(ctx), ExptTurnResult: q.ExptTurnResult.WithContext(ctx), diff --git a/backend/modules/evaluation/infra/repo/experiment/mysql/mocks/expt_insight_analysis_feedback_vote.go b/backend/modules/evaluation/infra/repo/experiment/mysql/mocks/expt_insight_analysis_feedback_vote.go index 2c12c6390..f16a2358d 100644 --- a/backend/modules/evaluation/infra/repo/experiment/mysql/mocks/expt_insight_analysis_feedback_vote.go +++ b/backend/modules/evaluation/infra/repo/experiment/mysql/mocks/expt_insight_analysis_feedback_vote.go @@ -1,5 +1,10 @@ // Code generated by MockGen. DO NOT EDIT. // Source: github.com/coze-dev/coze-loop/backend/modules/evaluation/infra/repo/experiment/mysql (interfaces: IExptInsightAnalysisFeedbackVoteDAO) +// +// Generated by this command: +// +// mockgen -destination=mocks/expt_insight_analysis_feedback_vote.go -package mocks . IExptInsightAnalysisFeedbackVoteDAO +// // Package mocks is a generated GoMock package. package mocks @@ -17,6 +22,7 @@ import ( type MockIExptInsightAnalysisFeedbackVoteDAO struct { ctrl *gomock.Controller recorder *MockIExptInsightAnalysisFeedbackVoteDAOMockRecorder + isgomock struct{} } // MockIExptInsightAnalysisFeedbackVoteDAOMockRecorder is the mock recorder for MockIExptInsightAnalysisFeedbackVoteDAO. @@ -37,10 +43,10 @@ func (m *MockIExptInsightAnalysisFeedbackVoteDAO) EXPECT() *MockIExptInsightAnal } // Count mocks base method. -func (m *MockIExptInsightAnalysisFeedbackVoteDAO) Count(arg0 context.Context, arg1, arg2, arg3 int64, arg4 ...db.Option) (int64, int64, error) { +func (m *MockIExptInsightAnalysisFeedbackVoteDAO) Count(ctx context.Context, spaceID, exptID, recordID int64, opts ...db.Option) (int64, int64, error) { m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1, arg2, arg3} - for _, a := range arg4 { + varargs := []any{ctx, spaceID, exptID, recordID} + for _, a := range opts { varargs = append(varargs, a) } ret := m.ctrl.Call(m, "Count", varargs...) @@ -51,17 +57,17 @@ func (m *MockIExptInsightAnalysisFeedbackVoteDAO) Count(arg0 context.Context, ar } // Count indicates an expected call of Count. -func (mr *MockIExptInsightAnalysisFeedbackVoteDAOMockRecorder) Count(arg0, arg1, arg2, arg3 interface{}, arg4 ...interface{}) *gomock.Call { +func (mr *MockIExptInsightAnalysisFeedbackVoteDAOMockRecorder) Count(ctx, spaceID, exptID, recordID any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1, arg2, arg3}, arg4...) + varargs := append([]any{ctx, spaceID, exptID, recordID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Count", reflect.TypeOf((*MockIExptInsightAnalysisFeedbackVoteDAO)(nil).Count), varargs...) } // Create mocks base method. -func (m *MockIExptInsightAnalysisFeedbackVoteDAO) Create(arg0 context.Context, arg1 *model.ExptInsightAnalysisFeedbackVote, arg2 ...db.Option) error { +func (m *MockIExptInsightAnalysisFeedbackVoteDAO) Create(ctx context.Context, feedbackVote *model.ExptInsightAnalysisFeedbackVote, opts ...db.Option) error { m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { + varargs := []any{ctx, feedbackVote} + for _, a := range opts { varargs = append(varargs, a) } ret := m.ctrl.Call(m, "Create", varargs...) @@ -70,17 +76,17 @@ func (m *MockIExptInsightAnalysisFeedbackVoteDAO) Create(arg0 context.Context, a } // Create indicates an expected call of Create. -func (mr *MockIExptInsightAnalysisFeedbackVoteDAOMockRecorder) Create(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { +func (mr *MockIExptInsightAnalysisFeedbackVoteDAOMockRecorder) Create(ctx, feedbackVote any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1}, arg2...) + varargs := append([]any{ctx, feedbackVote}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockIExptInsightAnalysisFeedbackVoteDAO)(nil).Create), varargs...) } // GetByUser mocks base method. -func (m *MockIExptInsightAnalysisFeedbackVoteDAO) GetByUser(arg0 context.Context, arg1, arg2, arg3 int64, arg4 string, arg5 ...db.Option) (*model.ExptInsightAnalysisFeedbackVote, error) { +func (m *MockIExptInsightAnalysisFeedbackVoteDAO) GetByUser(ctx context.Context, spaceID, exptID, recordID int64, userID string, opts ...db.Option) (*model.ExptInsightAnalysisFeedbackVote, error) { m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1, arg2, arg3, arg4} - for _, a := range arg5 { + varargs := []any{ctx, spaceID, exptID, recordID, userID} + for _, a := range opts { varargs = append(varargs, a) } ret := m.ctrl.Call(m, "GetByUser", varargs...) @@ -90,17 +96,17 @@ func (m *MockIExptInsightAnalysisFeedbackVoteDAO) GetByUser(arg0 context.Context } // GetByUser indicates an expected call of GetByUser. -func (mr *MockIExptInsightAnalysisFeedbackVoteDAOMockRecorder) GetByUser(arg0, arg1, arg2, arg3, arg4 interface{}, arg5 ...interface{}) *gomock.Call { +func (mr *MockIExptInsightAnalysisFeedbackVoteDAOMockRecorder) GetByUser(ctx, spaceID, exptID, recordID, userID any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1, arg2, arg3, arg4}, arg5...) + varargs := append([]any{ctx, spaceID, exptID, recordID, userID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetByUser", reflect.TypeOf((*MockIExptInsightAnalysisFeedbackVoteDAO)(nil).GetByUser), varargs...) } // Update mocks base method. -func (m *MockIExptInsightAnalysisFeedbackVoteDAO) Update(arg0 context.Context, arg1 *model.ExptInsightAnalysisFeedbackVote, arg2 ...db.Option) error { +func (m *MockIExptInsightAnalysisFeedbackVoteDAO) Update(ctx context.Context, feedbackVote *model.ExptInsightAnalysisFeedbackVote, opts ...db.Option) error { m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { + varargs := []any{ctx, feedbackVote} + for _, a := range opts { varargs = append(varargs, a) } ret := m.ctrl.Call(m, "Update", varargs...) @@ -109,8 +115,8 @@ func (m *MockIExptInsightAnalysisFeedbackVoteDAO) Update(arg0 context.Context, a } // Update indicates an expected call of Update. -func (mr *MockIExptInsightAnalysisFeedbackVoteDAOMockRecorder) Update(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { +func (mr *MockIExptInsightAnalysisFeedbackVoteDAOMockRecorder) Update(ctx, feedbackVote any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1}, arg2...) + varargs := append([]any{ctx, feedbackVote}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Update", reflect.TypeOf((*MockIExptInsightAnalysisFeedbackVoteDAO)(nil).Update), varargs...) } diff --git a/backend/modules/evaluation/infra/repo/experiment/mysql/mocks/expt_insight_analysis_record.go b/backend/modules/evaluation/infra/repo/experiment/mysql/mocks/expt_insight_analysis_record.go index d27da1fab..0d8c7f5fa 100644 --- a/backend/modules/evaluation/infra/repo/experiment/mysql/mocks/expt_insight_analysis_record.go +++ b/backend/modules/evaluation/infra/repo/experiment/mysql/mocks/expt_insight_analysis_record.go @@ -1,5 +1,10 @@ // Code generated by MockGen. DO NOT EDIT. // Source: github.com/coze-dev/coze-loop/backend/modules/evaluation/infra/repo/experiment/mysql (interfaces: IExptInsightAnalysisRecordDAO) +// +// Generated by this command: +// +// mockgen -destination=mocks/expt_insight_analysis_record.go -package mocks . IExptInsightAnalysisRecordDAO +// // Package mocks is a generated GoMock package. package mocks @@ -18,6 +23,7 @@ import ( type MockIExptInsightAnalysisRecordDAO struct { ctrl *gomock.Controller recorder *MockIExptInsightAnalysisRecordDAOMockRecorder + isgomock struct{} } // MockIExptInsightAnalysisRecordDAOMockRecorder is the mock recorder for MockIExptInsightAnalysisRecordDAO. @@ -38,10 +44,10 @@ func (m *MockIExptInsightAnalysisRecordDAO) EXPECT() *MockIExptInsightAnalysisRe } // Create mocks base method. -func (m *MockIExptInsightAnalysisRecordDAO) Create(arg0 context.Context, arg1 *model.ExptInsightAnalysisRecord, arg2 ...db.Option) error { +func (m *MockIExptInsightAnalysisRecordDAO) Create(ctx context.Context, record *model.ExptInsightAnalysisRecord, opts ...db.Option) error { m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { + varargs := []any{ctx, record} + for _, a := range opts { varargs = append(varargs, a) } ret := m.ctrl.Call(m, "Create", varargs...) @@ -50,31 +56,31 @@ func (m *MockIExptInsightAnalysisRecordDAO) Create(arg0 context.Context, arg1 *m } // Create indicates an expected call of Create. -func (mr *MockIExptInsightAnalysisRecordDAOMockRecorder) Create(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { +func (mr *MockIExptInsightAnalysisRecordDAOMockRecorder) Create(ctx, record any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1}, arg2...) + varargs := append([]any{ctx, record}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockIExptInsightAnalysisRecordDAO)(nil).Create), varargs...) } // Delete mocks base method. -func (m *MockIExptInsightAnalysisRecordDAO) Delete(arg0 context.Context, arg1, arg2, arg3 int64) error { +func (m *MockIExptInsightAnalysisRecordDAO) Delete(ctx context.Context, spaceID, exptID, recordID int64) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Delete", arg0, arg1, arg2, arg3) + ret := m.ctrl.Call(m, "Delete", ctx, spaceID, exptID, recordID) ret0, _ := ret[0].(error) return ret0 } // Delete indicates an expected call of Delete. -func (mr *MockIExptInsightAnalysisRecordDAOMockRecorder) Delete(arg0, arg1, arg2, arg3 interface{}) *gomock.Call { +func (mr *MockIExptInsightAnalysisRecordDAOMockRecorder) Delete(ctx, spaceID, exptID, recordID any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockIExptInsightAnalysisRecordDAO)(nil).Delete), arg0, arg1, arg2, arg3) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockIExptInsightAnalysisRecordDAO)(nil).Delete), ctx, spaceID, exptID, recordID) } // GetByID mocks base method. -func (m *MockIExptInsightAnalysisRecordDAO) GetByID(arg0 context.Context, arg1, arg2, arg3 int64, arg4 ...db.Option) (*model.ExptInsightAnalysisRecord, error) { +func (m *MockIExptInsightAnalysisRecordDAO) GetByID(ctx context.Context, spaceID, exptID, recordID int64, opts ...db.Option) (*model.ExptInsightAnalysisRecord, error) { m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1, arg2, arg3} - for _, a := range arg4 { + varargs := []any{ctx, spaceID, exptID, recordID} + for _, a := range opts { varargs = append(varargs, a) } ret := m.ctrl.Call(m, "GetByID", varargs...) @@ -84,17 +90,17 @@ func (m *MockIExptInsightAnalysisRecordDAO) GetByID(arg0 context.Context, arg1, } // GetByID indicates an expected call of GetByID. -func (mr *MockIExptInsightAnalysisRecordDAOMockRecorder) GetByID(arg0, arg1, arg2, arg3 interface{}, arg4 ...interface{}) *gomock.Call { +func (mr *MockIExptInsightAnalysisRecordDAOMockRecorder) GetByID(ctx, spaceID, exptID, recordID any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1, arg2, arg3}, arg4...) + varargs := append([]any{ctx, spaceID, exptID, recordID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetByID", reflect.TypeOf((*MockIExptInsightAnalysisRecordDAO)(nil).GetByID), varargs...) } // List mocks base method. -func (m *MockIExptInsightAnalysisRecordDAO) List(arg0 context.Context, arg1, arg2 int64, arg3 entity.Page, arg4 ...db.Option) ([]*model.ExptInsightAnalysisRecord, int64, error) { +func (m *MockIExptInsightAnalysisRecordDAO) List(ctx context.Context, spaceID, exptID int64, page entity.Page, opts ...db.Option) ([]*model.ExptInsightAnalysisRecord, int64, error) { m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1, arg2, arg3} - for _, a := range arg4 { + varargs := []any{ctx, spaceID, exptID, page} + for _, a := range opts { varargs = append(varargs, a) } ret := m.ctrl.Call(m, "List", varargs...) @@ -105,17 +111,17 @@ func (m *MockIExptInsightAnalysisRecordDAO) List(arg0 context.Context, arg1, arg } // List indicates an expected call of List. -func (mr *MockIExptInsightAnalysisRecordDAOMockRecorder) List(arg0, arg1, arg2, arg3 interface{}, arg4 ...interface{}) *gomock.Call { +func (mr *MockIExptInsightAnalysisRecordDAOMockRecorder) List(ctx, spaceID, exptID, page any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1, arg2, arg3}, arg4...) + varargs := append([]any{ctx, spaceID, exptID, page}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "List", reflect.TypeOf((*MockIExptInsightAnalysisRecordDAO)(nil).List), varargs...) } // Update mocks base method. -func (m *MockIExptInsightAnalysisRecordDAO) Update(arg0 context.Context, arg1 *model.ExptInsightAnalysisRecord, arg2 ...db.Option) error { +func (m *MockIExptInsightAnalysisRecordDAO) Update(ctx context.Context, record *model.ExptInsightAnalysisRecord, opts ...db.Option) error { m.ctrl.T.Helper() - varargs := []interface{}{arg0, arg1} - for _, a := range arg2 { + varargs := []any{ctx, record} + for _, a := range opts { varargs = append(varargs, a) } ret := m.ctrl.Call(m, "Update", varargs...) @@ -124,8 +130,8 @@ func (m *MockIExptInsightAnalysisRecordDAO) Update(arg0 context.Context, arg1 *m } // Update indicates an expected call of Update. -func (mr *MockIExptInsightAnalysisRecordDAOMockRecorder) Update(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { +func (mr *MockIExptInsightAnalysisRecordDAOMockRecorder) Update(ctx, record any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{arg0, arg1}, arg2...) + varargs := append([]any{ctx, record}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Update", reflect.TypeOf((*MockIExptInsightAnalysisRecordDAO)(nil).Update), varargs...) } diff --git a/backend/modules/evaluation/infra/repo/experiment/mysql/mocks/expt_template.go b/backend/modules/evaluation/infra/repo/experiment/mysql/mocks/expt_template.go new file mode 100644 index 000000000..9d70b8162 --- /dev/null +++ b/backend/modules/evaluation/infra/repo/experiment/mysql/mocks/expt_template.go @@ -0,0 +1,166 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: github.com/coze-dev/coze-loop/backend/modules/evaluation/infra/repo/experiment/mysql (interfaces: IExptTemplateDAO) +// +// Generated by this command: +// +// mockgen -destination=mocks/expt_template.go -package=mocks . IExptTemplateDAO +// + +// Package mocks is a generated GoMock package. +package mocks + +import ( + context "context" + reflect "reflect" + + db "github.com/coze-dev/coze-loop/backend/infra/db" + entity "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/entity" + model "github.com/coze-dev/coze-loop/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/model" + gomock "go.uber.org/mock/gomock" +) + +// MockIExptTemplateDAO is a mock of IExptTemplateDAO interface. +type MockIExptTemplateDAO struct { + ctrl *gomock.Controller + recorder *MockIExptTemplateDAOMockRecorder + isgomock struct{} +} + +// MockIExptTemplateDAOMockRecorder is the mock recorder for MockIExptTemplateDAO. +type MockIExptTemplateDAOMockRecorder struct { + mock *MockIExptTemplateDAO +} + +// NewMockIExptTemplateDAO creates a new mock instance. +func NewMockIExptTemplateDAO(ctrl *gomock.Controller) *MockIExptTemplateDAO { + mock := &MockIExptTemplateDAO{ctrl: ctrl} + mock.recorder = &MockIExptTemplateDAOMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockIExptTemplateDAO) EXPECT() *MockIExptTemplateDAOMockRecorder { + return m.recorder +} + +// Create mocks base method. +func (m *MockIExptTemplateDAO) Create(ctx context.Context, template *model.ExptTemplate) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Create", ctx, template) + ret0, _ := ret[0].(error) + return ret0 +} + +// Create indicates an expected call of Create. +func (mr *MockIExptTemplateDAOMockRecorder) Create(ctx, template any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockIExptTemplateDAO)(nil).Create), ctx, template) +} + +// Delete mocks base method. +func (m *MockIExptTemplateDAO) Delete(ctx context.Context, id int64) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Delete", ctx, id) + ret0, _ := ret[0].(error) + return ret0 +} + +// Delete indicates an expected call of Delete. +func (mr *MockIExptTemplateDAOMockRecorder) Delete(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockIExptTemplateDAO)(nil).Delete), ctx, id) +} + +// GetByID mocks base method. +func (m *MockIExptTemplateDAO) GetByID(ctx context.Context, id int64) (*model.ExptTemplate, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetByID", ctx, id) + ret0, _ := ret[0].(*model.ExptTemplate) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetByID indicates an expected call of GetByID. +func (mr *MockIExptTemplateDAOMockRecorder) GetByID(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetByID", reflect.TypeOf((*MockIExptTemplateDAO)(nil).GetByID), ctx, id) +} + +// GetByName mocks base method. +func (m *MockIExptTemplateDAO) GetByName(ctx context.Context, name string, spaceID int64) (*model.ExptTemplate, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetByName", ctx, name, spaceID) + ret0, _ := ret[0].(*model.ExptTemplate) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetByName indicates an expected call of GetByName. +func (mr *MockIExptTemplateDAOMockRecorder) GetByName(ctx, name, spaceID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetByName", reflect.TypeOf((*MockIExptTemplateDAO)(nil).GetByName), ctx, name, spaceID) +} + +// List mocks base method. +func (m *MockIExptTemplateDAO) List(ctx context.Context, page, size int32, filter *entity.ExptTemplateListFilter, orders []*entity.OrderBy, spaceID int64) ([]*model.ExptTemplate, int64, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "List", ctx, page, size, filter, orders, spaceID) + ret0, _ := ret[0].([]*model.ExptTemplate) + ret1, _ := ret[1].(int64) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// List indicates an expected call of List. +func (mr *MockIExptTemplateDAOMockRecorder) List(ctx, page, size, filter, orders, spaceID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "List", reflect.TypeOf((*MockIExptTemplateDAO)(nil).List), ctx, page, size, filter, orders, spaceID) +} + +// MGetByID mocks base method. +func (m *MockIExptTemplateDAO) MGetByID(ctx context.Context, ids []int64, opts ...db.Option) ([]*model.ExptTemplate, error) { + m.ctrl.T.Helper() + varargs := []any{ctx, ids} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "MGetByID", varargs...) + ret0, _ := ret[0].([]*model.ExptTemplate) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// MGetByID indicates an expected call of MGetByID. +func (mr *MockIExptTemplateDAOMockRecorder) MGetByID(ctx, ids any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{ctx, ids}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MGetByID", reflect.TypeOf((*MockIExptTemplateDAO)(nil).MGetByID), varargs...) +} + +// Update mocks base method. +func (m *MockIExptTemplateDAO) Update(ctx context.Context, template *model.ExptTemplate) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Update", ctx, template) + ret0, _ := ret[0].(error) + return ret0 +} + +// Update indicates an expected call of Update. +func (mr *MockIExptTemplateDAOMockRecorder) Update(ctx, template any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Update", reflect.TypeOf((*MockIExptTemplateDAO)(nil).Update), ctx, template) +} + +// UpdateFields mocks base method. +func (m *MockIExptTemplateDAO) UpdateFields(ctx context.Context, id int64, ufields map[string]any) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateFields", ctx, id, ufields) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateFields indicates an expected call of UpdateFields. +func (mr *MockIExptTemplateDAOMockRecorder) UpdateFields(ctx, id, ufields any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateFields", reflect.TypeOf((*MockIExptTemplateDAO)(nil).UpdateFields), ctx, id, ufields) +} diff --git a/backend/modules/evaluation/infra/repo/experiment/mysql/mocks/expt_template_evaluator_ref.go b/backend/modules/evaluation/infra/repo/experiment/mysql/mocks/expt_template_evaluator_ref.go new file mode 100644 index 000000000..f7b65bb6c --- /dev/null +++ b/backend/modules/evaluation/infra/repo/experiment/mysql/mocks/expt_template_evaluator_ref.go @@ -0,0 +1,128 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: github.com/coze-dev/coze-loop/backend/modules/evaluation/infra/repo/experiment/mysql (interfaces: IExptTemplateEvaluatorRefDAO) +// +// Generated by this command: +// +// mockgen -destination=mocks/expt_template_evaluator_ref.go -package=mocks . IExptTemplateEvaluatorRefDAO +// + +// Package mocks is a generated GoMock package. +package mocks + +import ( + context "context" + reflect "reflect" + + model "github.com/coze-dev/coze-loop/backend/modules/evaluation/infra/repo/experiment/mysql/gorm_gen/model" + gomock "go.uber.org/mock/gomock" +) + +// MockIExptTemplateEvaluatorRefDAO is a mock of IExptTemplateEvaluatorRefDAO interface. +type MockIExptTemplateEvaluatorRefDAO struct { + ctrl *gomock.Controller + recorder *MockIExptTemplateEvaluatorRefDAOMockRecorder + isgomock struct{} +} + +// MockIExptTemplateEvaluatorRefDAOMockRecorder is the mock recorder for MockIExptTemplateEvaluatorRefDAO. +type MockIExptTemplateEvaluatorRefDAOMockRecorder struct { + mock *MockIExptTemplateEvaluatorRefDAO +} + +// NewMockIExptTemplateEvaluatorRefDAO creates a new mock instance. +func NewMockIExptTemplateEvaluatorRefDAO(ctrl *gomock.Controller) *MockIExptTemplateEvaluatorRefDAO { + mock := &MockIExptTemplateEvaluatorRefDAO{ctrl: ctrl} + mock.recorder = &MockIExptTemplateEvaluatorRefDAOMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockIExptTemplateEvaluatorRefDAO) EXPECT() *MockIExptTemplateEvaluatorRefDAOMockRecorder { + return m.recorder +} + +// Create mocks base method. +func (m *MockIExptTemplateEvaluatorRefDAO) Create(ctx context.Context, refs []*model.ExptTemplateEvaluatorRef) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Create", ctx, refs) + ret0, _ := ret[0].(error) + return ret0 +} + +// Create indicates an expected call of Create. +func (mr *MockIExptTemplateEvaluatorRefDAOMockRecorder) Create(ctx, refs any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockIExptTemplateEvaluatorRefDAO)(nil).Create), ctx, refs) +} + +// DeleteByTemplateID mocks base method. +func (m *MockIExptTemplateEvaluatorRefDAO) DeleteByTemplateID(ctx context.Context, templateID int64) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteByTemplateID", ctx, templateID) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteByTemplateID indicates an expected call of DeleteByTemplateID. +func (mr *MockIExptTemplateEvaluatorRefDAOMockRecorder) DeleteByTemplateID(ctx, templateID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteByTemplateID", reflect.TypeOf((*MockIExptTemplateEvaluatorRefDAO)(nil).DeleteByTemplateID), ctx, templateID) +} + +// GetByTemplateIDs mocks base method. +func (m *MockIExptTemplateEvaluatorRefDAO) GetByTemplateIDs(ctx context.Context, templateIDs []int64) ([]*model.ExptTemplateEvaluatorRef, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetByTemplateIDs", ctx, templateIDs) + ret0, _ := ret[0].([]*model.ExptTemplateEvaluatorRef) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetByTemplateIDs indicates an expected call of GetByTemplateIDs. +func (mr *MockIExptTemplateEvaluatorRefDAOMockRecorder) GetByTemplateIDs(ctx, templateIDs any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetByTemplateIDs", reflect.TypeOf((*MockIExptTemplateEvaluatorRefDAO)(nil).GetByTemplateIDs), ctx, templateIDs) +} + +// GetByTemplateIDsIncludeDeleted mocks base method. +func (m *MockIExptTemplateEvaluatorRefDAO) GetByTemplateIDsIncludeDeleted(ctx context.Context, templateIDs []int64) ([]*model.ExptTemplateEvaluatorRef, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetByTemplateIDsIncludeDeleted", ctx, templateIDs) + ret0, _ := ret[0].([]*model.ExptTemplateEvaluatorRef) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetByTemplateIDsIncludeDeleted indicates an expected call of GetByTemplateIDsIncludeDeleted. +func (mr *MockIExptTemplateEvaluatorRefDAOMockRecorder) GetByTemplateIDsIncludeDeleted(ctx, templateIDs any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetByTemplateIDsIncludeDeleted", reflect.TypeOf((*MockIExptTemplateEvaluatorRefDAO)(nil).GetByTemplateIDsIncludeDeleted), ctx, templateIDs) +} + +// RestoreByIDs mocks base method. +func (m *MockIExptTemplateEvaluatorRefDAO) RestoreByIDs(ctx context.Context, ids []int64) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "RestoreByIDs", ctx, ids) + ret0, _ := ret[0].(error) + return ret0 +} + +// RestoreByIDs indicates an expected call of RestoreByIDs. +func (mr *MockIExptTemplateEvaluatorRefDAOMockRecorder) RestoreByIDs(ctx, ids any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RestoreByIDs", reflect.TypeOf((*MockIExptTemplateEvaluatorRefDAO)(nil).RestoreByIDs), ctx, ids) +} + +// SoftDeleteByIDs mocks base method. +func (m *MockIExptTemplateEvaluatorRefDAO) SoftDeleteByIDs(ctx context.Context, ids []int64) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "SoftDeleteByIDs", ctx, ids) + ret0, _ := ret[0].(error) + return ret0 +} + +// SoftDeleteByIDs indicates an expected call of SoftDeleteByIDs. +func (mr *MockIExptTemplateEvaluatorRefDAOMockRecorder) SoftDeleteByIDs(ctx, ids any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SoftDeleteByIDs", reflect.TypeOf((*MockIExptTemplateEvaluatorRefDAO)(nil).SoftDeleteByIDs), ctx, ids) +} diff --git a/backend/modules/evaluation/infra/repo/experiment/mysql/wire.go b/backend/modules/evaluation/infra/repo/experiment/mysql/wire.go index 91043b56a..08bd2cadd 100644 --- a/backend/modules/evaluation/infra/repo/experiment/mysql/wire.go +++ b/backend/modules/evaluation/infra/repo/experiment/mysql/wire.go @@ -24,4 +24,6 @@ var ExperimentMySQLDAOSet = wire.NewSet( NewExptInsightAnalysisRecordDAO, NewExptInsightAnalysisFeedbackVoteDAO, NewExptInsightAnalysisFeedbackCommentDAO, + NewExptTemplateDAO, + NewExptTemplateEvaluatorRefDAO, ) diff --git a/backend/modules/evaluation/infra/repo/experiment/wire.go b/backend/modules/evaluation/infra/repo/experiment/wire.go index d7c44690a..2383fe75e 100644 --- a/backend/modules/evaluation/infra/repo/experiment/wire.go +++ b/backend/modules/evaluation/infra/repo/experiment/wire.go @@ -24,6 +24,7 @@ var ExperimentRepoSet = wire.NewSet( NewExptAnnotateRepo, NewExptResultExportRecordRepo, NewExptInsightAnalysisRecordRepo, + NewExptTemplateRepo, NewQuotaService, NewEvalAsyncRepo, idem.NewIdempotentService, diff --git a/backend/modules/evaluation/infra/repo/target/mysql/convertor/eval_target.go b/backend/modules/evaluation/infra/repo/target/mysql/convertor/eval_target.go index 72ad23140..94c4eb363 100644 --- a/backend/modules/evaluation/infra/repo/target/mysql/convertor/eval_target.go +++ b/backend/modules/evaluation/infra/repo/target/mysql/convertor/eval_target.go @@ -120,7 +120,7 @@ func EvalTargetPO2DOs(targetPOs []*model.Target) (targetDOs []*entity.EvalTarget func EvalTargetPO2DO(targetPO *model.Target) (targetDO *entity.EvalTarget) { if targetPO == nil { - return + return targetDO } targetDO = &entity.EvalTarget{} targetDO.ID = targetPO.ID @@ -142,12 +142,12 @@ func EvalTargetPO2DO(targetPO *model.Target) (targetDO *entity.EvalTarget) { targetDO.BaseInfo.DeletedAt = gptr.Of(targetPO.DeletedAt.Time.UnixMilli()) } - return + return targetDO } func EvalTargetVersionPO2DO(targetVersionPO *model.TargetVersion, targetType entity.EvalTargetType) (targetVersionDO *entity.EvalTargetVersion) { if targetVersionPO == nil { - return + return targetVersionDO } targetVersionDO = &entity.EvalTargetVersion{} targetVersionDO.ID = targetVersionPO.ID @@ -173,7 +173,7 @@ func EvalTargetVersionPO2DO(targetVersionPO *model.TargetVersion, targetType ent if targetVersionPO.InputSchema != nil { schema := make([]*entity.ArgsSchema, 0) if err := json.Unmarshal(*targetVersionPO.InputSchema, &schema); err != nil { - return + return targetVersionDO } targetVersionDO.InputSchema = schema } diff --git a/backend/modules/evaluation/infra/rpc/prompt/convert.go b/backend/modules/evaluation/infra/rpc/prompt/convert.go index a3bb62355..bd052e3a5 100644 --- a/backend/modules/evaluation/infra/rpc/prompt/convert.go +++ b/backend/modules/evaluation/infra/rpc/prompt/convert.go @@ -61,7 +61,7 @@ func ConvertToLoopPrompt(p *prompt.Prompt) *rpc.LoopPrompt { func ConvertVariables2Prompt(fromVals []*entity.VariableVal) (toVals []*prompt.VariableVal) { if len(fromVals) == 0 { - return + return toVals } toVals = make([]*prompt.VariableVal, 0) for _, v := range fromVals { @@ -72,12 +72,12 @@ func ConvertVariables2Prompt(fromVals []*entity.VariableVal) (toVals []*prompt.V MultiPartValues: ConvertContent(v.Content), }) } - return + return toVals } func ConvertMessages2Prompt(fromMsg []*entity.Message) (toMsg []*prompt.Message) { if len(fromMsg) == 0 { - return + return toMsg } toMsg = make([]*prompt.Message, 0) for _, m := range fromMsg { @@ -96,7 +96,7 @@ func ConvertMessages2Prompt(fromMsg []*entity.Message) (toMsg []*prompt.Message) }) } } - return + return toMsg } func ConvertPromptToolCalls2Eval(promptToolCalls []*prompt.ToolCall) []*entity.ToolCall { diff --git a/backend/modules/evaluation/pkg/utils/score.go b/backend/modules/evaluation/pkg/utils/score.go new file mode 100644 index 000000000..aae8f90b7 --- /dev/null +++ b/backend/modules/evaluation/pkg/utils/score.go @@ -0,0 +1,21 @@ +// Copyright (c) 2025 coze-dev Authors +// SPDX-License-Identifier: Apache-2.0 + +package utils + +import "math" + +// RoundScoreToTwoDecimals 将分数四舍五入到两位小数 +func RoundScoreToTwoDecimals(score float64) float64 { + multiplier := 100.0 + return math.Round(score*multiplier) / multiplier +} + +// RoundScorePtrToTwoDecimals 将分数指针四舍五入到两位小数,如果为nil则返回nil +func RoundScorePtrToTwoDecimals(score *float64) *float64 { + if score == nil { + return nil + } + rounded := RoundScoreToTwoDecimals(*score) + return &rounded +} diff --git a/backend/modules/observability/domain/task/service/taskexe/processor/auto_evaluate_test.go b/backend/modules/observability/domain/task/service/taskexe/processor/auto_evaluate_test.go index 66d0d047b..c716fec39 100755 --- a/backend/modules/observability/domain/task/service/taskexe/processor/auto_evaluate_test.go +++ b/backend/modules/observability/domain/task/service/taskexe/processor/auto_evaluate_test.go @@ -199,6 +199,26 @@ func (f *fakeExperimentClient) CreateExperiment(ctx context.Context, req *expt.C return nil, nil } +func (f *fakeExperimentClient) CreateExperimentTemplate(ctx context.Context, req *expt.CreateExperimentTemplateRequest, callOptions ...callopt.Option) (*expt.CreateExperimentTemplateResponse, error) { + return nil, nil +} + +func (f *fakeExperimentClient) UpdateExperimentTemplate(ctx context.Context, req *expt.UpdateExperimentTemplateRequest, callOptions ...callopt.Option) (*expt.UpdateExperimentTemplateResponse, error) { + return nil, nil +} + +func (f *fakeExperimentClient) DeleteExperimentTemplate(ctx context.Context, req *expt.DeleteExperimentTemplateRequest, callOptions ...callopt.Option) (*expt.DeleteExperimentTemplateResponse, error) { + return nil, nil +} + +func (f *fakeExperimentClient) ListExperimentTemplates(ctx context.Context, req *expt.ListExperimentTemplatesRequest, callOptions ...callopt.Option) (*expt.ListExperimentTemplatesResponse, error) { + return nil, nil +} + +func (f *fakeExperimentClient) BatchGetExperimentTemplate(ctx context.Context, req *expt.BatchGetExperimentTemplateRequest, callOptions ...callopt.Option) (*expt.BatchGetExperimentTemplateResponse, error) { + return nil, nil +} + func (f *fakeExperimentClient) SubmitExperiment(ctx context.Context, req *expt.SubmitExperimentRequest, callOptions ...callopt.Option) (*expt.SubmitExperimentResponse, error) { return nil, nil } @@ -315,6 +335,14 @@ func (f *fakeExperimentClient) ListExptInsightAnalysisComment(ctx context.Contex return nil, nil } +func (f *fakeExperimentClient) UpdateExperimentTemplateMeta(ctx context.Context, req *expt.UpdateExperimentTemplateMetaRequest, callOptions ...callopt.Option) (*expt.UpdateExperimentTemplateMetaResponse, error) { + return nil, nil +} + +func (f *fakeExperimentClient) CheckExperimentTemplateName(ctx context.Context, req *expt.CheckExperimentTemplateNameRequest, callOptions ...callopt.Option) (*expt.CheckExperimentTemplateNameResponse, error) { + return nil, nil +} + // 使用真实 EvaluationProvider 注入 Processor,验证三种路径:BizStatus、非 BizStatus 包装、成功返回条数 func TestAutoEvaluateProcessor_Invoke_WithEvaluationProvider_BizStatusPassthrough(t *testing.T) { t.Parallel() diff --git a/backend/script/gorm_gen/generate.go b/backend/script/gorm_gen/generate.go index bd28f121c..11822ff6a 100644 --- a/backend/script/gorm_gen/generate.go +++ b/backend/script/gorm_gen/generate.go @@ -202,6 +202,8 @@ func generateForEvaluationExpt(db *gorm.DB) { "expt_insight_analysis_record", "expt_insight_analysis_feedback_comment", "expt_insight_analysis_feedback_vote", + "expt_template", + "expt_template_evaluator_ref", } var models []any diff --git a/idl/thrift/coze/loop/evaluation/coze.loop.evaluation.expt.thrift b/idl/thrift/coze/loop/evaluation/coze.loop.evaluation.expt.thrift index 34119eaf9..ce9b0be7d 100644 --- a/idl/thrift/coze/loop/evaluation/coze.loop.evaluation.expt.thrift +++ b/idl/thrift/coze/loop/evaluation/coze.loop.evaluation.expt.thrift @@ -32,6 +32,11 @@ struct CreateExperimentRequest { 40: optional list evaluator_id_version_list (api.body = 'evaluator_id_version_list') // 补充的评估器id+version关联评估器方式,和evaluator_version_ids共同使用,兼容老逻辑 + // 是否启用评估器得分加权汇总,以及各评估器的权重配置(key 为 evaluator_version_id,value 为权重) + 41: optional bool enable_weighted_score (api.body = 'enable_weighted_score', go.tag='json:"enable_weighted_score"') + 42: optional map evaluator_score_weights (api.body = 'evaluator_score_weights', go.tag='json:"evaluator_score_weights"') + 43: optional i64 expt_template_id (api.body='expt_template_id',api.js_conv='true', go.tag='json:"expt_template_id"') + 200: optional common.Session session 255: optional base.Base Base @@ -66,6 +71,9 @@ struct SubmitExperimentRequest { 33: optional string source_id (api.body = 'source_id') 40: optional list evaluator_id_version_list (api.body = 'evaluator_id_version_list') // 补充的评估器id+version关联评估器方式,和evaluator_version_ids共同使用,兼容老逻辑 + // 是否启用评估器得分加权汇总,以及各评估器的权重配置(key 为 evaluator_version_id,value 为权重) + 41: optional bool enable_weighted_score (api.body = 'enable_weighted_score', go.tag='json:"enable_weighted_score"') + 42: optional i64 expt_template_id (api.body='expt_template_id',api.js_conv='true', go.tag='json:"expt_template_id"') 100: optional map ext (api.body = 'ext') @@ -345,6 +353,135 @@ struct ListExperimentStatsResponse { 255: base.BaseResp BaseResp } +// ========================= +// 实验模板相关接口 +// ========================= + +struct CreateExperimentTemplateRequest { + 1: required i64 workspace_id (api.body='workspace_id', api.js_conv='true', go.tag='json:"workspace_id"') + + // 模板结构,与 ExptTemplate 保持一致 + 10: optional expt.ExptTemplateMeta meta (api.body = 'meta') + 11: optional expt.ExptTuple triple_config (api.body = 'triple_config') + 12: optional expt.ExptFieldMapping field_mapping_config (api.body = 'field_mapping_config') + + // 创建评估对象参数(不在 ExptTemplate 结构中,保留在顶层) + 20: optional coze.loop.evaluation.eval_target.CreateEvalTargetParam create_eval_target_param (api.body = 'create_eval_target_param') + + // 默认评估器并发数(不在 ExptTemplate 结构中,保留在顶层) + 21: optional i32 default_evaluators_concur_num (api.body = 'default_evaluators_concur_num') + // 调度配置(不在 ExptTemplate 结构中,保留在顶层) + 22: optional string schedule_cron (api.body = 'schedule_cron') + + 200: optional common.Session session + 255: optional base.Base Base +} + +struct CreateExperimentTemplateResponse { + 1: optional expt.ExptTemplate experiment_template + + 255: base.BaseResp BaseResp +} + +struct BatchGetExperimentTemplateRequest { + 1: required i64 workspace_id (api.body='workspace_id', api.js_conv='true', go.tag='json:"workspace_id"') + 2: required list template_ids (api.body='template_ids', api.js_conv='true', go.tag='json:"template_ids"') + + 255: optional base.Base Base +} + +struct BatchGetExperimentTemplateResponse { + 1: optional list experiment_templates + + 255: base.BaseResp BaseResp +} + +struct UpdateExperimentTemplateMetaRequest { + 1: required i64 workspace_id (api.body='workspace_id', api.js_conv='true', go.tag='json:"workspace_id"') + 2: required i64 template_id (api.body='template_id', api.js_conv='true', go.tag='json:"template_id"') + + 10: optional expt.ExptTemplateMeta meta (api.body = 'meta') + + 255: optional base.Base Base +} + +struct UpdateExperimentTemplateMetaResponse { + 1: optional expt.ExptTemplateMeta meta + + 255: base.BaseResp BaseResp +} + + +struct UpdateExperimentTemplateRequest { + 1: required i64 workspace_id (api.body='workspace_id', api.js_conv='true', go.tag='json:"workspace_id"') + 2: required i64 template_id (api.path='template_id', api.js_conv='true', go.tag='json:"template_id"') + + // 模板结构,与 ExptTemplate 保持一致 + // 注意:eval_set_id / target_id 不允许修改,仅允许调整版本与配置 + 10: optional expt.ExptTemplateMeta meta (api.body = 'meta') + 11: optional expt.ExptTuple triple_config (api.body = 'triple_config') + 12: optional expt.ExptFieldMapping field_mapping_config (api.body = 'field_mapping_config') + + // 创建评估对象参数(不在 ExptTemplate 结构中,保留在顶层) + 20: optional coze.loop.evaluation.eval_target.CreateEvalTargetParam create_eval_target_param (api.body = 'create_eval_target_param') + + // 默认评估器并发数(不在 ExptTemplate 结构中,保留在顶层) + 21: optional i32 default_evaluators_concur_num (api.body = 'default_evaluators_concur_num') + // 调度配置(不在 ExptTemplate 结构中,保留在顶层) + 22: optional string schedule_cron (api.body = 'schedule_cron') + + 255: optional base.Base Base +} + +struct UpdateExperimentTemplateResponse { + 1: optional expt.ExptTemplate experiment_template + + 255: base.BaseResp BaseResp +} + +struct DeleteExperimentTemplateRequest { + 1: required i64 workspace_id (api.body='workspace_id', api.js_conv='true', go.tag='json:"workspace_id"') + 2: required i64 template_id (api.path='template_id', api.js_conv='true', go.tag='json:"template_id"') + + 255: optional base.Base Base +} + +struct DeleteExperimentTemplateResponse { + 255: base.BaseResp BaseResp +} + +struct ListExperimentTemplatesRequest { + 1: required i64 workspace_id (api.body='workspace_id', api.js_conv='true', go.tag='json:"workspace_id"') + 2: optional i32 page_number (api.body='page_number') + 3: optional i32 page_size (api.body='page_size') + + 20: optional expt.ExperimentTemplateFilter filter_option (api.body = 'filter_option') + 21: optional list order_bys (api.body = 'order_bys') + + 255: optional base.Base Base +} + +struct ListExperimentTemplatesResponse { + 1: optional list experiment_templates (api.body = 'experiment_templates') + 2: optional i32 total (api.body = 'total') + + 255: base.BaseResp BaseResp +} + +struct CheckExperimentTemplateNameRequest { + 1: required i64 workspace_id (api.body='workspace_id', api.js_conv='true', go.tag='json:"workspace_id"') + 2: required string name (api.body='name', api.js_conv='true', go.tag='json:"name"') + 3: optional i64 template_id (api.body='template_id', api.js_conv='true', go.tag='json:"template_id"') + + 255: optional base.Base Base +} + +struct CheckExperimentTemplateNameResponse { + 1: optional bool is_available (api.body = 'is_available') + + 255: base.BaseResp BaseResp +} + typedef string UpsertExptTurnResultFilterType (ts.enum="true") // 标签状态 const UpsertExptTurnResultFilterType UpsertExptTurnResultFilterType_MANUAL = "manual" // 启用 const UpsertExptTurnResultFilterType UpsertExptTurnResultFilterType_AUTO = "auto" // 禁用 @@ -647,5 +784,14 @@ service ExperimentService { FeedbackExptInsightAnalysisReportResponse FeedbackExptInsightAnalysisReport(1: FeedbackExptInsightAnalysisReportRequest req) (api.post="/api/evaluation/v1/experiments/:expt_id/insight_analysis_records/:insight_analysis_record_id/feedback") ListExptInsightAnalysisCommentResponse ListExptInsightAnalysisComment(1: ListExptInsightAnalysisCommentRequest req) (api.post="/api/evaluation/v1/experiments/:expt_id/insight_analysis_records/:insight_analysis_record_id/comments/list") GetAnalysisRecordFeedbackVoteResponse GetAnalysisRecordFeedbackVote(1: GetAnalysisRecordFeedbackVoteRequest req) (api.get="/api/evaluation/v1/experiments/insight_analysis_records/:insight_analysis_record_id/feedback_vote") + + // 实验模板 + CreateExperimentTemplateResponse CreateExperimentTemplate(1: CreateExperimentTemplateRequest req) (api.post = '/api/evaluation/v1/experiment_templates') + BatchGetExperimentTemplateResponse BatchGetExperimentTemplate(1: BatchGetExperimentTemplateRequest req) (api.post = '/api/evaluation/v1/experiment_templates/batch_get') + UpdateExperimentTemplateMetaResponse UpdateExperimentTemplateMeta(1: UpdateExperimentTemplateMetaRequest req) (api.post = '/api/evaluation/v1/experiment_templates/update_meta') + UpdateExperimentTemplateResponse UpdateExperimentTemplate(1: UpdateExperimentTemplateRequest req) (api.patch = '/api/evaluation/v1/experiment_templates/:template_id') // 更新实验模板(不允许修改关联的评测对象 / 评测集,仅允许修改默认版本、映射、评估器与配置) + DeleteExperimentTemplateResponse DeleteExperimentTemplate(1: DeleteExperimentTemplateRequest req) (api.delete = '/api/evaluation/v1/experiment_templates/:template_id') + ListExperimentTemplatesResponse ListExperimentTemplates(1: ListExperimentTemplatesRequest req) (api.post = '/api/evaluation/v1/experiment_templates/list') + CheckExperimentTemplateNameResponse CheckExperimentTemplateName(1: CheckExperimentTemplateNameRequest req) (api.post = '/api/evaluation/v1/experiment_templates/check_name') } diff --git a/idl/thrift/coze/loop/evaluation/domain/evaluator.thrift b/idl/thrift/coze/loop/evaluation/domain/evaluator.thrift index 0c92cf2bc..645718073 100644 --- a/idl/thrift/coze/loop/evaluation/domain/evaluator.thrift +++ b/idl/thrift/coze/loop/evaluation/domain/evaluator.thrift @@ -129,6 +129,8 @@ struct EvaluatorIDVersionItem { 1: optional i64 evaluator_id (api.js_conv = 'true', go.tag = 'json:"evaluator_id"') 2: optional string version (api.js_conv = 'true', go.tag = 'json:"version"') 3: optional EvaluatorRunConfig run_config (go.tag = 'json:"run_config"') + 4: optional i64 evaluator_version_id (api.js_conv = 'true', go.tag = 'json:"evaluator_version_id"') + 5: optional double score_weight (go.tag = 'json:"score_weight"') } struct EvaluatorInfo { diff --git a/idl/thrift/coze/loop/evaluation/domain/expt.thrift b/idl/thrift/coze/loop/evaluation/domain/expt.thrift index e44745696..e91c47feb 100644 --- a/idl/thrift/coze/loop/evaluation/domain/expt.thrift +++ b/idl/thrift/coze/loop/evaluation/domain/expt.thrift @@ -64,6 +64,63 @@ struct Experiment { 43: optional string source_id 51: optional list evaluator_id_version_list // 补充的评估器id+version关联评估器方式,和evaluator_version_ids共同使用,兼容老逻辑 + + 60: optional ExptTemplateMeta expt_template_meta + // 评估器得分加权配置 + 61: optional ExptScoreWeight score_weight_config + 62: optional bool enable_weighted_score +} + +// 实验模板基础信息 +struct ExptTemplateMeta { + 1: optional i64 id (api.js_conv='true', go.tag='json:"id"') + 2: optional i64 workspace_id (api.js_conv='true', go.tag='json:"workspace_id"') + 3: optional string name + 4: optional string desc + 5: optional ExptType expt_type // 模板对应的实验类型,当前主要为 Offline + +} + +// 实验三元组配置 +struct ExptTuple { + 1: optional i64 eval_set_id (api.js_conv='true', go.tag='json:"eval_set_id"') + 2: optional i64 eval_set_version_id (api.js_conv='true', go.tag='json:"eval_set_version_id"') + 3: optional i64 target_id (api.js_conv='true', go.tag='json:"target_id"') + 4: optional i64 target_version_id (api.js_conv='true', go.tag='json:"target_version_id"') + 6: optional list evaluator_id_version_items + 7: optional eval_set.EvaluationSet eval_set + 8: optional eval_target.EvalTarget eval_target + 9: optional list evaluators +} + +// 实验字段映射和运行时参数配置 +struct ExptFieldMapping { + 1: optional TargetFieldMapping target_field_mapping + 2: optional list evaluator_field_mapping + 3: optional common.RuntimeParam target_runtime_param + 4: optional i32 item_concur_num +} + +// 实验评估器得分加权配置 +struct ExptScoreWeight { + 1: optional bool enable_weighted_score + 2: optional map evaluator_score_weights +} + +struct ExptTemplate { + 1: optional ExptTemplateMeta meta + 2: optional ExptTuple triple_config + 3: optional ExptFieldMapping field_mapping_config + 4: optional ExptScoreWeight score_weight_config + 5: optional ExptInfo expt_info + + 255: optional common.BaseInfo base_info +} + +struct ExptInfo { + 1: optional i64 created_expt_count + 2: optional i64 latest_expt_id (api.js_conv='true', go.tag='json:"latest_expt_id"') + 3: optional ExptStatus latest_expt_status } struct TokenUsage { @@ -229,6 +286,8 @@ struct TurnTargetOutput { struct TurnEvaluatorOutput { 1: map evaluator_records (go.tag = 'json:"evaluator_records"') + + 11: optional double weighted_score (go.tag = 'json:"weighted_score"') // 加权汇总得分 } struct TurnAnnotateResult { @@ -278,6 +337,12 @@ struct ExperimentFilter { 2: optional KeywordSearch keyword_search } +// 实验模板筛选器,字段设计复用实验的 Filters / KeywordSearch 能力 +struct ExperimentTemplateFilter { + 1: optional Filters filters + 2: optional KeywordSearch keyword_search +} + struct Filters { 1: optional list filter_conditions 2: optional FilterLogicOp logic_op @@ -330,6 +395,10 @@ enum FieldType { InputTokens = 61 // 目前使用固定key:input_tokens OutputTokens = 62 // 目前使用固定key:output_tokens TotalTokens = 63 // 目前使用固定key:total_tokens + + ExperimentTemplateID = 70 + EvaluatorWeightedScore = 71 + UpdatedBy = 72 } // 字段过滤器 @@ -379,6 +448,8 @@ struct ExptAggregateResult { 4: optional map annotation_results (go.tag = 'json:"annotation_results"') // tag_key_id -> result 5: optional EvalTargetAggregateResult eval_target_aggr_result 6: optional i64 update_time // timestamp in seconds + + 10: optional list weighted_results (go.tag = 'json:"weighted_results"') } struct EvalTargetAggregateResult { diff --git a/idl/thrift/coze/loop/foundation/domain/auth.thrift b/idl/thrift/coze/loop/foundation/domain/auth.thrift index 6abcc8e07..60ff29fee 100644 --- a/idl/thrift/coze/loop/foundation/domain/auth.thrift +++ b/idl/thrift/coze/loop/foundation/domain/auth.thrift @@ -39,6 +39,7 @@ typedef string AuthEntityType (ts.enum="true") // 鉴权实体类型 const AuthEntityType AuthEntityType_Space = "Space" // 空间 const AuthEntityType AuthEntityType_Prompt = "Prompt" const AuthEntityType AuthEntityType_EvaluationExperiment = "EvaluationExperiment" +const AuthEntityType AuthEntityType_EvaluationExptTemplate = "EvaluationExptTemplate" const AuthEntityType AuthEntityType_EvaluationSet = "EvaluationSet" const AuthEntityType AuthEntityType_Evaluator = "Evaluator" const AuthEntityType AuthEntityType_EvaluationTarget = "EvaluationTarget" diff --git a/release/deployment/docker-compose/bootstrap/clickhouse-init/init-sql/evaluation.sql b/release/deployment/docker-compose/bootstrap/clickhouse-init/init-sql/evaluation.sql index 04f7e9b14..9596f5018 100755 --- a/release/deployment/docker-compose/bootstrap/clickhouse-init/init-sql/evaluation.sql +++ b/release/deployment/docker-compose/bootstrap/clickhouse-init/init-sql/evaluation.sql @@ -21,6 +21,7 @@ CREATE TABLE IF NOT EXISTS expt_turn_result_filter `created_at` DateTime, `updated_at` DateTime, `eval_target_metrics` Map(String, Int64), + `evaluator_weighted_score` Float64 INDEX idx_space_id space_id TYPE bloom_filter() GRANULARITY 1, INDEX idx_expt_id expt_id TYPE bloom_filter() GRANULARITY 1, INDEX idx_item_id item_id TYPE bloom_filter() GRANULARITY 1, @@ -33,3 +34,6 @@ SETTINGS index_granularity = 8192; ALTER TABLE expt_turn_result_filter ADD COLUMN IF NOT EXISTS `eval_target_metrics` Map(String, Int64) AFTER `updated_at`; +ALTER TABLE expt_turn_result_filter +ADD COLUMN IF NOT EXISTS `evaluator_weighted_score` Float64 +AFTER `eval_target_metrics`; diff --git a/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/experiment.sql b/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/experiment.sql index e979f8476..5aa69a280 100644 --- a/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/experiment.sql +++ b/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/experiment.sql @@ -19,6 +19,7 @@ CREATE TABLE IF NOT EXISTS `experiment` `latest_run_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '最后运行id', `target_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评估对象 id', `eval_set_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评测集 id', + `expt_template_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '实验模板 id', `credit_cost` int NOT NULL DEFAULT '0' COMMENT '权益消耗模式', `source_type` int unsigned NOT NULL DEFAULT '1' COMMENT '实验来源类型,评测:1,自动化任务:2...', `source_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '实验来源id', @@ -34,7 +35,8 @@ CREATE TABLE IF NOT EXISTS `experiment` KEY `idx_eval_set_id_delete_at` (`space_id`, `eval_set_id`, `deleted_at`), KEY `idx_space_start_at` (`space_id`, `start_at`), KEY `idx_space_end_at` (`space_id`, `end_at`), - KEY `idx_source_type_source_id` (`source_type`, `source_id`) + KEY `idx_source_type_source_id` (`source_type`, `source_id`), + KEY `idx_space_expt_template_id_delete_at` (`space_id`, `expt_template_id`, `deleted_at`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 - COLLATE = utf8mb4_general_ci COMMENT ='experiment'; \ No newline at end of file + COLLATE = utf8mb4_general_ci COMMENT ='experiment'; diff --git a/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/expt_template.sql b/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/expt_template.sql new file mode 100644 index 000000000..0318fa542 --- /dev/null +++ b/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/expt_template.sql @@ -0,0 +1,35 @@ +CREATE TABLE IF NOT EXISTS `expt_template` +( + `id` bigint unsigned NOT NULL COMMENT 'id', + `space_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '空间 id', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '实验模板名称', + `description` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '实验模板描述', + + `eval_set_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评测集 id(模板创建后不可修改)', + `eval_set_version_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评测集默认版本 id', + `target_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评估对象 id(模板创建后不可修改)', + `target_type` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评估对象类型', + `target_version_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评估对象默认版本 id', + + `expt_type` int unsigned NOT NULL DEFAULT '1' COMMENT '实验类型,offline:1,online:2...', + + `template_conf` blob COMMENT '实验模板配置,包含评估器列表、字段映射、加权配置、默认并发及调度等,json', + `expt_info` blob COMMENT '实验运行状态,包含创建实验数量,最后一次实验执行状态,json', + + `created_by` varchar(128) NOT NULL DEFAULT '0' COMMENT '创建人', + `updated_by` varchar(128) NOT NULL DEFAULT '0' COMMENT '更新人', + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间', + + PRIMARY KEY (`id`), + UNIQUE KEY `uk_space_id_name_deleted_at` (`space_id`, `name`, `deleted_at`), + KEY `idx_space_id_created_by_deleted_at` (`space_id`, `created_by`, `deleted_at`), + KEY `idx_space_id_eval_set_id_deleted_at` (`space_id`, `eval_set_id`, `deleted_at`), + KEY `idx_space_id_target_id_deleted_at` (`space_id`, `target_id`, `deleted_at`), + KEY `idx_space_id_expt_type_deleted_at` (`space_id`, `expt_type`, `deleted_at`) +) ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4 + COLLATE = utf8mb4_general_ci COMMENT ='expt_template'; + + diff --git a/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/expt_template_evaluator_ref.sql b/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/expt_template_evaluator_ref.sql new file mode 100644 index 000000000..f8677986d --- /dev/null +++ b/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/expt_template_evaluator_ref.sql @@ -0,0 +1,19 @@ +CREATE TABLE IF NOT EXISTS `expt_template_evaluator_ref` +( + `id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'id', + `space_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '空间 id', + `expt_template_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '实验模板 id', + `evaluator_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评估器 id', + `evaluator_version_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评估器版本 id', + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间', + PRIMARY KEY (`id`), + KEY `idx_space_id_expt_template_id` (`space_id`, `expt_template_id`), + KEY `idx_space_id_evaluator_id` (`space_id`, `evaluator_id`), + KEY `idx_space_id_evaluator_version_id` (`space_id`, `evaluator_version_id`) +) ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4 + COLLATE = utf8mb4_general_ci COMMENT ='expt_template_evaluator_ref'; + + diff --git a/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/expt_turn_result.sql b/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/expt_turn_result.sql index b655fbc82..663b45428 100644 --- a/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/expt_turn_result.sql +++ b/release/deployment/docker-compose/bootstrap/mysql-init/init-sql/expt_turn_result.sql @@ -12,6 +12,7 @@ CREATE TABLE IF NOT EXISTS `expt_turn_result` `log_id` varchar(128) NOT NULL DEFAULT '' COMMENT '日志 id', `target_result_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'target_result_id', `err_msg` blob COMMENT '错误信息', + `weighted_score` decimal(10, 4) DEFAULT NULL COMMENT '加权汇总得分', `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间', diff --git a/release/deployment/docker-compose/bootstrap/mysql-init/patch-sql/experiment_alter.sql b/release/deployment/docker-compose/bootstrap/mysql-init/patch-sql/experiment_alter.sql new file mode 100644 index 000000000..f71a00d3f --- /dev/null +++ b/release/deployment/docker-compose/bootstrap/mysql-init/patch-sql/experiment_alter.sql @@ -0,0 +1,5 @@ +ALTER TABLE `experiment` + ADD COLUMN `expt_template_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '实验模板 id' AFTER `eval_set_id`; + +ALTER TABLE `experiment` + ADD INDEX `idx_space_expt_template_id_delete_at` (`space_id`, `expt_template_id`, `deleted_at`); diff --git a/release/deployment/docker-compose/bootstrap/mysql-init/patch-sql/expt_turn_result_alter.sql b/release/deployment/docker-compose/bootstrap/mysql-init/patch-sql/expt_turn_result_alter.sql new file mode 100644 index 000000000..40bec5cda --- /dev/null +++ b/release/deployment/docker-compose/bootstrap/mysql-init/patch-sql/expt_turn_result_alter.sql @@ -0,0 +1,2 @@ +ALTER TABLE `expt_turn_result` + ADD COLUMN `weighted_score` decimal(10, 4) DEFAULT NULL COMMENT '加权汇总得分' AFTER `err_msg`; diff --git a/release/deployment/helm-chart/charts/app/bootstrap/init/clickhouse/init-sql/evaluation.sql b/release/deployment/helm-chart/charts/app/bootstrap/init/clickhouse/init-sql/evaluation.sql index 77291fb65..5a9413e97 100755 --- a/release/deployment/helm-chart/charts/app/bootstrap/init/clickhouse/init-sql/evaluation.sql +++ b/release/deployment/helm-chart/charts/app/bootstrap/init/clickhouse/init-sql/evaluation.sql @@ -21,6 +21,7 @@ CREATE TABLE IF NOT EXISTS expt_turn_result_filter `created_at` DateTime, `updated_at` DateTime, `eval_target_metrics` Map(String, Int64), + `evaluator_weighted_score` Float64, INDEX idx_space_id space_id TYPE bloom_filter() GRANULARITY 1, INDEX idx_expt_id expt_id TYPE bloom_filter() GRANULARITY 1, INDEX idx_item_id item_id TYPE bloom_filter() GRANULARITY 1, @@ -32,4 +33,7 @@ ORDER BY (expt_id, item_id, turn_id) SETTINGS index_granularity = 8192; ALTER TABLE expt_turn_result_filter ADD COLUMN IF NOT EXISTS `eval_target_metrics` Map(String, Int64) -AFTER `updated_at`; \ No newline at end of file +AFTER `updated_at`; +ALTER TABLE expt_turn_result_filter +ADD COLUMN IF NOT EXISTS `evaluator_weighted_score` Float64 +AFTER `eval_target_metrics`; \ No newline at end of file diff --git a/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/experiment.sql b/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/experiment.sql index e979f8476..a2132462a 100644 --- a/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/experiment.sql +++ b/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/experiment.sql @@ -19,6 +19,7 @@ CREATE TABLE IF NOT EXISTS `experiment` `latest_run_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '最后运行id', `target_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评估对象 id', `eval_set_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评测集 id', + `expt_template_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '实验模板 id', `credit_cost` int NOT NULL DEFAULT '0' COMMENT '权益消耗模式', `source_type` int unsigned NOT NULL DEFAULT '1' COMMENT '实验来源类型,评测:1,自动化任务:2...', `source_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '实验来源id', @@ -37,4 +38,4 @@ CREATE TABLE IF NOT EXISTS `experiment` KEY `idx_source_type_source_id` (`source_type`, `source_id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 - COLLATE = utf8mb4_general_ci COMMENT ='experiment'; \ No newline at end of file + COLLATE = utf8mb4_general_ci COMMENT ='experiment'; diff --git a/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/experiment_alter.sql b/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/experiment_alter.sql new file mode 100644 index 000000000..f71a00d3f --- /dev/null +++ b/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/experiment_alter.sql @@ -0,0 +1,5 @@ +ALTER TABLE `experiment` + ADD COLUMN `expt_template_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '实验模板 id' AFTER `eval_set_id`; + +ALTER TABLE `experiment` + ADD INDEX `idx_space_expt_template_id_delete_at` (`space_id`, `expt_template_id`, `deleted_at`); diff --git a/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/expt_template.sql b/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/expt_template.sql new file mode 100644 index 000000000..0318fa542 --- /dev/null +++ b/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/expt_template.sql @@ -0,0 +1,35 @@ +CREATE TABLE IF NOT EXISTS `expt_template` +( + `id` bigint unsigned NOT NULL COMMENT 'id', + `space_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '空间 id', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '实验模板名称', + `description` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '实验模板描述', + + `eval_set_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评测集 id(模板创建后不可修改)', + `eval_set_version_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评测集默认版本 id', + `target_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评估对象 id(模板创建后不可修改)', + `target_type` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评估对象类型', + `target_version_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评估对象默认版本 id', + + `expt_type` int unsigned NOT NULL DEFAULT '1' COMMENT '实验类型,offline:1,online:2...', + + `template_conf` blob COMMENT '实验模板配置,包含评估器列表、字段映射、加权配置、默认并发及调度等,json', + `expt_info` blob COMMENT '实验运行状态,包含创建实验数量,最后一次实验执行状态,json', + + `created_by` varchar(128) NOT NULL DEFAULT '0' COMMENT '创建人', + `updated_by` varchar(128) NOT NULL DEFAULT '0' COMMENT '更新人', + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间', + + PRIMARY KEY (`id`), + UNIQUE KEY `uk_space_id_name_deleted_at` (`space_id`, `name`, `deleted_at`), + KEY `idx_space_id_created_by_deleted_at` (`space_id`, `created_by`, `deleted_at`), + KEY `idx_space_id_eval_set_id_deleted_at` (`space_id`, `eval_set_id`, `deleted_at`), + KEY `idx_space_id_target_id_deleted_at` (`space_id`, `target_id`, `deleted_at`), + KEY `idx_space_id_expt_type_deleted_at` (`space_id`, `expt_type`, `deleted_at`) +) ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4 + COLLATE = utf8mb4_general_ci COMMENT ='expt_template'; + + diff --git a/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/expt_template_evaluator_ref.sql b/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/expt_template_evaluator_ref.sql new file mode 100644 index 000000000..f8677986d --- /dev/null +++ b/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/expt_template_evaluator_ref.sql @@ -0,0 +1,19 @@ +CREATE TABLE IF NOT EXISTS `expt_template_evaluator_ref` +( + `id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'id', + `space_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '空间 id', + `expt_template_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '实验模板 id', + `evaluator_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评估器 id', + `evaluator_version_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评估器版本 id', + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间', + PRIMARY KEY (`id`), + KEY `idx_space_id_expt_template_id` (`space_id`, `expt_template_id`), + KEY `idx_space_id_evaluator_id` (`space_id`, `evaluator_id`), + KEY `idx_space_id_evaluator_version_id` (`space_id`, `evaluator_version_id`) +) ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4 + COLLATE = utf8mb4_general_ci COMMENT ='expt_template_evaluator_ref'; + + diff --git a/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/expt_turn_result.sql b/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/expt_turn_result.sql index b655fbc82..663b45428 100644 --- a/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/expt_turn_result.sql +++ b/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/expt_turn_result.sql @@ -12,6 +12,7 @@ CREATE TABLE IF NOT EXISTS `expt_turn_result` `log_id` varchar(128) NOT NULL DEFAULT '' COMMENT '日志 id', `target_result_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'target_result_id', `err_msg` blob COMMENT '错误信息', + `weighted_score` decimal(10, 4) DEFAULT NULL COMMENT '加权汇总得分', `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间', diff --git a/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/expt_turn_result_alter.sql b/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/expt_turn_result_alter.sql new file mode 100644 index 000000000..40bec5cda --- /dev/null +++ b/release/deployment/helm-chart/charts/app/bootstrap/init/mysql/init-sql/expt_turn_result_alter.sql @@ -0,0 +1,2 @@ +ALTER TABLE `expt_turn_result` + ADD COLUMN `weighted_score` decimal(10, 4) DEFAULT NULL COMMENT '加权汇总得分' AFTER `err_msg`;