From ea3ad5c828c048ddd3712e74eae5e41894a9a98c Mon Sep 17 00:00:00 2001 From: YunaiV Date: Mon, 4 May 2026 10:45:03 +0800 Subject: [PATCH] ✨ feat(ai):补齐 AI 知识库段落删除接口 DELETE /ai/knowledge/segment/delete,对齐前端 KnowledgeSegmentApi.deleteKnowledgeSegment 调用 --- yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/knowledge/AiKnowledgeSegmentController.java | 9 +++++++++ yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/knowledge/AiKnowledgeSegmentService.java | 7 +++++++ yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/knowledge/AiKnowledgeSegmentServiceImpl.java | 13 +++++++++++++ 3 files changed, 29 insertions(+), 0 deletions(-) diff --git a/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/knowledge/AiKnowledgeSegmentController.java b/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/knowledge/AiKnowledgeSegmentController.java index 34f3244..6c87be8 100644 --- a/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/knowledge/AiKnowledgeSegmentController.java +++ b/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/knowledge/AiKnowledgeSegmentController.java @@ -83,6 +83,15 @@ public class AiKnowledgeSegmentController { return success(true); } + @DeleteMapping("/delete") + @Operation(summary = "删除段落") + @Parameter(name = "id", description = "段落编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('ai:knowledge:delete')") + public CommonResult deleteKnowledgeSegment(@RequestParam("id") Long id) { + segmentService.deleteKnowledgeSegment(id); + return success(true); + } + @GetMapping("/split") @Operation(summary = "切片内容") @Parameters({ diff --git a/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/knowledge/AiKnowledgeSegmentService.java b/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/knowledge/AiKnowledgeSegmentService.java index 54f7217..9894e73 100644 --- a/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/knowledge/AiKnowledgeSegmentService.java +++ b/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/knowledge/AiKnowledgeSegmentService.java @@ -99,6 +99,13 @@ public interface AiKnowledgeSegmentService { void updateKnowledgeSegmentStatus(AiKnowledgeSegmentUpdateStatusReqVO reqVO); /** + * 删除知识库段落 + * + * @param id 段落编号 + */ + void deleteKnowledgeSegment(Long id); + + /** * 重新索引知识库下的所有文档段落 * * @param knowledgeId 知识库编号 diff --git a/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/knowledge/AiKnowledgeSegmentServiceImpl.java b/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/knowledge/AiKnowledgeSegmentServiceImpl.java index 9d64fcc..b503841 100644 --- a/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/knowledge/AiKnowledgeSegmentServiceImpl.java +++ b/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/knowledge/AiKnowledgeSegmentServiceImpl.java @@ -142,6 +142,19 @@ public class AiKnowledgeSegmentServiceImpl implements AiKnowledgeSegmentService } @Override + public void deleteKnowledgeSegment(Long id) { + // 1. 校验段落存在 + AiKnowledgeSegmentDO segment = validateKnowledgeSegmentExists(id); + + // 2. 删除向量 + VectorStore vectorStore = getVectorStoreById(segment.getKnowledgeId()); + deleteVectorStore(vectorStore, segment); + + // 3. 删除段落记录 + segmentMapper.deleteById(id); + } + + @Override public void deleteKnowledgeSegmentByDocumentId(Long documentId) { // 1. 查询需要删除的段落 List segments = segmentMapper.selectListByDocumentId(documentId); -- libgit2 0.21.4