diff --git a/litellm/integrations/langfuse/langfuse_handler.py b/litellm/integrations/langfuse/langfuse_handler.py index 8a407f71b3b..4c262d0fdef 100644 --- a/litellm/integrations/langfuse/langfuse_handler.py +++ b/litellm/integrations/langfuse/langfuse_handler.py @@ -23,7 +23,7 @@ else: class LangFuseHandler: @staticmethod def get_langfuse_logger_for_request( - standard_callback_dynamic_params: StandardCallbackDynamicParams, + standard_callback_dynamic_params: StandardCallbackDynamicParams | None, in_memory_dynamic_logger_cache: DynamicLoggingCache, globalLangfuseLogger: LangFuseLogger | None = None, ) -> LangFuseLogger: @@ -163,7 +163,7 @@ class LangFuseHandler: @staticmethod def _dynamic_langfuse_credentials_are_passed( - standard_callback_dynamic_params: StandardCallbackDynamicParams, + standard_callback_dynamic_params: StandardCallbackDynamicParams | None, ) -> bool: """ This function is used to check if the dynamic langfuse credentials are passed in standard_callback_dynamic_params @@ -172,6 +172,9 @@ class LangFuseHandler: bool: True if the dynamic langfuse credentials are passed, False otherwise """ + if standard_callback_dynamic_params is None: + return False + if ( standard_callback_dynamic_params.get("langfuse_host") is not None or standard_callback_dynamic_params.get("langfuse_public_key") is not None diff --git a/tests/test_litellm/test_langfuse_handler.py b/tests/test_litellm/test_langfuse_handler.py new file mode 100644 index 00000000000..3eaa98f8e05 --- /dev/null +++ b/tests/test_litellm/test_langfuse_handler.py @@ -0,0 +1,26 @@ +from unittest.mock import MagicMock + +from litellm.integrations.langfuse.langfuse_handler import LangFuseHandler + + +def test_missing_dynamic_params_returns_global_logger() -> None: + global_logger = MagicMock() + dynamic_logger_cache = MagicMock() + + logger = LangFuseHandler.get_langfuse_logger_for_request( + standard_callback_dynamic_params=None, + in_memory_dynamic_logger_cache=dynamic_logger_cache, + globalLangfuseLogger=global_logger, + ) + + assert logger is global_logger + dynamic_logger_cache.get_cache.assert_not_called() + + +def test_missing_dynamic_params_are_not_dynamic_credentials() -> None: + assert ( + LangFuseHandler._dynamic_langfuse_credentials_are_passed( + standard_callback_dynamic_params=None + ) + is False + )