diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datarefluxdata/vo/DataRefluxDataSaveReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datarefluxdata/vo/DataRefluxDataSaveReqVO.java index 2487aa32d..981f2d932 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datarefluxdata/vo/DataRefluxDataSaveReqVO.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datarefluxdata/vo/DataRefluxDataSaveReqVO.java @@ -21,7 +21,7 @@ public class DataRefluxDataSaveReqVO { @Schema(description = "是否预知模型(0普通 1官方)", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") @NotNull(message = "是否预知模型(0普通 1官方)不能为空") - private Long modelType; + private Integer modelType; @Schema(description = "system") private String system; diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/datarefluxdata/DataRefluxDataDO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/datarefluxdata/DataRefluxDataDO.java index 243bfe8b8..38cf4a654 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/datarefluxdata/DataRefluxDataDO.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/datarefluxdata/DataRefluxDataDO.java @@ -38,7 +38,7 @@ public class DataRefluxDataDO extends BaseDO { /** * 是否预知模型(0普通 1官方) */ - private Long modelType; + private Integer modelType; /** * system */ diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/conversation/ConversationServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/conversation/ConversationServiceImpl.java index 2ce9801be..0769f114a 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/conversation/ConversationServiceImpl.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/conversation/ConversationServiceImpl.java @@ -1,8 +1,10 @@ package cn.iocoder.yudao.module.llm.service.conversation; import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.module.llm.controller.admin.datarefluxdata.vo.DataRefluxDataSaveReqVO; import cn.iocoder.yudao.module.llm.dal.dataobject.basemodel.BaseModelDO; import cn.iocoder.yudao.module.llm.service.basemodel.BaseModelService; +import cn.iocoder.yudao.module.llm.service.datarefluxdata.DataRefluxDataService; import cn.iocoder.yudao.module.llm.service.http.ModelService; import cn.iocoder.yudao.module.llm.service.http.vo.ModelCompletionsReqVO; import cn.iocoder.yudao.module.llm.service.http.vo.ModelCompletionsRespVO; @@ -44,6 +46,8 @@ public class ConversationServiceImpl implements ConversationService { private ModelService modelService; @Resource private BaseModelService baseModelService; + @Resource + private DataRefluxDataService dataRefluxDataService; // 聊天会话历史记录缓存Key private final static String CHAT_HIStORY_REDIS_KEY = "llm:chat:history"; @@ -130,6 +134,13 @@ public class ConversationServiceImpl implements ConversationService { chatRespVO.setResponse(modelCompletionsRespVO.getAnswer()); // 将聊天记录放入缓存 stringRedisTemplate.opsForList().rightPush(CHAT_HIStORY_REDIS_KEY + ":" + chatReqVO.getUuid(), JsonUtils.toJsonString(message)); + DataRefluxDataSaveReqVO dataRefluxDataSaveReqVO = new DataRefluxDataSaveReqVO(); + dataRefluxDataSaveReqVO.setModelServiceId(chatReqVO.getModelId()); + dataRefluxDataSaveReqVO.setModelType(chatReqVO.getModelType()); + dataRefluxDataSaveReqVO.setPrompt(chatReqVO.getPrompt()); + dataRefluxDataSaveReqVO.setResponse(modelCompletionsRespVO.getAnswer()); + dataRefluxDataSaveReqVO.setSystem(modelCompletionsRespVO.getSystem()); + dataRefluxDataService.saveDataRefluxData(dataRefluxDataSaveReqVO); return chatRespVO; } } \ 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/datarefluxdata/DataRefluxDataService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datarefluxdata/DataRefluxDataService.java index 9480412d2..f121794f2 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datarefluxdata/DataRefluxDataService.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datarefluxdata/DataRefluxDataService.java @@ -55,4 +55,6 @@ public interface DataRefluxDataService { PageResult getDataRefluxDataPage(DataRefluxDataPageReqVO pageReqVO); List getTheDetails(DataRefluxConfigPageReqVO pageReqVO); + + Long saveDataRefluxData(DataRefluxDataSaveReqVO createReqVO); } diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datarefluxdata/DataRefluxDataServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datarefluxdata/DataRefluxDataServiceImpl.java index 9c2ae0497..1558b2e14 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datarefluxdata/DataRefluxDataServiceImpl.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datarefluxdata/DataRefluxDataServiceImpl.java @@ -8,13 +8,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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 cn.iocoder.yudao.module.llm.controller.admin.datarefluxdata.vo.*; import cn.iocoder.yudao.module.llm.dal.dataobject.datarefluxdata.DataRefluxDataDO; 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.datarefluxdata.DataRefluxDataMapper; @@ -93,4 +91,22 @@ public class DataRefluxDataServiceImpl implements DataRefluxDataService { return dataRefluxDataMapper.selectList(eq); } + @Override + public Long saveDataRefluxData(DataRefluxDataSaveReqVO createReqVO) { + // 插入 + DataRefluxDataDO dataRefluxData = BeanUtils.toBean(createReqVO, DataRefluxDataDO.class); + LambdaQueryWrapper eq = new LambdaQueryWrapper() + .eq(DataRefluxConfigDO::getModelServiceId, dataRefluxData.getModelServiceId()) + .eq(DataRefluxConfigDO::getModelType, dataRefluxData.getModelType()) + .like(DataRefluxConfigDO::getCreator, dataRefluxData.getCreator()); + List dataRefluxConfigDOS = dataRefluxConfigMapper.selectList(eq); + if (!dataRefluxConfigDOS.isEmpty()) { + dataRefluxData.setConfigId(dataRefluxConfigDOS.get(0).getId()); + dataRefluxDataMapper.insert(dataRefluxData); + // 返回 + return dataRefluxData.getId(); + } else { + throw exception(DATA_REFLUX_CONFIG_NOT_EXISTS); + } + } }