diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelassesstaskmanual/ManualModelAnnoController.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelassesstaskmanual/ManualModelAnnoController.java index 7015c5f73..41c6e03c6 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelassesstaskmanual/ManualModelAnnoController.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelassesstaskmanual/ManualModelAnnoController.java @@ -40,7 +40,8 @@ public class ManualModelAnnoController { @Resource private ManualModelAnnoService manualModelAnnoService; - @PostMapping("/create") + + /*@PostMapping("/create") @Operation(summary = "创建模型评估人工评估标注") @PreAuthorize("@ss.hasPermission('llm:manual-model-anno:create')") public CommonResult createManualModelAnno(@Valid @RequestBody ManualModelAnnoSaveReqVO createReqVO) { @@ -92,6 +93,6 @@ public class ManualModelAnnoController { // 导出 Excel ExcelUtils.write(response, "模型评估人工评估标注.xls", "数据", ManualModelAnnoRespVO.class, BeanUtils.toBean(list, ManualModelAnnoRespVO.class)); - } + }*/ } \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelassesstaskmanual/ManualModelAnswerController.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelassesstaskmanual/ManualModelAnswerController.java index c9764faa5..66c660559 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelassesstaskmanual/ManualModelAnswerController.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelassesstaskmanual/ManualModelAnswerController.java @@ -1,8 +1,12 @@ package cn.iocoder.yudao.module.llm.controller.admin.modelassesstaskmanual; +import cn.iocoder.yudao.module.llm.controller.admin.modelassesstaskmanual.manualAnnoVo.ManualModelAnnoSaveReqVO; import cn.iocoder.yudao.module.llm.controller.admin.modelassesstaskmanual.manualAnnoVo.ManualModelAnswerPageReqVO; import cn.iocoder.yudao.module.llm.controller.admin.modelassesstaskmanual.manualAnnoVo.ManualModelAnswerRespVO; import cn.iocoder.yudao.module.llm.controller.admin.modelassesstaskmanual.manualAnnoVo.ManualModelAnswerSaveReqVO; +import cn.iocoder.yudao.module.llm.controller.admin.modelassesstaskmanual.vo.ManualAssessmentPageReqVO; +import cn.iocoder.yudao.module.llm.controller.admin.modelassesstaskmanual.vo.ModelAssessTaskManualPageReqVO; +import cn.iocoder.yudao.module.llm.controller.admin.modelassesstaskmanual.vo.ModelAssessTaskManualRespVO; import cn.iocoder.yudao.module.llm.dal.dataobject.modelassesstaskmanual.ManualModelAnswerDO; import cn.iocoder.yudao.module.llm.service.modelassesstaskmanual.ManualModelAnswerService; import org.springframework.web.bind.annotation.*; @@ -39,7 +43,23 @@ public class ManualModelAnswerController { @Resource private ManualModelAnswerService manualModelAnswerService; - @PostMapping("/create") + @GetMapping("/getManualAssessment") + @Operation(summary = "人工评估") + @PreAuthorize("@ss.hasPermission('llm:model-assess-task-manual:query')") + public CommonResult> getManualAssessment(@Valid ModelAssessTaskManualPageReqVO pageReqVO) { + //TODO 人工评估-人工评估标注补充 + ManualAssessmentPageReqVO manualAssessment = manualModelAnswerService.getManualAssessment(pageReqVO); + return success(new PageResult<>()); + } + @PostMapping("/anno") + @Operation(summary = "人工标注") + @PreAuthorize("@ss.hasPermission('llm:manual-model-answer:update')") + public CommonResult annoManualModelAnswer(@Valid @RequestBody List reqRespVos){ + manualModelAnswerService.annoManualModelAnswer(reqRespVos); + return success(true); + } + +/* @PostMapping("/create") @Operation(summary = "创建模型评估人工标注 模型回答") @PreAuthorize("@ss.hasPermission('llm:manual-model-answer:create')") public CommonResult createManualModelAnswer(@Valid @RequestBody ManualModelAnswerSaveReqVO createReqVO) { @@ -91,6 +111,6 @@ public class ManualModelAnswerController { // 导出 Excel ExcelUtils.write(response, "模型评估人工标注 模型回答.xls", "数据", ManualModelAnswerRespVO.class, BeanUtils.toBean(list, ManualModelAnswerRespVO.class)); - } + }*/ } \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelassesstaskmanual/ModelAssessTaskManualController.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelassesstaskmanual/ModelAssessTaskManualController.java index 47e0c150d..ead32f138 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelassesstaskmanual/ModelAssessTaskManualController.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelassesstaskmanual/ModelAssessTaskManualController.java @@ -108,14 +108,6 @@ public class ModelAssessTaskManualController { return success(new PageResult<>()); } - @GetMapping("/getManualAssessment") - @Operation(summary = "人工评估") - @PreAuthorize("@ss.hasPermission('llm:model-assess-task-manual:query')") - public CommonResult> getManualAssessment(@Valid ModelAssessTaskManualPageReqVO pageReqVO) { - //TODO 人工评估-人工评估标注补充 - ManualAssessmentPageReqVO manualAssessment = modelAssessTaskManualService.getManualAssessment(pageReqVO); - return success(new PageResult<>()); - } @PostMapping("/backup") diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelassesstaskmanual/manualAnnoVo/ManualModelAnswerSaveReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelassesstaskmanual/manualAnnoVo/ManualModelAnswerSaveReqVO.java index fb7117248..fde034cc3 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelassesstaskmanual/manualAnnoVo/ManualModelAnswerSaveReqVO.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelassesstaskmanual/manualAnnoVo/ManualModelAnswerSaveReqVO.java @@ -3,6 +3,8 @@ package cn.iocoder.yudao.module.llm.controller.admin.modelassesstaskmanual.manua import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; +import java.util.List; + @Schema(description = "管理后台 - 模型评估人工标注 模型回答新增/修改 Request VO") @Data public class ManualModelAnswerSaveReqVO { @@ -25,4 +27,7 @@ public class ManualModelAnswerSaveReqVO { @Schema(description = "模型回答内容") private String modelAnswer; + @Schema(description = "模型评估人工标注列表") + private List annoReqRespVo; + } \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/modelassesstaskmanual/ManualModelAnswerMapper.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/modelassesstaskmanual/ManualModelAnswerMapper.java index 02eaaa847..a31ef8293 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/modelassesstaskmanual/ManualModelAnswerMapper.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/modelassesstaskmanual/ManualModelAnswerMapper.java @@ -6,6 +6,8 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.module.llm.controller.admin.modelassesstaskmanual.manualAnnoVo.ManualModelAnswerPageReqVO; import cn.iocoder.yudao.module.llm.dal.dataobject.modelassesstaskmanual.ManualModelAnswerDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; /** @@ -26,5 +28,6 @@ public interface ManualModelAnswerMapper extends BaseMapperX getManualModelAnswerPage(ManualModelAnswerPageReqVO pageReqVO); + void annoManualModelAnswer(List reqRespVo); + ManualAssessmentPageReqVO getManualAssessment(ModelAssessTaskManualPageReqVO pageReqVO); } \ No newline at end of file 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 97cc76cdb..87c2f9a24 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 @@ -1,9 +1,24 @@ package cn.iocoder.yudao.module.llm.service.modelassesstaskmanual; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.module.llm.controller.admin.dataset.vo.DatasetQuestionPageReqVO; +import cn.iocoder.yudao.module.llm.controller.admin.dataset.vo.DatasetQuestionRespVO; +import cn.iocoder.yudao.module.llm.controller.admin.modelassesstaskmanual.manualAnnoVo.ManualModelAnnoSaveReqVO; import cn.iocoder.yudao.module.llm.controller.admin.modelassesstaskmanual.manualAnnoVo.ManualModelAnswerPageReqVO; +import cn.iocoder.yudao.module.llm.controller.admin.modelassesstaskmanual.manualAnnoVo.ManualModelAnswerRespVO; import cn.iocoder.yudao.module.llm.controller.admin.modelassesstaskmanual.manualAnnoVo.ManualModelAnswerSaveReqVO; +import cn.iocoder.yudao.module.llm.controller.admin.modelassesstaskmanual.vo.ManualAssessmentPageReqVO; +import cn.iocoder.yudao.module.llm.controller.admin.modelassesstaskmanual.vo.ModelAssessTaskManualPageReqVO; +import cn.iocoder.yudao.module.llm.controller.admin.modelassesstaskmanual.vo.ModelAssessTaskManualRespVO; +import cn.iocoder.yudao.module.llm.dal.dataobject.dataset.DatasetQuestionDO; +import cn.iocoder.yudao.module.llm.dal.dataobject.modelassesstaskmanual.ManualModelAnnoDO; import cn.iocoder.yudao.module.llm.dal.dataobject.modelassesstaskmanual.ManualModelAnswerDO; -import cn.iocoder.yudao.module.llm.dal.mysql.modelassesstaskmanual.ManualModelAnswerMapper; +import cn.iocoder.yudao.module.llm.dal.dataobject.modelassesstaskmanual.ModelAssessTaskDimensionDO; +import cn.iocoder.yudao.module.llm.dal.dataobject.modelassesstaskmanual.ModelAssessTaskManualDO; +import cn.iocoder.yudao.module.llm.dal.mysql.modelassesstaskmanual.*; +import cn.iocoder.yudao.module.llm.service.dataset.DatasetQuestionService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -12,6 +27,8 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import java.util.List; + import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.llm.enums.ErrorCodeConstants.*; @@ -26,6 +43,71 @@ public class ManualModelAnswerServiceImpl implements ManualModelAnswerService { @Resource private ManualModelAnswerMapper manualModelAnswerMapper; + @Resource + private ModelAssessTaskManualService modelAssessTaskManualService; + @Resource + private ManualModelAnnoMapper manualModelAnnoMapper; + @Resource + private ModelAssessTaskDimensionMapper modelAssessTaskDimensionMapper; + @Resource + private ModelAssessTaskManualMapper modelAssessTaskManualMapper; + @Resource + private DatasetQuestionService datasetQuestionService; + + /** + * 分页进行查询 + * @param pageReqVO + * @return + */ + @Override + public ManualAssessmentPageReqVO getManualAssessment(ModelAssessTaskManualPageReqVO pageReqVO) { + ManualAssessmentPageReqVO reqVO = new ManualAssessmentPageReqVO(); + //获取数据集问题 + //TODO 人工评估标注获取信息后面需要更改 + DatasetQuestionPageReqVO vo = new DatasetQuestionPageReqVO(); + vo.setDatasetId(pageReqVO.getDatasetId()); + /*vo.setPageSize(1);*/ + PageResult datasetQuestionPage = datasetQuestionService.getDatasetQuestionPage(vo); + reqVO.setDatasetQuestionPage(datasetQuestionPage); + //获取模型评估标准 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper().eq(ModelAssessTaskDimensionDO::getTaskId, pageReqVO.getTaskId()); + List modelAssessTaskDimensionDOS = modelAssessTaskDimensionMapper.selectList(wrapper); + reqVO.setModelAssessTaskDimensionDOS(modelAssessTaskDimensionDOS); + LambdaQueryWrapper eq = new LambdaQueryWrapper().eq(ModelAssessTaskManualDO::getId, pageReqVO.getTaskId()); + ModelAssessTaskManualDO modelAssessTaskManualDO = modelAssessTaskManualMapper.selectOne(eq); + reqVO.setModelAssessTaskManualDO(modelAssessTaskManualDO); + return reqVO; + } + + /** + * 模型回答人工标注 + * @param reqRespVo + */ + @Override + public void annoManualModelAnswer(List reqRespVo) { + List modelAnswerDOS = BeanUtils.toBean(reqRespVo, ManualModelAnswerDO.class); + if (reqRespVo.size() > 0){ + Long modelAnswerId = modelAnswerDOS.get(0).getManalTaskId(); + reqRespVo.forEach(modelAnswerDO -> { + if (!CollectionUtils.isAnyEmpty(modelAnswerDO.getAnnoReqRespVo())){ + List modelAnnoDOS = BeanUtils.toBean(modelAnswerDO.getAnnoReqRespVo(), ManualModelAnnoDO.class); + manualModelAnnoMapper.insertOrUpdate(modelAnnoDOS); + manualModelAnswerMapper.updateStatus(modelAnswerDO.getId(),2); + } + }); + // 标注进度修改 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper() + .eq(ManualModelAnswerDO::getManalTaskId, modelAnswerId); + Long sumCount = manualModelAnswerMapper.selectCount(wrapper); + wrapper.eq(ManualModelAnswerDO::getStatus,2); + Long annoCount = manualModelAnswerMapper.selectCount(wrapper); + double ratio = sumCount == 0 ? 0 : ((double) annoCount / sumCount) *100; + Integer formattedRatio = ratio == 0 ? 0 : (int) ratio; + Integer status = formattedRatio == 100 ? 4 : 2; + modelAssessTaskManualMapper.updateStatus(modelAnswerId,formattedRatio,status); + } + + } @Override public Long createManualModelAnswer(ManualModelAnswerSaveReqVO createReqVO) { @@ -69,4 +151,5 @@ public class ManualModelAnswerServiceImpl implements ManualModelAnswerService { return manualModelAnswerMapper.selectPage(pageReqVO); } + } \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/modelassesstaskmanual/ModelAssessTaskManualServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/modelassesstaskmanual/ModelAssessTaskManualServiceImpl.java index 9a351922c..19899daa1 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/modelassesstaskmanual/ModelAssessTaskManualServiceImpl.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/modelassesstaskmanual/ModelAssessTaskManualServiceImpl.java @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.llm.service.modelassesstaskmanual; import cn.iocoder.yudao.module.llm.controller.admin.dataset.vo.DatasetQuestionPageReqVO; import cn.iocoder.yudao.module.llm.controller.admin.dataset.vo.DatasetQuestionRespVO; -import cn.iocoder.yudao.module.llm.controller.admin.modelassesstaskmanualbackup.vo.ModelAssessTaskManualBackupSaveReqVO; import cn.iocoder.yudao.module.llm.dal.dataobject.dataset.DatasetDO; import cn.iocoder.yudao.module.llm.dal.dataobject.modelassessstoplist.ModelAssessStoplistDO; import cn.iocoder.yudao.module.llm.dal.dataobject.modelassesstaskmanual.ModelAssessDimensionDO; @@ -14,7 +13,6 @@ import cn.iocoder.yudao.module.llm.dal.mysql.modelassesstaskmanual.ModelAssessTa import cn.iocoder.yudao.module.llm.dal.mysql.modelservice.ModelServiceMapper; import cn.iocoder.yudao.module.llm.service.async.AsyncModelAccessManualService; import cn.iocoder.yudao.module.llm.service.dataset.DatasetQuestionService; -import cn.iocoder.yudao.module.llm.service.modelassesstaskmanualbackup.ModelAssessTaskManualBackupService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; @@ -61,8 +59,6 @@ public class ModelAssessTaskManualServiceImpl implements ModelAssessTaskManualSe @Resource private AsyncModelAccessManualService asyncModelAccessManualService; - @Resource - private ModelAssessTaskManualBackupService modelAssessTaskManualBackupService; @Override public Long createModelAssessTaskManual(ModelAssessTaskManualSaveReqVO createReqVO) {