大数跨境

DeepSeek预告API大幅涨价:出海团队30分钟做完AI成本体检

DeepSeek预告API大幅涨价:出海团队30分钟做完AI成本体检 出海风向标
2026-08-09
33
导读:DeepSeek预告近期整体上调API价格。用30分钟建立30天成本基线、5张体检表和7天模型路由实验,提前看清Token、缓存与异常调用。

今天翻DeepSeek官方定价页时,我注意到一句很关键的话:API整体价格计划在近期上调,而且预计涨幅显著。

新价格还没公布。我先不猜涨多少,而是回头看现有调用:哪些任务最花钱,缓存有没有命中,失败请求重试了几次。

已经把DeepSeek API接进客服、翻译、内容、研究或代码流程的团队,可以直接照着后面的步骤查。整套检查从最近30天日志开始,最后落到一份能复算的成本表和一套路由规则。

只有网页版、拿不到调用日志的团队,暂时做不了这套检查。API Key、客户原文和个人信息也不要上传,后面只处理脱敏后的计费字段。

先看一个常见现场:一家跨境SaaS团队每天要处理英文客服回复、产品文案翻译、长报告摘要和代码排错。负责人只看充值余额,却说不清哪类任务最花钱、缓存有没有命中、失败请求重试了几次。团队每月给AI API留了500美元预算,这次要做的,就是把这笔模糊账拆开。

我按这个顺序做:先导出30天调用数据,再用干活AI整理5张表,最后挑一个低风险任务跑7天对照。

PART 01

一、先把消息看准

核验日期:2026-08-08。

当前页面列了两种模型,我把单价分开记下来。

V4 Flash

  • 缓存命中输入:0.0028美元/百万Token
  • 缓存未命中输入:0.14美元/百万Token
  • 输出:0.28美元/百万Token

V4 Pro

  • 缓存命中输入:0.003625美元/百万Token
  • 缓存未命中输入:0.435美元/百万Token
  • 输出:0.87美元/百万Token

官方同一页面还写明:计划近期提高DeepSeek API整体价格,预计涨幅显著,具体价格方案以官方通知为准。

DeepSeek官方定价页

官方还没有公布新价格和执行日期。下面出现的1.5倍、2倍、3倍,只用来测试预算承受能力,不是对实际涨幅的预测。

官方Chat Completions响应中的usage对象可以直接得到:

prompt_tokens:输入Token

completion_tokens:输出Token

prompt_cache_hit_tokens:缓存命中输入Token

prompt_cache_miss_tokens:缓存未命中输入Token

total_tokens:输入与输出总Token

completion_tokens_details.reasoning_tokens:推理Token

其中:

prompt_tokens = prompt_cache_hit_tokens + prompt_cache_miss_tokens

DeepSeek Chat Completions官方文档

PART 02

二、先把最近30天的花费算清楚

第1步 · 先得到可计费、可复算的脱敏JSONL日志

先定好数据边界

统计最近30个完整自然日,不包含今天。日志中保留计费和任务字段,删除以下内容:

  • API Key与请求签名;
  • 客户姓名、邮箱、电话和订单号;
  • 完整Prompt与完整模型回复;
  • 数据库连接、Cookie和内部访问凭证;
  • 可以反推个人身份的原始文本。

把每次调用记成同一种格式

如果你的网关能记录JSONL,每次调用保存一行:

{

 "timestamp": "2026-08-01T09:30:00+08:00",

 "task": "customer_reply",

 "model": "deepseek-v4-flash",

 "usage": {

   "prompt_tokens": 12000,

   "completion_tokens": 800,

   "prompt_cache_hit_tokens": 9000,

   "prompt_cache_miss_tokens": 3000,

   "total_tokens": 12800

 },

 "latency_ms": 1850,

 "success": true,

 "human_rework": 0

}

task字段不要写项目名,要写可以横向比较的任务类型:

customer_reply:客服回复

translation:翻译

product_copy:产品文案

report_summary:长报告摘要

research:研究分析

code_debug:代码排错

如果现有日志没有task,先用接口名称、调用入口或业务流程人工映射,不能让AI凭内容猜客户隐私。

