1. 修复对话bug

topo_dev
xueqingkun 8 months ago
parent a6edcbba19
commit 7bb3a51f0b

@ -1,6 +1,5 @@
package com.supervision.chat.client.dto;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.supervision.chat.client.dto.chat.ChatResDTO;
import lombok.extern.slf4j.Slf4j;
@ -15,6 +14,8 @@ import org.springframework.util.StreamUtils;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @description
@ -49,11 +50,20 @@ public class ChatResConverter implements HttpMessageConverter {
// 去除 "data:" 前缀
if (body.startsWith("data:")) {
body = body.substring(5).trim();
}else {
// 去除 ping....data: 前缀
String regex = "ping\\s+.*?data:";
Pattern pattern = Pattern.compile(regex, Pattern.DOTALL);
Matcher matcher = pattern.matcher(body);
// 使用空字符串替换匹配的部分
body = matcher.replaceFirst("");
}
// regx ping..*data:{}
// 将去除前缀后的内容解析为 ResponseData 对象
try {
return objectMapper.readValue(body, ChatResDTO.class);
} catch (JsonProcessingException e) {
} catch (Exception e) {
log.error("ChatResConverter:read error: {}", e.getMessage(), e);
return null;
}

@ -40,8 +40,15 @@ public class ChatServiceImpl implements ChatService {
log.info("chat: caseNo:{},query{}", modelCase.getCaseNo(), chatReqVO.getQuery());
ChatResDTO chat = langChainChatService.chat(
ChatReqDTO.create(chatReqVO.getQuery(), modelCase.getCaseNo(),chatReqVO.getHistory()));
ChatResDTO chat = null;
try {
chat = langChainChatService.chat(
ChatReqDTO.create(chatReqVO.getQuery(), modelCase.getCaseNo(),chatReqVO.getHistory()));
} catch (Exception e) {
log.error("chat: caseNo:{},query{},error:{}", modelCase.getCaseNo(), chatReqVO.getQuery(), e.getMessage(),e);
chat = new ChatResDTO();
chat.setAnswer("我暂时还不知道怎么回答,您可以尝试换一种问法!");
}
if (null ==chat){
chat = new ChatResDTO();

Loading…
Cancel
Save