基于AI的CodeReview:缺陷检测、合规校验与代码优化
来源:互联网
时间:2026-06-23 14:10:31
深夜提交代码后,因为一个低级错误在晨会上被当场“公开处刑”——这样的经历,恐怕不少开发者都深有体会。Merge Request堆积如山,人工审查效率低到仿佛用肉眼在干草堆里找那根针。更糟的是,线上事故追溯时才发现,竟然是早就埋下的代码异味惹的祸。
现在,有一套方案能彻底改变这个局面:Git提交即触发AI审查,无需等待人工介入,每次提交的代码都会被自动扫描,风险代码无处藏身。接下来,我们一步一步拆解如何搭建这样一套AI审查机器人。
搭建AI审查机器人
1️⃣ 环境部署(Python 3.10+)
# 创建虚拟环境(避免依赖冲突)
python -m venv venv
source venv/bin/activate # Linux/Mac
venvScriptsactivate # Windows
# 一键安装依赖
pip install -r requirements.txt
2️⃣ GitLab Webhook配置
- 进入GitLab项目 → 设置 → Webhooks
- 填写关键参数:
- :
URL
http://你的服务器IP:5001/review/webhook - : 精准勾选
触发来源
推送事件和合并请求事件

- 进入GitLab项目 → 设置 → 项目访问令牌
- 令牌名称随意输入,选择角色:Reporter,选择范围:api, read_api, read_repository, write_repository
- 创建项目令牌后,复制令牌(记得立刻复制下来,后面就看不到了)

3️⃣ 飞书机器人配置
- 进入飞书消息群 → 设置 → 群机器人 → 添加机器人 → 自定义机器人 → 添加
- 复制Webhook地址,后面会用到

4️⃣ 配置项目.env文件
#服务端口
SERVER_PORT=5001
#大模型供应商配置,支持deepseek or ollama
LLM_PROVIDER=deepseek
#DeepSeek
DEEPSEEK_API_KEY=*****
OPENAI_API_BASE_URL=https://api.deepseek.com
DEEPSEEK_API_MODEL=deepseek-chat
#支持review的文件类型(未配置的文件类型不会被审查)
SUPPORTED_EXTENSIONS=.ja va,.py,.php,.yml
#提交给大模型的最长字符数,超出的部分会截断,防止大模型处理内容过长或Token消耗过多
REVIEW_MAX_LENGTH=20000
#飞书消息推送: 0不发送消息,1发送消息
FEISHU_ENABLED=1
FEISHU_WEBHOOK_URL=飞书机器人配置的webhook地址
#Gitlab配置
GITLAB_ACCESS_TOKEN=项目访问令牌
PUSH_REVIEW_ENABLED=1
5️⃣ 启动项目
# 启动审查API(端口5001)
python api.py
# 启动监控面板(端口5002)
streamlit run ui.py --server.port=5002 --server.address=0.0.0.0


6️⃣ 提交项目代码
合并和推送代码后,系统会自动比对前后两次提交的差异性。如果代码有变化,就会提交给大模型进行审核,审核结果会同时推送到GitLab和飞书群消息中。
飞书消息:

GitLab中的提交记录:

代码审核统计:
