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