feat(litellm_logging.py): log exception response headers to langfuse

This commit is contained in:
Krrish Dholakia 2024-08-01 18:01:03 -07:00
parent 17d007d6da
commit f506eb341b
6 changed files with 19 additions and 15 deletions

View file

@ -5,6 +5,7 @@ import os
import traceback
from packaging.version import Version
from pydantic import BaseModel
import litellm
from litellm._logging import verbose_logger
@ -43,8 +44,8 @@ class LangFuseLogger:
self.langfuse_debug = os.getenv("LANGFUSE_DEBUG")
parameters = {
"public_key": self.public_key,
"secret_key": self.secret_key,
"public_key": "pk-lf-b3db7e8e-c2f6-4fc7-825c-a541a8fbe003",
"secret_key": "sk-lf-b11ef3a8-361c-4445-9652-12318b8596e4",
"host": self.langfuse_host,
"release": self.langfuse_release,
"debug": self.langfuse_debug,
@ -331,7 +332,7 @@ class LangFuseLogger:
metadata = copy.deepcopy(
metadata
) # Avoid modifying the original metadata
except:
except Exception:
new_metadata = {}
for key, value in metadata.items():
if (
@ -342,6 +343,8 @@ class LangFuseLogger:
or isinstance(value, float)
):
new_metadata[key] = copy.deepcopy(value)
elif isinstance(value, BaseModel):
new_metadata[key] = value.model_dump()
metadata = new_metadata
supports_tags = Version(langfuse.version.__version__) >= Version("2.6.3")

View file

@ -1543,6 +1543,13 @@ class Logging:
self.model_call_details["end_time"] = end_time
self.model_call_details.setdefault("original_response", None)
self.model_call_details["response_cost"] = 0
if hasattr(exception, "headers") and isinstance(exception.headers, dict):
self.model_call_details.setdefault("litellm_params", {})
metadata = (
self.model_call_details["litellm_params"].get("metadata", {}) or {}
)
metadata.update(exception.headers)
return start_time, end_time
def failure_handler(

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,11 +1,8 @@
model_list:
- model_name: "*"
- model_name: "predibase-llama"
litellm_params:
model: "*"
- model_name: "azure-gpt-4o-mini"
litellm_params:
model: azure/my-gpt-4o-mini
api_key: os.environ/AZURE_API_KEY
api_base: os.environ/AZURE_API_BASE
model_info:
base_model: azure/global-standard/gpt-4o-mini
model: "predibase/llama-3-8b-instruct"
request_timeout: 1
litellm_settings:
failure_callback: ["langfuse"]