mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-25 01:02:15 +00:00
fix(volcengine): raise on unknown reasoning_effort when drop_params=False
Addresses greptile review concern: unknown reasoning_effort values (future or misspelled) were silently dropped, which violates LiteLLM's drop_params semantic where False should surface unsupported params as errors instead of no-ops. - Raise UnsupportedParamsError when reasoning_effort is unrecognized AND drop_params=False AND litellm.drop_params=False. - Continue silently dropping when drop_params=True (or global flag set). - Add test_reasoning_effort_unknown_value covering both branches.
This commit is contained in:
parent
982d516936
commit
e3ee218da5
2 changed files with 44 additions and 1 deletions
|
|
@ -1,5 +1,7 @@
|
|||
from typing import Optional, Union
|
||||
|
||||
import litellm
|
||||
from litellm.exceptions import UnsupportedParamsError
|
||||
from litellm.llms.openai_like.chat.transformation import OpenAILikeChatConfig
|
||||
|
||||
|
||||
|
|
@ -103,7 +105,20 @@ class VolcEngineChatConfig(OpenAILikeChatConfig):
|
|||
optional_params["thinking"] = {"type": "enabled"}
|
||||
elif reasoning_effort == "auto":
|
||||
optional_params["thinking"] = {"type": "auto"}
|
||||
# Unknown values: silently drop (super() already handles drop_params semantics)
|
||||
else:
|
||||
# Unknown reasoning_effort value: respect drop_params semantics.
|
||||
# When drop_params=True (or litellm.drop_params=True): silently drop.
|
||||
# Otherwise: raise so callers don't silently get default thinking behavior.
|
||||
if not (drop_params or litellm.drop_params):
|
||||
raise UnsupportedParamsError(
|
||||
status_code=400,
|
||||
message=(
|
||||
f"VolcEngine does not support reasoning_effort="
|
||||
f"{reasoning_effort!r}. Supported values: 'none', "
|
||||
f"'minimal', 'low', 'medium', 'high', 'xhigh', 'auto'. "
|
||||
f"Pass drop_params=True to silently drop unknown values."
|
||||
),
|
||||
)
|
||||
|
||||
if "thinking" in optional_params:
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -176,6 +176,34 @@ class TestVolcEngineConfig:
|
|||
)
|
||||
assert e2e["extra_body"]["thinking"] == {"type": "disabled"}
|
||||
|
||||
def test_reasoning_effort_unknown_value(self):
|
||||
"""Unknown reasoning_effort values must respect drop_params semantics."""
|
||||
import pytest
|
||||
|
||||
from litellm.exceptions import UnsupportedParamsError
|
||||
|
||||
config = VolcEngineConfig()
|
||||
|
||||
# drop_params=False: raise on unknown value (not silently drop)
|
||||
with pytest.raises(UnsupportedParamsError) as exc_info:
|
||||
config.map_openai_params(
|
||||
non_default_params={"reasoning_effort": "ultra"},
|
||||
optional_params={},
|
||||
model="doubao-seed-1.6",
|
||||
drop_params=False,
|
||||
)
|
||||
assert "reasoning_effort" in str(exc_info.value)
|
||||
assert "ultra" in str(exc_info.value)
|
||||
|
||||
# drop_params=True: silently drop unknown value, no thinking written
|
||||
out = config.map_openai_params(
|
||||
non_default_params={"reasoning_effort": "ultra"},
|
||||
optional_params={},
|
||||
model="doubao-seed-1.6",
|
||||
drop_params=True,
|
||||
)
|
||||
assert out == {}
|
||||
|
||||
def test_e2e_completion(self):
|
||||
from openai import OpenAI
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue