Skip to content

Commit 6a2069b

Browse files
committed
fix
1 parent d60c569 commit 6a2069b

File tree

1 file changed

+40
-20
lines changed

1 file changed

+40
-20
lines changed

libs/partners/anthropic/langchain_anthropic/middleware/anthropic_tools.py

Lines changed: 40 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)