headless integrates knowledge (#722)

This commit is contained in:
daikon
2024-02-05 20:30:57 +08:00
committed by GitHub
parent 74d0ec2b23
commit 9600456bae
174 changed files with 1908 additions and 1817 deletions

View File

@@ -0,0 +1,20 @@
package com.tencent.supersonic.headless.api.pojo;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* 导入字典的可选配置
*/
@Data
public class ItemValueConfig {
private Long metricId;
private List<String> blackList = new ArrayList<>();
private List<String> whiteList = new ArrayList<>();
private List<String> ruleList = new ArrayList<>();
private Long limit;
}

View File

@@ -0,0 +1,19 @@
package com.tencent.supersonic.headless.api.pojo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class RelatedSchemaElement {
private Long dimensionId;
private boolean isNecessary;
}

View File

@@ -0,0 +1,58 @@
package com.tencent.supersonic.headless.api.pojo;
import com.google.common.base.Objects;
import com.google.common.collect.Lists;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
@Data
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class SchemaElement implements Serializable {
private Long view;
private Long id;
private String name;
private String bizName;
private Long useCnt;
private SchemaElementType type;
private List<String> alias;
private List<SchemaValueMap> schemaValueMaps;
private List<RelatedSchemaElement> relatedSchemaElements;
private String defaultAgg;
private double order;
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
SchemaElement schemaElement = (SchemaElement) o;
return Objects.equal(view, schemaElement.view) && Objects.equal(id,
schemaElement.id) && Objects.equal(name, schemaElement.name)
&& Objects.equal(bizName, schemaElement.bizName)
&& Objects.equal(type, schemaElement.type);
}
@Override
public int hashCode() {
return Objects.hashCode(view, id, name, bizName, type);
}
public List<String> getModelNames() {
return Lists.newArrayList(name);
}
}

View File

@@ -0,0 +1,12 @@
package com.tencent.supersonic.headless.api.pojo;
public enum SchemaElementType {
VIEW,
METRIC,
DIMENSION,
VALUE,
ENTITY,
TAG,
ID,
DATE
}

View File

@@ -0,0 +1,24 @@
package com.tencent.supersonic.headless.api.pojo;
import java.util.ArrayList;
import java.util.List;
import lombok.Data;
@Data
public class SchemaValueMap {
/**
* dimension value in db
*/
private String techName;
/**
* dimension value for result show
*/
private String bizName;
/**
* dimension value for user query
*/
private List<String> alias = new ArrayList<>();
}

View File

@@ -0,0 +1,18 @@
package com.tencent.supersonic.headless.api.pojo.request;
import com.tencent.supersonic.common.pojo.enums.StatusEnum;
import com.tencent.supersonic.common.pojo.enums.TypeEnums;
import lombok.Builder;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
@Builder
public class DictItemFilter {
private Long id;
private TypeEnums type;
private Long itemId;
@NotNull
private StatusEnum status;
}

View File

@@ -0,0 +1,27 @@
package com.tencent.supersonic.headless.api.pojo.request;
import com.tencent.supersonic.common.pojo.enums.StatusEnum;
import com.tencent.supersonic.common.pojo.enums.TypeEnums;
import com.tencent.supersonic.headless.api.pojo.ItemValueConfig;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
public class DictItemReq {
private Long id;
@NotNull
private TypeEnums type;
@NotNull
private Long itemId;
private ItemValueConfig config;
/**
* ONLINE - 正常更新
* OFFLINE - 停止更新,但字典文件不删除
* DELETED - 停止更新,且删除字典文件
*/
@NotNull
private StatusEnum status;
}

View File

@@ -0,0 +1,16 @@
package com.tencent.supersonic.headless.api.pojo.request;
import com.tencent.supersonic.common.pojo.enums.TypeEnums;
import lombok.Builder;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
@Builder
public class DictSingleTaskReq {
@NotNull
private TypeEnums type;
@NotNull
private Long itemId;
}

View File

@@ -0,0 +1,20 @@
package com.tencent.supersonic.headless.api.pojo.request;
import javax.validation.constraints.NotNull;
import lombok.Data;
@Data
public class DimensionValueReq {
private Integer agentId;
@NotNull
private Long elementID;
private Long modelId;
private String bizName;
@NotNull
private String value;
}

View File

@@ -0,0 +1,41 @@
package com.tencent.supersonic.headless.api.pojo.response;
import com.tencent.supersonic.common.pojo.enums.StatusEnum;
import com.tencent.supersonic.common.pojo.enums.TypeEnums;
import com.tencent.supersonic.headless.api.pojo.ItemValueConfig;
import lombok.Data;
import javax.validation.constraints.NotNull;
import static com.tencent.supersonic.common.pojo.Constants.UNDERLINE;
@Data
public class DictItemResp {
private Long id;
private Long modelId;
private String bizName;
@NotNull
private TypeEnums type;
@NotNull
private Long itemId;
private ItemValueConfig config;
/**
* ONLINE - 正常更新
* OFFLINE - 停止更新,但字典文件不删除
* DELETED - 停止更新,且删除字典文件
*/
@NotNull
private StatusEnum status;
public String getNature() {
return UNDERLINE + modelId + UNDERLINE + itemId;
}
public String fetchDictFileName() {
return String.format("dic_value_%d_%s_%s", modelId, type.name(), itemId);
}
}

View File

@@ -0,0 +1,20 @@
package com.tencent.supersonic.headless.api.pojo.response;
import lombok.Data;
import lombok.ToString;
import java.util.Date;
@Data
@ToString
public class DictTaskResp extends DictItemResp {
private String name;
private String description;
private String taskStatus;
private Date createdAt;
private String createdBy;
private Long elapsedMs;
}

View File

@@ -0,0 +1,50 @@
package com.tencent.supersonic.headless.api.pojo.response;
import com.hankcs.hanlp.corpus.tag.Nature;
import com.hankcs.hanlp.seg.common.Term;
import lombok.Data;
@Data
public class S2Term {
public String word;
public Nature nature;
public int offset;
public int frequency = 0;
public S2Term() {
}
public S2Term(String word, Nature nature) {
this.word = word;
this.nature = nature;
}
public S2Term(String word, Nature nature, int offset) {
this.word = word;
this.nature = nature;
this.offset = offset;
}
public S2Term(String word, Nature nature, int offset, int frequency) {
this.word = word;
this.nature = nature;
this.offset = offset;
this.frequency = frequency;
}
public int length() {
return this.word.length();
}
public boolean equals(Object obj) {
if (obj instanceof Term) {
Term term = (Term) obj;
if (this.nature == term.nature && this.word.equals(term.word)) {
return true;
}
}
return super.equals(obj);
}
}