-
Notifications
You must be signed in to change notification settings - Fork 239
Open
Description
操作:
知识库数据导入
现象:
无异常、文件正常上传至存储中,未切片
原因:
个人问题,由于Minio存储桶设置了private导致文件无法下载
问题:
在调用/docs/{knowledgeId}接口时上传文件,上传文件无响应,文档没有正确的被embeddingService.embedDocsSlice(data, oss.getUrl())这个方法消费,由于使用了Callable,所以,必须要在Callable.get()的时候才能正确的显示流程中的异常信息
预期:
应该有一个线程去轮询消费吧?或者这个地方这个异步任务应该有结果被查询才正常吧
个人疑问
在embeddingDocs方法中使用了req.getUrl()去下载文件是不是不太合理,上传文件用了fileStorageService.of(file)
.setPath(DateUtil.format(new Date(), DatePattern.PURE_DATE_PATTERN))
.upload(),但是下载却用普通的url
在EmbeddingEndpoint中docs方法里是不是使用类似于下面这种方法更合适?或者文件根本不走下载,直接给那个MultipartFile复用一下MultipartFile.getResource().getURL()
String userId = String.valueOf(AuthUtil.getUserId());
AigcOss oss = aigcOssService.upload(file, userId);
AigcDocs data = new AigcDocs()
.setName(oss.getOriginalFilename())
.setSliceStatus(false)
.setUrl(oss.getUrl())
.setSize(file.getSize())
.setType(EmbedConst.ORIGIN_TYPE_UPLOAD)
.setKnowledgeId(knowledgeId);
FileInfo fileInfo = BeanUtil.copyProperties(oss, FileInfo.class);
File tempFile = FileUtil.createTempFile();
fileStorageService.download(fileInfo).inputStream(inputStream ->
FileUtil.writeFromStream(inputStream, tempFile));
aigcKnowledgeService.addDocs(data);
TaskManager.submitTask(userId, Executors.callable(() -> {
embeddingService.embedDocsSlice(data, oss.getUrl());
}));
return R.ok();
Metadata
Metadata
Assignees
Labels
No labels