(improvement)(build) Add spotless during the build process. (#1639)

This commit is contained in:
lexluo09
2024-09-07 00:36:17 +08:00
committed by GitHub
parent ee15a88b06
commit 5f59e89eea
986 changed files with 15609 additions and 12706 deletions

View File

@@ -8,7 +8,8 @@ import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@SpringBootApplication(scanBasePackages = {"com.tencent.supersonic", "dev.langchain4j"},
@SpringBootApplication(
scanBasePackages = {"com.tencent.supersonic", "dev.langchain4j"},
exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class})
@EnableScheduling
@EnableAsync

View File

@@ -22,56 +22,39 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2;
@EnableOpenApi
public class SwaggerConfiguration {
/**
* 标题
*/
/** 标题 */
@Value("${swagger.title}")
private String title;
/**
* 基本包
*/
/** 基本包 */
@Value("${swagger.base.package}")
private String basePackage;
/**
* 描述
*/
/** 描述 */
@Value("${swagger.description}")
private String description;
/**
* URL
*/
/** URL */
@Value("${swagger.url}")
private String url;
/**
* 作者
*/
/** 作者 */
@Value("${swagger.contact.name}")
private String contactName;
/**
* 作者网址
*/
/** 作者网址 */
@Value("${swagger.contact.url}")
private String contactUrl;
/**
* 作者邮箱
*/
/** 作者邮箱 */
@Value("${swagger.contact.email}")
private String contactEmail;
/**
* 版本
*/
/** 版本 */
@Value("${swagger.version}")
private String version;
@Autowired
private AuthenticationConfig authenticationConfig;
@Autowired private AuthenticationConfig authenticationConfig;
@Bean
public Docket createRestApi() {
@@ -81,13 +64,15 @@ public class SwaggerConfiguration {
.select()
.apis(RequestHandlerSelectors.basePackage(basePackage))
.paths(PathSelectors.any())
.build().securitySchemes(Lists.newArrayList(apiKey()));
.build()
.securitySchemes(Lists.newArrayList(apiKey()));
}
private ApiKey apiKey() {
return new ApiKey(authenticationConfig.getTokenHttpHeaderKey(),
authenticationConfig.getTokenHttpHeaderKey(), "header");
return new ApiKey(
authenticationConfig.getTokenHttpHeaderKey(),
authenticationConfig.getTokenHttpHeaderKey(),
"header");
}
private ApiInfo apiInfo() {
@@ -99,4 +84,4 @@ public class SwaggerConfiguration {
.version(version)
.build();
}
}
}

View File

@@ -1,5 +1,7 @@
package com.tencent.supersonic.db;
import javax.sql.DataSource;
import com.baomidou.mybatisplus.core.MybatisConfiguration;
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
import org.apache.ibatis.annotations.Mapper;
@@ -9,9 +11,6 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import javax.sql.DataSource;
@Configuration
@MapperScan(value = "com.tencent.supersonic", annotationClass = Mapper.class)
public class MybatisConfig {
@@ -26,7 +25,8 @@ public class MybatisConfig {
bean.setConfiguration(configuration);
bean.setDataSource(dataSource);
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(MAPPER_LOCATION));
bean.setMapperLocations(
new PathMatchingResourcePatternResolver().getResources(MAPPER_LOCATION));
return bean.getObject();
}
}

View File

@@ -8,23 +8,23 @@ 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.DefaultDisplayInfo;
import com.tencent.supersonic.headless.api.pojo.TimeDefaultConfig;
import com.tencent.supersonic.headless.api.pojo.ModelDetail;
import com.tencent.supersonic.headless.api.pojo.Dim;
import com.tencent.supersonic.headless.api.pojo.DimensionTimeTypeParams;
import com.tencent.supersonic.headless.api.pojo.DataSetDetail;
import com.tencent.supersonic.headless.api.pojo.DataSetModelConfig;
import com.tencent.supersonic.headless.api.pojo.DefaultDisplayInfo;
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.MetricTypeDefaultConfig;
import com.tencent.supersonic.headless.api.pojo.ModelDetail;
import com.tencent.supersonic.headless.api.pojo.QueryConfig;
import com.tencent.supersonic.headless.api.pojo.TagTypeDefaultConfig;
import com.tencent.supersonic.headless.api.pojo.MetricTypeDefaultConfig;
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.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.request.DataSetReq;
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;
@@ -53,7 +53,7 @@ public class CspiderDemo extends S2BaseDemo {
addModelRela_3(s2Domain, songModelResp, artistModelResp);
addModelRela_4(s2Domain, songModelResp, genreModelResp);
addModelRela_5(s2Domain, songModelResp, filesModelResp);
//batchPushlishMetric();
// batchPushlishMetric();
} catch (Exception e) {
log.error("Failed to add bench mark demo data", e);
}
@@ -149,7 +149,7 @@ public class CspiderDemo extends S2BaseDemo {
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));
// dimensions.add(new Dim("艺术家名称", "artist_name", DimensionType.categorical.name(), 1));
modelDetail.setDimensions(dimensions);
List<Identify> identifiers = new ArrayList<>();
@@ -160,7 +160,8 @@ public class CspiderDemo extends S2BaseDemo {
modelDetail.setMeasures(Collections.emptyList());
modelDetail.setQueryType("sql_query");
modelDetail.setSqlQuery("SELECT f_id, artist_name, file_size, duration, formats FROM files");
modelDetail.setSqlQuery(
"SELECT f_id, artist_name, file_size, duration, formats FROM files");
modelReq.setModelDetail(modelDetail);
return modelService.createModel(modelReq, user);
}
@@ -187,7 +188,7 @@ public class CspiderDemo extends S2BaseDemo {
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"));
// identifiers.add(new Identify("艺术家名称", IdentifyType.foreign.name(), "artist_name"));
modelDetail.setIdentifiers(identifiers);
@@ -197,8 +198,9 @@ public class CspiderDemo extends S2BaseDemo {
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");
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, user);
}
@@ -236,7 +238,8 @@ public class CspiderDemo extends S2BaseDemo {
dataSetService.save(dataSetReq, User.getFakeUser());
}
public void addModelRela_1(DomainResp s2Domain, ModelResp genreModelResp, ModelResp artistModelResp) {
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();
@@ -248,9 +251,11 @@ public class CspiderDemo extends S2BaseDemo {
modelRelaService.save(modelRelaReq, user);
}
public void addModelRela_2(DomainResp s2Domain, ModelResp filesModelResp, ModelResp artistModelResp) {
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));
joinConditions.add(
new JoinCondition("artist_name", "artist_name", FilterOperatorEnum.EQUALS));
ModelRela modelRelaReq = new ModelRela();
modelRelaReq.setDomainId(s2Domain.getId());
modelRelaReq.setFromModelId(filesModelResp.getId());
@@ -260,9 +265,11 @@ public class CspiderDemo extends S2BaseDemo {
modelRelaService.save(modelRelaReq, user);
}
public void addModelRela_3(DomainResp s2Domain, ModelResp songModelResp, ModelResp artistModelResp) {
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));
joinConditions.add(
new JoinCondition("artist_name", "artist_name", FilterOperatorEnum.EQUALS));
ModelRela modelRelaReq = new ModelRela();
modelRelaReq.setDomainId(s2Domain.getId());
modelRelaReq.setFromModelId(songModelResp.getId());
@@ -272,7 +279,8 @@ public class CspiderDemo extends S2BaseDemo {
modelRelaService.save(modelRelaReq, user);
}
public void addModelRela_4(DomainResp s2Domain, ModelResp songModelResp, ModelResp genreModelResp) {
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();
@@ -284,7 +292,8 @@ public class CspiderDemo extends S2BaseDemo {
modelRelaService.save(modelRelaReq, user);
}
public void addModelRela_5(DomainResp s2Domain, ModelResp songModelResp, ModelResp filesModelResp) {
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();
@@ -300,5 +309,4 @@ public class CspiderDemo extends S2BaseDemo {
List<Long> ids = Lists.newArrayList(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L);
metricService.batchPublish(ids, User.getFakeUser());
}
}

View File

@@ -10,26 +10,26 @@ import com.tencent.supersonic.chat.server.agent.LLMParserTool;
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.common.pojo.enums.FilterOperatorEnum;
import com.tencent.supersonic.common.util.JsonUtil;
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.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.DataSetDetail;
import com.tencent.supersonic.headless.api.pojo.DataSetModelConfig;
import com.tencent.supersonic.headless.api.pojo.QueryConfig;
import com.tencent.supersonic.headless.api.pojo.MetricTypeDefaultConfig;
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.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.MetricReq;
import com.tencent.supersonic.headless.api.pojo.request.ModelReq;
import com.tencent.supersonic.headless.api.pojo.request.DataSetReq;
import com.tencent.supersonic.headless.api.pojo.response.MetricResp;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
@@ -60,7 +60,6 @@ public class DuSQLDemo extends S2BaseDemo {
} catch (Exception e) {
log.error("Failed to add bench mark demo data", e);
}
}
@Override
@@ -80,7 +79,7 @@ public class DuSQLDemo extends S2BaseDemo {
domainService.createDomain(domainReq, user);
}
//9
// 9
public void addModel_1() throws Exception {
ModelReq modelReq = new ModelReq();
modelReq.setName("公司");
@@ -95,12 +94,14 @@ public class DuSQLDemo extends S2BaseDemo {
ModelDetail modelDetail = new ModelDetail();
List<Dim> dimensions = new ArrayList<>();
Dim dimension1 = new Dim("", "imp_date", DimensionType.partition_time.name(), 0);
DimensionTimeTypeParams dimensionTimeTypeParams = new DimensionTimeTypeParams("false", "none");
DimensionTimeTypeParams dimensionTimeTypeParams =
new DimensionTimeTypeParams("false", "none");
dimension1.setTypeParams(dimensionTimeTypeParams);
dimensions.add(dimension1);
dimensions.add(new Dim("公司名称", "company_name", DimensionType.categorical.name(), 1));
dimensions.add(new Dim("总部地点", "headquarter_address", DimensionType.categorical.name(), 1));
dimensions.add(new Dim("公司成立时间", "company_established_time", DimensionType.categorical.name(), 1));
dimensions.add(
new Dim("公司成立时间", "company_established_time", DimensionType.categorical.name(), 1));
dimensions.add(new Dim("创始人", "founder", DimensionType.categorical.name(), 1));
dimensions.add(new Dim("首席执行官", "ceo", DimensionType.categorical.name(), 1));
modelDetail.setDimensions(dimensions);
@@ -116,8 +117,9 @@ public class DuSQLDemo extends S2BaseDemo {
modelDetail.setMeasures(measures);
modelDetail.setQueryType("sql_query");
modelDetail.setSqlQuery("SELECT imp_date,company_id,company_name,headquarter_address,"
+ "company_established_time,founder,ceo,annual_turnover,employee_count FROM company");
modelDetail.setSqlQuery(
"SELECT imp_date,company_id,company_name,headquarter_address,"
+ "company_established_time,founder,ceo,annual_turnover,employee_count FROM company");
modelReq.setModelDetail(modelDetail);
modelService.createModel(modelReq, user);
}
@@ -137,12 +139,15 @@ public class DuSQLDemo extends S2BaseDemo {
ModelDetail modelDetail = new ModelDetail();
List<Dim> dimensions = new ArrayList<>();
Dim dimension1 = new Dim("", "imp_date", DimensionType.partition_time.name(), 0);
DimensionTimeTypeParams dimensionTimeTypeParams = new DimensionTimeTypeParams("false", "none");
DimensionTimeTypeParams dimensionTimeTypeParams =
new DimensionTimeTypeParams("false", "none");
dimension1.setTypeParams(dimensionTimeTypeParams);
dimensions.add(dimension1);
dimensions.add(new Dim("品牌名称", "brand_name", DimensionType.categorical.name(), 1));
dimensions.add(new Dim("品牌成立时间", "brand_established_time", DimensionType.categorical.name(), 1));
dimensions.add(new Dim("法定代表人", "legal_representative", DimensionType.categorical.name(), 1));
dimensions.add(
new Dim("品牌成立时间", "brand_established_time", DimensionType.categorical.name(), 1));
dimensions.add(
new Dim("法定代表人", "legal_representative", DimensionType.categorical.name(), 1));
modelDetail.setDimensions(dimensions);
List<Identify> identifiers = new ArrayList<>();
@@ -155,8 +160,9 @@ public class DuSQLDemo extends S2BaseDemo {
modelDetail.setMeasures(measures);
modelDetail.setQueryType("sql_query");
modelDetail.setSqlQuery("SELECT imp_date,brand_id,brand_name,brand_established_time,"
+ "company_id,legal_representative,registered_capital FROM brand");
modelDetail.setSqlQuery(
"SELECT imp_date,brand_id,brand_name,brand_established_time,"
+ "company_id,legal_representative,registered_capital FROM brand");
modelReq.setModelDetail(modelDetail);
modelService.createModel(modelReq, user);
}
@@ -176,7 +182,8 @@ public class DuSQLDemo extends S2BaseDemo {
ModelDetail modelDetail = new ModelDetail();
List<Dim> dimensions = new ArrayList<>();
Dim dimension1 = new Dim("", "imp_date", DimensionType.partition_time.name(), 0);
DimensionTimeTypeParams dimensionTimeTypeParams = new DimensionTimeTypeParams("false", "none");
DimensionTimeTypeParams dimensionTimeTypeParams =
new DimensionTimeTypeParams("false", "none");
dimension1.setTypeParams(dimensionTimeTypeParams);
dimensions.add(dimension1);
modelDetail.setDimensions(dimensions);
@@ -194,8 +201,9 @@ public class DuSQLDemo extends S2BaseDemo {
modelDetail.setMeasures(measures);
modelDetail.setQueryType("sql_query");
modelDetail.setSqlQuery("SELECT imp_date,company_id,brand_id,revenue_proportion,"
+ "profit_proportion,expenditure_proportion FROM company_revenue");
modelDetail.setSqlQuery(
"SELECT imp_date,company_id,brand_id,revenue_proportion,"
+ "profit_proportion,expenditure_proportion FROM company_revenue");
modelReq.setModelDetail(modelDetail);
modelService.createModel(modelReq, user);
MetricResp metricResp = metricService.getMetric(13L, user);
@@ -221,7 +229,8 @@ public class DuSQLDemo extends S2BaseDemo {
ModelDetail modelDetail = new ModelDetail();
List<Dim> dimensions = new ArrayList<>();
Dim dimension1 = new Dim("", "imp_date", DimensionType.partition_time.name(), 0);
DimensionTimeTypeParams dimensionTimeTypeParams = new DimensionTimeTypeParams("false", "none");
DimensionTimeTypeParams dimensionTimeTypeParams =
new DimensionTimeTypeParams("false", "none");
dimension1.setTypeParams(dimensionTimeTypeParams);
dimensions.add(dimension1);
dimensions.add(new Dim("年份", "year_time", DimensionType.categorical.name(), 1));
@@ -234,16 +243,19 @@ public class DuSQLDemo extends S2BaseDemo {
List<Measure> measures = new ArrayList<>();
measures.add(new Measure("营收", "revenue", AggOperatorEnum.SUM.name(), 1));
measures.add(new Measure("利润", "profit", AggOperatorEnum.SUM.name(), 1));
measures.add(new Measure("营收同比增长", "revenue_growth_year_on_year", AggOperatorEnum.SUM.name(), 1));
measures.add(new Measure("利润同比增长", "profit_growth_year_on_year", AggOperatorEnum.SUM.name(), 1));
measures.add(
new Measure(
"营收同比增长", "revenue_growth_year_on_year", AggOperatorEnum.SUM.name(), 1));
measures.add(
new Measure("利润同比增长", "profit_growth_year_on_year", AggOperatorEnum.SUM.name(), 1));
modelDetail.setMeasures(measures);
modelDetail.setQueryType("sql_query");
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");
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");
modelReq.setModelDetail(modelDetail);
modelService.createModel(modelReq, user);
}
public void addDataSet_1() {
@@ -253,11 +265,20 @@ public class DuSQLDemo extends S2BaseDemo {
dataSetReq.setDomainId(4L);
dataSetReq.setDescription("DuSQL互联网企业数据源相关的指标和维度等");
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)));
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();
dsDetail.setDataSetModelConfigs(viewModelConfigs);
@@ -276,7 +297,8 @@ public class DuSQLDemo extends S2BaseDemo {
public void addModelRela_1() {
List<JoinCondition> joinConditions = Lists.newArrayList();
joinConditions.add(new JoinCondition("company_id", "company_id", FilterOperatorEnum.EQUALS));
joinConditions.add(
new JoinCondition("company_id", "company_id", FilterOperatorEnum.EQUALS));
ModelRela modelRelaReq = new ModelRela();
modelRelaReq.setDomainId(4L);
modelRelaReq.setFromModelId(9L);
@@ -288,7 +310,8 @@ public class DuSQLDemo extends S2BaseDemo {
public void addModelRela_2() {
List<JoinCondition> joinConditions = Lists.newArrayList();
joinConditions.add(new JoinCondition("company_id", "company_id", FilterOperatorEnum.EQUALS));
joinConditions.add(
new JoinCondition("company_id", "company_id", FilterOperatorEnum.EQUALS));
ModelRela modelRelaReq = new ModelRela();
modelRelaReq.setDomainId(4L);
modelRelaReq.setFromModelId(9L);
@@ -341,5 +364,4 @@ public class DuSQLDemo extends S2BaseDemo {
log.info("agent:{}", JsonUtil.toString(agent));
agentService.createAgent(agent, User.getFakeUser());
}
}

View File

@@ -97,8 +97,9 @@ public class S2ArtistDemo extends S2BaseDemo {
return domainService.createDomain(domainReq, user);
}
public ModelResp addModel(DomainResp singerDomain,
DatabaseResp s2Database, TagObjectResp singerTagObject) throws Exception {
public ModelResp addModel(
DomainResp singerDomain, DatabaseResp s2Database, TagObjectResp singerTagObject)
throws Exception {
ModelReq modelReq = new ModelReq();
modelReq.setName("歌手库");
modelReq.setBizName("singer");
@@ -118,12 +119,9 @@ public class S2ArtistDemo extends S2BaseDemo {
modelDetail.setIdentifiers(identifiers);
List<Dim> dimensions = new ArrayList<>();
dimensions.add(new Dim("活跃区域", "act_area",
DimensionType.categorical.name(), 1, 1));
dimensions.add(new Dim("代表作", "song_name",
DimensionType.categorical.name(), 1));
dimensions.add(new Dim("流派", "genre",
DimensionType.categorical.name(), 1, 1));
dimensions.add(new Dim("活跃区域", "act_area", DimensionType.categorical.name(), 1, 1));
dimensions.add(new Dim("代表作", "song_name", DimensionType.categorical.name(), 1));
dimensions.add(new Dim("流派", "genre", DimensionType.categorical.name(), 1, 1));
modelDetail.setDimensions(dimensions);
Measure measure1 = new Measure("播放量", "js_play_cnt", "sum", 1);
@@ -131,23 +129,27 @@ public class S2ArtistDemo extends S2BaseDemo {
Measure measure3 = new Measure("收藏量", "favor_cnt", "sum", 1);
modelDetail.setMeasures(Lists.newArrayList(measure1, measure2, measure3));
modelDetail.setQueryType("sql_query");
modelDetail.setSqlQuery("select singer_name, act_area, song_name, genre, "
+ "js_play_cnt, down_cnt, favor_cnt from singer");
modelDetail.setSqlQuery(
"select singer_name, act_area, song_name, genre, "
+ "js_play_cnt, down_cnt, favor_cnt from singer");
modelReq.setModelDetail(modelDetail);
return modelService.createModel(modelReq, user);
}
private void addTags(ModelResp model) {
addTag(dimensionService.getDimension("act_area", model.getId()).getId(),
addTag(
dimensionService.getDimension("act_area", model.getId()).getId(),
TagDefineType.DIMENSION);
addTag(dimensionService.getDimension("song_name", model.getId()).getId(),
addTag(
dimensionService.getDimension("song_name", model.getId()).getId(),
TagDefineType.DIMENSION);
addTag(dimensionService.getDimension("genre", model.getId()).getId(),
addTag(
dimensionService.getDimension("genre", model.getId()).getId(),
TagDefineType.DIMENSION);
addTag(dimensionService.getDimension("singer_name", model.getId()).getId(),
addTag(
dimensionService.getDimension("singer_name", model.getId()).getId(),
TagDefineType.DIMENSION);
addTag(metricService.getMetric(model.getId(), "js_play_cnt").getId(),
TagDefineType.METRIC);
addTag(metricService.getMetric(model.getId(), "js_play_cnt").getId(), TagDefineType.METRIC);
}
public long addDataSet(DomainResp singerDomain, ModelResp singerModel) {
@@ -209,5 +211,4 @@ public class S2ArtistDemo extends S2BaseDemo {
agent.setAgentConfig(JSONObject.toJSONString(agentConfig));
agentService.createAgent(agent, User.getFakeUser());
}
}

View File

@@ -11,6 +11,7 @@ import com.tencent.supersonic.common.service.SystemConfigService;
import com.tencent.supersonic.common.util.AESEncryptionUtil;
import com.tencent.supersonic.headless.api.pojo.DataSetModelConfig;
import com.tencent.supersonic.headless.api.pojo.DrillDownDimension;
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
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.TagDefineType;
@@ -20,7 +21,6 @@ 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.MetricResp;
import com.tencent.supersonic.headless.api.pojo.response.ModelResp;
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
import com.tencent.supersonic.headless.server.service.CanvasService;
import com.tencent.supersonic.headless.server.service.DataSetService;
import com.tencent.supersonic.headless.server.service.DatabaseService;
@@ -49,46 +49,29 @@ public abstract class S2BaseDemo implements CommandLineRunner {
protected DatabaseResp demoDatabaseResp;
protected User user = User.getFakeUser();
@Autowired
protected DatabaseService databaseService;
@Autowired
protected DomainService domainService;
@Autowired
protected ModelService modelService;
@Autowired
protected ModelRelaService modelRelaService;
@Autowired
protected DimensionService dimensionService;
@Autowired
protected MetricService metricService;
@Autowired
protected TagMetaService tagMetaService;
@Autowired
protected AuthService authService;
@Autowired
protected DataSetService dataSetService;
@Autowired
protected TermService termService;
@Autowired
protected PluginService pluginService;
@Autowired
protected DataSourceProperties dataSourceProperties;
@Autowired
protected TagObjectService tagObjectService;
@Autowired
protected ChatQueryService chatQueryService;
@Autowired
protected ChatManageService chatManageService;
@Autowired
protected AgentService agentService;
@Autowired
protected SystemConfigService sysParameterService;
@Autowired
protected CanvasService canvasService;
@Autowired
protected DictWordService dictWordService;
@Autowired protected DatabaseService databaseService;
@Autowired protected DomainService domainService;
@Autowired protected ModelService modelService;
@Autowired protected ModelRelaService modelRelaService;
@Autowired protected DimensionService dimensionService;
@Autowired protected MetricService metricService;
@Autowired protected TagMetaService tagMetaService;
@Autowired protected AuthService authService;
@Autowired protected DataSetService dataSetService;
@Autowired protected TermService termService;
@Autowired protected PluginService pluginService;
@Autowired protected DataSourceProperties dataSourceProperties;
@Autowired protected TagObjectService tagObjectService;
@Autowired protected ChatQueryService chatQueryService;
@Autowired protected ChatManageService chatManageService;
@Autowired protected AgentService agentService;
@Autowired protected SystemConfigService sysParameterService;
@Autowired protected CanvasService canvasService;
@Autowired protected DictWordService dictWordService;
@Value("${s2.demo.names:S2VisitsDemo}")
protected List<String> demoList;
@Value("${s2.demo.enableLLM:true}")
protected boolean demoEnableLlm;
@@ -123,7 +106,8 @@ public abstract class S2BaseDemo implements CommandLineRunner {
}
databaseReq.setUrl(url);
databaseReq.setUsername(dataSourceProperties.getUsername());
databaseReq.setPassword(AESEncryptionUtil.aesEncryptECB(dataSourceProperties.getPassword()));
databaseReq.setPassword(
AESEncryptionUtil.aesEncryptECB(dataSourceProperties.getPassword()));
return databaseService.createOrUpdateDatabase(databaseReq, user);
}
@@ -141,11 +125,15 @@ public abstract class S2BaseDemo implements CommandLineRunner {
dataSetModelConfig.setId(modelResp.getId());
MetaFilter metaFilter = new MetaFilter();
metaFilter.setModelIds(Lists.newArrayList(modelResp.getId()));
List<Long> metrics = metricService.getMetrics(metaFilter)
.stream().map(MetricResp::getId).collect(Collectors.toList());
List<Long> metrics =
metricService.getMetrics(metaFilter).stream()
.map(MetricResp::getId)
.collect(Collectors.toList());
dataSetModelConfig.setMetrics(metrics);
List<Long> dimensions = dimensionService.getDimensions(metaFilter)
.stream().map(DimensionResp::getId).collect(Collectors.toList());
List<Long> dimensions =
dimensionService.getDimensions(metaFilter).stream()
.map(DimensionResp::getId)
.collect(Collectors.toList());
dataSetModelConfig.setMetrics(metrics);
dataSetModelConfig.setDimensions(dimensions);
dataSetModelConfigs.add(dataSetModelConfig);
@@ -175,5 +163,4 @@ public abstract class S2BaseDemo implements CommandLineRunner {
protected void updateQueryScore(Integer queryId) {
chatManageService.updateFeedback(queryId, 5, "");
}
}

View File

@@ -86,7 +86,7 @@ public class S2VisitsDemo extends S2BaseDemo {
addModelRela_2(s2Domain, userModel, stayTimeModel);
addTags(userModel);
//create metrics and dimensions
// create metrics and dimensions
DimensionResp departmentDimension = getDimension("department", userModel);
MetricResp metricUv = addMetric_uv(pvUvModel, departmentDimension);
MetricResp metricPv = getMetric("pv", pvUvModel);
@@ -98,21 +98,21 @@ public class S2VisitsDemo extends S2BaseDemo {
updateMetric(stayTimeModel, departmentDimension, userDimension);
updateMetric_pv(pvUvModel, departmentDimension, userDimension, metricPv);
//create data set
// create data set
DataSetResp s2DataSet = addDataSet(s2Domain);
addAuthGroup_1(stayTimeModel);
addAuthGroup_2(stayTimeModel);
//create terms and plugin
// create terms and plugin
addTerm(s2Domain);
addTerm_1(s2Domain);
addPlugin(s2DataSet);
addPlugin_1();
//load dict word
// load dict word
loadDictWord();
//create agent
// create agent
Integer agentId = addAgent(s2DataSet.getId());
addSampleChats(agentId);
updateQueryScore(1);
@@ -150,12 +150,13 @@ public class S2VisitsDemo extends S2BaseDemo {
agent.setDescription("帮助您用自然语言查询指标,支持时间限定、条件筛选、下钻维度以及聚合统计");
agent.setStatus(1);
agent.setEnableSearch(1);
agent.setExamples(Lists.newArrayList(
"超音数访问次数",
"近15天超音数访问次数汇总",
"按部门统计超音数访问人数",
"对比alice和lucy的停留时长",
"超音数访问次数最高的部门"));
agent.setExamples(
Lists.newArrayList(
"超音数访问次数",
"近15天超音数访问次数汇总",
"按部门统计超音数的访问人数",
"对比alice和lucy的停留时长",
"超音数访问次数最高的部门"));
AgentConfig agentConfig = new AgentConfig();
RuleParserTool ruleQueryTool = new RuleParserTool();
ruleQueryTool.setType(AgentToolType.NL2SQL_RULE);
@@ -188,8 +189,9 @@ public class S2VisitsDemo extends S2BaseDemo {
return domainService.createDomain(domainReq, user);
}
public ModelResp addModel_1(DomainResp s2Domain, DatabaseResp s2Database,
TagObjectResp s2TagObject) throws Exception {
public ModelResp addModel_1(
DomainResp s2Domain, DatabaseResp s2Database, TagObjectResp s2TagObject)
throws Exception {
ModelReq modelReq = new ModelReq();
modelReq.setName("用户部门");
modelReq.setBizName("user_department");
@@ -207,8 +209,7 @@ public class S2VisitsDemo extends S2BaseDemo {
modelDetail.setIdentifiers(identifiers);
List<Dim> dimensions = new ArrayList<>();
dimensions.add(new Dim("部门", "department",
DimensionType.categorical.name(), 1));
dimensions.add(new Dim("部门", "department", DimensionType.categorical.name(), 1));
modelDetail.setDimensions(dimensions);
List<Field> fields = Lists.newArrayList();
fields.add(Field.builder().fieldName("user_name").dataType("Varchar").build());
@@ -258,8 +259,9 @@ public class S2VisitsDemo extends S2BaseDemo {
fields.add(Field.builder().fieldName("pv").dataType("Long").build());
fields.add(Field.builder().fieldName("user_id").dataType("Varchar").build());
modelDetail.setFields(fields);
modelDetail.setSqlQuery("SELECT imp_date, user_name, page, 1 as pv, "
+ "user_name as user_id FROM s2_pv_uv_statis");
modelDetail.setSqlQuery(
"SELECT imp_date, user_name, page, 1 as pv, "
+ "user_name as user_id FROM s2_pv_uv_statis");
modelDetail.setQueryType("sql_query");
modelReq.setModelDetail(modelDetail);
return modelService.createModel(modelReq, user);
@@ -300,13 +302,15 @@ public class S2VisitsDemo extends S2BaseDemo {
fields.add(Field.builder().fieldName("page").dataType("Varchar").build());
fields.add(Field.builder().fieldName("stay_hours").dataType("Double").build());
modelDetail.setFields(fields);
modelDetail.setSqlQuery("select imp_date,user_name,stay_hours,page from s2_stay_time_statis");
modelDetail.setSqlQuery(
"select imp_date,user_name,stay_hours,page from s2_stay_time_statis");
modelDetail.setQueryType("sql_query");
modelReq.setModelDetail(modelDetail);
return modelService.createModel(modelReq, user);
}
public void addModelRela_1(DomainResp s2Domain, ModelResp userDepartmentModel, ModelResp pvUvModel) {
public void addModelRela_1(
DomainResp s2Domain, ModelResp userDepartmentModel, ModelResp pvUvModel) {
List<JoinCondition> joinConditions = Lists.newArrayList();
joinConditions.add(new JoinCondition("user_name", "user_name", FilterOperatorEnum.EQUALS));
ModelRela modelRelaReq = new ModelRela();
@@ -318,7 +322,8 @@ public class S2VisitsDemo extends S2BaseDemo {
modelRelaService.save(modelRelaReq, user);
}
public void addModelRela_2(DomainResp s2Domain, ModelResp userDepartmentModel, ModelResp stayTimeModel) {
public void addModelRela_2(
DomainResp s2Domain, ModelResp userDepartmentModel, ModelResp stayTimeModel) {
List<JoinCondition> joinConditions = Lists.newArrayList();
joinConditions.add(new JoinCondition("user_name", "user_name", FilterOperatorEnum.EQUALS));
ModelRela modelRelaReq = new ModelRela();
@@ -331,11 +336,13 @@ public class S2VisitsDemo extends S2BaseDemo {
}
private void addTags(ModelResp model) {
addTag(dimensionService.getDimension("department", model.getId()).getId(),
addTag(
dimensionService.getDimension("department", model.getId()).getId(),
TagDefineType.DIMENSION);
}
public void updateDimension(ModelResp stayTimeModel, DimensionResp pageDimension) throws Exception {
public void updateDimension(ModelResp stayTimeModel, DimensionResp pageDimension)
throws Exception {
DimensionReq dimensionReq = new DimensionReq();
dimensionReq.setType(DimensionType.categorical.name());
dimensionReq.setId(pageDimension.getId());
@@ -351,10 +358,10 @@ public class S2VisitsDemo extends S2BaseDemo {
dimensionService.updateDimension(dimensionReq, user);
}
public void updateMetric(ModelResp stayTimeModel, DimensionResp departmentDimension,
DimensionResp userDimension) throws Exception {
MetricResp stayHoursMetric =
metricService.getMetric(stayTimeModel.getId(), "stay_hours");
public void updateMetric(
ModelResp stayTimeModel, DimensionResp departmentDimension, DimensionResp userDimension)
throws Exception {
MetricResp stayHoursMetric = metricService.getMetric(stayTimeModel.getId(), "stay_hours");
MetricReq metricReq = new MetricReq();
metricReq.setModelId(stayTimeModel.getId());
metricReq.setId(stayHoursMetric.getId());
@@ -366,19 +373,25 @@ public class S2VisitsDemo extends S2BaseDemo {
MetricDefineByMeasureParams metricTypeParams = new MetricDefineByMeasureParams();
metricTypeParams.setExpr("s2_stay_time_statis_stay_hours");
List<MeasureParam> measures = new ArrayList<>();
MeasureParam measure = new MeasureParam("s2_stay_time_statis_stay_hours",
"", AggOperatorEnum.SUM.getOperator());
MeasureParam measure =
new MeasureParam(
"s2_stay_time_statis_stay_hours", "", AggOperatorEnum.SUM.getOperator());
measures.add(measure);
metricTypeParams.setMeasures(measures);
metricReq.setMetricDefineByMeasureParams(metricTypeParams);
metricReq.setMetricDefineType(MetricDefineType.MEASURE);
metricReq.setRelateDimension(getRelateDimension(
Lists.newArrayList(departmentDimension.getId(), userDimension.getId())));
metricReq.setRelateDimension(
getRelateDimension(
Lists.newArrayList(departmentDimension.getId(), userDimension.getId())));
metricService.updateMetric(metricReq, user);
}
public void updateMetric_pv(ModelResp pvUvModel, DimensionResp departmentDimension,
DimensionResp userDimension, MetricResp metricPv) throws Exception {
public void updateMetric_pv(
ModelResp pvUvModel,
DimensionResp departmentDimension,
DimensionResp userDimension,
MetricResp metricPv)
throws Exception {
MetricReq metricReq = new MetricReq();
metricReq.setModelId(pvUvModel.getId());
metricReq.setId(metricPv.getId());
@@ -388,18 +401,20 @@ public class S2VisitsDemo extends S2BaseDemo {
MetricDefineByMeasureParams metricTypeParams = new MetricDefineByMeasureParams();
metricTypeParams.setExpr("s2_pv_uv_statis_pv");
List<MeasureParam> measures = new ArrayList<>();
MeasureParam measure = new MeasureParam("s2_pv_uv_statis_pv",
"", AggOperatorEnum.SUM.getOperator());
MeasureParam measure =
new MeasureParam("s2_pv_uv_statis_pv", "", AggOperatorEnum.SUM.getOperator());
measures.add(measure);
metricTypeParams.setMeasures(measures);
metricReq.setMetricDefineByMeasureParams(metricTypeParams);
metricReq.setMetricDefineType(MetricDefineType.MEASURE);
metricReq.setRelateDimension(getRelateDimension(
Lists.newArrayList(departmentDimension.getId(), userDimension.getId())));
metricReq.setRelateDimension(
getRelateDimension(
Lists.newArrayList(departmentDimension.getId(), userDimension.getId())));
metricService.updateMetric(metricReq, user);
}
public MetricResp addMetric_uv(ModelResp uvModel, DimensionResp departmentDimension) throws Exception {
public MetricResp addMetric_uv(ModelResp uvModel, DimensionResp departmentDimension)
throws Exception {
MetricReq metricReq = new MetricReq();
metricReq.setModelId(uvModel.getId());
metricReq.setName("访问用户数");
@@ -414,13 +429,17 @@ public class S2VisitsDemo extends S2BaseDemo {
metricTypeParams.setFields(fieldParams);
metricReq.setMetricDefineByFieldParams(metricTypeParams);
metricReq.setMetricDefineType(MetricDefineType.FIELD);
metricReq.setRelateDimension(getRelateDimension(
Lists.newArrayList(departmentDimension.getId())));
metricReq.setRelateDimension(
getRelateDimension(Lists.newArrayList(departmentDimension.getId())));
return metricService.createMetric(metricReq, user);
}
public MetricResp addMetric_pv_avg(MetricResp metricPv, MetricResp metricUv,
DimensionResp departmentDimension, ModelResp pvModel) throws Exception {
public MetricResp addMetric_pv_avg(
MetricResp metricPv,
MetricResp metricUv,
DimensionResp departmentDimension,
ModelResp pvModel)
throws Exception {
MetricReq metricReq = new MetricReq();
metricReq.setModelId(pvModel.getId());
metricReq.setName("人均访问次数");
@@ -439,7 +458,8 @@ public class S2VisitsDemo extends S2BaseDemo {
metricTypeParams.setMetrics(metrics);
metricReq.setMetricDefineByMetricParams(metricTypeParams);
metricReq.setMetricDefineType(MetricDefineType.METRIC);
metricReq.setRelateDimension(getRelateDimension(Lists.newArrayList(departmentDimension.getId())));
metricReq.setRelateDimension(
getRelateDimension(Lists.newArrayList(departmentDimension.getId())));
return metricService.createMetric(metricReq, user);
}
@@ -555,5 +575,4 @@ public class S2VisitsDemo extends S2BaseDemo {
private void loadDictWord() {
dictWordService.loadDictWord();
}
}

View File

@@ -5,7 +5,6 @@ import com.google.common.collect.Lists;
import com.tencent.supersonic.auth.api.authentication.pojo.User;
import com.tencent.supersonic.chat.server.agent.Agent;
import com.tencent.supersonic.chat.server.agent.AgentConfig;
import com.tencent.supersonic.chat.server.agent.MultiTurnConfig;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.annotation.Order;
@@ -27,8 +26,7 @@ public class SmallTalkDemo extends S2BaseDemo {
agent.setEnableSearch(0);
AgentConfig agentConfig = new AgentConfig();
agent.setAgentConfig(JSONObject.toJSONString(agentConfig));
agent.setExamples(Lists.newArrayList("如何才能变帅",
"如何才能赚更多钱", "如何才能世界和平"));
agent.setExamples(Lists.newArrayList("如何才能变帅", "如何才能赚更多钱", "如何才能世界和平"));
MultiTurnConfig multiTurnConfig = new MultiTurnConfig();
multiTurnConfig.setEnableMultiTurn(true);
agent.setMultiTurnConfig(multiTurnConfig);
@@ -38,9 +36,8 @@ public class SmallTalkDemo extends S2BaseDemo {
@Override
boolean checkNeedToRun() {
List<String> agentNames = agentService.getAgents()
.stream().map(Agent::getName).collect(Collectors.toList());
List<String> agentNames =
agentService.getAgents().stream().map(Agent::getName).collect(Collectors.toList());
return !agentNames.contains("来闲聊");
}
}