Merge remote-tracking branch 'xnjz/master'
This commit is contained in:
commit
911d711ea1
@ -75,8 +75,7 @@ public class DataProcessTaskController {
|
||||
@Operation(summary = "获得数据处理任务分页")
|
||||
@PreAuthorize("@ss.hasPermission('llm:data-process-task:query')")
|
||||
public CommonResult<PageResult<DataProcessTaskRespVO>> getDataProcessTaskPage(@Valid DataProcessTaskPageReqVO pageReqVO) {
|
||||
PageResult<DataProcessTaskDO> pageResult = dataProcessTaskService.getDataProcessTaskPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, DataProcessTaskRespVO.class));
|
||||
return success(dataProcessTaskService.getDataProcessTaskPage1(pageReqVO));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@ -92,4 +91,19 @@ public class DataProcessTaskController {
|
||||
BeanUtils.toBean(list, DataProcessTaskRespVO.class));
|
||||
}
|
||||
|
||||
@PutMapping("/stop")
|
||||
@Operation(summary = "停止模型调优 —— 微调任务")
|
||||
@PreAuthorize("@ss.hasPermission('llm:fine-tuning-task:update')")
|
||||
public CommonResult<Boolean> stopFineTuningTask(@RequestParam("id") Long id) {
|
||||
dataProcessTaskService.stopFineTuningTask(id);
|
||||
return success(true);
|
||||
}
|
||||
@PutMapping("/reStart")
|
||||
@Operation(summary = "开始模型调优 —— 微调任务")
|
||||
@PreAuthorize("@ss.hasPermission('llm:fine-tuning-task:update')")
|
||||
public CommonResult<Boolean> startFineTuningTask(@RequestParam("id") Long id) {
|
||||
dataProcessTaskService.reStartFineTuningTask(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.dataprocesstask.vo;
|
||||
|
||||
import cn.hutool.json.JSONObject;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@ -32,6 +33,6 @@ public class DataProcessTaskPageReqVO extends PageParam {
|
||||
private Long datasetPostId;
|
||||
|
||||
@Schema(description = "配置信息")
|
||||
private String options;
|
||||
private JSONObject options;
|
||||
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.dataprocesstask.vo;
|
||||
|
||||
import cn.hutool.json.JSONObject;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
@ -38,6 +39,12 @@ public class DataProcessTaskRespVO {
|
||||
|
||||
@Schema(description = "配置信息")
|
||||
@ExcelProperty("配置信息")
|
||||
private String options;
|
||||
private JSONObject options;
|
||||
|
||||
@Schema(description ="处理前的数据集名称")
|
||||
private String datasetName;
|
||||
|
||||
@Schema(description = "处理后的数据集名称")
|
||||
private String datasetPostName;
|
||||
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.dataprocesstask.vo;
|
||||
|
||||
import cn.hutool.json.JSONObject;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
@ -27,6 +28,6 @@ public class DataProcessTaskSaveReqVO {
|
||||
private Long datasetPostId;
|
||||
|
||||
@Schema(description = "配置信息")
|
||||
private String options;
|
||||
private JSONObject options;
|
||||
|
||||
}
|
@ -1,7 +1,9 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.datarefluxconfig;
|
||||
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.datarefluxdata.vo.DataRefluxDataRespVO;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.basemodel.BaseModelDO;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.datarefluxdata.DataRefluxDataDO;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.modelservice.ModelServiceDO;
|
||||
import cn.iocoder.yudao.module.llm.dal.mysql.modelservice.ModelServiceMapper;
|
||||
import cn.iocoder.yudao.module.llm.service.basemodel.BaseModelService;
|
||||
import cn.iocoder.yudao.module.llm.service.datarefluxdata.DataRefluxDataService;
|
||||
@ -82,9 +84,17 @@ public class DataRefluxConfigController {
|
||||
DataRefluxConfigDO dataRefluxConfig = dataRefluxConfigService.getDataRefluxConfig(id);
|
||||
DataRefluxConfigRespVO bean = BeanUtils.toBean(dataRefluxConfig, DataRefluxConfigRespVO.class);
|
||||
if (bean.getModelType()==0){
|
||||
bean.setModelServiceName(modelServiceService.getModelService(bean.getModelServiceId()).getServiceName());
|
||||
ModelServiceDO modelService = modelServiceService.getModelService(bean.getModelServiceId());
|
||||
if (modelService==null){
|
||||
bean.setModelServiceName("");
|
||||
}
|
||||
bean.setModelServiceName(modelService.getServiceName());
|
||||
}else if (bean.getModelType()==1){
|
||||
bean.setModelServiceName(baseModelService.getBaseModel(bean.getModelServiceId()).getModelName());
|
||||
BaseModelDO baseModel = baseModelService.getBaseModel(bean.getModelServiceId());
|
||||
if (baseModel==null){
|
||||
bean.setModelServiceName("");
|
||||
}
|
||||
bean.setModelServiceName(baseModel.getModelName());
|
||||
}
|
||||
return success(bean);
|
||||
}
|
||||
@ -100,9 +110,17 @@ public class DataRefluxConfigController {
|
||||
PageResult<DataRefluxConfigRespVO> bean = BeanUtils.toBean(pageResult, DataRefluxConfigRespVO.class);
|
||||
for (DataRefluxConfigRespVO dataRefluxConfigRespVO : bean.getList()){
|
||||
if (dataRefluxConfigRespVO.getModelType()==0){
|
||||
dataRefluxConfigRespVO.setModelServiceName(modelServiceService.getModelService(dataRefluxConfigRespVO.getModelServiceId()).getServiceName());
|
||||
ModelServiceDO modelService = modelServiceService.getModelService(dataRefluxConfigRespVO.getModelServiceId());
|
||||
if (modelService==null){
|
||||
dataRefluxConfigRespVO.setModelServiceName("");
|
||||
}
|
||||
dataRefluxConfigRespVO.setModelServiceName(modelService.getServiceName());
|
||||
}else if (dataRefluxConfigRespVO.getModelType()==1){
|
||||
dataRefluxConfigRespVO.setModelServiceName(baseModelService.getBaseModel(dataRefluxConfigRespVO.getModelServiceId()).getModelName());
|
||||
BaseModelDO baseModel = baseModelService.getBaseModel(dataRefluxConfigRespVO.getModelServiceId());
|
||||
if (baseModel==null){
|
||||
dataRefluxConfigRespVO.setModelServiceName("");
|
||||
}
|
||||
dataRefluxConfigRespVO.setModelServiceName(baseModel.getModelName());
|
||||
}
|
||||
}
|
||||
// PageResult<DataRefluxConfigRespVO> result = bean.setList(bean.getList());
|
||||
|
@ -82,13 +82,19 @@ public class DataRefluxDataController {
|
||||
|
||||
@GetMapping("/review-the-data")
|
||||
@Operation(summary = "数据回流配置保存数据")
|
||||
public void saveTheData(@RequestParam("id") DataRefluxDataReqVO pageReqVO){
|
||||
public void saveTheData(@Valid DataRefluxDataReqVO pageReqVO){
|
||||
if (pageReqVO.getId() != null){
|
||||
pageReqVO.setIds(Collections.singletonList(pageReqVO.getId()));
|
||||
}
|
||||
//TODO 数据回流配置保存数据
|
||||
}
|
||||
|
||||
@GetMapping("/save-all-the-data")
|
||||
@Operation(summary = "数据回流配置保存全部数据")
|
||||
public void saveAllTheData(@Valid DataRefluxDataReqVO pageReqVO){
|
||||
//TODO 全部保存数据
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出数据回流 —— 数据 Excel")
|
||||
|
@ -8,6 +8,8 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.dataprocesstask.DataProcessTaskDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.dataprocesstask.vo.*;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
/**
|
||||
* 数据处理任务 Mapper
|
||||
@ -27,5 +29,6 @@ public interface DataProcessTaskMapper extends BaseMapperX<DataProcessTaskDO> {
|
||||
.eqIfPresent(DataProcessTaskDO::getOptions, reqVO.getOptions())
|
||||
.orderByDesc(DataProcessTaskDO::getId));
|
||||
}
|
||||
|
||||
@Update("update llm_data_process_task set status = #{status} where id = #{id}")
|
||||
void updateStatus(@Param("id") Long id, @Param("status") int status);
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
package cn.iocoder.yudao.module.llm.framework.backend.config;
|
||||
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.scheduling.annotation.AsyncConfigurer;
|
||||
import org.springframework.scheduling.annotation.EnableAsync;
|
||||
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
@Configuration
|
||||
@EnableAsync
|
||||
public class AsyncConfig implements AsyncConfigurer {
|
||||
@Override
|
||||
public Executor getAsyncExecutor() {
|
||||
return AsyncConfigurer.super.getAsyncExecutor();
|
||||
}
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package cn.iocoder.yudao.module.llm.service.async;
|
||||
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.dataprocesstask.DataProcessTaskDO;
|
||||
import cn.iocoder.yudao.module.llm.dal.mysql.dataset.DatasetMapper;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@Service
|
||||
public class AsyncDataProcessService {
|
||||
@Async
|
||||
public void backups(DataProcessTaskDO dataProcessTask) {
|
||||
try {
|
||||
Thread.sleep(100000);
|
||||
}catch(InterruptedException e){
|
||||
|
||||
};
|
||||
}
|
||||
}
|
@ -52,4 +52,14 @@ public interface DataProcessTaskService {
|
||||
*/
|
||||
PageResult<DataProcessTaskDO> getDataProcessTaskPage(DataProcessTaskPageReqVO pageReqVO);
|
||||
|
||||
void stopFineTuningTask(Long id);
|
||||
|
||||
void reStartFineTuningTask(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询数据处理任务
|
||||
* @param pageReqVO
|
||||
* @return
|
||||
*/
|
||||
PageResult<DataProcessTaskRespVO> getDataProcessTaskPage1(DataProcessTaskPageReqVO pageReqVO);
|
||||
}
|
@ -1,11 +1,21 @@
|
||||
package cn.iocoder.yudao.module.llm.service.dataprocesstask;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.basemodel.BaseModelDO;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.dataset.DatasetDO;
|
||||
import cn.iocoder.yudao.module.llm.dal.mysql.dataset.DatasetMapper;
|
||||
import cn.iocoder.yudao.module.llm.service.async.AsyncDataProcessService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
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 java.util.stream.Stream;
|
||||
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.dataprocesstask.vo.*;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.dataprocesstask.DataProcessTaskDO;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
@ -28,16 +38,23 @@ public class DataProcessTaskServiceImpl implements DataProcessTaskService {
|
||||
|
||||
@Resource
|
||||
private DataProcessTaskMapper dataProcessTaskMapper;
|
||||
@Resource
|
||||
private DatasetMapper datasetMapper;
|
||||
@Resource
|
||||
private AsyncDataProcessService dataProcessService;
|
||||
|
||||
@Override
|
||||
public Long createDataProcessTask(DataProcessTaskSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
DataProcessTaskDO dataProcessTask = BeanUtils.toBean(createReqVO, DataProcessTaskDO.class);
|
||||
dataProcessTask.setStatus(1);
|
||||
dataProcessTaskMapper.insert(dataProcessTask);
|
||||
dataProcessService.backups(dataProcessTask);
|
||||
// 返回
|
||||
return dataProcessTask.getId();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void updateDataProcessTask(DataProcessTaskSaveReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
@ -70,5 +87,48 @@ public class DataProcessTaskServiceImpl implements DataProcessTaskService {
|
||||
public PageResult<DataProcessTaskDO> getDataProcessTaskPage(DataProcessTaskPageReqVO pageReqVO) {
|
||||
return dataProcessTaskMapper.selectPage(pageReqVO);
|
||||
}
|
||||
@Override
|
||||
public PageResult<DataProcessTaskRespVO> getDataProcessTaskPage1(DataProcessTaskPageReqVO pageReqVO) {
|
||||
PageResult<DataProcessTaskDO> dataProcessTaskDOPageResult = dataProcessTaskMapper.selectPage(pageReqVO);
|
||||
PageResult<DataProcessTaskRespVO> result = BeanUtils.toBean(dataProcessTaskDOPageResult, DataProcessTaskRespVO.class);
|
||||
if (!CollectionUtils.isAnyEmpty(dataProcessTaskDOPageResult.getList())){
|
||||
List<Long> collect = dataProcessTaskDOPageResult.getList().stream()
|
||||
.map(DataProcessTaskDO::getDatasetId)
|
||||
.collect(Collectors.toList());
|
||||
List<Long> collect1 = dataProcessTaskDOPageResult.getList()
|
||||
.stream().map(DataProcessTaskDO::getDatasetPostId).collect(Collectors.toList());
|
||||
Set<Long> datasetIds = Stream.concat(collect.stream(), collect1.stream()).collect(Collectors.toSet());
|
||||
if (!CollectionUtils.isAnyEmpty(datasetIds)){
|
||||
List<Long> mergeDataList = new ArrayList<>(datasetIds);
|
||||
List<DatasetDO> datasetDOS = datasetMapper.selectList(new LambdaQueryWrapper<DatasetDO>().in(DatasetDO::getId, mergeDataList));
|
||||
Map<Long, DatasetDO> longDataDOMap = cn.iocoder.yudao.framework.common.util.collection.
|
||||
CollectionUtils.convertMap(datasetDOS, DatasetDO::getId);
|
||||
result.getList().forEach(item->{
|
||||
DatasetDO datasetDO = longDataDOMap.get(item.getDatasetId());
|
||||
if(datasetDO != null){
|
||||
item.setDatasetName(datasetDO.getDatasetName());
|
||||
}
|
||||
if (item.getStatus() == 2){
|
||||
DatasetDO datasetDO1 = longDataDOMap.get(item.getDatasetPostId());
|
||||
if (datasetDO1 != null){
|
||||
item.setDatasetPostName(datasetDO1.getDatasetName());
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@Override
|
||||
public void stopFineTuningTask(Long id) {
|
||||
dataProcessTaskMapper.updateStatus(id, 3);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reStartFineTuningTask(Long id) {
|
||||
dataProcessTaskMapper.updateStatus(id, 1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
@ -2,6 +2,7 @@ package cn.iocoder.yudao.server;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.scheduling.annotation.EnableAsync;
|
||||
|
||||
/**
|
||||
* 项目的启动类
|
||||
|
Loading…
x
Reference in New Issue
Block a user