使用 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。它能节省团队时间并保持代码整洁。
Optional learning community: https://t.me/GyaanSetuAi