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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user