feat: 重构知识库文档导入任务化流程
- 新增上传建单、异步解析、分块处理与异步向量化闭环 - 收口分享页权限、完成态检索过滤与 SSE 局部状态刷新
This commit is contained in:
@@ -224,6 +224,83 @@ public class PublicKnowledgeShareController {
|
||||
return documentService.commitImport(request);
|
||||
}
|
||||
|
||||
@PostMapping("/document/import/task/create")
|
||||
public Result<DocumentImportDtos.TaskCreateResponse> createImportTask(
|
||||
@RequestHeader("ApiKey") String apiKey,
|
||||
@JsonBody DocumentImportDtos.TaskCreateRequest request,
|
||||
HttpServletRequest servletRequest
|
||||
) {
|
||||
assertApiShare(apiKey, servletRequest.getRequestURI(), request.getKnowledgeId(), KnowledgeShareActionScope.CONTENT_CREATE.name());
|
||||
requireDocumentKnowledge(request.getKnowledgeId());
|
||||
audit(apiKey, "API创建文档导入任务", "KNOWLEDGE_API_SHARE_WRITE", servletRequest.getRequestURI(), Map.of("knowledgeId", request.getKnowledgeId()));
|
||||
return documentService.createImportTask(request);
|
||||
}
|
||||
|
||||
@GetMapping("/document/import/task/detail")
|
||||
public Result<DocumentImportDtos.TaskDetailResponse> getImportTaskDetail(
|
||||
@RequestHeader("ApiKey") String apiKey,
|
||||
@RequestParam BigInteger knowledgeId,
|
||||
@RequestParam BigInteger taskId,
|
||||
HttpServletRequest request
|
||||
) {
|
||||
assertApiShare(apiKey, request.getRequestURI(), knowledgeId, KnowledgeShareActionScope.VIEW.name());
|
||||
requireDocumentKnowledge(knowledgeId);
|
||||
Result<DocumentImportDtos.TaskDetailResponse> result = documentService.getImportTaskDetail(taskId);
|
||||
if (result.getData() == null || result.getData().getKnowledgeId() == null
|
||||
|| result.getData().getKnowledgeId().compareTo(knowledgeId) != 0) {
|
||||
throw new BusinessException("任务不存在");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@PostMapping("/document/import/task/preview")
|
||||
public Result<DocumentImportDtos.PreviewResponse> previewImportTask(
|
||||
@RequestHeader("ApiKey") String apiKey,
|
||||
@JsonBody DocumentImportDtos.PreviewRequest request,
|
||||
HttpServletRequest servletRequest
|
||||
) {
|
||||
assertApiShare(apiKey, servletRequest.getRequestURI(), request.getKnowledgeId(), KnowledgeShareActionScope.CONTENT_CREATE.name());
|
||||
requireDocumentKnowledge(request.getKnowledgeId());
|
||||
audit(apiKey, "API预览文档分块", "KNOWLEDGE_API_SHARE_WRITE", servletRequest.getRequestURI(), Map.of("knowledgeId", request.getKnowledgeId()));
|
||||
return documentService.previewImportTask(request);
|
||||
}
|
||||
|
||||
@PostMapping("/document/import/task/startIndex")
|
||||
public Result<DocumentImportDtos.TaskStartIndexResponse> startIndexTask(
|
||||
@RequestHeader("ApiKey") String apiKey,
|
||||
@JsonBody DocumentImportDtos.TaskStartIndexRequest request,
|
||||
HttpServletRequest servletRequest
|
||||
) {
|
||||
assertApiShare(apiKey, servletRequest.getRequestURI(), request.getKnowledgeId(), KnowledgeShareActionScope.CONTENT_CREATE.name());
|
||||
requireDocumentKnowledge(request.getKnowledgeId());
|
||||
audit(apiKey, "API启动文档向量化", "KNOWLEDGE_API_SHARE_WRITE", servletRequest.getRequestURI(), Map.of("knowledgeId", request.getKnowledgeId()));
|
||||
return documentService.startIndexTask(request);
|
||||
}
|
||||
|
||||
@PostMapping("/document/import/task/retryParse")
|
||||
public Result<DocumentImportDtos.TaskStartIndexResponse> retryParseTask(
|
||||
@RequestHeader("ApiKey") String apiKey,
|
||||
@JsonBody DocumentImportDtos.TaskRetryRequest request,
|
||||
HttpServletRequest servletRequest
|
||||
) {
|
||||
assertApiShare(apiKey, servletRequest.getRequestURI(), request.getKnowledgeId(), KnowledgeShareActionScope.CONTENT_CREATE.name());
|
||||
requireDocumentKnowledge(request.getKnowledgeId());
|
||||
audit(apiKey, "API重试文档解析", "KNOWLEDGE_API_SHARE_WRITE", servletRequest.getRequestURI(), Map.of("knowledgeId", request.getKnowledgeId()));
|
||||
return documentService.retryParseTask(request);
|
||||
}
|
||||
|
||||
@PostMapping("/document/import/task/retryIndex")
|
||||
public Result<DocumentImportDtos.TaskStartIndexResponse> retryIndexTask(
|
||||
@RequestHeader("ApiKey") String apiKey,
|
||||
@JsonBody DocumentImportDtos.TaskRetryRequest request,
|
||||
HttpServletRequest servletRequest
|
||||
) {
|
||||
assertApiShare(apiKey, servletRequest.getRequestURI(), request.getKnowledgeId(), KnowledgeShareActionScope.CONTENT_CREATE.name());
|
||||
requireDocumentKnowledge(request.getKnowledgeId());
|
||||
audit(apiKey, "API重试文档向量化", "KNOWLEDGE_API_SHARE_WRITE", servletRequest.getRequestURI(), Map.of("knowledgeId", request.getKnowledgeId()));
|
||||
return documentService.retryIndexTask(request);
|
||||
}
|
||||
|
||||
/**
|
||||
* Chunk 分页。
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user