Co-authored-by: Antoine <33425718+anth2o@users.noreply.github.com>
Co-authored-by: Bastien <bastien.baret@gmail.com>
Co-authored-by: Clément Sirieix <clement.sirieix@mistral.ai>
Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>
Co-authored-by: Mathias Gesbert <mathias.gesbert@mistral.ai>
Co-authored-by: Maxime Dolores <maxime.dolores@ext.mistral.ai>
Co-authored-by: Michel Thomazo <51709227+michelTho@users.noreply.github.com>
Co-authored-by: Nelson PROIA <144663685+Nelson-PROIA@users.noreply.github.com>
Co-authored-by: Pierre Rossinès <pierre.rossines@mistral.ai>
Co-authored-by: Quentin <quentin.torroba@mistral.ai>
Co-authored-by: Robin Gullo <robin.gullo@mistral.ai>
Co-authored-by: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
Clément Drouin 2026-04-28 17:44:07 +02:00 committed by GitHub
parent a83c81ecf5
commit 632ea8c032
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
253 changed files with 13965 additions and 2525 deletions

View file

@ -465,11 +465,14 @@ class TestAdapterPrepareRequest:
assert payload["temperature"] == 1
assert payload["max_tokens"] == expected_budget + 8192
@pytest.mark.parametrize(
"model_name", ["claude-opus-4-6-20260101", "claude-opus-4-7-20260418"]
)
@pytest.mark.parametrize("level", ["low", "medium", "high"])
def test_thinking_levels_adaptive_model(self, adapter, provider, level):
def test_thinking_levels_adaptive_model(self, adapter, provider, model_name, level):
messages = [LLMMessage(role=Role.user, content="Hello")]
req = adapter.prepare_request(
model_name="claude-opus-4-6-20260101",
model_name=model_name,
messages=messages,
temperature=0.5,
tools=None,
@ -480,11 +483,33 @@ class TestAdapterPrepareRequest:
thinking=level,
)
payload = json.loads(req.body)
assert payload["thinking"] == {"type": "adaptive"}
assert payload["thinking"] == {"type": "adaptive", "display": "summarized"}
assert payload["output_config"] == {"effort": level}
assert payload["temperature"] == 1
if "opus-4-7" in model_name:
assert "temperature" not in payload
else:
assert payload["temperature"] == 1
assert payload["max_tokens"] == 32_768
@pytest.mark.parametrize("thinking_level", ["off", "low", "medium", "high"])
def test_temperature_omitted_for_deprecated_model(
self, adapter, provider, thinking_level
):
messages = [LLMMessage(role=Role.user, content="Hello")]
req = adapter.prepare_request(
model_name="claude-opus-4-7-20260418",
messages=messages,
temperature=0.5,
tools=None,
max_tokens=None,
tool_choice=None,
enable_streaming=False,
provider=provider,
thinking=thinking_level,
)
payload = json.loads(req.body)
assert "temperature" not in payload
def test_history_forced_thinking_budget_model(self, adapter, provider):
messages = [
LLMMessage(role=Role.user, content="Hello"),
@ -533,7 +558,7 @@ class TestAdapterPrepareRequest:
provider=provider,
)
payload = json.loads(req.body)
assert payload["thinking"] == {"type": "adaptive"}
assert payload["thinking"] == {"type": "adaptive", "display": "summarized"}
assert payload["output_config"] == {"effort": "medium"}
assert payload["max_tokens"] == 32_768