Skip to main content

概述

Shannon 提供全面的成本控制功能,以防止意外的 LLM 费用并优化支出。通过内置的预算执行和智能路由,与简单实现相比,通常可实现 显著的成本降低(60–90%)(取决于工作负载)。

设置预算

预算在平台级别配置(不是通过 REST 每个请求)。在 .env 中使用环境变量:
Shannon 在执行过程中强制预算限制。当达到限制时,系统会停止进一步支出,并根据上下文返回最佳可用结果或错误。

模型层级

Shannon 根据能力和成本将模型分为不同层级:

显式层级偏好

通过环境变量设置首选的默认层级:

智能路由器

Shannon 的学习路由器自动选择能够处理每个任务的最便宜模型。

工作原理

  1. 任务分析:分析复杂度和所需能力
  2. 模型选择:从最小可行模型开始
  3. 质量检查:验证输出质量
  4. 学习:记住成功的模型-任务配对

成本节省

监控路由器决策

使用仪表板或 SDK 状态查看成本:

响应缓存

Shannon 缓存 LLM 响应以消除冗余 API 调用:

缓存策略

  • (messages + model + parameters) 的 SHA256 哈希
  • TTL:可配置(通常约 1 小时,通过 Redis TTL)
  • 存储:内存 LRU + 可选 Redis 用于分布式缓存
  • 命中率:生产工作负载通常为 30-50%

缓存优势

监控缓存性能

提供商速率限制

Shannon 自动遵守提供商速率限制:

配置的限制

来自 config/models.yaml

自动节流

当接近限制时:
  1. 对请求进行排队
  2. 随时间分散负载
  3. 如果可用,回退到替代提供商

成本监控

跟踪每个任务的支出

聚合指标

Shannon 通过指标管道跟踪累计成本:
  • 按天/周/月的总支出
  • 按用户/团队的成本
  • 按认知模式的成本
  • 令牌使用趋势
部署 Prometheus/Grafana 后,可通过监控面板可视化这些指标。桌面应用的运行视图也可以帮助检查单个任务的成本。

最佳实践

1. 始终设置预算

永远不要在没有预算限制的情况下运行生产任务:

2. 尽可能使用简单模式

复杂模式成本更高:

3. 利用缓存

对于重复查询,使用一致的措辞以最大化缓存命中:

4. 监控和优化

定期查看成本指标:

5. 首先使用较小的模型

让智能路由器证明何时需要更大的模型:

成本优化清单

  • 在所有任务上设置 max_cost_usd
  • 对直接查询使用 # 自动选择模式
  • 启用响应缓存(默认:已启用)
  • 在适当时使用 model_tier="small"
  • 标准化查询措辞以实现缓存命中
  • 在仪表板中监控成本指标
  • 设置预算警报(通过 Prometheus)
  • 审查和优化提示模板
  • 使用会话上下文减少令牌使用
  • 启用学习路由器(默认:已启用)

示例:成本优化工作流

下一步

流式传输事件

实时任务监控

配置

高级成本设置

API 概述

端点和用法

监控

成本监控 UI