DeepSeek V4 刚开源 4 天,我用 Python 跑通了 API 全流程,价格是 GPT-5.5 的 1/7(附踩坑记录)
4 月 24 号 DeepSeek 放出了 V4,1.6 万亿参数,MIT 协议开源,百万 token 上下文。我当天晚上就申请了 API key,花了两天把几个核心场景跑了一遍。
结论先放这:编码能力逼近 Claude Opus 4.7,价格只有它的七分之一。 如果你的项目对成本敏感,这个模型值得认真看一下。
先搞清楚 V4 到底有什么
DeepSeek V4 这次发了两个模型:
- V4-Pro:1.6T 总参数,每次推理激活 49B,定位是干重活的——复杂编码、长文分析、Agent 任务
- V4-Flash:284B 总参数,激活 13B,走量的——日常对话、简单任务、对延迟敏感的场景
两个模型都支持 100 万 token 的上下文窗口,都是 MIT 协议,权重直接挂在 Hugging Face 上。
价格方面,V4-Flash 输入 0.28/M tokens。V4-Pro 输入 3.48/M tokens。对比 GPT-5.5 的 25/M 输出,差距是数量级的。
说实话看到这个定价我第一反应是"不会又是赔本赚吆喝吧",但跑完 benchmark 发现质量确实在线。
下面是 DeepSeek 官方放出的 V4 性能对比图,可以直观看到 V4-Pro 在各项指标上跟闭源模型的差距:

