From ac7b02d28a38693d417886da87917679de79f6f3 Mon Sep 17 00:00:00 2001 From: hrz <1710360675@qq.com> Date: Mon, 12 May 2025 16:31:06 +0800 Subject: [PATCH] =?UTF-8?q?update:=E4=BF=9D=E5=AD=98=E6=99=BA=E8=83=BD?= =?UTF-8?q?=E4=BD=93=E9=85=8D=E7=BD=AE=E6=97=B6=EF=BC=8C=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=AF=B9=E5=BA=94=E7=9A=84=E5=8E=86=E5=8F=B2=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/xiaozhi/common/constant/Constant.java | 5 +++++ .../modules/agent/controller/AgentController.java | 11 ++++++++++- .../modules/agent/dao/AiAgentChatHistoryDao.java | 7 +++++++ .../agent/service/AgentChatHistoryService.java | 6 ++++-- .../service/impl/AgentChatHistoryServiceImpl.java | 14 +++++++++++--- .../agent/service/impl/AgentServiceImpl.java | 5 +++-- .../mapper/agent/AiAgentChatHistoryDao.xml | 10 ++++++++-- 7 files changed, 48 insertions(+), 10 deletions(-) diff --git a/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java b/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java index ab6766c7..47ed23fa 100644 --- a/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java +++ b/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java @@ -111,6 +111,11 @@ public interface Constant { */ String FILE_EXTENSION_SEG = "."; + /** + * 无记忆 + */ + String MEMORY_NO_MEM = "Memory_nomem"; + enum SysBaseParam { /** * 系统全称 diff --git a/main/manager-api/src/main/java/xiaozhi/modules/agent/controller/AgentController.java b/main/manager-api/src/main/java/xiaozhi/modules/agent/controller/AgentController.java index f72a1ba3..597cf985 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/agent/controller/AgentController.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/agent/controller/AgentController.java @@ -187,6 +187,15 @@ public class AgentController { agentService.updateById(existingEntity); + // 更新记忆策略 + if (existingEntity.getMemModelId() == null || existingEntity.getMemModelId().equals(Constant.MEMORY_NO_MEM)) { + // 删除所有记录 + agentChatHistoryService.deleteByAgentId(existingEntity.getId(), true, true); + } else if (existingEntity.getChatHistoryConf() != null && existingEntity.getChatHistoryConf() == 1) { + // 删除音频数据 + agentChatHistoryService.deleteByAgentId(existingEntity.getId(), true, false); + } + return new Result<>(); } @@ -197,7 +206,7 @@ public class AgentController { // 先删除关联的设备 deviceService.deleteByAgentId(id); // 删除关联的聊天记录 - agentChatHistoryService.deleteByAgentId(id); + agentChatHistoryService.deleteByAgentId(id, true, true); // 再删除智能体 agentService.deleteById(id); return new Result<>(); diff --git a/main/manager-api/src/main/java/xiaozhi/modules/agent/dao/AiAgentChatHistoryDao.java b/main/manager-api/src/main/java/xiaozhi/modules/agent/dao/AiAgentChatHistoryDao.java index 43a5f1ce..b75312d2 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/agent/dao/AiAgentChatHistoryDao.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/agent/dao/AiAgentChatHistoryDao.java @@ -28,4 +28,11 @@ public interface AiAgentChatHistoryDao extends BaseMapper imp @Override public AgentEntity getAgentById(String id) { AgentEntity agent = agentDao.selectById(id); - if (agent != null && agent.getMemModelId() != null && agent.getMemModelId().equals("Memory_nomem")) { + if (agent != null && agent.getMemModelId() != null && agent.getMemModelId().equals(Constant.MEMORY_NO_MEM)) { agent.setChatHistoryConf(Constant.ChatHistoryConfEnum.IGNORE.getCode()); - } else if (agent != null && agent.getMemModelId() != null && !agent.getMemModelId().equals("Memory_nomem") + } else if (agent != null && agent.getMemModelId() != null + && !agent.getMemModelId().equals(Constant.MEMORY_NO_MEM) && agent.getChatHistoryConf() == null) { agent.setChatHistoryConf(Constant.ChatHistoryConfEnum.RECORD_TEXT_AUDIO.getCode()); } diff --git a/main/manager-api/src/main/resources/mapper/agent/AiAgentChatHistoryDao.xml b/main/manager-api/src/main/resources/mapper/agent/AiAgentChatHistoryDao.xml index 24a669c1..3e80f7fd 100644 --- a/main/manager-api/src/main/resources/mapper/agent/AiAgentChatHistoryDao.xml +++ b/main/manager-api/src/main/resources/mapper/agent/AiAgentChatHistoryDao.xml @@ -28,11 +28,17 @@ SELECT audio_id FROM ai_agent_chat_history WHERE agent_id = #{agentId} - ); + ) + + + UPDATE ai_agent_chat_history + SET audio_id = NULL + WHERE agent_id = #{agentId} + DELETE FROM ai_agent_chat_history - WHERE agent_id = #{agentId}; + WHERE agent_id = #{agentId}