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 a165000..2cff949 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 @@ -131,11 +131,21 @@ 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; 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(count<3){ diff --git a/backend/generation-service/src/main/java/com/artedu/generation/mapper/ArchiveMessageMapper.java b/backend/generation-service/src/main/java/com/artedu/generation/mapper/ArchiveMessageMapper.java index 812914f..ae77c70 100644 --- a/backend/generation-service/src/main/java/com/artedu/generation/mapper/ArchiveMessageMapper.java +++ b/backend/generation-service/src/main/java/com/artedu/generation/mapper/ArchiveMessageMapper.java @@ -14,12 +14,12 @@ public interface ArchiveMessageMapper extends BaseMapper { @Select("") @@ -33,7 +33,7 @@ public interface ArchiveMessageMapper extends BaseMapper { @Select("SELECT created_at, from_role, content FROM archive_messages " + "WHERE roomid = #{roomid} " + - "AND msgtime >= #{startTime} AND msgtime < #{endTime} AND msgtype='text' " + + "AND msgtime >= #{startTime} AND msgtime < #{endTime} AND msgtype in ('text','voice') " + "AND content IS NOT NULL AND content != '' " + "ORDER BY msgtime DESC") List selectGroupChatMessages(@Param("roomid") String roomid, @@ -45,7 +45,7 @@ public interface ArchiveMessageMapper extends BaseMapper { */ @Select("SELECT msgtime, created_at, from_user, to_user, from_role, content FROM archive_messages " + "WHERE (from_user = #{fromUser} OR to_user = #{fromUser}) " + - "AND msgtime >= #{startTime} AND msgtime < #{endTime} AND msgtype='text' " + + "AND msgtime >= #{startTime} AND msgtime < #{endTime} AND msgtype in ('text','voice') " + "AND content IS NOT NULL AND content != '' " + "ORDER BY msgtime DESC LIMIT 100") List selectMessagesByFromUser(@Param("fromUser") String fromUser,