mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-09 03:18:44 +00:00
fix(factory.py): Handle system only message to anthropic (#10678)
Fixes error where passing system only message to anthropic causes requests to fail
This commit is contained in:
parent
96e31edad3
commit
5325ee4382
2 changed files with 30 additions and 1 deletions
|
|
@ -55,6 +55,11 @@ DEFAULT_USER_CONTINUE_MESSAGE = {
|
|||
"content": "Please continue.",
|
||||
} # similar to autogen. Only used if `litellm.modify_params=True`.
|
||||
|
||||
DEFAULT_USER_CONTINUE_MESSAGE_TYPED = ChatCompletionUserMessage(
|
||||
role="user",
|
||||
content="Please continue.",
|
||||
)
|
||||
|
||||
# used to interweave assistant messages, to ensure user/assistant alternating
|
||||
DEFAULT_ASSISTANT_CONTINUE_MESSAGE = ChatCompletionAssistantMessage(
|
||||
role="assistant",
|
||||
|
|
@ -1408,6 +1413,17 @@ def anthropic_messages_pt( # noqa: PLR0915
|
|||
AnthopicMessagesAssistantMessageParam,
|
||||
]
|
||||
] = []
|
||||
|
||||
if len(messages) == 0:
|
||||
if not litellm.modify_params:
|
||||
raise litellm.BadRequestError(
|
||||
message=f"Anthropic requires at least one non-system message. Either provide one, or set `litellm.modify_params = True` // `litellm_settings::modify_params: True` to add the dummy user message - {DEFAULT_USER_CONTINUE_MESSAGE_TYPED}.",
|
||||
model=model,
|
||||
llm_provider=llm_provider,
|
||||
)
|
||||
else:
|
||||
messages.append(DEFAULT_USER_CONTINUE_MESSAGE_TYPED)
|
||||
|
||||
msg_i = 0
|
||||
while msg_i < len(messages):
|
||||
user_content: List[AnthropicMessagesUserMessageValues] = []
|
||||
|
|
@ -1613,7 +1629,7 @@ def anthropic_messages_pt( # noqa: PLR0915
|
|||
llm_provider=llm_provider,
|
||||
)
|
||||
|
||||
if new_messages[-1]["role"] == "assistant":
|
||||
if len(new_messages) > 0 and new_messages[-1]["role"] == "assistant":
|
||||
if isinstance(new_messages[-1]["content"], str):
|
||||
new_messages[-1]["content"] = new_messages[-1]["content"].rstrip()
|
||||
elif isinstance(new_messages[-1]["content"], list):
|
||||
|
|
|
|||
|
|
@ -1157,3 +1157,16 @@ def test_anthropic_redacted_thinking_in_assistant_message(model):
|
|||
response = litellm.completion(**params)
|
||||
|
||||
assert response is not None
|
||||
|
||||
|
||||
def test_just_system_message():
|
||||
litellm._turn_on_debug()
|
||||
litellm.modify_params = True
|
||||
params = {
|
||||
"model": "anthropic/claude-3-7-sonnet-20250219",
|
||||
"messages": [{"role": "system", "content": "You are a helpful assistant."}],
|
||||
}
|
||||
|
||||
response = litellm.completion(**params)
|
||||
|
||||
assert response is not None
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue