fix(deepseek): set default_aux_model on profile so aux warning stops firing
Closes #26924 (and supersedes #26926) in spirit. DeepSeek was missing `default_aux_model` on its `ProviderProfile`, so `_get_aux_model_for_provider("deepseek")` returned an empty string and the compression / vision / session-search paths emitted "No auxiliary LLM provider configured -- context compression will drop middle turns without a summary." on every DeepSeek session, even when the user had perfectly working DeepSeek credentials. Fix lands at the profile layer rather than the legacy `_API_KEY_PROVIDER_AUX_MODELS_FALLBACK` dict the original PR targeted. Every modern provider (gemini, zai, minimax, anthropic, kimi-coding, stepfun, ollama-cloud, gmi, novita, kilocode, ai-gateway, opencode-zen) sets `default_aux_model` on its `ProviderProfile`; the fallback dict only exists for providers that predate the profiles system. Tests added under `tests/plugins/model_providers/test_deepseek_profile.py`: - `test_profile_advertises_deepseek_chat` -- pins the profile attribute - `test_consumer_api_returns_deepseek_chat` -- pins the consumer API behavior - `test_consumer_api_returns_non_empty` -- regression guard for the symptom in the issue Original diagnosis and aux-model choice from @kriscolab in PR #26926; moved one layer up. Co-authored-by: kriscolab <71590782+kriscolab@users.noreply.github.com>
This commit is contained in:
@ -94,6 +94,7 @@ deepseek = DeepSeekProfile(
|
|||||||
"deepseek-reasoner",
|
"deepseek-reasoner",
|
||||||
),
|
),
|
||||||
base_url="https://api.deepseek.com/v1",
|
base_url="https://api.deepseek.com/v1",
|
||||||
|
default_aux_model="deepseek-chat",
|
||||||
)
|
)
|
||||||
|
|
||||||
register_provider(deepseek)
|
register_provider(deepseek)
|
||||||
|
|||||||
@ -182,3 +182,26 @@ class TestDeepSeekFullKwargsIntegration:
|
|||||||
)
|
)
|
||||||
assert "reasoning_effort" not in kwargs
|
assert "reasoning_effort" not in kwargs
|
||||||
assert "extra_body" not in kwargs or "thinking" not in kwargs.get("extra_body", {})
|
assert "extra_body" not in kwargs or "thinking" not in kwargs.get("extra_body", {})
|
||||||
|
|
||||||
|
|
||||||
|
class TestDeepSeekAuxModel:
|
||||||
|
"""DeepSeek aux model is set on the profile so users stop seeing the
|
||||||
|
bogus 'No auxiliary LLM provider configured' warning (#26924).
|
||||||
|
|
||||||
|
Pinned at the profile layer rather than the legacy
|
||||||
|
`_API_KEY_PROVIDER_AUX_MODELS_FALLBACK` dict — new providers are
|
||||||
|
expected to set `default_aux_model` on `ProviderProfile`, and the
|
||||||
|
fallback dict only exists for providers that predate the profiles
|
||||||
|
system.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def test_profile_advertises_deepseek_chat(self, deepseek_profile):
|
||||||
|
assert deepseek_profile.default_aux_model == "deepseek-chat"
|
||||||
|
|
||||||
|
def test_consumer_api_returns_deepseek_chat(self):
|
||||||
|
from agent.auxiliary_client import _get_aux_model_for_provider
|
||||||
|
assert _get_aux_model_for_provider("deepseek") == "deepseek-chat"
|
||||||
|
|
||||||
|
def test_consumer_api_returns_non_empty(self):
|
||||||
|
from agent.auxiliary_client import _get_aux_model_for_provider
|
||||||
|
assert _get_aux_model_for_provider("deepseek") != ""
|
||||||
|
|||||||
Reference in New Issue
Block a user