mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-11 12:07:42 +00:00
[improvement][launcher]Refactor built-in demos.
This commit is contained in:
@@ -39,7 +39,8 @@ public class MetricRecommendProcessor implements ExecuteResultProcessor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void fillSimilarMetric(SemanticParseInfo parseInfo) {
|
private void fillSimilarMetric(SemanticParseInfo parseInfo) {
|
||||||
if (!parseInfo.getQueryType().equals(QueryType.AGGREGATE)
|
if (Objects.isNull(parseInfo.getQueryType())
|
||||||
|
|| !parseInfo.getQueryType().equals(QueryType.AGGREGATE)
|
||||||
|| parseInfo.getMetrics().size() > METRIC_RECOMMEND_SIZE
|
|| parseInfo.getMetrics().size() > METRIC_RECOMMEND_SIZE
|
||||||
|| CollectionUtils.isEmpty(parseInfo.getMetrics())) {
|
|| CollectionUtils.isEmpty(parseInfo.getMetrics())) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -62,7 +62,9 @@ services:
|
|||||||
sleep 15 &&
|
sleep 15 &&
|
||||||
if ! mysql -h supersonic_mysql -usupersonic_user -psupersonic_password -e 'use supersonic_db; show tables;' | grep -q 's2_database'; then
|
if ! mysql -h supersonic_mysql -usupersonic_user -psupersonic_password -e 'use supersonic_db; show tables;' | grep -q 's2_database'; then
|
||||||
mysql -h supersonic_mysql -usupersonic_user -psupersonic_password supersonic_db < /usr/src/app/supersonic-standalone-${SUPERSONIC_VERSION:-latest}/conf/db/schema-mysql.sql &&
|
mysql -h supersonic_mysql -usupersonic_user -psupersonic_password supersonic_db < /usr/src/app/supersonic-standalone-${SUPERSONIC_VERSION:-latest}/conf/db/schema-mysql.sql &&
|
||||||
mysql -h supersonic_mysql -usupersonic_user -psupersonic_password supersonic_db < /usr/src/app/supersonic-standalone-${SUPERSONIC_VERSION:-latest}/conf/db/data-mysql.sql
|
mysql -h supersonic_mysql -usupersonic_user -psupersonic_password supersonic_db < /usr/src/app/supersonic-standalone-${SUPERSONIC_VERSION:-latest}/conf/db/schema-mysql-demo.sql &&
|
||||||
|
mysql -h supersonic_mysql -usupersonic_user -psupersonic_password supersonic_db < /usr/src/app/supersonic-standalone-${SUPERSONIC_VERSION:-latest}/conf/db/data-mysql.sql &&
|
||||||
|
mysql -h supersonic_mysql -usupersonic_user -psupersonic_password supersonic_db < /usr/src/app/supersonic-standalone-${SUPERSONIC_VERSION:-latest}/conf/db/data-mysql-demo.sql
|
||||||
else
|
else
|
||||||
echo 'Database already initialized.'
|
echo 'Database already initialized.'
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,296 +0,0 @@
|
|||||||
package com.tencent.supersonic.demo;
|
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
|
||||||
import com.tencent.supersonic.common.pojo.JoinCondition;
|
|
||||||
import com.tencent.supersonic.common.pojo.ModelRela;
|
|
||||||
import com.tencent.supersonic.common.pojo.enums.AggOperatorEnum;
|
|
||||||
import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum;
|
|
||||||
import com.tencent.supersonic.common.pojo.enums.TimeMode;
|
|
||||||
import com.tencent.supersonic.common.pojo.enums.TypeEnums;
|
|
||||||
import com.tencent.supersonic.headless.api.pojo.*;
|
|
||||||
import com.tencent.supersonic.headless.api.pojo.DetailTypeDefaultConfig;
|
|
||||||
import com.tencent.supersonic.headless.api.pojo.enums.DimensionType;
|
|
||||||
import com.tencent.supersonic.headless.api.pojo.enums.IdentifyType;
|
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.DataSetReq;
|
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.DomainReq;
|
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.ModelReq;
|
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.DatabaseResp;
|
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.DomainResp;
|
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.ModelResp;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
@Slf4j
|
|
||||||
public class CspiderDemo extends S2BaseDemo {
|
|
||||||
|
|
||||||
public void doRun() {
|
|
||||||
try {
|
|
||||||
DomainResp s2Domain = addDomain();
|
|
||||||
ModelResp genreModelResp = addModel_1(s2Domain, demoDatabase);
|
|
||||||
ModelResp artistModelResp = addModel_2(s2Domain, demoDatabase);
|
|
||||||
ModelResp filesModelResp = addModel_3(s2Domain, demoDatabase);
|
|
||||||
ModelResp songModelResp = addModel_4(s2Domain, demoDatabase);
|
|
||||||
addDataSet_1(s2Domain);
|
|
||||||
addModelRela_1(s2Domain, genreModelResp, artistModelResp);
|
|
||||||
addModelRela_2(s2Domain, filesModelResp, artistModelResp);
|
|
||||||
addModelRela_3(s2Domain, songModelResp, artistModelResp);
|
|
||||||
addModelRela_4(s2Domain, songModelResp, genreModelResp);
|
|
||||||
addModelRela_5(s2Domain, songModelResp, filesModelResp);
|
|
||||||
// batchPushlishMetric();
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.error("Failed to add bench mark demo data", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
boolean checkNeedToRun() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DomainResp addDomain() {
|
|
||||||
DomainReq domainReq = new DomainReq();
|
|
||||||
domainReq.setName("测评数据_音乐");
|
|
||||||
domainReq.setBizName("music");
|
|
||||||
domainReq.setParentId(0L);
|
|
||||||
domainReq.setViewers(Arrays.asList("admin", "tom", "jack"));
|
|
||||||
domainReq.setViewOrgs(Collections.singletonList("1"));
|
|
||||||
domainReq.setAdmins(Collections.singletonList("admin"));
|
|
||||||
domainReq.setAdminOrgs(Collections.emptyList());
|
|
||||||
return domainService.createDomain(domainReq, defaultUser);
|
|
||||||
}
|
|
||||||
|
|
||||||
public ModelResp addModel_1(DomainResp s2Domain, DatabaseResp s2Database) throws Exception {
|
|
||||||
ModelReq modelReq = new ModelReq();
|
|
||||||
modelReq.setDomainId(s2Domain.getId());
|
|
||||||
modelReq.setName("艺术类型");
|
|
||||||
modelReq.setBizName("genre");
|
|
||||||
modelReq.setDescription("艺术类型");
|
|
||||||
modelReq.setDatabaseId(s2Database.getId());
|
|
||||||
modelReq.setViewers(Arrays.asList("admin", "tom", "jack"));
|
|
||||||
modelReq.setViewOrgs(Collections.singletonList("1"));
|
|
||||||
modelReq.setAdmins(Collections.singletonList("admin"));
|
|
||||||
modelReq.setAdminOrgs(Collections.emptyList());
|
|
||||||
ModelDetail modelDetail = new ModelDetail();
|
|
||||||
List<Dim> dimensions = new ArrayList<>();
|
|
||||||
Dim dimension1 = new Dim("", "imp_date", DimensionType.partition_time.name(), 0);
|
|
||||||
dimension1.setTypeParams(new DimensionTimeTypeParams());
|
|
||||||
dimensions.add(dimension1);
|
|
||||||
dimensions.add(new Dim("活跃区域", "most_popular_in", DimensionType.categorical.name(), 1));
|
|
||||||
dimensions.add(new Dim("音乐类型名称", "g_name", DimensionType.categorical.name(), 1));
|
|
||||||
modelDetail.setDimensions(dimensions);
|
|
||||||
|
|
||||||
List<Identify> identifiers = new ArrayList<>();
|
|
||||||
identifiers.add(new Identify("音乐类型名称", IdentifyType.primary.name(), "g_name"));
|
|
||||||
modelDetail.setIdentifiers(identifiers);
|
|
||||||
|
|
||||||
List<Measure> measures = new ArrayList<>();
|
|
||||||
Measure measure = new Measure("评分", "rating", AggOperatorEnum.SUM.name(), 0);
|
|
||||||
measures.add(measure);
|
|
||||||
modelDetail.setMeasures(measures);
|
|
||||||
|
|
||||||
modelDetail.setQueryType("sql_query");
|
|
||||||
modelDetail.setSqlQuery("SELECT g_name, rating, most_popular_in FROM genre");
|
|
||||||
modelReq.setModelDetail(modelDetail);
|
|
||||||
return modelService.createModel(modelReq, defaultUser);
|
|
||||||
}
|
|
||||||
|
|
||||||
public ModelResp addModel_2(DomainResp s2Domain, DatabaseResp s2Database) throws Exception {
|
|
||||||
ModelReq modelReq = new ModelReq();
|
|
||||||
modelReq.setDomainId(s2Domain.getId());
|
|
||||||
modelReq.setName("艺术家");
|
|
||||||
modelReq.setBizName("artist");
|
|
||||||
modelReq.setDescription("艺术家");
|
|
||||||
modelReq.setDatabaseId(s2Database.getId());
|
|
||||||
ModelDetail modelDetail = new ModelDetail();
|
|
||||||
List<Dim> dimensions = new ArrayList<>();
|
|
||||||
dimensions.add(new Dim("艺术家名称", "artist_name", DimensionType.categorical.name(), 1));
|
|
||||||
dimensions.add(new Dim("国籍", "citizenship", DimensionType.categorical.name(), 1));
|
|
||||||
dimensions.add(new Dim("性别", "gender", DimensionType.categorical.name(), 1));
|
|
||||||
modelDetail.setDimensions(dimensions);
|
|
||||||
|
|
||||||
List<Identify> identifiers = new ArrayList<>();
|
|
||||||
identifiers.add(new Identify("艺术家名称", IdentifyType.primary.name(), "artist_name"));
|
|
||||||
identifiers.add(new Identify("音乐类型名称", IdentifyType.foreign.name(), "g_name"));
|
|
||||||
modelDetail.setIdentifiers(identifiers);
|
|
||||||
|
|
||||||
modelDetail.setMeasures(Collections.emptyList());
|
|
||||||
|
|
||||||
modelDetail.setQueryType("sql_query");
|
|
||||||
modelDetail.setSqlQuery("SELECT artist_name, citizenship, gender, g_name FROM artist");
|
|
||||||
modelReq.setModelDetail(modelDetail);
|
|
||||||
return modelService.createModel(modelReq, defaultUser);
|
|
||||||
}
|
|
||||||
|
|
||||||
public ModelResp addModel_3(DomainResp s2Domain, DatabaseResp s2Database) throws Exception {
|
|
||||||
ModelReq modelReq = new ModelReq();
|
|
||||||
modelReq.setDomainId(s2Domain.getId());
|
|
||||||
modelReq.setName("文件");
|
|
||||||
modelReq.setBizName("files");
|
|
||||||
modelReq.setDescription("文件");
|
|
||||||
modelReq.setDatabaseId(s2Database.getId());
|
|
||||||
ModelDetail modelDetail = new ModelDetail();
|
|
||||||
List<Dim> dimensions = new ArrayList<>();
|
|
||||||
dimensions.add(new Dim("持续时间", "duration", DimensionType.categorical.name(), 1));
|
|
||||||
dimensions.add(new Dim("文件格式", "formats", DimensionType.categorical.name(), 1));
|
|
||||||
// dimensions.add(new Dim("艺术家名称", "artist_name", DimensionType.categorical.name(), 1));
|
|
||||||
modelDetail.setDimensions(dimensions);
|
|
||||||
|
|
||||||
List<Identify> identifiers = new ArrayList<>();
|
|
||||||
identifiers.add(new Identify("歌曲ID", IdentifyType.primary.name(), "f_id"));
|
|
||||||
identifiers.add(new Identify("艺术家名称", IdentifyType.foreign.name(), "artist_name"));
|
|
||||||
modelDetail.setIdentifiers(identifiers);
|
|
||||||
|
|
||||||
modelDetail.setMeasures(Collections.emptyList());
|
|
||||||
|
|
||||||
modelDetail.setQueryType("sql_query");
|
|
||||||
modelDetail
|
|
||||||
.setSqlQuery("SELECT f_id, artist_name, file_size, duration, formats FROM files");
|
|
||||||
modelReq.setModelDetail(modelDetail);
|
|
||||||
return modelService.createModel(modelReq, defaultUser);
|
|
||||||
}
|
|
||||||
|
|
||||||
public ModelResp addModel_4(DomainResp s2Domain, DatabaseResp s2Database) throws Exception {
|
|
||||||
ModelReq modelReq = new ModelReq();
|
|
||||||
modelReq.setDomainId(s2Domain.getId());
|
|
||||||
modelReq.setName("歌曲");
|
|
||||||
modelReq.setBizName("song");
|
|
||||||
modelReq.setDescription("歌曲");
|
|
||||||
modelReq.setDatabaseId(s2Database.getId());
|
|
||||||
ModelDetail modelDetail = new ModelDetail();
|
|
||||||
List<Dim> dimensions = new ArrayList<>();
|
|
||||||
Dim dimension1 = new Dim("", "imp_date", DimensionType.partition_time.name(), 0);
|
|
||||||
dimension1.setTypeParams(new DimensionTimeTypeParams());
|
|
||||||
dimensions.add(dimension1);
|
|
||||||
dimensions.add(new Dim("歌曲名称", "song_name", DimensionType.categorical.name(), 1));
|
|
||||||
dimensions.add(new Dim("国家", "country", DimensionType.categorical.name(), 1));
|
|
||||||
dimensions.add(new Dim("语种", "languages", DimensionType.categorical.name(), 1));
|
|
||||||
dimensions.add(new Dim("发行时间", "releasedate", DimensionType.categorical.name(), 1));
|
|
||||||
modelDetail.setDimensions(dimensions);
|
|
||||||
|
|
||||||
List<Identify> identifiers = new ArrayList<>();
|
|
||||||
identifiers.add(new Identify("歌曲名称", IdentifyType.primary.name(), "song_name"));
|
|
||||||
identifiers.add(new Identify("歌曲ID", IdentifyType.foreign.name(), "f_id"));
|
|
||||||
identifiers.add(new Identify("艺术家名称", IdentifyType.foreign.name(), "artist_name"));
|
|
||||||
// identifiers.add(new Identify("艺术家名称", IdentifyType.foreign.name(), "artist_name"));
|
|
||||||
|
|
||||||
modelDetail.setIdentifiers(identifiers);
|
|
||||||
|
|
||||||
List<Measure> measures = new ArrayList<>();
|
|
||||||
measures.add(new Measure("分辨率", "resolution", AggOperatorEnum.SUM.name(), 1));
|
|
||||||
measures.add(new Measure("评分", "rating", AggOperatorEnum.SUM.name(), 1));
|
|
||||||
modelDetail.setMeasures(measures);
|
|
||||||
|
|
||||||
modelDetail.setQueryType("sql_query");
|
|
||||||
modelDetail.setSqlQuery("SELECT imp_date, song_name, artist_name, country, f_id, g_name, "
|
|
||||||
+ " rating, languages, releasedate, resolution FROM song");
|
|
||||||
modelReq.setModelDetail(modelDetail);
|
|
||||||
return modelService.createModel(modelReq, defaultUser);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void addDataSet_1(DomainResp s2Domain) {
|
|
||||||
DataSetReq dataSetReq = new DataSetReq();
|
|
||||||
dataSetReq.setName("cspider");
|
|
||||||
dataSetReq.setBizName("singer");
|
|
||||||
dataSetReq.setDomainId(s2Domain.getId());
|
|
||||||
dataSetReq.setDescription("包含cspider数据集相关标签和指标信息");
|
|
||||||
dataSetReq.setAdmins(Lists.newArrayList("admin"));
|
|
||||||
List<DataSetModelConfig> viewModelConfigs = getDataSetModelConfigs(s2Domain.getId());
|
|
||||||
DataSetDetail dsDetail = new DataSetDetail();
|
|
||||||
dsDetail.setDataSetModelConfigs(viewModelConfigs);
|
|
||||||
dataSetReq.setDataSetDetail(dsDetail);
|
|
||||||
dataSetReq.setTypeEnum(TypeEnums.DATASET);
|
|
||||||
QueryConfig queryConfig = new QueryConfig();
|
|
||||||
DetailTypeDefaultConfig detailTypeDefaultConfig = new DetailTypeDefaultConfig();
|
|
||||||
TimeDefaultConfig tagTimeDefaultConfig = new TimeDefaultConfig();
|
|
||||||
tagTimeDefaultConfig.setTimeMode(TimeMode.LAST);
|
|
||||||
tagTimeDefaultConfig.setUnit(7);
|
|
||||||
detailTypeDefaultConfig.setTimeDefaultConfig(tagTimeDefaultConfig);
|
|
||||||
AggregateTypeDefaultConfig aggregateTypeDefaultConfig = new AggregateTypeDefaultConfig();
|
|
||||||
TimeDefaultConfig timeDefaultConfig = new TimeDefaultConfig();
|
|
||||||
timeDefaultConfig.setTimeMode(TimeMode.RECENT);
|
|
||||||
timeDefaultConfig.setUnit(7);
|
|
||||||
aggregateTypeDefaultConfig.setTimeDefaultConfig(timeDefaultConfig);
|
|
||||||
queryConfig.setDetailTypeDefaultConfig(detailTypeDefaultConfig);
|
|
||||||
queryConfig.setAggregateTypeDefaultConfig(aggregateTypeDefaultConfig);
|
|
||||||
dataSetReq.setQueryConfig(queryConfig);
|
|
||||||
dataSetService.save(dataSetReq, defaultUser);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void addModelRela_1(DomainResp s2Domain, ModelResp genreModelResp,
|
|
||||||
ModelResp artistModelResp) {
|
|
||||||
List<JoinCondition> joinConditions = Lists.newArrayList();
|
|
||||||
joinConditions.add(new JoinCondition("g_name", "g_name", FilterOperatorEnum.EQUALS));
|
|
||||||
ModelRela modelRelaReq = new ModelRela();
|
|
||||||
modelRelaReq.setDomainId(s2Domain.getId());
|
|
||||||
modelRelaReq.setFromModelId(artistModelResp.getId());
|
|
||||||
modelRelaReq.setToModelId(genreModelResp.getId());
|
|
||||||
modelRelaReq.setJoinType("left join");
|
|
||||||
modelRelaReq.setJoinConditions(joinConditions);
|
|
||||||
modelRelaService.save(modelRelaReq, defaultUser);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void addModelRela_2(DomainResp s2Domain, ModelResp filesModelResp,
|
|
||||||
ModelResp artistModelResp) {
|
|
||||||
List<JoinCondition> joinConditions = Lists.newArrayList();
|
|
||||||
joinConditions
|
|
||||||
.add(new JoinCondition("artist_name", "artist_name", FilterOperatorEnum.EQUALS));
|
|
||||||
ModelRela modelRelaReq = new ModelRela();
|
|
||||||
modelRelaReq.setDomainId(s2Domain.getId());
|
|
||||||
modelRelaReq.setFromModelId(filesModelResp.getId());
|
|
||||||
modelRelaReq.setToModelId(artistModelResp.getId());
|
|
||||||
modelRelaReq.setJoinType("left join");
|
|
||||||
modelRelaReq.setJoinConditions(joinConditions);
|
|
||||||
modelRelaService.save(modelRelaReq, defaultUser);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void addModelRela_3(DomainResp s2Domain, ModelResp songModelResp,
|
|
||||||
ModelResp artistModelResp) {
|
|
||||||
List<JoinCondition> joinConditions = Lists.newArrayList();
|
|
||||||
joinConditions
|
|
||||||
.add(new JoinCondition("artist_name", "artist_name", FilterOperatorEnum.EQUALS));
|
|
||||||
ModelRela modelRelaReq = new ModelRela();
|
|
||||||
modelRelaReq.setDomainId(s2Domain.getId());
|
|
||||||
modelRelaReq.setFromModelId(songModelResp.getId());
|
|
||||||
modelRelaReq.setToModelId(artistModelResp.getId());
|
|
||||||
modelRelaReq.setJoinType("left join");
|
|
||||||
modelRelaReq.setJoinConditions(joinConditions);
|
|
||||||
modelRelaService.save(modelRelaReq, defaultUser);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void addModelRela_4(DomainResp s2Domain, ModelResp songModelResp,
|
|
||||||
ModelResp genreModelResp) {
|
|
||||||
List<JoinCondition> joinConditions = Lists.newArrayList();
|
|
||||||
joinConditions.add(new JoinCondition("g_name", "g_name", FilterOperatorEnum.EQUALS));
|
|
||||||
ModelRela modelRelaReq = new ModelRela();
|
|
||||||
modelRelaReq.setDomainId(s2Domain.getId());
|
|
||||||
modelRelaReq.setFromModelId(songModelResp.getId());
|
|
||||||
modelRelaReq.setToModelId(genreModelResp.getId());
|
|
||||||
modelRelaReq.setJoinType("left join");
|
|
||||||
modelRelaReq.setJoinConditions(joinConditions);
|
|
||||||
modelRelaService.save(modelRelaReq, defaultUser);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void addModelRela_5(DomainResp s2Domain, ModelResp songModelResp,
|
|
||||||
ModelResp filesModelResp) {
|
|
||||||
List<JoinCondition> joinConditions = Lists.newArrayList();
|
|
||||||
joinConditions.add(new JoinCondition("f_id", "f_id", FilterOperatorEnum.EQUALS));
|
|
||||||
ModelRela modelRelaReq = new ModelRela();
|
|
||||||
modelRelaReq.setDomainId(s2Domain.getId());
|
|
||||||
modelRelaReq.setFromModelId(songModelResp.getId());
|
|
||||||
modelRelaReq.setToModelId(filesModelResp.getId());
|
|
||||||
modelRelaReq.setJoinType("left join");
|
|
||||||
modelRelaReq.setJoinConditions(joinConditions);
|
|
||||||
modelRelaService.save(modelRelaReq, defaultUser);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void batchPushlishMetric() {
|
|
||||||
List<Long> ids = Lists.newArrayList(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L);
|
|
||||||
metricService.batchPublish(ids, defaultUser);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -8,6 +8,8 @@ import com.tencent.supersonic.chat.server.service.ChatQueryService;
|
|||||||
import com.tencent.supersonic.chat.server.service.PluginService;
|
import com.tencent.supersonic.chat.server.service.PluginService;
|
||||||
import com.tencent.supersonic.common.config.ChatModel;
|
import com.tencent.supersonic.common.config.ChatModel;
|
||||||
import com.tencent.supersonic.common.pojo.User;
|
import com.tencent.supersonic.common.pojo.User;
|
||||||
|
import com.tencent.supersonic.common.pojo.enums.StatusEnum;
|
||||||
|
import com.tencent.supersonic.common.pojo.enums.TypeEnums;
|
||||||
import com.tencent.supersonic.common.service.ChatModelService;
|
import com.tencent.supersonic.common.service.ChatModelService;
|
||||||
import com.tencent.supersonic.common.util.AESEncryptionUtil;
|
import com.tencent.supersonic.common.util.AESEncryptionUtil;
|
||||||
import com.tencent.supersonic.headless.api.pojo.DataSetModelConfig;
|
import com.tencent.supersonic.headless.api.pojo.DataSetModelConfig;
|
||||||
@@ -17,6 +19,8 @@ import com.tencent.supersonic.headless.api.pojo.RelateDimension;
|
|||||||
import com.tencent.supersonic.headless.api.pojo.enums.DataType;
|
import com.tencent.supersonic.headless.api.pojo.enums.DataType;
|
||||||
import com.tencent.supersonic.headless.api.pojo.enums.TagDefineType;
|
import com.tencent.supersonic.headless.api.pojo.enums.TagDefineType;
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.DatabaseReq;
|
import com.tencent.supersonic.headless.api.pojo.request.DatabaseReq;
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.request.DictItemReq;
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.request.DictSingleTaskReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.TagReq;
|
import com.tencent.supersonic.headless.api.pojo.request.TagReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.DatabaseResp;
|
import com.tencent.supersonic.headless.api.pojo.response.DatabaseResp;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.DimensionResp;
|
import com.tencent.supersonic.headless.api.pojo.response.DimensionResp;
|
||||||
@@ -198,4 +202,11 @@ public abstract class S2BaseDemo implements CommandLineRunner {
|
|||||||
protected void updateQueryScore(Integer queryId) {
|
protected void updateQueryScore(Integer queryId) {
|
||||||
chatManageService.updateFeedback(queryId, 5, "");
|
chatManageService.updateFeedback(queryId, 5, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void enableDimensionValue(DimensionResp dimension) {
|
||||||
|
dictConfService.addDictConf(DictItemReq.builder().type(TypeEnums.DIMENSION)
|
||||||
|
.itemId(dimension.getId()).status(StatusEnum.ONLINE).build(), defaultUser);
|
||||||
|
dictTaskService.addDictTask(DictSingleTaskReq.builder().itemId(dimension.getId())
|
||||||
|
.type(TypeEnums.DIMENSION).build(), defaultUser);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,52 +2,70 @@ package com.tencent.supersonic.demo;
|
|||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
import com.tencent.supersonic.chat.server.agent.Agent;
|
import com.tencent.supersonic.chat.server.agent.Agent;
|
||||||
import com.tencent.supersonic.chat.server.agent.AgentToolType;
|
import com.tencent.supersonic.chat.server.agent.AgentToolType;
|
||||||
import com.tencent.supersonic.chat.server.agent.DatasetTool;
|
import com.tencent.supersonic.chat.server.agent.DatasetTool;
|
||||||
import com.tencent.supersonic.chat.server.agent.ToolConfig;
|
import com.tencent.supersonic.chat.server.agent.ToolConfig;
|
||||||
|
import com.tencent.supersonic.common.pojo.ChatApp;
|
||||||
import com.tencent.supersonic.common.pojo.JoinCondition;
|
import com.tencent.supersonic.common.pojo.JoinCondition;
|
||||||
import com.tencent.supersonic.common.pojo.ModelRela;
|
import com.tencent.supersonic.common.pojo.ModelRela;
|
||||||
import com.tencent.supersonic.common.pojo.enums.AggOperatorEnum;
|
import com.tencent.supersonic.common.pojo.enums.AggOperatorEnum;
|
||||||
|
import com.tencent.supersonic.common.pojo.enums.AppModule;
|
||||||
import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum;
|
import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum;
|
||||||
import com.tencent.supersonic.common.pojo.enums.TimeMode;
|
import com.tencent.supersonic.common.pojo.enums.TimeMode;
|
||||||
import com.tencent.supersonic.common.pojo.enums.TypeEnums;
|
import com.tencent.supersonic.common.pojo.enums.TypeEnums;
|
||||||
import com.tencent.supersonic.common.util.JsonUtil;
|
import com.tencent.supersonic.common.util.ChatAppManager;
|
||||||
import com.tencent.supersonic.headless.api.pojo.*;
|
|
||||||
import com.tencent.supersonic.headless.api.pojo.AggregateTypeDefaultConfig;
|
import com.tencent.supersonic.headless.api.pojo.AggregateTypeDefaultConfig;
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.DataSetDetail;
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.DataSetModelConfig;
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.Dim;
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.DimensionTimeTypeParams;
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.Identify;
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.Measure;
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.ModelDetail;
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.QueryConfig;
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.TimeDefaultConfig;
|
||||||
import com.tencent.supersonic.headless.api.pojo.enums.DimensionType;
|
import com.tencent.supersonic.headless.api.pojo.enums.DimensionType;
|
||||||
import com.tencent.supersonic.headless.api.pojo.enums.IdentifyType;
|
import com.tencent.supersonic.headless.api.pojo.enums.IdentifyType;
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.DataSetReq;
|
import com.tencent.supersonic.headless.api.pojo.request.DataSetReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.DomainReq;
|
import com.tencent.supersonic.headless.api.pojo.request.DomainReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.MetricReq;
|
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.ModelReq;
|
import com.tencent.supersonic.headless.api.pojo.request.ModelReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.response.MetricResp;
|
import com.tencent.supersonic.headless.api.pojo.response.DataSetResp;
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.response.DatabaseResp;
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.response.DomainResp;
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.response.ModelResp;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.core.annotation.Order;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class DuSQLDemo extends S2BaseDemo {
|
@Order(2)
|
||||||
|
public class S2CompanyDemo extends S2BaseDemo {
|
||||||
|
|
||||||
public void doRun() {
|
public void doRun() {
|
||||||
try {
|
try {
|
||||||
addDomain();
|
DomainResp domain = addDomain();
|
||||||
addModel_1();
|
|
||||||
addModel_2();
|
ModelResp model_company = addModel_1(domain, demoDatabase);
|
||||||
addModel_3();
|
ModelResp model_brand = addModel_2(domain, demoDatabase);
|
||||||
addModel_4();
|
ModelResp model_company_revenue = addModel_3(domain, demoDatabase);
|
||||||
addDataSet_1();
|
ModelResp model_brand_revenue = addModel_4(domain, demoDatabase);
|
||||||
addModelRela_1();
|
|
||||||
addModelRela_2();
|
addModelRela_1(domain, model_company_revenue, model_company);
|
||||||
addModelRela_3();
|
addModelRela_2(domain, model_brand, model_company);
|
||||||
addModelRela_4();
|
addModelRela_3(domain, model_brand_revenue, model_brand);
|
||||||
addAgent();
|
addModelRela_4(domain, model_company_revenue, model_brand);
|
||||||
|
|
||||||
|
DataSetResp dataset = addDataSet(domain);
|
||||||
|
addAgent(dataset.getId());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("Failed to add bench mark demo data", e);
|
log.error("Failed to add bench mark demo data", e);
|
||||||
}
|
}
|
||||||
@@ -55,29 +73,34 @@ public class DuSQLDemo extends S2BaseDemo {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
boolean checkNeedToRun() {
|
boolean checkNeedToRun() {
|
||||||
|
List<DomainResp> domainList = domainService.getDomainList();
|
||||||
|
for (DomainResp domainResp : domainList) {
|
||||||
|
if (domainResp.getBizName().equalsIgnoreCase("corporate")) {
|
||||||
|
log.info("Already exist domain:corporate, no need to run demo");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public void addDomain() {
|
public DomainResp addDomain() {
|
||||||
DomainReq domainReq = new DomainReq();
|
DomainReq domainReq = new DomainReq();
|
||||||
domainReq.setName("DuSQL_互联网企业");
|
domainReq.setName("企业数据");
|
||||||
domainReq.setBizName("internet");
|
domainReq.setBizName("corporate");
|
||||||
domainReq.setParentId(0L);
|
domainReq.setParentId(0L);
|
||||||
domainReq.setViewers(Arrays.asList("admin", "tom", "jack"));
|
domainReq.setViewers(Arrays.asList("admin", "tom", "jack"));
|
||||||
domainReq.setViewOrgs(Collections.singletonList("1"));
|
domainReq.setViewOrgs(Collections.singletonList("1"));
|
||||||
domainReq.setAdmins(Collections.singletonList("admin"));
|
domainReq.setAdmins(Collections.singletonList("admin"));
|
||||||
domainReq.setAdminOrgs(Collections.emptyList());
|
domainReq.setAdminOrgs(Collections.emptyList());
|
||||||
domainService.createDomain(domainReq, defaultUser);
|
return domainService.createDomain(domainReq, defaultUser);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 9
|
public ModelResp addModel_1(DomainResp domain, DatabaseResp database) throws Exception {
|
||||||
public void addModel_1() throws Exception {
|
|
||||||
ModelReq modelReq = new ModelReq();
|
ModelReq modelReq = new ModelReq();
|
||||||
modelReq.setName("公司");
|
modelReq.setName("公司维度");
|
||||||
modelReq.setBizName("company");
|
modelReq.setBizName("company");
|
||||||
modelReq.setDescription("公司");
|
modelReq.setDatabaseId(database.getId());
|
||||||
modelReq.setDatabaseId(1L);
|
modelReq.setDomainId(domain.getId());
|
||||||
modelReq.setDomainId(4L);
|
|
||||||
modelReq.setViewers(Arrays.asList("admin", "tom", "jack"));
|
modelReq.setViewers(Arrays.asList("admin", "tom", "jack"));
|
||||||
modelReq.setViewOrgs(Collections.singletonList("1"));
|
modelReq.setViewOrgs(Collections.singletonList("1"));
|
||||||
modelReq.setAdmins(Collections.singletonList("admin"));
|
modelReq.setAdmins(Collections.singletonList("admin"));
|
||||||
@@ -91,8 +114,7 @@ public class DuSQLDemo extends S2BaseDemo {
|
|||||||
dimensions.add(dimension1);
|
dimensions.add(dimension1);
|
||||||
dimensions.add(new Dim("公司名称", "company_name", DimensionType.categorical.name(), 1));
|
dimensions.add(new Dim("公司名称", "company_name", DimensionType.categorical.name(), 1));
|
||||||
dimensions.add(new Dim("总部地点", "headquarter_address", DimensionType.categorical.name(), 1));
|
dimensions.add(new Dim("总部地点", "headquarter_address", DimensionType.categorical.name(), 1));
|
||||||
dimensions.add(
|
dimensions.add(new Dim("成立时间", "company_established_time", DimensionType.time.name(), 1));
|
||||||
new Dim("公司成立时间", "company_established_time", DimensionType.categorical.name(), 1));
|
|
||||||
dimensions.add(new Dim("创始人", "founder", DimensionType.categorical.name(), 1));
|
dimensions.add(new Dim("创始人", "founder", DimensionType.categorical.name(), 1));
|
||||||
dimensions.add(new Dim("首席执行官", "ceo", DimensionType.categorical.name(), 1));
|
dimensions.add(new Dim("首席执行官", "ceo", DimensionType.categorical.name(), 1));
|
||||||
modelDetail.setDimensions(dimensions);
|
modelDetail.setDimensions(dimensions);
|
||||||
@@ -111,17 +133,21 @@ public class DuSQLDemo extends S2BaseDemo {
|
|||||||
modelDetail.setSqlQuery("SELECT imp_date,company_id,company_name,headquarter_address,"
|
modelDetail.setSqlQuery("SELECT imp_date,company_id,company_name,headquarter_address,"
|
||||||
+ "company_established_time,founder,ceo,annual_turnover,employee_count FROM company");
|
+ "company_established_time,founder,ceo,annual_turnover,employee_count FROM company");
|
||||||
modelReq.setModelDetail(modelDetail);
|
modelReq.setModelDetail(modelDetail);
|
||||||
modelService.createModel(modelReq, defaultUser);
|
ModelResp companyModel = modelService.createModel(modelReq, defaultUser);
|
||||||
|
|
||||||
|
enableDimensionValue(getDimension("company_name", companyModel));
|
||||||
|
enableDimensionValue(getDimension("founder", companyModel));
|
||||||
|
enableDimensionValue(getDimension("ceo", companyModel));
|
||||||
|
|
||||||
|
return companyModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 10
|
public ModelResp addModel_2(DomainResp domain, DatabaseResp database) throws Exception {
|
||||||
public void addModel_2() throws Exception {
|
|
||||||
ModelReq modelReq = new ModelReq();
|
ModelReq modelReq = new ModelReq();
|
||||||
modelReq.setName("品牌");
|
modelReq.setName("品牌维度");
|
||||||
modelReq.setBizName("brand");
|
modelReq.setBizName("brand");
|
||||||
modelReq.setDescription("品牌");
|
modelReq.setDatabaseId(database.getId());
|
||||||
modelReq.setDatabaseId(1L);
|
modelReq.setDomainId(domain.getId());
|
||||||
modelReq.setDomainId(4L);
|
|
||||||
modelReq.setViewers(Arrays.asList("admin", "tom", "jack"));
|
modelReq.setViewers(Arrays.asList("admin", "tom", "jack"));
|
||||||
modelReq.setViewOrgs(Collections.singletonList("1"));
|
modelReq.setViewOrgs(Collections.singletonList("1"));
|
||||||
modelReq.setAdmins(Collections.singletonList("admin"));
|
modelReq.setAdmins(Collections.singletonList("admin"));
|
||||||
@@ -134,8 +160,7 @@ public class DuSQLDemo extends S2BaseDemo {
|
|||||||
dimension1.setTypeParams(dimensionTimeTypeParams);
|
dimension1.setTypeParams(dimensionTimeTypeParams);
|
||||||
dimensions.add(dimension1);
|
dimensions.add(dimension1);
|
||||||
dimensions.add(new Dim("品牌名称", "brand_name", DimensionType.categorical.name(), 1));
|
dimensions.add(new Dim("品牌名称", "brand_name", DimensionType.categorical.name(), 1));
|
||||||
dimensions.add(
|
dimensions.add(new Dim("品牌成立时间", "brand_established_time", DimensionType.time.name(), 1));
|
||||||
new Dim("品牌成立时间", "brand_established_time", DimensionType.categorical.name(), 1));
|
|
||||||
dimensions
|
dimensions
|
||||||
.add(new Dim("法定代表人", "legal_representative", DimensionType.categorical.name(), 1));
|
.add(new Dim("法定代表人", "legal_representative", DimensionType.categorical.name(), 1));
|
||||||
modelDetail.setDimensions(dimensions);
|
modelDetail.setDimensions(dimensions);
|
||||||
@@ -146,24 +171,26 @@ public class DuSQLDemo extends S2BaseDemo {
|
|||||||
modelDetail.setIdentifiers(identifiers);
|
modelDetail.setIdentifiers(identifiers);
|
||||||
|
|
||||||
List<Measure> measures = new ArrayList<>();
|
List<Measure> measures = new ArrayList<>();
|
||||||
measures.add(new Measure("注册资本", "registered_capital", AggOperatorEnum.SUM.name(), 1));
|
measures.add(new Measure("注册资本", "registered_capital", AggOperatorEnum.MAX.name(), 1));
|
||||||
modelDetail.setMeasures(measures);
|
modelDetail.setMeasures(measures);
|
||||||
|
|
||||||
modelDetail.setQueryType("sql_query");
|
modelDetail.setQueryType("sql_query");
|
||||||
modelDetail.setSqlQuery("SELECT imp_date,brand_id,brand_name,brand_established_time,"
|
modelDetail.setSqlQuery("SELECT imp_date,brand_id,brand_name,brand_established_time,"
|
||||||
+ "company_id,legal_representative,registered_capital FROM brand");
|
+ "company_id,legal_representative,registered_capital FROM brand");
|
||||||
modelReq.setModelDetail(modelDetail);
|
modelReq.setModelDetail(modelDetail);
|
||||||
modelService.createModel(modelReq, defaultUser);
|
ModelResp brandModel = modelService.createModel(modelReq, defaultUser);
|
||||||
|
|
||||||
|
enableDimensionValue(getDimension("brand_name", brandModel));
|
||||||
|
|
||||||
|
return brandModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 11
|
public ModelResp addModel_3(DomainResp domain, DatabaseResp database) throws Exception {
|
||||||
public void addModel_3() throws Exception {
|
|
||||||
ModelReq modelReq = new ModelReq();
|
ModelReq modelReq = new ModelReq();
|
||||||
modelReq.setName("公司各品牌收入排名");
|
modelReq.setName("公司品牌收入占比");
|
||||||
modelReq.setBizName("company_revenue");
|
modelReq.setBizName("company_revenue");
|
||||||
modelReq.setDescription("公司各品牌收入排名");
|
modelReq.setDatabaseId(database.getId());
|
||||||
modelReq.setDatabaseId(1L);
|
modelReq.setDomainId(domain.getId());
|
||||||
modelReq.setDomainId(4L);
|
|
||||||
modelReq.setViewers(Arrays.asList("admin", "tom", "jack"));
|
modelReq.setViewers(Arrays.asList("admin", "tom", "jack"));
|
||||||
modelReq.setViewOrgs(Collections.singletonList("1"));
|
modelReq.setViewOrgs(Collections.singletonList("1"));
|
||||||
modelReq.setAdmins(Collections.singletonList("admin"));
|
modelReq.setAdmins(Collections.singletonList("admin"));
|
||||||
@@ -183,33 +210,25 @@ public class DuSQLDemo extends S2BaseDemo {
|
|||||||
modelDetail.setIdentifiers(identifiers);
|
modelDetail.setIdentifiers(identifiers);
|
||||||
|
|
||||||
List<Measure> measures = new ArrayList<>();
|
List<Measure> measures = new ArrayList<>();
|
||||||
Measure measure = new Measure("营收占比", "revenue_proportion", AggOperatorEnum.SUM.name(), 1);
|
Measure measure = new Measure("营收占比", "revenue_proportion", AggOperatorEnum.MAX.name(), 1);
|
||||||
measures.add(measure);
|
measures.add(measure);
|
||||||
measures.add(new Measure("利润占比", "profit_proportion", AggOperatorEnum.SUM.name(), 1));
|
measures.add(new Measure("利润占比", "profit_proportion", AggOperatorEnum.MAX.name(), 1));
|
||||||
measures.add(new Measure("支出占比", "expenditure_proportion", AggOperatorEnum.SUM.name(), 1));
|
measures.add(new Measure("支出占比", "expenditure_proportion", AggOperatorEnum.MAX.name(), 1));
|
||||||
modelDetail.setMeasures(measures);
|
modelDetail.setMeasures(measures);
|
||||||
|
|
||||||
modelDetail.setQueryType("sql_query");
|
modelDetail.setQueryType("sql_query");
|
||||||
modelDetail.setSqlQuery("SELECT imp_date,company_id,brand_id,revenue_proportion,"
|
modelDetail.setSqlQuery("SELECT imp_date,company_id,brand_id,revenue_proportion,"
|
||||||
+ "profit_proportion,expenditure_proportion FROM company_revenue");
|
+ "profit_proportion,expenditure_proportion FROM company_revenue");
|
||||||
modelReq.setModelDetail(modelDetail);
|
modelReq.setModelDetail(modelDetail);
|
||||||
modelService.createModel(modelReq, defaultUser);
|
return modelService.createModel(modelReq, defaultUser);
|
||||||
MetricResp metricResp = metricService.getMetric(13L, defaultUser);
|
|
||||||
|
|
||||||
MetricReq metricReq = new MetricReq();
|
|
||||||
BeanUtils.copyProperties(metricResp, metricReq);
|
|
||||||
metricReq.setAlias("收入比例");
|
|
||||||
metricService.updateMetric(metricReq, defaultUser);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 12
|
public ModelResp addModel_4(DomainResp domain, DatabaseResp database) throws Exception {
|
||||||
public void addModel_4() throws Exception {
|
|
||||||
ModelReq modelReq = new ModelReq();
|
ModelReq modelReq = new ModelReq();
|
||||||
modelReq.setName("公司品牌历年收入");
|
modelReq.setName("公司品牌历年收入");
|
||||||
modelReq.setBizName("company_brand_revenue");
|
modelReq.setBizName("company_brand_revenue");
|
||||||
modelReq.setDescription("公司品牌历年收入");
|
modelReq.setDatabaseId(database.getId());
|
||||||
modelReq.setDatabaseId(1L);
|
modelReq.setDomainId(domain.getId());
|
||||||
modelReq.setDomainId(4L);
|
|
||||||
modelReq.setViewers(Arrays.asList("admin", "tom", "jack"));
|
modelReq.setViewers(Arrays.asList("admin", "tom", "jack"));
|
||||||
modelReq.setViewOrgs(Collections.singletonList("1"));
|
modelReq.setViewOrgs(Collections.singletonList("1"));
|
||||||
modelReq.setAdmins(Collections.singletonList("admin"));
|
modelReq.setAdmins(Collections.singletonList("admin"));
|
||||||
@@ -241,30 +260,23 @@ public class DuSQLDemo extends S2BaseDemo {
|
|||||||
modelDetail.setSqlQuery("SELECT imp_date,year_time,brand_id,revenue,profit,"
|
modelDetail.setSqlQuery("SELECT imp_date,year_time,brand_id,revenue,profit,"
|
||||||
+ "revenue_growth_year_on_year,profit_growth_year_on_year FROM company_brand_revenue");
|
+ "revenue_growth_year_on_year,profit_growth_year_on_year FROM company_brand_revenue");
|
||||||
modelReq.setModelDetail(modelDetail);
|
modelReq.setModelDetail(modelDetail);
|
||||||
modelService.createModel(modelReq, defaultUser);
|
return modelService.createModel(modelReq, defaultUser);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addDataSet_1() {
|
public DataSetResp addDataSet(DomainResp domain) {
|
||||||
DataSetReq dataSetReq = new DataSetReq();
|
DataSetReq dataSetReq = new DataSetReq();
|
||||||
dataSetReq.setName("DuSQL 互联网企业");
|
dataSetReq.setName("企业数据集");
|
||||||
dataSetReq.setBizName("internet");
|
dataSetReq.setBizName("CorporateData");
|
||||||
dataSetReq.setDomainId(4L);
|
dataSetReq.setDomainId(domain.getId());
|
||||||
dataSetReq.setDescription("DuSQL互联网企业数据源相关的指标和维度等");
|
dataSetReq.setDescription("互联网企业核心经营数据");
|
||||||
dataSetReq.setAdmins(Lists.newArrayList("admin"));
|
dataSetReq.setAdmins(Lists.newArrayList("admin"));
|
||||||
List<DataSetModelConfig> viewModelConfigs = Lists.newArrayList(
|
|
||||||
new DataSetModelConfig(9L, Lists.newArrayList(16L, 17L, 18L, 19L, 20L),
|
|
||||||
Lists.newArrayList(10L, 11L)),
|
|
||||||
new DataSetModelConfig(10L, Lists.newArrayList(21L, 22L, 23L),
|
|
||||||
Lists.newArrayList(12L)),
|
|
||||||
new DataSetModelConfig(11L, Lists.newArrayList(),
|
|
||||||
Lists.newArrayList(13L, 14L, 15L)),
|
|
||||||
new DataSetModelConfig(12L, Lists.newArrayList(24L),
|
|
||||||
Lists.newArrayList(16L, 17L, 18L, 19L)));
|
|
||||||
|
|
||||||
DataSetDetail dsDetail = new DataSetDetail();
|
List<DataSetModelConfig> dataSetModelConfigs = getDataSetModelConfigs(domain.getId());
|
||||||
dsDetail.setDataSetModelConfigs(viewModelConfigs);
|
DataSetDetail dataSetDetail = new DataSetDetail();
|
||||||
dataSetReq.setDataSetDetail(dsDetail);
|
dataSetDetail.setDataSetModelConfigs(dataSetModelConfigs);
|
||||||
|
dataSetReq.setDataSetDetail(dataSetDetail);
|
||||||
dataSetReq.setTypeEnum(TypeEnums.DATASET);
|
dataSetReq.setTypeEnum(TypeEnums.DATASET);
|
||||||
|
|
||||||
QueryConfig queryConfig = new QueryConfig();
|
QueryConfig queryConfig = new QueryConfig();
|
||||||
AggregateTypeDefaultConfig aggregateTypeDefaultConfig = new AggregateTypeDefaultConfig();
|
AggregateTypeDefaultConfig aggregateTypeDefaultConfig = new AggregateTypeDefaultConfig();
|
||||||
TimeDefaultConfig timeDefaultConfig = new TimeDefaultConfig();
|
TimeDefaultConfig timeDefaultConfig = new TimeDefaultConfig();
|
||||||
@@ -273,76 +285,84 @@ public class DuSQLDemo extends S2BaseDemo {
|
|||||||
aggregateTypeDefaultConfig.setTimeDefaultConfig(timeDefaultConfig);
|
aggregateTypeDefaultConfig.setTimeDefaultConfig(timeDefaultConfig);
|
||||||
queryConfig.setAggregateTypeDefaultConfig(aggregateTypeDefaultConfig);
|
queryConfig.setAggregateTypeDefaultConfig(aggregateTypeDefaultConfig);
|
||||||
dataSetReq.setQueryConfig(queryConfig);
|
dataSetReq.setQueryConfig(queryConfig);
|
||||||
dataSetService.save(dataSetReq, defaultUser);
|
|
||||||
|
return dataSetService.save(dataSetReq, defaultUser);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addModelRela_1() {
|
public void addModelRela_1(DomainResp domain, ModelResp fromModel, ModelResp toModel) {
|
||||||
List<JoinCondition> joinConditions = Lists.newArrayList();
|
List<JoinCondition> joinConditions = Lists.newArrayList();
|
||||||
joinConditions
|
joinConditions
|
||||||
.add(new JoinCondition("company_id", "company_id", FilterOperatorEnum.EQUALS));
|
.add(new JoinCondition("company_id", "company_id", FilterOperatorEnum.EQUALS));
|
||||||
ModelRela modelRelaReq = new ModelRela();
|
ModelRela modelRelaReq = new ModelRela();
|
||||||
modelRelaReq.setDomainId(4L);
|
modelRelaReq.setDomainId(domain.getId());
|
||||||
modelRelaReq.setFromModelId(9L);
|
modelRelaReq.setFromModelId(fromModel.getId());
|
||||||
modelRelaReq.setToModelId(10L);
|
modelRelaReq.setToModelId(toModel.getId());
|
||||||
modelRelaReq.setJoinType("inner join");
|
modelRelaReq.setJoinType("left join");
|
||||||
modelRelaReq.setJoinConditions(joinConditions);
|
modelRelaReq.setJoinConditions(joinConditions);
|
||||||
modelRelaService.save(modelRelaReq, defaultUser);
|
modelRelaService.save(modelRelaReq, defaultUser);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addModelRela_2() {
|
public void addModelRela_2(DomainResp domain, ModelResp fromModel, ModelResp toModel) {
|
||||||
List<JoinCondition> joinConditions = Lists.newArrayList();
|
List<JoinCondition> joinConditions = Lists.newArrayList();
|
||||||
joinConditions
|
joinConditions
|
||||||
.add(new JoinCondition("company_id", "company_id", FilterOperatorEnum.EQUALS));
|
.add(new JoinCondition("company_id", "company_id", FilterOperatorEnum.EQUALS));
|
||||||
ModelRela modelRelaReq = new ModelRela();
|
ModelRela modelRelaReq = new ModelRela();
|
||||||
modelRelaReq.setDomainId(4L);
|
modelRelaReq.setDomainId(domain.getId());
|
||||||
modelRelaReq.setFromModelId(9L);
|
modelRelaReq.setFromModelId(fromModel.getId());
|
||||||
modelRelaReq.setToModelId(11L);
|
modelRelaReq.setToModelId(toModel.getId());
|
||||||
modelRelaReq.setJoinType("inner join");
|
modelRelaReq.setJoinType("left join");
|
||||||
modelRelaReq.setJoinConditions(joinConditions);
|
modelRelaReq.setJoinConditions(joinConditions);
|
||||||
modelRelaService.save(modelRelaReq, defaultUser);
|
modelRelaService.save(modelRelaReq, defaultUser);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addModelRela_3() {
|
public void addModelRela_3(DomainResp domain, ModelResp fromModel, ModelResp toModel) {
|
||||||
List<JoinCondition> joinConditions = Lists.newArrayList();
|
List<JoinCondition> joinConditions = Lists.newArrayList();
|
||||||
joinConditions.add(new JoinCondition("brand_id", "brand_id", FilterOperatorEnum.EQUALS));
|
joinConditions.add(new JoinCondition("brand_id", "brand_id", FilterOperatorEnum.EQUALS));
|
||||||
ModelRela modelRelaReq = new ModelRela();
|
ModelRela modelRelaReq = new ModelRela();
|
||||||
modelRelaReq.setDomainId(4L);
|
modelRelaReq.setDomainId(domain.getId());
|
||||||
modelRelaReq.setFromModelId(10L);
|
modelRelaReq.setFromModelId(fromModel.getId());
|
||||||
modelRelaReq.setToModelId(11L);
|
modelRelaReq.setToModelId(toModel.getId());
|
||||||
modelRelaReq.setJoinType("inner join");
|
modelRelaReq.setJoinType("left join");
|
||||||
modelRelaReq.setJoinConditions(joinConditions);
|
modelRelaReq.setJoinConditions(joinConditions);
|
||||||
modelRelaService.save(modelRelaReq, defaultUser);
|
modelRelaService.save(modelRelaReq, defaultUser);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addModelRela_4() {
|
public void addModelRela_4(DomainResp domain, ModelResp fromModel, ModelResp toModel) {
|
||||||
List<JoinCondition> joinConditions = Lists.newArrayList();
|
List<JoinCondition> joinConditions = Lists.newArrayList();
|
||||||
joinConditions.add(new JoinCondition("brand_id", "brand_id", FilterOperatorEnum.EQUALS));
|
joinConditions.add(new JoinCondition("brand_id", "brand_id", FilterOperatorEnum.EQUALS));
|
||||||
ModelRela modelRelaReq = new ModelRela();
|
ModelRela modelRelaReq = new ModelRela();
|
||||||
modelRelaReq.setDomainId(4L);
|
modelRelaReq.setDomainId(domain.getId());
|
||||||
modelRelaReq.setFromModelId(10L);
|
modelRelaReq.setFromModelId(fromModel.getId());
|
||||||
modelRelaReq.setToModelId(12L);
|
modelRelaReq.setToModelId(toModel.getId());
|
||||||
modelRelaReq.setJoinType("inner join");
|
modelRelaReq.setJoinType("left join");
|
||||||
modelRelaReq.setJoinConditions(joinConditions);
|
modelRelaReq.setJoinConditions(joinConditions);
|
||||||
modelRelaService.save(modelRelaReq, defaultUser);
|
modelRelaService.save(modelRelaReq, defaultUser);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addAgent() {
|
private void addAgent(Long dataSetId) {
|
||||||
Agent agent = new Agent();
|
Agent agent = new Agent();
|
||||||
agent.setName("DuSQL 互联网企业");
|
agent.setName("企业分析助手");
|
||||||
agent.setDescription("DuSQL");
|
agent.setDescription("帮忙您对企业的员工数、收入、利润经营指标分析");
|
||||||
agent.setStatus(1);
|
agent.setStatus(1);
|
||||||
agent.setEnableSearch(1);
|
agent.setEnableSearch(1);
|
||||||
agent.setExamples(Lists.newArrayList());
|
agent.setExamples(
|
||||||
|
Lists.newArrayList("各公司员工都有多少人", "利润最高的公司top 3", "英伟达2024年利润", "特斯拉下有哪些品牌"));
|
||||||
ToolConfig toolConfig = new ToolConfig();
|
ToolConfig toolConfig = new ToolConfig();
|
||||||
|
|
||||||
|
// configure tools
|
||||||
DatasetTool datasetTool = new DatasetTool();
|
DatasetTool datasetTool = new DatasetTool();
|
||||||
datasetTool.setId("1");
|
datasetTool.setId("1");
|
||||||
datasetTool.setType(AgentToolType.DATASET);
|
datasetTool.setType(AgentToolType.DATASET);
|
||||||
datasetTool.setDataSetIds(Lists.newArrayList(4L));
|
datasetTool.setDataSetIds(Lists.newArrayList(dataSetId));
|
||||||
toolConfig.getTools().add(datasetTool);
|
toolConfig.getTools().add(datasetTool);
|
||||||
|
|
||||||
agent.setToolConfig(JSONObject.toJSONString(toolConfig));
|
agent.setToolConfig(JSONObject.toJSONString(toolConfig));
|
||||||
log.info("agent:{}", JsonUtil.toString(agent));
|
|
||||||
|
// configure chat apps
|
||||||
|
Map<String, ChatApp> chatAppConfig =
|
||||||
|
Maps.newHashMap(ChatAppManager.getAllApps(AppModule.CHAT));
|
||||||
|
chatAppConfig.values().forEach(app -> app.setChatModelId(demoChatModel.getId()));
|
||||||
|
agent.setChatAppConfig(chatAppConfig);
|
||||||
|
|
||||||
agentService.createAgent(agent, defaultUser);
|
agentService.createAgent(agent, defaultUser);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -45,8 +45,8 @@ import java.util.Map;
|
|||||||
|
|
||||||
@Component
|
@Component
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Order(2)
|
@Order(3)
|
||||||
public class S2ArtistDemo extends S2BaseDemo {
|
public class S2SingerDemo extends S2BaseDemo {
|
||||||
|
|
||||||
public void doRun() {
|
public void doRun() {
|
||||||
try {
|
try {
|
||||||
@@ -83,7 +83,7 @@ public class S2ArtistDemo extends S2BaseDemo {
|
|||||||
|
|
||||||
public DomainResp addDomain() {
|
public DomainResp addDomain() {
|
||||||
DomainReq domainReq = new DomainReq();
|
DomainReq domainReq = new DomainReq();
|
||||||
domainReq.setName("歌手库");
|
domainReq.setName("歌手数据");
|
||||||
domainReq.setBizName("singer");
|
domainReq.setBizName("singer");
|
||||||
domainReq.setParentId(0L);
|
domainReq.setParentId(0L);
|
||||||
domainReq.setStatus(StatusEnum.ONLINE.getCode());
|
domainReq.setStatus(StatusEnum.ONLINE.getCode());
|
||||||
@@ -145,7 +145,7 @@ public class S2ArtistDemo extends S2BaseDemo {
|
|||||||
|
|
||||||
public long addDataSet(DomainResp singerDomain, ModelResp singerModel) {
|
public long addDataSet(DomainResp singerDomain, ModelResp singerModel) {
|
||||||
DataSetReq dataSetReq = new DataSetReq();
|
DataSetReq dataSetReq = new DataSetReq();
|
||||||
dataSetReq.setName("歌手库数据集");
|
dataSetReq.setName("歌手数据集");
|
||||||
dataSetReq.setBizName("singer");
|
dataSetReq.setBizName("singer");
|
||||||
dataSetReq.setDomainId(singerDomain.getId());
|
dataSetReq.setDomainId(singerDomain.getId());
|
||||||
dataSetReq.setDescription("包含歌手相关标签和指标信息");
|
dataSetReq.setDescription("包含歌手相关标签和指标信息");
|
||||||
@@ -167,8 +167,8 @@ public class S2ArtistDemo extends S2BaseDemo {
|
|||||||
|
|
||||||
private void addAgent(long dataSetId) {
|
private void addAgent(long dataSetId) {
|
||||||
Agent agent = new Agent();
|
Agent agent = new Agent();
|
||||||
agent.setName("做圈选");
|
agent.setName("艺人分析助手");
|
||||||
agent.setDescription("帮助您用自然语言进行圈选,支持多条件组合筛选");
|
agent.setDescription("帮忙您对不同流派、区域的艺人做分析查询");
|
||||||
agent.setStatus(1);
|
agent.setStatus(1);
|
||||||
agent.setEnableSearch(1);
|
agent.setEnableSearch(1);
|
||||||
agent.setExamples(Lists.newArrayList("国风流派歌手", "港台歌手", "周杰伦流派"));
|
agent.setExamples(Lists.newArrayList("国风流派歌手", "港台歌手", "周杰伦流派"));
|
||||||
@@ -6,7 +6,6 @@ import com.google.common.collect.Maps;
|
|||||||
import com.tencent.supersonic.chat.server.agent.Agent;
|
import com.tencent.supersonic.chat.server.agent.Agent;
|
||||||
import com.tencent.supersonic.chat.server.agent.ToolConfig;
|
import com.tencent.supersonic.chat.server.agent.ToolConfig;
|
||||||
import com.tencent.supersonic.chat.server.executor.PlainTextExecutor;
|
import com.tencent.supersonic.chat.server.executor.PlainTextExecutor;
|
||||||
import com.tencent.supersonic.chat.server.parser.PlainTextParser;
|
|
||||||
import com.tencent.supersonic.common.pojo.ChatApp;
|
import com.tencent.supersonic.common.pojo.ChatApp;
|
||||||
import com.tencent.supersonic.common.pojo.enums.AppModule;
|
import com.tencent.supersonic.common.pojo.enums.AppModule;
|
||||||
import com.tencent.supersonic.common.util.ChatAppManager;
|
import com.tencent.supersonic.common.util.ChatAppManager;
|
||||||
@@ -21,12 +20,12 @@ import java.util.stream.Collectors;
|
|||||||
|
|
||||||
@Component
|
@Component
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Order(2)
|
@Order(10)
|
||||||
public class SmallTalkDemo extends S2BaseDemo {
|
public class S2SmallTalkDemo extends S2BaseDemo {
|
||||||
|
|
||||||
public void doRun() {
|
public void doRun() {
|
||||||
Agent agent = new Agent();
|
Agent agent = new Agent();
|
||||||
agent.setName("来闲聊");
|
agent.setName("闲聊助手");
|
||||||
agent.setDescription("直接与大模型对话,验证连通性");
|
agent.setDescription("直接与大模型对话,验证连通性");
|
||||||
agent.setStatus(1);
|
agent.setStatus(1);
|
||||||
agent.setEnableSearch(0);
|
agent.setEnableSearch(0);
|
||||||
@@ -47,8 +47,6 @@ import com.tencent.supersonic.headless.api.pojo.enums.MetricDefineType;
|
|||||||
import com.tencent.supersonic.headless.api.pojo.enums.SemanticType;
|
import com.tencent.supersonic.headless.api.pojo.enums.SemanticType;
|
||||||
import com.tencent.supersonic.headless.api.pojo.enums.TagDefineType;
|
import com.tencent.supersonic.headless.api.pojo.enums.TagDefineType;
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.DataSetReq;
|
import com.tencent.supersonic.headless.api.pojo.request.DataSetReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.DictItemReq;
|
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.DictSingleTaskReq;
|
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.DimensionReq;
|
import com.tencent.supersonic.headless.api.pojo.request.DimensionReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.DomainReq;
|
import com.tencent.supersonic.headless.api.pojo.request.DomainReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.MetricReq;
|
import com.tencent.supersonic.headless.api.pojo.request.MetricReq;
|
||||||
@@ -104,8 +102,8 @@ public class S2VisitsDemo extends S2BaseDemo {
|
|||||||
updateMetric_pv(pvUvModel, departmentDimension, userDimension, metricPv);
|
updateMetric_pv(pvUvModel, departmentDimension, userDimension, metricPv);
|
||||||
|
|
||||||
// create dict conf for dimensions
|
// create dict conf for dimensions
|
||||||
createDictConf(departmentDimension);
|
enableDimensionValue(departmentDimension);
|
||||||
createDictConf(userDimension);
|
enableDimensionValue(userDimension);
|
||||||
|
|
||||||
// create data set
|
// create data set
|
||||||
DataSetResp s2DataSet = addDataSet(s2Domain);
|
DataSetResp s2DataSet = addDataSet(s2Domain);
|
||||||
@@ -157,8 +155,8 @@ public class S2VisitsDemo extends S2BaseDemo {
|
|||||||
|
|
||||||
private Integer addAgent(long dataSetId) {
|
private Integer addAgent(long dataSetId) {
|
||||||
Agent agent = new Agent();
|
Agent agent = new Agent();
|
||||||
agent.setName("算指标");
|
agent.setName("超音数分析助手");
|
||||||
agent.setDescription("帮助您用自然语言查询指标,支持时间限定、条件筛选、下钻维度以及聚合统计");
|
agent.setDescription("帮忙您对超音数产品的用户访问情况做分析");
|
||||||
agent.setStatus(1);
|
agent.setStatus(1);
|
||||||
agent.setEnableSearch(1);
|
agent.setEnableSearch(1);
|
||||||
agent.setExamples(Lists.newArrayList("近15天超音数访问次数汇总", "按部门统计超音数的访问人数", "对比alice和lucy的停留时长",
|
agent.setExamples(Lists.newArrayList("近15天超音数访问次数汇总", "按部门统计超音数的访问人数", "对比alice和lucy的停留时长",
|
||||||
@@ -184,7 +182,7 @@ public class S2VisitsDemo extends S2BaseDemo {
|
|||||||
|
|
||||||
public DomainResp addDomain() {
|
public DomainResp addDomain() {
|
||||||
DomainReq domainReq = new DomainReq();
|
DomainReq domainReq = new DomainReq();
|
||||||
domainReq.setName("超音数");
|
domainReq.setName("产品数据");
|
||||||
domainReq.setBizName("supersonic");
|
domainReq.setBizName("supersonic");
|
||||||
domainReq.setParentId(0L);
|
domainReq.setParentId(0L);
|
||||||
domainReq.setStatus(StatusEnum.ONLINE.getCode());
|
domainReq.setStatus(StatusEnum.ONLINE.getCode());
|
||||||
@@ -360,13 +358,6 @@ public class S2VisitsDemo extends S2BaseDemo {
|
|||||||
dimensionService.updateDimension(dimensionReq, defaultUser);
|
dimensionService.updateDimension(dimensionReq, defaultUser);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createDictConf(DimensionResp dimension) {
|
|
||||||
dictConfService.addDictConf(DictItemReq.builder().type(TypeEnums.DIMENSION)
|
|
||||||
.itemId(dimension.getId()).status(StatusEnum.ONLINE).build(), defaultUser);
|
|
||||||
dictTaskService.addDictTask(DictSingleTaskReq.builder().itemId(dimension.getId())
|
|
||||||
.type(TypeEnums.DIMENSION).build(), defaultUser);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateMetric(ModelResp stayTimeModel, DimensionResp departmentDimension,
|
public void updateMetric(ModelResp stayTimeModel, DimensionResp departmentDimension,
|
||||||
DimensionResp userDimension) throws Exception {
|
DimensionResp userDimension) throws Exception {
|
||||||
MetricResp stayHoursMetric = metricService.getMetric(stayTimeModel.getId(), "stay_hours");
|
MetricResp stayHoursMetric = metricService.getMetric(stayTimeModel.getId(), "stay_hours");
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ spring:
|
|||||||
password: semantic
|
password: semantic
|
||||||
sql:
|
sql:
|
||||||
init:
|
init:
|
||||||
schema-locations: classpath:db/schema-h2.sql
|
schema-locations: classpath:db/schema-h2.sql,classpath:db/schema-h2-demo.sql
|
||||||
data-locations: classpath:db/data-h2.sql
|
data-locations: classpath:db/data-h2.sql,classpath:db/data-h2-demo.sql
|
||||||
h2:
|
h2:
|
||||||
console:
|
console:
|
||||||
path: /h2-console/semantic
|
path: /h2-console/semantic
|
||||||
|
|||||||
1086
launchers/standalone/src/main/resources/db/data-h2-demo.sql
Normal file
1086
launchers/standalone/src/main/resources/db/data-h2-demo.sql
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
1053
launchers/standalone/src/main/resources/db/data-mysql-demo.sql
Normal file
1053
launchers/standalone/src/main/resources/db/data-mysql-demo.sql
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,97 @@
|
|||||||
|
-------S2VisitsDemo
|
||||||
|
CREATE TABLE IF NOT EXISTS `s2_user_department` (
|
||||||
|
`user_name` varchar(200) NOT NULL,
|
||||||
|
`department` varchar(200) NOT NULL, -- department of user
|
||||||
|
PRIMARY KEY (`user_name`,`department`)
|
||||||
|
);
|
||||||
|
COMMENT ON TABLE s2_user_department IS 'user_department_info';
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `s2_pv_uv_statis` (
|
||||||
|
`imp_date` varchar(200) NOT NULL,
|
||||||
|
`user_name` varchar(200) NOT NULL,
|
||||||
|
`page` varchar(200) NOT NULL
|
||||||
|
);
|
||||||
|
COMMENT ON TABLE s2_pv_uv_statis IS 's2_pv_uv_statis';
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `s2_stay_time_statis` (
|
||||||
|
`imp_date` varchar(200) NOT NULL,
|
||||||
|
`user_name` varchar(200) NOT NULL,
|
||||||
|
`stay_hours` DOUBLE NOT NULL,
|
||||||
|
`page` varchar(200) NOT NULL
|
||||||
|
);
|
||||||
|
COMMENT ON TABLE s2_stay_time_statis IS 's2_stay_time_statis_info';
|
||||||
|
|
||||||
|
-------S2ArtistDemo
|
||||||
|
CREATE TABLE IF NOT EXISTS `singer` (
|
||||||
|
`singer_name` varchar(200) NOT NULL,
|
||||||
|
`act_area` varchar(200) NOT NULL,
|
||||||
|
`song_name` varchar(200) NOT NULL,
|
||||||
|
`genre` varchar(200) NOT NULL,
|
||||||
|
`js_play_cnt` bigINT DEFAULT NULL,
|
||||||
|
`down_cnt` bigINT DEFAULT NULL,
|
||||||
|
`favor_cnt` bigINT DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`singer_name`)
|
||||||
|
);
|
||||||
|
COMMENT ON TABLE singer IS 'singer_info';
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `genre` (
|
||||||
|
`g_name` varchar(20) NOT NULL , -- genre name
|
||||||
|
`rating` INT ,
|
||||||
|
`most_popular_in` varchar(50) ,
|
||||||
|
PRIMARY KEY (`g_name`)
|
||||||
|
);
|
||||||
|
COMMENT ON TABLE genre IS 'genre';
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `artist` (
|
||||||
|
`artist_name` varchar(50) NOT NULL , -- genre name
|
||||||
|
`citizenship` varchar(20) ,
|
||||||
|
`gender` varchar(20) ,
|
||||||
|
`g_name` varchar(50),
|
||||||
|
PRIMARY KEY (`artist_name`,`citizenship`)
|
||||||
|
);
|
||||||
|
COMMENT ON TABLE artist IS 'artist';
|
||||||
|
|
||||||
|
-------S2CompanyDemo
|
||||||
|
CREATE TABLE IF NOT EXISTS `company` (
|
||||||
|
`imp_date` varchar(50) ,
|
||||||
|
`company_id` varchar(50) NOT NULL ,
|
||||||
|
`company_name` varchar(50) NOT NULL ,
|
||||||
|
`headquarter_address` varchar(50) NOT NULL ,
|
||||||
|
`company_established_time` varchar(20) NOT NULL ,
|
||||||
|
`founder` varchar(20) NOT NULL ,
|
||||||
|
`ceo` varchar(20) NOT NULL ,
|
||||||
|
`annual_turnover` bigint(15) ,
|
||||||
|
`employee_count` int(7) ,
|
||||||
|
PRIMARY KEY (`company_id`)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `brand` (
|
||||||
|
`imp_date` varchar(50) ,
|
||||||
|
`brand_id` varchar(50) NOT NULL ,
|
||||||
|
`brand_name` varchar(50) NOT NULL ,
|
||||||
|
`brand_established_time` varchar(20) NOT NULL ,
|
||||||
|
`company_id` varchar(50) NOT NULL ,
|
||||||
|
`legal_representative` varchar(20) NOT NULL ,
|
||||||
|
`registered_capital` bigint(15) ,
|
||||||
|
PRIMARY KEY (`brand_id`)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `company_revenue` (
|
||||||
|
`imp_date` varchar(50) ,
|
||||||
|
`company_id` varchar(50) NOT NULL ,
|
||||||
|
`brand_id` varchar(50) NOT NULL ,
|
||||||
|
`revenue_proportion` double NOT NULL,
|
||||||
|
`profit_proportion` double NOT NULL ,
|
||||||
|
`expenditure_proportion` double NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `company_brand_revenue` (
|
||||||
|
`imp_date` varchar(50) ,
|
||||||
|
`year_time` varchar(10) NOT NULL ,
|
||||||
|
`brand_id` varchar(50) NOT NULL ,
|
||||||
|
`revenue` bigint(15) NOT NULL,
|
||||||
|
`profit` bigint(15) NOT NULL ,
|
||||||
|
`revenue_growth_year_on_year` double NOT NULL ,
|
||||||
|
`profit_growth_year_on_year` double NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
@@ -401,41 +401,6 @@ CREATE TABLE IF NOT EXISTS s2_agent
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
); COMMENT ON TABLE s2_agent IS 'agent information table';
|
); COMMENT ON TABLE s2_agent IS 'agent information table';
|
||||||
|
|
||||||
-------demo for semantic and chat
|
|
||||||
CREATE TABLE IF NOT EXISTS `s2_user_department` (
|
|
||||||
`user_name` varchar(200) NOT NULL,
|
|
||||||
`department` varchar(200) NOT NULL, -- department of user
|
|
||||||
PRIMARY KEY (`user_name`,`department`)
|
|
||||||
);
|
|
||||||
COMMENT ON TABLE s2_user_department IS 'user_department_info';
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `s2_pv_uv_statis` (
|
|
||||||
`imp_date` varchar(200) NOT NULL,
|
|
||||||
`user_name` varchar(200) NOT NULL,
|
|
||||||
`page` varchar(200) NOT NULL
|
|
||||||
);
|
|
||||||
COMMENT ON TABLE s2_pv_uv_statis IS 's2_pv_uv_statis';
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `s2_stay_time_statis` (
|
|
||||||
`imp_date` varchar(200) NOT NULL,
|
|
||||||
`user_name` varchar(200) NOT NULL,
|
|
||||||
`stay_hours` DOUBLE NOT NULL,
|
|
||||||
`page` varchar(200) NOT NULL
|
|
||||||
);
|
|
||||||
COMMENT ON TABLE s2_stay_time_statis IS 's2_stay_time_statis_info';
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `singer` (
|
|
||||||
`singer_name` varchar(200) NOT NULL,
|
|
||||||
`act_area` varchar(200) NOT NULL,
|
|
||||||
`song_name` varchar(200) NOT NULL,
|
|
||||||
`genre` varchar(200) NOT NULL,
|
|
||||||
`js_play_cnt` bigINT DEFAULT NULL,
|
|
||||||
`down_cnt` bigINT DEFAULT NULL,
|
|
||||||
`favor_cnt` bigINT DEFAULT NULL,
|
|
||||||
PRIMARY KEY (`singer_name`)
|
|
||||||
);
|
|
||||||
COMMENT ON TABLE singer IS 'singer_info';
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `s2_dictionary_conf` (
|
CREATE TABLE IF NOT EXISTS `s2_dictionary_conf` (
|
||||||
`id` INT NOT NULL AUTO_INCREMENT,
|
`id` INT NOT NULL AUTO_INCREMENT,
|
||||||
`description` varchar(255) ,
|
`description` varchar(255) ,
|
||||||
@@ -464,96 +429,6 @@ CREATE TABLE IF NOT EXISTS `s2_dictionary_task` (
|
|||||||
);
|
);
|
||||||
COMMENT ON TABLE s2_dictionary_task IS 'dictionary task information table';
|
COMMENT ON TABLE s2_dictionary_task IS 'dictionary task information table';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- benchmark
|
|
||||||
CREATE TABLE IF NOT EXISTS `genre` (
|
|
||||||
`g_name` varchar(20) NOT NULL , -- genre name
|
|
||||||
`rating` INT ,
|
|
||||||
`most_popular_in` varchar(50) ,
|
|
||||||
PRIMARY KEY (`g_name`)
|
|
||||||
);
|
|
||||||
COMMENT ON TABLE genre IS 'genre';
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `artist` (
|
|
||||||
`artist_name` varchar(50) NOT NULL , -- genre name
|
|
||||||
`citizenship` varchar(20) ,
|
|
||||||
`gender` varchar(20) ,
|
|
||||||
`g_name` varchar(50),
|
|
||||||
PRIMARY KEY (`artist_name`,`citizenship`)
|
|
||||||
);
|
|
||||||
COMMENT ON TABLE artist IS 'artist';
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `files` (
|
|
||||||
`f_id` bigINT NOT NULL,
|
|
||||||
`artist_name` varchar(50) ,
|
|
||||||
`file_size` varchar(20) ,
|
|
||||||
`duration` varchar(20) ,
|
|
||||||
`formats` varchar(20) ,
|
|
||||||
PRIMARY KEY (`f_id`)
|
|
||||||
);
|
|
||||||
COMMENT ON TABLE files IS 'files';
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `song` (
|
|
||||||
`imp_date` varchar(50) ,
|
|
||||||
`song_name` varchar(50) ,
|
|
||||||
`artist_name` varchar(50) ,
|
|
||||||
`country` varchar(20) ,
|
|
||||||
`f_id` bigINT ,
|
|
||||||
`g_name` varchar(20) ,
|
|
||||||
`rating` INT ,
|
|
||||||
`languages` varchar(20) ,
|
|
||||||
`releasedate` varchar(50) ,
|
|
||||||
`resolution` bigINT NOT NULL,
|
|
||||||
PRIMARY KEY (`imp_date`,`song_name`)
|
|
||||||
);
|
|
||||||
COMMENT ON TABLE song IS 'song';
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `company` (
|
|
||||||
`imp_date` varchar(50) ,
|
|
||||||
`company_id` varchar(50) NOT NULL ,
|
|
||||||
`company_name` varchar(50) NOT NULL ,
|
|
||||||
`headquarter_address` varchar(50) NOT NULL ,
|
|
||||||
`company_established_time` varchar(20) NOT NULL ,
|
|
||||||
`founder` varchar(20) NOT NULL ,
|
|
||||||
`ceo` varchar(20) NOT NULL ,
|
|
||||||
`annual_turnover` bigint(15) ,
|
|
||||||
`employee_count` int(7) ,
|
|
||||||
PRIMARY KEY (`company_id`)
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `brand` (
|
|
||||||
`imp_date` varchar(50) ,
|
|
||||||
`brand_id` varchar(50) NOT NULL ,
|
|
||||||
`brand_name` varchar(50) NOT NULL ,
|
|
||||||
`brand_established_time` varchar(20) NOT NULL ,
|
|
||||||
`company_id` varchar(50) NOT NULL ,
|
|
||||||
`legal_representative` varchar(20) NOT NULL ,
|
|
||||||
`registered_capital` bigint(15) ,
|
|
||||||
PRIMARY KEY (`brand_id`)
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `company_revenue` (
|
|
||||||
`imp_date` varchar(50) ,
|
|
||||||
`company_id` varchar(50) NOT NULL ,
|
|
||||||
`brand_id` varchar(50) NOT NULL ,
|
|
||||||
`revenue_proportion` double NOT NULL,
|
|
||||||
`profit_proportion` double NOT NULL ,
|
|
||||||
`expenditure_proportion` double NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `company_brand_revenue` (
|
|
||||||
`imp_date` varchar(50) ,
|
|
||||||
`year_time` varchar(10) NOT NULL ,
|
|
||||||
`brand_id` varchar(50) NOT NULL ,
|
|
||||||
`revenue` bigint(15) NOT NULL,
|
|
||||||
`profit` bigint(15) NOT NULL ,
|
|
||||||
`revenue_growth_year_on_year` double NOT NULL ,
|
|
||||||
`profit_growth_year_on_year` double NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS s2_system_config
|
CREATE TABLE IF NOT EXISTS s2_system_config
|
||||||
(
|
(
|
||||||
id INT PRIMARY KEY AUTO_INCREMENT,
|
id INT PRIMARY KEY AUTO_INCREMENT,
|
||||||
|
|||||||
@@ -0,0 +1,64 @@
|
|||||||
|
CREATE TABLE IF NOT EXISTS `s2_user_department` (
|
||||||
|
`user_name` varchar(200) NOT NULL,
|
||||||
|
`department` varchar(200) NOT NULL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `s2_pv_uv_statis` (
|
||||||
|
`imp_date` varchar(200) NOT NULL,
|
||||||
|
`user_name` varchar(200) NOT NULL,
|
||||||
|
`page` varchar(200) NOT NULL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `s2_stay_time_statis` (
|
||||||
|
`imp_date` varchar(200) NOT NULL,
|
||||||
|
`user_name` varchar(200) NOT NULL,
|
||||||
|
`stay_hours` DOUBLE NOT NULL,
|
||||||
|
`page` varchar(200) NOT NULL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `singer` (
|
||||||
|
`singer_name` varchar(200) NOT NULL,
|
||||||
|
`act_area` varchar(200) NOT NULL,
|
||||||
|
`song_name` varchar(200) NOT NULL,
|
||||||
|
`genre` varchar(200) NOT NULL,
|
||||||
|
`js_play_cnt` bigint DEFAULT NULL,
|
||||||
|
`down_cnt` bigint DEFAULT NULL,
|
||||||
|
`favor_cnt` bigint DEFAULT NULL
|
||||||
|
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
-- benchmark
|
||||||
|
CREATE TABLE IF NOT EXISTS `genre` (
|
||||||
|
`g_name` varchar(20) NOT NULL , -- genre name
|
||||||
|
`rating` INT ,
|
||||||
|
`most_popular_in` varchar(50) ,
|
||||||
|
PRIMARY KEY (`g_name`)
|
||||||
|
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `artist` (
|
||||||
|
`artist_name` varchar(50) NOT NULL , -- genre name
|
||||||
|
`citizenship` varchar(20) ,
|
||||||
|
`gender` varchar(20) ,
|
||||||
|
`g_name` varchar(50)
|
||||||
|
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `files` (
|
||||||
|
`f_id` bigINT NOT NULL,
|
||||||
|
`artist_name` varchar(50) ,
|
||||||
|
`file_size` varchar(20) ,
|
||||||
|
`duration` varchar(20) ,
|
||||||
|
`formats` varchar(20) ,
|
||||||
|
PRIMARY KEY (`f_id`)
|
||||||
|
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `song` (
|
||||||
|
`imp_date` varchar(50) ,
|
||||||
|
`song_name` varchar(50) ,
|
||||||
|
`artist_name` varchar(50) ,
|
||||||
|
`country` varchar(20) ,
|
||||||
|
`f_id` bigINT ,
|
||||||
|
`g_name` varchar(20) ,
|
||||||
|
`rating` int ,
|
||||||
|
`languages` varchar(20) ,
|
||||||
|
`releasedate` varchar(50) ,
|
||||||
|
`resolution` bigINT NOT NULL
|
||||||
|
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
@@ -1,68 +1,3 @@
|
|||||||
CREATE TABLE IF NOT EXISTS `s2_user_department` (
|
|
||||||
`user_name` varchar(200) NOT NULL,
|
|
||||||
`department` varchar(200) NOT NULL
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `s2_pv_uv_statis` (
|
|
||||||
`imp_date` varchar(200) NOT NULL,
|
|
||||||
`user_name` varchar(200) NOT NULL,
|
|
||||||
`page` varchar(200) NOT NULL
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `s2_stay_time_statis` (
|
|
||||||
`imp_date` varchar(200) NOT NULL,
|
|
||||||
`user_name` varchar(200) NOT NULL,
|
|
||||||
`stay_hours` DOUBLE NOT NULL,
|
|
||||||
`page` varchar(200) NOT NULL
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `singer` (
|
|
||||||
`singer_name` varchar(200) NOT NULL,
|
|
||||||
`act_area` varchar(200) NOT NULL,
|
|
||||||
`song_name` varchar(200) NOT NULL,
|
|
||||||
`genre` varchar(200) NOT NULL,
|
|
||||||
`js_play_cnt` bigint DEFAULT NULL,
|
|
||||||
`down_cnt` bigint DEFAULT NULL,
|
|
||||||
`favor_cnt` bigint DEFAULT NULL
|
|
||||||
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
|
|
||||||
-- benchmark
|
|
||||||
CREATE TABLE IF NOT EXISTS `genre` (
|
|
||||||
`g_name` varchar(20) NOT NULL , -- genre name
|
|
||||||
`rating` INT ,
|
|
||||||
`most_popular_in` varchar(50) ,
|
|
||||||
PRIMARY KEY (`g_name`)
|
|
||||||
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `artist` (
|
|
||||||
`artist_name` varchar(50) NOT NULL , -- genre name
|
|
||||||
`citizenship` varchar(20) ,
|
|
||||||
`gender` varchar(20) ,
|
|
||||||
`g_name` varchar(50)
|
|
||||||
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `files` (
|
|
||||||
`f_id` bigINT NOT NULL,
|
|
||||||
`artist_name` varchar(50) ,
|
|
||||||
`file_size` varchar(20) ,
|
|
||||||
`duration` varchar(20) ,
|
|
||||||
`formats` varchar(20) ,
|
|
||||||
PRIMARY KEY (`f_id`)
|
|
||||||
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `song` (
|
|
||||||
`imp_date` varchar(50) ,
|
|
||||||
`song_name` varchar(50) ,
|
|
||||||
`artist_name` varchar(50) ,
|
|
||||||
`country` varchar(20) ,
|
|
||||||
`f_id` bigINT ,
|
|
||||||
`g_name` varchar(20) ,
|
|
||||||
`rating` int ,
|
|
||||||
`languages` varchar(20) ,
|
|
||||||
`releasedate` varchar(50) ,
|
|
||||||
`resolution` bigINT NOT NULL
|
|
||||||
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `s2_agent` (
|
CREATE TABLE IF NOT EXISTS `s2_agent` (
|
||||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
`name` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
|
`name` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ s2:
|
|||||||
date: true
|
date: true
|
||||||
|
|
||||||
demo:
|
demo:
|
||||||
names: S2VisitsDemo,S2ArtistDemo,SmallTalkDemo
|
names: S2VisitsDemo,S2SingerDemo,S2CompanyDemo,S2SmallTalkDemo,
|
||||||
enableLLM: true
|
enableLLM: true
|
||||||
|
|
||||||
authentication:
|
authentication:
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ s2:
|
|||||||
date: true
|
date: true
|
||||||
|
|
||||||
demo:
|
demo:
|
||||||
names: S2VisitsDemo,S2ArtistDemo
|
names: S2VisitsDemo,S2SingerDemo
|
||||||
enableLLM: false
|
enableLLM: false
|
||||||
|
|
||||||
authentication:
|
authentication:
|
||||||
|
|||||||
Reference in New Issue
Block a user