From d54d0d55d9d1aa85b8d7e21ca78b0a65215c2e53 Mon Sep 17 00:00:00 2001 From: yangdx Date: Mon, 17 Nov 2025 05:58:11 +0800 Subject: [PATCH] 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() --- lightrag/kg/faiss_impl.py | 2 +- lightrag/kg/json_doc_status_impl.py | 4 ++-- lightrag/kg/json_kv_impl.py | 2 +- lightrag/kg/milvus_impl.py | 2 +- lightrag/kg/mongo_impl.py | 10 +++++----- lightrag/kg/nano_vector_db_impl.py | 2 +- lightrag/kg/networkx_impl.py | 2 +- lightrag/kg/redis_impl.py | 2 +- 8 files changed, 13 insertions(+), 13 deletions(-) diff --git a/lightrag/kg/faiss_impl.py b/lightrag/kg/faiss_impl.py index 06d0ac13..6de640b7 100644 --- a/lightrag/kg/faiss_impl.py +++ b/lightrag/kg/faiss_impl.py @@ -47,8 +47,8 @@ class FaissVectorDBStorage(BaseVectorStorage): else: # Default behavior when workspace is empty self.final_namespace = self.namespace - self.workspace = "_" workspace_dir = working_dir + self.workspace = "" os.makedirs(workspace_dir, exist_ok=True) self._faiss_index_file = os.path.join( diff --git a/lightrag/kg/json_doc_status_impl.py b/lightrag/kg/json_doc_status_impl.py index b166ecc6..a4ac792b 100644 --- a/lightrag/kg/json_doc_status_impl.py +++ b/lightrag/kg/json_doc_status_impl.py @@ -38,9 +38,9 @@ class JsonDocStatusStorage(DocStatusStorage): self.final_namespace = f"{self.workspace}_{self.namespace}" else: # Default behavior when workspace is empty - self.final_namespace = self.namespace - self.workspace = "_" workspace_dir = working_dir + self.final_namespace = self.namespace + self.workspace = "" os.makedirs(workspace_dir, exist_ok=True) self._file_name = os.path.join(workspace_dir, f"kv_store_{self.namespace}.json") diff --git a/lightrag/kg/json_kv_impl.py b/lightrag/kg/json_kv_impl.py index aceb175d..b1151e73 100644 --- a/lightrag/kg/json_kv_impl.py +++ b/lightrag/kg/json_kv_impl.py @@ -35,7 +35,7 @@ class JsonKVStorage(BaseKVStorage): # Default behavior when workspace is empty workspace_dir = working_dir self.final_namespace = self.namespace - self.workspace = "_" + self.workspace = "" os.makedirs(workspace_dir, exist_ok=True) self._file_name = os.path.join(workspace_dir, f"kv_store_{self.namespace}.json") diff --git a/lightrag/kg/milvus_impl.py b/lightrag/kg/milvus_impl.py index 6d21f619..d42c91a7 100644 --- a/lightrag/kg/milvus_impl.py +++ b/lightrag/kg/milvus_impl.py @@ -961,8 +961,8 @@ class MilvusVectorDBStorage(BaseVectorStorage): else: # When workspace is empty, final_namespace equals original namespace self.final_namespace = self.namespace + self.workspace = "" logger.debug(f"Final namespace (no workspace): '{self.final_namespace}'") - self.workspace = "_" kwargs = self.global_config.get("vector_db_storage_cls_kwargs", {}) cosine_threshold = kwargs.get("cosine_better_than_threshold") diff --git a/lightrag/kg/mongo_impl.py b/lightrag/kg/mongo_impl.py index f7e2eb64..e11e6411 100644 --- a/lightrag/kg/mongo_impl.py +++ b/lightrag/kg/mongo_impl.py @@ -120,7 +120,7 @@ class MongoKVStorage(BaseKVStorage): else: # When workspace is empty, final_namespace equals original namespace self.final_namespace = self.namespace - self.workspace = "_" + self.workspace = "" logger.debug( f"[{self.workspace}] Final namespace (no workspace): '{self.namespace}'" ) @@ -348,7 +348,7 @@ class MongoDocStatusStorage(DocStatusStorage): else: # When workspace is empty, final_namespace equals original namespace self.final_namespace = self.namespace - self.workspace = "_" + self.workspace = "" logger.debug(f"Final namespace (no workspace): '{self.final_namespace}'") self._collection_name = self.final_namespace @@ -513,7 +513,7 @@ class MongoDocStatusStorage(DocStatusStorage): collation_config = {"locale": "zh", "numericOrdering": True} # 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 all_indexes = [ @@ -771,7 +771,7 @@ class MongoGraphStorage(BaseGraphStorage): else: # When workspace is empty, final_namespace equals original namespace self.final_namespace = self.namespace - self.workspace = "_" + self.workspace = "" logger.debug(f"Final namespace (no workspace): '{self.final_namespace}'") self._collection_name = self.final_namespace @@ -2083,7 +2083,7 @@ class MongoVectorDBStorage(BaseVectorStorage): else: # When workspace is empty, final_namespace equals original namespace self.final_namespace = self.namespace - self.workspace = "_" + self.workspace = "" logger.debug(f"Final namespace (no workspace): '{self.final_namespace}'") # Set index name based on workspace for backward compatibility diff --git a/lightrag/kg/nano_vector_db_impl.py b/lightrag/kg/nano_vector_db_impl.py index 007b953c..d390c37b 100644 --- a/lightrag/kg/nano_vector_db_impl.py +++ b/lightrag/kg/nano_vector_db_impl.py @@ -47,7 +47,7 @@ class NanoVectorDBStorage(BaseVectorStorage): else: # Default behavior when workspace is empty self.final_namespace = self.namespace - self.workspace = "_" + self.workspace = "" workspace_dir = working_dir os.makedirs(workspace_dir, exist_ok=True) diff --git a/lightrag/kg/networkx_impl.py b/lightrag/kg/networkx_impl.py index 85ab39f4..512d4456 100644 --- a/lightrag/kg/networkx_impl.py +++ b/lightrag/kg/networkx_impl.py @@ -46,7 +46,7 @@ class NetworkXStorage(BaseGraphStorage): # Default behavior when workspace is empty self.final_namespace = self.namespace workspace_dir = working_dir - self.workspace = "_" + self.workspace = "" os.makedirs(workspace_dir, exist_ok=True) self._graphml_xml_file = os.path.join( diff --git a/lightrag/kg/redis_impl.py b/lightrag/kg/redis_impl.py index 1a319d90..a254d4ee 100644 --- a/lightrag/kg/redis_impl.py +++ b/lightrag/kg/redis_impl.py @@ -153,7 +153,7 @@ class RedisKVStorage(BaseKVStorage): else: # When workspace is empty, final_namespace equals original namespace self.final_namespace = self.namespace - self.workspace = "_" + self.workspace = "" logger.debug(f"Final namespace (no workspace): '{self.final_namespace}'") self._redis_url = os.environ.get(