Merge remote-tracking branch 'origin/master'

This commit is contained in:
sunxiqing 2024-12-31 15:12:43 +08:00
commit 13554520be
5 changed files with 33 additions and 4 deletions

View File

@ -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;

View File

@ -38,7 +38,7 @@ public class DataRefluxDataDO extends BaseDO {
/**
* 是否预知模型0普通 1官方
*/
private Long modelType;
private Integer modelType;
/**
* system
*/

View File

@ -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;
}
}

View File

@ -55,4 +55,6 @@ public interface DataRefluxDataService {
PageResult<DataRefluxDataDO> getDataRefluxDataPage(DataRefluxDataPageReqVO pageReqVO);
List<DataRefluxDataDO> getTheDetails(DataRefluxConfigPageReqVO pageReqVO);
Long saveDataRefluxData(DataRefluxDataSaveReqVO createReqVO);
}

View File

@ -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<DataRefluxConfigDO> eq = new LambdaQueryWrapper<DataRefluxConfigDO>()
.eq(DataRefluxConfigDO::getModelServiceId, dataRefluxData.getModelServiceId())
.eq(DataRefluxConfigDO::getModelType, dataRefluxData.getModelType())
.like(DataRefluxConfigDO::getCreator, dataRefluxData.getCreator());
List<DataRefluxConfigDO> 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);
}
}
}