2026 年 7 月中旬,DeepSeek V4 正式版上线,带来了一个重要的变化:峰谷计费。 北京时间的峰时(9-12、14-18)价格翻倍,谷时不变。
这意味着:你的 AI 账单不只取决于"用了多少",还取决于"什么时候用"。 这篇文章不说概念,直接上实操------怎么做任务调度、怎么利用缓存、怎么选模型,把月费砍到原来的一半。
一、DeepSeek V4 定价全貌
1.1 新价格体系
| 模型 | 时段 | 输入(/M tokens) | 输出(/M tokens) |
|---|---|---|---|
| V4 Flash | 峰时 | $0.28 | $0.56 |
| V4 Flash | 谷时 | $0.14 | $0.28 |
| V4 Pro | 峰时 | $3.48 | $6.96 |
| V4 Pro | 谷时 | $1.74 | $3.48 |
| 缓存命中 | 任何时段 | $0.003625 | --- |
峰时:北京时间 9:00-12:00、14:00-18:00(工作日) 谷时:其他所有时间(含周末全天、节假日)
1.2 峰时和谷时差距有多大
| 场景 | 峰时 | 谷时 | 倍数 |
|---|---|---|---|
| Flash 输入 | $0.28 | $0.14 | 2x |
| Flash 输出 | $0.56 | $0.28 | 2x |
| Pro 输入 | $3.48 | $1.74 | 2x |
| Pro 输出 | $6.96 | $3.48 | 2x |
| 缓存命中 | $0.0036 | $0.0036 | 1x(不翻倍) |
最关键的发现:缓存命中的价格在峰谷时段不变。 这意味着,把系统提示词和常用上下文缓存起来,是抵抗峰时涨价的最有效手段。
二、三层省钱策略
第一层:时区套利(最简单,立竿见影)
北京峰时正好是北美深夜、欧洲凌晨。如果你的用户或任务主要在海外,天然享受谷时价格。
实操:
import datetime
def should_defer():
"""判断当前是否应该推迟非紧急任务"""
now = datetime.datetime.now()
hour = now.hour
weekday = now.weekday()
# 峰时定义:工作日 9-12, 14-18
is_peak = (
weekday < 5 and
((9 <= hour < 12) or (14 <= hour < 18))
)
return is_peak
谷时占比估算(以北京时间计):
| 时间段 | 状态 | 占比 |
|---|---|---|
| 工作日 9-12 | 🔴 峰时 | 12.5% |
| 工作日 12-14 | 🟢 谷时 | 8.3% |
| 工作日 14-18 | 🔴 峰时 | 16.7% |
| 工作日 18-次日9 | 🟢 谷时 | 62.5% |
| 周末全天 | 🟢 谷时 | 100% |
光是把可延迟任务挪到非峰时,就能省 30-40% 的费用。
第二层:缓存利用(效果最大,需要配置)
DeepSeek 的缓存命中价格(0.0036/M)比未命中(0.14/M)便宜了 40 倍。
哪些内容适合缓存:
让命中率提高的实操方法:
# 1. 把不变的前缀放在最前面
系统提示(4K) ← 永远不变,命中缓存
项目上下文(2K) ← 每个项目不变
用户输入(可变) ← 这部分才按量计费
# 2. 连续请求尽量在短时间内完成
连续 5 分钟内的请求共享缓存
中间断开 → 缓存失效 → 重新付费
# 3. 合并短请求
# 原来:
query1 = "查用户表结构"
query2 = "查订单表结构"
# 每次都要重新加载系统提示
# 合并后:
query = "查用户表和订单表的结构"
# 一次加载系统提示
缓存命中率每提高 10%,账单降低约 8%。
第三层:模型选择(算大账)
| 任务类型 | 推荐的模型 | 理由 |
|---|---|---|
| 日常编码 | Flash | 速度够快,价格最低 |
| 复杂重构 | Pro | 需要更强推理能力 |
| 批量任务 | Flash | 谷时跑,价格打对折 |
| 测试生成 | Flash | 大部分测试场景 Flash 够用 |
| 架构设计 | Pro | 需要深度思考 |
一个实测对比: 同样跑一个电商 API 的全部单元测试生成:
Flash 谷时:$0.14 x 5M + $0.28 x 1.5M = $1.12
Pro 峰时:$3.48 x 5M + $6.96 x 1.5M = $27.84
差价 25 倍。大多数时候 Flash 够用。
三、调度器实现
一个简单的任务调度器,把你的 AI 调用分成"立即执行"和"延迟执行":
import datetime
import time
import queue
class AIScheduler:
def __init__(self):
self.deferred = queue.Queue()
def is_peak(self):
now = datetime.datetime.now()
h, w = now.hour, now.weekday()
if w >= 5: # 周末
return False
return (9 <= h < 12) or (14 <= h < 18)
def submit(self, task, urgent=False):
if urgent or not self.is_peak():
return self._execute_now(task)
else:
self.deferred.put(task)
return {"status": "deferred", "estimate": self._next_off_peak()}
def _execute_now(self, task):
# 直接调用 AI API
pass
def _next_off_peak(self):
now = datetime.datetime.now()
# 计算下一个谷时时间
if now.hour < 12 and now.weekday() < 5:
return now.replace(hour=12, minute=0, second=0)
if now.hour < 18:
return now.replace(hour=18, minute=0, second=0)
return now + datetime.timedelta(hours=1)
def process_deferred(self):
while not self.deferred.empty():
task = self.deferred.get()
if not self.is_peak():
self._execute_now(task)
else:
self.deferred.put(task)
break
用法:
scheduler = AIScheduler()
# 紧急任务:立即执行(即使峰时)
scheduler.submit({"type": "production_fix", "prompt": "..."}, urgent=True)
# 可延迟任务:攒到谷时执行
scheduler.submit({"type": "unit_test_gen", "prompt": "..."})
scheduler.submit({"type": "code_review", "prompt": "..."})
scheduler.submit({"type": "doc_gen", "prompt": "..."})
四、费用对比(真实场景)
以一个中等规模的独立开发者为例,日均消耗 20 万输入 tokens、5 万输出 tokens:
| 策略 | 峰时占比 | 月费 | 节省 |
|---|---|---|---|
| 不优化,全跑 Flash | 40% | ~$9.80 | 基准 |
| 仅时区套利(推迟非紧急任务) | 15% | ~$7.20 | 27% |
| 时区套利 + 缓存优化 | 15% | ~$5.50 | 44% |
| 全跑谷时(极致) | 0% | ~$4.80 | 51% |
最实际的做法: 时区套利 + 缓存优化,轻松省 40-50%------不需要改太多代码。
五、和其他 Provider 的对比
| Provider | 最低价(/M input) | 峰谷计费 | 缓存优惠 |
|---|---|---|---|
| DeepSeek V4 Flash | $0.14 | ✅(翻倍) | ✅ 40x |
| OpenAI o4-mini | $1.10 | ❌ 固定 | 无公开缓存价 |
| Claude Sonnet 4 | $3.00 | ❌ 固定 | 有缓存(约 90% 折扣) |
| 通义千问 Max | $0.80 | ❌ 固定 | 无公开 |
DeepSeek Flash 即使峰时翻倍($0.28),仍然比 o4-mini 便宜 4 倍。谷时更是便宜 8 倍。
六、一句话总结
DeepSeek 峰谷计费不是"涨价",是给你一个省钱的机会。 把可延迟的任务攒到谷时跑,把系统提示词缓存好,日常用 Flash 不用 Pro。 三条策略叠下来,月费砍一半不是梦。