feat(webui): simplify model preset settings (#5061)

This commit is contained in:
chengyongru
2026-07-24 00:55:06 +08:00
committed by GitHub
parent d993c81f08
commit aae259c790
29 changed files with 4548 additions and 1182 deletions
+7 -1
View File
@@ -56,7 +56,11 @@ def _make_provider_core(
if provider_name and not spec and p:
if not p.api_base:
raise ValueError(f"Provider '{provider_name}' requires api_base in config.")
spec = create_dynamic_spec(provider_name, thinking_style=(p.thinking_style or "") if p else "")
spec = create_dynamic_spec(
provider_name,
display_name=(p.display_name or "") if p else "",
thinking_style=(p.thinking_style or "") if p else "",
)
if spec and spec.is_transcription_only:
raise ValueError(f"Provider '{provider_name}' only supports transcription.")
backend = spec.backend if spec else "openai_compat"
@@ -239,6 +243,7 @@ def provider_signature(
fallback.reasoning_effort,
fallback.context_window_tokens,
getattr(fp, "proxy", None) if fp else None,
fp.thinking_style if fp else None,
)
provider_name = config.get_provider_name(resolved.model, preset=resolved)
@@ -259,6 +264,7 @@ def provider_signature(
resolved.reasoning_effort,
resolved.context_window_tokens,
getattr(p, "proxy", None) if p else None,
p.thinking_style if p else None,
tuple(_fallback_signature(fallback) for fallback in fallback_presets),
)
+7 -2
View File
@@ -729,7 +729,12 @@ def find_by_name(name: str) -> ProviderSpec | None:
return None
def create_dynamic_spec(name: str, *, thinking_style: str = "") -> ProviderSpec:
def create_dynamic_spec(
name: str,
*,
display_name: str = "",
thinking_style: str = "",
) -> ProviderSpec:
"""Create a dynamic ProviderSpec for custom user-defined providers."""
normalized = to_snake(name.replace("-", "_"))
strip_prefixes = tuple(dict.fromkeys((name, normalized)))
@@ -737,7 +742,7 @@ def create_dynamic_spec(name: str, *, thinking_style: str = "") -> ProviderSpec:
name=normalized,
keywords=(),
env_key="",
display_name=name.title(),
display_name=display_name or name.replace("-", " ").replace("_", " ").title(),
backend="openai_compat",
is_direct=True,
strip_model_prefixes=strip_prefixes,