From d8f53a4e2fb0512d916162f95b9fa1e0f7fe97af Mon Sep 17 00:00:00 2001 From: jerryjzhang Date: Wed, 5 Jun 2024 20:30:13 +0800 Subject: [PATCH] (fix)(common)Fix system parameter initialization making sure settings in application.yaml take effect --- .../supersonic/common/pojo/SystemConfig.java | 24 ++++--------------- .../service/impl/SystemConfigServiceImpl.java | 12 ++++++++++ .../chat/mapper/DatabaseMatchStrategy.java | 2 +- .../tencent/supersonic/demo/S2VisitsDemo.java | 8 ------- .../src/test/resources/application-local.yaml | 4 ++-- 5 files changed, 20 insertions(+), 30 deletions(-) diff --git a/common/src/main/java/com/tencent/supersonic/common/pojo/SystemConfig.java b/common/src/main/java/com/tencent/supersonic/common/pojo/SystemConfig.java index a90aaf776..456c76aee 100644 --- a/common/src/main/java/com/tencent/supersonic/common/pojo/SystemConfig.java +++ b/common/src/main/java/com/tencent/supersonic/common/pojo/SystemConfig.java @@ -21,6 +21,11 @@ public class SystemConfig { private List parameters; + public void init() { + parameters = buildDefaultParameters(); + admins = Lists.newArrayList("admin"); + } + public String getAdmin() { if (CollectionUtils.isEmpty(admins)) { return ""; @@ -45,11 +50,6 @@ public class SystemConfig { } } - public void init() { - parameters = buildDefaultParameters(); - admins = Lists.newArrayList("admin"); - } - private List buildDefaultParameters() { List defaultParameters = Lists.newArrayList(); Collection configurableParameters = @@ -60,18 +60,4 @@ public class SystemConfig { return defaultParameters; } - public List getParameters() { - List defaultParameters = buildDefaultParameters(); - if (CollectionUtils.isEmpty(parameters)) { - return defaultParameters; - } - Map parameterNameValueMap = parameters.stream() - .collect(Collectors.toMap(Parameter::getName, Parameter::getValue, (v1, v2) -> v2)); - for (Parameter parameter : defaultParameters) { - parameter.setValue(parameterNameValueMap.getOrDefault(parameter.getName(), - parameter.getDefaultValue())); - } - return defaultParameters; - } - } diff --git a/common/src/main/java/com/tencent/supersonic/common/service/impl/SystemConfigServiceImpl.java b/common/src/main/java/com/tencent/supersonic/common/service/impl/SystemConfigServiceImpl.java index 1ffb9dae3..0b5418990 100644 --- a/common/src/main/java/com/tencent/supersonic/common/service/impl/SystemConfigServiceImpl.java +++ b/common/src/main/java/com/tencent/supersonic/common/service/impl/SystemConfigServiceImpl.java @@ -9,6 +9,8 @@ import com.tencent.supersonic.common.pojo.Parameter; import com.tencent.supersonic.common.pojo.SystemConfig; import com.tencent.supersonic.common.service.SystemConfigService; import com.tencent.supersonic.common.util.JsonUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.env.Environment; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.List; @@ -17,6 +19,9 @@ import java.util.List; public class SystemConfigServiceImpl extends ServiceImpl implements SystemConfigService { + @Autowired + private Environment environment; + @Override public SystemConfig getSystemConfig() { List list = list(); @@ -24,9 +29,16 @@ public class SystemConfigServiceImpl SystemConfig systemConfig = new SystemConfig(); systemConfig.setId(1); systemConfig.init(); + // use system property to initialize system parameter + systemConfig.getParameters().stream().forEach(p -> { + if (environment.containsProperty(p.getName())) { + p.setValue(environment.getProperty(p.getName())); + } + }); save(systemConfig); return systemConfig; } + return convert(list.iterator().next()); } diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/chat/mapper/DatabaseMatchStrategy.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/chat/mapper/DatabaseMatchStrategy.java index 358b2c532..3e5e6a4e0 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/chat/mapper/DatabaseMatchStrategy.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/chat/mapper/DatabaseMatchStrategy.java @@ -100,7 +100,7 @@ public class DatabaseMatchStrategy extends BaseMatchStrategy if (!existElement) { threshold = threshold / 2; - log.info("ModelElementMatches:{},not exist Element threshold reduce by half:{}", + log.debug("ModelElementMatches:{},not exist Element threshold reduce by half:{}", modelElementMatches, threshold); } return getThreshold(threshold, minThreshold, queryContext.getMapModeEnum()); diff --git a/launchers/standalone/src/main/java/com/tencent/supersonic/demo/S2VisitsDemo.java b/launchers/standalone/src/main/java/com/tencent/supersonic/demo/S2VisitsDemo.java index ad1d07dd9..e489628c1 100644 --- a/launchers/standalone/src/main/java/com/tencent/supersonic/demo/S2VisitsDemo.java +++ b/launchers/standalone/src/main/java/com/tencent/supersonic/demo/S2VisitsDemo.java @@ -107,7 +107,6 @@ public class S2VisitsDemo extends S2BaseDemo { addTerm(s2Domain); addTerm_1(s2Domain); addPlugin(s2DataSet); - addSysParameter(); //load dict word loadDictWord(); @@ -145,13 +144,6 @@ public class S2VisitsDemo extends S2BaseDemo { parseAndExecute(chatId.intValue(), agentId, "访问次数最高的部门"); } - public void addSysParameter() { - SystemConfig sysParameter = new SystemConfig(); - sysParameter.setId(1); - sysParameter.init(); - sysParameterService.save(sysParameter); - } - private Integer addAgent(long dataSetId) { Agent agent = new Agent(); agent.setName("算指标"); diff --git a/launchers/standalone/src/test/resources/application-local.yaml b/launchers/standalone/src/test/resources/application-local.yaml index cd0ef6d3e..a55ccb792 100644 --- a/launchers/standalone/src/test/resources/application-local.yaml +++ b/launchers/standalone/src/test/resources/application-local.yaml @@ -39,9 +39,9 @@ s2: parser: strategy: ONE_PASS_SELF_CONSISTENCY exemplar-recall: - number: 5 + number: 10 few-shot: - number: 1 + number: 5 self-consistency: number: 1 multi-turn: