diff --git a/litellm/litellm_core_utils/core_helpers.py b/litellm/litellm_core_utils/core_helpers.py index d6d6495d009..8148147ef95 100644 --- a/litellm/litellm_core_utils/core_helpers.py +++ b/litellm/litellm_core_utils/core_helpers.py @@ -1,5 +1,6 @@ # What is this? ## Helper utilities +from typing import List, Literal, Optional, Tuple def map_finish_reason( @@ -54,3 +55,31 @@ def remove_index_from_tool_calls(messages, tool_calls): tool_call.pop("index") return + + +def get_litellm_metadata_from_kwargs(kwargs: dict): + """ + Helper to get litellm metadata from all litellm request kwargs + """ + return kwargs.get("litellm_params", {}).get("metadata", {}) + + +# Helper functions used for OTEL logging +def _get_parent_otel_span_from_kwargs(kwargs: Optional[dict] = None): + try: + if kwargs is None: + return None + litellm_params = kwargs.get("litellm_params") + _metadata = kwargs.get("metadata") or {} + if "litellm_parent_otel_span" in _metadata: + return _metadata["litellm_parent_otel_span"] + elif ( + litellm_params is not None + and litellm_params.get("metadata") is not None + and "litellm_parent_otel_span" in litellm_params.get("metadata", {}) + ): + return litellm_params["metadata"]["litellm_parent_otel_span"] + elif "litellm_parent_otel_span" in kwargs: + return kwargs["litellm_parent_otel_span"] + except: + return None