Commit 71e8610888ee5f044666fe87bd2c38c10798d59b

Authored by qianbao
1 parent 07f79d71

AI添加问题 历史问题记录

src/main/java/com/xly/agent/ErpAiAgent.java
@@ -14,10 +14,10 @@ public interface ErpAiAgent { @@ -14,10 +14,10 @@ public interface ErpAiAgent {
14 1. 方法匹配:先精准拆解用户查询的核心业务意图,再自动匹配唯一符合用户问题的工具方法(MethodNo),禁止自创,规则如下; 14 1. 方法匹配:先精准拆解用户查询的核心业务意图,再自动匹配唯一符合用户问题的工具方法(MethodNo),禁止自创,规则如下;
15 1.1 匹配方法时,无需考虑工具描述(@TOOL)中 1.必填参数,2.选填参数,示例,parameters内容 四个部分的内容; 15 1.1 匹配方法时,无需考虑工具描述(@TOOL)中 1.必填参数,2.选填参数,示例,parameters内容 四个部分的内容;
16 1.2 匹配方法时,只关注工具描述(@TOOL)中 “当用户” 和 “时,必须调用本工具”两个短语之间的内容; 16 1.2 匹配方法时,只关注工具描述(@TOOL)中 “当用户” 和 “时,必须调用本工具”两个短语之间的内容;
  17 + 1.3 调用工具前,不需要询问用户提供缺失的参数
17 2. 参数提取:提取该工具的全部参数,与描述完全一致,严格按标注类型赋值,规则如下: 18 2. 参数提取:提取该工具的全部参数,与描述完全一致,严格按标注类型赋值,规则如下:
18 2.1 数字无引号,为空时禁止赋值0; 19 2.1 数字无引号,为空时禁止赋值0;
19 2.2 如果有空格需要去掉空格后再提取。 20 2.2 如果有空格需要去掉空格后再提取。
20 - 2.3 每次都需要进行参数提取  
21 """) 21 """)
22 @UserMessage("用户输入:{{userInput}}") 22 @UserMessage("用户输入:{{userInput}}")
23 String chat(@MemoryId String userId, @V("userInput") String userInput); 23 String chat(@MemoryId String userId, @V("userInput") String userInput);
@@ -48,4 +48,4 @@ public interface ErpAiAgent { @@ -48,4 +48,4 @@ public interface ErpAiAgent {
48 @V("sql") String sql, 48 @V("sql") String sql,
49 @V("tableStruct") String tableStruct, 49 @V("tableStruct") String tableStruct,
50 @V("result") String result); 50 @V("result") String result);
51 -}  
52 \ No newline at end of file 51 \ No newline at end of file
  52 +}
src/main/java/com/xly/service/XlyErpService.java
@@ -97,7 +97,7 @@ public class XlyErpService { @@ -97,7 +97,7 @@ public class XlyErpService {
97 if (input.contains("重置") || input.contains("重新选择")) { 97 if (input.contains("重置") || input.contains("重新选择")) {
98 //清除记忆缓存 98 //清除记忆缓存
99 reSet(userId ,sUserName, sBrandsId ,sSubsidiaryId,sUserType,authorization,session); 99 reSet(userId ,sUserName, sBrandsId ,sSubsidiaryId,sUserType,authorization,session);
100 - return AiResponseDTO.builder().aiText(resetUserScene(session)).build(); 100 + return AiResponseDTO.builder().aiText(resetUserScene(session.getUserId(),session)).build();
101 } 101 }
102 //聊天只能体 102 //聊天只能体
103 if (session.getCurrentScene() != null 103 if (session.getCurrentScene() != null
@@ -530,7 +530,17 @@ public class XlyErpService { @@ -530,7 +530,17 @@ public class XlyErpService {
530 * @return java.lang.String 530 * @return java.lang.String
531 * @Description 重置用户场景选择:恢复为未选状态,清空当前场景,重新展示选择界面 531 * @Description 重置用户场景选择:恢复为未选状态,清空当前场景,重新展示选择界面
532 **/ 532 **/
533 - private String resetUserScene(UserSceneSession session) { 533 + private String resetUserScene(String userId, UserSceneSession session) {
  534 + session.setSceneSelected(false);
  535 + session.setBCleanMemory(false);
  536 + session.setCurrentTool(null);
  537 + session.setSUserQuestionList(new ArrayList<>());
  538 + session.setCurrentScene(null);
  539 + session.setCurrentRowData(null);
  540 + UserSceneSessionService.USER_SCENE_SESSION_CACHE.put(userId, session);
  541 + // 清空Agent缓存
  542 + UserSceneSessionService.ERP_AGENT_CACHE.remove(userId);
  543 + UserSceneSessionService.CHAT_AGENT_CACHE.remove(userId);
534 return "场景选择已重置!请重新选择业务场景:\n" + session.buildSceneSelectHint(); 544 return "场景选择已重置!请重新选择业务场景:\n" + session.buildSceneSelectHint();
535 } 545 }
536 546
src/main/resources/templates/chat.html
@@ -468,7 +468,7 @@ @@ -468,7 +468,7 @@
468 let subsidiaryid= "1111111111"; 468 let subsidiaryid= "1111111111";
469 let usertype= "sysadmin"; 469 let usertype= "sysadmin";
470 // let usertype= "General"; 470 // let usertype= "General";
471 - let authorization="CE444885A9BCFDDE1FD793F8A0931301E9D7DE6CEDD9DE4B83ECE2219C7829A8F3419238942A93E9AD666629E18D159AF7FE144A6407DE745BA0AEC8B235FC1D0771D239F1C61B14219E1D1B3A166D73495FD8E662F2065F9430347C7E4472B5538155B7ADAEE71E899235DC1122F426"; 471 + let authorization="CE444885A9BCFDDE1FD793F8A0931301E9D7DE6CEDD9DE4B83ECE2219C7829A8F3419238942A93E9AD666629E18D159AF7FE144A6407DE745BA0AEC8B235FC1D4CAE6F9AC893762209A98011A981375391D4466816B7D3D1AF306E28B989121C538155B7ADAEE71E899235DC1122F426";
472 let hrefLock = window.location.origin+"/xlyAi"; 472 let hrefLock = window.location.origin+"/xlyAi";
473 // ==================== 配置部分 ==================== 473 // ==================== 配置部分 ====================
474 const CONFIG = { 474 const CONFIG = {