mirror of
https://github.com/BerriAI/litellm.git
synced 2025-04-26 19:24:27 +00:00
feat(litellm_logging.py): log exception response headers to langfuse
This commit is contained in:
parent
17d007d6da
commit
f506eb341b
6 changed files with 19 additions and 15 deletions
|
@ -5,6 +5,7 @@ import os
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
from packaging.version import Version
|
from packaging.version import Version
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
import litellm
|
import litellm
|
||||||
from litellm._logging import verbose_logger
|
from litellm._logging import verbose_logger
|
||||||
|
@ -43,8 +44,8 @@ class LangFuseLogger:
|
||||||
self.langfuse_debug = os.getenv("LANGFUSE_DEBUG")
|
self.langfuse_debug = os.getenv("LANGFUSE_DEBUG")
|
||||||
|
|
||||||
parameters = {
|
parameters = {
|
||||||
"public_key": self.public_key,
|
"public_key": "pk-lf-b3db7e8e-c2f6-4fc7-825c-a541a8fbe003",
|
||||||
"secret_key": self.secret_key,
|
"secret_key": "sk-lf-b11ef3a8-361c-4445-9652-12318b8596e4",
|
||||||
"host": self.langfuse_host,
|
"host": self.langfuse_host,
|
||||||
"release": self.langfuse_release,
|
"release": self.langfuse_release,
|
||||||
"debug": self.langfuse_debug,
|
"debug": self.langfuse_debug,
|
||||||
|
@ -331,7 +332,7 @@ class LangFuseLogger:
|
||||||
metadata = copy.deepcopy(
|
metadata = copy.deepcopy(
|
||||||
metadata
|
metadata
|
||||||
) # Avoid modifying the original metadata
|
) # Avoid modifying the original metadata
|
||||||
except:
|
except Exception:
|
||||||
new_metadata = {}
|
new_metadata = {}
|
||||||
for key, value in metadata.items():
|
for key, value in metadata.items():
|
||||||
if (
|
if (
|
||||||
|
@ -342,6 +343,8 @@ class LangFuseLogger:
|
||||||
or isinstance(value, float)
|
or isinstance(value, float)
|
||||||
):
|
):
|
||||||
new_metadata[key] = copy.deepcopy(value)
|
new_metadata[key] = copy.deepcopy(value)
|
||||||
|
elif isinstance(value, BaseModel):
|
||||||
|
new_metadata[key] = value.model_dump()
|
||||||
metadata = new_metadata
|
metadata = new_metadata
|
||||||
|
|
||||||
supports_tags = Version(langfuse.version.__version__) >= Version("2.6.3")
|
supports_tags = Version(langfuse.version.__version__) >= Version("2.6.3")
|
||||||
|
|
|
@ -1543,6 +1543,13 @@ class Logging:
|
||||||
self.model_call_details["end_time"] = end_time
|
self.model_call_details["end_time"] = end_time
|
||||||
self.model_call_details.setdefault("original_response", None)
|
self.model_call_details.setdefault("original_response", None)
|
||||||
self.model_call_details["response_cost"] = 0
|
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
|
return start_time, end_time
|
||||||
|
|
||||||
def failure_handler(
|
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,11 +1,8 @@
|
||||||
model_list:
|
model_list:
|
||||||
- model_name: "*"
|
- model_name: "predibase-llama"
|
||||||
litellm_params:
|
litellm_params:
|
||||||
model: "*"
|
model: "predibase/llama-3-8b-instruct"
|
||||||
- model_name: "azure-gpt-4o-mini"
|
request_timeout: 1
|
||||||
litellm_params:
|
|
||||||
model: azure/my-gpt-4o-mini
|
litellm_settings:
|
||||||
api_key: os.environ/AZURE_API_KEY
|
failure_callback: ["langfuse"]
|
||||||
api_base: os.environ/AZURE_API_BASE
|
|
||||||
model_info:
|
|
||||||
base_model: azure/global-standard/gpt-4o-mini
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue