2026年AICodeReview 代码审查

AICodeReview 代码审查p span CodeReviewAI span p p span 基于 AI 大模型的 C 代码审查工具 支持多种国产及国际 AI 模型 提供命令行和 Visual Studio 扩展两种使用方式 在代码提交前自动进行智能审查 帮助开发者发现潜在的代码缺陷 性能瓶颈和安全漏洞 span p

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



 

CodeReviewAI

基于 AI 大模型的 C# 代码审查工具,支持多种国产及国际 AI 模型,提供命令行和 Visual Studio 扩展两种使用方式。在代码提交前自动进行智能审查,帮助开发者发现潜在的代码缺陷、性能瓶颈和安全漏洞。

功能特性多模型支持

支持 4 种 AI 大模型,可自由切换:

模型

适配器

默认模型 ID

特点

豆包 (Doubao)

DoubaoAdapter doubao-seed-2-0-code-preview-

专注中文技术栈,代码质量与性能优化

千问 (Qianwen)

QianwenAdapter qwen-plus

强调安全漏洞检测(SQL注入、XSS、空引用)

OpenAI

OpenAIAdapter gpt-4-turbo

英文审查,.NET/ASP.NET Core **实践

智谱 (Zhipu)

ZhipuAdapter glm-4

中文技术术语,本地化文档引用

智能代码审查
  • Git Diff 分析

    :自动获取 Git 仓库中的代码变更,仅审查修改的代码行及其上下文

  • C# 专项审查

    :仅对 .cs文件进行审查,针对 .NET 6/8、C# 10/11、ASP.NET Core 技术栈

  • RCIF 提示词框架

    :使用 Role-Context-Instruction-Format 结构化提示词,确保审查结果规范

  • 优先级标注
  • 结构化输出

    :每个问题包含位置、原始代码、改进建议、解释和参考文献

审查结果缓存
  • 基于 SHA256 哈希的审查结果缓存,避免重复调用 API
  • 可配置缓存过期时间(默认 30 分钟)
Git 集成
  • Pre-commit Hook

    :安装 Git 钩子,在 git commit时自动触发 AI 审查

  • 信号文件机制

    :通过文件信号与 Visual Studio 扩展通信,实现跨进程审查

  • 自动提交

    :审查通过后可自动执行 git commit/push 操作

Visual Studio 扩展
  • 审查窗口

    :左右分栏展示修改代码与 AI 改进建议

  • 模型选择

    :在审查窗口中实时切换 AI 模型

  • 一键操作

    :审查完成后可直接提交本地暂存、推送、或拉取后推送

  • 设置窗口

    :图形化配置默认模型、API 密钥和缓存时间

  • 暗色主题

    :与 Visual Studio 暗色主题一致的 UI 风格

项目结构CodeReviewAI/

├── config/

│ └── config.json # 模型配置文件

├── src/

│ ├── CodeReviewAI.Core/ # 核心库

│ │ ├── Adapters/ # AI 模型适配器

│ │ │ ├── IModelAdapter.cs # 适配器接口

│ │ │ ├── ModelAdapterFactory.cs # 适配器工厂

│ │ │ ├── OpenAIAdapter.cs # OpenAI 适配器

│ │ │ ├── DoubaoAdapter.cs # 豆包适配器

│ │ │ ├── QianwenAdapter.cs # 千问适配器

│ │ │ └── ZhipuAdapter.cs # 智谱适配器

│ │ ├── Git/

│ │ │ └── GitService.cs # Git 操作服务

│ │ ├── Models/

│ │ │ ├── GitDiffEntry.cs # Git Diff 数据模型

│ │ │ ├── ModelConfig.cs # 模型配置模型

│ │ │ ├── ReviewIssue.cs # 审查问题模型

│ │ │ └── ReviewResult.cs # 审查结果模型

│ │ ├── Prompts/

│ │ │ ├── PromptTemplates.cs # 提示词模板

│ │ │ └── RcifPromptBuilder.cs # RCIF 提示词构建器

│ │ └── Services/

│ │ ├── CodeReviewService.cs # 代码审查服务

│ │ ├── ICodeReviewService.cs # 审查服务接口

│ │ └── ReviewCacheService.cs # 审查缓存服务

│ ├── CodeReviewAI.Console/ # 命令行工具

│ │ └── Program.cs # CLI 入口

│ └── CodeReviewAI.VSExtension/ # Visual Studio 扩展

│ ├── CodeReviewAIPackage.cs # VS 扩展主包

