自动化代码审查助手

一个基于大语言模型的命令行工具,能够自动拉取 Git 代码变更、调用 LLM 进行风格检查与潜在 Bug 提示,并生成结构化的 Markdown Review 报告。

技术栈

Python OpenAI API Git GitPython argparse

核心功能

  • 1 通过 Git diff 自动提取当前工作区或指定提交区间的代码变更。
  • 2 将变更内容按文件切块后分批送入 LLM,降低单次请求 Token 压力。
  • 3 支持风格检查、潜在 Bug、安全风险提示、命名规范等多维度审查。
  • 4 输出 Markdown 格式的 Review 报告,可直接粘贴到 PR 描述或评论中。
  • 5 支持本地配置文件自定义审查规则与提示词模板。

实现亮点

分块与上下文保留

当 diff 过大时,工具会按文件维度拆分为多个独立请求,同时在每个请求中附带同批次文件的简要上下文,既避免超出模型上下文窗口,又尽量保证审查结果的连贯性。

结构化输出格式

通过 Few-shot 示例与 JSON Schema 描述,引导模型按“位置-问题-严重级别-建议修改”四元组输出,后续可直接用于生成 Markdown 表格或 SARIF 报告。

遇到的挑战

初期直接将整个 PR 的 diff 一次性塞给模型,经常出现上下文截断或审查重点被稀释的问题。后续改用按文件分块并加入摘要信息后,召回率明显提升。

另一个难点是控制误报率:模型偶尔会针对合理的编码风格给出主观建议。通过引入“严重级别”分类,并将严重级别为 low 的建议以折叠列表呈现,有效减少了噪音。

后续计划

  • 接入 GitHub/GitLab Webhook,实现提交代码后自动触发审查。
  • 支持自定义规则库,允许团队沉淀项目特定的审查清单。
  • 增加审查结果的可视化页面,支持按文件、作者、时间维度筛选。