From c7545be275420b8b4fd8124feece39697c27f74e Mon Sep 17 00:00:00 2001 From: Ishaan Jaff Date: Fri, 7 Jun 2024 08:49:47 -0700 Subject: [PATCH] feat - use safe safe_deep_copy --- litellm/proxy/utils.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/litellm/proxy/utils.py b/litellm/proxy/utils.py index e5efb93d05..c3d7313611 100644 --- a/litellm/proxy/utils.py +++ b/litellm/proxy/utils.py @@ -64,6 +64,14 @@ def print_verbose(print_statement): print(f"LiteLLM Proxy: {print_statement}") # noqa +def safe_deep_copy(data): + if isinstance(data, dict): + # remove litellm_parent_otel_span since this is not picklable + data.pop("litellm_parent_otel_span", None) + new_data = copy.deepcopy(data) + return new_data + + def log_to_opentelemetry(func): @wraps(func) async def wrapper(*args, **kwargs): @@ -312,7 +320,7 @@ class ProxyLogging: """ Runs the CustomLogger's async_moderation_hook() """ - new_data = copy.deepcopy(data) + new_data = safe_deep_copy(data) for callback in litellm.callbacks: try: if isinstance(callback, CustomLogger):