diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/knowledge/MapResult.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/knowledge/MapResult.java index a2583eb88..969a74eca 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/knowledge/MapResult.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/knowledge/MapResult.java @@ -22,4 +22,9 @@ public abstract class MapResult implements Serializable { return this.getMapKey().equals(otherResult.getMapKey()) && this.similarity < otherResult.similarity; } + + public Boolean lessOrEqualSimilar(MapResult otherResult) { + return this.getMapKey().equals(otherResult.getMapKey()) + && this.similarity <= otherResult.similarity; + } } diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/knowledge/MetaEmbeddingService.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/knowledge/MetaEmbeddingService.java index e4f48597b..f8ee287c3 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/knowledge/MetaEmbeddingService.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/knowledge/MetaEmbeddingService.java @@ -75,6 +75,8 @@ public class MetaEmbeddingService { return dataSetIds.stream().map(dataSetId -> { Retrieval newRetrieval = new Retrieval(); BeanUtils.copyProperties(retrieval, newRetrieval); + HashMap newMetadata = new HashMap<>(retrieval.getMetadata()); + newRetrieval.setMetadata(newMetadata); newRetrieval.getMetadata().putIfAbsent("dataSetId", dataSetId + Constants.UNDERLINE); return newRetrieval; diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/BaseMatchStrategy.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/BaseMatchStrategy.java index 57856ccd4..04b4d31d4 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/BaseMatchStrategy.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/BaseMatchStrategy.java @@ -56,7 +56,8 @@ public abstract class BaseMatchStrategy implements MatchStr for (T oneRoundResult : oneRoundResults) { if (existResults.contains(oneRoundResult)) { boolean isDeleted = existResults.removeIf(existResult -> { - boolean delete = existResult.lessSimilar(oneRoundResult); +// boolean delete = existResult.lessSimilar(oneRoundResult); + boolean delete = existResult.lessOrEqualSimilar(oneRoundResult); if (delete) { log.debug("deleted existResult:{}", existResult); }