mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-03 01:40:21 +08:00
refactor: 自适应 RPM 从边界记忆改为多次观察确认 + 置信度衰减
将自适应 RPM 限制算法从"单次 429 即设限"重构为基于置信度的学习机制: - 收到 429 时仅记录观察(本地 RPM + 上游 header 限制值),不立即设限 - 有 header 的观察需 2 次一致确认,无 header 需 3 次一致确认 - confidence 随时间自然衰减,确保限制永远不会固化 - confidence 低于阈值时停止本地 RPM 限制,429 直接透传客户端 - 统一 get_effective_limit 入口,消除多处重复的限制获取逻辑 - Admin API 增加置信度、观察数量等诊断字段
This commit is contained in:
@@ -17,6 +17,7 @@ from src.core.logger import logger
|
||||
from src.services.health.monitor import health_monitor
|
||||
from src.services.provider.format import normalize_endpoint_signature
|
||||
from src.services.rate_limit.adaptive_reservation import get_adaptive_reservation_manager
|
||||
from src.services.rate_limit.adaptive_rpm import get_adaptive_rpm_manager
|
||||
from src.services.request.candidate import RequestCandidateService
|
||||
|
||||
|
||||
@@ -103,13 +104,7 @@ class RequestExecutor:
|
||||
current_key_rpm = 0
|
||||
|
||||
# 获取有效的 RPM 限制(自适应或固定)
|
||||
if key.rpm_limit is None:
|
||||
# 自适应模式:使用学习值,未学习时为 None(不限制,等待碰壁学习)
|
||||
effective_key_limit = (
|
||||
int(key.learned_rpm_limit) if key.learned_rpm_limit is not None else None
|
||||
)
|
||||
else:
|
||||
effective_key_limit = int(key.rpm_limit)
|
||||
effective_key_limit = get_adaptive_rpm_manager().get_effective_limit(key)
|
||||
|
||||
reservation_result = reservation_manager.calculate_reservation(
|
||||
key=key,
|
||||
|
||||
Reference in New Issue
Block a user