概述
Shannon 提供全面的成本控制功能,以防止意外的 LLM 费用并优化支出。通过内置的预算执行和智能路由,与简单实现相比,通常可实现 显著的成本降低(60–90%)(取决于工作负载)。设置预算
预算在平台级别配置(不是通过 REST 每个请求)。在.env 中使用环境变量:
Shannon 在执行过程中强制预算限制。当达到限制时,系统会停止进一步支出,并根据上下文返回最佳可用结果或错误。
模型层级
Shannon 根据能力和成本将模型分为不同层级:显式层级偏好
通过环境变量设置首选的默认层级:智能路由器
Shannon 的学习路由器自动选择能够处理每个任务的最便宜模型。工作原理
- 任务分析:分析复杂度和所需能力
- 模型选择:从最小可行模型开始
- 质量检查:验证输出质量
- 学习:记住成功的模型-任务配对
成本节省
监控路由器决策
使用仪表板或 SDK 状态查看成本:响应缓存
Shannon 缓存 LLM 响应以消除冗余 API 调用:缓存策略
- 键:
(messages + model + parameters)的 SHA256 哈希 - TTL:可配置(通常约 1 小时,通过 Redis TTL)
- 存储:内存 LRU + 可选 Redis 用于分布式缓存
- 命中率:生产工作负载通常为 30-50%
缓存优势
监控缓存性能
提供商速率限制
Shannon 自动遵守提供商速率限制:配置的限制
来自config/models.yaml:
自动节流
当接近限制时:- 对请求进行排队
- 随时间分散负载
- 如果可用,回退到替代提供商
成本监控
跟踪每个任务的支出
聚合指标
Shannon 通过指标管道跟踪累计成本:- 按天/周/月的总支出
- 按用户/团队的成本
- 按认知模式的成本
- 令牌使用趋势
最佳实践
1. 始终设置预算
永远不要在没有预算限制的情况下运行生产任务:2. 尽可能使用简单模式
复杂模式成本更高:3. 利用缓存
对于重复查询,使用一致的措辞以最大化缓存命中:4. 监控和优化
定期查看成本指标:5. 首先使用较小的模型
让智能路由器证明何时需要更大的模型:成本优化清单
优化清单
优化清单
- 在所有任务上设置
max_cost_usd - 对直接查询使用
# 自动选择模式 - 启用响应缓存(默认:已启用)
- 在适当时使用
model_tier="small" - 标准化查询措辞以实现缓存命中
- 在仪表板中监控成本指标
- 设置预算警报(通过 Prometheus)
- 审查和优化提示模板
- 使用会话上下文减少令牌使用
- 启用学习路由器(默认:已启用)
示例:成本优化工作流
下一步
流式传输事件
实时任务监控
配置
高级成本设置
API 概述
端点和用法
监控
成本监控 UI