Support Anthropic-routed Claude models
This commit is contained in:
+2
-17
@@ -50,7 +50,8 @@ from src.token_budget import calculate_token_budget
|
||||
STATIC_DIR = Path(__file__).resolve().parents[2] / 'frontend' / 'legacy-static'
|
||||
|
||||
VALIDATED_CHAT_MODEL_PROVIDERS = {
|
||||
# 这些 provider 已用 owned_by/id 形式实际请求 /chat/completions 验证通过。
|
||||
# 这些 provider 已验证可以在当前 WebUI 中使用。
|
||||
# 部分模型族会在客户端按模型 id 切换到专用兼容路由。
|
||||
'azure_openai',
|
||||
'hunyuan',
|
||||
'minimax',
|
||||
@@ -65,11 +66,6 @@ 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 = {
|
||||
@@ -1552,8 +1548,6 @@ 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}
|
||||
@@ -1586,15 +1580,6 @@ 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 = (
|
||||
|
||||
Reference in New Issue
Block a user