限流与速率控制
Rate Limiting & Throttling
全局令牌桶限流器按domain分组控制API调用频率,防止触发服务商速率限制
子问题
1.多域独立限流
2.令牌桶算法实现
3.限流指标聚合
4.查询去重
5.同步/异步双模式限流适配
6.限流指标与成本追踪的聚合联动
7.连续回滚上限熔断保护
各项目的解法1 solutions
Signals
横向对比
| 维度 | vibe-blog |
|---|---|
| 限流算法 | 最小间隔(min_interval)时间窗口,非令牌桶 |
| 域隔离 | 5 域独立配置(llm/serper/sogou/general/arxiv),per-domain Lock |
| 注入方式 | LLM 层透明 hook + 搜索层手动调用双模式 |
| 同步异步 | threading.Lock 同步 + asyncio.Lock 异步双模式 |
| 查询去重 | Agent 隔离 LRU 缓存 + 连续回滚上限熔断 |
| 指标暴露 | RateLimitMetrics 内嵌 + CostTracker 聚合输出 |
| 配置方式 | 环境变量驱动,运行时可 configure() 动态调整 |
最佳实践
1.按API域名分组独立限流
2.在LLM调用前自动注入限流钩子
3.用 time.monotonic 替代 time.time 避免时钟漂移
4.限流 hook 用延迟导入+静默 ImportError 实现松耦合
5.将限流等待指标纳入成本报告实现可观测闭环