(improvement)(chat) Support compatibility for handling historical primary and foreign data. (#1517)

This commit is contained in:
lexluo09
2024-08-06 14:45:49 +08:00
committed by GitHub
parent 89b028b594
commit 3621766a0d
3 changed files with 31 additions and 6 deletions

View File

@@ -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.DictItemResp;
import com.tencent.supersonic.headless.api.pojo.response.DictTaskResp; import com.tencent.supersonic.headless.api.pojo.response.DictTaskResp;
import com.tencent.supersonic.headless.api.pojo.response.DictValueResp; 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.DictConfService;
import com.tencent.supersonic.headless.server.service.DictTaskService; 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.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
@@ -41,6 +42,9 @@ public class KnowledgeController {
@Autowired @Autowired
private MetaEmbeddingTask embeddingTask; private MetaEmbeddingTask embeddingTask;
@Autowired
private DictionaryReloadTask dictionaryReloadTask;
/** /**
* addDictConf-新增item的字典配置 * addDictConf-新增item的字典配置
* Add configuration information for dictionary entries * Add configuration information for dictionary entries
@@ -173,4 +177,11 @@ public class KnowledgeController {
return taskService.queryDictFilePath(dictValueReq, user); return taskService.queryDictFilePath(dictValueReq, user);
} }
@PostMapping("/dict/reload")
public boolean reloadKnowledge(@RequestBody @Valid DictValueReq dictValueReq,
HttpServletRequest request,
HttpServletResponse response) {
dictionaryReloadTask.reloadKnowledge();
return true;
}
} }

View File

@@ -8,10 +8,11 @@ import com.tencent.supersonic.common.util.BeanMapper;
import com.tencent.supersonic.common.util.JsonUtil; import com.tencent.supersonic.common.util.JsonUtil;
import com.tencent.supersonic.headless.api.pojo.DimValueMap; 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.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.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.DimensionResp;
import com.tencent.supersonic.headless.api.pojo.response.ModelResp; 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 com.tencent.supersonic.headless.server.persistence.dataobject.DimensionDO;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
@@ -86,7 +87,7 @@ public class DimensionConverter {
if (dimensionDO.getExt() != null) { if (dimensionDO.getExt() != null) {
dimensionResp.setExt(JSONObject.parseObject(dimensionDO.getExt(), Map.class)); dimensionResp.setExt(JSONObject.parseObject(dimensionDO.getExt(), Map.class));
} }
dimensionResp.setType(DimensionType.valueOf(dimensionDO.getType())); dimensionResp.setType(getType(dimensionDO.getType()));
dimensionResp.setTypeEnum(TypeEnums.DIMENSION); dimensionResp.setTypeEnum(TypeEnums.DIMENSION);
return dimensionResp; return dimensionResp;
} }
@@ -95,6 +96,16 @@ public class DimensionConverter {
return convert2DimensionResp(dimensionDO, new HashMap<>()); 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<DimensionResp> filterByDataSet(List<DimensionResp> dimensionResps, DataSetResp dataSetResp) { public static List<DimensionResp> filterByDataSet(List<DimensionResp> dimensionResps, DataSetResp dataSetResp) {
return dimensionResps.stream().filter(dimensionResp -> return dimensionResps.stream().filter(dimensionResp ->
dataSetResp.dimensionIds().contains(dimensionResp.getId()) dataSetResp.dimensionIds().contains(dimensionResp.getId())

View File

@@ -363,3 +363,6 @@ alter table s2_chat_memory add `side_info` TEXT DEFAULT NULL COMMENT '辅助信
--20240730 --20240730
alter table s2_chat_parse modify column `chat_id` int(11); alter table s2_chat_parse modify column `chat_id` int(11);
--20240806
UPDATE `s2_dimension` SET `type` = 'identify' WHERE `type` in ('primary','foreign');