diff --git a/src/middleware/auth.js b/src/middleware/auth.js index 66fa1387..cf76b0b7 100644 --- a/src/middleware/auth.js +++ b/src/middleware/auth.js @@ -9,7 +9,7 @@ const ClientValidator = require('../validators/clientValidator') const ClaudeCodeValidator = require('../validators/clients/claudeCodeValidator') const claudeRelayConfigService = require('../services/claudeRelayConfigService') const { calculateWaitTimeStats } = require('../utils/statsHelper') -const { isOpusModel } = require('../utils/modelHelper') +const { isClaudeFamilyModel } = require('../utils/modelHelper') // 工具函数 function sleep(ms) { @@ -1256,7 +1256,7 @@ const authenticateApiKey = async (req, res, next) => { const model = requestBody.model || '' // 判断是否为 Claude 模型 - if (isOpusModel(model)) { + if (isClaudeFamilyModel(model)) { const weeklyOpusCost = validation.keyData.weeklyOpusCost || 0 if (weeklyOpusCost >= weeklyOpusCostLimit) { diff --git a/src/services/apiKeyService.js b/src/services/apiKeyService.js index b51e6637..605707aa 100644 --- a/src/services/apiKeyService.js +++ b/src/services/apiKeyService.js @@ -4,7 +4,7 @@ const config = require('../../config/config') const redis = require('../models/redis') const logger = require('../utils/logger') const serviceRatesService = require('./serviceRatesService') -const { isOpusModel } = require('../utils/modelHelper') +const { isClaudeFamilyModel } = require('../utils/modelHelper') const ACCOUNT_TYPE_CONFIG = { claude: { prefix: 'claude:account:' }, @@ -1651,7 +1651,7 @@ class ApiKeyService { async recordOpusCost(keyId, ratedCost, realCost, model, accountType) { try { // 判断是否为 Claude 系列模型(包含 Bedrock 格式等) - if (!isOpusModel(model)) { + if (!isClaudeFamilyModel(model)) { return } diff --git a/src/services/weeklyClaudeCostInitService.js b/src/services/weeklyClaudeCostInitService.js index 2dfb1470..1268329f 100644 --- a/src/services/weeklyClaudeCostInitService.js +++ b/src/services/weeklyClaudeCostInitService.js @@ -2,7 +2,7 @@ const redis = require('../models/redis') const logger = require('../utils/logger') const pricingService = require('./pricingService') const serviceRatesService = require('./serviceRatesService') -const { isOpusModel } = require('../utils/modelHelper') +const { isClaudeFamilyModel } = require('../utils/modelHelper') function pad2(n) { return String(n).padStart(2, '0') @@ -151,7 +151,7 @@ class WeeklyClaudeCostInitService { } const keyId = match[1] const model = match[2] - if (!isOpusModel(model)) { + if (!isClaudeFamilyModel(model)) { continue } matchedClaudeKeys++ diff --git a/src/utils/modelHelper.js b/src/utils/modelHelper.js index 91fda718..c3fecc98 100644 --- a/src/utils/modelHelper.js +++ b/src/utils/modelHelper.js @@ -188,22 +188,6 @@ function isOpus45OrNewer(modelName) { return false } -/** - * 判断是否为 Opus 模型(任意版本) - * 匹配所有包含 "opus" 关键词的 Claude 模型 - */ -function isOpusModel(modelName) { - if (!modelName || typeof modelName !== 'string') { - return false - } - const { baseModel } = parseVendorPrefixedModel(modelName) - const m = (baseModel || '').trim().toLowerCase() - if (!m) { - return false - } - return m.includes('opus') -} - /** * 判断某个 model 名称是否属于 Anthropic Claude 系列模型。 * @@ -253,6 +237,5 @@ module.exports = { getEffectiveModel, getVendorType, isOpus45OrNewer, - isOpusModel, isClaudeFamilyModel }