(feature) (common) add sys parameter setting (#377)

Co-authored-by: jolunoluo
This commit is contained in:
LXW
2023-11-13 22:07:18 +08:00
committed by GitHub
parent 805abeb261
commit 1ad2c5402b
22 changed files with 266 additions and 103 deletions

View File

@@ -115,8 +115,25 @@
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>${pagehelper.version}</version>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>${pagehelper.spring.version}</version>
<exclusions>
<exclusion>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</exclusion>
<exclusion>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis.plus.version}</version>
</dependency>
<dependency>

View File

@@ -0,0 +1,18 @@
package com.tencent.supersonic.common.persistence.dataobject;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("s2_sys_parameter")
public class SysParameterDO {
@TableId(type = IdType.AUTO)
private Integer id;
private String parameters;
private String admin;
}

View File

@@ -0,0 +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 org.apache.ibatis.annotations.Mapper;
@Mapper
public interface SysParameterMapper extends BaseMapper<SysParameterDO> {
}

View File

@@ -0,0 +1,16 @@
package com.tencent.supersonic.common.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Parameter {
private String name;
private String value;
private String comment;
private String dataType;
}

View File

@@ -0,0 +1,49 @@
package com.tencent.supersonic.common.pojo;
import com.google.common.collect.Lists;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.CollectionUtils;
import java.util.Arrays;
import java.util.List;
@Data
public class SysParameter {
private Integer id;
private List<String> admins;
private List<Parameter> parameters;
public String getAdmin() {
if (CollectionUtils.isEmpty(admins)) {
return "";
}
return StringUtils.join(admins, ",");
}
public void setAdmin(String admin) {
if (StringUtils.isNotBlank(admin)) {
admins = Arrays.asList(admin.split(","));
} else {
admins = Lists.newArrayList();
}
}
public void init() {
parameters = Lists.newArrayList();
admins = Lists.newArrayList("admin");
parameters.add(new Parameter("one.detection.size", "8", "一次探测个数", "number"));
parameters.add(new Parameter("one.detection.max.size", "20", "阈值", "number"));
parameters.add(new Parameter("metric.dimension.min.threshold", "0.3", "指标名、维度名最小文本相似度", "number"));
parameters.add(new Parameter("metric.dimension.threshold", "0.3", "指标名、维度名文本相似度", "number"));
parameters.add(new Parameter("dimension.value.threshold", "0.5", "维度值最小文本相似度", "number"));
parameters.add(new Parameter("embedding.mapper.word.min", "0.3", "用于向量召回最小的文本长度", "number"));
parameters.add(new Parameter("embedding.mapper.word.max", "0.3", "用于向量召回最大的文本长度", "number"));
parameters.add(new Parameter("embedding.mapper.batch", "0.3", "批量向量召回文本请求个数", "number"));
parameters.add(new Parameter("embedding.mapper.number", "0.3", "批量向量召回文本返回结果个数", "number"));
parameters.add(new Parameter("embedding.mapper.distance.threshold", "0.3", "Mapper阶段向量召回相似度阈值", "number"));
}
}

View File

@@ -0,0 +1,31 @@
package com.tencent.supersonic.common.rest;
import com.tencent.supersonic.common.pojo.SysParameter;
import com.tencent.supersonic.common.service.SysParameterService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping({"/api/semantic/parameter"})
public class SysParameterController {
@Autowired
private SysParameterService sysParameterService;
@PostMapping
public Boolean save(@RequestBody SysParameter sysParameter) {
sysParameterService.save(sysParameter);
return true;
}
@GetMapping
SysParameter get() {
return sysParameterService.getSysParameter();
}
}

View File

@@ -0,0 +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.pojo.SysParameter;
public interface SysParameterService extends IService<SysParameterDO> {
SysParameter getSysParameter();
void save(SysParameter sysParameter);
}