用这段脚本把JSONL转成CSV

将下面代码保存为deepseek_cost_audit.py,把日志文件命名为deepseek_usage.jsonl,两个文件放在同一目录后运行:

import csv

import json

from collections import defaultdict

from pathlib import Path

 

PRICES = {

   "deepseek-v4-flash": {

       "cache_hit": 0.0028,

       "cache_miss": 0.14,

       "output": 0.28,

   },

   "deepseek-v4-pro": {

       "cache_hit": 0.003625,

       "cache_miss": 0.435,

       "output": 0.87,

   },

}

 

SOURCE = Path("deepseek_usage.jsonl")

DETAIL = Path("01-deepseek-call-cost.csv")

SUMMARY = Path("02-deepseek-task-summary.csv")

 

 

def calc_cost(model, hit, miss, output):

   price = PRICES.get(model)

   if not price:

       return None

   return (

       hit / 1_000_000 * price["cache_hit"]

       + miss / 1_000_000 * price["cache_miss"]

       + output / 1_000_000 * price["output"]

   )

 

 

rows = []

summary = defaultdict(lambda: {

   "calls": 0, "hit": 0, "miss": 0, "output": 0,

   "cost": 0.0, "success": 0, "rework": 0,

})

 

with SOURCE.open("r", encoding="utf-8") as source:

   for line_no, line in enumerate(source, 1):

       if not line.strip():

           continue

       record = json.loads(line)

       usage = record.get("usage", {})

       model = record.get("model", "unknown")

       task = record.get("task", "unclassified")

       hit = int(usage.get("prompt_cache_hit_tokens", 0))

       miss = int(usage.get("prompt_cache_miss_tokens", 0))

       output = int(usage.get("completion_tokens", 0))

       prompt = int(usage.get("prompt_tokens", hit + miss))

       cost = calc_cost(model, hit, miss, output)

 

       if prompt != hit + miss:

           raise ValueError(f"Line {line_no}: prompt_tokens != cache_hit + cache_miss")

 

       row = {

           "timestamp": record.get("timestamp", ""),

           "task": task,

           "model": model,

           "prompt_tokens": prompt,

           "cache_hit_tokens": hit,

           "cache_miss_tokens": miss,

           "completion_tokens": output,

           "cache_hit_rate": round(hit / prompt, 4) if prompt else 0,

           "cost_usd": round(cost, 8) if cost is not None else "PRICE_REQUIRED",

           "latency_ms": record.get("latency_ms", ""),

           "success": bool(record.get("success", False)),

           "human_rework": int(record.get("human_rework", 0)),

       }

       rows.append(row)

 

       if cost is not None:

           key = (task, model)

           agg = summary[key]

           agg["calls"] += 1

           agg["hit"] += hit

           agg["miss"] += miss

           agg["output"] += output

           agg["cost"] += cost

           agg["success"] += int(row["success"])

           agg["rework"] += row["human_rework"]

 

if not rows:

   raise SystemExit("No usable records found")

 

with DETAIL.open("w", newline="", encoding="utf-8-sig") as target:

   writer = csv.DictWriter(target, fieldnames=rows[0].keys())

   writer.writeheader()

   writer.writerows(rows)

 

summary_rows = []

for (task, model), agg in sorted(summary.items()):

   total_input = agg["hit"] + agg["miss"]

   summary_rows.append({

       "task": task,

       "model": model,

       "calls": agg["calls"],

       "cache_hit_rate": round(agg["hit"] / total_input, 4) if total_input else 0,

       "total_cost_usd": round(agg["cost"], 6),

       "avg_cost_per_call_usd": round(agg["cost"] / agg["calls"], 8),

       "success_rate": round(agg["success"] / agg["calls"], 4),

       "human_rework_rate": round(agg["rework"] / agg["calls"], 4),

   })

 

with SUMMARY.open("w", newline="", encoding="utf-8-sig") as target:

   writer = csv.DictWriter(target, fieldnames=summary_rows[0].keys())

   writer.writeheader()

   writer.writerows(summary_rows)

 

print(f"Created {DETAIL} and {SUMMARY}")

运行:

python deepseek_cost_audit.py

