mirror of
https://github.com/BerriAI/litellm.git
synced 2025-04-26 19:24:27 +00:00
feat allow controlling logged tags on langfuse
This commit is contained in:
parent
526b196f83
commit
42bd5de7c0
2 changed files with 33 additions and 19 deletions
|
@ -53,18 +53,7 @@ _known_custom_logger_compatible_callbacks: List = list(
|
||||||
get_args(_custom_logger_compatible_callbacks_literal)
|
get_args(_custom_logger_compatible_callbacks_literal)
|
||||||
)
|
)
|
||||||
callbacks: List[Union[Callable, _custom_logger_compatible_callbacks_literal]] = []
|
callbacks: List[Union[Callable, _custom_logger_compatible_callbacks_literal]] = []
|
||||||
_langfuse_default_tags: Optional[
|
langfuse_default_tags: Optional[List[str]] = None
|
||||||
List[
|
|
||||||
Literal[
|
|
||||||
"user_api_key_alias",
|
|
||||||
"user_api_key_user_id",
|
|
||||||
"user_api_key_user_email",
|
|
||||||
"user_api_key_team_alias",
|
|
||||||
"semantic-similarity",
|
|
||||||
"proxy_base_url",
|
|
||||||
]
|
|
||||||
]
|
|
||||||
] = None
|
|
||||||
_async_input_callback: List[Callable] = (
|
_async_input_callback: List[Callable] = (
|
||||||
[]
|
[]
|
||||||
) # internal variable - async custom callbacks are routed here.
|
) # internal variable - async custom callbacks are routed here.
|
||||||
|
|
|
@ -366,12 +366,11 @@ class LangFuseLogger:
|
||||||
clean_metadata = {}
|
clean_metadata = {}
|
||||||
if isinstance(metadata, dict):
|
if isinstance(metadata, dict):
|
||||||
for key, value in metadata.items():
|
for key, value in metadata.items():
|
||||||
|
|
||||||
# generate langfuse tags - Default Tags sent to Langfuse from LiteLLM Proxy
|
# generate langfuse tags - Default Tags sent to Langfuse from LiteLLM Proxy
|
||||||
if (
|
if (
|
||||||
litellm._langfuse_default_tags is not None
|
litellm.langfuse_default_tags is not None
|
||||||
and isinstance(litellm._langfuse_default_tags, list)
|
and isinstance(litellm.langfuse_default_tags, list)
|
||||||
and key in litellm._langfuse_default_tags
|
and key in litellm.langfuse_default_tags
|
||||||
):
|
):
|
||||||
tags.append(f"{key}:{value}")
|
tags.append(f"{key}:{value}")
|
||||||
|
|
||||||
|
@ -386,6 +385,11 @@ class LangFuseLogger:
|
||||||
else:
|
else:
|
||||||
clean_metadata[key] = value
|
clean_metadata[key] = value
|
||||||
|
|
||||||
|
# Add default langfuse tags
|
||||||
|
tags = self.add_default_langfuse_tags(
|
||||||
|
tags=tags, kwargs=kwargs, metadata=metadata
|
||||||
|
)
|
||||||
|
|
||||||
session_id = clean_metadata.pop("session_id", None)
|
session_id = clean_metadata.pop("session_id", None)
|
||||||
trace_name = clean_metadata.pop("trace_name", None)
|
trace_name = clean_metadata.pop("trace_name", None)
|
||||||
trace_id = clean_metadata.pop("trace_id", litellm_call_id)
|
trace_id = clean_metadata.pop("trace_id", litellm_call_id)
|
||||||
|
@ -468,9 +472,9 @@ class LangFuseLogger:
|
||||||
clean_metadata["litellm_response_cost"] = cost
|
clean_metadata["litellm_response_cost"] = cost
|
||||||
|
|
||||||
if (
|
if (
|
||||||
litellm._langfuse_default_tags is not None
|
litellm.langfuse_default_tags is not None
|
||||||
and isinstance(litellm._langfuse_default_tags, list)
|
and isinstance(litellm.langfuse_default_tags, list)
|
||||||
and "proxy_base_url" in litellm._langfuse_default_tags
|
and "proxy_base_url" in litellm.langfuse_default_tags
|
||||||
):
|
):
|
||||||
proxy_base_url = os.environ.get("PROXY_BASE_URL", None)
|
proxy_base_url = os.environ.get("PROXY_BASE_URL", None)
|
||||||
if proxy_base_url is not None:
|
if proxy_base_url is not None:
|
||||||
|
@ -583,6 +587,27 @@ class LangFuseLogger:
|
||||||
verbose_logger.error(f"Langfuse Layer Error - {traceback.format_exc()}")
|
verbose_logger.error(f"Langfuse Layer Error - {traceback.format_exc()}")
|
||||||
return None, None
|
return None, None
|
||||||
|
|
||||||
|
def add_default_langfuse_tags(self, tags, kwargs, metadata):
|
||||||
|
"""
|
||||||
|
Helper function to add litellm default langfuse tags
|
||||||
|
|
||||||
|
- Special LiteLLM tags:
|
||||||
|
- cache_hit
|
||||||
|
- cache_key
|
||||||
|
|
||||||
|
"""
|
||||||
|
if litellm.langfuse_default_tags is not None and isinstance(
|
||||||
|
litellm.langfuse_default_tags, list
|
||||||
|
):
|
||||||
|
if "cache_hit" in litellm.langfuse_default_tags:
|
||||||
|
_cache_hit_value = kwargs.get("cache_hit", False)
|
||||||
|
tags.append(f"cache_hit:{_cache_hit_value}")
|
||||||
|
if "cache_key" in litellm.langfuse_default_tags:
|
||||||
|
_hidden_params = metadata.get("hidden_params", {}) or {}
|
||||||
|
_cache_key = _hidden_params.get("cache_key", None)
|
||||||
|
tags.append(f"cache_key:{_cache_key}")
|
||||||
|
return tags
|
||||||
|
|
||||||
|
|
||||||
def _add_prompt_to_generation_params(
|
def _add_prompt_to_generation_params(
|
||||||
generation_params: dict, clean_metadata: dict
|
generation_params: dict, clean_metadata: dict
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue