From 2b3318cd3d2ba1e22675cdd9b671d223190e2911 Mon Sep 17 00:00:00 2001 From: Yongteng Lei Date: Thu, 14 Aug 2025 09:40:30 +0800 Subject: [PATCH] Fix: KB folder may not there while creating virtual file (#9431) ### What problem does this PR solve? KB folder may not there while creating virtual file. #9423 ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue) --- api/db/services/file_service.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/api/db/services/file_service.py b/api/db/services/file_service.py index 767b389e9..24f923d38 100644 --- a/api/db/services/file_service.py +++ b/api/db/services/file_service.py @@ -227,10 +227,13 @@ class FileService(CommonService): # tenant_id: Tenant ID # Returns: # Knowledge base folder dictionary - for root in cls.model.select().where((cls.model.tenant_id == tenant_id), (cls.model.parent_id == cls.model.id)): - for folder in cls.model.select().where((cls.model.tenant_id == tenant_id), (cls.model.parent_id == root.id), (cls.model.name == KNOWLEDGEBASE_FOLDER_NAME)): - return folder.to_dict() - assert False, "Can't find the KB folder. Database init error." + root_folder = cls.get_root_folder(tenant_id) + root_id = root_folder["id"] + kb_folder = cls.model.select().where((cls.model.tenant_id == tenant_id), (cls.model.parent_id == root_id), (cls.model.name == KNOWLEDGEBASE_FOLDER_NAME)).first() + if not kb_folder: + kb_folder = cls.new_a_file_from_kb(tenant_id, KNOWLEDGEBASE_FOLDER_NAME, root_id) + return kb_folder + return kb_folder.to_dict() @classmethod @DB.connection_context() @@ -499,10 +502,9 @@ class FileService(CommonService): @staticmethod def get_blob(user_id, location): bname = f"{user_id}-downloads" - return STORAGE_IMPL.get(bname, location) + return STORAGE_IMPL.get(bname, location) @staticmethod def put_blob(user_id, location, blob): bname = f"{user_id}-downloads" - return STORAGE_IMPL.put(bname, location, blob) - + return STORAGE_IMPL.put(bname, location, blob)