把一份 20 万字的技术手册塞进一次请求,问一个问题:走按量计费账单约 0.892 元;走小鱼API 的按次计费,deepseek-v3.2-thinking 收 0.049 元。同一个问题差 18 倍,差距不来自模型强弱,只来自计价口径:按量按 token 收钱,按次按请求次数收钱,塞 1 个字和塞 20 万字是同一个价。
DeepSeek 在小鱼API 上四个在售型号全是按次计费:deepseek-v3.2-thinking 0.049 元、deepseek-r1-thinking 0.049 元、deepseek-v4-flash-thinking 0.05 元、deepseek-v4-pro-thinking 0.09 元。这篇讲清四者的分工,重点拆 thinking 模型的推理 token 怎么变成账单里的一行,再给批量任务的月度预算和脚本。
按量的公式就一行:钱 = 输入 token 数 × 输入单价 + 输出 token 数 × 输出单价。主流旗舰档目前大致是输入 ¥3/百万 token、输出 ¥15/百万 token,以各家模型官方页面的标价为准,本文仅作换算参考。
中文按 1 个汉字约 1.45 个 token 估算,不同分词器的实际值会在 1 到 1.5 之间浮动,这个取值偏保守:
0.892 ÷ 0.049 ≈ 18.2,两行公式你可以拿计算器自己复算。
一次请求一个价:0.049 元就是 0.049 元,请求里放了多少字都不改变这个数字。做预算的算式退化成一个乘法:调用次数 × 0.049。对做产品的人来说这比单价便宜几分钱重要:用户粘贴多长的内容你控制不了,每次请求花多少钱你能控制。
按量口径里输入和输出是两笔账,输出单价是输入的 5 倍:同一份资料,让模型少说废话比少喂资料更省钱,一条 5000 token 的冗长回答光输出就是 0.075 元。
| 模型 | 单价(元/次) | 计费方式 | 适合的活 |
|---|---|---|---|
| deepseek-v3.2-thinking | 0.049 | 按次 | 中文问答、知识整理、日常摘要 |
| deepseek-r1-thinking | 0.049 | 按次 | 需要看推理链的数学与逻辑题 |
| deepseek-v4-flash-thinking | 0.05 | 按次 | 批量摘要、分类打标、爬虫清洗 |
| deepseek-v4-pro-thinking | 0.09 | 按次 | 长文档推理、代码重构、合同审查 |
四个都是 thinking 模型,也就是都会先「想」再「答」,差别只在单价和任务适配度。
同价不同性格,按任务挑:
两个都是 0.049 元,差价为零,别在单价上纠结,真正拉开成本的是调用次数。
批量摘要、分类打标、爬虫清洗的共同点是单条不长、条数极多、要求输出格式稳定。deepseek-v4-flash-thinking 0.05 元一次,是这类任务的主力。
判据可以很土:如果这条数据你人工处理只要 3 秒,就别为它付 0.09 元。
值得上的信号有三个:单次输入超过 5 万字;需要跨章节比对信息;输出错了的返工代价大于调用本身。反过来,如果 flash 已经能稳定输出你要的格式,升到 pro 只会把月账单乘 1.8 倍(0.09 ÷ 0.05)。
| 你的任务 | 用哪个 | 单价(元/次) | 为什么 |
|---|---|---|---|
| 每天上万条爬虫清洗 | deepseek-v4-flash-thinking | 0.05 | 批量场景看格式稳定性,不看文采 |
| 站内问答、知识整理 | deepseek-v3.2-thinking | 0.049 | 中文表达自然,返工少 |
| 数学题、逻辑推断 | deepseek-r1-thinking | 0.049 | 推理链完整,便于人工核对 |
| 合同比对、代码重构 | deepseek-v4-pro-thinking | 0.09 | 长输入与跨段比对能力更强 |
| 输入长度完全随机 | 上面任意一款 | 0.049 到 0.09 | 输入长度不进公式,成本封顶 |
thinking 模型回答前会先产出一段推理内容。按次计费下这没有影响;但按量计费下,这段推理文字会作为输出 token,按 15 元/百万 token 计费。
这是按量口径下最容易算漏的一笔钱:你以为输出是那 800 字答案,实际输出里还有几千 token 的思考过程。
场景:输入 800 字资料(约 1160 token),模型思考 8000 token,正式回答 800 字(约 1160 token)。
| 账单项目 | token 数 | 按量单价(元/百万) | 金额(元) |
|---|---|---|---|
| 输入:问题 + 800 字资料 | 1160 | 3 | 0.0035 |
| 输出:思考过程 | 8000 | 15 | 0.12 |
| 输出:正式回答 | 1160 | 15 | 0.0174 |
| 按量合计 | 10320 | 见上两行 | 0.141 |
| 同一请求按次(deepseek-v3.2-thinking) | 不看 token | 按次 | 0.049 |
思考那一行 0.12 元,占了整张账单的 85%:大头是模型「自言自语」的部分,而这段内容多数接口默认不返回。按量 0.141 元对按次 0.049 元,差 2.9 倍。
把思考 token 当变量:
中间那一行是关键:题难才会触发长思考,你越需要模型想清楚,按量的隐藏成本越高;按次把这个变量从公式里删掉,题难题易同一个价。
按「思考 8000 token」这一档算:
重推理场景(数据分析、故障排查助手、法律条款问答)每个月都会按时出现这八千多块。
| 请求形态 | 按量成本 | 按次成本 | 谁更省 |
|---|---|---|---|
| 20 万字资料问答一次 | 0.892 元 | 0.049 元 | 按次,差约 18 倍 |
| 800 字输入 + 8000 思考 token | 0.141 元 | 0.049 元 | 按次,差约 2.9 倍 |
| 500 字输入 + 100 字输出 | 0.00435 元 | 0.05 元 | 按量,差约 11 倍 |
| 20 条打包成一次请求 | 0.087 元 | 0.05 元 | 按次,省约 43% |
表里第三行最容易被忽略:单条 500 字输入、100 字输出的短任务,按量只要 0.00435 元(输入 725 token × 3 元/百万 + 输出 145 token × 15 元/百万)。按次 0.05 元,这里按量便宜 11 倍。海量短请求的场景,按量口径确实有优势。
关键在这里:按次的价和输入长度无关,所以可以把 20 条数据塞进一次请求、让它返回 JSON 数组,成本从 20 次请求变成 1 次。
同一条 500 字数据:单独发 0.05 元,20 条打包后 0.05 ÷ 20 = 0.0025 元,比按量的 0.00435 元还低。这一招是按次计费独有的:按量口径下打包只省了每次请求的固定开销,输入 token 一个不少。
三个信号,命中一个就别犹豫:
任务:把每天 2 万条爬虫正文清洗成结构化字段,单条原文 500 字、输出 100 字,用 deepseek-v4-flash-thinking 0.05 元一次。
从 30000 元压到 1050 元,靠的不是换更便宜的模型,是换算法:既然一次请求的价和塞多少内容无关,就把调用次数降下来。
任务:把站内 5000 条提问各压成 60 字摘要,用 deepseek-v3.2-thinking 0.049 元。
摘要任务还有个附带好处:打包时模型能顺手去重,20 条里语义重复的表述会压成一个说法。
| 场景 | 每天条数 | 做法 | 每天(元) | 每月 30 天(元) |
|---|---|---|---|---|
| 爬虫清洗 | 2 万条 | 一条一次请求 | 1000 | 30000 |
| 爬虫清洗 | 2 万条 | 20 条打包 | 50 | 1500 |
| 爬虫清洗 | 2 万条 | 打包 + 规则预筛三成 | 35 | 1050 |
| 站内摘要 | 5000 条 | 20 条打包 | 12.25 | 367.5 |
| 分类打标 | 5 万条 | 20 条打包 | 125 | 3750 |
表里每一行都是调用次数 × 单价,可以逐行复算。表里没算失败重试:实际重试率通常 1% 到 3%,预算按表里的数乘 1.1 到 1.3 更稳。
# batch_clean.py —— 批量清洗 + 成本统计 + 预算熔断
import json
import os
import time
from openai import OpenAI
client = OpenAI(
api_key=os.environ["XYUAPI_KEY"],
base_url="https://xyuapi.top/v1", # 备用入口 https://xyuai.cc/v1
)
MODEL = "deepseek-v4-flash-thinking"
PRICE_PER_CALL = 0.05 # 按次单价,元/次
BATCH_SIZE = 20 # 每批条数
DAILY_BUDGET = 60.0 # 单日预算,元
RETRY = 2 # 失败重试次数
PROMPT = (
"下面是 %d 条原始正文。逐条清洗成 JSON 数组,每项含 id、"
"title、summary,summary 不超过 60 字。只输出 JSON,条数必须与输入一致。\n\n%s"
)
def build_payload(items):
body = "\n".join("[%s] %s" % (it["id"], it["raw"][:800]) for it in items)
return PROMPT % (len(items), body)
def parse_items(text, items):
text = text.strip().strip("`") # 模型可能带上代码围栏
if text[:4].lower() == "json":
text = text[4:]
data = json.loads(text)
ids = {str(it["id"]) for it in items}
return [d for d in data if str(d.get("id")) in ids]
def main(rows):
spent, calls, done = 0.0, 0, 0
for i in range(0, len(rows), BATCH_SIZE):
if spent + PRICE_PER_CALL > DAILY_BUDGET:
print("[STOP] 到预算上限,已花 %.2f 元,剩 %d 条留到明天"
% (spent, len(rows) - i))
break
items = rows[i:i + BATCH_SIZE]
for attempt in range(RETRY + 1):
spent += PRICE_PER_CALL
calls += 1
try:
resp = client.chat.completions.create(
model=MODEL,
messages=[{"role": "user", "content": build_payload(items)}],
temperature=0,
)
done += len(parse_items(resp.choices[0].message.content, items))
break
except Exception as e:
if attempt == RETRY:
print("[FAIL] 批次 %d 放弃:%s" % (i, e))
else:
time.sleep(2 * (attempt + 1))
print("调用 %d 次,处理 %d 条,花费 %.2f 元,单条 %.5f 元"
% (calls, done, spent, spent / max(done, 1)))
if __name__ == "__main__":
main(json.load(open("rows.json", encoding="utf-8")))
BATCH_SIZE 从 20 起步。加到 50 以上,条数对不齐的概率明显上升,模型可能把相邻两条内容合并。判据:连跑三天返回条数每次都一致,才能试着加到 30;出现一次缺条就退回来。
RETRY 设 2。按次计费下重试就是一次新调用,也就是 0.05 元,但丢一条数据的代价通常更高。重试前 sleep 一下,避开瞬时故障。
DAILY_BUDGET 是脚本里真正的成本开关。到顶自动停,剩下的数据明天再跑;没有这一行,一次代码写错就可能烧掉一整天的预算。
脚本里的成本只用「调用次数 × 单价」这一个算式。想核对同一批请求走按量要花多少,把返回体里的 usage.prompt_tokens 与 usage.completion_tokens 逐批写进 CSV,月底用输入 3 元/百万、输出 15 元/百万算一遍,就知道自己的业务形态适合哪种口径。
存量代码不用重写。把 base_url 指向 https://xyuapi.top/v1(备用 https://xyuai.cc/v1),api_key 换成小鱼API 的密钥,模型名从长串换成短名(如 deepseek-v4-flash-thinking),其余逻辑不动。
curl -s https://xyuapi.top/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-你的小鱼API密钥" \
-d '{
"model": "deepseek-v3.2-thinking",
"messages": [{"role": "user", "content": "把这句话改得更像人写的:本产品已正式上线。"}],
"max_tokens": 300
}'
返回体里的 usage 给出这次请求的 token 消耗:prompt_tokens 是输入,completion_tokens 是输出。跑十来条真实数据把两个值记下来,你对「一次请求多大」就有数了。
最低 7 元起充。按四款模型的单价换算:
按每次请求打包 20 条算,7 元在 flash 上能处理 140 × 20 = 2800 条数据,够你把流程跑通、把单条成本算准,再决定要不要加量。
别拿样例数据估。从线上日志捞 200 条真实输入跑一遍,记三个数:单条输入汉字数、单条输出汉字数、平均单次请求的实际 token。这三个数决定后面所有推算,凭感觉估通常偏乐观。
月度预算 = 每天调用次数 × 单价 × 30 × 1.3,多出来的三成兜住重试、流量增长和模型改版。算完写进脚本里的 DAILY_BUDGET。文档里的预算约束不了任何人,代码里的才会。
本文所有换算基于输入 ¥3/百万 token、输出 ¥15/百万 token 的假设,中文按 1 个汉字约 1.45 个 token 估算。各家模型的实际标价与分词规则以其官方页面为准,官方调价后把新单价替换进同一套公式即可复算。