Filter unsupported listed chat models

This commit is contained in:
武阳
2026-05-08 12:06:04 +08:00
parent 12abc57fa7
commit 02a7ea23dd
2 changed files with 29 additions and 0 deletions
+16
View File
@@ -65,6 +65,11 @@ VALIDATED_CHAT_MODEL_PROVIDERS = {
'zhipuai',
}
UNSUPPORTED_CHAT_MODEL_PREFIXES: tuple[tuple[str, str], ...] = (
# /models 会返回这批 ppio 模型,但 /chat/completions 实测不支持。
('ppio', 'pa/claude-'),
)
# WebUI 的快速入口只展示可以通过对话输入框安全执行的 slash command。
# 这些命令仍然保留在终端 `/` 列表里,但不适合作为 WebUI 快捷项。
WEBUI_HIDDEN_SLASH_COMMANDS = {
@@ -1547,6 +1552,8 @@ def _normalize_model_list(payload: Any) -> list[dict[str, str]]:
)
if provider and provider not in VALIDATED_CHAT_MODEL_PROVIDERS:
continue
if _is_known_unsupported_chat_model(provider, model_id):
continue
normalized = _normalize_model_id(model_id, provider=provider)
if normalized is not None:
entry = {'id': normalized}
@@ -1579,6 +1586,15 @@ def _normalize_model_id(model: str, *, provider: str | None = None) -> str | Non
return value
def _is_known_unsupported_chat_model(provider: str | None, model_id: str) -> bool:
provider_key = (provider or '').strip().lower()
model_key = model_id.strip().lower()
return any(
provider_key == blocked_provider and model_key.startswith(blocked_prefix)
for blocked_provider, blocked_prefix in UNSUPPORTED_CHAT_MODEL_PREFIXES
)
def _is_llm_model(model_id: str, model_type: str | None) -> bool:
lower = model_id.strip().lower()
blocked_fragments = (