From 81cdd0a2119dee7d79bc5689de45f740c6e5a87f Mon Sep 17 00:00:00 2001 From: JianYu Zheng <2375294554@qq.com> Date: Wed, 9 Jul 2025 17:29:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=B0=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=92=8C2=E4=B8=AA=E6=96=B0=E6=96=B9=E6=B3=95=20--AgentChatHis?= =?UTF-8?q?toryService.java=20=E6=B7=BB=E5=8A=A0=E2=80=98=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E9=9F=B3=E9=A2=91=E6=95=B0=E6=8D=AEID=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E8=81=8A=E5=A4=A9=E5=86=85=E5=AE=B9=E2=80=99=E5=92=8C?= =?UTF-8?q?=E2=80=98=E6=9F=A5=E8=AF=A2=E6=AD=A4=E9=9F=B3=E9=A2=91id?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E5=B1=9E=E4=BA=8E=E6=AD=A4=E6=99=BA=E8=83=BD?= =?UTF-8?q?=E4=BD=93=E2=80=99=E7=9A=84=E6=96=B9=E6=B3=95=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=20--AgentChatHistoryServiceImpl.java=20=E5=AE=9E=E7=8E=B02?= =?UTF-8?q?=E4=B8=AA=E6=96=B0=E6=96=B9=E6=B3=95=20--AgentController.java?= =?UTF-8?q?=20=E5=A2=9E=E5=8A=A0=E4=B8=80=E4=B8=AA=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E9=9F=B3=E9=A2=91=E5=86=85=E5=AE=B9=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../agent/controller/AgentController.java | 10 ++++++++++ .../agent/service/AgentChatHistoryService.java | 18 ++++++++++++++++++ .../impl/AgentChatHistoryServiceImpl.java | 17 +++++++++++++++++ 3 files changed, 45 insertions(+) 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 157eec63..a4ad0863 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 @@ -200,6 +200,16 @@ public class AgentController { return new Result>().ok(data); } + @GetMapping("/{id}/chat-history/audio") + @Operation(summary = "获取音频内容") + @RequiresPermissions("sys:role:normal") + public Result getContentByAudioId( + @PathVariable("id") String id) { + // 查询聊天记录 + String data = agentChatHistoryService.getContentByAudioId(id); + return new Result().ok(data); + } + @PostMapping("/audio/{audioId}") @Operation(summary = "获取音频下载ID") @RequiresPermissions("sys:role:normal") diff --git a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/AgentChatHistoryService.java b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/AgentChatHistoryService.java index 88e7c962..459b5a5a 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/AgentChatHistoryService.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/AgentChatHistoryService.java @@ -53,4 +53,22 @@ public interface AgentChatHistoryService extends IService getRecentlyFiftyByAgentId(String agentId); + + /** + * 根据音频数据ID获取聊天内容 + * + * @param audioId 音频id + * @return 聊天内容 + */ + String getContentByAudioId(String audioId); + + + /** + * 查询此音频id是否属于此智能体 + * + * @param audioId 音频id + * @param agentId 音频id + * @return T:属于 F:不属于 + */ + boolean isAudioOwnedByAgent(String audioId,String agentId); } diff --git a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentChatHistoryServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentChatHistoryServiceImpl.java index 47220703..efcd5404 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentChatHistoryServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentChatHistoryServiceImpl.java @@ -111,4 +111,21 @@ public class AgentChatHistoryServiceImpl extends ServiceImpl() + .select(AgentChatHistoryEntity::getContent) + .eq(AgentChatHistoryEntity::getAudioId, audioId)); + return agentChatHistoryEntity == null ? null : agentChatHistoryEntity.getContent(); + } + + @Override + public boolean isAudioOwnedByAgent(String audioId, String agentId) { + // 查询是否有指定音频id和智能体id的数据,如果有且只有一条说明此数据属性此智能体 + Long row = baseMapper.selectCount(new LambdaQueryWrapper() + .eq(AgentChatHistoryEntity::getAudioId, audioId) + .eq(AgentChatHistoryEntity::getAgentId, agentId)); + return row == 1 ; + } }