Add 'none' reasoning effort to ChatCompletionRequest (#36238)
Signed-off-by: Julien Denize <julien.denize@mistral.ai>
This commit is contained in:
@@ -179,7 +179,7 @@ class ChatCompletionRequest(OpenAIBaseModel):
|
|||||||
| ChatCompletionNamedToolChoiceParam
|
| ChatCompletionNamedToolChoiceParam
|
||||||
| None
|
| None
|
||||||
) = "none"
|
) = "none"
|
||||||
reasoning_effort: Literal["low", "medium", "high"] | None = None
|
reasoning_effort: Literal["none", "low", "medium", "high"] | None = None
|
||||||
include_reasoning: bool = True
|
include_reasoning: bool = True
|
||||||
parallel_tool_calls: bool | None = True
|
parallel_tool_calls: bool | None = True
|
||||||
|
|
||||||
@@ -778,3 +778,10 @@ class ChatCompletionRequest(OpenAIBaseModel):
|
|||||||
)
|
)
|
||||||
|
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
@model_validator(mode="before")
|
||||||
|
@classmethod
|
||||||
|
def set_include_reasoning_for_none_effort(cls, data: Any) -> Any:
|
||||||
|
if data.get("reasoning_effort") == "none":
|
||||||
|
data["include_reasoning"] = False
|
||||||
|
return data
|
||||||
|
|||||||
@@ -1893,8 +1893,10 @@ class OpenAIServingChat(OpenAIServing):
|
|||||||
# if the model supports it. TODO: Support browsing.
|
# if the model supports it. TODO: Support browsing.
|
||||||
assert not self.supports_browsing
|
assert not self.supports_browsing
|
||||||
assert not self.supports_code_interpreter
|
assert not self.supports_code_interpreter
|
||||||
|
if (reasoning_effort := request.reasoning_effort) == "none":
|
||||||
|
raise ValueError(f"Harmony does not support {reasoning_effort=}")
|
||||||
sys_msg = get_system_message(
|
sys_msg = get_system_message(
|
||||||
reasoning_effort=request.reasoning_effort,
|
reasoning_effort=reasoning_effort,
|
||||||
browser_description=None,
|
browser_description=None,
|
||||||
python_description=None,
|
python_description=None,
|
||||||
with_custom_tools=should_include_tools,
|
with_custom_tools=should_include_tools,
|
||||||
|
|||||||
@@ -221,6 +221,9 @@ class OpenAIServingRender:
|
|||||||
# if the model supports it. TODO: Support browsing.
|
# if the model supports it. TODO: Support browsing.
|
||||||
assert not self.supports_browsing
|
assert not self.supports_browsing
|
||||||
assert not self.supports_code_interpreter
|
assert not self.supports_code_interpreter
|
||||||
|
assert request.reasoning_effort != "none", (
|
||||||
|
"Harmony does not support reasoning_effort='none'"
|
||||||
|
)
|
||||||
sys_msg = get_system_message(
|
sys_msg = get_system_message(
|
||||||
reasoning_effort=request.reasoning_effort,
|
reasoning_effort=request.reasoning_effort,
|
||||||
browser_description=None,
|
browser_description=None,
|
||||||
|
|||||||
Reference in New Issue
Block a user