This commit is contained in:
Timothy Jaeryang Baek
2026-05-20 00:37:04 +04:00
parent b9911c8bc6
commit d0b17f0569
2 changed files with 28 additions and 3 deletions

View File

@@ -168,6 +168,27 @@ async def process_uploaded_file(
db=db_session,
)
# Auto-link to Knowledge Collection when uploaded from one (#24807).
# Mirrors POST /knowledge/{id}/file/add so linking doesn't depend
# on the frontend staying connected after upload.
knowledge_id = file_metadata.get('knowledge_id')
if knowledge_id:
try:
await Knowledges.add_file_to_knowledge_by_id(
knowledge_id=knowledge_id,
file_id=file_item.id,
user_id=user.id,
directory_id=file_metadata.get('directory_id'),
)
await process_file(
request,
ProcessFileForm(file_id=file_item.id, collection_name=knowledge_id),
user=user,
)
log.info(f'Linked file {file_item.id} to knowledge {knowledge_id}')
except Exception as e:
log.warning(f'Failed to link file {file_item.id} to knowledge {knowledge_id}: {e}')
except Exception as e:
log.error(f'Error processing file: {file_item.id}')
await Files.update_file_data_by_id(

View File

@@ -246,7 +246,9 @@
res.content
);
const uploadedFile = await uploadFile(localStorage.token, file).catch((e) => {
const uploadedFile = await uploadFile(localStorage.token, file, {
knowledge_id: knowledge.id
}).catch((e) => {
toast.error(`${e}`);
return null;
});
@@ -265,7 +267,8 @@
toast.warning(uploadedFile.error);
fileItems = fileItems.filter((file) => file.id !== uploadedFile.id);
} else {
await addFileHandler(uploadedFile.id);
toast.success($i18n.t('File added successfully.'));
init();
}
} else {
toast.error($i18n.t('Failed to upload file.'));
@@ -351,7 +354,8 @@
toast.warning(uploadedFile.error);
fileItems = fileItems.filter((file) => file.id !== uploadedFile.id);
} else {
await addFileHandler(uploadedFile.id);
toast.success($i18n.t('File added successfully.'));
init();
}
} else {
toast.error($i18n.t('Failed to upload file.'));