fix(fireworks_ai): flatten dict-form reasoning_effort to its effort string

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
Devin AI 2026-09-16 00:37:55 +00:00
parent 878716f806
commit a7a61db78d
2 changed files with 27 additions and 4 deletions

View file

@ -327,12 +327,13 @@ class FireworksAIConfig(FireworksAIMixin, OpenAIGPTConfig):
elif param == "max_completion_tokens":
optional_params["max_tokens"] = value
elif param == "reasoning_effort":
if value is True:
effort: Final = value.get("effort") if isinstance(value, dict) else value
if effort is True:
optional_params["reasoning_effort"] = "medium"
elif value is False:
elif effort is False:
optional_params["reasoning_effort"] = "none"
elif value != "auto":
optional_params["reasoning_effort"] = value
elif effort is not None and effort != "auto":
optional_params["reasoning_effort"] = effort
elif param in supported_openai_params:
if value is not None:
optional_params[param] = value

View file

@ -1189,6 +1189,28 @@ def test_reasoning_effort_integer_passthrough():
assert isinstance(result["reasoning_effort"], int)
def test_reasoning_effort_dict_from_anthropic_adapter_flattened_to_effort_string():
config = FireworksAIConfig()
result = config.map_openai_params(
{"reasoning_effort": {"effort": "medium", "summary": "detailed"}},
{},
_REASONING_MODEL,
drop_params=False,
)
assert result["reasoning_effort"] == "medium"
def test_reasoning_effort_dict_without_effort_key_dropped():
config = FireworksAIConfig()
result = config.map_openai_params(
{"reasoning_effort": {"summary": "detailed"}},
{},
_REASONING_MODEL,
drop_params=False,
)
assert "reasoning_effort" not in result
def test_reasoning_effort_auto_dropped_to_model_default():
config = FireworksAIConfig()
result = config.map_openai_params(