(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.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;
}
}

View File

@@ -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<DimensionResp> filterByDataSet(List<DimensionResp> 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());
}

View File

@@ -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);
alter table s2_chat_parse modify column `chat_id` int(11);
--20240806
UPDATE `s2_dimension` SET `type` = 'identify' WHERE `type` in ('primary','foreign');