From 71e8610888ee5f044666fe87bd2c38c10798d59b Mon Sep 17 00:00:00 2001 From: qianbao Date: Tue, 17 Mar 2026 10:52:21 +0800 Subject: [PATCH] AI添加问题 历史问题记录 --- src/main/java/com/xly/agent/ErpAiAgent.java | 4 ++-- src/main/java/com/xly/service/XlyErpService.java | 14 ++++++++++++-- src/main/resources/templates/chat.html | 2 +- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/xly/agent/ErpAiAgent.java b/src/main/java/com/xly/agent/ErpAiAgent.java index 581b9e4..727c684 100644 --- a/src/main/java/com/xly/agent/ErpAiAgent.java +++ b/src/main/java/com/xly/agent/ErpAiAgent.java @@ -14,10 +14,10 @@ public interface ErpAiAgent { 1. 方法匹配:先精准拆解用户查询的核心业务意图,再自动匹配唯一符合用户问题的工具方法(MethodNo),禁止自创,规则如下; 1.1 匹配方法时,无需考虑工具描述(@TOOL)中 1.必填参数,2.选填参数,示例,parameters内容 四个部分的内容; 1.2 匹配方法时,只关注工具描述(@TOOL)中 “当用户” 和 “时,必须调用本工具”两个短语之间的内容; + 1.3 调用工具前,不需要询问用户提供缺失的参数 2. 参数提取:提取该工具的全部参数,与描述完全一致,严格按标注类型赋值,规则如下: 2.1 数字无引号,为空时禁止赋值0; 2.2 如果有空格需要去掉空格后再提取。 - 2.3 每次都需要进行参数提取 """) @UserMessage("用户输入:{{userInput}}") String chat(@MemoryId String userId, @V("userInput") String userInput); @@ -48,4 +48,4 @@ public interface ErpAiAgent { @V("sql") String sql, @V("tableStruct") String tableStruct, @V("result") String result); -} \ No newline at end of file +} diff --git a/src/main/java/com/xly/service/XlyErpService.java b/src/main/java/com/xly/service/XlyErpService.java index b6affb7..30cb1b3 100644 --- a/src/main/java/com/xly/service/XlyErpService.java +++ b/src/main/java/com/xly/service/XlyErpService.java @@ -97,7 +97,7 @@ public class XlyErpService { if (input.contains("重置") || input.contains("重新选择")) { //清除记忆缓存 reSet(userId ,sUserName, sBrandsId ,sSubsidiaryId,sUserType,authorization,session); - return AiResponseDTO.builder().aiText(resetUserScene(session)).build(); + return AiResponseDTO.builder().aiText(resetUserScene(session.getUserId(),session)).build(); } //聊天只能体 if (session.getCurrentScene() != null @@ -530,7 +530,17 @@ public class XlyErpService { * @return java.lang.String * @Description 重置用户场景选择:恢复为未选状态,清空当前场景,重新展示选择界面 **/ - private String resetUserScene(UserSceneSession session) { + private String resetUserScene(String userId, UserSceneSession session) { + session.setSceneSelected(false); + session.setBCleanMemory(false); + session.setCurrentTool(null); + session.setSUserQuestionList(new ArrayList<>()); + session.setCurrentScene(null); + session.setCurrentRowData(null); + UserSceneSessionService.USER_SCENE_SESSION_CACHE.put(userId, session); + // 清空Agent缓存 + UserSceneSessionService.ERP_AGENT_CACHE.remove(userId); + UserSceneSessionService.CHAT_AGENT_CACHE.remove(userId); return "场景选择已重置!请重新选择业务场景:\n" + session.buildSceneSelectHint(); } diff --git a/src/main/resources/templates/chat.html b/src/main/resources/templates/chat.html index 5882d92..c04afdf 100644 --- a/src/main/resources/templates/chat.html +++ b/src/main/resources/templates/chat.html @@ -468,7 +468,7 @@ let subsidiaryid= "1111111111"; let usertype= "sysadmin"; // let usertype= "General"; - let authorization="CE444885A9BCFDDE1FD793F8A0931301E9D7DE6CEDD9DE4B83ECE2219C7829A8F3419238942A93E9AD666629E18D159AF7FE144A6407DE745BA0AEC8B235FC1D0771D239F1C61B14219E1D1B3A166D73495FD8E662F2065F9430347C7E4472B5538155B7ADAEE71E899235DC1122F426"; + let authorization="CE444885A9BCFDDE1FD793F8A0931301E9D7DE6CEDD9DE4B83ECE2219C7829A8F3419238942A93E9AD666629E18D159AF7FE144A6407DE745BA0AEC8B235FC1D4CAE6F9AC893762209A98011A981375391D4466816B7D3D1AF306E28B989121C538155B7ADAEE71E899235DC1122F426"; let hrefLock = window.location.origin+"/xlyAi"; // ==================== 配置部分 ==================== const CONFIG = { -- libgit2 0.22.2