From 45d31e33aa672ddcc4df53d6612bf41f48a14d9b Mon Sep 17 00:00:00 2001 From: garfeildma Date: Mon, 18 Mar 2024 18:42:23 +0800 Subject: [PATCH] support multiple system message tranlation for bedrock claude-3 --- litellm/llms/bedrock.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/litellm/llms/bedrock.py b/litellm/llms/bedrock.py index 31e4905cb4..0f52d3abc4 100644 --- a/litellm/llms/bedrock.py +++ b/litellm/llms/bedrock.py @@ -720,14 +720,15 @@ def completion( if provider == "anthropic": if model.startswith("anthropic.claude-3"): # Separate system prompt from rest of message - system_prompt_idx: Optional[int] = None + system_prompt_idx: list[int] = [] + system_messages: list[str] = [] for idx, message in enumerate(messages): if message["role"] == "system": - inference_params["system"] = message["content"] - system_prompt_idx = idx - break - if system_prompt_idx is not None: - messages.pop(system_prompt_idx) + system_messages.append(message["content"]) + system_prompt_idx.append(idx) + if len(system_prompt_idx) > 0: + inference_params["system"] = '\n'.join(system_messages) + messages = [i for j, i in enumerate(messages) if j not in system_prompt_idx] # Format rest of message according to anthropic guidelines messages = prompt_factory( model=model, messages=messages, custom_llm_provider="anthropic"