Skip to content

Commit 3134fc8

Browse files
authored
fix: make bedrock converse messages respect modify_params as expected (#17427)
1 parent 664b384 commit 3134fc8

File tree

1 file changed

+21
-33
lines changed
  • litellm/litellm_core_utils/prompt_templates

1 file changed

+21
-33
lines changed

litellm/litellm_core_utils/prompt_templates/factory.py

Lines changed: 21 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -3446,8 +3446,25 @@ class BedrockConverseMessagesProcessor:
34463446
@staticmethod
34473447
def _initial_message_setup(
34483448
messages: List,
3449+
model: str,
3450+
llm_provider: str,
34493451
user_continue_message: Optional[ChatCompletionUserMessage] = None,
34503452
) -> List:
3453+
# gracefully handle base case of no messages at all
3454+
if len(messages) == 0:
3455+
if user_continue_message is not None:
3456+
messages.append(user_continue_message)
3457+
elif litellm.modify_params:
3458+
messages.append(DEFAULT_USER_CONTINUE_MESSAGE)
3459+
else:
3460+
raise litellm.BadRequestError(
3461+
message=BAD_MESSAGE_ERROR_STR
3462+
+ "bedrock requires at least one non-system message",
3463+
model=model,
3464+
llm_provider=llm_provider,
3465+
)
3466+
3467+
# if initial message is assistant message
34513468
if messages[0].get("role") is not None and messages[0]["role"] == "assistant":
34523469
if user_continue_message is not None:
34533470
messages.insert(0, user_continue_message)
@@ -3475,18 +3492,8 @@ async def _bedrock_converse_messages_pt_async( # noqa: PLR0915
34753492
contents: List[BedrockMessageBlock] = []
34763493
msg_i = 0
34773494

3478-
## BASE CASE ##
3479-
if len(messages) == 0:
3480-
raise litellm.BadRequestError(
3481-
message=BAD_MESSAGE_ERROR_STR
3482-
+ "bedrock requires at least one non-system message",
3483-
model=model,
3484-
llm_provider=llm_provider,
3485-
)
3486-
3487-
# if initial message is assistant message
34883495
messages = BedrockConverseMessagesProcessor._initial_message_setup(
3489-
messages, user_continue_message
3496+
messages, model, llm_provider, user_continue_message
34903497
)
34913498

34923499
while msg_i < len(messages):
@@ -3847,28 +3854,9 @@ def _bedrock_converse_messages_pt( # noqa: PLR0915
38473854
contents: List[BedrockMessageBlock] = []
38483855
msg_i = 0
38493856

3850-
## BASE CASE ##
3851-
if len(messages) == 0:
3852-
raise litellm.BadRequestError(
3853-
message=BAD_MESSAGE_ERROR_STR
3854-
+ "bedrock requires at least one non-system message",
3855-
model=model,
3856-
llm_provider=llm_provider,
3857-
)
3858-
3859-
# if initial message is assistant message
3860-
if messages[0].get("role") is not None and messages[0]["role"] == "assistant":
3861-
if user_continue_message is not None:
3862-
messages.insert(0, user_continue_message)
3863-
elif litellm.modify_params:
3864-
messages.insert(0, DEFAULT_USER_CONTINUE_MESSAGE)
3865-
3866-
# if final message is assistant message
3867-
if messages[-1].get("role") is not None and messages[-1]["role"] == "assistant":
3868-
if user_continue_message is not None:
3869-
messages.append(user_continue_message)
3870-
elif litellm.modify_params:
3871-
messages.append(DEFAULT_USER_CONTINUE_MESSAGE)
3857+
messages = BedrockConverseMessagesProcessor._initial_message_setup(
3858+
messages, model, llm_provider, user_continue_message
3859+
)
38723860

38733861
while msg_i < len(messages):
38743862
user_content: List[BedrockContentBlock] = []

0 commit comments

Comments
 (0)