From d13c9be510de06ba6a78036042c613ff92ef19bb Mon Sep 17 00:00:00 2001 From: Ivan Konstantinov <155286654+johnnykor82@users.noreply.github.com> Date: Mon, 19 Oct 2026 13:48:49 +0300 Subject: [PATCH] fix(nvidia_nim): validate top_n boundary without prohibited typing.cast --- litellm/llms/nvidia_nim/rerank/transformation.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/litellm/llms/nvidia_nim/rerank/transformation.py b/litellm/llms/nvidia_nim/rerank/transformation.py index 37480ef1076..a42cfc5f5ad 100644 --- a/litellm/llms/nvidia_nim/rerank/transformation.py +++ b/litellm/llms/nvidia_nim/rerank/transformation.py @@ -1,5 +1,5 @@ from collections.abc import Mapping -from typing import Final, Literal, cast +from typing import Final, Literal import httpx from pydantic import ConfigDict, TypeAdapter @@ -210,7 +210,11 @@ class NvidiaNimRerankConfig(BaseRerankConfig): if "documents" not in optional_rerank_params: raise ValueError("documents is required for Nvidia NIM rerank") - top_n: Final[object] = cast(object, optional_rerank_params.get("top_n")) # cast-ok: value validated below + # Validate the boundary as Mapping[str, object] to avoid leaking an + # Unknown type from the provider's untyped optional params. + top_n: Final[object] = _JSON_OBJECT.validate_python( + {"top_n": optional_rerank_params.get("top_n")} + )["top_n"] if top_n is not None: if isinstance(top_n, bool) or not isinstance(top_n, int) or top_n < 1: raise ValueError(f"top_n must be a positive integer, got: {top_n!r}")