目录

用 Ollama + Continue 搭建本地代码审查助手

为什么需要本地代码审查

传统代码审查(Code Review)依赖人工逐行检查,耗时久、标准不统一。而托管的 AI 审查服务(如 GitHub Copilot、CodeRabbit)虽然强大,却存在两个痛点:

  1. 代码隐私:商业代码发送到外部服务器,很多公司不批准
  2. 成本:按量计费,团队大了费用不低

2025~2026 年,开源模型(DeepSeek Coder、Qwen2.5-Coder、CodeGemma)的能力已经足够胜任常规审查任务,配合 Ollama + Continue.dev,你可以在 VS Code 里搭建一套完全本地运行、零成本、可定制审查规则的代码审查助手。


整体架构

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
┌─────────────────────┐
│  VS Code + Continue  │ ← IDE 插件,负责交互
├─────────────────────┤
│    Continue 配置      │ ← 设定模型、审查规则、prompt 模板
├─────────────────────┤
│  Ollama (本地 API)    │ ← 运行开源代码模型
├─────────────────────┤
│ DeepSeek-Coder /     │ ← 实际的模型推理
│ Qwen2.5-Coder        │
└─────────────────────┘

所有请求都在你本机完成,断网也能用。


第一步:安装 Ollama 并拉取模型

Ollama 把模型下载、量化、推理全部封装成了 ollama run 一行命令,无需纠结 CUDA 版本或 Python 依赖。

1
2
3
4
5
6
7
8
# macOS / Linux
curl -fsSL https://ollama.com/install.sh | sh

# 拉取一个适合代码审查的模型(6B 参数,量化后约 3.5GB)
ollama pull deepseek-coder:6.7b-instruct-q4_K_M

# 验证运行
ollama run deepseek-coder:6.7b-instruct-q4_K_M "检查这段 Python 代码的问题:"

小贴士:GPU 显存 ≤4GB 用 qwen2.5-coder:3bdeepseek-coder:1.3b;≥8GB 推荐 deepseek-coder:6.7b


第二步:安装 Continue.dev 扩展

Continue 是 VS Code 的开源 AI 编程插件(类似 Copilot 但支持本地模型)。

  1. 在 VS Code 扩展市场搜索 “Continue” 并安装
  2. 安装后左侧出现 Continue 图标
  3. 打开命令面板(Cmd+Shift+P),执行 Continue: Open Config

配置文件位于 ~/.continue/config.json,我们把它改成使用本地 Ollama 模型:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
{
  "models": [
    {
      "title": "DeepSeek-Coder Local",
      "provider": "ollama",
      "model": "deepseek-coder:6.7b-instruct-q4_K_M",
      "contextLength": 16384
    }
  ],
  "tabAutocompleteModel": {
    "title": "Qwen2.5-Coder 3B",
    "provider": "ollama",
    "model": "qwen2.5-coder:3b"
  }
}

为什么用两个模型? deepseek-coder:6.7b 深度推理强,用于审查大段代码;qwen2.5-coder:3b 轻量快速,用于行内补全和简单提示。


第三步:编写审查 Prompt

Continue 支持自定义 Slash 命令。在 config.json 中追加一个 /review 命令:

1
2
3
4
5
6
7
8
9
{
  "slashCommands": [
    {
      "name": "review",
      "description": "审查选中代码的变更",
      "prompt": "你是一个资深的代码审查员。请严格审查以下代码,按这个格式输出:\n\n## 🔴 关键问题\n严重错误或安全漏洞,必须修复\n\n## 🟡 改进建议\n代码风格、性能优化、可维护性\n\n## ✅ 好的实践\n值得肯定的写法\n\n请用中文回复,每条问题附上对应的行号和修改建议。"
    }
  ]
}

这段配置做了什么:定义了一个 /review 命令。在 VS Code 中选中代码,输入 /review,模型就会按固定格式输出结构化的审查结果。


第四步:实战演示

假设你写了这样一段代码,选中它并在 Continue 输入 /review

1
2
3
4
5
6
7
8
def get_user_data(user_id):
    conn = sqlite3.connect('users.db')
    cursor = conn.cursor()
    query = f"SELECT * FROM users WHERE id = {user_id}"
    cursor.execute(query)
    data = cursor.fetchone()
    conn.close()
    return data

模型审查后输出:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
## 🔴 关键问题

1. **SQL 注入漏洞(第4行)**:直接拼接 user_id 到 SQL,恶意输入可删除全表
   → 修复:使用参数化查询 `cursor.execute("SELECT * FROM users WHERE id = ?", (user_id,))`

2. **连接未管理(第2行)**:若第6行前抛出异常,连接不会关闭
   → 修复:使用 `with sqlite3.connect('users.db') as conn:`

## 🟡 改进建议

1. 缺少异常处理:数据库查询应用 try/except 包裹
2. 硬编码数据库路径:`users.db` 建议改为配置参数

## ✅ 好的实践

函数职责单一,只做查询一件事

这种结构化输出比人工 Review 更一致——团队所有人都看到同一套标准。


进阶:MCP 协议 + CI 流水线

Continue 已支持 MCP(Model Context Protocol),可以把本地审查能力接入 CI:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# .github/workflows/code-review.yml
name: Local AI Code Review
on: [pull_request]
jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run Local Review
        env:
          OLLAMA_HOST: http://localhost:11434
        run: |
          npx @continuehq/mcp-server-review \
            --model deepseek-coder:6.7b \
            --diff <(git diff origin/main...HEAD)

注意:CI 环境需要至少 4GB 可用内存。如果 CI 节点没有 GPU,模型跑在 CPU 上约需 6~10 秒。


效果对比

方案 隐私 延迟 成本 定制度
GitHub Copilot Review ❌ 云端 ~5秒 $19/月/人
CodeRabbit ❌ 云端 ~10秒 按量计费
本地方案 ✅ 本地 2~8秒 免费

本地延迟取决于硬件:M 系列 Mac 约 24 秒,普通 CPU 约 610 秒。


总结

搭建一套可用的本地代码审查助手只需三步:

  1. 装 Ollama + 拉模型 — 5 分钟
  2. 配 Continue 插件 — 改一行 JSON
  3. 写审查 Prompt — 定制团队规范

这套方案的核心价值不是替代人工审查,而是把重复性、标准化的检查交给 AI,让人 Reviewer 聚焦在架构设计和业务逻辑。对于注重代码安全的团队或个人开发者,这是零成本、高收益的提效方式。