From 5d6b83d9cf96409d61573b3fd864bccab8cd43a6 Mon Sep 17 00:00:00 2001 From: Predrag Gruevski <2348618+obi1kenobi@users.noreply.github.com> Date: Tue, 3 Oct 2023 15:27:51 -0400 Subject: [PATCH] Make a copy of external data instead of mutating another object's attributes. (#11349) Fix for a bug surfaced as part of #11339. `mypy` caught this since the types didn't match up. --- .../comprehend_moderation/base_moderation.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libs/experimental/langchain_experimental/comprehend_moderation/base_moderation.py b/libs/experimental/langchain_experimental/comprehend_moderation/base_moderation.py index 3724ac081d..9af9144773 100644 --- a/libs/experimental/langchain_experimental/comprehend_moderation/base_moderation.py +++ b/libs/experimental/langchain_experimental/comprehend_moderation/base_moderation.py @@ -70,7 +70,10 @@ class BaseModeration: elif isinstance(prompt, str): return text elif isinstance(prompt, ChatPromptValue): - messages = prompt.messages + # Copy the messages because we may need to mutate them. + # We don't want to mutate data we don't own. + messages = list(prompt.messages) + message = messages[self.chat_message_index] if isinstance(message, HumanMessage):