(fix) high traffic langfuse logging

This commit is contained in:
ishaan-jaff 2024-03-06 12:17:59 -08:00
parent ee468a4e05
commit 74e50d9d35

View file

@ -265,8 +265,14 @@ class LangFuseLogger:
cost = kwargs.get("response_cost", None) cost = kwargs.get("response_cost", None)
print_verbose(f"trace: {cost}") print_verbose(f"trace: {cost}")
if supports_tags:
# Clean Metadata before logging - never log raw metadata
# the raw metadata can contain circular references which leads to infinite recursion
# we clean out all extra litellm metadata params before logging
clean_metadata = {}
if isinstance(metadata, dict):
for key, value in metadata.items(): for key, value in metadata.items():
# generate langfuse tags
if key in [ if key in [
"user_api_key", "user_api_key",
"user_api_key_user_id", "user_api_key_user_id",
@ -274,6 +280,22 @@ class LangFuseLogger:
"semantic-similarity", "semantic-similarity",
]: ]:
tags.append(f"{key}:{value}") tags.append(f"{key}:{value}")
# clean litellm metadata before logging
if key in [
"headers",
"endpoint",
"model_group",
"deployment",
"model_info",
"caching_groups",
"previous_models",
]:
continue
else:
clean_metadata[key] = value
if supports_tags:
if "cache_hit" in kwargs: if "cache_hit" in kwargs:
if kwargs["cache_hit"] is None: if kwargs["cache_hit"] is None:
kwargs["cache_hit"] = False kwargs["cache_hit"] = False
@ -301,7 +323,7 @@ class LangFuseLogger:
"input": input, "input": input,
"output": output, "output": output,
"usage": usage, "usage": usage,
"metadata": metadata, "metadata": clean_metadata,
"level": level, "level": level,
} }