| /** | |
| * 模型分组工具模块 | |
| * 统一管理模型到组的映射逻辑,供 quota_manager 和 token_cooldown_manager 共用 | |
| */ | |
| /** | |
| * 支持的模型组列表 | |
| * - claude: Claude 系列模型 | |
| * - gemini: Gemini 系列模型 | |
| * - banana: gemini-3.1-flash-image 图片生成模型 | |
| * - other: 其他模型 | |
| */ | |
| export const MODEL_GROUPS = ['claude', 'gemini', 'banana', 'other']; | |
| /** | |
| * 获取模型所属的组 key | |
| * @param {string} modelId - 模型 ID | |
| * @returns {string} 组 key (claude | gemini | banana | other) | |
| */ | |
| export function getGroupKey(modelId) { | |
| if (!modelId) return 'other'; | |
| const lower = modelId.toLowerCase(); | |
| if (lower.includes('claude')) return 'claude'; | |
| // banana 必须在 gemini 之前检查,因为它包含 'gemini' 字符串 | |
| if (lower.includes('gemini-3.1-flash-image')) return 'banana'; | |
| if (lower.includes('gemini') || lower.includes('publishers/google/')) return 'gemini'; | |
| return 'other'; | |
| } | |