fix: anthropic system event parse (#1471)

This commit is contained in:
cthomas
2025-03-31 09:49:15 -07:00
committed by GitHub
parent f47263cc47
commit 3dd3242c6d
2 changed files with 7 additions and 9 deletions

View File

@@ -113,21 +113,19 @@ class AnthropicClient(LLMClientBase):
# Messages
inner_thoughts_xml_tag = "thinking"
# Move 'system' to the top level
if messages[0].role != "system":
raise RuntimeError(f"First message is not a system message, instead has role {messages[0].role}")
data["system"] = messages[0].content if isinstance(messages[0].content, str) else messages[0].content[0].text
data["messages"] = [
m.to_anthropic_dict(
inner_thoughts_xml_tag=inner_thoughts_xml_tag,
put_inner_thoughts_in_kwargs=bool(self.llm_config.put_inner_thoughts_in_kwargs),
)
for m in messages
for m in messages[1:]
]
# Move 'system' to the top level
if data["messages"][0]["role"] != "system":
raise RuntimeError(f'First message is not a system message, instead has role {data["messages"][0]["role"]}')
data["system"] = data["messages"][0]["content"]
data["messages"] = data["messages"][1:]
# Ensure first message is user
if data["messages"][0]["role"] != "user":
data["messages"] = [{"role": "user", "content": DUMMY_FIRST_USER_MESSAGE}] + data["messages"]

View File

@@ -681,7 +681,7 @@ class Message(BaseMessage):
user_system_event = add_xml_tag(string=f"SYSTEM ALERT: {text_content}", xml_tag="event")
anthropic_message = {
"content": user_system_event,
"role": "system",
"role": "user",
}
elif self.role == "user":