diff --git a/backend/generation-service/src/main/java/com/artedu/generation/controller/GenerationController.java b/backend/generation-service/src/main/java/com/artedu/generation/controller/GenerationController.java index 2cff949..ab55533 100644 --- a/backend/generation-service/src/main/java/com/artedu/generation/controller/GenerationController.java +++ b/backend/generation-service/src/main/java/com/artedu/generation/controller/GenerationController.java @@ -294,10 +294,20 @@ public class GenerationController { // 历史消息上下文 List top15 = (messages == null || messages.isEmpty()) ? new ArrayList<>() - : messages.stream().limit(15).collect(Collectors.toList()); + : messages.stream() + .filter(msg -> !( + "voice".equals(msg.getMsgtype()) && + msg.getContent() != null && + !msg.getContent().contains("[语音]") + )) + .limit(15) + .collect(Collectors.toList()); StringBuilder sb = new StringBuilder(); boolean is_external = true; 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){ //判断只要消息不是内部人员,则后续不考虑