From 5d16d9a0e7240ff4e6346bfee4890159da5a764e Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期四, 19 三月 2026 11:40:51 +0800
Subject: [PATCH] #AI.记忆治理

---
 rsf-server/src/main/java/com/vincent/rsf/server/ai/controller/AiChatController.java |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/ai/controller/AiChatController.java b/rsf-server/src/main/java/com/vincent/rsf/server/ai/controller/AiChatController.java
index d31b241..613d629 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/ai/controller/AiChatController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/ai/controller/AiChatController.java
@@ -57,6 +57,20 @@
     }
 
     @PreAuthorize("isAuthenticated()")
+    @PostMapping("/ai/chat/session/memory/clear/{sessionId}")
+    public R clearSessionMemory(@PathVariable Long sessionId) {
+        aiChatService.clearSessionMemory(sessionId, getLoginUserId(), getTenantId());
+        return R.ok("Clear Success").add(sessionId);
+    }
+
+    @PreAuthorize("isAuthenticated()")
+    @PostMapping("/ai/chat/session/memory/retain-latest/{sessionId}")
+    public R retainLatestRound(@PathVariable Long sessionId) {
+        aiChatService.retainLatestRound(sessionId, getLoginUserId(), getTenantId());
+        return R.ok("Retain Success").add(sessionId);
+    }
+
+    @PreAuthorize("isAuthenticated()")
     @PostMapping(value = "/ai/chat/stream", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
     public SseEmitter stream(@RequestBody AiChatRequest request) {
         String requestId = StringUtils.hasText(request.getRequestId())

--
Gitblit v1.9.1