mirror of
https://gitee.com/wanwujie/deer-flow
synced 2026-04-18 20:14:44 +08:00
feat: add reasoning_effort configuration support for Doubao/GPT-5 models (#947)
* feat: Add reasoning effort configuration support * Add `reasoning_effort` parameter to model config and agent initialization * Support reasoning effort levels (minimal/low/medium/high) for Doubao/GPT-5 models * Add UI controls in input box for reasoning effort selection * Update doubao-seed-1.8 example config with reasoning effort support Fixes & Cleanup: * Ensure UTF-8 encoding for file operations * Remove unused imports * fix: set reasoning_effort to None for unsupported models * fix: unit test error * Update frontend/src/components/workspace/input-box.tsx Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
This commit is contained in:
@@ -25,6 +25,8 @@ def mock_app_config():
|
||||
"""Provide a minimal AppConfig mock."""
|
||||
model = MagicMock()
|
||||
model.name = "test-model"
|
||||
model.supports_thinking = False
|
||||
model.supports_reasoning_effort = False
|
||||
model.model_dump.return_value = {"name": "test-model", "use": "langchain_openai:ChatOpenAI"}
|
||||
|
||||
config = MagicMock()
|
||||
@@ -379,6 +381,7 @@ class TestGetModel:
|
||||
model_cfg.display_name = "Test Model"
|
||||
model_cfg.description = "A test model"
|
||||
model_cfg.supports_thinking = True
|
||||
model_cfg.supports_reasoning_effort = True
|
||||
client._app_config.get_model_config.return_value = model_cfg
|
||||
|
||||
result = client.get_model("test-model")
|
||||
@@ -387,6 +390,7 @@ class TestGetModel:
|
||||
"display_name": "Test Model",
|
||||
"description": "A test model",
|
||||
"supports_thinking": True,
|
||||
"supports_reasoning_effort": True,
|
||||
}
|
||||
|
||||
def test_not_found(self, client):
|
||||
@@ -928,6 +932,7 @@ class TestScenarioConfigManagement:
|
||||
model_cfg.display_name = None
|
||||
model_cfg.description = None
|
||||
model_cfg.supports_thinking = False
|
||||
model_cfg.supports_reasoning_effort = False
|
||||
client._app_config.get_model_config.return_value = model_cfg
|
||||
detail = client.get_model(model_name)
|
||||
assert detail["name"] == model_name
|
||||
|
||||
@@ -84,9 +84,10 @@ def test_make_lead_agent_disables_thinking_when_model_does_not_support_it(monkey
|
||||
|
||||
captured: dict[str, object] = {}
|
||||
|
||||
def _fake_create_chat_model(*, name, thinking_enabled):
|
||||
def _fake_create_chat_model(*, name, thinking_enabled, reasoning_effort=None):
|
||||
captured["name"] = name
|
||||
captured["thinking_enabled"] = thinking_enabled
|
||||
captured["reasoning_effort"] = reasoning_effort
|
||||
return object()
|
||||
|
||||
monkeypatch.setattr(lead_agent_module, "create_chat_model", _fake_create_chat_model)
|
||||
|
||||
Reference in New Issue
Block a user