修改模型推理 内容
This commit is contained in:
parent
f53e18dbae
commit
6bce527568
@ -26,5 +26,5 @@ public class ChatReqVO {
|
||||
@Schema(description = "系统提示语")
|
||||
private String systemPrompt;
|
||||
@Schema(description = "知识库id")
|
||||
private Long knowledgeId;
|
||||
private Long knowledge;
|
||||
}
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user