From b644900a64a60483160f1a816cfa54c1d564c55c Mon Sep 17 00:00:00 2001 From: Yusuf Efe <120668197+yuefdev@users.noreply.github.com> Date: Sun, 18 Oct 2026 05:29:53 +0300 Subject: [PATCH] fix(cohere): keep request inputs read-only Signed-off-by: Yusuf Efe <120668197+yuefdev@users.noreply.github.com> --- litellm/llms/cohere/chat/v2_transformation.py | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/litellm/llms/cohere/chat/v2_transformation.py b/litellm/llms/cohere/chat/v2_transformation.py index fc11dfbd020..f5789af60e7 100644 --- a/litellm/llms/cohere/chat/v2_transformation.py +++ b/litellm/llms/cohere/chat/v2_transformation.py @@ -1,5 +1,5 @@ import time -from collections.abc import AsyncIterator, Iterator, Mapping +from collections.abc import AsyncIterator, Iterator, Mapping, Sequence from types import MappingProxyType from typing import TYPE_CHECKING, Any, Final @@ -169,12 +169,14 @@ class CohereV2ChatConfig(OpenAIGPTConfig): def transform_request( self, model: str, - messages: list[AllMessageValues], - optional_params: dict[str, object], - litellm_params: dict[str, object], - headers: dict[str, object], + messages: Sequence[AllMessageValues], + optional_params: Mapping[str, object], + litellm_params: Mapping[str, object], + headers: Mapping[str, object], ) -> dict[str, object]: - data: Final = super().transform_request(model, messages, optional_params, litellm_params, headers) + data: Final = super().transform_request( + model, list(messages), dict(optional_params), dict(litellm_params), dict(headers) + ) messages_to_send: Final = data.get("messages") if messages_to_send is not None: litellm.remove_index_from_tool_calls(messages=messages_to_send) @@ -184,12 +186,14 @@ class CohereV2ChatConfig(OpenAIGPTConfig): async def async_transform_request( self, model: str, - messages: list[AllMessageValues], - optional_params: dict[str, object], - litellm_params: dict[str, object], - headers: dict[str, object], + messages: Sequence[AllMessageValues], + optional_params: Mapping[str, object], + litellm_params: Mapping[str, object], + headers: Mapping[str, object], ) -> dict[str, object]: - data: Final = await super().async_transform_request(model, messages, optional_params, litellm_params, headers) + data: Final = await super().async_transform_request( + model, list(messages), dict(optional_params), dict(litellm_params), dict(headers) + ) messages_to_send: Final = data.get("messages") if messages_to_send is not None: litellm.remove_index_from_tool_calls(messages=messages_to_send)