@@ -275,12 +275,17 @@ def wrap_model_call(
275275 # Inject system prompt if provided
276276 overrides : _ModelRequestOverrides = {"tools" : tools }
277277 if self .system_prompt :
278- system_message_content = (
279- request .system_message .content + "\n \n " + self .system_prompt
280- if request .system_message
281- else self .system_prompt
278+ if request .system_message is not None :
279+ new_system_content = [
280+ * request .system_message .content_blocks ,
281+ {"type" : "text" , "text" : f"\n \n { self .system_prompt } " },
282+ ]
283+ else :
284+ new_system_content = [{"type" : "text" , "text" : self .system_prompt }]
285+ new_system_message = SystemMessage (
286+ content = cast ("list[str | dict[str, str]]" , new_system_content )
282287 )
283- overrides ["system_message" ] = SystemMessage ( system_message_content )
288+ overrides ["system_message" ] = new_system_message
284289
285290 return handler (request .override (** overrides ))
286291
@@ -300,12 +305,17 @@ async def awrap_model_call(
300305 # Inject system prompt if provided
301306 overrides : _ModelRequestOverrides = {"tools" : tools }
302307 if self .system_prompt :
303- system_message_content = (
304- request .system_message .content + "\n \n " + self .system_prompt
305- if request .system_message
306- else self .system_prompt
308+ if request .system_message is not None :
309+ new_system_content = [
310+ * request .system_message .content_blocks ,
311+ {"type" : "text" , "text" : f"\n \n { self .system_prompt } " },
312+ ]
313+ else :
314+ new_system_content = [{"type" : "text" , "text" : self .system_prompt }]
315+ new_system_message = SystemMessage (
316+ content = cast ("list[str | dict[str, str]]" , new_system_content )
307317 )
308- overrides ["system_message" ] = SystemMessage ( system_message_content )
318+ overrides ["system_message" ] = new_system_message
309319
310320 return await handler (request .override (** overrides ))
311321
@@ -753,12 +763,17 @@ def wrap_model_call(
753763 # Inject system prompt if provided
754764 overrides : _ModelRequestOverrides = {"tools" : tools }
755765 if self .system_prompt :
756- system_message_content = (
757- request .system_message .content + "\n \n " + self .system_prompt
758- if request .system_message
759- else self .system_prompt
766+ if request .system_message is not None :
767+ new_system_content = [
768+ * request .system_message .content_blocks ,
769+ {"type" : "text" , "text" : f"\n \n { self .system_prompt } " },
770+ ]
771+ else :
772+ new_system_content = [{"type" : "text" , "text" : self .system_prompt }]
773+ new_system_message = SystemMessage (
774+ content = cast ("list[str | dict[str, str]]" , new_system_content )
760775 )
761- overrides ["system_message" ] = SystemMessage ( system_message_content )
776+ overrides ["system_message" ] = new_system_message
762777
763778 return handler (request .override (** overrides ))
764779
@@ -778,12 +793,17 @@ async def awrap_model_call(
778793 # Inject system prompt if provided
779794 overrides : _ModelRequestOverrides = {"tools" : tools }
780795 if self .system_prompt :
781- system_message_content = (
782- request .system_message .content + "\n \n " + self .system_prompt
783- if request .system_message
784- else self .system_prompt
796+ if request .system_message is not None :
797+ new_system_content = [
798+ * request .system_message .content_blocks ,
799+ {"type" : "text" , "text" : f"\n \n { self .system_prompt } " },
800+ ]
801+ else :
802+ new_system_content = [{"type" : "text" , "text" : self .system_prompt }]
803+ new_system_message = SystemMessage (
804+ content = cast ("list[str | dict[str, str]]" , new_system_content )
785805 )
786- overrides ["system_message" ] = SystemMessage ( system_message_content )
806+ overrides ["system_message" ] = new_system_message
787807
788808 return await handler (request .override (** overrides ))
789809
0 commit comments