From 80a6d9236ade191a5de0975abe4de5a6e7e63915 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期四, 19 三月 2026 14:03:10 +0800
Subject: [PATCH] #AI.注释

---
 rsf-server/src/main/java/com/vincent/rsf/server/ai/service/impl/AiChatMemoryServiceImpl.java |   34 ++++++++++++++++++++++++++++++++++
 1 files changed, 34 insertions(+), 0 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/ai/service/impl/AiChatMemoryServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/ai/service/impl/AiChatMemoryServiceImpl.java
index 5f1c1f3..d531a27 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/ai/service/impl/AiChatMemoryServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/ai/service/impl/AiChatMemoryServiceImpl.java
@@ -30,6 +30,11 @@
     private final AiChatSessionMapper aiChatSessionMapper;
     private final AiChatMessageMapper aiChatMessageMapper;
 
+    /**
+     * 璇诲彇浼氳瘽璁板繂蹇収銆�
+     * 杩斿洖缁撴灉鍚屾椂鍖呭惈瀹屾暣钀藉簱鍘嗗彶銆佺煭鏈熻蹇嗙獥鍙d互鍙婃憳瑕�/浜嬪疄璁板繂锛�
+     * 渚夸簬璋冪敤鏂规寜涓嶅悓鐢ㄩ�旈�夋嫨鏁版嵁绮掑害銆�
+     */
     @Override
     public AiChatMemoryDto getMemory(Long userId, Long tenantId, String promptCode, Long sessionId) {
         ensureIdentity(userId, tenantId);
@@ -59,6 +64,10 @@
                 .build();
     }
 
+    /**
+     * 鏌ヨ褰撳墠鐢ㄦ埛鍦ㄦ煇涓� Prompt 涓嬬殑浼氳瘽鍒楄〃銆�
+     * 鍒楄〃鍙繑鍥炵敤浜庝晶杈规爮灞曠ず鐨勬憳瑕佷俊鎭紝涓嶈繑鍥炲畬鏁村璇濆唴瀹广��
+     */
     @Override
     public List<AiChatSessionDto> listSessions(Long userId, Long tenantId, String promptCode, String keyword) {
         ensureIdentity(userId, tenantId);
@@ -83,6 +92,10 @@
         return result;
     }
 
+    /**
+     * 瑙f瀽鏈疆璇锋眰搴旇钀藉埌鍝釜浼氳瘽銆�
+     * 濡傛灉鍓嶇甯︿簡 sessionId 鍒欏仛褰掑睘鏍¢獙骞跺鐢紱鍚﹀垯鑷姩鍒涘缓鏂颁細璇濄��
+     */
     @Override
     public AiChatSession resolveSession(Long userId, Long tenantId, String promptCode, Long sessionId, String titleSeed) {
         ensureIdentity(userId, tenantId);
@@ -108,6 +121,10 @@
         return session;
     }
 
+    /**
+     * 钀藉簱淇濆瓨涓�鏁磋疆瀵硅瘽銆�
+     * 杩欓噷浼氶『搴忓啓鍏ユ湰杞敤鎴锋秷鎭拰妯″瀷鍥炲锛屽苟鍦ㄦ渶鍚庡埛鏂颁細璇濇爣棰樸�佹渶鍚庢椿璺冩椂闂村拰璁板繂鐢诲儚銆�
+     */
     @Override
     public void saveRound(AiChatSession session, Long userId, Long tenantId, List<AiChatMessageDto> memoryMessages, String assistantContent) {
         if (session == null || session.getId() == null) {
@@ -136,6 +153,7 @@
         refreshMemoryProfile(session.getId(), userId);
     }
 
+    /** 鍒犻櫎鏁翠釜浼氳瘽鍙婂叾娑堟伅銆� */
     @Override
     public void removeSession(Long userId, Long tenantId, Long sessionId) {
         ensureIdentity(userId, tenantId);
@@ -169,6 +187,7 @@
         }
     }
 
+    /** 鏇存柊浼氳瘽鏍囬骞惰繑鍥炴渶鏂颁細璇濇憳瑕併�� */
     @Override
     public AiChatSessionDto renameSession(Long userId, Long tenantId, Long sessionId, AiChatSessionRenameRequest request) {
         ensureIdentity(userId, tenantId);
@@ -186,6 +205,7 @@
         return buildSessionDto(requireOwnedSession(sessionId, userId, tenantId));
     }
 
