diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/TagMetaServiceImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/TagMetaServiceImpl.java index 8b9e6bfee..2939c344a 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/TagMetaServiceImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/TagMetaServiceImpl.java @@ -56,9 +56,9 @@ public class TagMetaServiceImpl implements TagMetaService { private final DomainService domainService; public TagMetaServiceImpl(TagRepository tagRepository, ModelService modelService, - CollectService collectService, @Lazy DimensionService dimensionService, - @Lazy MetricService metricService, TagObjectService tagObjectService, - DomainService domainService) { + CollectService collectService, @Lazy DimensionService dimensionService, + @Lazy MetricService metricService, TagObjectService tagObjectService, + DomainService domainService) { this.tagRepository = tagRepository; this.modelService = modelService; this.collectService = collectService; @@ -106,6 +106,9 @@ public class TagMetaServiceImpl implements TagMetaService { @Override public TagResp getTag(Long id, User user) { TagDO tagDO = tagRepository.getTagById(id); + if (Objects.isNull(tagDO)) { + return null; + } TagResp tagResp = convert2Resp(tagDO); List tagRespList = Arrays.asList(tagResp); fillModelInfo(tagRespList); @@ -141,7 +144,7 @@ public class TagMetaServiceImpl implements TagMetaService { BeanUtils.copyProperties(tagMarketPageReq, tagFilter); tagFilter.setModelIds(modelIds); PageInfo tagDOPageInfo = PageHelper.startPage(tagMarketPageReq.getCurrent(), - tagMarketPageReq.getPageSize()) + tagMarketPageReq.getPageSize()) .doSelectPageInfo(() -> getTags(tagFilter)); List tagRespList = tagDOPageInfo.getList(); diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/TagQueryServiceImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/TagQueryServiceImpl.java index b558ffb53..8354c0626 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/TagQueryServiceImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/TagQueryServiceImpl.java @@ -62,6 +62,9 @@ public class TagQueryServiceImpl implements TagQueryService { itemValueResp.setItemId(itemValueReq.getItemId()); itemValueResp.setType(SchemaElementType.TAG); TagResp tag = tagMetaService.getTag(itemValueReq.getItemId(), user); + if (Objects.isNull(tag)) { + return null; + } checkTag(tag); itemValueResp.setName(tag.getName()); itemValueResp.setBizName(tag.getBizName()); 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 92196de9a..a47231384 100644 --- a/launchers/standalone/src/main/java/com/tencent/supersonic/ModelDemoDataLoader.java +++ b/launchers/standalone/src/main/java/com/tencent/supersonic/ModelDemoDataLoader.java @@ -40,6 +40,7 @@ import com.tencent.supersonic.headless.api.pojo.enums.DimensionType; import com.tencent.supersonic.headless.api.pojo.enums.IdentifyType; import com.tencent.supersonic.headless.api.pojo.enums.MetricDefineType; import com.tencent.supersonic.headless.api.pojo.enums.SemanticType; +import com.tencent.supersonic.headless.api.pojo.enums.TagDefineType; import com.tencent.supersonic.headless.api.pojo.request.DataSetReq; import com.tencent.supersonic.headless.api.pojo.request.DatabaseReq; import com.tencent.supersonic.headless.api.pojo.request.DimensionReq; @@ -47,6 +48,7 @@ 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.TagObjectReq; +import com.tencent.supersonic.headless.api.pojo.request.TagReq; import com.tencent.supersonic.headless.server.service.DataSetService; import com.tencent.supersonic.headless.server.service.DatabaseService; import com.tencent.supersonic.headless.server.service.DimensionService; @@ -113,6 +115,7 @@ public class ModelDemoDataLoader { addModel_4(); updateDimension(); updateMetric(); + addTags(); updateMetric_pv(); addDataSet_1(); addDataSet_2(); @@ -370,6 +373,20 @@ public class ModelDemoDataLoader { modelService.createModel(modelReq, user); } + private void addTags() { + addTag(4L); + addTag(5L); + addTag(6L); + addTag(7L); + } + + private void addTag(Long itemId) { + TagReq tagReq = new TagReq(); + tagReq.setTagDefineType(TagDefineType.DIMENSION); + tagReq.setItemId(itemId); + tagMetaService.create(tagReq, User.getFakeUser()); + } + public void updateDimension() throws Exception { DimensionReq dimensionReq = new DimensionReq(); dimensionReq.setType(DimensionType.categorical.name()); diff --git a/launchers/standalone/src/main/resources/application-local.yaml b/launchers/standalone/src/main/resources/application-local.yaml index cbe243794..5b5337e1b 100644 --- a/launchers/standalone/src/main/resources/application-local.yaml +++ b/launchers/standalone/src/main/resources/application-local.yaml @@ -59,8 +59,8 @@ s2: langchain4j: #1.chat-model chat-model: - provider: open_ai - openai: + provider: local_ai + local_ai: api-key: api_key model-name: gpt-3.5-turbo-16k temperature: 0.0 diff --git a/launchers/standalone/src/test/java/com/tencent/supersonic/headless/QueryTagValueTest.java b/launchers/standalone/src/test/java/com/tencent/supersonic/headless/QueryTagValueTest.java new file mode 100644 index 000000000..b720a67be --- /dev/null +++ b/launchers/standalone/src/test/java/com/tencent/supersonic/headless/QueryTagValueTest.java @@ -0,0 +1,26 @@ +package com.tencent.supersonic.headless; + +import static org.junit.Assert.assertTrue; + +import com.tencent.supersonic.auth.api.authentication.pojo.User; +import com.tencent.supersonic.headless.api.pojo.SchemaElementType; +import com.tencent.supersonic.headless.api.pojo.request.ItemValueReq; +import com.tencent.supersonic.headless.api.pojo.response.ItemValueResp; +import com.tencent.supersonic.headless.server.service.TagQueryService; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; + +public class QueryTagValueTest extends BaseTest { + + @Autowired + protected TagQueryService tagQueryService; + + @Test + public void testQueryTagValue() throws Exception { + ItemValueReq itemValueReq = new ItemValueReq(); + itemValueReq.setItemId(1L); + itemValueReq.setType(SchemaElementType.DIMENSION); + ItemValueResp itemValueResp = tagQueryService.queryTagValue(itemValueReq, User.getFakeUser()); + assertTrue(itemValueResp != null); + } +}