diff --git a/src/main/java/com/xly/tool/DynamicToolProvider.java b/src/main/java/com/xly/tool/DynamicToolProvider.java index ecdf436..15cf99b 100644 --- a/src/main/java/com/xly/tool/DynamicToolProvider.java +++ b/src/main/java/com/xly/tool/DynamicToolProvider.java @@ -230,15 +230,6 @@ public class DynamicToolProvider implements ToolProvider { // String sSystemPrompt = SystemPromptGenerator.buildMissParamPrompt(session,dynamicParamRule); // session.setSSystemPrompt(sSystemPrompt); } - //判断是否首次进入给提示 如果没有产品名称 产品长 宽 - if(!Validator.isValid(args.get("dProductWidth")) - && !Validator.isValid(args.get("sCustomerName")) - && !Validator.isValid(args.get("dProductLength")) - && !Validator.isValid(args.get("sProductName"))){ - String sTsMemo = session.getCurrentTool().getSTsMemo(); - session.setSFunPrompts(sTsMemo); - return sTsMemo; - } } //获取是否缺失参数 String askMsg = getMissParamMsg( meta, session, args); @@ -402,13 +393,25 @@ public class DynamicToolProvider implements ToolProvider { : StrUtil.EMPTY; if (ObjectUtil.isNotEmpty(sValue)) { + List addValueAdd = new ArrayList<>(); List addValueOld = new ArrayList<>(); + Object sOldVal = session.getArgs().get(sDynamicPart.get(0).getSParam()); + if(ObjectUtil.isNotEmpty(sOldVal)){ + if (JSONUtil.isTypeJSONArray(sValue)) { + addValueOld = JSONUtil.toList(sValue, String.class); + } else { + addValueOld.add(sValue); + } + } if (JSONUtil.isTypeJSONArray(sValue)) { - addValueOld = JSONUtil.toList(sValue, String.class); + addValueAdd = JSONUtil.toList(sValue, String.class); } else { - addValueOld.add(sValue); + addValueAdd.add(sValue); } + addValueOld.addAll(addValueAdd); + addValueOld = new ArrayList<>(new LinkedHashSet<>(addValueOld)); + //新增部件不在删除部件中的 List finalSDynamicPartDelValue = sDynamicPartDelValue; List addValue = addValueOld.stream().filter(one-> !finalSDynamicPartDelValue.contains(one)).collect(Collectors.toList());