mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-05-13 07:26:45 +00:00
refactor(provider): update sort orders and add new providers
This commit is contained in:
@@ -334,7 +334,7 @@ class LLMProviderManager(metaclass=Singleton):
|
||||
provider_id="anthropic",
|
||||
name="Anthropic",
|
||||
default_base_url="https://api.anthropic.com/v1",
|
||||
sort_order=25,
|
||||
sort_order=30,
|
||||
api_key_hint="填写 Anthropic API Key。",
|
||||
description="Anthropic Claude 官方端点。",
|
||||
),
|
||||
@@ -346,15 +346,7 @@ class LLMProviderManager(metaclass=Singleton):
|
||||
default_base_url="https://api.deepseek.com",
|
||||
api_key_hint="填写 DeepSeek API Key。",
|
||||
description="DeepSeek 官方平台。",
|
||||
sort_order=30,
|
||||
),
|
||||
catalog_openai_provider(
|
||||
provider_id="groq",
|
||||
name="Groq",
|
||||
default_base_url="https://api.groq.com/openai/v1",
|
||||
sort_order=35,
|
||||
api_key_hint="填写 Groq API Key。",
|
||||
description="Groq 官方 OpenAI-compatible 端点。",
|
||||
sort_order=40,
|
||||
),
|
||||
ProviderSpec(
|
||||
id="openrouter",
|
||||
@@ -364,15 +356,7 @@ class LLMProviderManager(metaclass=Singleton):
|
||||
default_base_url="https://openrouter.ai/api/v1",
|
||||
api_key_hint="填写 OpenRouter API Key。",
|
||||
description="OpenRouter 聚合模型平台。",
|
||||
sort_order=40,
|
||||
),
|
||||
catalog_openai_provider(
|
||||
provider_id="xai",
|
||||
name="xAI",
|
||||
default_base_url="https://api.x.ai/v1",
|
||||
sort_order=45,
|
||||
api_key_hint="填写 xAI API Key。",
|
||||
description="xAI 官方 OpenAI-compatible 端点。",
|
||||
sort_order=50,
|
||||
),
|
||||
ProviderSpec(
|
||||
id="github-copilot",
|
||||
@@ -391,45 +375,22 @@ class LLMProviderManager(metaclass=Singleton):
|
||||
),
|
||||
model_list_strategy="github_copilot",
|
||||
description="通过 GitHub Copilot 订阅接入。",
|
||||
sort_order=50,
|
||||
sort_order=60,
|
||||
),
|
||||
catalog_openai_provider(
|
||||
provider_id="github-models",
|
||||
name="GitHub Models",
|
||||
default_base_url="https://models.github.ai/inference",
|
||||
sort_order=55,
|
||||
sort_order=70,
|
||||
api_key_label="GitHub Token",
|
||||
api_key_hint="填写具有 GitHub Models 访问权限的 GitHub Token。",
|
||||
description="GitHub Models 推理端点。",
|
||||
),
|
||||
openai_provider(
|
||||
provider_id="siliconflow",
|
||||
name="硅基流动",
|
||||
default_base_url="https://api.siliconflow.cn/v1",
|
||||
sort_order=60,
|
||||
models_dev_provider_id="siliconflow-cn",
|
||||
base_url_presets=(
|
||||
url_preset(
|
||||
id="siliconflow-cn",
|
||||
label="中国大陆",
|
||||
value="https://api.siliconflow.cn/v1",
|
||||
models_dev_provider_id="siliconflow-cn",
|
||||
),
|
||||
url_preset(
|
||||
id="siliconflow-global",
|
||||
label="Global",
|
||||
value="https://api.siliconflow.com/v1",
|
||||
models_dev_provider_id="siliconflow",
|
||||
),
|
||||
),
|
||||
api_key_hint="填写硅基流动 API Key,可在中国大陆与 Global 端点间切换。",
|
||||
description="SiliconFlow 官方兼容端点。",
|
||||
),
|
||||
catalog_openai_provider(
|
||||
provider_id="moonshot",
|
||||
name="Moonshot / Kimi",
|
||||
default_base_url="https://api.moonshot.cn/v1",
|
||||
sort_order=62,
|
||||
sort_order=80,
|
||||
models_dev_provider_id="moonshotai-cn",
|
||||
base_url_presets=(
|
||||
url_preset(
|
||||
@@ -456,11 +417,80 @@ class LLMProviderManager(metaclass=Singleton):
|
||||
api_key_hint="填写 Moonshot / Kimi API Key,可在中国站、国际站与 Kimi for Coding 端点间切换。",
|
||||
description="Moonshot / Kimi 官方端点,支持通用 API 与 Kimi for Coding 预设。",
|
||||
),
|
||||
anthropic_provider(
|
||||
provider_id="minimax",
|
||||
name="MiniMax",
|
||||
default_base_url="https://api.minimaxi.com/anthropic/v1",
|
||||
sort_order=90,
|
||||
models_dev_provider_id="minimax-cn",
|
||||
base_url_presets=(
|
||||
url_preset(
|
||||
id="minimax-cn-general",
|
||||
label="中国内地 / 通用",
|
||||
value="https://api.minimaxi.com/anthropic/v1",
|
||||
models_dev_provider_id="minimax-cn",
|
||||
),
|
||||
url_preset(
|
||||
id="minimax-global-general",
|
||||
label="国际站 / 通用",
|
||||
value="https://api.minimax.io/anthropic/v1",
|
||||
models_dev_provider_id="minimax",
|
||||
),
|
||||
url_preset(
|
||||
id="minimax-cn-coding",
|
||||
label="中国内地 / Coding Plan",
|
||||
value="https://api.minimaxi.com/anthropic/v1",
|
||||
models_dev_provider_id="minimax-cn-coding-plan",
|
||||
),
|
||||
url_preset(
|
||||
id="minimax-global-coding",
|
||||
label="国际站 / Coding Plan",
|
||||
value="https://api.minimax.io/anthropic/v1",
|
||||
models_dev_provider_id="minimax-coding-plan",
|
||||
),
|
||||
),
|
||||
api_key_hint="填写 MiniMax API Key,可在中国内地、国际站、通用与 Coding Plan 目录间切换。",
|
||||
description="MiniMax Anthropic-compatible 端点,支持通用与 Coding Plan 目录预设。",
|
||||
),
|
||||
catalog_openai_provider(
|
||||
provider_id="xiaomi",
|
||||
name="Xiaomi",
|
||||
default_base_url="https://api.xiaomimimo.com/v1",
|
||||
sort_order=100,
|
||||
base_url_presets=(
|
||||
url_preset(
|
||||
id="xiaomi-standard",
|
||||
label="标准端点",
|
||||
value="https://api.xiaomimimo.com/v1",
|
||||
models_dev_provider_id="xiaomi",
|
||||
),
|
||||
url_preset(
|
||||
id="xiaomi-token-plan-cn",
|
||||
label="Token Plan / 中国",
|
||||
value="https://token-plan-cn.xiaomimimo.com/v1",
|
||||
models_dev_provider_id="xiaomi-token-plan-cn",
|
||||
),
|
||||
url_preset(
|
||||
id="xiaomi-token-plan-sgp",
|
||||
label="Token Plan / 新加坡",
|
||||
value="https://token-plan-sgp.xiaomimimo.com/v1",
|
||||
models_dev_provider_id="xiaomi-token-plan-sgp",
|
||||
),
|
||||
url_preset(
|
||||
id="xiaomi-token-plan-ams",
|
||||
label="Token Plan / 欧洲",
|
||||
value="https://token-plan-ams.xiaomimimo.com/v1",
|
||||
models_dev_provider_id="xiaomi-token-plan-ams",
|
||||
),
|
||||
),
|
||||
api_key_hint="填写 Xiaomi API Key,可在标准端点与各区域 Token Plan 端点间切换。",
|
||||
description="小米 Mimo 兼容端点。",
|
||||
),
|
||||
openai_provider(
|
||||
provider_id="zhipu",
|
||||
name="智谱 GLM",
|
||||
default_base_url="https://open.bigmodel.cn/api/paas/v4",
|
||||
sort_order=65,
|
||||
sort_order=110,
|
||||
models_dev_provider_id="zhipuai",
|
||||
base_url_presets=(
|
||||
url_preset(
|
||||
@@ -480,33 +510,34 @@ class LLMProviderManager(metaclass=Singleton):
|
||||
api_key_hint="填写智谱开放平台 API Key,可在 Token Plan / 通用 API 与 Coding Plan 端点间切换。",
|
||||
description="智谱开放平台国内站,支持通用 API 与 GLM Coding Plan 端点。",
|
||||
),
|
||||
catalog_openai_provider(
|
||||
provider_id="zai",
|
||||
name="Z.AI",
|
||||
default_base_url="https://api.z.ai/api/paas/v4",
|
||||
sort_order=66,
|
||||
openai_provider(
|
||||
provider_id="siliconflow",
|
||||
name="硅基流动",
|
||||
default_base_url="https://api.siliconflow.cn/v1",
|
||||
sort_order=120,
|
||||
models_dev_provider_id="siliconflow-cn",
|
||||
base_url_presets=(
|
||||
url_preset(
|
||||
id="zai-general",
|
||||
label="Token Plan / 通用 API",
|
||||
value="https://api.z.ai/api/paas/v4",
|
||||
models_dev_provider_id="zai",
|
||||
id="siliconflow-cn",
|
||||
label="中国大陆",
|
||||
value="https://api.siliconflow.cn/v1",
|
||||
models_dev_provider_id="siliconflow-cn",
|
||||
),
|
||||
url_preset(
|
||||
id="zai-coding",
|
||||
label="Coding Plan",
|
||||
value="https://api.z.ai/api/coding/paas/v4",
|
||||
models_dev_provider_id="zai-coding-plan",
|
||||
id="siliconflow-global",
|
||||
label="Global",
|
||||
value="https://api.siliconflow.com/v1",
|
||||
models_dev_provider_id="siliconflow",
|
||||
),
|
||||
),
|
||||
api_key_hint="填写 Z.AI API Key,可在通用 API 与 Coding Plan 端点间切换。",
|
||||
description="Z.AI 官方端点。",
|
||||
api_key_hint="填写硅基流动 API Key,可在中国大陆与 Global 端点间切换。",
|
||||
description="SiliconFlow 官方兼容端点。",
|
||||
),
|
||||
openai_provider(
|
||||
provider_id="alibaba",
|
||||
name="阿里云百炼",
|
||||
default_base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
|
||||
sort_order=70,
|
||||
sort_order=130,
|
||||
models_dev_provider_id="alibaba-cn",
|
||||
base_url_presets=(
|
||||
url_preset(
|
||||
@@ -559,7 +590,7 @@ class LLMProviderManager(metaclass=Singleton):
|
||||
api_key_hint="填写百度千帆 API Key,可在通用 API 与 Coding Plan 端点间切换。通用 API 请使用 https://qianfan.baidubce.com/v2;Coding Plan 请切换到 https://qianfan.baidubce.com/v2/coding。",
|
||||
supports_model_refresh=False,
|
||||
description="百度千帆 OpenAI-compatible V2 端点,支持通用 API 与 Coding Plan 地址预设。",
|
||||
sort_order=72,
|
||||
sort_order=140,
|
||||
),
|
||||
ProviderSpec(
|
||||
id="jdcloud",
|
||||
@@ -581,7 +612,7 @@ class LLMProviderManager(metaclass=Singleton):
|
||||
api_key_hint="填写京东云 JoyBuilder API Key。通用 API 请使用 https://modelservice.jdcloud.com/v1;Coding Plan 请切换到 https://modelservice.jdcloud.com/coding/openai/v1,不要把 /v1 当成 Coding Plan 地址。",
|
||||
supports_model_refresh=False,
|
||||
description="京东云 JoyBuilder OpenAI-compatible 端点,支持通用 API 与 Coding Plan 地址预设。",
|
||||
sort_order=74,
|
||||
sort_order=150,
|
||||
),
|
||||
ProviderSpec(
|
||||
id="volcengine",
|
||||
@@ -590,7 +621,7 @@ class LLMProviderManager(metaclass=Singleton):
|
||||
default_base_url="https://ark.cn-beijing.volces.com/api/v3",
|
||||
api_key_hint="填写火山方舟 API Key。",
|
||||
description="字节跳动火山引擎兼容端点。",
|
||||
sort_order=80,
|
||||
sort_order=160,
|
||||
),
|
||||
ProviderSpec(
|
||||
id="tencent",
|
||||
@@ -615,7 +646,7 @@ class LLMProviderManager(metaclass=Singleton):
|
||||
api_key_hint="填写 Tencent API Key,可在 TokenHub 与 Coding Plan 端点间切换。",
|
||||
model_list_strategy="models_dev_only",
|
||||
description="腾讯兼容端点。",
|
||||
sort_order=90,
|
||||
sort_order=170,
|
||||
),
|
||||
ProviderSpec(
|
||||
id="ollama-cloud",
|
||||
@@ -625,7 +656,7 @@ class LLMProviderManager(metaclass=Singleton):
|
||||
default_base_url="https://ollama.com/v1",
|
||||
api_key_hint="填写 Ollama Cloud API Key。",
|
||||
description="Ollama Cloud 云端模型服务。",
|
||||
sort_order=100,
|
||||
sort_order=180,
|
||||
),
|
||||
ProviderSpec(
|
||||
id="nvidia",
|
||||
@@ -635,13 +666,13 @@ class LLMProviderManager(metaclass=Singleton):
|
||||
default_base_url="https://integrate.api.nvidia.com/v1",
|
||||
api_key_hint="填写 Nvidia API Key。",
|
||||
description="Nvidia 集成推理平台。",
|
||||
sort_order=110,
|
||||
sort_order=190,
|
||||
),
|
||||
catalog_openai_provider(
|
||||
provider_id="opencode",
|
||||
name="OpenCode",
|
||||
default_base_url="https://opencode.ai/zen/v1",
|
||||
sort_order=115,
|
||||
sort_order=200,
|
||||
base_url_presets=(
|
||||
url_preset(
|
||||
id="opencode-zen",
|
||||
@@ -659,80 +690,49 @@ class LLMProviderManager(metaclass=Singleton):
|
||||
api_key_hint="填写 OpenCode API Key,可在 Zen 与 Go 端点间切换。",
|
||||
description="OpenCode Zen / Go 端点。",
|
||||
),
|
||||
anthropic_provider(
|
||||
provider_id="minimax",
|
||||
name="MiniMax",
|
||||
default_base_url="https://api.minimaxi.com/anthropic/v1",
|
||||
sort_order=120,
|
||||
models_dev_provider_id="minimax-cn",
|
||||
base_url_presets=(
|
||||
url_preset(
|
||||
id="minimax-cn-general",
|
||||
label="中国内地 / 通用",
|
||||
value="https://api.minimaxi.com/anthropic/v1",
|
||||
models_dev_provider_id="minimax-cn",
|
||||
),
|
||||
url_preset(
|
||||
id="minimax-global-general",
|
||||
label="国际站 / 通用",
|
||||
value="https://api.minimax.io/anthropic/v1",
|
||||
models_dev_provider_id="minimax",
|
||||
),
|
||||
url_preset(
|
||||
id="minimax-cn-coding",
|
||||
label="中国内地 / Coding Plan",
|
||||
value="https://api.minimaxi.com/anthropic/v1",
|
||||
models_dev_provider_id="minimax-cn-coding-plan",
|
||||
),
|
||||
url_preset(
|
||||
id="minimax-global-coding",
|
||||
label="国际站 / Coding Plan",
|
||||
value="https://api.minimax.io/anthropic/v1",
|
||||
models_dev_provider_id="minimax-coding-plan",
|
||||
),
|
||||
),
|
||||
api_key_hint="填写 MiniMax API Key,可在中国内地、国际站、通用与 Coding Plan 目录间切换。",
|
||||
description="MiniMax Anthropic-compatible 端点,支持通用与 Coding Plan 目录预设。",
|
||||
catalog_openai_provider(
|
||||
provider_id="groq",
|
||||
name="Groq",
|
||||
default_base_url="https://api.groq.com/openai/v1",
|
||||
sort_order=210,
|
||||
api_key_hint="填写 Groq API Key。",
|
||||
description="Groq 官方 OpenAI-compatible 端点。",
|
||||
),
|
||||
catalog_openai_provider(
|
||||
provider_id="xiaomi",
|
||||
name="Xiaomi",
|
||||
default_base_url="https://api.xiaomimimo.com/v1",
|
||||
sort_order=130,
|
||||
provider_id="xai",
|
||||
name="xAI",
|
||||
default_base_url="https://api.x.ai/v1",
|
||||
sort_order=220,
|
||||
api_key_hint="填写 xAI API Key。",
|
||||
description="xAI 官方 OpenAI-compatible 端点。",
|
||||
),
|
||||
catalog_openai_provider(
|
||||
provider_id="zai",
|
||||
name="Z.AI",
|
||||
default_base_url="https://api.z.ai/api/paas/v4",
|
||||
sort_order=230,
|
||||
base_url_presets=(
|
||||
url_preset(
|
||||
id="xiaomi-standard",
|
||||
label="标准端点",
|
||||
value="https://api.xiaomimimo.com/v1",
|
||||
models_dev_provider_id="xiaomi",
|
||||
id="zai-general",
|
||||
label="Token Plan / 通用 API",
|
||||
value="https://api.z.ai/api/paas/v4",
|
||||
models_dev_provider_id="zai",
|
||||
),
|
||||
url_preset(
|
||||
id="xiaomi-token-plan-cn",
|
||||
label="Token Plan / 中国",
|
||||
value="https://token-plan-cn.xiaomimimo.com/v1",
|
||||
models_dev_provider_id="xiaomi-token-plan-cn",
|
||||
),
|
||||
url_preset(
|
||||
id="xiaomi-token-plan-sgp",
|
||||
label="Token Plan / 新加坡",
|
||||
value="https://token-plan-sgp.xiaomimimo.com/v1",
|
||||
models_dev_provider_id="xiaomi-token-plan-sgp",
|
||||
),
|
||||
url_preset(
|
||||
id="xiaomi-token-plan-ams",
|
||||
label="Token Plan / 欧洲",
|
||||
value="https://token-plan-ams.xiaomimimo.com/v1",
|
||||
models_dev_provider_id="xiaomi-token-plan-ams",
|
||||
id="zai-coding",
|
||||
label="Coding Plan",
|
||||
value="https://api.z.ai/api/coding/paas/v4",
|
||||
models_dev_provider_id="zai-coding-plan",
|
||||
),
|
||||
),
|
||||
api_key_hint="填写 Xiaomi API Key,可在标准端点与各区域 Token Plan 端点间切换。",
|
||||
description="小米 Mimo 兼容端点。",
|
||||
api_key_hint="填写 Z.AI API Key,可在通用 API 与 Coding Plan 端点间切换。",
|
||||
description="Z.AI 官方端点。",
|
||||
),
|
||||
]
|
||||
|
||||
for sort_order, provider_entry in enumerate(
|
||||
catalog_openai_providers,
|
||||
start=200,
|
||||
start=1000,
|
||||
):
|
||||
provider_id = provider_entry["id"]
|
||||
overrides = provider_patches.get(provider_id, {})
|
||||
|
||||
Reference in New Issue
Block a user