mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-15 22:46:49 +00:00
(improvement)[build] Use Spotless to customize the code formatting (#1750)
This commit is contained in:
@@ -8,8 +8,7 @@ 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
|
||||
|
||||
@@ -54,34 +54,25 @@ public class SwaggerConfiguration {
|
||||
@Value("${swagger.version}")
|
||||
private String version;
|
||||
|
||||
@Autowired private AuthenticationConfig authenticationConfig;
|
||||
@Autowired
|
||||
private AuthenticationConfig authenticationConfig;
|
||||
|
||||
@Bean
|
||||
public Docket createRestApi() {
|
||||
|
||||
return new Docket(DocumentationType.OAS_30)
|
||||
.apiInfo(apiInfo())
|
||||
.select()
|
||||
.apis(RequestHandlerSelectors.basePackage(basePackage))
|
||||
.paths(PathSelectors.any())
|
||||
.build()
|
||||
.securitySchemes(Lists.newArrayList(apiKey()));
|
||||
return new Docket(DocumentationType.OAS_30).apiInfo(apiInfo()).select()
|
||||
.apis(RequestHandlerSelectors.basePackage(basePackage)).paths(PathSelectors.any())
|
||||
.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() {
|
||||
return new ApiInfoBuilder()
|
||||
.title(title)
|
||||
.description(description)
|
||||
.termsOfServiceUrl(url)
|
||||
.contact(new Contact(contactName, contactUrl, contactEmail))
|
||||
.version(version)
|
||||
return new ApiInfoBuilder().title(title).description(description).termsOfServiceUrl(url)
|
||||
.contact(new Contact(contactName, contactUrl, contactEmail)).version(version)
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -150,8 +150,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);
|
||||
}
|
||||
@@ -188,9 +188,8 @@ 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);
|
||||
}
|
||||
@@ -228,8 +227,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();
|
||||
@@ -241,11 +240,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());
|
||||
@@ -255,11 +254,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());
|
||||
@@ -269,8 +268,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();
|
||||
@@ -282,8 +281,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();
|
||||
|
||||
@@ -109,9 +109,8 @@ 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);
|
||||
}
|
||||
@@ -138,8 +137,8 @@ public class DuSQLDemo extends S2BaseDemo {
|
||||
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("法定代表人", "legal_representative", DimensionType.categorical.name(), 1));
|
||||
modelDetail.setDimensions(dimensions);
|
||||
|
||||
List<Identify> identifiers = new ArrayList<>();
|
||||
@@ -152,9 +151,8 @@ 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);
|
||||
}
|
||||
@@ -193,9 +191,8 @@ 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);
|
||||
@@ -235,17 +232,15 @@ 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("营收同比增长", "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);
|
||||
}
|
||||
@@ -257,20 +252,15 @@ 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);
|
||||
@@ -289,8 +279,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);
|
||||
@@ -302,8 +292,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);
|
||||
|
||||
@@ -87,9 +87,8 @@ 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");
|
||||
@@ -119,25 +118,20 @@ 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);
|
||||
}
|
||||
|
||||
@@ -49,25 +49,44 @@ 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;
|
||||
@@ -106,8 +125,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);
|
||||
}
|
||||
|
||||
@@ -125,15 +144,11 @@ 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);
|
||||
|
||||
@@ -150,13 +150,8 @@ 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);
|
||||
@@ -189,9 +184,8 @@ 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");
|
||||
@@ -259,9 +253,8 @@ 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);
|
||||
@@ -302,15 +295,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();
|
||||
@@ -322,8 +315,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();
|
||||
@@ -336,8 +329,7 @@ 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);
|
||||
}
|
||||
|
||||
@@ -358,9 +350,8 @@ public class S2VisitsDemo extends S2BaseDemo {
|
||||
dimensionService.updateDimension(dimensionReq, user);
|
||||
}
|
||||
|
||||
public void updateMetric(
|
||||
ModelResp stayTimeModel, DimensionResp departmentDimension, DimensionResp userDimension)
|
||||
throws Exception {
|
||||
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());
|
||||
@@ -373,25 +364,19 @@ 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());
|
||||
@@ -407,9 +392,8 @@ public class S2VisitsDemo extends S2BaseDemo {
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -434,12 +418,8 @@ public class S2VisitsDemo extends S2BaseDemo {
|
||||
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("人均访问次数");
|
||||
|
||||
@@ -3,4 +3,5 @@ package com.tencent.supersonic;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
|
||||
@SpringBootTest(classes = {StandaloneLauncher.class})
|
||||
public class BaseApplication {}
|
||||
public class BaseApplication {
|
||||
}
|
||||
|
||||
@@ -29,23 +29,19 @@ public class BaseTest extends BaseApplication {
|
||||
protected final String endDay = LocalDate.now().toString();
|
||||
protected final DatePeriodEnum period = DatePeriodEnum.DAY;
|
||||
|
||||
@Autowired protected ChatQueryService chatQueryService;
|
||||
@Autowired protected AgentService agentService;
|
||||
@Autowired
|
||||
protected ChatQueryService chatQueryService;
|
||||
@Autowired
|
||||
protected AgentService agentService;
|
||||
|
||||
protected QueryResult submitMultiTurnChat(String queryText, Integer agentId, Integer chatId)
|
||||
throws Exception {
|
||||
ParseResp parseResp = submitParse(queryText, agentId, chatId);
|
||||
|
||||
SemanticParseInfo semanticParseInfo = parseResp.getSelectedParses().get(0);
|
||||
ChatExecuteReq request =
|
||||
ChatExecuteReq.builder()
|
||||
.queryText(parseResp.getQueryText())
|
||||
.user(DataUtils.getUser())
|
||||
.parseId(semanticParseInfo.getId())
|
||||
.queryId(parseResp.getQueryId())
|
||||
.chatId(chatId)
|
||||
.saveAnswer(true)
|
||||
.build();
|
||||
ChatExecuteReq request = ChatExecuteReq.builder().queryText(parseResp.getQueryText())
|
||||
.user(DataUtils.getUser()).parseId(semanticParseInfo.getId())
|
||||
.queryId(parseResp.getQueryId()).chatId(chatId).saveAnswer(true).build();
|
||||
QueryResult queryResult = chatQueryService.performExecution(request);
|
||||
queryResult.setChatContext(semanticParseInfo);
|
||||
return queryResult;
|
||||
@@ -56,16 +52,9 @@ public class BaseTest extends BaseApplication {
|
||||
ParseResp parseResp = submitParse(queryText, agentId, chatId);
|
||||
|
||||
SemanticParseInfo parseInfo = parseResp.getSelectedParses().get(0);
|
||||
ChatExecuteReq request =
|
||||
ChatExecuteReq.builder()
|
||||
.queryText(parseResp.getQueryText())
|
||||
.user(DataUtils.getUser())
|
||||
.parseId(parseInfo.getId())
|
||||
.agentId(agentId)
|
||||
.chatId(chatId)
|
||||
.queryId(parseResp.getQueryId())
|
||||
.saveAnswer(false)
|
||||
.build();
|
||||
ChatExecuteReq request = ChatExecuteReq.builder().queryText(parseResp.getQueryText())
|
||||
.user(DataUtils.getUser()).parseId(parseInfo.getId()).agentId(agentId)
|
||||
.chatId(chatId).queryId(parseResp.getQueryId()).saveAnswer(false).build();
|
||||
|
||||
QueryResult result = chatQueryService.performExecution(request);
|
||||
result.setChatContext(parseInfo);
|
||||
@@ -79,16 +68,10 @@ public class BaseTest extends BaseApplication {
|
||||
}
|
||||
|
||||
protected void assertSchemaElements(Set<SchemaElement> expected, Set<SchemaElement> actual) {
|
||||
Set<String> expectedNames =
|
||||
expected.stream()
|
||||
.map(s -> s.getName())
|
||||
.filter(s -> s != null)
|
||||
.collect(Collectors.toSet());
|
||||
Set<String> actualNames =
|
||||
actual.stream()
|
||||
.map(s -> s.getName())
|
||||
.filter(s -> s != null)
|
||||
.collect(Collectors.toSet());
|
||||
Set<String> expectedNames = expected.stream().map(s -> s.getName()).filter(s -> s != null)
|
||||
.collect(Collectors.toSet());
|
||||
Set<String> actualNames = actual.stream().map(s -> s.getName()).filter(s -> s != null)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
assertEquals(expectedNames, actualNames);
|
||||
}
|
||||
@@ -104,8 +87,8 @@ public class BaseTest extends BaseApplication {
|
||||
assertSchemaElements(expectedParseInfo.getMetrics(), actualParseInfo.getMetrics());
|
||||
assertSchemaElements(expectedParseInfo.getDimensions(), actualParseInfo.getDimensions());
|
||||
|
||||
assertEquals(
|
||||
expectedParseInfo.getDimensionFilters(), actualParseInfo.getDimensionFilters());
|
||||
assertEquals(expectedParseInfo.getDimensionFilters(),
|
||||
actualParseInfo.getDimensionFilters());
|
||||
assertEquals(expectedParseInfo.getMetricFilters(), actualParseInfo.getMetricFilters());
|
||||
|
||||
assertEquals(expectedParseInfo.getDateInfo(), actualParseInfo.getDateInfo());
|
||||
|
||||
@@ -36,12 +36,9 @@ public class DetailTest extends BaseTest {
|
||||
DataUtils.getFilter("singer_name", FilterOperatorEnum.EQUALS, "周杰伦", "歌手名", 8L);
|
||||
expectedParseInfo.getDimensionFilters().add(dimensionFilter);
|
||||
|
||||
expectedParseInfo
|
||||
.getDimensions()
|
||||
.addAll(
|
||||
Lists.newArrayList(
|
||||
SchemaElement.builder().name("流派").build(),
|
||||
SchemaElement.builder().name("代表作").build()));
|
||||
expectedParseInfo.getDimensions()
|
||||
.addAll(Lists.newArrayList(SchemaElement.builder().name("流派").build(),
|
||||
SchemaElement.builder().name("代表作").build()));
|
||||
|
||||
assertQueryResult(expectedResult, actualResult);
|
||||
}
|
||||
@@ -63,14 +60,11 @@ public class DetailTest extends BaseTest {
|
||||
expectedParseInfo.getDimensionFilters().add(dimensionFilter);
|
||||
|
||||
expectedParseInfo.getMetrics().add(SchemaElement.builder().name("播放量").build());
|
||||
expectedParseInfo
|
||||
.getDimensions()
|
||||
.addAll(
|
||||
Lists.newArrayList(
|
||||
SchemaElement.builder().name("歌手名").build(),
|
||||
SchemaElement.builder().name("活跃区域").build(),
|
||||
SchemaElement.builder().name("流派").build(),
|
||||
SchemaElement.builder().name("代表作").build()));
|
||||
expectedParseInfo.getDimensions()
|
||||
.addAll(Lists.newArrayList(SchemaElement.builder().name("歌手名").build(),
|
||||
SchemaElement.builder().name("活跃区域").build(),
|
||||
SchemaElement.builder().name("流派").build(),
|
||||
SchemaElement.builder().name("代表作").build()));
|
||||
|
||||
assertQueryResult(expectedResult, actualResult);
|
||||
}
|
||||
@@ -92,14 +86,11 @@ public class DetailTest extends BaseTest {
|
||||
expectedParseInfo.getDimensionFilters().add(dimensionFilter);
|
||||
|
||||
expectedParseInfo.getMetrics().add(SchemaElement.builder().name("播放量").build());
|
||||
expectedParseInfo
|
||||
.getDimensions()
|
||||
.addAll(
|
||||
Lists.newArrayList(
|
||||
SchemaElement.builder().name("歌手名").build(),
|
||||
SchemaElement.builder().name("活跃区域").build(),
|
||||
SchemaElement.builder().name("流派").build(),
|
||||
SchemaElement.builder().name("代表作").build()));
|
||||
expectedParseInfo.getDimensions()
|
||||
.addAll(Lists.newArrayList(SchemaElement.builder().name("歌手名").build(),
|
||||
SchemaElement.builder().name("活跃区域").build(),
|
||||
SchemaElement.builder().name("流派").build(),
|
||||
SchemaElement.builder().name("代表作").build()));
|
||||
|
||||
assertQueryResult(expectedResult, actualResult);
|
||||
}
|
||||
|
||||
@@ -38,11 +38,8 @@ public class MetricTest extends BaseTest {
|
||||
expectedParseInfo.setAggType(NONE);
|
||||
|
||||
expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("访问次数"));
|
||||
expectedParseInfo
|
||||
.getDimensionFilters()
|
||||
.add(
|
||||
DataUtils.getFilter(
|
||||
"user_name", FilterOperatorEnum.EQUALS, "alice", "用户", 2L));
|
||||
expectedParseInfo.getDimensionFilters().add(
|
||||
DataUtils.getFilter("user_name", FilterOperatorEnum.EQUALS, "alice", "用户", 2L));
|
||||
|
||||
expectedParseInfo.setDateInfo(
|
||||
DataUtils.getDateConf(DateConf.DateMode.BETWEEN, unit, period, startDay, endDay));
|
||||
@@ -65,9 +62,8 @@ public class MetricTest extends BaseTest {
|
||||
expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("访问次数"));
|
||||
expectedParseInfo.getDimensions().add(DataUtils.getSchemaElement("部门"));
|
||||
|
||||
expectedParseInfo.setDateInfo(
|
||||
DataUtils.getDateConf(
|
||||
DateConf.DateMode.BETWEEN, 7, DatePeriodEnum.DAY, startDay, endDay));
|
||||
expectedParseInfo.setDateInfo(DataUtils.getDateConf(DateConf.DateMode.BETWEEN, 7,
|
||||
DatePeriodEnum.DAY, startDay, endDay));
|
||||
expectedParseInfo.setQueryType(QueryType.AGGREGATE);
|
||||
|
||||
assertQueryResult(expectedResult, actualResult);
|
||||
@@ -158,11 +154,8 @@ public class MetricTest extends BaseTest {
|
||||
expectedParseInfo.setAggType(NONE);
|
||||
|
||||
expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("访问次数"));
|
||||
expectedParseInfo
|
||||
.getDimensionFilters()
|
||||
.add(
|
||||
DataUtils.getFilter(
|
||||
"user_name", FilterOperatorEnum.EQUALS, "alice", "用户", 2L));
|
||||
expectedParseInfo.getDimensionFilters().add(
|
||||
DataUtils.getFilter("user_name", FilterOperatorEnum.EQUALS, "alice", "用户", 2L));
|
||||
|
||||
expectedParseInfo.setDateInfo(
|
||||
DataUtils.getDateConf(DateConf.DateMode.BETWEEN, 1, period, startDay, startDay));
|
||||
|
||||
@@ -17,9 +17,8 @@ public class MultiTurnsTest extends BaseTest {
|
||||
@Test
|
||||
@Order(1)
|
||||
public void queryTest_01() throws Exception {
|
||||
QueryResult actualResult =
|
||||
submitMultiTurnChat(
|
||||
"alice的访问次数", DataUtils.metricAgentId, DataUtils.MULTI_TURNS_CHAT_ID);
|
||||
QueryResult actualResult = submitMultiTurnChat("alice的访问次数", DataUtils.metricAgentId,
|
||||
DataUtils.MULTI_TURNS_CHAT_ID);
|
||||
|
||||
QueryResult expectedResult = new QueryResult();
|
||||
SemanticParseInfo expectedParseInfo = new SemanticParseInfo();
|
||||
@@ -30,11 +29,8 @@ public class MultiTurnsTest extends BaseTest {
|
||||
|
||||
expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("访问次数"));
|
||||
|
||||
expectedParseInfo
|
||||
.getDimensionFilters()
|
||||
.add(
|
||||
DataUtils.getFilter(
|
||||
"user_name", FilterOperatorEnum.EQUALS, "alice", "用户", 2L));
|
||||
expectedParseInfo.getDimensionFilters().add(
|
||||
DataUtils.getFilter("user_name", FilterOperatorEnum.EQUALS, "alice", "用户", 2L));
|
||||
|
||||
expectedParseInfo.setDateInfo(
|
||||
DataUtils.getDateConf(DateConf.DateMode.BETWEEN, unit, period, startDay, endDay));
|
||||
@@ -46,9 +42,8 @@ public class MultiTurnsTest extends BaseTest {
|
||||
@Test
|
||||
@Order(2)
|
||||
public void queryTest_02() throws Exception {
|
||||
QueryResult actualResult =
|
||||
submitMultiTurnChat(
|
||||
"停留时长呢", DataUtils.metricAgentId, DataUtils.MULTI_TURNS_CHAT_ID);
|
||||
QueryResult actualResult = submitMultiTurnChat("停留时长呢", DataUtils.metricAgentId,
|
||||
DataUtils.MULTI_TURNS_CHAT_ID);
|
||||
|
||||
QueryResult expectedResult = new QueryResult();
|
||||
SemanticParseInfo expectedParseInfo = new SemanticParseInfo();
|
||||
@@ -59,11 +54,8 @@ public class MultiTurnsTest extends BaseTest {
|
||||
|
||||
expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("停留时长"));
|
||||
|
||||
expectedParseInfo
|
||||
.getDimensionFilters()
|
||||
.add(
|
||||
DataUtils.getFilter(
|
||||
"user_name", FilterOperatorEnum.EQUALS, "alice", "用户", 2L));
|
||||
expectedParseInfo.getDimensionFilters().add(
|
||||
DataUtils.getFilter("user_name", FilterOperatorEnum.EQUALS, "alice", "用户", 2L));
|
||||
|
||||
expectedParseInfo.setDateInfo(
|
||||
DataUtils.getDateConf(DateConf.DateMode.BETWEEN, unit, period, startDay, endDay));
|
||||
@@ -75,9 +67,8 @@ public class MultiTurnsTest extends BaseTest {
|
||||
@Test
|
||||
@Order(3)
|
||||
public void queryTest_03() throws Exception {
|
||||
QueryResult actualResult =
|
||||
submitMultiTurnChat(
|
||||
"lucy的如何", DataUtils.metricAgentId, DataUtils.MULTI_TURNS_CHAT_ID);
|
||||
QueryResult actualResult = submitMultiTurnChat("lucy的如何", DataUtils.metricAgentId,
|
||||
DataUtils.MULTI_TURNS_CHAT_ID);
|
||||
|
||||
QueryResult expectedResult = new QueryResult();
|
||||
SemanticParseInfo expectedParseInfo = new SemanticParseInfo();
|
||||
@@ -88,8 +79,7 @@ public class MultiTurnsTest extends BaseTest {
|
||||
|
||||
expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("停留时长"));
|
||||
|
||||
expectedParseInfo
|
||||
.getDimensionFilters()
|
||||
expectedParseInfo.getDimensionFilters()
|
||||
.add(DataUtils.getFilter("user_name", FilterOperatorEnum.EQUALS, "lucy", "用户", 2L));
|
||||
|
||||
expectedParseInfo.setDateInfo(
|
||||
|
||||
@@ -35,9 +35,8 @@ public class Text2SQLEval extends BaseTest {
|
||||
for (Long duration : durations) {
|
||||
total_duration += duration;
|
||||
}
|
||||
System.out.println(
|
||||
String.format(
|
||||
"Avg Duration: %d seconds", total_duration / 1000 / durations.size()));
|
||||
System.out.println(String.format("Avg Duration: %d seconds",
|
||||
total_duration / 1000 / durations.size()));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -119,11 +118,8 @@ public class Text2SQLEval extends BaseTest {
|
||||
QueryResult result = submitNewChat("过去半个月核心用户的总停留时长", agentId);
|
||||
durations.add(System.currentTimeMillis() - start);
|
||||
assert result.getQueryColumns().size() >= 1;
|
||||
assert result.getQueryColumns().stream()
|
||||
.filter(c -> c.getName().contains("停留时长"))
|
||||
.collect(Collectors.toList())
|
||||
.size()
|
||||
== 1;
|
||||
assert result.getQueryColumns().stream().filter(c -> c.getName().contains("停留时长"))
|
||||
.collect(Collectors.toList()).size() == 1;
|
||||
assert result.getQueryResults().size() >= 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -27,9 +27,11 @@ import static java.time.LocalDate.now;
|
||||
|
||||
public class BaseTest extends BaseApplication {
|
||||
|
||||
@Autowired protected SemanticLayerService semanticLayerService;
|
||||
@Autowired
|
||||
protected SemanticLayerService semanticLayerService;
|
||||
|
||||
@Autowired private DomainRepository domainRepository;
|
||||
@Autowired
|
||||
private DomainRepository domainRepository;
|
||||
|
||||
protected SemanticQueryResp queryBySql(String sql) throws Exception {
|
||||
return queryBySql(sql, User.getFakeUser());
|
||||
|
||||
@@ -19,9 +19,11 @@ import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
public class DictTest extends BaseTest {
|
||||
@Autowired private DictConfMapper confMapper;
|
||||
@Autowired
|
||||
private DictConfMapper confMapper;
|
||||
|
||||
@Autowired private DictTaskService taskService;
|
||||
@Autowired
|
||||
private DictTaskService taskService;
|
||||
|
||||
@Test
|
||||
public void insertConf() {
|
||||
@@ -80,11 +82,8 @@ public class DictTest extends BaseTest {
|
||||
void testAddTask() {
|
||||
editConf();
|
||||
DictConfDO confDODb = confMapper.selectById(1L);
|
||||
DictSingleTaskReq dictTask =
|
||||
DictSingleTaskReq.builder()
|
||||
.itemId(confDODb.getItemId())
|
||||
.type(TypeEnums.DIMENSION)
|
||||
.build();
|
||||
DictSingleTaskReq dictTask = DictSingleTaskReq.builder().itemId(confDODb.getItemId())
|
||||
.type(TypeEnums.DIMENSION).build();
|
||||
taskService.addDictTask(dictTask, null);
|
||||
DictSingleTaskReq taskReq =
|
||||
DictSingleTaskReq.builder().itemId(3L).type(TypeEnums.DIMENSION).build();
|
||||
|
||||
@@ -14,7 +14,8 @@ import java.util.Collections;
|
||||
|
||||
public class MetaDiscoveryTest extends BaseTest {
|
||||
|
||||
@Autowired protected ChatLayerService chatLayerService;
|
||||
@Autowired
|
||||
protected ChatLayerService chatLayerService;
|
||||
|
||||
@Test
|
||||
public void testGetMapMeta() throws Exception {
|
||||
|
||||
@@ -15,7 +15,8 @@ import java.util.stream.Collectors;
|
||||
|
||||
public class ModelSchemaTest extends BaseTest {
|
||||
|
||||
@Autowired private ModelService modelService;
|
||||
@Autowired
|
||||
private ModelService modelService;
|
||||
|
||||
@Test
|
||||
void testGetUnAvailableItem() {
|
||||
@@ -25,10 +26,8 @@ public class ModelSchemaTest extends BaseTest {
|
||||
UnAvailableItemResp unAvailableItemResp = modelService.getUnAvailableItem(fieldRemovedReq);
|
||||
List<Long> expectedUnAvailableMetricId = Lists.newArrayList(1L, 4L);
|
||||
List<Long> actualUnAvailableMetricId =
|
||||
unAvailableItemResp.getMetricResps().stream()
|
||||
.map(MetricResp::getId)
|
||||
.sorted(Comparator.naturalOrder())
|
||||
.collect(Collectors.toList());
|
||||
unAvailableItemResp.getMetricResps().stream().map(MetricResp::getId)
|
||||
.sorted(Comparator.naturalOrder()).collect(Collectors.toList());
|
||||
Assertions.assertEquals(expectedUnAvailableMetricId, actualUnAvailableMetricId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,8 @@ import static org.junit.Assert.assertThrows;
|
||||
|
||||
public class QueryByMetricTest extends BaseTest {
|
||||
|
||||
@Autowired protected MetricService metricService;
|
||||
@Autowired
|
||||
protected MetricService metricService;
|
||||
|
||||
@Test
|
||||
public void testWithMetricAndDimensionBizNames() throws Exception {
|
||||
@@ -50,8 +51,7 @@ public class QueryByMetricTest extends BaseTest {
|
||||
queryMetricReq.setDomainId(2L);
|
||||
queryMetricReq.setMetricNames(Arrays.asList("stay_hours", "pv"));
|
||||
queryMetricReq.setDimensionNames(Arrays.asList("user_name", "department"));
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
assertThrows(IllegalArgumentException.class,
|
||||
() -> queryByMetric(queryMetricReq, User.getFakeUser()));
|
||||
}
|
||||
|
||||
|
||||
@@ -53,9 +53,8 @@ public class QueryBySqlTest extends BaseTest {
|
||||
|
||||
@Test
|
||||
public void testFilterQuery() throws Exception {
|
||||
SemanticQueryResp result =
|
||||
queryBySql(
|
||||
"SELECT 部门, SUM(访问次数) AS 总访问次数 FROM 超音数PVUV统计 WHERE 部门 ='HR' GROUP BY 部门 ");
|
||||
SemanticQueryResp result = queryBySql(
|
||||
"SELECT 部门, SUM(访问次数) AS 总访问次数 FROM 超音数PVUV统计 WHERE 部门 ='HR' GROUP BY 部门 ");
|
||||
assertEquals(2, result.getColumns().size());
|
||||
QueryColumn firstColumn = result.getColumns().get(0);
|
||||
QueryColumn secondColumn = result.getColumns().get(1);
|
||||
@@ -101,19 +100,16 @@ public class QueryBySqlTest extends BaseTest {
|
||||
public void testAuthorization_model() {
|
||||
User alice = DataUtils.getUserAlice();
|
||||
setDomainNotOpenToAll();
|
||||
assertThrows(
|
||||
InvalidPermissionException.class,
|
||||
assertThrows(InvalidPermissionException.class,
|
||||
() -> queryBySql("SELECT SUM(pv) FROM 超音数PVUV统计 WHERE department ='HR'", alice));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAuthorization_sensitive_metric() throws Exception {
|
||||
User tom = DataUtils.getUserTom();
|
||||
assertThrows(
|
||||
InvalidPermissionException.class,
|
||||
() ->
|
||||
queryBySql(
|
||||
"SELECT SUM(stay_hours) FROM 停留时长统计 WHERE department ='HR'", tom));
|
||||
assertThrows(InvalidPermissionException.class,
|
||||
() -> queryBySql("SELECT SUM(stay_hours) FROM 停留时长统计 WHERE department ='HR'",
|
||||
tom));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -130,8 +126,7 @@ public class QueryBySqlTest extends BaseTest {
|
||||
SemanticQueryResp semanticQueryResp =
|
||||
queryBySql("SELECT SUM(pv) FROM 超音数PVUV统计 WHERE department ='HR'", tom);
|
||||
Assertions.assertNotNull(semanticQueryResp.getQueryAuthorization().getMessage());
|
||||
Assertions.assertTrue(
|
||||
semanticQueryResp.getSql().contains("user_name = 'tom'")
|
||||
|| semanticQueryResp.getSql().contains("`user_name` = 'tom'"));
|
||||
Assertions.assertTrue(semanticQueryResp.getSql().contains("user_name = 'tom'")
|
||||
|| semanticQueryResp.getSql().contains("`user_name` = 'tom'"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -112,8 +112,7 @@ public class QueryByStructTest extends BaseTest {
|
||||
User alice = DataUtils.getUserAlice();
|
||||
setDomainNotOpenToAll();
|
||||
QueryStructReq queryStructReq1 = buildQueryStructReq(Arrays.asList("department"));
|
||||
assertThrows(
|
||||
InvalidPermissionException.class,
|
||||
assertThrows(InvalidPermissionException.class,
|
||||
() -> semanticLayerService.queryByReq(queryStructReq1, alice));
|
||||
}
|
||||
|
||||
@@ -125,8 +124,7 @@ public class QueryByStructTest extends BaseTest {
|
||||
aggregator.setColumn("stay_hours");
|
||||
QueryStructReq queryStructReq =
|
||||
buildQueryStructReq(Arrays.asList("department"), aggregator);
|
||||
assertThrows(
|
||||
InvalidPermissionException.class,
|
||||
assertThrows(InvalidPermissionException.class,
|
||||
() -> semanticLayerService.queryByReq(queryStructReq, tom));
|
||||
}
|
||||
|
||||
|
||||
@@ -19,7 +19,8 @@ import java.util.List;
|
||||
|
||||
public class QueryRuleTest extends BaseTest {
|
||||
|
||||
@Autowired private QueryRuleService queryRuleService;
|
||||
@Autowired
|
||||
private QueryRuleService queryRuleService;
|
||||
|
||||
private User user = User.getFakeUser();
|
||||
|
||||
|
||||
@@ -19,11 +19,14 @@ import java.util.stream.Collectors;
|
||||
|
||||
public class SchemaAuthTest extends BaseTest {
|
||||
|
||||
@Autowired private DomainService domainService;
|
||||
@Autowired
|
||||
private DomainService domainService;
|
||||
|
||||
@Autowired private DataSetService dataSetService;
|
||||
@Autowired
|
||||
private DataSetService dataSetService;
|
||||
|
||||
@Autowired private ModelService modelService;
|
||||
@Autowired
|
||||
private ModelService modelService;
|
||||
|
||||
@Test
|
||||
public void test_getDomainList_alice() {
|
||||
@@ -31,8 +34,7 @@ public class SchemaAuthTest extends BaseTest {
|
||||
setDomainNotOpenToAll();
|
||||
List<DomainResp> domainResps = domainService.getDomainListWithAdminAuth(user);
|
||||
List<String> expectedDomainBizNames = Lists.newArrayList("supersonic", "singer");
|
||||
Assertions.assertEquals(
|
||||
expectedDomainBizNames,
|
||||
Assertions.assertEquals(expectedDomainBizNames,
|
||||
domainResps.stream().map(DomainResp::getBizName).collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
@@ -41,8 +43,7 @@ public class SchemaAuthTest extends BaseTest {
|
||||
User user = DataUtils.getUserAlice();
|
||||
List<ModelResp> modelResps = modelService.getModelListWithAuth(user, null, AuthType.ADMIN);
|
||||
List<String> expectedModelBizNames = Lists.newArrayList("user_department", "singer");
|
||||
Assertions.assertEquals(
|
||||
expectedModelBizNames,
|
||||
Assertions.assertEquals(expectedModelBizNames,
|
||||
modelResps.stream().map(ModelResp::getBizName).collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
@@ -52,8 +53,7 @@ public class SchemaAuthTest extends BaseTest {
|
||||
List<ModelResp> modelResps =
|
||||
modelService.getModelListWithAuth(user, null, AuthType.VISIBLE);
|
||||
List<String> expectedModelBizNames = Lists.newArrayList("user_department", "singer");
|
||||
Assertions.assertEquals(
|
||||
expectedModelBizNames,
|
||||
Assertions.assertEquals(expectedModelBizNames,
|
||||
modelResps.stream().map(ModelResp::getBizName).collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
@@ -62,8 +62,7 @@ public class SchemaAuthTest extends BaseTest {
|
||||
User user = DataUtils.getUserAlice();
|
||||
List<DataSetResp> dataSetResps = dataSetService.getDataSetsInheritAuth(user, 0L);
|
||||
List<String> expectedDataSetBizNames = Lists.newArrayList("singer");
|
||||
Assertions.assertEquals(
|
||||
expectedDataSetBizNames,
|
||||
Assertions.assertEquals(expectedDataSetBizNames,
|
||||
dataSetResps.stream().map(DataSetResp::getBizName).collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
@@ -72,8 +71,7 @@ public class SchemaAuthTest extends BaseTest {
|
||||
User user = DataUtils.getUserJack();
|
||||
List<DomainResp> domainResps = domainService.getDomainListWithAdminAuth(user);
|
||||
List<String> expectedDomainBizNames = Lists.newArrayList("supersonic");
|
||||
Assertions.assertEquals(
|
||||
expectedDomainBizNames,
|
||||
Assertions.assertEquals(expectedDomainBizNames,
|
||||
domainResps.stream().map(DomainResp::getBizName).collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
@@ -83,8 +81,7 @@ public class SchemaAuthTest extends BaseTest {
|
||||
List<ModelResp> modelResps = modelService.getModelListWithAuth(user, null, AuthType.ADMIN);
|
||||
List<String> expectedModelBizNames =
|
||||
Lists.newArrayList("user_department", "s2_pv_uv_statis", "s2_stay_time_statis");
|
||||
Assertions.assertEquals(
|
||||
expectedModelBizNames,
|
||||
Assertions.assertEquals(expectedModelBizNames,
|
||||
modelResps.stream().map(ModelResp::getBizName).collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
@@ -93,8 +90,7 @@ public class SchemaAuthTest extends BaseTest {
|
||||
User user = DataUtils.getUserJack();
|
||||
List<DataSetResp> dataSetResps = dataSetService.getDataSetsInheritAuth(user, 0L);
|
||||
List<String> expectedDataSetBizNames = Lists.newArrayList("s2", "singer");
|
||||
Assertions.assertEquals(
|
||||
expectedDataSetBizNames,
|
||||
Assertions.assertEquals(expectedDataSetBizNames,
|
||||
dataSetResps.stream().map(DataSetResp::getBizName).collect(Collectors.toList()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,8 @@ import java.util.List;
|
||||
|
||||
public class TagObjectTest extends BaseTest {
|
||||
|
||||
@Autowired private TagObjectService tagObjectService;
|
||||
@Autowired
|
||||
private TagObjectService tagObjectService;
|
||||
|
||||
@Test
|
||||
void testCreateTagObject() throws Exception {
|
||||
|
||||
@@ -13,7 +13,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
|
||||
public class TagTest extends BaseTest {
|
||||
|
||||
@Autowired private TagQueryService tagQueryService;
|
||||
@Autowired
|
||||
private TagQueryService tagQueryService;
|
||||
|
||||
@Test
|
||||
public void testQueryTagValue() throws Exception {
|
||||
|
||||
@@ -17,10 +17,9 @@ public class TranslateTest extends BaseTest {
|
||||
@Test
|
||||
public void testSqlExplain() throws Exception {
|
||||
String sql = "SELECT 部门, SUM(访问次数) AS 访问次数 FROM 超音数PVUV统计 GROUP BY 部门 ";
|
||||
SemanticTranslateResp explain =
|
||||
semanticLayerService.translate(
|
||||
QueryReqBuilder.buildS2SQLReq(sql, DataUtils.getMetricAgentView()),
|
||||
User.getFakeUser());
|
||||
SemanticTranslateResp explain = semanticLayerService.translate(
|
||||
QueryReqBuilder.buildS2SQLReq(sql, DataUtils.getMetricAgentView()),
|
||||
User.getFakeUser());
|
||||
assertNotNull(explain);
|
||||
assertNotNull(explain.getQuerySQL());
|
||||
assertTrue(explain.getQuerySQL().contains("department"));
|
||||
|
||||
@@ -51,11 +51,9 @@ public class ModelProviderTest extends BaseApplication {
|
||||
modelConfig.setEndpoint(QianfanModelFactory.DEFAULT_ENDPOINT);
|
||||
|
||||
ChatLanguageModel chatModel = ModelProvider.getChatModel(modelConfig);
|
||||
assertThrows(
|
||||
RuntimeException.class,
|
||||
() -> {
|
||||
chatModel.generate("hi");
|
||||
});
|
||||
assertThrows(RuntimeException.class, () -> {
|
||||
chatModel.generate("hi");
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -67,11 +65,9 @@ public class ModelProviderTest extends BaseApplication {
|
||||
modelConfig.setApiKey("e2724491714b3b2a0274e987905f1001.5JyHgf4vbZVJ7gC5");
|
||||
|
||||
ChatLanguageModel chatModel = ModelProvider.getChatModel(modelConfig);
|
||||
assertThrows(
|
||||
RuntimeException.class,
|
||||
() -> {
|
||||
chatModel.generate("hi");
|
||||
});
|
||||
assertThrows(RuntimeException.class, () -> {
|
||||
chatModel.generate("hi");
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -84,11 +80,9 @@ public class ModelProviderTest extends BaseApplication {
|
||||
modelConfig.setApiKey(ParameterConfig.DEMO);
|
||||
|
||||
ChatLanguageModel chatModel = ModelProvider.getChatModel(modelConfig);
|
||||
assertThrows(
|
||||
RuntimeException.class,
|
||||
() -> {
|
||||
chatModel.generate("hi");
|
||||
});
|
||||
assertThrows(RuntimeException.class, () -> {
|
||||
chatModel.generate("hi");
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -100,11 +94,9 @@ public class ModelProviderTest extends BaseApplication {
|
||||
modelConfig.setApiKey(ParameterConfig.DEMO);
|
||||
|
||||
ChatLanguageModel chatModel = ModelProvider.getChatModel(modelConfig);
|
||||
assertThrows(
|
||||
RuntimeException.class,
|
||||
() -> {
|
||||
chatModel.generate("hi");
|
||||
});
|
||||
assertThrows(RuntimeException.class, () -> {
|
||||
chatModel.generate("hi");
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -140,11 +132,9 @@ public class ModelProviderTest extends BaseApplication {
|
||||
modelConfig.setApiKey(ParameterConfig.DEMO);
|
||||
|
||||
EmbeddingModel embeddingModel = ModelProvider.getEmbeddingModel(modelConfig);
|
||||
assertThrows(
|
||||
RuntimeException.class,
|
||||
() -> {
|
||||
embeddingModel.embed("hi");
|
||||
});
|
||||
assertThrows(RuntimeException.class, () -> {
|
||||
embeddingModel.embed("hi");
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -156,11 +146,9 @@ public class ModelProviderTest extends BaseApplication {
|
||||
modelConfig.setApiKey(ParameterConfig.DEMO);
|
||||
|
||||
EmbeddingModel embeddingModel = ModelProvider.getEmbeddingModel(modelConfig);
|
||||
assertThrows(
|
||||
RuntimeException.class,
|
||||
() -> {
|
||||
embeddingModel.embed("hi");
|
||||
});
|
||||
assertThrows(RuntimeException.class, () -> {
|
||||
embeddingModel.embed("hi");
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -173,11 +161,9 @@ public class ModelProviderTest extends BaseApplication {
|
||||
modelConfig.setSecretKey(ParameterConfig.DEMO);
|
||||
|
||||
EmbeddingModel embeddingModel = ModelProvider.getEmbeddingModel(modelConfig);
|
||||
assertThrows(
|
||||
RuntimeException.class,
|
||||
() -> {
|
||||
embeddingModel.embed("hi");
|
||||
});
|
||||
assertThrows(RuntimeException.class, () -> {
|
||||
embeddingModel.embed("hi");
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -189,10 +175,8 @@ public class ModelProviderTest extends BaseApplication {
|
||||
modelConfig.setApiKey("e2724491714b3b2a0274e987905f1001.5JyHgf4vbZVJ7gC5");
|
||||
|
||||
EmbeddingModel embeddingModel = ModelProvider.getEmbeddingModel(modelConfig);
|
||||
assertThrows(
|
||||
RuntimeException.class,
|
||||
() -> {
|
||||
embeddingModel.embed("hi");
|
||||
});
|
||||
assertThrows(RuntimeException.class, () -> {
|
||||
embeddingModel.embed("hi");
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,12 +49,8 @@ public class DataUtils {
|
||||
return SchemaElement.builder().name(name).build();
|
||||
}
|
||||
|
||||
public static QueryFilter getFilter(
|
||||
String bizName,
|
||||
FilterOperatorEnum filterOperatorEnum,
|
||||
Object value,
|
||||
String name,
|
||||
Long elementId) {
|
||||
public static QueryFilter getFilter(String bizName, FilterOperatorEnum filterOperatorEnum,
|
||||
Object value, String name, Long elementId) {
|
||||
QueryFilter filter = new QueryFilter();
|
||||
filter.setBizName(bizName);
|
||||
filter.setOperator(filterOperatorEnum);
|
||||
@@ -64,8 +60,8 @@ public class DataUtils {
|
||||
return filter;
|
||||
}
|
||||
|
||||
public static DateConf getDateConf(
|
||||
Integer unit, DateConf.DateMode dateMode, DatePeriodEnum period) {
|
||||
public static DateConf getDateConf(Integer unit, DateConf.DateMode dateMode,
|
||||
DatePeriodEnum period) {
|
||||
DateConf dateInfo = new DateConf();
|
||||
dateInfo.setUnit(unit);
|
||||
dateInfo.setDateMode(dateMode);
|
||||
@@ -75,12 +71,8 @@ public class DataUtils {
|
||||
return dateInfo;
|
||||
}
|
||||
|
||||
public static DateConf getDateConf(
|
||||
DateConf.DateMode dateMode,
|
||||
Integer unit,
|
||||
DatePeriodEnum period,
|
||||
String startDate,
|
||||
String endDate) {
|
||||
public static DateConf getDateConf(DateConf.DateMode dateMode, Integer unit,
|
||||
DatePeriodEnum period, String startDate, String endDate) {
|
||||
DateConf dateInfo = new DateConf();
|
||||
dateInfo.setUnit(unit);
|
||||
dateInfo.setDateMode(dateMode);
|
||||
|
||||
@@ -4,14 +4,9 @@ import com.tencent.supersonic.common.pojo.ChatModelConfig;
|
||||
|
||||
public class LLMConfigUtils {
|
||||
public enum LLMType {
|
||||
OPENAI_GPT(false),
|
||||
OPENAI_MOONSHOT(false),
|
||||
OPENAI_DEEPSEEK(false),
|
||||
OPENAI_QWEN(false),
|
||||
OPENAI_GLM(false),
|
||||
OLLAMA_LLAMA3(true),
|
||||
OLLAMA_QWEN2(true),
|
||||
OLLAMA_QWEN25(true);
|
||||
OPENAI_GPT(false), OPENAI_MOONSHOT(false), OPENAI_DEEPSEEK(false), OPENAI_QWEN(
|
||||
false), OPENAI_GLM(
|
||||
false), OLLAMA_LLAMA3(true), OLLAMA_QWEN2(true), OLLAMA_QWEN25(true);
|
||||
|
||||
private boolean isOllam;
|
||||
|
||||
@@ -70,24 +65,12 @@ public class LLMConfigUtils {
|
||||
|
||||
ChatModelConfig chatModelConfig;
|
||||
if (type.isOllam) {
|
||||
chatModelConfig =
|
||||
ChatModelConfig.builder()
|
||||
.provider("ollama")
|
||||
.baseUrl(baseUrl)
|
||||
.modelName(modelName)
|
||||
.temperature(temperature)
|
||||
.timeOut(60000L)
|
||||
.build();
|
||||
chatModelConfig = ChatModelConfig.builder().provider("ollama").baseUrl(baseUrl)
|
||||
.modelName(modelName).temperature(temperature).timeOut(60000L).build();
|
||||
} else {
|
||||
chatModelConfig =
|
||||
ChatModelConfig.builder()
|
||||
.provider("open_ai")
|
||||
.baseUrl(baseUrl)
|
||||
.apiKey(apiKey)
|
||||
.modelName(modelName)
|
||||
.temperature(temperature)
|
||||
.timeOut(60000L)
|
||||
.build();
|
||||
ChatModelConfig.builder().provider("open_ai").baseUrl(baseUrl).apiKey(apiKey)
|
||||
.modelName(modelName).temperature(temperature).timeOut(60000L).build();
|
||||
}
|
||||
|
||||
return chatModelConfig;
|
||||
|
||||
Reference in New Issue
Block a user