mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-09 03:18:44 +00:00
fix: address req changes
This commit is contained in:
parent
2757c47c84
commit
4dec34b752
3 changed files with 6 additions and 27 deletions
|
|
@ -609,15 +609,6 @@ class Logging(LiteLLMLoggingBaseClass):
|
|||
kwargs["litellm_metadata"], dict
|
||||
):
|
||||
base_litellm_params["litellm_metadata"] = kwargs["litellm_metadata"]
|
||||
if "metadata" not in base_litellm_params:
|
||||
base_litellm_params["metadata"] = kwargs["litellm_metadata"].copy()
|
||||
else:
|
||||
# Merge litellm_metadata into metadata without overwriting existing
|
||||
# keys so API key fields are visible to callbacks even when
|
||||
# Anthropic's native metadata is present (/v1/messages).
|
||||
for key, value in kwargs["litellm_metadata"].items():
|
||||
if key not in base_litellm_params["metadata"]:
|
||||
base_litellm_params["metadata"][key] = value
|
||||
|
||||
if litellm_params:
|
||||
base_litellm_params.update(litellm_params)
|
||||
|
|
@ -629,7 +620,7 @@ class Logging(LiteLLMLoggingBaseClass):
|
|||
if "litellm_metadata" in kwargs and isinstance(
|
||||
kwargs["litellm_metadata"], dict
|
||||
):
|
||||
if not base_litellm_params.get("metadata"):
|
||||
if "metadata" not in base_litellm_params:
|
||||
base_litellm_params["metadata"] = dict(kwargs["litellm_metadata"])
|
||||
else:
|
||||
base_litellm_params["metadata"] = dict(base_litellm_params["metadata"])
|
||||
|
|
|
|||
|
|
@ -1155,12 +1155,15 @@ def function_setup( # noqa: PLR0915
|
|||
# populate litellm_params["metadata"] so callbacks (e.g. Langfuse) that
|
||||
# read API key info from litellm_params["metadata"] see the fields.
|
||||
if not litellm_params.get("metadata"):
|
||||
litellm_params["metadata"] = kwargs["litellm_metadata"].copy()
|
||||
litellm_params["metadata"] = dict(kwargs["litellm_metadata"])
|
||||
else:
|
||||
# Merge litellm_metadata into metadata without overwriting existing
|
||||
# keys. This ensures API key fields (user_api_key_hash, etc.) are
|
||||
# visible to callbacks even when Anthropic's native metadata field
|
||||
# is present in /v1/messages requests from Claude Code.
|
||||
litellm_params["metadata"] = dict(
|
||||
litellm_params["metadata"]
|
||||
) # don't mutate caller's dict
|
||||
for key, value in kwargs["litellm_metadata"].items():
|
||||
if key not in litellm_params["metadata"]:
|
||||
litellm_params["metadata"][key] = value
|
||||
|
|
|
|||
|
|
@ -466,21 +466,6 @@ class TestUpdateFromKwargs:
|
|||
result_meta = logging_obj.litellm_params["metadata"]
|
||||
assert result_meta["from_caller"] is True
|
||||
assert result_meta["user_api_key_hash"] == "hashed-xyz"
|
||||
# caller's dict must not be mutated by the merge
|
||||
assert "user_api_key_hash" not in caller_metadata
|
||||
|
||||
def test_merge_handles_metadata_none(self, logging_obj):
|
||||
"""When metadata=None is explicitly in kwargs alongside litellm_metadata,
|
||||
the merge should not crash (dict(None) would TypeError)."""
|
||||
kwargs = {
|
||||
"metadata": None,
|
||||
"litellm_metadata": {"user_api_key_hash": "hashed-abc"},
|
||||
}
|
||||
|
||||
logging_obj.update_from_kwargs(kwargs=kwargs)
|
||||
|
||||
result_meta = logging_obj.litellm_params["metadata"]
|
||||
assert result_meta["user_api_key_hash"] == "hashed-abc"
|
||||
|
||||
def test_caller_litellm_params_win_over_kwargs(self, logging_obj):
|
||||
"""Explicit litellm_params from the caller should override auto-extracted values."""
|
||||
|
|
@ -491,7 +476,7 @@ class TestUpdateFromKwargs:
|
|||
litellm_params={"metadata": {"from_caller": True}, "litellm_call_id": "x"},
|
||||
)
|
||||
|
||||
assert logging_obj.litellm_params["metadata"] == {"from_caller": True}
|
||||
assert logging_obj.litellm_params["metadata"]["from_caller"] is True
|
||||
|
||||
def test_custom_pricing_detected_via_litellm_metadata(self, logging_obj):
|
||||
"""Custom pricing in litellm_metadata.model_info should set custom_pricing flag."""
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue