feat: 添加自定义Auto配置功能

新增功能:
- Auto配置管理页面 (/auto-profiles)
- 创建自定义auto模式,如auto-fast, auto-cheap
- 指定候选提供商和优先级
- 支持按优先级/随机选择策略

API:
- GET/POST /api/auto-profiles
- GET/PUT/DELETE /api/auto-profiles/<name>

改进:
- 主服务支持自定义auto模式路由
- 模型列表显示所有auto配置
This commit is contained in:
2026-04-09 17:46:47 +08:00
parent 82100cdf00
commit 3f463f2f98
9 changed files with 634 additions and 27 deletions

View File

@@ -45,6 +45,16 @@ DEFAULT_MODEL_ALIASES = {
"deepseek-v3.2": "Pro/deepseek-ai/DeepSeek-V3.2",
}
# 默认Auto配置自定义候选模型和优先级
DEFAULT_AUTO_PROFILES = {
"auto": {
"name": "默认Auto",
"description": "所有启用的提供商按优先级自动选择",
"providers": ["*"], # * 表示所有启用的提供商
"strategy": "priority", # priority | random | round-robin
}
}
def load_config():
"""加载配置"""
if CONFIG_FILE.exists():
@@ -141,6 +151,49 @@ def update_model_alias(alias, target):
save_config(config)
return aliases
def get_auto_profiles():
"""获取Auto配置列表"""
config = load_config()
return config.get("auto_profiles", DEFAULT_AUTO_PROFILES)
def get_auto_profile(profile_name):
"""获取单个Auto配置"""
profiles = get_auto_profiles()
return profiles.get(profile_name)
def add_auto_profile(profile_name, profile_data):
"""添加Auto配置"""
config = load_config()
profiles = config.get("auto_profiles", {})
profiles[profile_name] = profile_data
config["auto_profiles"] = profiles
save_config(config)
return profiles
def update_auto_profile(profile_name, profile_data):
"""更新Auto配置"""
config = load_config()
profiles = config.get("auto_profiles", {})
if profile_name in profiles:
profiles[profile_name] = {**profiles[profile_name], **profile_data}
config["auto_profiles"] = profiles
save_config(config)
return profiles[profile_name]
return None
def delete_auto_profile(profile_name):
"""删除Auto配置"""
if profile_name == "auto":
return False # 不能删除默认的auto
config = load_config()
profiles = config.get("auto_profiles", {})
if profile_name in profiles:
del profiles[profile_name]
config["auto_profiles"] = profiles
save_config(config)
return True
return False
# 初始化配置
config = load_config()
UPSTREAM_PROVIDERS = config.get("providers", DEFAULT_PROVIDERS)