数据集Json新模板导入进行

This commit is contained in:
limin 2024-12-30 19:12:14 +08:00
parent c5fba37721
commit 5fa2c495f6
4 changed files with 36 additions and 5 deletions

View File

@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.module.llm.controller.admin.dataset.dto.DataJsonTemplate;
import cn.iocoder.yudao.module.llm.controller.admin.dataset.vo.DatasetPageReqVO;
import cn.iocoder.yudao.module.llm.controller.admin.dataset.vo.DatasetRespVO;
import cn.iocoder.yudao.module.llm.controller.admin.dataset.vo.DatasetSaveReqVO;

View File

@ -0,0 +1,12 @@
package cn.iocoder.yudao.module.llm.controller.admin.dataset.dto;
import lombok.Data;
import java.util.List;
@Data
public class DataJsonTemplate {
private String system;
private String question;
private List<String> answers;
}

View File

@ -2,6 +2,8 @@ package cn.iocoder.yudao.module.llm.service.dataset;
import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.module.llm.controller.admin.dataset.dto.DataJsonTemplate;
import cn.iocoder.yudao.module.llm.controller.admin.dataset.vo.*;
import cn.iocoder.yudao.module.llm.dal.dataobject.dataset.DatasetDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;

View File

@ -4,10 +4,13 @@ package cn.iocoder.yudao.module.llm.service.dataset;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.llm.constant.DataConstants;
import cn.iocoder.yudao.module.llm.controller.admin.dataset.dto.DataJsonTemplate;
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.DatasetDO;
import cn.iocoder.yudao.module.llm.dal.dataobject.dataset.DatasetFilesDO;
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.DatasetFilesMapper;
import cn.iocoder.yudao.module.llm.dal.mysql.dataset.DatasetMapper;
import cn.iocoder.yudao.module.llm.dal.mysql.dataset.DatasetQuestionMapper;
@ -49,6 +52,8 @@ public class DatasetServiceImpl implements DatasetService {
private DatasetFilesMapper datasetFilesMapper;
@Resource
private DatasetQuestionMapper datasetQuestionMapper;
@Resource
private DatasetAnswerMapper datasetAnswerMapper;
@Override
public Long createDataset(DatasetSaveReqVO createReqVO) {
@ -186,16 +191,27 @@ public class DatasetServiceImpl implements DatasetService {
content.append(line);
}
// 使用Jackson解析 Json 字符串为List<String>对象
// 使用Jackson解析 Json 字符串为List<String>对象
ObjectMapper mapper = new ObjectMapper();
// 使用 TypeReference 解析 JSON 字符串为 List<String>
List<String> stringList = mapper.readValue(content.toString(), new TypeReference<List<String>>() {});
stringList.forEach(
string -> {
DatasetQuestionDO datasetQuestionDO = new DatasetQuestionDO();
List<DataJsonTemplate> jsonList = mapper.readValue(content.toString(), new TypeReference<List<DataJsonTemplate>>() {});
jsonList.forEach(
dataJsonTemplate -> {
DatasetQuestionDO datasetQuestionDO = BeanUtils.toBean(dataJsonTemplate, DatasetQuestionDO.class);
datasetQuestionDO.setDatasetId(datasetFilesDO.getDatasetId());
datasetQuestionDO.setQuestion(string);
datasetQuestionDO.setDatasetFilesId(datasetFilesDO.getId());
datasetQuestionMapper.insert(datasetQuestionDO);
List<String> answers = dataJsonTemplate.getAnswers();
if (CollectionUtils.isNotEmpty(answers)){
for (String answer : answers) {
DatasetAnswerDO datasetAnswerDO = new DatasetAnswerDO();
datasetAnswerDO.setDatasetId(datasetFilesDO.getDatasetId());
datasetAnswerDO.setDatasetFilesId(datasetFilesDO.getId());
datasetAnswerDO.setQuestionId(datasetQuestionDO.getId());
datasetAnswerDO.setAnswer(answer);
datasetAnswerMapper.insert(datasetAnswerDO);
}
}
}
);
}catch (Exception e){