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,