LLM API 峰谷定价调度指南
DeepSeek 的峰谷 API 价格让时间成为真实成本变量。本文说明哪些 LLM 任务可以挪到低价窗口,怎样安全调度,以及路由层能做什么、不能承诺什么。
三十秒答案很直接。峰谷定价适合能等待、能重试、能事后对账的 LLM 任务。DeepSeek 现在公布的高峰窗口是 UTC 1 点到 4 点与 6 点到 10 点,谷值价格为峰值的一半,并且在 8 月 23 日北京时间规则调整后,周末全天按谷值计费。离线 eval、文档补全、embedding 回填、夜间摘要和非紧急 agent 记录可以考虑挪到低价窗口。在线聊天、用户可见 tool call、支付决策和事故处理应继续按延迟与可靠性优先。
这里最容易弄错的是职责边界。路由层可以帮你选择已配置 provider 与 model fallback。它不等于自动按时间套利,除非这个能力已经在真实产品路径里验证过。实际系统里,队列或 scheduler 决定何时执行,TheRouter 决定请求进入哪条已配置的 OpenAI-compatible route。
- 替换三个值,不是三个 SDK。在现有 OpenAI 客户端里改
api_key、base_url、model。请求与响应代码保持不变。 - 显式映射 model ID。目标供应商的 model id 几乎不会和 OpenAI 完全一致。 在业务代码之外维护一份
{ openai_id: target_id }映射。 - 验证流式格式。SSE 分片必须遵循 OpenAI 的
data: {...}+data: [DONE]契约。切生产前先跑一次流式调用。 - 检查限流响应头。部分供应商不返回
x-ratelimit-*。 在包装层 做缺省兜底,缺头不要崩。 - 留回滚路径。用 feature flag 切流;新旧 endpoint 影子并行 24 小时,再正式切换。
DeepSeek 价格发生了什么变化
DeepSeek 在 8 月 13 日的 V4-Pro GA 说明里公布了 flexible reasoning effort、原生 OpenAI Responses API 支持,以及新的峰谷价格。官方价格页现在列出 DeepSeek V4-Flash、V4-Pro 和 V4-Flash-Vision-Exp 的峰谷价格,谷值正好是峰值的一半。页面还写明,高峰时间是 UTC 1 点到 4 点与 6 点到 10 点,其余时间为谷值,并且 8 月 23 日北京时间规则调整后,周末全天按谷值计费。
这让时间变成成本变量。V4-Pro 输出 token 的峰值价格为每百万 $3.96,谷值为 $1.98。V4-Flash 输出从 $1.32 降到 $0.66。cache miss input 和 cache hit input 也遵循同样的两倍关系。
这不是整个 LLM 市场的统一规则。OpenAI 和 Anthropic 更常见的公开成本杠杆是 batch discount。OpenAI Batch API 文档说明,Batch 面向不需要即时响应的请求,成本低 50%,完成窗口为 24 小时。Anthropic Message Batches 文档说明,结果会在全部完成后或 24 小时后可取,官方价格说明里也写到 batch processing 有 50% discount。
哪些任务可以安全移动
安全候选任务通常有三个特征。结果不需要实时展示给用户,任务可以重放,输出可以用稳定 ID 对回去。
| 任务 | 是否适合挪到谷值 | 原因 |
|---|---|---|
| 离线 eval | 是 | 结果通常事后比较,不在用户会话中使用 |
| 文档补全 | 是 | 可以从队列运行,写入经过复核的 metadata |
| embedding 回填 | 是 | 量大、不急、容易 checkpoint |
| 数据集分类 | 是 | 天然适合按 row ID 对账 |
| 夜间摘要 | 是 | 本来就是计划任务 |
| 客户聊天 | 否 | 为价格窗口等待会破坏产品延迟 |
| 在线 agent tool call | 通常否 | 延迟会改变 agent 行为和用户体验 |
| 支付、安全、风控决策 | 否 | 新鲜度与审计时序比 token 折扣重要 |
一个简单判断就够用。如果请求晚六小时执行会产生客服工单,就不要移动它。
我们采用的调度方式
把谷值执行当成一条 lane,不要把它设成全局默认。一个最小生产设计通常长这样。
- 给任务分类。 增加
latency_class字段,例如realtime、deferred、batch_window。 - 给任务截止时间。 可延迟任务也要有最晚完成时间。
- 记录价格规则。 保存 provider、时区、峰值窗口、周末规则、获取日期和来源 URL。
- 用稳定 key 入队。 使用 durable job ID,避免重试时重复写入。
- 在窗口释放任务。 worker 在 provider 处于谷值且 deadline 允许等待时释放任务。
- 执行路由和 fallback。 真正的 OpenAI-compatible 请求再进入配置好的 provider 或 router path。
- 对账结果。 比较 accepted output、retry、过期任务和实际 billable token。
const deepseekOffPeak = (date: Date) => {
const utcHour = date.getUTCHours();
const isPeak = (utcHour >= 1 && utcHour < 4) || (utcHour >= 6 && utcHour < 10);
return !isPeak;
};
export function shouldRelease(job: { latencyClass: string; deadline: Date }, now = new Date()) {
if (job.latencyClass === "realtime") return true;
if (now > job.deadline) return true;
return deepseekOffPeak(now);
}
这段代码故意不完整。它没有处理北京时间周末计费、节假日、provider policy change 和 model-specific exception。生产环境应把这些规则存成数据,并从官方价格页刷新,不要把它们埋在业务代码里。
TheRouter 放在哪一层
TheRouter 可以把 OpenAI-compatible 请求路由到已配置 provider,并在真实产品路径支持时提供 provider/model routing 和 fallback。scheduler 决定任务该运行以后,这一层就有价值。
例如,一个延迟 eval worker 可以调用同一个 OpenAI-compatible base_url,在低价 lane 里选择已配置的 DeepSeek target,并保留 provider error 的 fallback chain。时间由 scheduler 负责,provider/model path 由 router 负责。
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.THEROUTER_API_KEY,
baseURL: "https://api.therouter.ai/v1",
});
const response = await client.chat.completions.create({
model: "deepseek/deepseek-v4-flash",
messages: [{ role: "user", content: "Classify this support ticket." }],
});
当价格窗口和模型质量都合适时,可以使用 DeepSeek。困难 reasoning 或 agent 任务适合看 DeepSeek V4-Pro,高吞吐任务则优先评估 DeepSeek V4-Flash。相邻的成本模式可以继续看我们的 LLM batch processing guide、LLM API cost optimization guide 和 DeepSeek V4-Pro GA pricing guide。
需要提前设计的故障
第一个故障是价格规则过期。provider 价格页会改,scheduler 如果沿用上个月的窗口,成本会安静地变高。把来源和获取时间放在规则旁边,并在长时间未刷新时告警。
第二个故障是 deadline inversion。所有延迟任务都等同一个便宜窗口,队列可能在窗口开始时打满 rate limit。DeepSeek 公布的并发限制是 V4-Pro 500,V4-Flash 2,500。把它们当作容量约束,不要当作所有排队任务都会立刻完成的承诺。
第三个故障是不安全重试。分类 row 可以重试。客户邮件发送、扣费动作和数据库 mutation 需要幂等与复核才能 replay。
第四个故障是质量漂移。把任务移到更便宜的模型或时间窗口,不应改变验收标准。该看 cost per accepted output,不只看 cost per token。
决策矩阵
| 如果你的任务是 | 建议做法 |
|---|---|
| 在线且用户可见 | 按延迟与可靠性路由,忽略峰谷折扣 |
| 离线且高吞吐 | 排队到谷值窗口,使用 row ID,对账输出 |
| 离线但有 deadline | 在 deadline 阈值前等待谷值,超时后立即运行 |
| 质量敏感 | 先保留强模型并利用谷值时间,再考虑降级模型 |
| provider 风险敏感 | 抽样备用 provider 并准备 fallback,不要把价格窗口当成可用性保障 |
最稳的省钱方式通常是组合几个杠杆。可移动的 DeepSeek 任务用谷值时间,真正 async 的大批量任务用 provider batch API,重复前缀用 prompt caching,可靠性边界交给 routing 与 fallback。
Sources
- DeepSeek V4-Pro GA release, retrieved 2026-08-22, https://api-docs.deepseek.com/news/news260813/
- DeepSeek models and pricing, retrieved 2026-08-22, https://api-docs.deepseek.com/quick_start/pricing/
- OpenAI Batch API guide, retrieved 2026-08-22, https://developers.openai.com/api/docs/guides/batch
- Anthropic batch processing docs, searched 2026-08-22, https://docs.anthropic.com/en/docs/build-with-claude/batch-processing
- Anthropic pricing docs, searched 2026-08-22, https://platform.claude.com/docs/en/about-claude/pricing