From 2b01e0dc1adac843afe4001953d6140628fbc743 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sun, 25 Oct 2026 16:35:20 +0000 Subject: [PATCH] fix(gemini): stop continuation for empty candidate count --- litellm/llms/vertex_ai/gemini/long_decode.py | 4 +++- tests/unit/llms/vertex_ai/gemini/test_long_decode.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/litellm/llms/vertex_ai/gemini/long_decode.py b/litellm/llms/vertex_ai/gemini/long_decode.py index 25aae70a853..4c4599e5920 100644 --- a/litellm/llms/vertex_ai/gemini/long_decode.py +++ b/litellm/llms/vertex_ai/gemini/long_decode.py @@ -87,7 +87,9 @@ def _int_or_none(value: object) -> int | None: def _asks_for_one_candidate(generation_config: Mapping[str, object]) -> bool: return all( - _int_or_none(generation_config[key] or 1) == 1 for key in _CANDIDATE_COUNT_KEYS if key in generation_config + generation_config[key] is None or _int_or_none(generation_config[key]) in (0, 1) + for key in _CANDIDATE_COUNT_KEYS + if key in generation_config ) diff --git a/tests/unit/llms/vertex_ai/gemini/test_long_decode.py b/tests/unit/llms/vertex_ai/gemini/test_long_decode.py index 3fe9a5c7a92..9361965e379 100644 --- a/tests/unit/llms/vertex_ai/gemini/test_long_decode.py +++ b/tests/unit/llms/vertex_ai/gemini/test_long_decode.py @@ -170,7 +170,7 @@ async def test_unary_long_decode_answers_under_the_first_requests_response_id(is @pytest.mark.parametrize("stream", [True, False]) -@pytest.mark.parametrize("sent_as_a_string", [{"n": "1"}, {"max_tokens": "100000"}]) +@pytest.mark.parametrize("sent_as_a_string", [{"n": "1"}, {"n": ""}, {"max_tokens": "100000"}]) @pytest.mark.asyncio async def test_request_whose_n_or_max_tokens_is_a_string_is_sent_once_and_never_continued( stream: bool, sent_as_a_string: Mapping[str, str]