refactor(llm): 优化知识库服务和文档映射

- 修改 KnowledgeBaseServiceImpl 中的文档更新逻辑
- 更新 KnowledgeDocumentsMapper 中的 SQL 查询
- 调整 KnowledgeEmbeddingReqVO 中的字段名称
This commit is contained in:
Liuyang 2025-03-14 15:23:57 +08:00
parent 5f49c0094c
commit 63ef71fab3
3 changed files with 12 additions and 5 deletions

View File

@ -26,5 +26,5 @@ public class KnowledgeEmbeddingReqVO {
private Integer chunkOverlap;
@Schema(description = "关联的知识文档列表")
private List<KnowledgeDocumentsSaveReqVO> documents;
private List<KnowledgeDocumentsSaveReqVO> knowledgeDocuments;
}

View File

@ -28,6 +28,6 @@ public interface KnowledgeDocumentsMapper extends BaseMapperX<KnowledgeDocuments
.orderByDesc(KnowledgeDocumentsDO::getId));
}
@Select("SELECT id FROM llm_knowledge_documents WHERE knowledge_base_id = #{id} and deleted = 1")
@Select("SELECT file_id FROM llm_knowledge_documents WHERE knowledge_base_id = #{id} and deleted = 1")
List<Long> selectDeleteIds(Long id);
}

View File

@ -114,7 +114,7 @@ public class KnowledgeBaseServiceImpl implements KnowledgeBaseService {
deleteAllDocuments(updateObj.getId());
// 2: 重新上传文档
List<KnowledgeDocumentsDO> newDocuments = updateOrInsertDocuments(request.getDocuments(), request.getId());
List<KnowledgeDocumentsDO> newDocuments = updateOrInsertDocuments(request.getKnowledgeDocuments(), request.getId());
Map<String, Integer> knowledgeParameters = new HashMap<>();
knowledgeParameters.put("chunkSize", request.getChunkSize());
@ -166,9 +166,10 @@ public class KnowledgeBaseServiceImpl implements KnowledgeBaseService {
documents.forEach(doc -> {
KnowledgeDocumentsDO docDO = BeanUtils.toBean(doc, KnowledgeDocumentsDO.class);
docDO.setKnowledgeBaseId(knowledgeBaseId);
if (doc.getId() == null) {
// if (doc.getId() == null) {
newDocuments.add(docDO);
}
// }
docDO.setId(null);
knowledgeDocumentsMapper.insertOrUpdate(docDO);
});
return newDocuments;
@ -297,9 +298,15 @@ public class KnowledgeBaseServiceImpl implements KnowledgeBaseService {
Integer topK = 4;
if (baseDO.getTopK() == null || baseDO.getTopK() <= 0) {
testReqVO.setTopK(topK);
if (testReqVO.getTopK() == null){
testReqVO.setTopK(baseDO.getTopK());
}
} else {
topK = testReqVO.getTopK();
testReqVO.setTopK(topK);
if (testReqVO.getScore() == null){
testReqVO.setScore(baseDO.getScore());
}
}
Double score = 0.2;