fix: skip telemetry vector store init when MEM0_TELEMETRY is disabled
The mem0migrations vector store was always initialized regardless of the MEM0_TELEMETRY setting, creating unnecessary connections and collections on remote vector stores for users who opted out. Closes #4200 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
06ee1b588c
commit
1584e24d6e
+4
-3
@@ -24,7 +24,7 @@ from mem0.exceptions import ValidationError as Mem0ValidationError
|
|||||||
from mem0.memory.base import MemoryBase
|
from mem0.memory.base import MemoryBase
|
||||||
from mem0.memory.setup import mem0_dir, setup_config
|
from mem0.memory.setup import mem0_dir, setup_config
|
||||||
from mem0.memory.storage import SQLiteManager
|
from mem0.memory.storage import SQLiteManager
|
||||||
from mem0.memory.telemetry import capture_event
|
from mem0.memory.telemetry import MEM0_TELEMETRY, capture_event
|
||||||
from mem0.memory.utils import (
|
from mem0.memory.utils import (
|
||||||
extract_json,
|
extract_json,
|
||||||
get_fact_retrieval_messages,
|
get_fact_retrieval_messages,
|
||||||
@@ -37,8 +37,8 @@ from mem0.utils.factory import (
|
|||||||
EmbedderFactory,
|
EmbedderFactory,
|
||||||
GraphStoreFactory,
|
GraphStoreFactory,
|
||||||
LlmFactory,
|
LlmFactory,
|
||||||
VectorStoreFactory,
|
|
||||||
RerankerFactory,
|
RerankerFactory,
|
||||||
|
VectorStoreFactory,
|
||||||
)
|
)
|
||||||
|
|
||||||
# Suppress SWIG deprecation warnings globally
|
# Suppress SWIG deprecation warnings globally
|
||||||
@@ -204,6 +204,7 @@ class Memory(MemoryBase):
|
|||||||
self.enable_graph = True
|
self.enable_graph = True
|
||||||
else:
|
else:
|
||||||
self.graph = None
|
self.graph = None
|
||||||
|
if MEM0_TELEMETRY:
|
||||||
# Create telemetry config manually to avoid deepcopy issues with thread locks
|
# Create telemetry config manually to avoid deepcopy issues with thread locks
|
||||||
telemetry_config_dict = {}
|
telemetry_config_dict = {}
|
||||||
if hasattr(self.config.vector_store.config, 'model_dump'):
|
if hasattr(self.config.vector_store.config, 'model_dump'):
|
||||||
@@ -1272,6 +1273,7 @@ class AsyncMemory(MemoryBase):
|
|||||||
else:
|
else:
|
||||||
self.graph = None
|
self.graph = None
|
||||||
|
|
||||||
|
if MEM0_TELEMETRY:
|
||||||
telemetry_config = _safe_deepcopy_config(self.config.vector_store.config)
|
telemetry_config = _safe_deepcopy_config(self.config.vector_store.config)
|
||||||
telemetry_config.collection_name = "mem0migrations"
|
telemetry_config.collection_name = "mem0migrations"
|
||||||
if self.config.vector_store.provider in ["faiss", "qdrant"]:
|
if self.config.vector_store.provider in ["faiss", "qdrant"]:
|
||||||
@@ -1279,7 +1281,6 @@ class AsyncMemory(MemoryBase):
|
|||||||
telemetry_config.path = os.path.join(mem0_dir, provider_path)
|
telemetry_config.path = os.path.join(mem0_dir, provider_path)
|
||||||
os.makedirs(telemetry_config.path, exist_ok=True)
|
os.makedirs(telemetry_config.path, exist_ok=True)
|
||||||
self._telemetry_vector_store = VectorStoreFactory.create(self.config.vector_store.provider, telemetry_config)
|
self._telemetry_vector_store = VectorStoreFactory.create(self.config.vector_store.provider, telemetry_config)
|
||||||
|
|
||||||
capture_event("mem0.init", self, {"sync_type": "async"})
|
capture_event("mem0.init", self, {"sync_type": "async"})
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|||||||
Reference in New Issue
Block a user