From e303b6f78c87b78862586052172f71cabcd7f933 Mon Sep 17 00:00:00 2001 From: Liuyang <2746366019@qq.com> Date: Thu, 13 Mar 2025 18:22:00 +0800 Subject: [PATCH] =?UTF-8?q?refactor(llm):=20=E5=B0=86=E7=9F=A5=E8=AF=86?= =?UTF-8?q?=E5=BA=93=E4=B8=AD=E7=9A=84=20score=20=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E4=BB=8E=20Integer=20=E6=94=B9=E4=B8=BA=20Do?= =?UTF-8?q?uble?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改了 KnowledgeBasePageReqVO、KnowledgeBaseRespVO 和 KnowledgeBaseSaveReqVO 中的 score 字段类型 - 这个改动可以提供更高的精度,更好地处理分数阈值 --- .../admin/knowledgebase/vo/KnowledgeBasePageReqVO.java | 4 ++-- .../admin/knowledgebase/vo/KnowledgeBaseRespVO.java | 2 +- .../admin/knowledgebase/vo/KnowledgeBaseSaveReqVO.java | 2 +- .../llm/service/conversation/ConversationServiceImpl.java | 7 +++++-- .../yudao/module/llm/service/http/ModelService.java | 5 +++-- 5 files changed, 12 insertions(+), 8 deletions(-) diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/knowledgebase/vo/KnowledgeBasePageReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/knowledgebase/vo/KnowledgeBasePageReqVO.java index bd24de002..2aa96f54a 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/knowledgebase/vo/KnowledgeBasePageReqVO.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/knowledgebase/vo/KnowledgeBasePageReqVO.java @@ -32,7 +32,7 @@ public class KnowledgeBasePageReqVO extends PageParam { private Integer topK; @Schema(description = "Score阈值") - private Integer score; + private Double score; @Schema(description = "知识长度") private Integer knowledgeLength; @@ -40,4 +40,4 @@ public class KnowledgeBasePageReqVO extends PageParam { @Schema(description = "文件引用") private String knowledgeFile; -} \ No newline at end of file +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/knowledgebase/vo/KnowledgeBaseRespVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/knowledgebase/vo/KnowledgeBaseRespVO.java index d7524603a..95799aef2 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/knowledgebase/vo/KnowledgeBaseRespVO.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/knowledgebase/vo/KnowledgeBaseRespVO.java @@ -40,7 +40,7 @@ public class KnowledgeBaseRespVO { @Schema(description = "Score阈值") @ExcelProperty("Score阈值") - private Integer score; + private Double score; @Schema(description = "知识长度") @ExcelProperty("知识长度") diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/knowledgebase/vo/KnowledgeBaseSaveReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/knowledgebase/vo/KnowledgeBaseSaveReqVO.java index c0a9be386..eb5733ff1 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/knowledgebase/vo/KnowledgeBaseSaveReqVO.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/knowledgebase/vo/KnowledgeBaseSaveReqVO.java @@ -27,7 +27,7 @@ public class KnowledgeBaseSaveReqVO { private Integer topK; @Schema(description = "Score阈值") - private Integer score; + private Double score; @Schema(description = "知识长度") private Integer knowledgeLength; diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/conversation/ConversationServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/conversation/ConversationServiceImpl.java index 008c736b0..e08c9e053 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/conversation/ConversationServiceImpl.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/conversation/ConversationServiceImpl.java @@ -588,6 +588,7 @@ public class ConversationServiceImpl implements ConversationService { .collect(Collectors.groupingBy(KnowledgeHitRateTestResultVO::getFileId)); // 遍历Map,查看分组结果 + List finalWords = words; groupedByFileId.forEach((fileId, list) -> { System.out.println("File ID: " + fileId); list.forEach(i->{ @@ -607,10 +608,12 @@ public class ConversationServiceImpl implements ConversationService { rateWordVO.setParagraphHitRate(paragraphHitRate); - words.add(rateWordVO); + finalWords.add(rateWordVO); }); }); - + Set uniqueWords = new TreeSet<>(Comparator.comparing(ParagraphHitRateWordVO::getDocumentName)); + uniqueWords.addAll(words); + words = new ArrayList<>(uniqueWords); if (CollectionUtils.isEmpty(words)) { paragraphHitRateListVO.setWordList(Collections.emptyList()); paragraphHitRateListVO.setIsExist(false); diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/ModelService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/ModelService.java index 81737f56a..27cefc1f7 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/ModelService.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/ModelService.java @@ -357,10 +357,11 @@ public class ModelService { String content = delta.getString("content"); // content = content.replaceAll("\n", " "); ChatReqVO chatReqVO = new ChatReqVO(); - chatReqVO.setUuid(""); - chatReqVO.setGroupId(""); + chatReqVO.setUuid(uuid); + chatReqVO.setGroupId(groupId); chatReqVO.setContent(content); chatReqVO.setFinish_reason(false); + chatReqVO.setIsExist(!StringUtils.isBlank(knowledgeBaseString)); return JSON.toJSONString(chatReqVO); } }