mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-05 02:41:56 +00:00
Merge 2bddd40353 into c2c2a623c0
This commit is contained in:
commit
2552a5472d
2 changed files with 39 additions and 1 deletions
|
|
@ -7973,7 +7973,12 @@ def cleanup_none_field_in_message(message: AllMessageValues):
|
|||
remove None fields in the message - e.g. {"function": None} - some providers raise validation errors
|
||||
"""
|
||||
new_message: Final = message.copy()
|
||||
return {k: v for k, v in new_message.items() if v is not None}
|
||||
return {
|
||||
k: v
|
||||
for k, v in new_message.items()
|
||||
if v is not None
|
||||
or (k == "content" and new_message.get("role") == "assistant" and new_message.get("tool_calls"))
|
||||
}
|
||||
|
||||
|
||||
def validate_chat_completion_user_messages(messages: list[AllMessageValues]):
|
||||
|
|
|
|||
33
tests/test_litellm/test_message_normalization.py
Normal file
33
tests/test_litellm/test_message_normalization.py
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
from litellm.utils import cleanup_none_field_in_message
|
||||
|
||||
|
||||
def test_cleanup_preserves_null_content_for_assistant_tool_calls():
|
||||
message = {
|
||||
"role": "assistant",
|
||||
"content": None,
|
||||
"tool_calls": [
|
||||
{
|
||||
"id": "call_1",
|
||||
"type": "function",
|
||||
"function": {"name": "get_weather", "arguments": "{}"},
|
||||
}
|
||||
],
|
||||
}
|
||||
|
||||
result = cleanup_none_field_in_message(message)
|
||||
|
||||
assert result == message
|
||||
assert "content" in result
|
||||
|
||||
|
||||
def test_cleanup_still_removes_unneeded_null_fields():
|
||||
message = {
|
||||
"role": "assistant",
|
||||
"content": None,
|
||||
"tool_calls": None,
|
||||
"function_call": None,
|
||||
}
|
||||
|
||||
result = cleanup_none_field_in_message(message)
|
||||
|
||||
assert result == {"role": "assistant"}
|
||||
Loading…
Add table
Reference in a new issue