@@ -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