From 3426f2345229a290b77823496ceaad7e9bf6581b Mon Sep 17 00:00:00 2001 From: Hande <159312713+hande-k@users.noreply.github.com> Date: Thu, 18 Sep 2025 10:41:25 +0200 Subject: [PATCH 1/2] add none to default as observability --- cognee/base_config.py | 9 ++++++++- cognee/modules/observability/get_observe.py | 14 ++++++++++++++ cognee/modules/observability/observers.py | 1 + 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/cognee/base_config.py b/cognee/base_config.py index 940846128..8de42cbad 100644 --- a/cognee/base_config.py +++ b/cognee/base_config.py @@ -10,13 +10,20 @@ import pydantic class BaseConfig(BaseSettings): data_root_directory: str = get_absolute_path(".data_storage") system_root_directory: str = get_absolute_path(".cognee_system") - monitoring_tool: object = Observer.LANGFUSE + monitoring_tool: object = Observer.NONE @pydantic.model_validator(mode="after") def validate_paths(self): # Require absolute paths for root directories self.data_root_directory = ensure_absolute_path(self.data_root_directory) self.system_root_directory = ensure_absolute_path(self.system_root_directory) + + # Set monitoring tool based on available keys + if self.langfuse_public_key and self.langfuse_secret_key: + self.monitoring_tool = Observer.LANGFUSE + else: + self.monitoring_tool = Observer.NONE + return self langfuse_public_key: Optional[str] = os.getenv("LANGFUSE_PUBLIC_KEY") diff --git a/cognee/modules/observability/get_observe.py b/cognee/modules/observability/get_observe.py index db3655482..9ee44e46a 100644 --- a/cognee/modules/observability/get_observe.py +++ b/cognee/modules/observability/get_observe.py @@ -9,3 +9,17 @@ def get_observe(): from langfuse.decorators import observe return observe + elif monitoring == Observer.NONE: + # Return a no-op decorator that handles keyword arguments + def no_op_decorator(*args, **kwargs): + if len(args) == 1 and callable(args[0]) and not kwargs: + # Direct decoration: @observe + return args[0] + else: + # Parameterized decoration: @observe(as_type="generation") + def decorator(func): + return func + + return decorator + + return no_op_decorator diff --git a/cognee/modules/observability/observers.py b/cognee/modules/observability/observers.py index 7bd0380ec..9c4aff43b 100644 --- a/cognee/modules/observability/observers.py +++ b/cognee/modules/observability/observers.py @@ -4,6 +4,7 @@ from enum import Enum class Observer(str, Enum): """Monitoring tools""" + NONE = "none" LANGFUSE = "langfuse" LLMLITE = "llmlite" LANGSMITH = "langsmith" From 04ac0d52d287a349f105a35eeb3cd2e1402aadb1 Mon Sep 17 00:00:00 2001 From: Hande <159312713+hande-k@users.noreply.github.com> Date: Thu, 18 Sep 2025 14:17:53 +0200 Subject: [PATCH 2/2] remove defaulting none if not langfuse --- cognee/base_config.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/cognee/base_config.py b/cognee/base_config.py index 8de42cbad..cc2b912cf 100644 --- a/cognee/base_config.py +++ b/cognee/base_config.py @@ -21,8 +21,6 @@ class BaseConfig(BaseSettings): # Set monitoring tool based on available keys if self.langfuse_public_key and self.langfuse_secret_key: self.monitoring_tool = Observer.LANGFUSE - else: - self.monitoring_tool = Observer.NONE return self