## 功能概述
实现跨协议模型级别的 Fallback 映射机制,允许在主 Provider 不可用时,
根据模型名称自动映射到其他协议的 Provider 和模型。
## 设计原理
- 原有 providerFallbackChain 只支持同协议内回退
- 新增 modelFallbackMapping 支持跨协议映射(如 Gemini → Claude)
- 优先级:同协议回退 > 跨协议模型映射
## 代码修改
- configs/config.json.example: 新增 modelFallbackMapping 配置示例
- src/provider-pool-manager.js: 实现跨协议映射选择逻辑
- src/service-manager.js: 传递 actualModel 参数
- src/common.js: 处理模型 fallback 后的模型名更新
- src/ui-manager.js: UI配置读写支持
- static/app/config-manager.js: 前端配置管理
- static/app/i18n.js: 中英文国际化文案
- static/index.html: 高级配置区新增配置项
## 配置示例
modelFallbackMapping: {
"gemini-claude-opus-4-5-thinking": {
"targetProviderType": "claude-kiro-oauth",
"targetModel": "claude-opus-4-5"
}
}
49 lines
1.6 KiB
Text
49 lines
1.6 KiB
Text
{
|
|
"REQUIRED_API_KEY": "123456",
|
|
"SERVER_PORT": 3000,
|
|
"HOST": "0.0.0.0",
|
|
"MODEL_PROVIDER": "gemini-cli-oauth",
|
|
"SYSTEM_PROMPT_FILE_PATH": "configs/input_system_prompt.txt",
|
|
"SYSTEM_PROMPT_MODE": "overwrite",
|
|
"PROMPT_LOG_BASE_NAME": "prompt_log",
|
|
"PROMPT_LOG_MODE": "none",
|
|
"REQUEST_MAX_RETRIES": 3,
|
|
"REQUEST_BASE_DELAY": 1000,
|
|
"CRON_NEAR_MINUTES": 1,
|
|
"CRON_REFRESH_TOKEN": false,
|
|
"PROVIDER_POOLS_FILE_PATH": "configs/provider_pools.json",
|
|
"MAX_ERROR_COUNT": 3,
|
|
"providerFallbackChain": {
|
|
"gemini-cli-oauth": ["gemini-antigravity"],
|
|
"gemini-antigravity": ["gemini-cli-oauth"],
|
|
"claude-kiro-oauth": ["claude-custom"],
|
|
"claude-custom": ["claude-kiro-oauth"]
|
|
},
|
|
"modelFallbackMapping": {
|
|
"gemini-claude-opus-4-5-thinking": {
|
|
"targetProviderType": "claude-kiro-oauth",
|
|
"targetModel": "claude-opus-4-5"
|
|
},
|
|
"gemini-claude-sonnet-4-5-thinking": {
|
|
"targetProviderType": "claude-kiro-oauth",
|
|
"targetModel": "claude-sonnet-4-5"
|
|
},
|
|
"gemini-claude-sonnet-4-5": {
|
|
"targetProviderType": "claude-kiro-oauth",
|
|
"targetModel": "claude-sonnet-4-5"
|
|
},
|
|
"claude-opus-4-5": {
|
|
"targetProviderType": "gemini-antigravity",
|
|
"targetModel": "gemini-claude-opus-4-5-thinking"
|
|
},
|
|
"claude-sonnet-4-5": {
|
|
"targetProviderType": "gemini-antigravity",
|
|
"targetModel": "gemini-claude-sonnet-4-5"
|
|
}
|
|
},
|
|
"PROXY_URL": "http://127.0.0.1:1089",
|
|
"PROXY_ENABLED_PROVIDERS": [
|
|
"gemini-cli-oauth",
|
|
"gemini-antigravity"
|
|
]
|
|
}
|