From 319a3164e30054145c26c87ef4038a929403159e Mon Sep 17 00:00:00 2001 From: sunxiqing <2240398334@qq.com> Date: Wed, 17 Sep 2025 14:16:06 +0800 Subject: [PATCH] =?UTF-8?q?refactor(yudao-module-llm):=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E6=A8=A1=E5=9E=8B=E8=AF=84=E4=BC=B0=E4=BA=BA=E5=B7=A5?= =?UTF-8?q?=E6=A0=87=E6=B3=A8=E6=95=B0=E6=8D=AE=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 提取模型评估人工标注的模型回答 -批量获取数据集问题和答案,减少数据库查询次数 - 使用 Map 进行数据缓存,提高查询效率 - 重构代码结构,提高可读性和维护性 --- .../ManualModelAnswerServiceImpl.java | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/modelassesstaskmanual/ManualModelAnswerServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/modelassesstaskmanual/ManualModelAnswerServiceImpl.java index 8eb402609..ab3e12af3 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/modelassesstaskmanual/ManualModelAnswerServiceImpl.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/modelassesstaskmanual/ManualModelAnswerServiceImpl.java @@ -10,6 +10,7 @@ import cn.iocoder.yudao.module.llm.controller.admin.modelassesstaskmanual.manual import cn.iocoder.yudao.module.llm.controller.admin.modelassesstaskmanual.manualAnnoVo.ManualModelAnswerSaveReqVO; import cn.iocoder.yudao.module.llm.controller.admin.modelassesstaskmanual.vo.LabelInformationVO; import cn.iocoder.yudao.module.llm.controller.admin.modelassesstaskmanual.vo.ManualAssessmentPageRespVO; +import cn.iocoder.yudao.module.llm.controller.admin.modelassesstaskmanual.vo.ManualEvaluationReportRespVO; import cn.iocoder.yudao.module.llm.controller.admin.modelassesstaskmanual.vo.ModelAssessTaskDimensionRespVO; import cn.iocoder.yudao.module.llm.controller.admin.modelassesstaskmanual.vo.ModelAssessTaskManualPageReqVO; import cn.iocoder.yudao.module.llm.controller.admin.modelassesstaskmanual.vo.ModelAssessTaskManualRespVO; @@ -81,15 +82,28 @@ public class ManualModelAnswerServiceImpl implements ManualModelAnswerService { PageResult modelAnswerDOPageResult = manualModelAnswerMapper.selectPage(pageReqVO); List res = new ArrayList<>(); if(!CollectionUtils.isAnyEmpty(modelAnswerDOPageResult.getList())){ - modelAnswerDOPageResult.getList().forEach(modelAnswerDO -> { + // 提取模型评估人工标注的模型回答 + List list = modelAnswerDOPageResult.getList(); + // 获取数据集问题 + List collected = list.stream().map(ManualModelAnswerDO::getQuestionId).collect(Collectors.toList()); + List datasetQuestionDOS = datasetQuestionMapper.selectBatchIds(collected); + Map questionMap = datasetQuestionDOS.stream().collect(Collectors.toMap(DatasetQuestionDO::getId, v -> v)); + // 获取数据集答案 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper() + .in(DatasetAnswerDO::getQuestionId, collected); + List datasetAnswerDO = datasetAnswerMapper.selectList(wrapper); + Map> collect = datasetAnswerDO.stream().collect(Collectors.groupingBy(DatasetAnswerDO::getQuestionId)); + + // 封装数据 + list.forEach(modelAnswerDO -> { ManualAssessmentPageRespVO resp = BeanUtils.toBean(modelAssessTaskManual, ManualAssessmentPageRespVO.class); - DatasetQuestionDO datasetQuestionDO = datasetQuestionMapper.selectById(modelAnswerDO.getQuestionId()); + DatasetQuestionDO datasetQuestionDO = questionMap.get(modelAnswerDO.getQuestionId()); if (datasetQuestionDO==null){ throw exception(QUESTION_NOT_EXISTS); } - List datasetAnswerDOS = datasetAnswerMapper.selectList(new LambdaQueryWrapper<>(DatasetAnswerDO.class).eq(DatasetAnswerDO::getQuestionId, modelAnswerDO.getQuestionId())); + List datasetAnswerDOS = collect.get(modelAnswerDO.getQuestionId()); String question = datasetQuestionDO.getQuestion(); if (StringUtils.isBlank(question)){ throw exception(QUESTION_NOT_EXISTS);