refactor(module-llm):重构微调任务创建逻辑
- 将 finetuningCreate 方法从 TrainHttpService 移动到 FineTuningTaskHttpService -优化 AsyncFineTuningTaskService 中的调用逻辑 -增加 FineTuningTaskServiceImpl 中的任务存在性校验和状态更新 - 删除 TrainHttpService 中的冗余方法
This commit is contained in:
parent
8dffa602fb
commit
3d70b004ab
@ -123,7 +123,7 @@ public class AsyncFineTuningTaskService {
|
||||
|
||||
// 调用模型服务创建微调任务
|
||||
log.info("正在调用模型服务创建微调任务...");
|
||||
AigcFineTuningCreateRespVO resp = trainHttpService.finetuningCreate(new HashMap<>(), serverNameDO.getHost(), req);
|
||||
AigcFineTuningCreateRespVO resp = fineTuningTaskHttpService.finetuningCreate(new HashMap<>(), serverNameDO.getHost(), req);
|
||||
|
||||
// 更新任务状态
|
||||
FineTuningTaskDO updateObj = new FineTuningTaskDO();
|
||||
@ -169,13 +169,15 @@ public class AsyncFineTuningTaskService {
|
||||
//调优任务部署
|
||||
@Async
|
||||
public void startFineTuningTask (FineTuningTaskDO fineTuningTask) {
|
||||
log.info(" ===== 开始微调任务 ===== stopFinetuning");
|
||||
try {
|
||||
log.info("开始调用HTTP服务开始微调任务,任务模型名称: {}", fineTuningTask.getJobModelName());
|
||||
createTuning(fineTuningTask);
|
||||
log.info("HTTP服务调用成功,任务模型名称: {}", fineTuningTask.getJobModelName());
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
|
||||
log.error("调用HTTP服务开始微调任务时发生异常,任务模型名称: {}", fineTuningTask.getJobModelName(), e);
|
||||
throw new RuntimeException("开始微调任务失败", e);
|
||||
}
|
||||
;
|
||||
}
|
||||
|
||||
//调优任务停止
|
||||
|
@ -9,7 +9,6 @@ import cn.iocoder.yudao.module.llm.controller.admin.finetuningtask.vo.FineTuning
|
||||
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.finetuningtask.FineTuningTaskDO;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.modelservice.ModelServiceDO;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.servername.ServerNameDO;
|
||||
import cn.iocoder.yudao.module.llm.dal.mysql.basemodel.BaseModelMapper;
|
||||
import cn.iocoder.yudao.module.llm.dal.mysql.dataset.DatasetMapper;
|
||||
@ -18,14 +17,12 @@ import cn.iocoder.yudao.module.llm.dal.mysql.servername.ServerNameMapper;
|
||||
import cn.iocoder.yudao.module.llm.enums.FinetuningTaskStatusEnum;
|
||||
import cn.iocoder.yudao.module.llm.service.async.AsyncFineTuningTaskService;
|
||||
import cn.iocoder.yudao.module.llm.service.http.TrainHttpService;
|
||||
import cn.iocoder.yudao.module.llm.service.http.vo.AigcFineTuningDetailRespVO;
|
||||
import cn.iocoder.yudao.module.llm.service.modelservice.ModelServiceService;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||
import jodd.util.StringUtil;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -234,10 +231,22 @@ public class FineTuningTaskServiceImpl implements FineTuningTaskService {
|
||||
|
||||
@Override
|
||||
public void startFineTuningTask (Long id) {
|
||||
log.info(" ===== 开始微调任务 ===== startFineTuningTask");
|
||||
|
||||
// 1. 校验微调任务是否存在
|
||||
log.info("开始校验微调任务是否存在,任务ID: {}", id);
|
||||
FineTuningTaskDO fineTuningTaskDO = validateFineTuningTaskExists(id);
|
||||
log.info("微调任务校验成功,任务ID: {}", id);
|
||||
|
||||
// 2. 修改微调任务状态为等待中
|
||||
log.info("开始修改微调任务状态为等待中,任务ID: {}", id);
|
||||
fineTuningTaskMapper.stopStartTask(id, FinetuningTaskStatusEnum.WAITING.getStatus());
|
||||
//调用模型服务,开启调优任务
|
||||
log.info("微调任务状态修改成功,任务ID: {}", id);
|
||||
|
||||
// 3. 异步调用模型服务,停止微调任务
|
||||
log.info("开始异步调用模型服务,开始微调任务,任务ID: {}", id);
|
||||
asyncFineTuningTaskService.startFineTuningTask(fineTuningTaskDO);
|
||||
log.info("异步调用模型服务完成,任务ID: {}", id);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -5,12 +5,16 @@ import cn.hutool.http.HttpResponse;
|
||||
import cn.iocoder.yudao.framework.common.util.http.HttpUtils;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.finetuningtask.FineTuningTaskDO;
|
||||
import cn.iocoder.yudao.module.llm.framework.backend.config.LLMBackendProperties;
|
||||
import cn.iocoder.yudao.module.llm.service.http.vo.AigcFineTuningCreateReqVO;
|
||||
import cn.iocoder.yudao.module.llm.service.http.vo.AigcFineTuningCreateRespVO;
|
||||
import cn.iocoder.yudao.module.llm.service.http.vo.AigcRespVO;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Description 微调任务相关接口
|
||||
@ -50,4 +54,39 @@ public class FineTuningTaskHttpService {
|
||||
throw new RuntimeException("HTTP请求失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建微调任务 POST
|
||||
*/
|
||||
public AigcFineTuningCreateRespVO finetuningCreate (Map<String, String> headers, String url, AigcFineTuningCreateReqVO req) {
|
||||
// login(headers);
|
||||
// TODO: 在上个方法中已经将数据集的文件id赋予,调试时需要写死再放开
|
||||
// String fileId = "6237ed4d-a046-479c-80d6-8579a0283994";
|
||||
// req.setFileId(fileId);
|
||||
|
||||
try {
|
||||
// 记录请求信息
|
||||
log.info("开始创建微调任务,请求URL: {}", url + llmBackendProperties.getFinetuningCreate());
|
||||
log.info("请求头: {}", headers);
|
||||
log.info("请求体: {}", JSON.toJSONString(req));
|
||||
|
||||
// 发起 HTTP 请求
|
||||
log.debug("正在发起 HTTP POST 请求...");
|
||||
String res = HttpUtils.post(url + llmBackendProperties.getFinetuningCreate(), headers, JSON.toJSONString(req));
|
||||
log.info("HTTP 请求完成。响应内容: {}", res);
|
||||
|
||||
// 解析响应
|
||||
log.debug("正在解析响应内容...");
|
||||
AigcRespVO aigcRespVO = JSON.parseObject(res, AigcRespVO.class);
|
||||
AigcFineTuningCreateRespVO aigcFineTuningCreateRespVO = JSON.parseObject(res, AigcFineTuningCreateRespVO.class);
|
||||
log.info("响应解析完成。微调任务创建结果: {}", JSON.toJSONString(aigcFineTuningCreateRespVO));
|
||||
|
||||
// 返回结果
|
||||
return aigcFineTuningCreateRespVO;
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("创建微调任务时发生异常。请求URL: {}", url + llmBackendProperties.getFinetuningCreate(), e);
|
||||
throw new RuntimeException("微调任务创建失败", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -145,40 +145,6 @@ public class TrainHttpService {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建微调任务 POST
|
||||
*/
|
||||
public AigcFineTuningCreateRespVO finetuningCreate (Map<String, String> headers, String url, AigcFineTuningCreateReqVO req) {
|
||||
// login(headers);
|
||||
// TODO: 在上个方法中已经将数据集的文件id赋予,调试时需要写死再放开
|
||||
// String fileId = "6237ed4d-a046-479c-80d6-8579a0283994";
|
||||
// req.setFileId(fileId);
|
||||
|
||||
try {
|
||||
// 记录请求信息
|
||||
log.info("开始创建微调任务,请求URL: {}", url + llmBackendProperties.getFinetuningCreate());
|
||||
log.info("请求头: {}", headers);
|
||||
log.info("请求体: {}", JSON.toJSONString(req));
|
||||
|
||||
// 发起 HTTP 请求
|
||||
log.debug("正在发起 HTTP POST 请求...");
|
||||
String res = HttpUtils.post(url + llmBackendProperties.getFinetuningCreate(), headers, JSON.toJSONString(req));
|
||||
log.info("HTTP 请求完成。响应内容: {}", res);
|
||||
|
||||
// 解析响应
|
||||
log.debug("正在解析响应内容...");
|
||||
AigcRespVO aigcRespVO = JSON.parseObject(res, AigcRespVO.class);
|
||||
AigcFineTuningCreateRespVO aigcFineTuningCreateRespVO = JSON.parseObject(res, AigcFineTuningCreateRespVO.class);
|
||||
log.info("响应解析完成。微调任务创建结果: {}", JSON.toJSONString(aigcFineTuningCreateRespVO));
|
||||
|
||||
// 返回结果
|
||||
return aigcFineTuningCreateRespVO;
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("创建微调任务时发生异常。请求URL: {}", url + llmBackendProperties.getFinetuningCreate(), e);
|
||||
throw new RuntimeException("微调任务创建失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据表名称查询数据
|
||||
|
Loading…
x
Reference in New Issue
Block a user