18586361686
2025-05-23 e2dd99c9059baaddce3f14469ae7bc88b4c97293
fix: 检索测试时,相似度不准确
close #IC9FQM
1个文件已修改
9 ■■■■■ 已修改文件
aiflowy-modules/aiflowy-module-ai/src/main/java/tech/aiflowy/ai/service/impl/AiKnowledgeServiceImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aiflowy-modules/aiflowy-module-ai/src/main/java/tech/aiflowy/ai/service/impl/AiKnowledgeServiceImpl.java
@@ -74,16 +74,15 @@
        for (Document result : results) {
            Object resultId = result.getId();
            Double similarityScore = result.getScore();
            // 使用 BigDecimal 保留小数点后四位
            BigDecimal formatScore = new BigDecimal(similarityScore);
            formatScore = formatScore.setScale(4, RoundingMode.HALF_UP); // 四舍五入保留四位小数
            similarityScore = formatScore.doubleValue();
            // 计算相似度并保留 4 位小数
            BigDecimal similarity = BigDecimal.valueOf(1 - similarityScore)
                    .setScale(4, RoundingMode.HALF_UP); // 四舍五入
            AiDocumentChunk documentChunk = chunkService.getMapper().selectOneWithRelationsByMap(
                    Maps.of("id", resultId));
            if (documentChunk == null){
                continue;
            }
            documentChunk.setSimilarityScore(similarityScore);
            documentChunk.setSimilarityScore(similarity.doubleValue());
            chunks.add(documentChunk);
        }