Claude 4.7 vs DeepSeek V4:我让它们审了同一个项目的20个PR

我们团队的 PR 一直靠人工审查,效率低的要命——一个超过 500 行改动的 PR,Reviewer 至少花 20 分钟,还经常漏掉边界情况。上个月我决定试试用 AI 做第一轮粗筛,分别部署了 Claude 4.7 和 DeepSeek V4 两个代码审查机器人,让它们同时审查了 20 个历史 PR,然后把两个模型的结果和人工审查做了对比。结果比我预想的有意思得多。
实验怎么做的
我从项目 Git 历史里拉了 20 个已经合并的 PR,覆盖了不同复杂度:
| PR 类型 | 数量 | 平均变更行数 | 涉及文件数 |
|---|---|---|---|
| 新功能开发 | 8 个 | 380 行 | 5-12 个 |
| Bug 修复 | 6 个 | 85 行 | 1-3 个 |
| 重构 | 4 个 | 520 行 | 8-20 个 |
| 依赖升级 | 2 个 | 45 行 | 1-2 个 |
每个 PR 的审查 prompt 是完全一样的:
你是一个资深代码审查者。请审查以下 Git diff,从以下几个维度给出反馈:1) 逻辑错误或潜在 Bug;2) 性能问题;3) 安全漏洞;4) 代码风格和可维护性问题;5) 测试覆盖建议。对每个发现标注严重程度(严重/中等/轻微)。
最终对比的维度有三个:Bug 发现率、误报率、审查深度。
Bug 发现率:Claude 更准,但 DeepSeek 也不差
20 个 PR 里,人工审查之前一共发现了 37 个问题(包括逻辑错误、性能问题、安全隐患等)。我把人工审查的结果作为基准线,对比两个模型的输出。
Claude 4.7 的表现:
- 发现了 32 个问题,其中 28 个与人工审查一致
- 4 个是人工没发现但确实存在的问题(事后验证确认的)
- 漏掉了 9 个——其中有 6 个是"代码风格"类的问题(比如变量命名),3 个是弱类型的边界处理
DeepSeek V4 的表现:
- 发现了 35 个问题,其中 24 个与人工审查一致
- 5 个是人工没发现的新问题
- 漏掉了 13 个——主要集中在"安全漏洞"和"并发问题"两个维度
用数字说话:
| 指标 | 人工审查 | Claude 4.7 | DeepSeek V4 |
|---|---|---|---|
| 发现问题总数 | 37 | 32 | 35 |
| 召回率(vs 人工基准) | — | 75.7% | 64.9% |
| 新发现问题 | — | 4 | 5 |
| 漏报数 | — | 9 | 13 |
Claude 的召回率比 DeepSeek 高了 10 个百分点——这个差距主要来自安全漏洞和并发问题的识别。Claude 在这两个维度的表现明显更好。但 DeepSeek 在代码风格和可维护性建议上更细致,它会指出"这个函数参数太多建议重构"这类问题。
误报率:差距比我想象的大
误报是我最关心的指标。AI 审查如果误报太多,Reviewer 会对它失去信任,最后干脆不看 AI 的意见。
Claude 4.7 的额外输出(不在人工基准中的发现)有 8 条,其中 4 条被确认为真实问题(即前面说的"新发现"),另外 2 条属于"技术上不算错但没必要改"的建议,真正的误报只有 2 条。误报率约 25%。
DeepSeek V4 的额外输出有 16 条,5 条是真实问题,6 条是过度谨慎的建议,5 条是明显误报——比如把 Python 3.11 的 match-case 语法当成了语法错误、把 SQLAlchemy 的 lazy loading 误判为 N+1 查询。误报率约 45%。
举一个典型的误报例子。代码里有这样一段:
match error.code:
case 400:
return BadRequestResponse(error)
case 401:
return UnauthorizedResponse(error)
case _:
return InternalErrorResponse(error)
DeepSeek 给出的意见是:"使用了未定义的变量 error.code,建议改为 if-elif 结构"。它没识别出 match-case 是 Python 3.10 引入的模式匹配语法,把它当成了语法错误。
这种误报虽然不严重,但如果一个 PR 里出现三四次,Reviewer 很快就会开始跳过 AI 的评论——这正是我们想避免的。
审查深度:各有所长
除了数Bug,我还看了一下两个模型在"深度分析"上的差异。给几个例子:
Claude 擅长的:
- 跨文件影响分析。有一个 PR 改了一个工具函数的默认参数值,Claude 不仅指出了参数变更本身,还追踪了项目中所有调用这个函数的地方,列出了 3 处会受影响但可能没被测到的调用点。DeepSeek 只指出了参数变更本身。
- 并发安全的推断。有一个 PR 在多线程环境下操作了一个共享字典,Claude 明确指出"这个 dict 在多线程下不是线程安全的,建议用 Queue 或加锁"。DeepSeek 没有提到这个问题。
DeepSeek 擅长的:
- 代码风格的一致性。它发现了一个文件中混用了 f-string 和
.format()的问题,还指出了导入顺序不符合 PEP8 的情况。这些不影响功能但能提升代码质量。 - 中文注释的审查。项目里有中文注释和文档字符串,DeepSeek 能准确判断注释和代码逻辑是否匹配,甚至发现了 2 处注释过时的情况。Claude 对中文注释的理解相对弱一些。
成本对比
20 个 PR 的审查过程中,两个模型各自的 Token 消耗和花费:
| Claude 4.7 | DeepSeek V4 | |
|---|---|---|
| 总调用次数 | 40(每个PR两轮) | 40 |
| 总输入 Token | 约 210 万 | 约 210 万 |
| 总输出 Token | 约 28 万 | 约 32 万 |
| 官方价($) | $52.5 | $1.8 |
| 聚合平台价(¥) | 约 ¥2.6 | 约 ¥0.3 |
成本数据来自 bblabu 的美元额度兑换模式——大概 5 分钱换 1 美元 API 额度,按各模型的官方标准价格计费。Claude 4.7 因为是高倍率模型(官方输出单价 $75/百万Token),单次审查的成本明显高于 DeepSeek。但即使是最贵的 Claude,审完 20 个 PR 也只要两块六。
结论:不是替代,是分工
做完这个对比,我最大的感受是:这两个模型不是"谁替代谁"的关系,而是适合不同的任务分工。
Claude 4.7 在安全审查和并发分析上的深度让人印象深刻,漏报率更低、误报也更少。如果你的项目对安全性要求高、或者涉及多线程/分布式场景,Claude 值得那多出来的成本。
DeepSeek V4 的优势在于性价比和中文理解。审查 20 个 PR 只要三毛钱,而且对中文注释、中文变量命名的敏感度明显更高。如果你的团队全是中文开发者、代码里中文注释很多,DeepSeek 可能比 Claude 更合适。
我现在的方案是这样的——日常 PR 用 DeepSeek 做快速扫查(成本低、速度快),关键模块的 PR、涉及安全或并发改动的 PR 再用 Claude 做深度审查。两个模型互补,既控制成本又保证质量。
如果你也想试试,在 bblabu 上注册一个账号,创建两个令牌,一个绑 Claude 4.7、一个绑 DeepSeek V4,在 CI 脚本里根据 PR 的标签自动选择用哪个模型。整套方案搭起来不到半小时,以后每个 PR 都多了一层自动审查。
相关资源:
- bblabu API 平台 — 同时支持 Claude 4.7 和 DeepSeek V4,美元额度兑换模式
- Claude Prompt Engineering 指南
- DeepSeek API 文档
实验数据基于 2026 年 5 月的一次性对比测试。不同项目类型、不同 PR 复杂度下的结果会有差异。
本文链接:https://www.kkkliao.cn/?id=REPLACE_ID 转载需授权!
本文链接:https://www.kkkliao.cn/?id=3999 转载需授权!
版权声明:本文由廖万里的博客发布,如需转载请注明出处。



手机流量卡
免费领卡·号卡店铺
关于本站
