From 5fa2c495f6503b30537b2a4f433f84c0089297d2 Mon Sep 17 00:00:00 2001 From: limin Date: Mon, 30 Dec 2024 19:12:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=9B=86Json=E6=96=B0?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E5=AF=BC=E5=85=A5=E8=BF=9B=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/dataset/DatasetController.java | 1 + .../admin/dataset/dto/DataJsonTemplate.java | 12 +++++++++ .../llm/service/dataset/DatasetService.java | 2 ++ .../service/dataset/DatasetServiceImpl.java | 26 +++++++++++++++---- 4 files changed, 36 insertions(+), 5 deletions(-) create mode 100644 yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataset/dto/DataJsonTemplate.java diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataset/DatasetController.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataset/DatasetController.java index 8a9852087..744bc546a 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataset/DatasetController.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataset/DatasetController.java @@ -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; diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataset/dto/DataJsonTemplate.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataset/dto/DataJsonTemplate.java new file mode 100644 index 000000000..58d8f9e25 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/dataset/dto/DataJsonTemplate.java @@ -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 answers; +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataset/DatasetService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataset/DatasetService.java index 023b9edf4..f5bbed8f3 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataset/DatasetService.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataset/DatasetService.java @@ -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; diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataset/DatasetServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataset/DatasetServiceImpl.java index 14584c117..04204abbc 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataset/DatasetServiceImpl.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataset/DatasetServiceImpl.java @@ -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对象 + // 使用Jackson解析 Json 字符串为List对象 ObjectMapper mapper = new ObjectMapper(); // 使用 TypeReference 解析 JSON 字符串为 List - List stringList = mapper.readValue(content.toString(), new TypeReference>() {}); - stringList.forEach( - string -> { - DatasetQuestionDO datasetQuestionDO = new DatasetQuestionDO(); + List jsonList = mapper.readValue(content.toString(), new TypeReference>() {}); + 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 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){