我用DeepSeek做了一个代码审查工具审查一次不到1分钱

我用DeepSeek做了一个代码审查工具审查一次不到1分钱
前两天发现 Groq 把国内 IP 给封了换个思路顺手把 DeepSeek 接上做了一个 AI 代码审查工具。写完了算了下成本——审查一次不到 1 分钱。为什么需要这个工具独立开发者最缺什么不是技术是 Code Review。写代码的时候自己觉得没问题实际上命名不规范、集合没指定容量、事务注解没配 rollbackFor——这些坑踩过的都懂。大厂有同事审查独立开发者只能靠自己的眼睛。但 AI 可以当这个同事。70 条规则不是通用的市面上很多 AI 审查工具用的是通用规则比如「类名要驼峰」「变量要有意义」。这些 ChatGPT 也能干。但我想要的是这个东西Map.of() 不能传 null否则运行时报 NPE这是我真实踩过的坑审计字段必须设 updated_by否则插入报错)CORS 配置必须配 CorsConfigurationSource Bean光配 .cors() 不够这些规则你查遍全网也找不到——它们来自我 6 个微服务踩过的坑。我把阿里巴巴 Java 手册55 条和我自己的实战经验15 条整理到一起总共 70 条规则喂给 AI。一次审查多少钱我用 DeepSeek API审查一次代码大概消耗 8000 tokens 左右项目数量规则文件70 条~3500 tokens审查指令~500 tokens用户代码~200 行~3000 tokens输出审查结果~1500 tokens总计~8500 tokensDeepSeek 的价格输入 1 元/百万 tokens输出 2 元/百万。算下来一次审查(7000 × 1 1500 × 2) / 1000000 0.007 0.003 0.01 元充 10 块能用 1000 次。架构很简单没有数据库、没有状态、没有历史记录——纯无状态设计。用户贴代码 → 后端拼 Prompt70 条规则 代码→ 调 DeepSeek API → 解析 JSON → 展示报告后端就一个 POST 接口前端一个 Monaco 编辑器 审查报告区。选 VS Code 暗色主题代码区占 60% 注意力报告区左边框按严重程度着色 红色ERROR必须修 黄色WARNING推荐修 蓝色INFO建议优化项目结构也很干净services/ai-reviewer/ ← Spring Boot 3 clients/ai-reviewer/ ← React Monaco docs/ai-review-rules.md ← 70 条规则改文件即改行为规则文件是唯一的「数据引擎」。今天 70 条明天踩了新坑加一条重启即生效。不需要数据库迁移不需要后台管理页面。Prompt 是关键同样的代码喂给 AI规则写得清不清晰直接影响审查质量。我的 Prompt 结构System 位置放规则70 条规则是固定背景放 system messageUser 位置放代码每次审查的代码不同JSON 强约束要求 AI 只输出 JSON否则解析会崩支持规则集切换all / p3c阿里规约/ wuxiannet我的经验/** * 构建完整 prompt */publicStringbuildPrompt(Stringcode,Stringlanguage,StringrulesType){StringrulesgetRulesText(rulesType);StringtruncatedCodecode.length()8000?code.substring(0,8000)\n\n// [代码已截断超过 8000 字符]:code;return 你是一个严格的 Java 代码审查专家。请按照以下规则逐条审查代码输出结构化报告。 ## 审查规则 %s ## 审查要求 1. 逐条对照规则检查代码 2. 只报告真正违反的规则不要报告未发现违反 3. 每条问题标注: 行号、违反的规则编号、问题描述、修复建议 4. 级别: ERROR(必须修复) / WARNING(推荐修复) / INFO(建议优化) ## 待审查代码 %s %s ## 输出格式 严格按 JSON 格式输出不要额外解释: { summary: {total: N, errors: N, warnings: N, infos: N}, issues: [ {level: ERROR|WARNING|INFO, ruleId: N, title: ..., line: N, code: ..., message: ..., suggestion: ...} ] } .formatted(rules,language!null?language:java,truncatedCode);}最开始的版本发现 AI 经常在 JSON 前后加废话「根据您的代码审查结果如下」。加了一段 json 代码块提取逻辑不管 AI 怎么包装都能把 JSON 摘出来。部署和启动就两个命令# 后端cdservices/ai-reviewermvn spring-boot:run# 前端cdclients/ai-reviewernpmrun dev本机跑不上服务器。代码不传到第三方API Key 配置在本地application-dev.yml。效果贴一段代码举例。这段代码有两处违规publicclassUserService{privateDatecreatedAt;// ❌ 规则56审计字段必须是 create_timeprivateUserRepositoryuserRepository;publicListUsergetUsers(){ListStringlistnewArrayList();// ⚠️ 规则23ArrayList 未指定容量returnuserRepository.findAll();}}AI 审查结果 ERROR R56 L5 审计字段 create_time 不符合规范 → 改为: private Date createTime; WARNING R23 L12 ArrayList 未指定初始容量 → 改为: new ArrayList(16)逐条对照规则标出行号、规则编号、修复建议。点击问题行编辑器自动跳转到对应行。写这篇文章的时候我顺便审查了一次——发现了一个 controller 里没配 CrossOrigin 的接口。代码自己审自己挺妙的。关于作者无羡独立开发者全栈工程师专注 AI 应用与微服务架构。 分类独立开发实战 个人博客 — 更多技术文章✨ 开发者福利整理 — 云服务资源汇总 软件工坊 — 我的技术分享 个人门户 — 独立开发作品全集