模型调优,增加aigc模型名称和列表id

This commit is contained in:
ire 2025-01-23 19:14:18 +08:00
parent b3e41e4962
commit 9e2de3c3e0
5 changed files with 35 additions and 6 deletions

View File

@ -142,4 +142,10 @@ public class FineTuningTaskDO extends BaseDO {
private Long baseModelId;
private String jobId;
}
//AIGC模型名称
private String jobModelName;
//AIGC模型列表主键id
private Long jobModelListId;
}

View File

@ -45,6 +45,7 @@ public class AsyncFineTuningTaskService {
if (resp != null) {
updateObj.setJobId(resp.getJobId());
updateObj.setStatus(FinetuningTaskStatusEnum.WAITING.getStatus());
updateObj.setJobModelName(resp.getFineTunedModel());
} else {
updateObj.setStatus(FinetuningTaskStatusEnum.CANCELLED.getStatus());
}

View File

@ -27,7 +27,7 @@ public class BaseModelTaskService {
// @Scheduled(cron ="0 0/1 * * * ?")
public void updateBaseModel() {
Log.info("定时任务启动");
String resStr = trainHttpService.modelsList();
String resStr = trainHttpService.modelsList("");
Log.info("获取aicg模型列表返回数据内容{}",resStr);
JSONObject jsonObject = JSONObject.parseObject(resStr);
JSONObject data = jsonObject.getJSONObject("data");

View File

@ -4,8 +4,11 @@ import cn.iocoder.yudao.module.llm.dal.dataobject.finetuningtask.FineTuningTaskD
import cn.iocoder.yudao.module.llm.dal.mysql.finetuningtask.FineTuningTaskMapper;
import cn.iocoder.yudao.module.llm.enums.FineTuningTaskStatusConstants;
import cn.iocoder.yudao.module.llm.enums.FinetuningTaskStatusEnum;
import cn.iocoder.yudao.module.llm.service.basemodel.vo.ModelListRes;
import cn.iocoder.yudao.module.llm.service.http.TrainHttpService;
import cn.iocoder.yudao.module.llm.service.http.vo.AigcFineTuningDetailRespVO;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.esotericsoftware.minlog.Log;
import org.springframework.scheduling.annotation.Scheduled;
@ -33,16 +36,35 @@ public class FineTuningTaskSyncService {
if(Objects.equals(fineTuningTaskDO.getStatus(), FinetuningTaskStatusEnum.TRAINING.getStatus())
|| Objects.equals(fineTuningTaskDO.getStatus(), FinetuningTaskStatusEnum.WAITING.getStatus())){
AigcFineTuningDetailRespVO resp = trainHttpService.finetuningDetail(new HashMap<>(), fineTuningTaskDO.getJobId());
String modelName = resp.getFineTunedModel();
FineTuningTaskDO updateObj = new FineTuningTaskDO();
Integer status = FineTuningTaskStatusConstants.getStatus(resp.getTrainStatus());
if(status != null){
FineTuningTaskDO updateObj = new FineTuningTaskDO();
updateObj.setId(fineTuningTaskDO.getId());
updateObj.setStatus(status);
updateObj.setTrainDuration(StringUtils.isNotBlank(resp.getTrainDuration())?resp.getTrainDuration():"");
}
//如果微调任务由训练中变为已完成则取模型列表中获取该任务生成的模型id
if(fineTuningTaskDO.getStatus() == 1 && status == 2){
String jobModelName = fineTuningTaskDO.getJobModelName();
String resStr = trainHttpService.modelsList("");
Log.info("获取aicg模型列表返回数据内容{}",resStr);
JSONObject jsonObject = JSONObject.parseObject(resStr);
JSONObject data = jsonObject.getJSONObject("data");
JSONArray list = data.getJSONArray("list");
String s = list.toJSONString();
List<ModelListRes> modelListRess = JSONObject.parseArray(s, ModelListRes.class);
if(modelListRess != null){
ModelListRes modelListRes = modelListRess.get(0);
updateObj.setJobModelListId(modelListRes.getId());
}else{
//todo 已训练完成的微调任务没有在模型列表找对对应模型的处理方式
}
fineTuningTaskMapper.updateById(updateObj);
}
}
}
}
}

View File

@ -89,11 +89,11 @@ public class TrainHttpService {
/**
* 大模型列表 GET
*/
public String modelsList(){
public String modelsList(String modelName){
Map<String, String> headers = new HashMap<>();
login(headers);
String modelsList = llmBackendProperties.getModelsList();
String res = HttpUtils.get(modelsList, headers);
String res = HttpUtils.get(modelsList + "?modelName=" + modelName, headers);
return res;
}