Commit 71e8610888ee5f044666fe87bd2c38c10798d59b
1 parent
07f79d71
AI添加问题 历史问题记录
Showing
3 changed files
with
15 additions
and
5 deletions
src/main/java/com/xly/agent/ErpAiAgent.java
| ... | ... | @@ -14,10 +14,10 @@ public interface ErpAiAgent { |
| 14 | 14 | 1. 方法匹配:先精准拆解用户查询的核心业务意图,再自动匹配唯一符合用户问题的工具方法(MethodNo),禁止自创,规则如下; |
| 15 | 15 | 1.1 匹配方法时,无需考虑工具描述(@TOOL)中 1.必填参数,2.选填参数,示例,parameters内容 四个部分的内容; |
| 16 | 16 | 1.2 匹配方法时,只关注工具描述(@TOOL)中 “当用户” 和 “时,必须调用本工具”两个短语之间的内容; |
| 17 | + 1.3 调用工具前,不需要询问用户提供缺失的参数 | |
| 17 | 18 | 2. 参数提取:提取该工具的全部参数,与描述完全一致,严格按标注类型赋值,规则如下: |
| 18 | 19 | 2.1 数字无引号,为空时禁止赋值0; |
| 19 | 20 | 2.2 如果有空格需要去掉空格后再提取。 |
| 20 | - 2.3 每次都需要进行参数提取 | |
| 21 | 21 | """) |
| 22 | 22 | @UserMessage("用户输入:{{userInput}}") |
| 23 | 23 | String chat(@MemoryId String userId, @V("userInput") String userInput); |
| ... | ... | @@ -48,4 +48,4 @@ public interface ErpAiAgent { |
| 48 | 48 | @V("sql") String sql, |
| 49 | 49 | @V("tableStruct") String tableStruct, |
| 50 | 50 | @V("result") String result); |
| 51 | -} | |
| 52 | 51 | \ No newline at end of file |
| 52 | +} | ... | ... |
src/main/java/com/xly/service/XlyErpService.java
| ... | ... | @@ -97,7 +97,7 @@ public class XlyErpService { |
| 97 | 97 | if (input.contains("重置") || input.contains("重新选择")) { |
| 98 | 98 | //清除记忆缓存 |
| 99 | 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 | 103 | if (session.getCurrentScene() != null |
| ... | ... | @@ -530,7 +530,17 @@ public class XlyErpService { |
| 530 | 530 | * @return java.lang.String |
| 531 | 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 | 544 | return "场景选择已重置!请重新选择业务场景:\n" + session.buildSceneSelectHint(); |
| 535 | 545 | } |
| 536 | 546 | ... | ... |
src/main/resources/templates/chat.html
| ... | ... | @@ -468,7 +468,7 @@ |
| 468 | 468 | let subsidiaryid= "1111111111"; |
| 469 | 469 | let usertype= "sysadmin"; |
| 470 | 470 | // let usertype= "General"; |
| 471 | - let authorization="CE444885A9BCFDDE1FD793F8A0931301E9D7DE6CEDD9DE4B83ECE2219C7829A8F3419238942A93E9AD666629E18D159AF7FE144A6407DE745BA0AEC8B235FC1D0771D239F1C61B14219E1D1B3A166D73495FD8E662F2065F9430347C7E4472B5538155B7ADAEE71E899235DC1122F426"; | |
| 471 | + let authorization="CE444885A9BCFDDE1FD793F8A0931301E9D7DE6CEDD9DE4B83ECE2219C7829A8F3419238942A93E9AD666629E18D159AF7FE144A6407DE745BA0AEC8B235FC1D4CAE6F9AC893762209A98011A981375391D4466816B7D3D1AF306E28B989121C538155B7ADAEE71E899235DC1122F426"; | |
| 472 | 472 | let hrefLock = window.location.origin+"/xlyAi"; |
| 473 | 473 | // ==================== 配置部分 ==================== |
| 474 | 474 | const CONFIG = { | ... | ... |