From 6a3891c7ed79dd90c65fb51daa2decdb152ff9b0 Mon Sep 17 00:00:00 2001 From: dushaofeng Date: Fri, 6 Feb 2026 11:26:24 +0800 Subject: [PATCH 1/4] fix Change-Id: I3cc8ab48f8de1da5458dac51c99f29a634b23fe7 --- .../evaluation/application/evaluator_app.go | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/backend/modules/evaluation/application/evaluator_app.go b/backend/modules/evaluation/application/evaluator_app.go index 0b3944593..1f1684dc0 100644 --- a/backend/modules/evaluation/application/evaluator_app.go +++ b/backend/modules/evaluation/application/evaluator_app.go @@ -1040,6 +1040,11 @@ func (e *EvaluatorHandlerImpl) DebugEvaluator(ctx context.Context, request *eval return nil, errorx.NewByCode(errno.EvaluatorBenefitDenyCode) } + // 检查uri是否正确 + err = e.checkURIs(ctx, request.InputData.InputFields) + if err != nil { + return nil, err + } // URI转换处理 if request.InputData != nil { err = e.transformURIsToURLs(ctx, request.InputData.InputFields) @@ -1238,6 +1243,40 @@ func (e *EvaluatorHandlerImpl) CheckEvaluatorName(ctx context.Context, request * }, nil } +func (e *EvaluatorHandlerImpl) checkURIs(ctx context.Context, inputFields map[string]*evaluatorcommon.Content) error { + for _, field := range inputFields { + switch gptr.Indirect(field.ContentType) { + case evaluatorcommon.ContentTypeMultiPart: + return e.checkURIEmpty(ctx, field.MultiPart) + default: + continue + } + } + return nil +} + +func (e *EvaluatorHandlerImpl) checkURIEmpty(ctx context.Context, inputFields []*evaluatorcommon.Content) error { + for _, field := range inputFields { + switch gptr.Indirect(field.ContentType) { + case evaluatorcommon.ContentTypeImage: + if field.GetImage() != nil && field.GetImage().GetURI() == "" { + return errorx.NewByCode(errno.CommonInvalidParamCode, errorx.WithExtraMsg("image URI is empty")) + } + case evaluatorcommon.ContentTypeAudio: + if field.GetAudio() != nil && field.GetAudio().GetURI() == "" { + return errorx.NewByCode(errno.CommonInvalidParamCode, errorx.WithExtraMsg("audio URI is empty")) + } + case evaluatorcommon.ContentTypeVideo: + if field.GetVideo() != nil && field.GetVideo().GetURI() == "" { + return errorx.NewByCode(errno.CommonInvalidParamCode, errorx.WithExtraMsg("video URI is empty")) + } + default: + continue + } + } + return nil +} + // transformURIsToURLs 将InputFields中的URI转换为URL func (e *EvaluatorHandlerImpl) transformURIsToURLs(ctx context.Context, inputFields map[string]*evaluatorcommon.Content) error { if len(inputFields) == 0 { From 586496222272c93e2bb616b77b97d052a3a575d5 Mon Sep 17 00:00:00 2001 From: dushaofeng Date: Fri, 6 Feb 2026 15:07:36 +0800 Subject: [PATCH 2/4] fix Change-Id: Icb168984120505e032e1a66d56678218ed570fbd --- .../evaluation/application/evaluator_app_test.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/backend/modules/evaluation/application/evaluator_app_test.go b/backend/modules/evaluation/application/evaluator_app_test.go index b4f50dbc7..cc41da826 100644 --- a/backend/modules/evaluation/application/evaluator_app_test.go +++ b/backend/modules/evaluation/application/evaluator_app_test.go @@ -5718,3 +5718,17 @@ func TestEvaluatorHandlerImpl_BatchGetEvaluators(t *testing.T) { }) } } + +// +// func TestName(t *testing.T) { +// inputFields := make(map[string]*evaluatorcommon.Content) +// err := json.Unmarshal([]byte(`{"image":{"content_type":"MultiPart","multi_part":[{"content_type":"Image","image":{"name":"test.jpg","url":"https://gjlv5sbrfw-psl.cn.oast-cn.bytedance.net/realtime_p/ssrf/fuceaabbcc.jpg","uri":"","storage_provider":4}}]}}`), &inputFields) +// if err != nil { +// return +// } +// e := EvaluatorHandlerImpl{} +// err = e.checkURIs(context.Background(), inputFields) +// if err != nil { +// panic(err) +// } +// } From 11ac16110a3330c79b3ca9815204dd7cd716453a Mon Sep 17 00:00:00 2001 From: dushaofeng Date: Wed, 4 Mar 2026 15:51:27 +0800 Subject: [PATCH 3/4] fix Change-Id: I0d7735112495802bd500a46ebe4f54608481cd29 --- backend/modules/evaluation/application/evaluator_app.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/modules/evaluation/application/evaluator_app.go b/backend/modules/evaluation/application/evaluator_app.go index 4261f04a3..80a813e54 100644 --- a/backend/modules/evaluation/application/evaluator_app.go +++ b/backend/modules/evaluation/application/evaluator_app.go @@ -1043,7 +1043,7 @@ func (e *EvaluatorHandlerImpl) DebugEvaluator(ctx context.Context, request *eval return nil, errorx.NewByCode(errno.EvaluatorBenefitDenyCode) } - // 检查uri是否正确 + // 检查uri是否传递 err = e.checkURIs(ctx, request.InputData.InputFields) if err != nil { return nil, err From 466b97baa76c7ec84f4f5c19f576fb312fb6e5f9 Mon Sep 17 00:00:00 2001 From: dushaofeng Date: Wed, 4 Mar 2026 17:20:44 +0800 Subject: [PATCH 4/4] fix Change-Id: Ie68fc964c2f2adcb31f61dd0c05f7a263bfdeece --- .../evaluation/application/eval_target_app.go | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/backend/modules/evaluation/application/eval_target_app.go b/backend/modules/evaluation/application/eval_target_app.go index a16ea6f88..3f41b598e 100644 --- a/backend/modules/evaluation/application/eval_target_app.go +++ b/backend/modules/evaluation/application/eval_target_app.go @@ -5,10 +5,13 @@ package application import ( "context" + "fmt" "strconv" "sync" "time" + "github.com/pkg/errors" + "github.com/bytedance/gg/gmap" "github.com/bytedance/gg/gptr" @@ -27,6 +30,7 @@ import ( "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/logs" ) var _ evaluation.EvalTargetService = &EvalTargetApplicationImpl{} @@ -547,9 +551,11 @@ func (e EvalTargetApplicationImpl) DebugEvalTarget(ctx context.Context, request // return nil, err // } + logID := logs.GetLogID(ctx) + inputFields := make(map[string]*spi.Content) if err := json.Unmarshal([]byte(request.GetParam()), &inputFields); err != nil { - return nil, errorx.NewByCode(errno.CommonInvalidParamCode, errorx.WithExtraMsg("param json unmarshal fail")) + return nil, errorx.NewByCode(errno.CommonInvalidParamCode, errorx.WithExtraMsg(fmt.Sprintf("logid: %s, param json unmarshal fail", logID))) } switch request.GetEvalTargetType() { @@ -575,14 +581,19 @@ func (e EvalTargetApplicationImpl) DebugEvalTarget(ctx context.Context, request }, }) if err != nil { - return nil, err + return nil, errors.Wrap(err, fmt.Sprintf("logid: %s", logID)) + } + if record != nil && record.Status != nil && *record.Status == entity.EvalTargetRunStatusFail { + if record.EvalTargetOutputData != nil && record.EvalTargetOutputData.EvalTargetRunError != nil { + record.EvalTargetOutputData.EvalTargetRunError.Message = fmt.Sprintf("logid: %s, %s", logID, record.EvalTargetOutputData.EvalTargetRunError.Message) + } } return &eval_target.DebugEvalTargetResponse{ EvalTargetRecord: target.EvalTargetRecordDO2DTO(record), BaseResp: base.NewBaseResp(), }, err default: - return nil, errorx.New("unsupported eval target type %v", request.GetEvalTargetType()) + return nil, errorx.New("logid: %s, unsupported eval target type %v", logID, request.GetEvalTargetType()) } }