mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-10 11:07:06 +00:00
(improvement)(headless&chat) System parameter compatible with historical data and front-end (#1070)
This reverts commit 59f6169569.
Co-authored-by: jolunoluo
This commit is contained in:
@@ -21,9 +21,9 @@ public final class UserHolder {
|
||||
public static User findUser(HttpServletRequest request, HttpServletResponse response) {
|
||||
User user = REPO.findUser(request, response);
|
||||
SystemConfigService sysParameterService = ContextUtils.getBean(SystemConfigService.class);
|
||||
SystemConfig sysParameter = sysParameterService.getSysParameter();
|
||||
if (!CollectionUtils.isEmpty(sysParameter.getAdmins())
|
||||
&& sysParameter.getAdmins().contains(user.getName())) {
|
||||
SystemConfig systemConfig = sysParameterService.getSystemConfig();
|
||||
if (!CollectionUtils.isEmpty(systemConfig.getAdmins())
|
||||
&& systemConfig.getAdmins().contains(user.getName())) {
|
||||
user.setIsAdmin(1);
|
||||
}
|
||||
return user;
|
||||
|
||||
@@ -28,9 +28,9 @@ public class UserServiceImpl implements UserService {
|
||||
public User getCurrentUser(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
|
||||
User user = UserHolder.findUser(httpServletRequest, httpServletResponse);
|
||||
if (user != null) {
|
||||
SystemConfig sysParameter = sysParameterService.getSysParameter();
|
||||
if (!CollectionUtils.isEmpty(sysParameter.getAdmins())
|
||||
&& sysParameter.getAdmins().contains(user.getName())) {
|
||||
SystemConfig systemConfig = sysParameterService.getSystemConfig();
|
||||
if (!CollectionUtils.isEmpty(systemConfig.getAdmins())
|
||||
&& systemConfig.getAdmins().contains(user.getName())) {
|
||||
user.setIsAdmin(1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,8 +6,8 @@ import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@TableName("s2_sys_parameter")
|
||||
public class SysParameterDO {
|
||||
@TableName("s2_system_config")
|
||||
public class SystemConfigDO {
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Integer id;
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.tencent.supersonic.common.persistence.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.tencent.supersonic.common.persistence.dataobject.SysParameterDO;
|
||||
import com.tencent.supersonic.common.persistence.dataobject.SystemConfigDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
@Mapper
|
||||
public interface SysParameterMapper extends BaseMapper<SysParameterDO> {
|
||||
public interface SystemConfigMapper extends BaseMapper<SystemConfigDO> {
|
||||
|
||||
|
||||
}
|
||||
@@ -3,6 +3,7 @@ package com.tencent.supersonic.common.pojo;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@@ -15,6 +16,7 @@ public class Parameter {
|
||||
private String description;
|
||||
private String dataType;
|
||||
private String module;
|
||||
private String value;
|
||||
private List<Object> candidateValues;
|
||||
|
||||
public Parameter(String name, String defaultValue, String comment,
|
||||
@@ -27,4 +29,22 @@ public class Parameter {
|
||||
this.module = module;
|
||||
}
|
||||
|
||||
public Parameter(String name, String defaultValue, String comment, String description,
|
||||
String dataType, String module, List<Object> candidateValues) {
|
||||
this.name = name;
|
||||
this.defaultValue = defaultValue;
|
||||
this.comment = comment;
|
||||
this.description = description;
|
||||
this.dataType = dataType;
|
||||
this.module = module;
|
||||
this.candidateValues = candidateValues;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
if (StringUtils.isBlank(value)) {
|
||||
return defaultValue;
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ public abstract class ParameterConfig {
|
||||
*/
|
||||
public String getParameterValue(Parameter parameter) {
|
||||
String paramName = parameter.getName();
|
||||
String value = sysConfigService.getSysParameter().getParameterByName(paramName);
|
||||
String value = sysConfigService.getSystemConfig().getParameterByName(paramName);
|
||||
try {
|
||||
if (StringUtils.isBlank(value)) {
|
||||
if (environment.containsProperty(paramName)) {
|
||||
|
||||
@@ -32,8 +32,8 @@ public class SystemConfig {
|
||||
if (StringUtils.isBlank(name)) {
|
||||
return "";
|
||||
}
|
||||
Map<String, String> nameToValue = parameters.stream()
|
||||
.collect(Collectors.toMap(Parameter::getName, Parameter::getDefaultValue, (k1, k2) -> k1));
|
||||
Map<String, String> nameToValue = getParameters().stream()
|
||||
.collect(Collectors.toMap(Parameter::getName, Parameter::getValue, (k1, k2) -> k1));
|
||||
return nameToValue.get(name);
|
||||
}
|
||||
|
||||
@@ -46,14 +46,32 @@ public class SystemConfig {
|
||||
}
|
||||
|
||||
public void init() {
|
||||
parameters = Lists.newArrayList();
|
||||
parameters = buildDefaultParameters();
|
||||
admins = Lists.newArrayList("admin");
|
||||
}
|
||||
|
||||
private List<Parameter> buildDefaultParameters() {
|
||||
List<Parameter> defaultParameters = Lists.newArrayList();
|
||||
Collection<ParameterConfig> configurableParameters =
|
||||
ContextUtils.getBeansOfType(ParameterConfig.class).values();
|
||||
for (ParameterConfig configParameters : configurableParameters) {
|
||||
parameters.addAll(configParameters.getSysParameters());
|
||||
defaultParameters.addAll(configParameters.getSysParameters());
|
||||
}
|
||||
return defaultParameters;
|
||||
}
|
||||
|
||||
public List<Parameter> getParameters() {
|
||||
List<Parameter> defaultParameters = buildDefaultParameters();
|
||||
if (CollectionUtils.isEmpty(parameters)) {
|
||||
return defaultParameters;
|
||||
}
|
||||
Map<String, String> 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -17,14 +17,14 @@ public class SystemConfigController {
|
||||
private SystemConfigService sysConfigService;
|
||||
|
||||
@PostMapping
|
||||
public Boolean save(@RequestBody SystemConfig sysParameter) {
|
||||
sysConfigService.save(sysParameter);
|
||||
public Boolean save(@RequestBody SystemConfig systemConfig) {
|
||||
sysConfigService.save(systemConfig);
|
||||
return true;
|
||||
}
|
||||
|
||||
@GetMapping
|
||||
public SystemConfig get() {
|
||||
return sysConfigService.getSysParameter();
|
||||
return sysConfigService.getSystemConfig();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
package com.tencent.supersonic.common.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.tencent.supersonic.common.persistence.dataobject.SysParameterDO;
|
||||
import com.tencent.supersonic.common.persistence.dataobject.SystemConfigDO;
|
||||
import com.tencent.supersonic.common.pojo.SystemConfig;
|
||||
|
||||
public interface SystemConfigService extends IService<SysParameterDO> {
|
||||
public interface SystemConfigService extends IService<SystemConfigDO> {
|
||||
|
||||
SystemConfig getSysParameter();
|
||||
SystemConfig getSystemConfig();
|
||||
|
||||
void save(SystemConfig sysConfig);
|
||||
void save(SystemConfig systemConfig);
|
||||
|
||||
}
|
||||
|
||||
@@ -3,52 +3,52 @@ package com.tencent.supersonic.common.service.impl;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.tencent.supersonic.common.persistence.dataobject.SysParameterDO;
|
||||
import com.tencent.supersonic.common.persistence.mapper.SysParameterMapper;
|
||||
import com.tencent.supersonic.common.persistence.dataobject.SystemConfigDO;
|
||||
import com.tencent.supersonic.common.persistence.mapper.SystemConfigMapper;
|
||||
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 java.util.List;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class SystemConfigServiceImpl
|
||||
extends ServiceImpl<SysParameterMapper, SysParameterDO> implements SystemConfigService {
|
||||
extends ServiceImpl<SystemConfigMapper, SystemConfigDO> implements SystemConfigService {
|
||||
|
||||
@Override
|
||||
public SystemConfig getSysParameter() {
|
||||
List<SysParameterDO> list = list();
|
||||
public SystemConfig getSystemConfig() {
|
||||
List<SystemConfigDO> list = list();
|
||||
if (CollectionUtils.isEmpty(list)) {
|
||||
SystemConfig sysParameter = new SystemConfig();
|
||||
sysParameter.setId(1);
|
||||
sysParameter.init();
|
||||
save(sysParameter);
|
||||
return sysParameter;
|
||||
SystemConfig systemConfig = new SystemConfig();
|
||||
systemConfig.setId(1);
|
||||
systemConfig.init();
|
||||
save(systemConfig);
|
||||
return systemConfig;
|
||||
}
|
||||
return convert(list.iterator().next());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void save(SystemConfig sysConfig) {
|
||||
SysParameterDO sysParameterDO = convert(sysConfig);
|
||||
saveOrUpdate(sysParameterDO);
|
||||
SystemConfigDO systemConfigDO = convert(sysConfig);
|
||||
saveOrUpdate(systemConfigDO);
|
||||
}
|
||||
|
||||
private SystemConfig convert(SysParameterDO sysParameterDO) {
|
||||
private SystemConfig convert(SystemConfigDO systemConfigDO) {
|
||||
SystemConfig sysParameter = new SystemConfig();
|
||||
sysParameter.setId(sysParameterDO.getId());
|
||||
List<Parameter> parameters = JsonUtil.toObject(sysParameterDO.getParameters(),
|
||||
sysParameter.setId(systemConfigDO.getId());
|
||||
List<Parameter> parameters = JsonUtil.toObject(systemConfigDO.getParameters(),
|
||||
new TypeReference<List<Parameter>>() {
|
||||
});
|
||||
sysParameter.setParameters(parameters);
|
||||
sysParameter.setAdminList(sysParameterDO.getAdmin());
|
||||
sysParameter.setAdminList(systemConfigDO.getAdmin());
|
||||
return sysParameter;
|
||||
}
|
||||
|
||||
private SysParameterDO convert(SystemConfig sysParameter) {
|
||||
SysParameterDO sysParameterDO = new SysParameterDO();
|
||||
private SystemConfigDO convert(SystemConfig sysParameter) {
|
||||
SystemConfigDO sysParameterDO = new SystemConfigDO();
|
||||
sysParameterDO.setId(sysParameter.getId());
|
||||
sysParameterDO.setParameters(JSONObject.toJSONString(sysParameter.getParameters()));
|
||||
sysParameterDO.setAdmin(sysParameter.getAdmin());
|
||||
|
||||
@@ -36,8 +36,8 @@ public class MapperConfig extends ParameterConfig {
|
||||
|
||||
public static final Parameter MAPPER_DIMENSION_VALUE_SIZE =
|
||||
new Parameter("s2.mapper.value.size", "1",
|
||||
"指标名、维度名最小文本相似度阈值",
|
||||
"指标名、维度名相似度阈值在动态调整中的最低值",
|
||||
"一次探测返回维度值结果个数",
|
||||
"在每次探测后, 将前后缀匹配的结果合并, 并根据相似度阈值过滤后的维度值结果个数",
|
||||
"number", "Mapper相关配置");
|
||||
|
||||
public static final Parameter MAPPER_VALUE_THRESHOLD =
|
||||
|
||||
@@ -31,14 +31,14 @@ public class ParserConfig extends ParameterConfig {
|
||||
"number", "Parser相关配置");
|
||||
|
||||
public static final Parameter PARSER_TEXT_LENGTH_THRESHOLD_SHORT =
|
||||
new Parameter("s2.parser.text.threshold", "0.5",
|
||||
new Parameter("s2.parser.text.threshold.short", "0.5",
|
||||
"短文本匹配阈值",
|
||||
"由于请求大模型耗时较长, 因此如果有规则类型的Query得分达到阈值,则跳过大模型的调用,"
|
||||
+ "\n如果是短文本, 若query得分/文本长度>该阈值, 则跳过当前parser",
|
||||
"number", "Parser相关配置");
|
||||
|
||||
public static final Parameter PARSER_TEXT_LENGTH_THRESHOLD_LONG =
|
||||
new Parameter("s2.parser.text.threshold", "0.8",
|
||||
new Parameter("s2.parser.text.threshold.long", "0.8",
|
||||
"长文本匹配阈值", "如果是长文本, 若query得分/文本长度>该阈值, 则跳过当前parser",
|
||||
"number", "Parser相关配置");
|
||||
|
||||
|
||||
@@ -313,4 +313,7 @@ CREATE TABLE IF NOT EXISTS `s2_term` (
|
||||
alter table s2_agent add column `llm_config` varchar(2000) COLLATE utf8_unicode_ci DEFAULT NULL;
|
||||
alter table s2_agent add column `multi_turn_config` varchar(2000) COLLATE utf8_unicode_ci DEFAULT NULL;
|
||||
|
||||
alter table s2_model add column `ext` varchar(1000) DEFAULT NULL;
|
||||
alter table s2_model add column `ext` varchar(1000) DEFAULT NULL;
|
||||
|
||||
--20240601
|
||||
alter table s2_sys_parameter rename to s2_system_config;
|
||||
@@ -517,7 +517,7 @@ CREATE TABLE IF NOT EXISTS `company_brand_revenue` (
|
||||
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS s2_sys_parameter
|
||||
CREATE TABLE IF NOT EXISTS s2_system_config
|
||||
(
|
||||
id INT PRIMARY KEY AUTO_INCREMENT,
|
||||
admin varchar(500),
|
||||
|
||||
@@ -431,7 +431,7 @@ create table s2_user
|
||||
PRIMARY KEY (`id`)
|
||||
);
|
||||
|
||||
CREATE TABLE s2_sys_parameter
|
||||
CREATE TABLE s2_system_config
|
||||
(
|
||||
id int primary key AUTO_INCREMENT COMMENT '主键id',
|
||||
admin varchar(500) COMMENT '系统管理员',
|
||||
|
||||
@@ -517,7 +517,7 @@ CREATE TABLE IF NOT EXISTS `company_brand_revenue` (
|
||||
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS s2_sys_parameter
|
||||
CREATE TABLE IF NOT EXISTS s2_system_config
|
||||
(
|
||||
id INT PRIMARY KEY AUTO_INCREMENT,
|
||||
admin varchar(500),
|
||||
|
||||
@@ -15,7 +15,7 @@ import {
|
||||
} from 'antd';
|
||||
import React, { useState, useEffect } from 'react';
|
||||
import { getSystemConfig, saveSystemConfig } from '@/services/user';
|
||||
import { ProCard } from '@ant-design/pro-components';
|
||||
import { ProCard } from '@ant-design/pro-components';
|
||||
import SelectTMEPerson from '@/components/SelectTMEPerson';
|
||||
import { ConfigParametersItem, SystemConfig } from './types';
|
||||
import FormItemTitle from '@/components/FormHelper/FormItemTitle';
|
||||
@@ -59,10 +59,10 @@ const System: React.FC = () => {
|
||||
const setInitData = (admins: string[], systemConfigParameters: ConfigParametersItem[]) => {
|
||||
const fieldsValue = systemConfigParameters.reduce(
|
||||
(fields, item) => {
|
||||
const { name, value, defaultValue } = item;
|
||||
const { name, value } = item;
|
||||
return {
|
||||
...fields,
|
||||
[name]: value || defaultValue,
|
||||
[name]: value,
|
||||
};
|
||||
},
|
||||
{ admins },
|
||||
@@ -81,7 +81,6 @@ const System: React.FC = () => {
|
||||
return {
|
||||
...item,
|
||||
value: submitData[name],
|
||||
defaultValue: submitData[name],
|
||||
};
|
||||
}
|
||||
return item;
|
||||
|
||||
@@ -3,7 +3,6 @@ export type ConfigParametersItem = {
|
||||
name: string;
|
||||
comment: string;
|
||||
value: string;
|
||||
defaultValue?: string;
|
||||
candidateValues: string[];
|
||||
description: string;
|
||||
require?: boolean;
|
||||
|
||||
Reference in New Issue
Block a user