│ ├── Commands/

│ │ ├── ReviewBeforeCommitCommand.cs # 审查命令

│ │ └── ReviewSettingsCommand.cs # 设置命令

│ └── UI/

│ ├── ReviewResultWindow.xaml(.cs) # 审查结果窗口

│ └── SettingsWindow.xaml(.cs) # 设置窗口

└── CodeReviewAI.slnx # 解决方案文件

配置说明

配置文件位于 config/config.json,格式如下:

{

"DefaultModel": "doubao",

"CacheExpirationMinutes": 30,

"Models": {

"doubao": {

"PromptPrefix": ,

"ApiUrl": "https://ark.cn-beijing.volces.com/api/v3",

"ApiKey": "your-doubao-api-key",

"Temperature": 0.7,

"TopP": 0.9,

"MaxTokens": 2000

},

"qianwen": {

"PromptPrefix": ,

"ApiUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",

"ApiKey": "your-qianwen-api-key",

"ModelId": "qwen-plus",

"Temperature": 0.7,

"TopP": 0.9,

"MaxTokens": 1000,

"StopSequences": [ "

#”]

},

“openai”: {

“PromptPrefix”: “You are a senior C# code reviewer…”,

“ApiUrl”: https://api.openai.com/v1”,

“ApiKey”: “your-openai-api-key”,

“ModelId”: “gpt-4-turbo”,

“Temperature”: 0.7,

“TopP”: 0.9,

“MaxTokens”: 2000

},

“zhipu”: {

“PromptPrefix”: ,

“ApiUrl”: https://open.bigmodel.cn/api/paas/v4”,

“ApiKey”: “your-zhipu-api-key”,

“ModelId”: “glm-4”,

“Temperature”: 0.7,

“TopP”: 0.9,

“MaxTokens”: 2000,

“ExtraParameters”: {

“response_format”: { “type”: “markdown”}

}

}

}

}

配置项说明

字段

说明

默认值

DefaultModel

默认使用的模型键名

“doubao” CacheExpirationMinutes

审查结果缓存过期时间(分钟)

30 Models. .PromptPrefix

模型专属提示词前缀

各模型预设

Models. .ApiUrl

API 端点地址

-

Models. .ApiKey

API 密钥

-

Models. .ModelId

模型标识符

-

Models. .Temperature

生成温度

0.7 Models. .TopP

Top-P 采样参数

0.9 Models. .MaxTokens

最大生成 Token 数

2000 Models. .StopSequences

停止序列

可选

Models. .ExtraParameters

额外参数

可选

命令行用法 基本语法 dotnet exec CodeReviewAI.Console.dll – command <命令> [选项]

选项

选项

说明

默认值

–command

要执行的命令

review –path

项目/仓库路径

当前目录

–model

使用的模型键名

doubao –config

配置文件路径

自动查找

–format

输出格式(markdown/json/text

markdown
可用命令review- AI 代码审查

获取 Git 仓库中的 C# 代码变更,使用 AI 模型进行审查:

dotnet execCodeReviewAI.Console.dll –commandreview –path /path/to/repo –model doubao –format markdown

diff- 查看代码变更

仅显示 Git 仓库中的 C# 代码变更,不进行审查:

dotnet execCodeReviewAI.Console.dll –commanddiff –path /path/to/repo

commit- 提交到本地仓库

暂存所有变更并提交到本地 Git 仓库:

dotnet execCodeReviewAI.Console.dll –commandcommit –path /path/to/repo

push- 提交并推送

暂存、提交并推送到远程仓库:

dotnet execCodeReviewAI.Console.dll –commandpush –path /path/to/repo

pull-push- 拉取后提交并推送

先拉取远程更新(rebase),再暂存、提交并推送:

dotnet execCodeReviewAI.Console.dll –commandpull-push –path /path/to/repo

list-models- 列出可用模型

显示配置文件中所有可用的 AI 模型:

dotnet execCodeReviewAI.Console.dll –commandlist-models –format json

test-connection- 测试模型连接

测试指定 AI 模型的 API 连接是否正常:

dotnet execCodeReviewAI.Console.dll –commandtest-connection –model doubao

hook-init- 安装 Pre-commit Hook

在 Git 仓库中安装 CodeReviewAI 的 pre-commit 钩子:

dotnet execCodeReviewAI.Console.dll –commandhook-init –path /path/to/repo

安装后,每次执行 git commit时会自动触发 AI 审查。需要 Visual Studio 扩展处于运行状态来响应审查请求。

hook-uninstall- 卸载 Pre-commit Hook

卸载 CodeReviewAI 的 pre-commit 钩子并恢复原有钩子:

dotnet execCodeReviewAI.Console.dll –commandhook-uninstall –path /path/to/repo

Visual Studio 扩展用法安装

  1. 构建 CodeReviewAI.VSExtension项目生成 .vsix文件
  2. 双击 .vsix文件或在 Visual Studio 的「扩展」→「管理扩展」中安装
  3. 重启 Visual Studio
使用审查功能
  1. 打开一个包含 Git 仓库的解决方案
  2. 修改 C# 代码文件
  3. 通过菜单或快捷键触发「Review Before Commit」命令
  4. 在弹出的审查窗口中:
    • 左侧面板

      :显示修改的代码(绿色高亮变更行)

    • 右侧面板

      :显示 AI 改进建议(Markdown 渲染)

    • 模型选择器

      :切换不同的 AI 模型

    • 刷新审查

      :重新执行审查

    • 提交本地暂存

      :审查通过后提交到本地

    • 推送

      :提交并推送到远程

    • 拉取然后推送

      :先 pull rebase,再提交推送

    • 取消

      :放弃提交

使用设置功能

通过菜单触发「Review Settings」命令,在设置窗口中可以:

  • 选择默认模型
  • 查看配置文件路径
  • 修改缓存过期时间
  • 配置各模型的 API 密钥(OpenAI、豆包、千问、智谱)
Pre-commit Hook 自动审查

当 Visual Studio 打开解决方案时,扩展会自动安装 pre-commit 钩子。此时执行 git commit的流程为:

  1. Git 触发 pre-commit 钩子
  2. 钩子写入信号文件 codereviewai-request
  3. VS 扩展检测到信号,弹出审查窗口
  4. 用户确认提交 → 写入 APPROVED,提交继续
  5. 用户取消 → 写入 REJECTED,提交被阻止
  6. 超时(30秒)→ 自动放行提交

关闭解决方案时,扩展会自动卸载钩子并清理信号文件。

审查输出格式

审查结果遵循标准 Markdown 结构:

# 代码审查结果

问题列表

1. [问题标题] [高优先级/建议]

- 位置:文件名.cs 第N行

- 原始代码

csharp

// original code

  • 改进建议

// improved code
  • 解释

    :[explanation]

  • 参考文献

    :[reference link]

若代码没有问题,则返回:

markdown

# 代码审查结果

未发现问题,代码质量良好。

技术栈

  • .NET 8

    - 运行时框架

  • LibGit2Sharp

    - Git 仓库操作

  • Microsoft.Extensions.AI

    - AI 模型抽象层

  • OpenAI .NET SDK

    - OpenAI 兼容 API 客户端

  • Microsoft.Extensions.Caching.Memory

    - 内存缓存

  • Microsoft.VisualStudio.Shell

    - Visual Studio 扩展开发

  • WPF

    - 扩展 UI 界面

架构设计适配器模式

所有 AI 模型通过 IModelAdapter接口统一抽象,由 ModelAdapterFactory管理适配器实例。新增模型只需:

  1. 实现 IModelAdapter接口
  2. ModelAdapterFactory中注册
  3. config.json中添加模型配置
RCIF 提示词框架

使用 Role-Context-Instruction-Format 四段式结构化提示词:

  • Role

    :定义 AI 角色(如资深 C# 审查专家)

  • Context

    :提供代码上下文(变更代码 + 文件路径)

  • Instruction

    :审查指令(问题定位 → 建议生成 → 优先级标注)

  • Format

    :输出格式约束(标准 Markdown 结构)

信号文件通信

VS 扩展与 Git Hook 之间通过文件系统信号通信:

codereviewai-active → 标记扩展已激活

codereviewai-request → Hook 请求审查

codereviewai-response → 扩展返回审查结果(APPROVED/REJECTED)

开发与构建前置条件

  • Visual Studio 2022(含 VS SDK 工作负载)
  • .NET 8 SDK
构建dotnet build CodeReviewAI.slnx

构建 VS 扩展dotnet build src/CodeReviewAI.VSExtension/CodeReviewAI.VSExtension.csproj

生成的 .vsix文件位于 bin/目录下。

开源地址: https://gitee.com/dyx88168/AICodeReview

小讯
上一篇 2026-04-26 19:36
下一篇 2026-04-26 19:34

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/280992.html