Skip to content

Commit 858b3fa

Browse files
committed
feat(evaluation): add support for custom RPC evaluator type
Add case for EvaluatorTypeCustomRPC in convertEntityEvaluatorTypeToOpenAPI function and refactor evaluator version ID retrieval to use GetEvaluatorVersionID method. Also add test case for agent evaluator in SubmitExperimentOApi test.
1 parent e708b0d commit 858b3fa

3 files changed

Lines changed: 25 additions & 15 deletions

File tree

backend/modules/evaluation/application/convertor/experiment/openapi.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -758,6 +758,8 @@ func convertEntityEvaluatorTypeToOpenAPI(typ entity.EvaluatorType) *openapiEvalu
758758
openapiType = openapiEvaluator.EvaluatorTypePrompt
759759
case entity.EvaluatorTypeCode:
760760
openapiType = openapiEvaluator.EvaluatorTypeCode
761+
case entity.EvaluatorTypeCustomRPC:
762+
openapiType = openapiEvaluator.EvaluatorTypeCustomRPC
761763
default:
762764
return nil
763765
}

backend/modules/evaluation/application/eval_openapi_app.go

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -857,21 +857,7 @@ func (e *EvalOpenAPIApplication) SubmitExperimentOApi(ctx context.Context, req *
857857
if len(version) == 0 {
858858
return nil, errorx.NewByCode(errno.ResourceNotFoundCode, errorx.WithExtraMsg("evaluator not found"))
859859
}
860-
var versionID int64
861-
switch version[0].EvaluatorType {
862-
case entity.EvaluatorTypePrompt:
863-
if version[0].PromptEvaluatorVersion != nil {
864-
versionID = version[0].PromptEvaluatorVersion.ID
865-
}
866-
case entity.EvaluatorTypeCode:
867-
if version[0].CodeEvaluatorVersion != nil {
868-
versionID = version[0].CodeEvaluatorVersion.ID
869-
}
870-
case entity.EvaluatorTypeCustomRPC:
871-
if version[0].CustomRPCEvaluatorVersion != nil {
872-
versionID = version[0].CustomRPCEvaluatorVersion.ID
873-
}
874-
}
860+
versionID := version[0].GetEvaluatorVersionID()
875861
evaluatorVersionIDs = append(evaluatorVersionIDs, versionID)
876862
evaluatorMap[fmt.Sprintf("%d_%s", evaluator.GetEvaluatorID(), evaluator.GetVersion())] = versionID
877863
}

backend/modules/evaluation/application/eval_openapi_app_test.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1906,6 +1906,28 @@ func TestEvalOpenAPIApplication_SubmitExperimentOApi(t *testing.T) {
19061906
fakeApp.submitResp = &exptpb.SubmitExperimentResponse{Experiment: &domainexpt.Experiment{ID: gptr.Of(int64(8890))}}
19071907
},
19081908
},
1909+
{
1910+
name: "success with agent evaluator",
1911+
buildReq: func() *openapi.SubmitExperimentOApiRequest {
1912+
req := buildBaseReq()
1913+
return req
1914+
},
1915+
setup: func(req *openapi.SubmitExperimentOApiRequest, auth *rpcmocks.MockIAuthProvider, manager *servicemocks.MockIExptManager, versionSvc *servicemocks.MockEvaluationSetVersionService, evaluatorSvc *servicemocks.MockEvaluatorService, fakeApp *fakeExperimentApp) {
1916+
auth.EXPECT().Authorization(gomock.Any(), gomock.AssignableToTypeOf(&rpc.AuthorizationParam{})).Return(nil)
1917+
manager.EXPECT().CheckName(gomock.Any(), req.GetName(), req.GetWorkspaceID(), gomock.AssignableToTypeOf(&entity.Session{})).Return(true, nil)
1918+
versionSvc.EXPECT().ListEvaluationSetVersions(gomock.Any(), gomock.AssignableToTypeOf(&entity.ListEvaluationSetVersionsParam{})).Return([]*entity.EvaluationSetVersion{{ID: evaluatorVersionID}}, nil, nil, nil)
1919+
evaluator := &entity.Evaluator{
1920+
EvaluatorType: entity.EvaluatorTypeAgent,
1921+
AgentEvaluatorVersion: &entity.AgentEvaluatorVersion{
1922+
ID: evaluatorVersionID,
1923+
EvaluatorID: evaluatorID,
1924+
Version: "1.0",
1925+
},
1926+
}
1927+
evaluatorSvc.EXPECT().ListEvaluatorVersion(gomock.Any(), gomock.AssignableToTypeOf(&entity.ListEvaluatorVersionRequest{})).Return([]*entity.Evaluator{evaluator}, int64(1), nil)
1928+
fakeApp.submitResp = &exptpb.SubmitExperimentResponse{Experiment: &domainexpt.Experiment{ID: gptr.Of(int64(8891))}}
1929+
},
1930+
},
19091931
{
19101932
name: "check name error",
19111933
buildReq: buildBaseReq,

0 commit comments

Comments
 (0)