Standardize empty workspace handling from "_" to "" across storage

* Unify empty workspace behavior by changing workspace from "_" to ""
* Fixed incorrect empty workspace detection in get_all_update_flags_status()
This commit is contained in:
yangdx 2025-11-17 05:58:11 +08:00
parent b6a5a90eaf
commit d54d0d55d9
8 changed files with 13 additions and 13 deletions

View file

@ -47,8 +47,8 @@ class FaissVectorDBStorage(BaseVectorStorage):
else: else:
# Default behavior when workspace is empty # Default behavior when workspace is empty
self.final_namespace = self.namespace self.final_namespace = self.namespace
self.workspace = "_"
workspace_dir = working_dir workspace_dir = working_dir
self.workspace = ""
os.makedirs(workspace_dir, exist_ok=True) os.makedirs(workspace_dir, exist_ok=True)
self._faiss_index_file = os.path.join( self._faiss_index_file = os.path.join(

View file

@ -38,9 +38,9 @@ class JsonDocStatusStorage(DocStatusStorage):
self.final_namespace = f"{self.workspace}_{self.namespace}" self.final_namespace = f"{self.workspace}_{self.namespace}"
else: else:
# Default behavior when workspace is empty # Default behavior when workspace is empty
self.final_namespace = self.namespace
self.workspace = "_"
workspace_dir = working_dir workspace_dir = working_dir
self.final_namespace = self.namespace
self.workspace = ""
os.makedirs(workspace_dir, exist_ok=True) os.makedirs(workspace_dir, exist_ok=True)
self._file_name = os.path.join(workspace_dir, f"kv_store_{self.namespace}.json") self._file_name = os.path.join(workspace_dir, f"kv_store_{self.namespace}.json")

View file

@ -35,7 +35,7 @@ class JsonKVStorage(BaseKVStorage):
# Default behavior when workspace is empty # Default behavior when workspace is empty
workspace_dir = working_dir workspace_dir = working_dir
self.final_namespace = self.namespace self.final_namespace = self.namespace
self.workspace = "_" self.workspace = ""
os.makedirs(workspace_dir, exist_ok=True) os.makedirs(workspace_dir, exist_ok=True)
self._file_name = os.path.join(workspace_dir, f"kv_store_{self.namespace}.json") self._file_name = os.path.join(workspace_dir, f"kv_store_{self.namespace}.json")

View file

@ -961,8 +961,8 @@ class MilvusVectorDBStorage(BaseVectorStorage):
else: else:
# When workspace is empty, final_namespace equals original namespace # When workspace is empty, final_namespace equals original namespace
self.final_namespace = self.namespace self.final_namespace = self.namespace
self.workspace = ""
logger.debug(f"Final namespace (no workspace): '{self.final_namespace}'") logger.debug(f"Final namespace (no workspace): '{self.final_namespace}'")
self.workspace = "_"
kwargs = self.global_config.get("vector_db_storage_cls_kwargs", {}) kwargs = self.global_config.get("vector_db_storage_cls_kwargs", {})
cosine_threshold = kwargs.get("cosine_better_than_threshold") cosine_threshold = kwargs.get("cosine_better_than_threshold")

View file

@ -120,7 +120,7 @@ class MongoKVStorage(BaseKVStorage):
else: else:
# When workspace is empty, final_namespace equals original namespace # When workspace is empty, final_namespace equals original namespace
self.final_namespace = self.namespace self.final_namespace = self.namespace
self.workspace = "_" self.workspace = ""
logger.debug( logger.debug(
f"[{self.workspace}] Final namespace (no workspace): '{self.namespace}'" f"[{self.workspace}] Final namespace (no workspace): '{self.namespace}'"
) )
@ -348,7 +348,7 @@ class MongoDocStatusStorage(DocStatusStorage):
else: else:
# When workspace is empty, final_namespace equals original namespace # When workspace is empty, final_namespace equals original namespace
self.final_namespace = self.namespace self.final_namespace = self.namespace
self.workspace = "_" self.workspace = ""
logger.debug(f"Final namespace (no workspace): '{self.final_namespace}'") logger.debug(f"Final namespace (no workspace): '{self.final_namespace}'")
self._collection_name = self.final_namespace self._collection_name = self.final_namespace
@ -513,7 +513,7 @@ class MongoDocStatusStorage(DocStatusStorage):
collation_config = {"locale": "zh", "numericOrdering": True} collation_config = {"locale": "zh", "numericOrdering": True}
# Use workspace-specific index names to avoid cross-workspace conflicts # Use workspace-specific index names to avoid cross-workspace conflicts
workspace_prefix = f"{self.workspace}_" if self.workspace != "_" else "" workspace_prefix = f"{self.workspace}_" if self.workspace != "" else ""
# 1. Define all indexes needed with workspace-specific names # 1. Define all indexes needed with workspace-specific names
all_indexes = [ all_indexes = [
@ -771,7 +771,7 @@ class MongoGraphStorage(BaseGraphStorage):
else: else:
# When workspace is empty, final_namespace equals original namespace # When workspace is empty, final_namespace equals original namespace
self.final_namespace = self.namespace self.final_namespace = self.namespace
self.workspace = "_" self.workspace = ""
logger.debug(f"Final namespace (no workspace): '{self.final_namespace}'") logger.debug(f"Final namespace (no workspace): '{self.final_namespace}'")
self._collection_name = self.final_namespace self._collection_name = self.final_namespace
@ -2083,7 +2083,7 @@ class MongoVectorDBStorage(BaseVectorStorage):
else: else:
# When workspace is empty, final_namespace equals original namespace # When workspace is empty, final_namespace equals original namespace
self.final_namespace = self.namespace self.final_namespace = self.namespace
self.workspace = "_" self.workspace = ""
logger.debug(f"Final namespace (no workspace): '{self.final_namespace}'") logger.debug(f"Final namespace (no workspace): '{self.final_namespace}'")
# Set index name based on workspace for backward compatibility # Set index name based on workspace for backward compatibility

View file

@ -47,7 +47,7 @@ class NanoVectorDBStorage(BaseVectorStorage):
else: else:
# Default behavior when workspace is empty # Default behavior when workspace is empty
self.final_namespace = self.namespace self.final_namespace = self.namespace
self.workspace = "_" self.workspace = ""
workspace_dir = working_dir workspace_dir = working_dir
os.makedirs(workspace_dir, exist_ok=True) os.makedirs(workspace_dir, exist_ok=True)

View file

@ -46,7 +46,7 @@ class NetworkXStorage(BaseGraphStorage):
# Default behavior when workspace is empty # Default behavior when workspace is empty
self.final_namespace = self.namespace self.final_namespace = self.namespace
workspace_dir = working_dir workspace_dir = working_dir
self.workspace = "_" self.workspace = ""
os.makedirs(workspace_dir, exist_ok=True) os.makedirs(workspace_dir, exist_ok=True)
self._graphml_xml_file = os.path.join( self._graphml_xml_file = os.path.join(

View file

@ -153,7 +153,7 @@ class RedisKVStorage(BaseKVStorage):
else: else:
# When workspace is empty, final_namespace equals original namespace # When workspace is empty, final_namespace equals original namespace
self.final_namespace = self.namespace self.final_namespace = self.namespace
self.workspace = "_" self.workspace = ""
logger.debug(f"Final namespace (no workspace): '{self.final_namespace}'") logger.debug(f"Final namespace (no workspace): '{self.final_namespace}'")
self._redis_url = os.environ.get( self._redis_url = os.environ.get(