refactor(yudao-module-llm): 优化知识库文档处理逻辑
- 增加对 rateWordVO 和 words 列表的空值检查,避免空指针异常 - 在文档列表为空时,设置空的 wordList 和 groupId - 优化 parseEmbeddingResponse 返回值处理,增加空值检查 - 添加对命中率结果的验证,避免无效值
This commit is contained in:
parent
95814e1f2b
commit
2d6d0bffe3
@ -517,9 +517,16 @@ public class ConversationServiceImpl implements ConversationService {
|
||||
// 2. 遍历处理每个文档
|
||||
for (KnowledgeDocumentsDO document : documentList) {
|
||||
ParagraphHitRateWordVO rateWordVO = processDocument(document, chatReqVO, knowledgeBase);
|
||||
words.add(rateWordVO);
|
||||
if (rateWordVO!=null){
|
||||
words.add(rateWordVO);
|
||||
}
|
||||
}
|
||||
if (CollectionUtils.isEmpty(words)){
|
||||
paragraphHitRateListVO.setWordList(Collections.emptyList());
|
||||
paragraphHitRateListVO.setGroupId("");
|
||||
}else {
|
||||
paragraphHitRateListVO.setWordList(words);
|
||||
}
|
||||
paragraphHitRateListVO.setWordList(words);
|
||||
|
||||
// 请求结果添加到 Redis,查询段落命中率
|
||||
String redisKey = String.format("%s:%s", KNOWLEDGE_DOCUMENTS_REDIS_KEY, chatReqVO.getUuid());
|
||||
@ -567,7 +574,11 @@ public class ConversationServiceImpl implements ConversationService {
|
||||
log.info("[KnowledgeBase] 知识库请求结果:{}", response);
|
||||
|
||||
paragraphHitRateListVO.setDocumentName(document.getDocumentName());
|
||||
paragraphHitRateListVO.setParagraphHitRate(parseEmbeddingResponse(response, knowledgeBase, chatReqVO.getUuid()));
|
||||
List<ParagraphHitRateVO> rateVOS = parseEmbeddingResponse(response, knowledgeBase, chatReqVO.getUuid());
|
||||
if (CollectionUtils.isNotEmpty(rateVOS)){
|
||||
return null;
|
||||
}
|
||||
paragraphHitRateListVO.setParagraphHitRate(rateVOS);
|
||||
} catch (Exception e) {
|
||||
log.warn("{} 文档[{}]处理异常: {}", "[KnowledgeBase]", document.getId(), e.getMessage());
|
||||
// 单个文档失败不影响整体流程
|
||||
@ -616,6 +627,10 @@ public class ConversationServiceImpl implements ConversationService {
|
||||
String rateResult = df.format(rate);
|
||||
log.info("{} 命中率: {}", "[KnowledgeBase]", rateResult);
|
||||
|
||||
if (StringUtils.isBlank(rateResult)||Double.parseDouble(rateResult)<=0.0){
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(pageContent)) {
|
||||
knowledgeBase.append("\n[知识库内容] ").append(pageContent);
|
||||
log.info("{} 添加知识内容,长度: {}", "[KnowledgeBase]", pageContent.length());
|
||||
|
Loading…
x
Reference in New Issue
Block a user