refactor(yudao-module-llm): 优化模型评估人工标注数据查询
- 提取模型评估人工标注的模型回答 -批量获取数据集问题和答案,减少数据库查询次数 - 使用 Map 进行数据缓存,提高查询效率 - 重构代码结构,提高可读性和维护性
This commit is contained in:
parent
31983fea91
commit
319a3164e3
@ -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<ManualModelAnswerDO> modelAnswerDOPageResult = manualModelAnswerMapper.selectPage(pageReqVO);
|
||||
List<ManualAssessmentPageRespVO> res = new ArrayList<>();
|
||||
if(!CollectionUtils.isAnyEmpty(modelAnswerDOPageResult.getList())){
|
||||
modelAnswerDOPageResult.getList().forEach(modelAnswerDO -> {
|
||||
// 提取模型评估人工标注的模型回答
|
||||
List<ManualModelAnswerDO> list = modelAnswerDOPageResult.getList();
|
||||
// 获取数据集问题
|
||||
List<Long> collected = list.stream().map(ManualModelAnswerDO::getQuestionId).collect(Collectors.toList());
|
||||
List<DatasetQuestionDO> datasetQuestionDOS = datasetQuestionMapper.selectBatchIds(collected);
|
||||
Map<Long, DatasetQuestionDO> questionMap = datasetQuestionDOS.stream().collect(Collectors.toMap(DatasetQuestionDO::getId, v -> v));
|
||||
// 获取数据集答案
|
||||
LambdaQueryWrapper<DatasetAnswerDO> wrapper = new LambdaQueryWrapper<DatasetAnswerDO>()
|
||||
.in(DatasetAnswerDO::getQuestionId, collected);
|
||||
List<DatasetAnswerDO> datasetAnswerDO = datasetAnswerMapper.selectList(wrapper);
|
||||
Map<Long, List<DatasetAnswerDO>> 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<DatasetAnswerDO> datasetAnswerDOS = datasetAnswerMapper.selectList(new LambdaQueryWrapper<>(DatasetAnswerDO.class).eq(DatasetAnswerDO::getQuestionId, modelAnswerDO.getQuestionId()));
|
||||
List<DatasetAnswerDO> datasetAnswerDOS = collect.get(modelAnswerDO.getQuestionId());
|
||||
String question = datasetQuestionDO.getQuestion();
|
||||
if (StringUtils.isBlank(question)){
|
||||
throw exception(QUESTION_NOT_EXISTS);
|
||||
|
Loading…
x
Reference in New Issue
Block a user