Fix a bug where the Anthropic adapter's merge-consecutive-messages-with-the-same-role logic was unintentionally affecting the source LLMContext's messages, resulting in more and more duplication of text with each inference
This commit is contained in:
@@ -168,7 +168,7 @@ class AnthropicLLMAdapter(BaseLLMAdapter[AnthropicLLMInvocationParams]):
|
|||||||
|
|
||||||
def _from_universal_context_message(self, message: LLMContextMessage) -> MessageParam:
|
def _from_universal_context_message(self, message: LLMContextMessage) -> MessageParam:
|
||||||
if isinstance(message, LLMSpecificMessage):
|
if isinstance(message, LLMSpecificMessage):
|
||||||
return message.message
|
return copy.deepcopy(message.message)
|
||||||
return self._from_standard_message(message)
|
return self._from_standard_message(message)
|
||||||
|
|
||||||
def _from_standard_message(self, message: LLMStandardMessage) -> MessageParam:
|
def _from_standard_message(self, message: LLMStandardMessage) -> MessageParam:
|
||||||
@@ -210,6 +210,7 @@ class AnthropicLLMAdapter(BaseLLMAdapter[AnthropicLLMInvocationParams]):
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
|
message = copy.deepcopy(message)
|
||||||
if message["role"] == "tool":
|
if message["role"] == "tool":
|
||||||
return {
|
return {
|
||||||
"role": "user",
|
"role": "user",
|
||||||
|
|||||||
Reference in New Issue
Block a user