预期输出:

Created 01-deepseek-call-cost.csv and 02-deepseek-task-summary.csv

输入样例与费用复算

假设一个月产生:

缓存命中输入:1000万Token

缓存未命中输入:500万Token

输出:300万Token

按当前官方价格复算:

V4 Flash:1.568美元

V4 Pro:4.82125美元

这只是Token计费示例,不包括你的网关、存储、向量数据库、重试、人工复核和其他服务成本。

我跑完脚本后,先核这几件事

  • 两个CSV能正常打开,中文不乱码;
  • 每一行有时间、任务、模型和Token字段;
  • prompt_tokens等于缓存命中与未命中之和;
  • 未识别模型显示PRICE_REQUIRED,没有偷偷套用其他模型价格;
  • 原始Prompt、回复和API Key没有出现在CSV中。

有问题先查这里

  • 没有缓存字段:先记录prompt_tokens和completion_tokens,缓存成本标“无法拆分”,不要假设全未命中;
  • 没有任务字段:按接口或流程补映射表,不上传原始客户内容;
  • 金额与平台余额不一致:检查赠送余额、充值余额、重试、流式中断和统计时区;
  • 模型名称变化:到官方定价页更新PRICES,不要沿用旧价格;
  • JSON解析失败:定位报错行,确认每行是一个完整JSON对象。

PART 03

三、把账单交给干活AI拆成5张表

第2步 · 用同一份数据生成成本总览、任务分级、模型路由、异常调用和7天实验

上传:

01-deepseek-call-cost.csv

02-deepseek-task-summary.csv

另外手工填写一张任务标准表:

任务:customer_reply

业务重要度:高

质量验收:事实正确、语气合规、无虚构承诺

人工返工上限:5%

响应时间上限:5秒

允许降级:否

 

任务:translation

业务重要度:中

质量验收:术语一致、数字不变、语言自然

人工返工上限:10%

响应时间上限:10秒

允许降级:是

把这段审计要求一起贴进去

你是AI API成本审计员。我上传了:

1. 逐调用成本明细;

2. 按任务与模型汇总表;

3. 任务质量标准表。

 

请严格按顺序执行:

 

A. 数据检查

- 检查日期范围、模型名称、Token字段、任务字段和空值;

- 验证prompt_tokens=cache_hit_tokens+cache_miss_tokens;

- 缺字段时先停止,列出缺失项,不要猜。

 

B. 当前成本基线

- 按任务、模型、日期统计调用量、总成本、单次成本;

- 统计缓存命中率、成功率、人工返工率;

- 标出成本最高的前20个任务组合;

- 不使用行业平均值。

 

C. 预算压力测试

- 以当前成本为基线,分别计算价格1.5倍、2倍、3倍的月预算;

- 这些只是情景,不得写成DeepSeek已公布涨幅;

- 标出超过团队月预算的情景与日期。

 

D. 任务分级

- 分为S级关键、A级重要、B级标准、C级批量;

- 质量标准优先于成本;

- 不因成本高就自动降级关键任务。

 

E. 模型路由

- 给出“当前模型、候选模型、触发条件、回退模型、人工复核”五列;

- 只使用我提供并验证过价格与能力的候选模型;

- 无官方证据的价格标待核验;

- 不输出API Key或客户原文。

 

F. 异常识别

- 标出单次成本异常、缓存命中骤降、失败重试、输出Token异常、无人使用的夜间调用;

- 每条异常引用原始文件行号;

- 给出负责人和截止日字段。

 

G. 输出Excel

生成5张工作表:

1. 成本总览;

2. 任务分级;

3. 模型路由;

4. 异常调用;

5. 7天实验记录。

 

H. 最终结论

只能三选一:

- 保持当前路由;

- 修复后再调整;

- 立即限制异常调用。

 

所有数字必须可用上传数据复算,不得保证节省比例。

这5张表分别用来做什么

成本总览:放日期、任务、模型、调用量、成本和缓存命中率。表里的总成本必须能从原始CSV复算。

任务分级:记录任务重要度、质量标准、返工上限、是否允许降级和负责人。

模型路由:记录主模型、触发条件、回退模型和哪些请求必须人工复核。

