@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / a3ea760ea5
Fork 0

A high-throughput and memory-efficient inference and serving engine for LLMs

Mirrored from https://github.com/tduncan-lum/Nvidia-Optimization-Stack---VLLM.git

Synced Nov 6, 21:45 UTC

Add 'none' reasoning effort to ChatCompletionRequest (#36238)

Signed-off-by: Julien Denize <julien.denize@mistral.ai>

Julien Denize committed Mar 11, 2026 at 16:45 UTC a3ea760ea59a8253058c80240a9f0f2aa1fbc3c0
3 files changed +14 -2
vllm/entrypoints/openai/chat_completion/protocol.py
+8 -1
@@ -179,7 +179,7 @@ class ChatCompletionRequest(OpenAIBaseModel):
179 | ChatCompletionNamedToolChoiceParam
180 | None
181 ) = "none"
182 - reasoning_effort: Literal["low", "medium", "high"] | None = None
182 + reasoning_effort: Literal["none", "low", "medium", "high"] | None = None
183 include_reasoning: bool = True
184 parallel_tool_calls: bool | None = True
185
@@ -778,3 +778,10 @@ class ChatCompletionRequest(OpenAIBaseModel):
778 )
779
780 return data
781 +
782 + @model_validator(mode="before")
783 + @classmethod
784 + def set_include_reasoning_for_none_effort(cls, data: Any) -> Any:
785 + if data.get("reasoning_effort") == "none":
786 + data["include_reasoning"] = False
787 + return data
vllm/entrypoints/openai/chat_completion/serving.py
+3 -1
@@ -1893,8 +1893,10 @@ class OpenAIServingChat(OpenAIServing):
1893 # if the model supports it. TODO: Support browsing.
1894 assert not self.supports_browsing
1895 assert not self.supports_code_interpreter
1896 + if (reasoning_effort := request.reasoning_effort) == "none":
1897 + raise ValueError(f"Harmony does not support {reasoning_effort=}")
1898 sys_msg = get_system_message(
1897 - reasoning_effort=request.reasoning_effort,
1899 + reasoning_effort=reasoning_effort,
1900 browser_description=None,
1901 python_description=None,
1902 with_custom_tools=should_include_tools,
vllm/entrypoints/serve/render/serving.py
+3
@@ -221,6 +221,9 @@ class OpenAIServingRender:
221 # if the model supports it. TODO: Support browsing.
222 assert not self.supports_browsing
223 assert not self.supports_code_interpreter
224 + assert request.reasoning_effort != "none", (
225 + "Harmony does not support reasoning_effort='none'"
226 + )
227 sys_msg = get_system_message(
228 reasoning_effort=request.reasoning_effort,
229 browser_description=None,