Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 35 additions & 3 deletions backend/modules/evaluation/domain/service/expt_result_impl.go
Original file line number Diff line number Diff line change
Expand Up @@ -1287,6 +1287,37 @@ func (e *ExptResultBuilder) buildEvaluatorResult(ctx context.Context) error {
logs.CtxWarn(ctx, "turnEvaluatorResultRef not found, evaluatorRecordID: %v, turnResultID: %v", evaluatorRecord.ID, turnResultID)
continue
}

// 当 FullTrajectory=false 时,如果评估器输入里的 input_fields / evaluate_target_output_fields 中包含 trajectory,
// 同样做一次 JSON 预览剪裁 + 文本长度剪裁,避免评估器输入里携带超长轨迹。
if !e.FullTrajectory && evaluatorRecord.EvaluatorInputData != nil {
// 1) InputFields 中的 trajectory
if evaluatorRecord.EvaluatorInputData.InputFields != nil {
if trajectoryContent, ok := evaluatorRecord.EvaluatorInputData.InputFields[consts.EvalTargetOutputFieldKeyTrajectory]; ok && trajectoryContent != nil {
if trajectoryContent.Text != nil && len(*trajectoryContent.Text) > 0 {
preview := utils.GenerateJsonObjectPreview(*trajectoryContent.Text)
if preview != "" {
trajectoryContent.Text = gptr.Of(utils.GenerateTextPreview(preview))
} else {
trajectoryContent.Text = gptr.Of(utils.GenerateTextPreview(*trajectoryContent.Text))
}
}
}
}
// 2) EvaluateTargetOutputFields 中的 trajectory
if evaluatorRecord.EvaluatorInputData.EvaluateTargetOutputFields != nil {
if trajectoryContent, ok := evaluatorRecord.EvaluatorInputData.EvaluateTargetOutputFields[consts.EvalTargetOutputFieldKeyTrajectory]; ok && trajectoryContent != nil {
if trajectoryContent.Text != nil && len(*trajectoryContent.Text) > 0 {
preview := utils.GenerateJsonObjectPreview(*trajectoryContent.Text)
if preview != "" {
trajectoryContent.Text = gptr.Of(utils.GenerateTextPreview(preview))
} else {
trajectoryContent.Text = gptr.Of(utils.GenerateTextPreview(*trajectoryContent.Text))
}
}
}
}
}
if _, ok := turnResultID2VersionID2Result[turnResultID]; !ok {
turnResultID2VersionID2Result[turnResultID] = make(map[int64]*entity.EvaluatorRecord)
}
Expand Down Expand Up @@ -1517,17 +1548,18 @@ func (e *ExptResultBuilder) buildTargetOutput(ctx context.Context) error {
if !ok {
continue
}

// 如果不需要完整轨迹,则使用 generateJsonObjectPreview 对 trajectory 进行剪裁
if !e.FullTrajectory &&
targetRecord.EvalTargetOutputData != nil &&
targetRecord.EvalTargetOutputData.OutputFields != nil {
if trajectoryContent, ok := targetRecord.EvalTargetOutputData.OutputFields[consts.EvalTargetOutputFieldKeyTrajectory]; ok && trajectoryContent != nil {
if trajectoryContent.Text != nil && len(*trajectoryContent.Text) > 0 {
// 使用 generateJsonObjectPreview 对 trajectory JSON 进行剪裁
preview := utils.GenerateJsonObjectPreview([]byte(*trajectoryContent.Text))
preview := utils.GenerateJsonObjectPreview(*trajectoryContent.Text)
if preview != "" {
trajectoryContent.Text = &preview
trajectoryContent.Text = gptr.Of(utils.GenerateTextPreview(preview))
} else {
trajectoryContent.Text = gptr.Of(utils.GenerateTextPreview(*trajectoryContent.Text))
}
}
}
Expand Down
Loading
Loading