异常调用:每条异常都要带证据行、影响、负责人和截止日期,不能只写一句“成本偏高”。

7天实验记录:把组别、质量、成本、延迟、返工和结论放在一起,最后据此决定保留、修复还是停止。

在这组示例数据里,结论会这样写

结论:修复后再调整。

 

发现:

1. 长报告摘要占总成本42%,但业务重要度仅为B级;

2. 客服回复缓存命中率从68%下降到21%;

3. 失败请求平均重试3.4次;

4. product_copy使用V4 Pro,但质量通过率与Flash测试样本差异待验证;

5. code_debug为S级任务,不建议仅因价格降级。

 

先修复:

- 排查缓存Key和固定前缀;

- 给失败重试设置次数与退避;

- 对product_copy跑7天对照;

- 保持code_debug主模型不变。

PART 04

四、挑一个任务跑7天对照

第3步 · 只做保留、修复或停止三选一

先别全量切换

每个候选任务至少准备20个脱敏、可重复验收的样本。先选一个B级或C级任务,不拿关键客服、支付、法律或安全任务做第一轮实验。

对照组:当前模型与当前Prompt

实验组:候选模型或新路由

固定项:输入、温度、最大输出、工具、质量标准

观察项:成本、通过率、P95延迟、返工率、失败率

每天照这个模板记录

日期:2026-08-09

任务:translation

样本编号:T-001

组别:对照/实验

模型:

输入Token:

输出Token:

缓存命中Token:

成本:

质量通过:是/否

人工返工:0/1

延迟毫秒:

错误类型:

审核人:

每天把这些数据记全

我不只看成本。质量通过率、人工返工、P95响应时间、失败和重试次数必须放在同一张记录里,否则“更便宜”没有判断意义。

出现这些情况,我会停掉实验

  • 关键事实错误或客户承诺错误;
  • 人工返工超过任务标准;
  • 失败重试抵消节省的Token成本;
  • P95延迟超过业务可接受上限;
  • 路由规则无法解释或无法回退;
  • 日预算超过团队预设红线。

我把7天拆成三个阶段

前两天只做数据准备:保存官方价格页、导出30天日志、运行脚本并生成两份CSV。

第3天处理基础问题,包括缓存Key、失败重试和没有任务标签的调用。基础问题没修好,不进入模型对照。

第4天开始选一个B级任务做实验。后面每天记录质量、成本、延迟、返工和失败;第7天根据异常样本和回退策略决定保留、修复还是停止。

PART 05

五、最容易踩的几个坑

  • 只看到充值余额:改为逐调用记录usage字段。
  • 把1.5倍写成正式涨幅:改回预算压力测试情景。
  • 缓存成本算不清:检查命中与未命中Token字段。
  • AI推荐了不存在的模型:候选池只放已经核验过的模型。
  • 成本下降但返工上升:以任务质量标准否决这条路由。
  • 日志泄露客户内容:只上传脱敏计费字段和任务标签。
  • 一次切换全部任务:先跑一个低风险任务的7天对照。

PART 06

六、提交前我再核一遍

[ ] 官方价格与核验日期已保存

[ ] 最近30天调用日志已脱敏

[ ] 两个CSV能复算总成本

[ ] 五张Excel工作表完整

[ ] 每个任务有质量标准和负责人

[ ] 涨价情景明确标为假设

[ ] 路由有主模型、回退模型和停止条件

[ ] 7天实验记录质量、成本、延迟、返工与失败

[ ] API Key、客户原文和个人信息未上传

PART 07

我最后留下的判断

这次检查最有价值的结果,不是猜DeepSeek会涨多少,而是把每类任务的Token、缓存、重试和模型选择放进同一张表。

基线建好以后,官方价格变化时只需要更新单价。哪些任务需要高成本模型,哪些异常调用应该先停,也都有记录可以追溯。

本文不构成采购或投资建议;模型价格、能力与接口支持范围,以DeepSeek官方最新页面为准。

【声明】内容源于网络
0
0
出海风向标
1234
内容 216
粉丝 1
出海风向标 1234
总阅读50.4k
粉丝1
内容216