mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-07-14 00:44:19 +08:00
feat(agent): merge MiniMax coding presets
This commit is contained in:
@@ -1214,9 +1214,15 @@ def _llm_provider_defaults(
|
||||
default_base_url = str(provider_meta.get("default_base_url") or "").strip()
|
||||
if default_base_url:
|
||||
defaults["base_url"] = default_base_url
|
||||
base_url_presets = provider_meta.get("base_url_presets") or []
|
||||
if isinstance(base_url_presets, list) and base_url_presets:
|
||||
preset_id = str((base_url_presets[0] or {}).get("id") or "").strip()
|
||||
if preset_id:
|
||||
defaults["base_url_preset"] = preset_id
|
||||
|
||||
defaults.setdefault("model", _env_default("LLM_MODEL", ""))
|
||||
defaults.setdefault("base_url", _env_default("LLM_BASE_URL", ""))
|
||||
defaults.setdefault("base_url_preset", _env_default("LLM_BASE_URL_PRESET", ""))
|
||||
return defaults
|
||||
|
||||
|
||||
@@ -1245,11 +1251,13 @@ def _load_llm_models_inner(payload: dict[str, Any]) -> list[dict[str, Any]]:
|
||||
provider_module = _load_llm_provider_module()
|
||||
api_key = str(payload.get("api_key") or "").strip() or None
|
||||
base_url = str(payload.get("base_url") or "").strip() or None
|
||||
base_url_preset = str(payload.get("base_url_preset") or "").strip() or None
|
||||
models = asyncio.run(
|
||||
provider_module.LLMProviderManager().list_models(
|
||||
provider_id=provider,
|
||||
api_key=api_key,
|
||||
base_url=base_url,
|
||||
base_url_preset_id=base_url_preset,
|
||||
force_refresh=False,
|
||||
)
|
||||
)
|
||||
@@ -1261,12 +1269,14 @@ def _load_llm_models(
|
||||
provider: str,
|
||||
api_key: Optional[str],
|
||||
base_url: Optional[str],
|
||||
base_url_preset: Optional[str],
|
||||
runtime_python: Optional[Path] = None,
|
||||
) -> list[dict[str, Any]]:
|
||||
payload = {
|
||||
"provider": str(provider or "").strip().lower(),
|
||||
"api_key": str(api_key or "").strip(),
|
||||
"base_url": str(base_url or "").strip(),
|
||||
"base_url_preset": str(base_url_preset or "").strip(),
|
||||
}
|
||||
try:
|
||||
return _load_llm_models_inner(payload)
|
||||
@@ -1795,6 +1805,9 @@ def _collect_agent_config(
|
||||
defaults = _llm_provider_defaults(provider, provider_definitions)
|
||||
current_model = _env_default("LLM_MODEL", defaults["model"])
|
||||
current_base_url = _env_default("LLM_BASE_URL", defaults["base_url"])
|
||||
current_base_url_preset = _env_default(
|
||||
"LLM_BASE_URL_PRESET", defaults.get("base_url_preset", "")
|
||||
)
|
||||
api_key_label = str(provider_meta.get("api_key_label") or "API Key").strip() or "API Key"
|
||||
api_key_hint = str(provider_meta.get("api_key_hint") or "").strip()
|
||||
requires_base_url = bool(provider_meta.get("requires_base_url"))
|
||||
@@ -1838,8 +1851,41 @@ def _collect_agent_config(
|
||||
"是否启用图片输入支持",
|
||||
default=_env_bool("LLM_SUPPORT_IMAGE_INPUT", True),
|
||||
),
|
||||
"LLM_BASE_URL_PRESET": current_base_url_preset,
|
||||
}
|
||||
|
||||
base_url_presets = provider_meta.get("base_url_presets") or []
|
||||
if isinstance(base_url_presets, list):
|
||||
duplicate_value_presets = []
|
||||
normalized_current_base_url = current_base_url.strip()
|
||||
for item in base_url_presets:
|
||||
if not isinstance(item, dict):
|
||||
continue
|
||||
preset_value = str(item.get("value") or "").strip()
|
||||
preset_id = str(item.get("id") or "").strip()
|
||||
if not preset_id or preset_value != normalized_current_base_url:
|
||||
continue
|
||||
duplicate_value_presets.append(item)
|
||||
|
||||
if len(duplicate_value_presets) > 1:
|
||||
choices: dict[str, str] = {}
|
||||
default_preset = current_base_url_preset
|
||||
if not default_preset or default_preset not in {
|
||||
str(item.get("id") or "").strip() for item in duplicate_value_presets
|
||||
}:
|
||||
default_preset = str((duplicate_value_presets[0] or {}).get("id") or "").strip()
|
||||
for item in duplicate_value_presets:
|
||||
preset_id = str(item.get("id") or "").strip()
|
||||
preset_label = str(item.get("label") or preset_id).strip()
|
||||
if preset_id:
|
||||
choices[preset_id] = preset_label
|
||||
if choices:
|
||||
config["LLM_BASE_URL_PRESET"] = _prompt_choice(
|
||||
"LLM Base URL 预设",
|
||||
choices=choices,
|
||||
default=default_preset,
|
||||
)
|
||||
|
||||
config["LLM_BASE_URL"] = _prompt_text(
|
||||
base_url_label,
|
||||
default=current_base_url,
|
||||
@@ -1849,6 +1895,7 @@ def _collect_agent_config(
|
||||
provider=provider,
|
||||
api_key=config["LLM_API_KEY"],
|
||||
base_url=config["LLM_BASE_URL"],
|
||||
base_url_preset=config["LLM_BASE_URL_PRESET"],
|
||||
runtime_python=runtime_python,
|
||||
)
|
||||
config["LLM_MODEL"] = _prompt_model_choice(models, default=current_model)
|
||||
|
||||
Reference in New Issue
Block a user