使用 Ollama 构建本地 AI 代码审查工具

你的 CI 虽然显示通过(绿色),但可能流于表面。队友可能因为忙碌而忽略简单的 Bug。你可以利用本地 LLM 构建“第二双眼睛”。

你可以创建一个 TypeScript CLI 工具,在提交(commit)之前审查暂存的 git diff。这样可以保证代码的私密性,且无需使用 API 密钥或云服务商。

工作原理:

• 使用 git diff --cached 获取暂存的 diff。 • 使用特定的提示词(prompt)将 diff 发送给 Ollama。 • 请求 JSON 输出并使用 Zod 进行校验。 • 将发现的问题打印到终端。 • 将其设置为 pre-commit hook。

获得更好结果的技术选择:

• 使用 --no-color 从提示词中移除 ANSI 编码。 • 使用 -U3 为模型提供三行上下文。 • 将 temperature 设置为 0 以获得确定性的结果。 • 使用特定的系统提示词(system prompt)来忽略代码风格和命名偏好。

让模型专注于逻辑错误、空值访问(null access)和安全问题。告诉它应该忽略什么。对于小型模型而言,告诉它“不要报告什么”比告诉它“寻找什么”更有效。

本地模型的实用工作流:

• 在 git hook 中使用 qwen2.5-coder:7b。 • 使用 qwen2.5-coder:1.5b 进行快速本地测试。 • 仅在发现高严重性 Bug 时拦截提交。 • 中低严重性的发现仅作为建议。

本地模型并不是资深工程师。它们会漏掉跨多个文件的复杂逻辑,也会产生误报(false positives)。不过,它们能捕捉到诸如缺失 await 或运算符错误之类的小错误。

使用这个工具在代码进入 pull request 之前捕捉粗心的 Bug。它能节省团队时间并保持代码整洁。

Source: https://dev.to/pavelespitia/building-a-local-ai-code-reviewer-with-ollama-that-catches-bugs-before-your-team-49d3

Optional learning community: https://t.me/GyaanSetuAi