mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-06 02:48:13 +00:00
fix(logging): redact standard logging choice metadata
This commit is contained in:
parent
ea4e83e066
commit
c52be31663
2 changed files with 42 additions and 10 deletions
|
|
@ -122,16 +122,7 @@ def _redact_standard_logging_object(model_call_details: dict):
|
|||
elif isinstance(response, dict) and "choices" in response:
|
||||
# ModelResponse dict format - redact content in choices
|
||||
if isinstance(response.get("choices"), list):
|
||||
for choice in response["choices"]:
|
||||
if isinstance(choice, dict):
|
||||
if "message" in choice and isinstance(choice["message"], dict):
|
||||
choice["message"]["content"] = redacted_str
|
||||
if "audio" in choice["message"]:
|
||||
choice["message"]["audio"] = None
|
||||
elif "delta" in choice and isinstance(choice["delta"], dict):
|
||||
choice["delta"]["content"] = redacted_str
|
||||
if "audio" in choice["delta"]:
|
||||
choice["delta"]["audio"] = None
|
||||
_redact_model_response_dict_choices(response["choices"], redacted_str)
|
||||
elif isinstance(response, str):
|
||||
standard_logging_object["response"] = redacted_str
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -258,6 +258,47 @@ class TestPerformRedaction:
|
|||
assert delta["thinking_blocks"] is None
|
||||
assert delta["audio"] is None
|
||||
|
||||
def test_redacts_standard_logging_model_response_dict_choices(self):
|
||||
details = {
|
||||
"standard_logging_object": {
|
||||
"response": {
|
||||
"choices": [
|
||||
{
|
||||
"message": {
|
||||
"content": "message content",
|
||||
"reasoning_content": "message reasoning",
|
||||
"thinking_blocks": ["thinking"],
|
||||
"audio": {"data": "audio"},
|
||||
}
|
||||
},
|
||||
{
|
||||
"delta": {
|
||||
"content": "delta content",
|
||||
"reasoning_content": "delta reasoning",
|
||||
"thinking_blocks": ["delta thinking"],
|
||||
"audio": {"data": "audio"},
|
||||
}
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
perform_redaction(details, None)
|
||||
|
||||
choices = details["standard_logging_object"]["response"]["choices"]
|
||||
message = choices[0]["message"]
|
||||
assert message["content"] == "redacted-by-litellm"
|
||||
assert message["reasoning_content"] == "redacted-by-litellm"
|
||||
assert message["thinking_blocks"] is None
|
||||
assert message["audio"] is None
|
||||
|
||||
delta = choices[1]["delta"]
|
||||
assert delta["content"] == "redacted-by-litellm"
|
||||
assert delta["reasoning_content"] == "redacted-by-litellm"
|
||||
assert delta["thinking_blocks"] is None
|
||||
assert delta["audio"] is None
|
||||
|
||||
def test_redacts_object_choices_inside_model_response_dict(self):
|
||||
result = {
|
||||
"choices": [
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue