优化
This commit is contained in:
parent
9f86fc9f76
commit
f29efa8988
@ -278,7 +278,7 @@ public class GenerationController {
|
||||
@RequestParam("toUser") String toUser,
|
||||
@RequestParam(value = "roomid", required = false) String roomid,
|
||||
@RequestParam(value = "staffName", required = false) String staffName) {
|
||||
|
||||
log.info("流式生成多风格话术参数:{},{},{},{}", fromUser, toUser, roomid, staffName);
|
||||
SseEmitter emitter = new SseEmitter(120000L);
|
||||
|
||||
sseExecutor.execute(() -> {
|
||||
@ -304,29 +304,35 @@ public class GenerationController {
|
||||
.collect(Collectors.toList());
|
||||
StringBuilder sb = new StringBuilder();
|
||||
boolean is_external = true;
|
||||
int count = 0;
|
||||
for (ArchiveMessage msg : messages) {
|
||||
if("voice".equals(msg.getMsgtype()) && msg.getContent() != null && !msg.getContent().contains("[语音]")){
|
||||
continue;
|
||||
}
|
||||
sb.append(msg.getCreatedAt()).append(" ").append(msg.getFromRole()).append(" ").append(msg.getContent()).append("\n");
|
||||
if ("EXTERNAL".equals(messages.get(0).getFromRole())){ //第一条消息是客户的消息 则继续
|
||||
if ("EXTERNAL".equals(msg.getFromRole()) && is_external){ //判断只要消息不是内部人员,则后续不考虑
|
||||
is_external = false;
|
||||
external_str += msg.getContent()+",";
|
||||
if(count<3){
|
||||
if ("EXTERNAL".equals(msg.getFromRole()) && is_external){ //判断判断前三条是否只包含客户消息
|
||||
external_str += msg.getContent()+",";
|
||||
}
|
||||
if (!"EXTERNAL".equals(msg.getFromRole())){ //判断前三条是否包含非客户的消息,如果包含,则不需要后续的消息
|
||||
is_external = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
count++;
|
||||
}
|
||||
|
||||
String generated = "";
|
||||
//如果最后几条都是客户消息返回不为空,则直接返回结果,否则走原逻辑
|
||||
if (!StringUtils.isBlank(external_str)){ //不为空 发起知识库的查询
|
||||
String answer = getAnswer(top15, external_str);
|
||||
log.info("原问题:{},命中知识库结果:{}", external_str, answer);
|
||||
if(!StringUtils.isBlank(answer)){
|
||||
answer = answer.replaceAll("\"", "").replace("[","").replace("]","");
|
||||
if(!StringUtils.isBlank(answer)){
|
||||
String promptNew = promptEngine.buildAnswerPrompt(answer);
|
||||
generated = qianwenClient.generate(promptNew, 800);
|
||||
log.info("原问题:{},改写后的问题:{},命中知识库结果:{}", external_str, answer, generated);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user