fix(upstage): map 'ultra' reasoning effort to Solar's high

Main added max/ultra effort levels (#62650) after this PR branched;
without the mapping 'ultra' silently fell through to the medium default.
Matches the xhigh/max collapse-to-strongest convention used by other
profiles.
This commit is contained in:
kshitijk4poor 2026-07-14 23:46:08 +05:30 committed by kshitij
parent 0d01831919
commit f88cac71bc
2 changed files with 4 additions and 3 deletions

View file

@ -75,8 +75,8 @@ class UpstageProfile(ProviderProfile):
if reasoning_config.get("enabled") is False:
return {}, top_level
# Map Hermes' effort vocabulary onto Solar's accepted set. xhigh/max
# collapse to high (Solar's strongest). minimal → off (omit). An
# Map Hermes' effort vocabulary onto Solar's accepted set. xhigh/max/
# ultra collapse to high (Solar's strongest). minimal → off (omit). An
# enabled request with no recognised effort uses the default effort.
effort = (reasoning_config.get("effort") or "").strip().lower()
mapped = {
@ -86,6 +86,7 @@ class UpstageProfile(ProviderProfile):
"high": "high",
"xhigh": "high",
"max": "high",
"ultra": "high",
}.get(effort, _DEFAULT_REASONING_EFFORT)
if mapped:

View file

@ -78,7 +78,7 @@ class TestUpstageReasoning:
assert extra_body == {}
assert top_level == {"reasoning_effort": effort}
@pytest.mark.parametrize("effort", ["xhigh", "max"])
@pytest.mark.parametrize("effort", ["xhigh", "max", "ultra"])
def test_pro_strong_efforts_collapse_to_high(self, upstage_profile, effort):
_, top_level = upstage_profile.build_api_kwargs_extras(
reasoning_config={"enabled": True, "effort": effort}, model="solar-pro2"