diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelservice/ModelServiceController.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelservice/ModelServiceController.java index 87556c874..6bc3d5887 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelservice/ModelServiceController.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/modelservice/ModelServiceController.java @@ -53,6 +53,22 @@ public class ModelServiceController { return success(true); } + @PutMapping("/active") + @Operation(summary = "开启模型服务") + @PreAuthorize("@ss.hasPermission('llm:model-service:update')") + public CommonResult activeModelService(@Valid @RequestBody ModelServiceSaveReqVO updateReqVO) { + modelServiceService.active(updateReqVO); + return success(true); + } + + @PutMapping("/unactive") + @Operation(summary = "关闭模型服务") + @PreAuthorize("@ss.hasPermission('llm:model-service:update')") + public CommonResult unactiveModelService(@Valid @RequestBody ModelServiceSaveReqVO updateReqVO) { + modelServiceService.unactive(updateReqVO); + return success(true); + } + @GetMapping("/all") @Operation(summary = "查询所有模型服务") @PreAuthorize("@ss.hasPermission('llm:model-service:query')") diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncFineTuningTaskService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncFineTuningTaskService.java new file mode 100644 index 000000000..4c248e94b --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncFineTuningTaskService.java @@ -0,0 +1,50 @@ +package cn.iocoder.yudao.module.llm.service.async; + +import cn.iocoder.yudao.module.llm.dal.dataobject.finetuningtask.FineTuningTaskDO; +import cn.iocoder.yudao.module.llm.dal.mysql.finetuningtask.FineTuningTaskMapper; +import cn.iocoder.yudao.module.llm.service.http.TrainHttpService; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.HashMap; + +@Service +public class AsyncFineTuningTaskService { + + @Resource + private FineTuningTaskMapper fineTuningTaskMapper; + + @Resource + private TrainHttpService trainHttpService; + + //大模型平台创建调优任务 + @Async + public void createTuning(FineTuningTaskDO fineTuningTask) { + try { + trainHttpService.finetuningCreate(new HashMap<>(),new String()); + }catch(Exception e){ + + }; + } + + //调优任务部署 + @Async + public void startFineTuningTask() { + try { + + }catch(Exception e){ + + }; + } + + //调优任务停止 + @Async + public void stopFineTuningTask() { + try { + + }catch(Exception e){ + + }; + } +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncModelServiceService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncModelServiceService.java new file mode 100644 index 000000000..404a4d853 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncModelServiceService.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.llm.service.async; + +import cn.iocoder.yudao.module.llm.dal.mysql.finetuningtask.FineTuningTaskMapper; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +public class AsyncModelServiceService { + + @Resource + private FineTuningTaskMapper fineTuningTaskMapper; + + //模型服务开启 + @Async + public void startModelService() { + try { + + }catch(Exception e){ + + }; + } + + //调型服务关闭 + @Async + public void stopModelService() { + try { + + }catch(Exception e){ + + }; + } +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuningtask/FineTuningTaskServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuningtask/FineTuningTaskServiceImpl.java index e4ffc1047..beee97dda 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuningtask/FineTuningTaskServiceImpl.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/finetuningtask/FineTuningTaskServiceImpl.java @@ -1,29 +1,28 @@ package cn.iocoder.yudao.module.llm.service.finetuningtask; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.llm.controller.admin.finetuningtask.vo.FineTuningTaskPageReqVO; +import cn.iocoder.yudao.module.llm.controller.admin.finetuningtask.vo.FineTuningTaskRespVO; +import cn.iocoder.yudao.module.llm.controller.admin.finetuningtask.vo.FineTuningTaskSaveReqVO; 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.dataobject.modelservice.ModelServiceDO; +import cn.iocoder.yudao.module.llm.dal.dataobject.finetuningtask.FineTuningTaskDO; import cn.iocoder.yudao.module.llm.dal.mysql.basemodel.BaseModelMapper; import cn.iocoder.yudao.module.llm.dal.mysql.dataset.DatasetMapper; +import cn.iocoder.yudao.module.llm.dal.mysql.finetuningtask.FineTuningTaskMapper; +import cn.iocoder.yudao.module.llm.service.async.AsyncFineTuningTaskService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 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 javax.annotation.Resource; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; -import cn.iocoder.yudao.module.llm.controller.admin.finetuningtask.vo.*; -import cn.iocoder.yudao.module.llm.dal.dataobject.finetuningtask.FineTuningTaskDO; -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 cn.iocoder.yudao.module.llm.dal.mysql.finetuningtask.FineTuningTaskMapper; - import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.llm.enums.ErrorCodeConstants.FINE_TUNING_TASK_NOT_EXISTS; @@ -43,12 +42,16 @@ public class FineTuningTaskServiceImpl implements FineTuningTaskService { private BaseModelMapper baseModelMapper; @Resource private DatasetMapper datasetMapper; + @Resource + private AsyncFineTuningTaskService asyncFineTuningTaskService; @Override public Long createFineTuningTask(FineTuningTaskSaveReqVO createReqVO) { // 插入 FineTuningTaskDO fineTuningTask = BeanUtils.toBean(createReqVO, FineTuningTaskDO.class); fineTuningTaskMapper.insert(fineTuningTask); + //todo 调用模型服务,创建调优任务 + asyncFineTuningTaskService.createTuning(fineTuningTask); // 返回 return fineTuningTask.getId(); } @@ -127,26 +130,25 @@ public class FineTuningTaskServiceImpl implements FineTuningTaskService { return result; } - /** - * 停止服务 - * @param id - */ - @Override - public void stopFineTuningTask(Long id) { - fineTuningTaskMapper.stopStartTask(id,0); - } @Override public void startFineTuningTask(Long id) { fineTuningTaskMapper.stopStartTask(id,1); + //todo 调用模型服务,开启调优任务 + asyncFineTuningTaskService.startFineTuningTask(); } @Override - public PageResult getFineTuningTaskPage(FineTuningTaskPageReqVO pageReqVO) { - PageResult pageResult = fineTuningTaskMapper.selectPage(pageReqVO); - PageResult result = BeanUtils.toBean(pageResult, FineTuningTaskRespVO.class); + public void stopFineTuningTask(Long id) { + fineTuningTaskMapper.stopStartTask(id,0); + //todo 调用模型服务,停止调优任务 + asyncFineTuningTaskService.stopFineTuningTask(); + } + + @Override + public PageResult getFineTuningTaskPage(FineTuningTaskPageReqVO pageReqVO) { return fineTuningTaskMapper.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/modelservice/ModelServiceService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/modelservice/ModelServiceService.java index 888623b1d..e1ad3ff29 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/modelservice/ModelServiceService.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/modelservice/ModelServiceService.java @@ -57,4 +57,8 @@ public interface ModelServiceService { * @return */ List getModelServiceList(); + + void active(ModelServiceSaveReqVO updateReqVO); + + void unactive(ModelServiceSaveReqVO updateReqVO); } diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/modelservice/ModelServiceServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/modelservice/ModelServiceServiceImpl.java index 283b80830..98ec652b1 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/modelservice/ModelServiceServiceImpl.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/modelservice/ModelServiceServiceImpl.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.llm.service.modelservice; +import cn.iocoder.yudao.module.llm.service.async.AsyncModelServiceService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -29,6 +30,9 @@ public class ModelServiceServiceImpl implements ModelServiceService { @Resource private ModelServiceMapper modelServiceMapper; + @Resource + private AsyncModelServiceService asyncModelServiceService; + @Override public Long createModelService(ModelServiceSaveReqVO createReqVO) { // 插入 @@ -76,4 +80,25 @@ public class ModelServiceServiceImpl implements ModelServiceService { return modelServiceMapper.selectList(); } + @Override + public void active(ModelServiceSaveReqVO updateReqVO) { + ModelServiceDO updateObj = BeanUtils.toBean(updateReqVO, ModelServiceDO.class); + updateObj.setStatus(1); + modelServiceMapper.updateById(updateObj); + + //todo 开启模型服务 + asyncModelServiceService.startModelService(); + } + + @Override + public void unactive(ModelServiceSaveReqVO updateReqVO) { + ModelServiceDO updateObj = BeanUtils.toBean(updateReqVO, ModelServiceDO.class); + updateObj.setStatus(0); + modelServiceMapper.updateById(updateObj); + + //todo 关闭模型服务 + asyncModelServiceService.stopModelService(); + + } + }