From 6b7fdfec118fd0303cadd74c998de10d46df06b7 Mon Sep 17 00:00:00 2001 From: LXW <1264174498@qq.com> Date: Mon, 20 May 2024 20:58:27 +0800 Subject: [PATCH] (improvement)(Headless) add ext info for model (#1019) --- .../supersonic/headless/api/pojo/request/ModelReq.java | 3 +++ .../headless/api/pojo/response/ModelResp.java | 3 +++ .../server/persistence/dataobject/ModelDO.java | 2 ++ .../server/service/impl/DataSetServiceImpl.java | 1 + .../headless/server/utils/ModelConverter.java | 9 ++++++++- .../com/tencent/supersonic/ModelDemoDataLoader.java | 10 ++++++---- .../src/main/resources/config.update/sql-update.sql | 4 +++- .../standalone/src/main/resources/db/schema-h2.sql | 1 + .../standalone/src/main/resources/db/schema-mysql.sql | 1 + .../standalone/src/test/resources/db/schema-h2.sql | 1 + 10 files changed, 29 insertions(+), 6 deletions(-) diff --git a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/request/ModelReq.java b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/request/ModelReq.java index 956c46b47..1bcc7e91d 100644 --- a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/request/ModelReq.java +++ b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/request/ModelReq.java @@ -9,6 +9,7 @@ import com.tencent.supersonic.headless.api.pojo.SchemaItem; import lombok.Data; import java.util.List; +import java.util.Map; @Data @@ -40,6 +41,8 @@ public class ModelReq extends SchemaItem { private Long tagObjectId; + private Map ext; + public List getTimeDimension() { if (modelDetail == null) { return Lists.newArrayList(); diff --git a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/ModelResp.java b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/ModelResp.java index f51a056f1..a8e7c3cff 100644 --- a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/ModelResp.java +++ b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/ModelResp.java @@ -16,6 +16,7 @@ import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; @@ -54,6 +55,8 @@ public class ModelResp extends SchemaItem { private String fullPath; + private Map ext; + public boolean openToAll() { return isOpen != null && isOpen == 1; } diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/persistence/dataobject/ModelDO.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/persistence/dataobject/ModelDO.java index 551e3598f..eb5eeca2a 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/persistence/dataobject/ModelDO.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/persistence/dataobject/ModelDO.java @@ -58,4 +58,6 @@ public class ModelDO { private String sourceType; + private String ext; + } diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DataSetServiceImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DataSetServiceImpl.java index d4736c5bc..ebbb39022 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DataSetServiceImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DataSetServiceImpl.java @@ -87,6 +87,7 @@ public class DataSetServiceImpl DataSetResp dataSetResp = convert(dataSetDO); conflictCheck(dataSetResp); save(dataSetDO); + dataSetResp.setId(dataSetDO.getId()); return dataSetResp; } diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ModelConverter.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ModelConverter.java index 2ad823f1c..4f5c641ef 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ModelConverter.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ModelConverter.java @@ -45,6 +45,9 @@ public class ModelConverter { modelDO.setStatus(StatusEnum.ONLINE.getCode()); modelDO.setModelDetail(JSONObject.toJSONString(modelDetail)); modelDO.setDrillDownDimensions(JSONObject.toJSONString(modelReq.getDrillDownDimensions())); + if (modelReq.getExt() != null) { + modelDO.setExt(JSONObject.toJSONString(modelReq.getExt())); + } return modelDO; } @@ -60,7 +63,8 @@ public class ModelConverter { modelResp.setViewOrgs(StringUtils.isBlank(modelDO.getViewOrg()) ? Lists.newArrayList() : Arrays.asList(modelDO.getViewOrg().split(","))); modelResp.setDrillDownDimensions(JsonUtil.toList(modelDO.getDrillDownDimensions(), DrillDownDimension.class)); - modelResp.setModelDetail(JSONObject.parseObject(modelDO.getModelDetail(), ModelDetail.class)); + modelResp.setModelDetail(JsonUtil.toObject(modelDO.getModelDetail(), ModelDetail.class)); + modelResp.setExt(JsonUtil.toObject(modelDO.getExt(), Map.class)); return modelResp; } @@ -81,6 +85,9 @@ public class ModelConverter { modelDO.setDrillDownDimensions(JSONObject.toJSONString(modelReq.getDrillDownDimensions())); } modelDO.setModelDetail(JSONObject.toJSONString((modelDetail))); + if (modelReq.getExt() != null) { + modelDO.setExt(JSONObject.toJSONString(modelReq.getExt())); + } modelDO.setUpdatedBy(user.getName()); modelDO.setUpdatedAt(new Date()); return modelDO; diff --git a/launchers/standalone/src/main/java/com/tencent/supersonic/ModelDemoDataLoader.java b/launchers/standalone/src/main/java/com/tencent/supersonic/ModelDemoDataLoader.java index 7848e787e..08715c2a8 100644 --- a/launchers/standalone/src/main/java/com/tencent/supersonic/ModelDemoDataLoader.java +++ b/launchers/standalone/src/main/java/com/tencent/supersonic/ModelDemoDataLoader.java @@ -140,7 +140,7 @@ public class ModelDemoDataLoader { DimensionResp pageDimension = getDimension("page", stayTimeModel); updateDimension(stayTimeModel, pageDimension); updateMetric(stayTimeModel, departmentDimension, userDimension); - addTags(singerModel); + addTags(userModel, singerModel); updateMetric_pv(pvUvModel, departmentDimension, userDimension, metricPv); DataSetResp s2DataSet = addDataSet_1(s2Domain); addDataSet_2(singerDomain, singerModel); @@ -402,7 +402,9 @@ public class ModelDemoDataLoader { return modelService.createModel(modelReq, user); } - private void addTags(ModelResp singerModel) { + private void addTags(ModelResp userModel, ModelResp singerModel) { + addTag(dimensionService.getDimension("department", userModel.getId()).getId(), + TagDefineType.DIMENSION); addTag(dimensionService.getDimension("act_area", singerModel.getId()).getId(), TagDefineType.DIMENSION); addTag(dimensionService.getDimension("song_name", singerModel.getId()).getId(), @@ -597,12 +599,12 @@ public class ModelDemoDataLoader { termService.saveOrUpdate(termReq, User.getFakeUser()); } - public void addTerm_1(DomainResp domainResp) { + public void addTerm_1(DomainResp s2Domain) { TermReq termReq = new TermReq(); termReq.setName("核心用户"); termReq.setDescription("核心用户指tom和lucy"); termReq.setAlias(Lists.newArrayList("VIP用户")); - termReq.setDomainId(domainResp.getId()); + termReq.setDomainId(s2Domain.getId()); termService.saveOrUpdate(termReq, User.getFakeUser()); } diff --git a/launchers/standalone/src/main/resources/config.update/sql-update.sql b/launchers/standalone/src/main/resources/config.update/sql-update.sql index 45003f1e9..e347ab880 100644 --- a/launchers/standalone/src/main/resources/config.update/sql-update.sql +++ b/launchers/standalone/src/main/resources/config.update/sql-update.sql @@ -312,4 +312,6 @@ CREATE TABLE IF NOT EXISTS `s2_term` ( --20240520 alter table s2_agent add column `llm_config` varchar(2000) COLLATE utf8_unicode_ci DEFAULT NULL; alter table s2_agent add column `multi_turn_config` varchar(2000) COLLATE utf8_unicode_ci DEFAULT NULL; -alter table s2_agent add column `visual_config` varchar(2000) COLLATE utf8_unicode_ci DEFAULT NULL; \ No newline at end of file +alter table s2_agent add column `visual_config` varchar(2000) COLLATE utf8_unicode_ci DEFAULT NULL; + +alter table s2_model add column `ext` varchar(1000) DEFAULT NULL; \ No newline at end of file diff --git a/launchers/standalone/src/main/resources/db/schema-h2.sql b/launchers/standalone/src/main/resources/db/schema-h2.sql index c2c06f598..36289fd32 100644 --- a/launchers/standalone/src/main/resources/db/schema-h2.sql +++ b/launchers/standalone/src/main/resources/db/schema-h2.sql @@ -140,6 +140,7 @@ CREATE TABLE IF NOT EXISTS `s2_model` ( `depends` varchar(500) DEFAULT NULL , `source_type` varchar(128) DEFAULT NULL , `filter_sql` varchar(1000) DEFAULT NULL , + `ext` varchar(1000) DEFAULT NULL, PRIMARY KEY (`id`) ); COMMENT ON TABLE s2_model IS 'model information'; diff --git a/launchers/standalone/src/main/resources/db/schema-mysql.sql b/launchers/standalone/src/main/resources/db/schema-mysql.sql index 1e7e5fcd3..b6efb1760 100644 --- a/launchers/standalone/src/main/resources/db/schema-mysql.sql +++ b/launchers/standalone/src/main/resources/db/schema-mysql.sql @@ -330,6 +330,7 @@ CREATE TABLE `s2_model` ( `depends` varchar(500) DEFAULT NULL , `filter_sql` varchar(1000) DEFAULT NULL , `tag_object_id` int(11) DEFAULT '0', + `ext` varchar(1000) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; diff --git a/launchers/standalone/src/test/resources/db/schema-h2.sql b/launchers/standalone/src/test/resources/db/schema-h2.sql index c2c06f598..36289fd32 100644 --- a/launchers/standalone/src/test/resources/db/schema-h2.sql +++ b/launchers/standalone/src/test/resources/db/schema-h2.sql @@ -140,6 +140,7 @@ CREATE TABLE IF NOT EXISTS `s2_model` ( `depends` varchar(500) DEFAULT NULL , `source_type` varchar(128) DEFAULT NULL , `filter_sql` varchar(1000) DEFAULT NULL , + `ext` varchar(1000) DEFAULT NULL, PRIMARY KEY (`id`) ); COMMENT ON TABLE s2_model IS 'model information';