fix: dynamic 限额缺失时 fallback 保守兜底(FALLBACK_LIMIT 90万)
免费模型余额常态 <2M(昨日采多少返多少),stable_limit 缺失窗口 (首次同步前/新增模型/TTL 过期)此前 fallback 裸奔到静态 2M, 余额不足的模型会被烧穿扣费。改为 min(static, FALLBACK_LIMIT=90万)。
This commit is contained in:
+11
-3
@@ -95,6 +95,11 @@ SYNC_INTERVAL = 60
|
||||
CHECK_INTERVAL = 10
|
||||
THRESHOLD = 300000
|
||||
|
||||
# stable_limit 缺失时(首次同步前/新增模型/TTL 过期)的保守兜底限额。
|
||||
# 免费模型余额常态 < 2M(昨日采多少返多少),若 fallback 裸奔到采集上限 2M,
|
||||
# 余额不足的模型会被烧穿扣费。宁可短时收紧,不可裸奔。
|
||||
FALLBACK_LIMIT = int(os.getenv("FALLBACK_LIMIT", "900000"))
|
||||
|
||||
# Redis Config
|
||||
REDIS_HOST = os.getenv(
|
||||
"REDIS_HOST", "redis"
|
||||
@@ -437,9 +442,12 @@ def get_effective_limit(clean_model, api_base, current_usage=None):
|
||||
except (ValueError, TypeError):
|
||||
effective_limit = calculate_effective_limit(static_limit, None)
|
||||
else:
|
||||
# Fallback: If daemon hasn't calculated stable limit yet, use old logic?
|
||||
# Or just use static. Safer to wait for daemon.
|
||||
effective_limit = calculate_effective_limit(static_limit, None)
|
||||
# Fallback: 如果 daemon 尚未计算 stable limit(首次同步前/新增模型/TTL 过期),
|
||||
# 用保守兜底(FALLBACK_LIMIT),绝不裸奔到采集上限 —— 免费模型余额常态 < 2M,
|
||||
# 裸奔 2M 会把余额不足的模型烧穿扣费。
|
||||
fallback = float(static_limit) if static_limit is not None else float(FALLBACK_LIMIT)
|
||||
fallback = min(fallback, float(FALLBACK_LIMIT))
|
||||
effective_limit = calculate_effective_limit(fallback, None)
|
||||
|
||||
# Legacy fallback (Optional: Enable if you want immediate loose limits before first sync)
|
||||
# dynamic_remaining = redis_client.get(f"limit:dynamic:volcengine:remaining:{clean_model}")
|
||||
|
||||
Reference in New Issue
Block a user