+    /** 鏇存柊浼氳瘽缃《鐘舵�併�� */
     @Override
     public AiChatSessionDto pinSession(Long userId, Long tenantId, Long sessionId, AiChatSessionPinRequest request) {
         ensureIdentity(userId, tenantId);
@@ -203,6 +223,7 @@
         return buildSessionDto(requireOwnedSession(sessionId, userId, tenantId));
     }
 
+    /** 娓呯┖鏌愪釜浼氳瘽鐨勫叏閮ㄦ秷鎭拰娲剧敓璁板繂瀛楁銆� */
     @Override
     public void clearSessionMemory(Long userId, Long tenantId, Long sessionId) {
         ensureIdentity(userId, tenantId);
@@ -224,6 +245,7 @@
                 .setLastMessageTime(session.getCreateTime()));
     }
 
+    /** 鍙繚鐣欐渶杩戜竴杞棶绛旓紝鐢ㄤ簬鎵嬪姩瑁佸壀闀夸細璇濄�� */
     @Override
     public void retainLatestRound(Long userId, Long tenantId, Long sessionId) {
         ensureIdentity(userId, tenantId);
@@ -307,6 +329,7 @@
     }
 
     private List<AiChatMessageDto> normalizeMessages(List<AiChatMessageDto> memoryMessages) {
+        /** 娓呮礂鍓嶇涓婁紶鐨勫唴瀛樻秷鎭紝鍙厑璁� user/assistant 涓ょ被瑙掕壊钀藉簱銆� */
         List<AiChatMessageDto> normalized = new ArrayList<>();
         if (Cools.isEmpty(memoryMessages)) {
             return normalized;
@@ -372,6 +395,10 @@
     }
 
     private String buildSessionTitle(String titleSeed) {
+        /**
+         * 鎶婇杞敤鎴烽棶棰樺帇缂╂垚閫傚悎浣滀负浼氳瘽鏍囬鐨勭煭鎽樿銆�
+         * 杩欓噷浼氬幓鎺夋崲琛屻�佽繛缁┖鐧斤紝骞朵紭鍏堝湪鑷劧璇箟鏂偣澶勬埅鏂��
+         */
         if (!StringUtils.hasText(titleSeed)) {
             throw new CoolException("AI 浼氳瘽鏍囬涓嶈兘涓虹┖");
         }
@@ -429,6 +456,10 @@
     }
 
     private void refreshMemoryProfile(Long sessionId, Long userId) {
+        /**
+         * 閲嶆柊璁$畻浼氳瘽鐨勬憳瑕佽蹇嗗拰鍏抽敭浜嬪疄銆�
+         * 杩欐槸鈥滄寔涔呭寲娑堟伅鈥濆拰鈥滄ā鍨嬩笂涓嬫枃娌荤悊鈥濅箣闂寸殑妗ユ鏂规硶銆�
+         */
         List<AiChatMessageDto> messages = listMessages(sessionId);
         List<AiChatMessageDto> shortMemoryMessages = tailMessagesByRounds(messages, AiDefaults.MEMORY_RECENT_ROUNDS);
         List<AiChatMessageDto> historyMessages = messages.size() > shortMemoryMessages.size()
@@ -454,6 +485,7 @@
     }
 
     private List<AiChatMessageDto> tailMessagesByRounds(List<AiChatMessageDto> source, int rounds) {
+        /** 鎸夆�滅敤鎴峰彂瑷�杞鈥濊鍓渶杩戞秷鎭紝鑰屼笉鏄畝鍗曟寜鏉℃暟鎴柇銆� */
         if (Cools.isEmpty(source) || rounds <= 0) {
             return List.of();
         }
@@ -492,6 +524,7 @@
     }
 
     private String buildMemorySummary(List<AiChatMessageDto> historyMessages) {
+        /** 涓鸿緝鏃╁巻鍙茬敓鎴愬彲鐩存帴鎻掑叆绯荤粺娑堟伅鐨勬枃鏈憳瑕併�� */
         StringBuilder builder = new StringBuilder("杈冩棭瀵硅瘽鎽樿:\n");
         for (AiChatMessageDto item : historyMessages) {
             if (item == null || !StringUtils.hasText(item.getContent())) {
@@ -511,6 +544,7 @@
     }
 
     private String buildMemoryFacts(List<AiChatMessageDto> messages) {
+        /** 浠庢渶杩戠敤鎴峰叧娉ㄧ偣涓彁鐐煎叧閿簨瀹烇紝浣滀负杞婚噺鎸佷箙璁板繂銆� */
         if (Cools.isEmpty(messages)) {
             return null;
         }

--
Gitblit v1.9.1