fix: default reasoning effort to medium instead of high
This commit is contained in:
@@ -1385,7 +1385,7 @@ def _parse_v3_config(
|
||||
allowed=_REASONING_EFFORTS - {"disabled"},
|
||||
)
|
||||
default_reasoning_effort = str(
|
||||
reasoning_policy.get("default_effort") or "high"
|
||||
reasoning_policy.get("default_effort") or "medium"
|
||||
)
|
||||
if default_reasoning_effort not in allowed_reasoning_efforts:
|
||||
raise EvoRuntimeError(
|
||||
|
||||
@@ -593,7 +593,7 @@ def get_chat_model(
|
||||
# passback (OpenRouter's `/responses` beta is stateless, store=false —
|
||||
# "Item with id 'rs_...' not found"); the patch strips them on passback,
|
||||
# so enabling `summary` is safe. See langchain-ai/langchain#37777.
|
||||
kwargs.setdefault("reasoning", {"effort": "high", "summary": "auto"})
|
||||
kwargs.setdefault("reasoning", {"effort": "medium", "summary": "auto"})
|
||||
# App attribution (issue #339): identify EvoScientist to OpenRouter so
|
||||
# usage is credited to the project (app rankings, model app tabs,
|
||||
# analytics) rather than langchain-openrouter's LangChain-branded
|
||||
|
||||
+3
-3
@@ -459,7 +459,7 @@ class TestThirdPartyRouting:
|
||||
call_kwargs = mock_init.call_args[1]
|
||||
assert call_kwargs["model_provider"] == "openrouter"
|
||||
assert call_kwargs["api_key"] == "or-key-456"
|
||||
assert call_kwargs["reasoning"] == {"effort": "high", "summary": "auto"}
|
||||
assert call_kwargs["reasoning"] == {"effort": "medium", "summary": "auto"}
|
||||
|
||||
@patch("EvoScientist.llm.models.init_chat_model")
|
||||
def test_openrouter_reasoning_user_override(self, mock_init, monkeypatch):
|
||||
@@ -488,7 +488,7 @@ class TestThirdPartyRouting:
|
||||
get_chat_model("x-ai/grok-4.3", provider="openrouter")
|
||||
|
||||
call_kwargs = mock_init.call_args[1]
|
||||
assert call_kwargs["reasoning"] == {"effort": "high", "summary": "auto"}
|
||||
assert call_kwargs["reasoning"] == {"effort": "medium", "summary": "auto"}
|
||||
|
||||
# --- OpenRouter app attribution (issue #339) ---
|
||||
|
||||
@@ -599,7 +599,7 @@ class TestThirdPartyRouting:
|
||||
|
||||
call_kwargs = mock_init.call_args[1]
|
||||
# Existing behavior intact.
|
||||
assert call_kwargs["reasoning"] == {"effort": "high", "summary": "auto"}
|
||||
assert call_kwargs["reasoning"] == {"effort": "medium", "summary": "auto"}
|
||||
assert call_kwargs["model_kwargs"]["cache_control"] == {"type": "ephemeral"}
|
||||
# Attribution added alongside.
|
||||
assert call_kwargs["app_url"] == "https://github.com/EvoScientist/EvoScientist"
|
||||
|
||||
@@ -802,6 +802,20 @@ def test_model_reasoning_policy_can_restrict_efforts_and_enable_max() -> None:
|
||||
assert parsed.reasoning_enabled_params == {"reasoning": "high"}
|
||||
|
||||
|
||||
def test_model_reasoning_policy_defaults_to_medium_without_explicit_effort() -> None:
|
||||
payload = v3_payload()
|
||||
provider = next(item for item in payload["providers"] if item["adapter_id"] == "openai")
|
||||
model = provider["models"][0]
|
||||
model["capabilities"]["thinking"] = True
|
||||
# 不设置 reasoning_policy.default_effort → 兜底应为 medium
|
||||
|
||||
config = EvoModelConfig.parse(payload, require_evidence=False)
|
||||
parsed = config.providers[provider["provider_id"]].models[model["model_key"]]
|
||||
|
||||
assert parsed.supports_reasoning is True
|
||||
assert parsed.reasoning_enabled_params == {"reasoning": "medium"}
|
||||
|
||||
|
||||
def test_generic_openai_compatible_adapter_supports_standard_model_discovery() -> None:
|
||||
registration = get_adapter_registry().get(
|
||||
"generic-openai-compatible", "generic-openai-compatible-v1"
|
||||
|
||||
Reference in New Issue
Block a user