feat(litellm_logging.py): log exception response headers to langfuse
This commit is contained in:
parent
cc9da9644f
commit
ea65a8ce69
@ -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")
|
||||
|
||||
@ -1516,6 +1516,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
@ -1,4 +1,8 @@
|
||||
model_list:
|
||||
- model_name: "*"
|
||||
- model_name: "predibase-llama"
|
||||
litellm_params:
|
||||
model: "*"
|
||||
model: "predibase/llama-3-8b-instruct"
|
||||
request_timeout: 1
|
||||
|
||||
litellm_settings:
|
||||
failure_callback: ["langfuse"]
|
||||
Loading…
Reference in New Issue
Block a user