diff --git a/simplemind/providers/anthropic.py b/simplemind/providers/anthropic.py index ffa776d..6abb6b8 100644 --- a/simplemind/providers/anthropic.py +++ b/simplemind/providers/anthropic.py @@ -49,15 +49,24 @@ class Anthropic(BaseProvider): return instructor.from_anthropic(self.client) @logger - def send_conversation(self, conversation: "Conversation", **kwargs) -> "Message": + def send_conversation( + self, conversation: "Conversation", **kwargs + ) -> "Message": """Send a conversation to the Anthropic API.""" from ..models import Message + system_messages = [msg for msg in conversation.messages if msg.role == "system"] + if len(system_messages) > 1: + logger.warning("Multiple system messages found. Using the first one.") + system_prompt = system_messages[0] if system_messages else None messages = [ - {"role": msg.role, "content": msg.text} for msg in conversation.messages + {"role": msg.role, "content": msg.text} + for msg in conversation.messages + if msg.role != "system" ] response = self.client.messages.create( + system=next(system_prompt, None), model=conversation.llm_model or self.DEFAULT_MODEL, messages=messages, **{**self.DEFAULT_KWARGS, **kwargs},