From 8093dfb11c376fff6cd5867ede9dc73839bd48ac Mon Sep 17 00:00:00 2001 From: "liangjie.wanglj" <122603020@qq.com> Date: Mon, 13 Oct 2025 10:55:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96Claude=20OAuth=20=E8=B4=A6?= =?UTF-8?q?=E6=88=B7=E7=9A=84=E6=A8=A1=E5=9E=8B=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/services/unifiedClaudeScheduler.js | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/services/unifiedClaudeScheduler.js b/src/services/unifiedClaudeScheduler.js index fc80a3b1..fcfb0453 100644 --- a/src/services/unifiedClaudeScheduler.js +++ b/src/services/unifiedClaudeScheduler.js @@ -28,8 +28,25 @@ class UnifiedClaudeScheduler { return true // 没有指定模型时,默认支持 } - // Claude OAuth 账户的 Opus 模型检查 + // Claude OAuth 账户的模型检查 if (accountType === 'claude-official') { + // 1. 首先检查是否为 Claude 官方支持的模型 + // Claude Official API 只支持 Anthropic 自己的模型,不支持第三方模型(如 deepseek-chat) + const isClaudeOfficialModel = + requestedModel.startsWith('claude-') || + requestedModel.includes('claude') || + requestedModel.includes('sonnet') || + requestedModel.includes('opus') || + requestedModel.includes('haiku') + + if (!isClaudeOfficialModel) { + logger.info( + `🚫 Claude official account ${account.name} does not support non-Claude model ${requestedModel}${context ? ` ${context}` : ''}` + ) + return false + } + + // 2. Opus 模型的订阅级别检查 if (requestedModel.toLowerCase().includes('opus')) { if (account.subscriptionInfo) { try {