本地代码审查与提交助手(Local Code Review)
一个纯本地、数据不出机的代码生产力 Skill:把一段 git diff 喂给本地小模型,
产出「代码审查意见」和/或「Git 提交信息」,供 Qoder / WorkBuddy / TRAE Work 等
生产力级 AI Agent 在本地调用,无需联网、不泄露源码。
为什么是生产力 Skill(而非玩具)
- 真实场景:开发者每天产生大量 commit,写清review/commit message是高频刚需; 但云端大模型会接触私有源码。本 Skill 让模型跑在本地 AI PC(Intel GPU/NPU 优先,CPU 回退), 源码只在本地推理,满足企业对「核心算法不外泄」的硬要求。
- 可被 Agent 调用:Host 只调用一个固定入口
scripts/run.ps1,背后是常驻模型服务 (命名管道\\.\pipe\local-code-review),首次启动加载模型,之后每次请求毫秒级响应。 - 可复用 / 可商用:目录结构、命名管道协议、续传下载、UTF-8 处理均符合 openvino-dev-samples/local-ai-skill-authoring 官方规范,可直接移植到任何 Host。
架构(Client-Server + 命名管道)
Host(Agent) ──调用──> scripts/run.ps1 ──┬─> scripts/client.py ──命名管道──> scripts/server.py(常驻, 模型常驻)
└─(首次) 自动建 venv + 下载模型 状态机: starting→downloading→loading→running→error
run.ps1:固定入口名(Host 硬编码),永不可改名。做硬件探测 → 确保 venv → 调 client。client.py:短命客户端。保证 server 在跑,等模型就绪,发请求,格式化输出到 stdout(UTF-8)。server.py:长命服务。监听\\.\pipe\local-code-review,后台线程下载/加载模型并常驻。code_review_engine.py:领域逻辑。用 openvino-genai 加载模型,按 Qwen2.5 chat 模板拼 prompt 并生成。
使用方式(Host / 手动)
# 1) 代码审查(默认)
scripts/run.ps1 --mode review --diff-file C:\path\to\diff.txt
# 或把 diff 通过管道喂入
git diff | scripts/run.ps1 --mode review
# 2) 只生成提交信息
scripts/run.ps1 --mode commit --diff-file C:\path\to\diff.txt
# 3) 同时做审查 + 提交信息
scripts/run.ps1 --mode both --diff-file C:\path\to\diff.txt
# 4) 查询服务状态
scripts/run.ps1 --status
# 5) 停止常驻服务
scripts/run.ps1 --shutdown
参数:
--mode:review|commit|both(默认review)--diff-file:git diff 文本文件路径(与 stdin 二选一)--context:可选补充上下文(如「这是登录模块重构」)- stdin:若未给
--diff-file,则从标准输入读取 diff
模型与设备
- 模型:
OpenVINO/Qwen2.5-Coder-7B-Instruct-int4-ov(int4 量化,约 4.5GB,Qwen2 架构) - 设备选择(官方推荐顺序):Intel GPU → Intel NPU → CPU。在真实 Intel AI PC 上自动启用 GPU/NPU 异构加速;无 Intel 设备时回退 CPU,功能不变。
- 模型首次运行会自动下载(支持断点续传
--continue),缓存于D:\aipc\.openvino\models\local-code-review\。
输出示例
审查模式会输出按严重程度排序的结构化 Markdown 列表(崩溃风险 / 安全 / 性能 / 可读性 / 测试);
提交模式输出一行 Conventional Commits 信息,如 fix(auth): 修复 token 过期未刷新的空指针。
验证(端到端测试)
tests\test.ps1 # 启动服务 → 发送样例 diff → 断言输出了审查/提交内容 → 关闭服务
参考规范
- openvino-dev-samples/local-ai-skill-authoring(AIPC local skill 参考标准)
- OpenVINO GenAI:
openvino_genai.LLMPipeline
微信扫一扫