Commit bba86a8d013525c28e0be4f4d183d2221696cbad
1 parent
f0318b7b
添加未清选择 改成动态引导语
Showing
3 changed files
with
33 additions
and
19 deletions
src/main/java/com/xly/entity/UserSceneSession.java
| @@ -66,6 +66,14 @@ public class UserSceneSession { | @@ -66,6 +66,14 @@ public class UserSceneSession { | ||
| 66 | private Boolean bCleanMemory = false; | 66 | private Boolean bCleanMemory = false; |
| 67 | 67 | ||
| 68 | private Map<String, Object> args; | 68 | private Map<String, Object> args; |
| 69 | + /*** | ||
| 70 | + * @Author 钱豹 | ||
| 71 | + * @Date 12:40 2026/7/7 | ||
| 72 | + * @Param | ||
| 73 | + * @return | ||
| 74 | + * @Description 报价data | ||
| 75 | + **/ | ||
| 76 | + private Map<String, Object> quoData; | ||
| 69 | 77 | ||
| 70 | /** | 78 | /** |
| 71 | * 数据库类型 X: 向量库 S:数据库 | 79 | * 数据库类型 X: 向量库 S:数据库 |
src/main/java/com/xly/service/XlyErpService.java
| @@ -459,6 +459,22 @@ public class XlyErpService { | @@ -459,6 +459,22 @@ public class XlyErpService { | ||
| 459 | session.setSceneSelected(false); | 459 | session.setSceneSelected(false); |
| 460 | session.setBCleanMemory(false); | 460 | session.setBCleanMemory(false); |
| 461 | session.setCurrentRowData(null); | 461 | session.setCurrentRowData(null); |
| 462 | + session.setQuoData(null); | ||
| 463 | + | ||
| 464 | + ToolMeta toolMeta = session.getCurrentTool(); | ||
| 465 | + List<ParamRule> data = toolMeta.getParamRuleListAll(); | ||
| 466 | + List<ParamRule> data2 = toolMeta.getParamRuleList(); | ||
| 467 | + List<ParamRule> data3 = toolMeta.getParamRuleListCheck(); | ||
| 468 | + data = data.stream().filter(one-> !one.getBDynamicParam()).collect(Collectors.toUnmodifiableList()); | ||
| 469 | + data2 = data2.stream().filter(one-> !one.getBDynamicParam()).collect(Collectors.toUnmodifiableList()); | ||
| 470 | + data2 = data2.stream().filter(one-> !one.getBDynamicParam()).collect(Collectors.toUnmodifiableList()); | ||
| 471 | + data3 = data3.stream().filter(one-> !one.getBDynamicParam()).collect(Collectors.toUnmodifiableList()); | ||
| 472 | + toolMeta.setDynamicParamRule(null); | ||
| 473 | + toolMeta.setParamRuleListAll(data); | ||
| 474 | + toolMeta.setParamRuleList(data2); | ||
| 475 | + toolMeta.setParamRuleListCheck(data3); | ||
| 476 | + session.setCurrentTool(toolMeta); | ||
| 477 | + session.setCurrentRowData(null); | ||
| 462 | UserSceneSessionService.USER_SCENE_SESSION_CACHE.put(userId, session); | 478 | UserSceneSessionService.USER_SCENE_SESSION_CACHE.put(userId, session); |
| 463 | // 清空Agent缓存 | 479 | // 清空Agent缓存 |
| 464 | UserSceneSessionService.ERP_AGENT_CACHE.remove(userId); | 480 | UserSceneSessionService.ERP_AGENT_CACHE.remove(userId); |
src/main/java/com/xly/tool/DynamicToolProvider.java
| @@ -248,8 +248,13 @@ public class DynamicToolProvider implements ToolProvider { | @@ -248,8 +248,13 @@ public class DynamicToolProvider implements ToolProvider { | ||
| 248 | if(ObjectUtil.isNotEmpty(askMsg)){ | 248 | if(ObjectUtil.isNotEmpty(askMsg)){ |
| 249 | return askMsg; | 249 | return askMsg; |
| 250 | } | 250 | } |
| 251 | + String resp = StrUtil.EMPTY; | ||
| 252 | + if(session.getCurrentTool().getBQuo()){ | ||
| 253 | + resp = JSONUtil.toJsonStr(session.getQuoData()); | ||
| 254 | + }else{ | ||
| 255 | + resp = JSONUtil.toJsonStr(args) ; | ||
| 256 | + } | ||
| 251 | // ====================== 返回时带终止指令 ====================== | 257 | // ====================== 返回时带终止指令 ====================== |
| 252 | - String resp = JSONUtil.toJsonStr(args) ; | ||
| 253 | return String.valueOf(successResult(toolExecutionRequest, resp)); | 258 | return String.valueOf(successResult(toolExecutionRequest, resp)); |
| 254 | }; | 259 | }; |
| 255 | } | 260 | } |
| @@ -694,8 +699,8 @@ public class DynamicToolProvider implements ToolProvider { | @@ -694,8 +699,8 @@ public class DynamicToolProvider implements ToolProvider { | ||
| 694 | List<Map<String,Object>> sAll = (List<Map<String, Object>>) data.get("sAll"); | 699 | List<Map<String,Object>> sAll = (List<Map<String, Object>>) data.get("sAll"); |
| 695 | List<Map<String,Object>> sEmpty = sAll.stream().filter(one-> BooleanUtil.toBoolean(one.get("bEmpty").toString()) | 700 | List<Map<String,Object>> sEmpty = sAll.stream().filter(one-> BooleanUtil.toBoolean(one.get("bEmpty").toString()) |
| 696 | && (ObjectUtil.isEmpty(one.get("sValue")) || "0".equals(one.get("sValue")))).collect(Collectors.toUnmodifiableList()); | 701 | && (ObjectUtil.isEmpty(one.get("sValue")) || "0".equals(one.get("sValue")))).collect(Collectors.toUnmodifiableList()); |
| 702 | + data.remove("sAll"); | ||
| 697 | if(ObjectUtil.isNotEmpty(sEmpty)){ | 703 | if(ObjectUtil.isNotEmpty(sEmpty)){ |
| 698 | - data.remove("sAll"); | ||
| 699 | data.put("bTs",true); | 704 | data.put("bTs",true); |
| 700 | String askMsg = JSONObject.toJSONString(data); | 705 | String askMsg = JSONObject.toJSONString(data); |
| 701 | session.setSFunPrompts(askMsg); | 706 | session.setSFunPrompts(askMsg); |
| @@ -704,6 +709,7 @@ public class DynamicToolProvider implements ToolProvider { | @@ -704,6 +709,7 @@ public class DynamicToolProvider implements ToolProvider { | ||
| 704 | // 需要提问用户 → 抛异常停止循环 | 709 | // 需要提问用户 → 抛异常停止循环 |
| 705 | return askMsg; | 710 | return askMsg; |
| 706 | } | 711 | } |
| 712 | + session.setQuoData(data); | ||
| 707 | }else{ | 713 | }else{ |
| 708 | List<String> missing = checkRequiredParams(args, meta.getParamRuleListCheck()); | 714 | List<String> missing = checkRequiredParams(args, meta.getParamRuleListCheck()); |
| 709 | if (!missing.isEmpty()) { | 715 | if (!missing.isEmpty()) { |
| @@ -740,8 +746,7 @@ public class DynamicToolProvider implements ToolProvider { | @@ -740,8 +746,7 @@ public class DynamicToolProvider implements ToolProvider { | ||
| 740 | || 6== meta.getIBizType() | 746 | || 6== meta.getIBizType() |
| 741 | || 7== meta.getIBizType() | 747 | || 7== meta.getIBizType() |
| 742 | || 8== meta.getIBizType() | 748 | || 8== meta.getIBizType() |
| 743 | - ) | ||
| 744 | - { | 749 | + ){ |
| 745 | //根据获取的参数获取数据 | 750 | //根据获取的参数获取数据 |
| 746 | List<String> missingAfter = checkConfirmAfterParam(args, paramRuleData); | 751 | List<String> missingAfter = checkConfirmAfterParam(args, paramRuleData); |
| 747 | if (!missingAfter.isEmpty()) { | 752 | if (!missingAfter.isEmpty()) { |
| @@ -1382,21 +1387,6 @@ public class DynamicToolProvider implements ToolProvider { | @@ -1382,21 +1387,6 @@ public class DynamicToolProvider implements ToolProvider { | ||
| 1382 | .filter(Objects::nonNull) | 1387 | .filter(Objects::nonNull) |
| 1383 | .collect(Collectors.toList()); | 1388 | .collect(Collectors.toList()); |
| 1384 | } | 1389 | } |
| 1385 | - | ||
| 1386 | - private String buildConfirmUserMessage(ToolMeta meta, Map<String, Object> args) { | ||
| 1387 | - StringBuilder markdown = new StringBuilder(); | ||
| 1388 | - markdown.append("参数提取如下:\n\n"); | ||
| 1389 | - List<ParamRule> paramRuleData = meta.getParamRuleList(); | ||
| 1390 | - paramRuleData.forEach(one->{ | ||
| 1391 | - if(ObjectUtil.isNotEmpty(args.get(one.getSParam()))){ | ||
| 1392 | - markdown.append("- **").append(one.getSParam()).append("**: ").append(args.get(one.getSParam())).append("\n"); | ||
| 1393 | - } | ||
| 1394 | - }); | ||
| 1395 | - markdown.append("\n---\n"); | ||
| 1396 | - appendConfirm(markdown,meta.getSControlName()); | ||
| 1397 | - return markdown.toString(); | ||
| 1398 | - } | ||
| 1399 | - | ||
| 1400 | private String buildAskUserMessage(ToolMeta meta, List<String> missing,Map<String,Object> arg) { | 1390 | private String buildAskUserMessage(ToolMeta meta, List<String> missing,Map<String,Object> arg) { |
| 1401 | StringBuilder sb = new StringBuilder(); | 1391 | StringBuilder sb = new StringBuilder(); |
| 1402 | sb.append("缺少参数请补全:\n"); | 1392 | sb.append("缺少参数请补全:\n"); |