fix(deepseek): drop retired models from picker and provider defaults
Stop offering deepseek-chat/reasoner in the static catalog and point fallback/aux defaults at the permanent v4 IDs. Keep retired aliases in a detection-only map so /model deepseek-chat still resolves to deepseek.
This commit is contained in:
+18
-6
@@ -390,8 +390,6 @@ _PROVIDER_MODELS: dict[str, list[str]] = {
|
||||
"deepseek": [
|
||||
"deepseek-v4-pro",
|
||||
"deepseek-v4-flash",
|
||||
"deepseek-chat",
|
||||
"deepseek-reasoner",
|
||||
],
|
||||
"xiaomi": [
|
||||
"mimo-v2.5-pro",
|
||||
@@ -2085,11 +2083,25 @@ def _provider_keys(provider: str) -> set[str]:
|
||||
return {k for k in (key, normalized) if k}
|
||||
|
||||
|
||||
# Retired model IDs kept for /model auto-detect only — not shown in pickers.
|
||||
# DeepSeek cut these off on 2026-07-24; model_normalize remaps them on the wire.
|
||||
_PROVIDER_RETIRED_ALIASES: dict[str, tuple[str, ...]] = {
|
||||
"deepseek": ("deepseek-chat", "deepseek-reasoner"),
|
||||
}
|
||||
|
||||
|
||||
def _provider_catalog_names(provider: str) -> tuple[str, ...]:
|
||||
"""Active picker models plus retired aliases recognized for detection."""
|
||||
active = tuple(_PROVIDER_MODELS.get(provider, []))
|
||||
retired = _PROVIDER_RETIRED_ALIASES.get(provider, ())
|
||||
return active + retired
|
||||
|
||||
|
||||
def _model_in_provider_catalog(name_lower: str, providers: set[str]) -> bool:
|
||||
return any(
|
||||
name_lower == model.lower()
|
||||
for provider in providers
|
||||
for model in _PROVIDER_MODELS.get(provider, [])
|
||||
for model in _provider_catalog_names(provider)
|
||||
)
|
||||
|
||||
|
||||
@@ -2235,7 +2247,7 @@ def detect_static_provider_for_model(
|
||||
current_provider == "custom"
|
||||
or current_provider.startswith("custom:")
|
||||
)
|
||||
for pid, models in _PROVIDER_MODELS.items():
|
||||
for pid in _PROVIDER_MODELS:
|
||||
if (
|
||||
pid in current_keys
|
||||
or pid in _AGGREGATOR_PROVIDERS
|
||||
@@ -2244,7 +2256,7 @@ def detect_static_provider_for_model(
|
||||
continue
|
||||
if _is_custom_current:
|
||||
continue
|
||||
if any(name_lower == m.lower() for m in models):
|
||||
if any(name_lower == m.lower() for m in _provider_catalog_names(pid)):
|
||||
return (pid, name)
|
||||
|
||||
# Borrow-list providers (re-expose other vendors' models) only after every
|
||||
@@ -2252,7 +2264,7 @@ def detect_static_provider_for_model(
|
||||
for pid in _BORROWED_MODEL_PROVIDERS:
|
||||
if pid in current_keys:
|
||||
continue
|
||||
if any(name_lower == m.lower() for m in _PROVIDER_MODELS.get(pid, [])):
|
||||
if any(name_lower == m.lower() for m in _provider_catalog_names(pid)):
|
||||
return (pid, name)
|
||||
|
||||
return None
|
||||
|
||||
Reference in New Issue
Block a user