From 3621766a0d638d92f56dfe07e13efa1305ee2f7b Mon Sep 17 00:00:00 2001 From: lexluo09 <39718951+lexluo09@users.noreply.github.com> Date: Tue, 6 Aug 2024 14:45:49 +0800 Subject: [PATCH] (improvement)(chat) Support compatibility for handling historical primary and foreign data. (#1517) --- .../server/rest/KnowledgeController.java | 13 ++++++++++++- .../server/utils/DimensionConverter.java | 19 +++++++++++++++---- .../resources/config.update/sql-update.sql | 5 ++++- 3 files changed, 31 insertions(+), 6 deletions(-) diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/rest/KnowledgeController.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/rest/KnowledgeController.java index 5159c730d..099d223c9 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/rest/KnowledgeController.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/rest/KnowledgeController.java @@ -11,9 +11,10 @@ import com.tencent.supersonic.headless.api.pojo.request.DictValueReq; import com.tencent.supersonic.headless.api.pojo.response.DictItemResp; import com.tencent.supersonic.headless.api.pojo.response.DictTaskResp; import com.tencent.supersonic.headless.api.pojo.response.DictValueResp; -import com.tencent.supersonic.headless.server.task.MetaEmbeddingTask; import com.tencent.supersonic.headless.server.service.DictConfService; import com.tencent.supersonic.headless.server.service.DictTaskService; +import com.tencent.supersonic.headless.server.task.DictionaryReloadTask; +import com.tencent.supersonic.headless.server.task.MetaEmbeddingTask; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -41,6 +42,9 @@ public class KnowledgeController { @Autowired private MetaEmbeddingTask embeddingTask; + @Autowired + private DictionaryReloadTask dictionaryReloadTask; + /** * addDictConf-新增item的字典配置 * Add configuration information for dictionary entries @@ -173,4 +177,11 @@ public class KnowledgeController { return taskService.queryDictFilePath(dictValueReq, user); } + @PostMapping("/dict/reload") + public boolean reloadKnowledge(@RequestBody @Valid DictValueReq dictValueReq, + HttpServletRequest request, + HttpServletResponse response) { + dictionaryReloadTask.reloadKnowledge(); + return true; + } } diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DimensionConverter.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DimensionConverter.java index 1b396b53a..84b613dbc 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DimensionConverter.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DimensionConverter.java @@ -8,10 +8,11 @@ import com.tencent.supersonic.common.util.BeanMapper; import com.tencent.supersonic.common.util.JsonUtil; import com.tencent.supersonic.headless.api.pojo.DimValueMap; 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.DimensionReq; +import com.tencent.supersonic.headless.api.pojo.response.DataSetResp; import com.tencent.supersonic.headless.api.pojo.response.DimensionResp; import com.tencent.supersonic.headless.api.pojo.response.ModelResp; -import com.tencent.supersonic.headless.api.pojo.response.DataSetResp; import com.tencent.supersonic.headless.server.persistence.dataobject.DimensionDO; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; @@ -86,7 +87,7 @@ public class DimensionConverter { if (dimensionDO.getExt() != null) { dimensionResp.setExt(JSONObject.parseObject(dimensionDO.getExt(), Map.class)); } - dimensionResp.setType(DimensionType.valueOf(dimensionDO.getType())); + dimensionResp.setType(getType(dimensionDO.getType())); dimensionResp.setTypeEnum(TypeEnums.DIMENSION); return dimensionResp; } @@ -95,10 +96,20 @@ public class DimensionConverter { return convert2DimensionResp(dimensionDO, new HashMap<>()); } + private static DimensionType getType(String type) { + try { + //Support compatibility with legacy data. + IdentifyType.valueOf(type.toLowerCase()); + return DimensionType.identify; + } catch (IllegalArgumentException e) { + return DimensionType.valueOf(type); + } + } + public static List filterByDataSet(List dimensionResps, DataSetResp dataSetResp) { return dimensionResps.stream().filter(dimensionResp -> - dataSetResp.dimensionIds().contains(dimensionResp.getId()) - || dataSetResp.getAllIncludeAllModels().contains(dimensionResp.getModelId())) + dataSetResp.dimensionIds().contains(dimensionResp.getId()) + || dataSetResp.getAllIncludeAllModels().contains(dimensionResp.getModelId())) .collect(Collectors.toList()); } 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 8d351f0f9..39615e9a8 100644 --- a/launchers/standalone/src/main/resources/config.update/sql-update.sql +++ b/launchers/standalone/src/main/resources/config.update/sql-update.sql @@ -362,4 +362,7 @@ alter table s2_agent add `enable_memory_review` tinyint DEFAULT 0; alter table s2_chat_memory add `side_info` TEXT DEFAULT NULL COMMENT '辅助信息'; --20240730 -alter table s2_chat_parse modify column `chat_id` int(11); \ No newline at end of file +alter table s2_chat_parse modify column `chat_id` int(11); + +--20240806 +UPDATE `s2_dimension` SET `type` = 'identify' WHERE `type` in ('primary','foreign'); \ No newline at end of file