From d7ab620e0b03436f1e69a35c34641ec05760eca1 Mon Sep 17 00:00:00 2001 From: Abi Raja Date: Fri, 26 Jul 2024 11:56:21 -0400 Subject: [PATCH] deep copy messages to avoid modifying the original list in the Claude LLM call --- backend/llm.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/backend/llm.py b/backend/llm.py index 2b71102..450ec2f 100644 --- a/backend/llm.py +++ b/backend/llm.py @@ -1,4 +1,5 @@ import base64 +import copy from enum import Enum from typing import Any, Awaitable, Callable, List, cast from anthropic import AsyncAnthropic @@ -92,8 +93,12 @@ async def stream_claude_response( temperature = 0.0 # Translate OpenAI messages to Claude messages - system_prompt = cast(str, messages[0].get("content")) - claude_messages = [dict(message) for message in messages[1:]] + + # Deep copy messages to avoid modifying the original list + cloned_messages = copy.deepcopy(messages) + + system_prompt = cast(str, cloned_messages[0].get("content")) + claude_messages = [dict(message) for message in cloned_messages[1:]] for message in claude_messages: if not isinstance(message["content"], list): continue