diff --git a/litellm/llms/gigachat/chat/transformation.py b/litellm/llms/gigachat/chat/transformation.py index 15a1b463c3f..23847e9b4f0 100644 --- a/litellm/llms/gigachat/chat/transformation.py +++ b/litellm/llms/gigachat/chat/transformation.py @@ -135,14 +135,16 @@ class GigaChatConfig(BaseConfig): return headers def get_supported_openai_params(self, model: str) -> list[str]: # mutable-ok: base class contract returns list - """Return list of supported OpenAI parameters.""" + """Return list of supported OpenAI parameters. + + No stop: the GigaChat request body has no stop field. + """ return [ "stream", "temperature", "top_p", "max_tokens", "max_completion_tokens", - "stop", "tools", "tool_choice", "functions", @@ -171,9 +173,6 @@ class GigaChatConfig(BaseConfig): optional_params["top_p"] = value elif param in ("max_tokens", "max_completion_tokens"): optional_params["max_tokens"] = value - elif param == "stop": - # GigaChat doesn't support stop sequences - pass elif param == "tools": # Convert tools to functions format if isinstance(value, Sequence): diff --git a/tests/llm_translation/test_gigachat.py b/tests/llm_translation/test_gigachat.py index 3c47f692ce0..fbd013e0285 100644 --- a/tests/llm_translation/test_gigachat.py +++ b/tests/llm_translation/test_gigachat.py @@ -359,6 +359,32 @@ class TestGigaChatSupportedParams: assert "response_format" in supported assert "stream" in supported + def test_stop_not_supported(self, config): + """Claiming stop would silence UnsupportedParamsError and drop the sequences.""" + assert "stop" not in config.get_supported_openai_params("GigaChat") + + def test_stop_raises_instead_of_being_dropped(self, config): + """stop raises UnsupportedParamsError.""" + import litellm + from litellm.utils import get_optional_params + + with pytest.raises(litellm.UnsupportedParamsError): + get_optional_params( + model="GigaChat", custom_llm_provider="gigachat", stop=["END"] + ) + + def test_stop_dropped_with_drop_params(self, config): + """drop_params=True drops stop.""" + from litellm.utils import get_optional_params + + params = get_optional_params( + model="GigaChat", + custom_llm_provider="gigachat", + stop=["END"], + drop_params=True, + ) + assert "stop" not in params + class TestGigaChatToolChoiceMapping: """Tests for tool_choice -> function_call mapping"""