mirror of
https://github.com/Wei-Shaw/claude-relay-service.git
synced 2026-04-19 12:18:38 +00:00
fix: 修复 Claude 周额度统计范围,从仅 Opus 扩展到全部 Claude 模型
- 将 isOpusModel 替换为 isClaudeFamilyModel,使周额度限制覆盖所有 Claude 系列模型 - 前端 ApiKeysView 新增 Claude 周限制进度条显示 - 修复"无任何限制"提示在有周限制时仍然显示的问题 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -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) {
|
||||
@@ -1278,7 +1278,7 @@ const authenticateApiKey = async (req, res, next) => {
|
||||
return res.status(402).json({
|
||||
error: {
|
||||
type: 'insufficient_quota',
|
||||
message: `已达到 Opus 模型周费用限制 ($${weeklyOpusCostLimit})`,
|
||||
message: `已达到 Claude 模型周费用限制 ($${weeklyOpusCostLimit})`,
|
||||
code: 'weekly_opus_cost_limit_exceeded'
|
||||
},
|
||||
currentCost: weeklyOpusCost,
|
||||
|
||||
@@ -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:' },
|
||||
@@ -1649,7 +1649,7 @@ class ApiKeyService {
|
||||
async recordOpusCost(keyId, ratedCost, realCost, model, accountType) {
|
||||
try {
|
||||
// 判断是否为 Claude 系列模型(包含 Bedrock 格式等)
|
||||
if (!isOpusModel(model)) {
|
||||
if (!isClaudeFamilyModel(model)) {
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -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++
|
||||
|
||||
Reference in New Issue
Block a user