修改模型推理 内容

This commit is contained in:
limin 2025-02-11 15:30:42 +08:00
parent f53e18dbae
commit 6bce527568
2 changed files with 54 additions and 24 deletions

View File

@ -26,5 +26,5 @@ public class ChatReqVO {
@Schema(description = "系统提示语")
private String systemPrompt;
@Schema(description = "知识库id")
private Long knowledgeId;
private Long knowledge;
}

View File

@ -28,6 +28,7 @@ import cn.iocoder.yudao.module.llm.service.http.vo.*;
import cn.iocoder.yudao.module.llm.service.prompttemplates.PromptTemplatesService;
import com.alibaba.excel.util.StringUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import org.springframework.data.redis.core.StringRedisTemplate;
@ -182,31 +183,11 @@ public class ConversationServiceImpl implements ConversationService {
List<ModelCompletionsReqVO.ModelCompletionsMessage> messages = new ArrayList<>();
if(chatReqVO.getSystemPrompt() != null && !chatReqVO.getSystemPrompt().equals("")){
ModelCompletionsReqVO.ModelCompletionsMessage message = new ModelCompletionsReqVO.ModelCompletionsMessage();
message.setRole("system");
message.setContent(chatReqVO.getSystemPrompt());
messages.add(message);
}
// TODO: 聊天推理
List<String> messageHistoryList = stringRedisTemplate.opsForList().range(CHAT_HIStORY_REDIS_KEY + ":" + chatReqVO.getUuid(), 0, -1);
if (messageHistoryList != null && !messageHistoryList.isEmpty()) {
for (String messageHistory : messageHistoryList) {
messages.add(JsonUtils.parseObject(messageHistory, ModelCompletionsReqVO.ModelCompletionsMessage.class));
}
}
ModelCompletionsReqVO.ModelCompletionsMessage message = new ModelCompletionsReqVO.ModelCompletionsMessage();
message.setRole("user");
message.setContent(chatReqVO.getPrompt());
messages.add(message);
//如果知识库id不为null先去调用知识库
if(chatReqVO.getKnowledgeId() != null && chatReqVO.getKnowledgeId() != 0){
StringBuilder knowledgeBase = new StringBuilder();
if(chatReqVO.getKnowledge() != null && chatReqVO.getKnowledge() != 0){
LambdaQueryWrapper<KnowledgeDocumentsDO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(KnowledgeDocumentsDO::getKnowledgeBaseId,chatReqVO.getKnowledgeId());
queryWrapper.eq(KnowledgeDocumentsDO::getKnowledgeBaseId,chatReqVO.getKnowledge());
List<KnowledgeDocumentsDO> fileList = knowledgeDocumentsMapper.selectList(queryWrapper);
for (KnowledgeDocumentsDO knowledgeDocumentsDO : fileList) {
Long id = knowledgeDocumentsDO.getId();
@ -214,8 +195,57 @@ public class ConversationServiceImpl implements ConversationService {
knowledgeRagEmbedQueryVO.setFile_id(id.toString());
knowledgeRagEmbedQueryVO.setQuery(chatReqVO.getPrompt());
String result = HttpUtils.post(llmBackendProperties.getEmbedQuery(), null, JSON.toJSONString(knowledgeRagEmbedQueryVO));
com.alibaba.fastjson.JSONArray jsonArray = JSON.parseArray(result);
if (jsonArray != null && !jsonArray.isEmpty()){
com.alibaba.fastjson.JSONArray jsonArray1 = (com.alibaba.fastjson.JSONArray) jsonArray.get(0);
JSONObject jsonObject = (JSONObject) jsonArray1.get(0);
knowledgeBase.append(jsonObject.get("page_content"));
}
}
}
String mess = chatReqVO.getSystemPrompt()+"<content>"+knowledgeBase.toString()+"</content>";
// 查询历史记录消息 将查询出来的知识信息放入到 role = system 里面
List<String> messageHistoryList = stringRedisTemplate.opsForList().range(CHAT_HIStORY_REDIS_KEY + ":" + chatReqVO.getUuid(), 0, -1);
if (messageHistoryList != null && !messageHistoryList.isEmpty()) {
for (String messageHistory : messageHistoryList) {
ModelCompletionsReqVO.ModelCompletionsMessage modelCompletionsMessage = JsonUtils.parseObject(messageHistory, ModelCompletionsReqVO.ModelCompletionsMessage.class);
if (modelCompletionsMessage.getRole().equals("system")){
modelCompletionsMessage.setContent(mess);
stringRedisTemplate.opsForList().set(CHAT_HIStORY_REDIS_KEY+ ":" + chatReqVO.getUuid(), 0, JsonUtils.toJsonString(modelCompletionsMessage));
}
messages.add(modelCompletionsMessage);
}
}else {
ModelCompletionsReqVO.ModelCompletionsMessage systemMessage = new ModelCompletionsReqVO.ModelCompletionsMessage();
systemMessage.setRole("system");
systemMessage.setContent(mess);
stringRedisTemplate.opsForList().rightPush(CHAT_HIStORY_REDIS_KEY + ":" + chatReqVO.getUuid(), JsonUtils.toJsonString(systemMessage));
messages.add(systemMessage);
}
// 先注释掉
/* if(chatReqVO.getSystemPrompt() != null && !chatReqVO.getSystemPrompt().equals("")){
ModelCompletionsReqVO.ModelCompletionsMessage message = new ModelCompletionsReqVO.ModelCompletionsMessage();
message.setRole("system");
message.setContent(mess);
messages.add(message);
}
// TODO: 聊天推理
List<String> messageHistoryList1 = stringRedisTemplate.opsForList().range(CHAT_HIStORY_REDIS_KEY + ":" + chatReqVO.getUuid(), 0, -1);
if (messageHistoryList1 != null && !messageHistoryList1.isEmpty()) {
for (String messageHistory : messageHistoryList1) {
messages.add(JsonUtils.parseObject(messageHistory, ModelCompletionsReqVO.ModelCompletionsMessage.class));
}
}*/
ModelCompletionsReqVO.ModelCompletionsMessage message = new ModelCompletionsReqVO.ModelCompletionsMessage();
message.setRole("user");
message.setContent(chatReqVO.getPrompt());
messages.add(message);
ModelCompletionsReqVO modelCompletionsReqVO = new ModelCompletionsReqVO();
modelCompletionsReqVO.setMessages(messages);