5 分钟跑通第一个请求
DeepSeek V4 的 API 兼容 OpenAI 格式,所以如果你之前用过 openai 这个 Python 包,切换成本几乎为零。
先装依赖:
pip install openai
然后写一个最基础的调用:
from openai import OpenAI
client = OpenAI(
api_key="你的-deepseek-api-key",
base_url="https://api.deepseek.com"
)
response = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[
{"role": "system", "content": "你是一个 Python 专家,回答简洁直接。"},
{"role": "user", "content": "用 Python 写一个函数,把嵌套字典扁平化,key 用点号连接。"}
],
temperature=0.2,
max_tokens=1024
)
print(response.choices[0].message.content)
这段代码的关键就一个点:base_url 换成 DeepSeek 的地址,model 填 deepseek-v4-flash 或 deepseek-v4-pro,其他跟调 GPT 一模一样。
V4-Flash 的响应速度很快,上面这个请求大概 1.2 秒就回来了,生成的代码质量也没问题。
用 Thinking 模式处理复杂编码任务
V4 有个 Thinking 模式,类似之前 DeepSeek R1 的思维链,模型会先"想一想"再回答。对复杂编码任务效果明显。
response = client.chat.completions.create(
model="deepseek-v4-pro",
messages=[
{"role": "system", "content": "你是一个资深后端工程师。"},
{"role": "user", "content": """
设计一个 Python 限流器,要求:
1. 支持滑动窗口算法
2. 支持按 IP 和按用户两种维度
3. 用 Redis 做存储
4. 提供装饰器用法
给出完整可运行的代码。
"""}
],
temperature=0.2,
max_tokens=4096
)
# Thinking 模式下,模型会在 content 里先输出思考过程
# 然后再给出最终答案
print(response.choices[0].message.content)
V4-Pro 在 Thinking 模式下处理这种多约束的编码任务,生成的代码结构清晰,边界情况也考虑到了。我拿同样的 prompt 分别跑了 GPT-5.5 和 V4-Pro,V4-Pro 生成的 Redis 操作用了 pipeline 批量执行,GPT-5.5 没有——这个细节在高并发场景下差别很大。
不过 Thinking 模式的代价是慢,同样的 prompt,V4-Pro Thinking 模式大概要 8-10 秒,非 Thinking 模式 3 秒左右。
流式输出 + Tool Calling
实际项目里大概率要用流式输出,不然用户等着干瞪眼。V4 的流式 API 也是 OpenAI 兼容的:
stream = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[
{"role": "user", "content": "解释 Python 的 GIL 是什么,为什么它影响多线程性能。"}
],
stream=True
)
for chunk in stream:
content = chunk.choices[0].delta.content
if content:
print(content, end="", flush=True)
Tool Calling 也支持,格式跟 OpenAI 的 function calling 一致。我测了一下,V4-Flash 的工具调用准确率和 GPT-5.5 差不多,偶尔会在参数类型上犯错(比如该传 int 传了 string),但频率不高。
实测数据:V4 到底能打到什么程度
我拿了 50 个真实的编码任务跑了一轮对比,任务类型包括:算法题、API 设计、Bug 修复、代码重构、SQL 编写。
| 指标 | DeepSeek V4-Pro | DeepSeek V4-Flash | GPT-5.5 |
|---|---|---|---|
| 一次通过率 | 78% | 62% | 82% |
| 平均响应时间 | 4.2s | 1.4s | 3.8s |
| 输出 token 单价 | $3.48/M | $0.28/M | $30/M |
| 50 个任务总花费 | $0.41 | $0.03 | $3.52 |
V4-Pro 的一次通过率比 GPT-5.5 低了 4 个百分点,但成本只有它的 1/8。V4-Flash 更夸张,成本是 GPT-5.5 的百分之一,通过率也有 62%。
如果你的场景允许"跑两次取最好的",V4-Pro 跑两次的成本还不到 GPT-5.5 跑一次的三分之一,但综合通过率能到 90% 以上。这笔账怎么算都划算。
踩坑记录
坑 1:Thinking 模式默认开启,不关会多花 3 倍 token
我一开始没注意,用 V4-Pro 跑简单任务也走了 Thinking 模式,结果 token 消耗比预期高了 3 倍。排查了半小时才发现,V4-Pro 默认就是 Thinking 模式。
解决方案:简单任务显式关掉 Thinking:
# 在 messages 里加一条 system 指令
messages=[
{"role": "system", "content": "直接回答,不要展示思考过程。"},
{"role": "user", "content": "你的问题"}
]
或者直接用 V4-Flash,它默认是非 Thinking 模式。
坑 2:百万 token 上下文不是免费的
V4 号称支持 100 万 token 上下文,但实际用的时候发现,超过 12 万 token 之后响应速度断崖式下降。我试了一个 20 万 token 的长文档分析任务,等了 45 秒才开始出第一个 token。
而且长上下文的 cache miss 价格是 cache hit 的 50 倍。如果你的场景需要反复查询同一个长文档,第一次请求会很贵,后续请求因为命中缓存会便宜很多。但如果每次都是不同的长文档,成本会飙升。
建议:除非真的需要,否则把上下文控制在 10 万 token 以内。
坑 3:中文编码任务偶尔出现英文注释
这个坑比较隐蔽。我在 system prompt 里明确写了"用中文回答",但 V4-Pro 在生成代码时,注释有时候会突然切成英文。不是每次都这样,大概 20% 的概率。
排查后发现,如果 prompt 里混了英文代码片段(比如贴了一段要重构的英文代码),模型就容易"被带跑"。
解决方案:在 system prompt 里加一句"代码注释必须使用中文",能把这个问题降到 5% 以下。不完美,但够用了。
坑 4:max_tokens 设太大会触发限流
我一开始图省事把 max_tokens 设成了 16384,结果频繁触发 429 限流。DeepSeek 的限流策略不只看请求频率,还看单位时间内的 token 总量。
解决方案:根据实际需要设 max_tokens,一般编码任务 2048-4096 就够了。如果确实需要长输出,加个重试逻辑:
import time
from openai import RateLimitError
def call_with_retry(client, max_retries=3, **kwargs):
for i in range(max_retries):
try:
return client.chat.completions.create(**kwargs)
except RateLimitError:
wait = 2 ** i # 指数退避:1s, 2s, 4s
print(f"限流了,等 {wait} 秒重试...")
time.sleep(wait)
raise Exception("重试次数用完了")
什么场景适合用 V4
跑完这一轮测试,我的判断是:
- 日常编码辅助:直接用 V4-Flash,便宜到几乎不用考虑成本,速度也快
- 复杂架构设计、代码审查:用 V4-Pro + Thinking 模式,质量接近 GPT-5.5
- 对准确率要求极高的场景(比如金融、医疗):还是老老实实用 Claude Opus 或 GPT-5.5,多花的钱买的是那 4% 的准确率差距
- Agent 场景:V4-Pro 的 Tool Calling 够用,百万上下文对 Agent 的长期记忆很有价值,成本优势在 Agent 场景下会被放大(Agent 的 token 消耗通常是普通对话的 5-10 倍)
DeepSeek 这次 V4 的发布节奏很猛,MIT 开源 + 低价 API + 百万上下文,摆明了要抢开发者市场。从实测结果看,它确实做到了"用 1/7 的价格拿到 95% 的效果"。
你在项目中用过 DeepSeek 的 API 吗?跟 GPT 或 Claude 比体验怎么样?评论区聊聊。