增加文件标注
This commit is contained in:
parent
0ee4f9d26a
commit
db01dc8782
@ -0,0 +1,97 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.dataset;
|
||||
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.dataset.vo.DatasetAnswerPageReqVO;
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.dataset.vo.DatasetAnswerRespVO;
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.dataset.vo.DatasetAnswerSaveReqVO;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.dataset.DatasetAnswerDO;
|
||||
import cn.iocoder.yudao.module.llm.service.dataset.DatasetAnswerService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
|
||||
/*@Tag(name = "管理后台 - 数据集数据问题标注内容")
|
||||
@RestController
|
||||
@RequestMapping("/llm/dataset-answer")
|
||||
@Validated*/
|
||||
public class DatasetAnswerController {
|
||||
|
||||
@Resource
|
||||
private DatasetAnswerService datasetAnswerService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建数据集数据问题标注内容")
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-answer:create')")
|
||||
public CommonResult<Long> createDatasetAnswer(@Valid @RequestBody DatasetAnswerSaveReqVO createReqVO) {
|
||||
return success(datasetAnswerService.createDatasetAnswer(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新数据集数据问题标注内容")
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-answer:update')")
|
||||
public CommonResult<Boolean> updateDatasetAnswer(@Valid @RequestBody DatasetAnswerSaveReqVO updateReqVO) {
|
||||
datasetAnswerService.updateDatasetAnswer(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除数据集数据问题标注内容")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-answer:delete')")
|
||||
public CommonResult<Boolean> deleteDatasetAnswer(@RequestParam("id") Long id) {
|
||||
datasetAnswerService.deleteDatasetAnswer(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得数据集数据问题标注内容")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-answer:query')")
|
||||
public CommonResult<DatasetAnswerRespVO> getDatasetAnswer(@RequestParam("id") Long id) {
|
||||
DatasetAnswerDO datasetAnswer = datasetAnswerService.getDatasetAnswer(id);
|
||||
return success(BeanUtils.toBean(datasetAnswer, DatasetAnswerRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得数据集数据问题标注内容分页")
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-answer:query')")
|
||||
public CommonResult<PageResult<DatasetAnswerRespVO>> getDatasetAnswerPage(@Valid DatasetAnswerPageReqVO pageReqVO) {
|
||||
PageResult<DatasetAnswerDO> pageResult = datasetAnswerService.getDatasetAnswerPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, DatasetAnswerRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出数据集数据问题标注内容 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-answer:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportDatasetAnswerExcel(@Valid DatasetAnswerPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<DatasetAnswerDO> list = datasetAnswerService.getDatasetAnswerPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "数据集数据问题标注内容.xls", "数据", DatasetAnswerRespVO.class,
|
||||
BeanUtils.toBean(list, DatasetAnswerRespVO.class));
|
||||
}
|
||||
|
||||
}
|
@ -31,11 +31,11 @@ import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
@Tag(name = "管理后台 - 数据集数据文件")
|
||||
@RestController
|
||||
@RequestMapping("/llm/dataset-files")
|
||||
@Validated
|
||||
@Validated*/
|
||||
public class DatasetFilesController {
|
||||
|
||||
@Resource
|
||||
|
@ -40,48 +40,51 @@ public class DatasetQuestionController {
|
||||
@Resource
|
||||
private DatasetQuestionService datasetQuestionService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建数据集数据问题")
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-question:create')")
|
||||
public CommonResult<Long> createDatasetQuestion(@Valid @RequestBody DatasetQuestionSaveReqVO createReqVO) {
|
||||
return success(datasetQuestionService.createDatasetQuestion(createReqVO));
|
||||
|
||||
@PutMapping("data-anno")
|
||||
@Operation(summary = "保存标注接口")
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-question:anno')")
|
||||
public CommonResult<Boolean> updateDatasetQuestionDataAnno(@Valid @RequestBody List<DatasetQuestionSaveReqVO> updateReqVOS) {
|
||||
datasetQuestionService.updateDatasetQuestionDataAnno(updateReqVOS);
|
||||
return success(true);
|
||||
}
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得数据集数据问题分页")
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-question:query')")
|
||||
public CommonResult<PageResult<DatasetQuestionRespVO>> getDatasetQuestionPage(@Valid DatasetQuestionPageReqVO pageReqVO) {
|
||||
PageResult<DatasetQuestionRespVO> pageResult = datasetQuestionService.getDatasetQuestionPage(pageReqVO);
|
||||
return success(pageResult);
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
/* @PutMapping("/update")
|
||||
@Operation(summary = "更新数据集数据问题")
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-question:update')")
|
||||
public CommonResult<Boolean> updateDatasetQuestion(@Valid @RequestBody DatasetQuestionSaveReqVO updateReqVO) {
|
||||
datasetQuestionService.updateDatasetQuestion(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
}*/
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
/* @DeleteMapping("/delete")
|
||||
@Operation(summary = "删除数据集数据问题")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-question:delete')")
|
||||
public CommonResult<Boolean> deleteDatasetQuestion(@RequestParam("id") Long id) {
|
||||
datasetQuestionService.deleteDatasetQuestion(id);
|
||||
return success(true);
|
||||
}
|
||||
}*/
|
||||
|
||||
@GetMapping("/get")
|
||||
/* @GetMapping("/get")
|
||||
@Operation(summary = "获得数据集数据问题")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-question:query')")
|
||||
public CommonResult<DatasetQuestionRespVO> getDatasetQuestion(@RequestParam("id") Long id) {
|
||||
DatasetQuestionDO datasetQuestion = datasetQuestionService.getDatasetQuestion(id);
|
||||
return success(BeanUtils.toBean(datasetQuestion, DatasetQuestionRespVO.class));
|
||||
}
|
||||
}*/
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得数据集数据问题分页")
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-question:query')")
|
||||
public CommonResult<PageResult<DatasetQuestionRespVO>> getDatasetQuestionPage(@Valid DatasetQuestionPageReqVO pageReqVO) {
|
||||
PageResult<DatasetQuestionDO> pageResult = datasetQuestionService.getDatasetQuestionPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, DatasetQuestionRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
|
||||
/* @GetMapping("/export-excel")
|
||||
@Operation(summary = "导出数据集数据问题 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-question:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
@ -92,6 +95,13 @@ public class DatasetQuestionController {
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "数据集数据问题.xls", "数据", DatasetQuestionRespVO.class,
|
||||
BeanUtils.toBean(list, DatasetQuestionRespVO.class));
|
||||
}
|
||||
}*/
|
||||
|
||||
/* @PostMapping("/create")
|
||||
@Operation(summary = "创建数据集数据问题")
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-question:create')")
|
||||
public CommonResult<Long> createDatasetQuestion(@Valid @RequestBody DatasetQuestionSaveReqVO createReqVO) {
|
||||
return success(datasetQuestionService.createDatasetQuestion(createReqVO));
|
||||
}*/
|
||||
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.dataset.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - 数据集数据问题标注内容分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class DatasetAnswerPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "数据集ID", example = "31073")
|
||||
private Long datasetId;
|
||||
|
||||
@Schema(description = "数据文件ID", example = "21597")
|
||||
private Long datasetFilesId;
|
||||
|
||||
@Schema(description = "问题ID", example = "23725")
|
||||
private Long questionId;
|
||||
|
||||
@Schema(description = "标注内容")
|
||||
private String answer;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.dataset.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.excel.annotation.*;
|
||||
|
||||
@Schema(description = "管理后台 - 数据集数据问题标注内容 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class DatasetAnswerRespVO {
|
||||
|
||||
@Schema(description = "数据集问题ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "32153")
|
||||
@ExcelProperty("数据集问题ID")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "数据集ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "31073")
|
||||
@ExcelProperty("数据集ID")
|
||||
private Long datasetId;
|
||||
|
||||
@Schema(description = "数据文件ID", example = "21597")
|
||||
@ExcelProperty("数据文件ID")
|
||||
private Long datasetFilesId;
|
||||
|
||||
@Schema(description = "问题ID", example = "23725")
|
||||
@ExcelProperty("问题ID")
|
||||
private Long questionId;
|
||||
|
||||
@Schema(description = "标注内容")
|
||||
@ExcelProperty("标注内容")
|
||||
private String answer;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.dataset.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 数据集数据问题标注内容新增/修改 Request VO")
|
||||
@Data
|
||||
public class DatasetAnswerSaveReqVO {
|
||||
|
||||
@Schema(description = "数据集问题ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "32153")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "数据集ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "31073")
|
||||
@NotNull(message = "数据集ID不能为空")
|
||||
private Long datasetId;
|
||||
|
||||
@Schema(description = "数据文件ID", example = "21597")
|
||||
private Long datasetFilesId;
|
||||
|
||||
@Schema(description = "问题ID", example = "23725")
|
||||
private Long questionId;
|
||||
|
||||
@Schema(description = "标注内容")
|
||||
private String answer;
|
||||
|
||||
}
|
@ -47,6 +47,6 @@ public class DatasetPageReqVO extends PageParam {
|
||||
private Long dataLength;
|
||||
|
||||
@Schema(description = "标注进度", example = "20")
|
||||
private Integer annotateProgress;
|
||||
private String annotateProgress;
|
||||
|
||||
}
|
||||
|
@ -36,4 +36,7 @@ public class DatasetQuestionRespVO {
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@Schema(description = "标注内容")
|
||||
private List<DatasetAnswerRespVO> datasetAnswerRespVO;
|
||||
|
||||
}
|
@ -24,5 +24,7 @@ public class DatasetQuestionSaveReqVO {
|
||||
|
||||
@Schema(description = "标注状态,使用字典(llm_dataset_mark_status)", example = "1")
|
||||
private Integer status;
|
||||
@Schema(description = "标注内容")
|
||||
private List<DatasetAnswerSaveReqVO> datasetAnswerSaveReqVO;
|
||||
|
||||
}
|
@ -55,7 +55,7 @@ public class DatasetRespVO {
|
||||
private Long dataLength;
|
||||
|
||||
@Schema(description = "标注进度", example = "20")
|
||||
private Integer annotateProgress;
|
||||
private String annotateProgress;
|
||||
|
||||
@Schema(description = "数据集数据文件", example = "[]")
|
||||
private List<DatasetQuestionRespVO> datasetQuestionRespVOS;
|
||||
|
@ -42,7 +42,7 @@ public class DatasetSaveReqVO {
|
||||
private Long dataLength;
|
||||
|
||||
@Schema(description = "标注进度", example = "20")
|
||||
private Integer annotateProgress;
|
||||
private String annotateProgress;
|
||||
|
||||
@Schema(description = "数据集数据文件", example = "[]")
|
||||
private List<DatasetFilesSaveReqVO> datasetFiles;
|
||||
|
@ -0,0 +1,47 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.dataobject.dataset;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
|
||||
/**
|
||||
* 数据集数据问题标注内容 DO
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@TableName("llm_dataset_answer")
|
||||
@KeySequence("llm_dataset_answer_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class DatasetAnswerDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 数据集问题ID
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 数据集ID
|
||||
*/
|
||||
private Long datasetId;
|
||||
/**
|
||||
* 数据文件ID
|
||||
*/
|
||||
private Long datasetFilesId;
|
||||
/**
|
||||
* 问题ID
|
||||
*/
|
||||
private Long questionId;
|
||||
/**
|
||||
* 标注内容
|
||||
*/
|
||||
private String answer;
|
||||
|
||||
}
|
@ -66,6 +66,6 @@ public class DatasetDO extends BaseDO {
|
||||
/**
|
||||
* 标注进度
|
||||
*/
|
||||
private Integer annotateProgress;
|
||||
private String annotateProgress;
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,30 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.mysql.dataset;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.dataset.vo.DatasetAnswerPageReqVO;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.dataset.DatasetAnswerDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* 数据集数据问题标注内容 Mapper
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@Mapper
|
||||
public interface DatasetAnswerMapper extends BaseMapperX<DatasetAnswerDO> {
|
||||
|
||||
default PageResult<DatasetAnswerDO> selectPage(DatasetAnswerPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<DatasetAnswerDO>()
|
||||
.eqIfPresent(DatasetAnswerDO::getDatasetId, reqVO.getDatasetId())
|
||||
.eqIfPresent(DatasetAnswerDO::getDatasetFilesId, reqVO.getDatasetFilesId())
|
||||
.eqIfPresent(DatasetAnswerDO::getQuestionId, reqVO.getQuestionId())
|
||||
.eqIfPresent(DatasetAnswerDO::getAnswer, reqVO.getAnswer())
|
||||
.betweenIfPresent(DatasetAnswerDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(DatasetAnswerDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -8,6 +8,8 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.dataset.DatasetDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.dataset.vo.*;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
/**
|
||||
* 数据集 Mapper
|
||||
@ -31,4 +33,6 @@ public interface DatasetMapper extends BaseMapperX<DatasetDO> {
|
||||
.orderByDesc(DatasetDO::getId));
|
||||
}
|
||||
|
||||
@Update("update llm_dataset set annotate_progress = CONCAT(#{formattedRatio}, '%') where id = #{datasetId}")
|
||||
void updateProcess(@Param("formattedRatio") String formattedRatio, @Param("datasetId") Long datasetId);
|
||||
}
|
||||
|
@ -0,0 +1,56 @@
|
||||
package cn.iocoder.yudao.module.llm.service.dataset;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.dataset.vo.DatasetAnswerPageReqVO;
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.dataset.vo.DatasetAnswerSaveReqVO;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.dataset.DatasetAnswerDO;
|
||||
|
||||
/**
|
||||
* 数据集数据问题标注内容 Service 接口
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
public interface DatasetAnswerService {
|
||||
|
||||
/**
|
||||
* 创建数据集数据问题标注内容
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createDatasetAnswer(@Valid DatasetAnswerSaveReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新数据集数据问题标注内容
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateDatasetAnswer(@Valid DatasetAnswerSaveReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除数据集数据问题标注内容
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteDatasetAnswer(Long id);
|
||||
|
||||
/**
|
||||
* 获得数据集数据问题标注内容
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 数据集数据问题标注内容
|
||||
*/
|
||||
DatasetAnswerDO getDatasetAnswer(Long id);
|
||||
|
||||
/**
|
||||
* 获得数据集数据问题标注内容分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 数据集数据问题标注内容分页
|
||||
*/
|
||||
PageResult<DatasetAnswerDO> getDatasetAnswerPage(DatasetAnswerPageReqVO pageReqVO);
|
||||
|
||||
}
|
@ -0,0 +1,75 @@
|
||||
package cn.iocoder.yudao.module.llm.service.dataset;
|
||||
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.dataset.vo.DatasetAnswerPageReqVO;
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.dataset.vo.DatasetAnswerSaveReqVO;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.dataset.DatasetAnswerDO;
|
||||
import cn.iocoder.yudao.module.llm.dal.mysql.dataset.DatasetAnswerMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static cn.iocoder.yudao.module.llm.enums.ErrorCodeConstants.*;
|
||||
|
||||
/**
|
||||
* 数据集数据问题标注内容 Service 实现类
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class DatasetAnswerServiceImpl implements DatasetAnswerService {
|
||||
|
||||
@Resource
|
||||
private DatasetAnswerMapper datasetAnswerMapper;
|
||||
|
||||
@Override
|
||||
public Long createDatasetAnswer(DatasetAnswerSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
DatasetAnswerDO datasetAnswer = BeanUtils.toBean(createReqVO, DatasetAnswerDO.class);
|
||||
datasetAnswerMapper.insert(datasetAnswer);
|
||||
// 返回
|
||||
return datasetAnswer.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateDatasetAnswer(DatasetAnswerSaveReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateDatasetAnswerExists(updateReqVO.getId());
|
||||
// 更新
|
||||
DatasetAnswerDO updateObj = BeanUtils.toBean(updateReqVO, DatasetAnswerDO.class);
|
||||
datasetAnswerMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteDatasetAnswer(Long id) {
|
||||
// 校验存在
|
||||
validateDatasetAnswerExists(id);
|
||||
// 删除
|
||||
datasetAnswerMapper.deleteById(id);
|
||||
}
|
||||
|
||||
private void validateDatasetAnswerExists(Long id) {
|
||||
if (datasetAnswerMapper.selectById(id) == null) {
|
||||
throw exception(DATASET_ANSWER_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public DatasetAnswerDO getDatasetAnswer(Long id) {
|
||||
return datasetAnswerMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<DatasetAnswerDO> getDatasetAnswerPage(DatasetAnswerPageReqVO pageReqVO) {
|
||||
return datasetAnswerMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
}
|
@ -5,6 +5,7 @@ import javax.validation.*;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
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.dataset.vo.DatasetQuestionSaveReqVO;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.dataset.DatasetQuestionDO;
|
||||
|
||||
@ -51,6 +52,7 @@ public interface DatasetQuestionService {
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 数据集数据问题分页
|
||||
*/
|
||||
PageResult<DatasetQuestionDO> getDatasetQuestionPage(DatasetQuestionPageReqVO pageReqVO);
|
||||
PageResult<DatasetQuestionRespVO> getDatasetQuestionPage(DatasetQuestionPageReqVO pageReqVO);
|
||||
|
||||
void updateDatasetQuestionDataAnno(List<DatasetQuestionSaveReqVO> updateReqVOS);
|
||||
}
|
@ -1,15 +1,21 @@
|
||||
package cn.iocoder.yudao.module.llm.service.dataset;
|
||||
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.dataset.vo.DatasetQuestionPageReqVO;
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.dataset.vo.DatasetQuestionSaveReqVO;
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.dataset.vo.*;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.dataset.DatasetAnswerDO;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.dataset.DatasetQuestionDO;
|
||||
import cn.iocoder.yudao.module.llm.dal.mysql.dataset.DatasetAnswerMapper;
|
||||
import cn.iocoder.yudao.module.llm.dal.mysql.dataset.DatasetMapper;
|
||||
import cn.iocoder.yudao.module.llm.dal.mysql.dataset.DatasetQuestionMapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
@ -29,6 +35,10 @@ public class DatasetQuestionServiceImpl implements DatasetQuestionService {
|
||||
|
||||
@Resource
|
||||
private DatasetQuestionMapper datasetQuestionMapper;
|
||||
@Resource
|
||||
private DatasetAnswerMapper datasetAnswerMapper;
|
||||
@Resource
|
||||
private DatasetMapper datasetMapper;
|
||||
|
||||
@Override
|
||||
public Long createDatasetQuestion(DatasetQuestionSaveReqVO createReqVO) {
|
||||
@ -68,8 +78,38 @@ public class DatasetQuestionServiceImpl implements DatasetQuestionService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<DatasetQuestionDO> getDatasetQuestionPage(DatasetQuestionPageReqVO pageReqVO) {
|
||||
return datasetQuestionMapper.selectPage(pageReqVO);
|
||||
public PageResult<DatasetQuestionRespVO> getDatasetQuestionPage(DatasetQuestionPageReqVO pageReqVO) {
|
||||
PageResult<DatasetQuestionDO> datasetQuestionDOPageResult = datasetQuestionMapper.selectPage(pageReqVO);
|
||||
PageResult<DatasetQuestionRespVO> result = BeanUtils.toBean(datasetQuestionDOPageResult, DatasetQuestionRespVO.class);
|
||||
if (CollectionUtils.isNotEmpty(result.getList())){
|
||||
result.getList().forEach(item -> {
|
||||
List<DatasetAnswerDO> datasetAnswerDOS = datasetAnswerMapper.selectList(new LambdaQueryWrapper<>(DatasetAnswerDO.class)
|
||||
.eq(DatasetAnswerDO::getQuestionId, item.getId()));
|
||||
item.setDatasetAnswerRespVO(BeanUtils.toBean(datasetAnswerDOS, DatasetAnswerRespVO.class));
|
||||
|
||||
});
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateDatasetQuestionDataAnno(List<DatasetQuestionSaveReqVO> updateReqVOS) {
|
||||
updateReqVOS.forEach(updateReqVO -> {
|
||||
DatasetQuestionDO datasetQuestionDO = BeanUtils.toBean(updateReqVO, DatasetQuestionDO.class);
|
||||
datasetQuestionMapper.updateById(datasetQuestionDO);
|
||||
List<DatasetAnswerSaveReqVO> datasetAnswerSaveReqVO = updateReqVO.getDatasetAnswerSaveReqVO();
|
||||
List<DatasetAnswerDO> datasetAnswerDOS = BeanUtils.toBean(datasetAnswerSaveReqVO, DatasetAnswerDO.class);
|
||||
datasetAnswerMapper.insertOrUpdate(datasetAnswerDOS);
|
||||
});
|
||||
// 标注进度修改
|
||||
LambdaQueryWrapper<DatasetQuestionDO> wrapper = new LambdaQueryWrapper<DatasetQuestionDO>()
|
||||
.eq(DatasetQuestionDO::getDatasetId, updateReqVOS.get(0).getDatasetId());
|
||||
Long sumCount = datasetQuestionMapper.selectCount(wrapper);
|
||||
wrapper.eq(DatasetQuestionDO::getStatus,1);
|
||||
Long annoCount = datasetQuestionMapper.selectCount(wrapper);
|
||||
double ratio = sumCount == 0 ? 0 : ((double) annoCount / sumCount) *100;
|
||||
String formattedRatio = String.format("%.2f", ratio);
|
||||
datasetMapper.updateProcess(formattedRatio, updateReqVOS.get(0).getDatasetId());
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="cn.iocoder.yudao.module.llm.dal.mysql.dataset.DatasetAnswerMapper">
|
||||
|
||||
<!--
|
||||
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
|
||||
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
|
||||
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
|
||||
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
|
||||
-->
|
||||
|
||||
</mapper>
|
Loading…
x
Reference in New Issue
Block a user