|
|
|
|
不止于发现问题 — 审查完成后,你可以与 AI 持续对话,深入理解代码逻辑、探索优化方案、获取修复代码:
📝 提交代码 🔍 AI 审查报告 💬 多轮对话
┌──────────┐ ┌──────────────┐ ┌────────────────────────────┐
│ 粘贴代码 │ ───→ │ 发现 3 个问题 │ ───→ │ "这个 SQL 注入怎么修复?" │
│ 或上传文件│ │ · SQL 注入 │ │ → AI 给出参数化查询方案 │
│ │ │ · 性能隐患 │ │ │
│ │ │ · 类型缺陷 │ │ "为什么用参数化更好?" │
│ │ └──────────────┘ │ → AI 解释原理和攻击场景 │
│ │ │ │
│ │ │ "帮我重构整个查询函数" │
│ │ │ → AI 生成完整修复代码 │
│ │ │ │
│ │ │ "还有其他安全问题吗?" │
│ │ │ → AI 继续深入分析... │
└──────────┘ └────────────────────────────┘
典型使用场景:
| 场景 | 示例提问 |
|---|---|
| 🔍 理解问题 | "这个空指针在哪一行?什么情况下会触发?" |
| 🛠️ 获取修复 | "直接给我修复后的完整代码" |
| 📚 学习原理 | "为什么这里会有 N+1 查询?什么是 eager loading?" |
| 🔄 探索方案 | "除了你建议的方案,还有其他实现方式吗?各自优缺点?" |
| ✅ 验证思路 | "我打算用 Redis 缓存来优化,这个方案可行吗?" |
| 🧪 生成测试 | "帮我针对这些修复写单元测试" |
┌─────────────────────────────────────────────────────────────────┐
│ Frontend (React) │
│ Vite + React 18 + TypeScript + Zustand + TailwindCSS │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │
│ │ Monaco │ │ React-Query │ │ Zustand │ │
│ │ Editor │ │ (Data) │ │ (State) │ │
│ └─────────────┘ └─────────────┘ └─────────────────────────┘ │
└───────────────────────────┬─────────────────────────────────────┘
│ HTTP + REST API
▼
┌─────────────────────────────────────────────────────────────────┐
│ Backend (NestJS) │
│ ┌───────────┐ ┌────────────┐ ┌─────────────────────────┐ │
│ │ Config │→ │ AI Agent │→ │ MongoDB │ │
│ │ Module │ │ Service │ │ (Mongoose) │ │
│ └───────────┘ └────────────┘ └─────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ LangChain.js + Zod Schema │ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ AI Provider Layer │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ OpenAI │ │ Claude │ │ DeepSeek │ │ 自定义 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────────┘
| 环境 | 版本 |
|---|---|
| Node.js | >= 18 |
| pnpm | >= 9 |
| MongoDB | >= 6 |
# 1. 克隆项目
git clone https://github.com/Sfrui/ai-code-review-agent.git
cd ai-code-review-agent
# 2. 安装依赖
pnpm install
# 3. 配置环境变量
cp .env.example apps/server/.env
# 编辑 apps/server/.env,填入 LLM_API_KEY
# 4. 启动开发服务器
pnpm dev访问 http://localhost:5173 开始使用 🎉
# 一键部署后端 + MongoDB
git clone https://github.com/Sfrui/ai-code-review-agent.git
cd ai-code-review-agent
docker compose up --build点击展开项目结构
ai-code-review-agent/
├── apps/
│ ├── server/ # NestJS 后端
│ │ └── src/
│ │ ├── modules/
│ │ │ ├── ai/ # 🤖 AI Agent 模块
│ │ │ ├── chat/ # 💬 多轮对话模块
│ │ │ ├── config/ # ⚙️ 配置模块
│ │ │ ├── database/ # 🗄️ 数据库模块
│ │ │ └── review/ # 📋 审查模块
│ │ └── common/ # 🔧 通用工具
│ └── web/ # React 前端
│ └── src/
│ ├── pages/ # 📄 页面组件
│ ├── components/ # 🧩 UI 组件
│ ├── api/ # 🌐 API 封装
│ ├── stores/ # 📦 状态管理
│ └── hooks/ # 🪝 React Hooks
├── packages/shared/ # 📚 共享类型和 Schema
├── nginx/ # 🌐 Nginx 反向代理配置
├── docker-compose.yml # 🐳 Docker 编排
├── CLAUDE.md # 🤖 Claude Code 项目指引
└── README.md # 📖 项目说明
| 变量名 | 必填 | 默认值 | 说明 |
|---|---|---|---|
LLM_API_KEY |
✅ | - | LLM API 密钥 |
LLM_PROVIDER |
openai |
提供商 | |
LLM_MODEL |
gpt-4o |
模型名称 | |
LLM_TEMPERATURE |
0.1 |
温度 | |
LLM_MAX_TOKENS |
4096 |
最大 token | |
LLM_TIMEOUT |
60000 |
超时时间 | |
MONGODB_URI |
mongodb://localhost:27017/ai-code-review |
MongoDB 地址 | |
PORT |
3000 |
服务端口 |
欢迎所有形式的贡献!
- Fork 本仓库
- 创建你的特性分支 (
git checkout -b feature/AmazingFeature) - 提交你的修改 (
git commit -m 'feat: Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开一个 Pull Request
- 审查任务删除功能(带确认弹窗防误删)
- C 语言支持(语法审查、文件上传、扩展名映射)
- AI 审查提示词适配多语言特性(C 语言指针/内存问题等)
- Nginx 反向代理配置目录
- CLAUDE.md 项目指引文件
- HistoryPage 卡片布局优化,删除按钮 hover 显示
- TailwindCSS 配置:新增 scale-in 动画,修复 require() 为 ESM import
- Docker Compose 配置注释优化
- .gitignore 补充 shared/dist 目录
- 移除过时的 server-deploy.sh 部署脚本
- 多轮对话追问功能(SSE 流式输出)
- 快捷追问按钮(如何修复、详细解释、多种方案、修复后测试)
- 对话历史持久化到数据库
- AI 设置页面「测试连接」按钮
- API 延迟显示和智能错误提示
- 修复 SSE 流式响应被拦截器破坏的问题
- 修复大段代码提交 500 错误(body-parser 1MB → 10MB)
- 修复 Vite 代理缓冲导致 SSE 中断的问题
- 多维度代码审查(缺陷、安全、性能、规范)
- 支持多种 AI 模型(OpenAI、Claude、DeepSeek 等)
- Monaco Editor 代码编辑器
- 实时审查进度显示
- 历史记录持久化
- Docker 一键部署
- SSL 证书自动配置
本项目采用 MIT License 开源协议
如果觉得有用,请给个 ⭐ 支持一下!
Made with ❤️ by Sfrui