背景: Q1组内OKR 定了一个用AI 进行code review的任务,主要还是过年的时候 deepseek爆火 虽然组内业务一直使用AI LLM/TTS, Leader那边也是一直推AI进行提高开发效率 或者自己做一些AI工具 然后定下来Q1任务ai_code_review, 组内多个人一起做 各自做自己 没有合作关系(无语 浪费大家时间 一起合作讨论不好吗),看谁的效果好,在进行推进,感觉在比赛一样,结果最后大家实现的效果都不好, 都是demo形式的版本 笑死 现在回想起来。
dmeo能做的只有 识别语法错误、检查代码风格和安全漏洞, 长上下文和业务理解的情况下表现不好
代码安全性保证不了(使用LLM开放api),审查上下文关联不了BUG发现不了(片段式的代码review 没有上下文关联), 内部标准信息获取不到(依赖于LLM训练的数据的规范 组内的code规范 没有上RAG知识库)等等一系列问题。
目前1.0.0 最小可行版本(MVP)
- 技术方案: FastAPI,OpenAI,Ollama,zhipuai,requests
- 👉 上线目的:用最小的成本跑通闭环
- 流程 +效果
- 用户提交 MR → GitLab Webhook → 内部应用解析 diff
- 生成 Prompt → 调用 LLM → 输出结构化 Markdown 评论
- 评论发布在 MR Note 底部 → 飞书群通知
- 在mr/push commit 的note中进行评论
1.0.0 版本
1.0.0 版本 最简单的版本就是 Gitlab+LLM 用最小的成本/最少的时间达到效果
遇到了什么问题 怎么解决的?
- AI评论数量过多,造成干扰 需要就是减少干扰评论
GitLab MR的webhook在MR有任何修改时都会触发(包括修改描述、提交新commit、关闭、合并)- 解决方式: 只处理首次提
MR时的全量改动,后续commit支持增量CR - 评论筛选机制,仅输出 High 及以上的改动评论
- 提升评论质量
- 上下文信息有限,目前只提供了行修改相关内容,单轮
AI分析缺乏自我验证和纠错能力 - 多轮
LLM分析: LLM 评论流程增加多轮校验,渐进式深度分析 (减少误判率/上下文理解更加全面)- 提示词中携带更丰富的上下文信息
- 由当前 改动行上下文 → 当前文件改动完整上下文
- 第一轮:初步识别问题
- 第二轮:审查第一轮结果,结合上下文再次分析
- 第三轮:对前两轮结果进行汇总与优化
- 上下文信息有限,目前只提供了行修改相关内容,单轮
- Gitlab api对接/回调数据解析
- 目前都是request 请求 有点麻烦 后续看看有没有直接拿来用的库
- diff 回调数据结构化 解析 修改代码行具体位置(确定需要评论的行 通过结构化数据处理,我们能够明确改动对应的新旧文件行数以及相关上下文,提高 AI 分析的准确性。)
遇到问题 & 解决方式总结:
- 噪音过多:LLM 产出评论泛滥,干扰开发者。
- → 优化触发逻辑,仅首次 MR 触发全量,后续增量触发;评论只保留 High 及以上等级。
- 上下文不足:单行 diff → 审查片面。
- → 多轮 LLM 分析(初筛 → 审核 → 汇总),逐步增加上下文(行 → 文件 → MR)。
- 回调解析繁琐:diff 定位难。
- → 将回调结构化,精确定位改动行。 ⚡ 1.0.0 版本虽然简单,但把“提交 MR → AI 自动审查 → 评论反馈”跑通,证明了可行性。
后续规划需要接入的能力 参考标准:基于大模型 + 知识库的 Code Review 实践
🔮 未来规划
- 基于 LangChain 重构代码封装 Agent,接入RAG知识库(Chroma/Faiss/Redis),文档Embedding、LLaMA Factory微调Code模型,实现本地小模型部署和行级代码评论。
- 数据安全: LLaMA Factory 小模型微调 本地部署。
- 自定义知识库: 轻量级向量数据库(Chroma/Faiss/Redis)搭建 文档 chunk embedding 模型。
- 评论到变更行: CR 助手将结果评论到变更代码行上 目前在Note下面。
- LangChain/LangGraph/LangSmith: 基于 LangChain/LangGraph/LangSmith 搭建 CR 助手的 Agent 架构。
- mcp 集成: CR 助手与 mcp 集成,实现代码变更自动触发 CR 助手。
目前自己简历写的(没什么亮点)
- 目前是用trae-pro claude-4 model 对项目进行优化了, FastAPI开放Gitlab回调接口,langchain(LLM调用/提示词模版/RAG集成)+RAG(FAISS/Chroma/Redis)+大模型微调集成(Qwen2.5-7B-Instruct模型微调+本地部署 LoRA方法对sft阶段微调 使用LLaMA Factory 数据集目录准备(代码规范))
- github.com/hakusai22/a…
2.0.0:RAG 增强 + 内部知识库
- 痛点:LLM 不懂公司内部框架 & Code Style,导致建议不落地。
- 方案:引入 RAG(检索增强生成) :
- 将项目代码总结、代码规范、优秀案例文档 → embedding → 存入向量数据库(Chroma/FAISS/Redis)。
- 每次 MR diff → 提取知识点 → 相似度搜索 → 将命中文档拼接到 Prompt,再交给 LLM 分析。 👉 效果:
- LLM 评论更贴合组内规范,不再“放空炮”。
- 支持动态更新知识库,快速适应团队规范变化。
- 技术方案: FastAPI,LangChain,RAG(Chroma,Faiss,Redis),Requests
2.0.0 版本 加一层内部知识库 存储(把项目代码总结,日常审批的好案例,Java/Python代码规范文档) 调用LLM直接query重写 加一层RAG增强式的搜索 根据当前diff数据相似性搜索-> 作为上下文+diff内容进行二次LLM 拿到结果 进行gitlab接口调用 评论
- 提⾼模型对code review专有信息的理解、增强模型在特定⾏业领域的知识、获取和⽣成最新的、实时的信息 - RAG 少量数据 支持实时性的更新
- 自定义知识库:CR 助手基于提供的飞书文档进行学习,将匹配部分作为上下文,结合代码变更进行 CR,这将大大提升 CR 的准确度,也更符合团队自身的 CR 规范。
Ollama模型介绍与本地化使⽤(Linux环境)
-
ollama官网地址 github.com/ollama/olla…
-
大模型基座只包含互联网上的公开数据,对公司内部的框架知识和使用文档并不了解, 解决方案就是rag知识库.
- RAG模块的话 参考下面的流程图进行逻辑编写 LLM 部分代码(节省token)提取code知识点汇总 再embedding去知识库中搜索匹配度topN文档 构成知识库上下文 进行模版填充
- 官方文档-知识库(内置)embedding 内置官方文档
- 日常review的好案例整理飞书 代码规范文档
3.0.0:安全与工程化
- 目标:合规、安全、降本增效。
- 方案:
- 模型微调 & 本地化部署
- 选用 Qwen2.5-7B、DeepSeek 等开源模型
- 使用 LoRA + LLaMA Factory 在组内代码规范数据集上做 SFT
- 部署在内网,隔离外网调用,避免敏感代码泄露
- Agent 架构(LangChain/LangGraph/LangSmith)
- Code Review 助手具备决策流转能力
- 自动处理 MR 全量/增量 diff,结合 RAG 知识库,多轮分析并评论到具体行 👉 收益:
- 模型微调 & 本地化部署
- 数据安全可控(内网闭环,不依赖外部 API)
- 模型对组内代码风格 & 框架知识掌握度提升
- 评审粒度细化(行级评论),减少人工重复劳动
3.0.0 版本 为了安全性合规问题
- 技术方向 LangChain/LangGraph/LangSmith 搭建Agent, LLaMAFactory微调小模型, 本地部署, RAG知识库搭建选型 文档embedding,
- 本地部署LLM 考虑到本地又是蒸馏的model(⼩模型能够在尽量保持性能的同时,显著减少模型的参数量和计算需求) 数据的训练需要自己增强, 增强model 在特定领域的知识点-SFT
- 下一步 进行model微调 Qwen2.5-7B-Instruct模型微调+本地部署 LoRA方法对sft阶段微调(最著名的部分参数微调)
- 使用LLaMA Factory(国内最火的微调框架) 数据集目录准备(代码规范) 拥有充足的数据
- 参考weclone开源项目 (通过历史聊天记录,复刻前任的消息聊天人)github.com/xming521/We…
- 数据安全:基于开源大模型做私有化部署,隔离外网访问,确保代码 CR 过程仅在内网环境下完成。
- 无调用次数限制:部署在内部平台,只有 GPU 租用成本。
可以微调的模型 去菜市场看看(千问/deepseek等等)
- LoRA (Low-Rank Adaptation) 在旁路添加两个可训练的低秩矩阵(A 和 B)训练时仅优化 A 和 B
2025/09/14 周日 现在10点了 累了 饭没吃 下楼抽根烟 从下午到晚上 一直在弄简历上的第二个项目 ai-code-review
简历优化(替换掉“流水账式写法”)
作为第三个版本项目就已经很成熟了,后续简历可以写成这样 目前实现是没有难点的 只能讲讲后续规划 现在实现阶段在哪?
AI Code Review 平台(GitLab MR 自动化审查助手)
- 独立设计并落地 GitLab+LLM 自动化 Code Review 平台,完成从 MVP → RAG 增强 → 私有化部署的三阶段迭代。
- 解决痛点:减少噪音评论(多轮分析+触发优化)、补齐上下文不足(行→文件→MR)、结合内部知识库提升准确率。
- 技术亮点:FastAPI + LangChain + RAG(Chroma/FAISS/Redis)+ LLaMA Factory 微调(Qwen/DeepSeek,本地化 LoRA-SFT)。
- 成果:代码安全内网闭环,行级精准审查;团队 CR 效率提升,内部规范得到自动化落地。
参考
- github.com/deepseek-ai…
- DeepSeek-R1本地部署简单使用 - shookm - 博客园
- 小白也能看懂的DeepSeek-R1本地部署指南
- www.youtube.com/watch?v=ZHm…
- github.com/deepseek-ai…
- ollama.com/library/dee…
- ollama.com/library/dee…
- cloud.tencent.com/developer/a…
- arxiv.org/abs/2501.15…
- ai-bot.cn/bitsai-cr/
- mp.weixin.qq.com/s/a5p57iv78…
- ollama.com/library/dee…
- github.com/sturdy-dev/…
- 代码变更风险可视化系统建设与实践
- 🚀 CI+GPT双引擎驱动,🤖 开启AI代码评审新纪元
- 构建可扩展的智能体系统:工程化方法与实践(一)
- github.com/ikoofe/chat…
- GitLab merge request 结合钉钉群消息机器人的全自动 Code Review 实践(含源码)——下 - 掘金
- 我是怎么用大模型帮忙 code review 的众所周知,code reivew 可以提高团队代码质量。但往往不是每个 - 掘金
- 基于GPT,对Merge Requests进行AI Code Review 《应用篇》最近公司机房建立了gpt模型,可以 - 掘金
- GitLab集成GPT进行自动化CodeReview实战本文实现GitLab基于Merge Request的ChatGP - 掘金
- 基于 ChatGPT Code Review 机器人代码评审是开发人员日常工作中不可或缺的一部分,它有助于确保代码质量, - 掘金
- 玩转 ChatGPT+极狐GitLab|自动化的MR 变更评审来了
- CodeReview with LLM in Gitlab
- github.com/mimo-x/Code…
- github.com/sunmh207/AI…
- vze9i86ezn.feishu.cn/docx/BuFidA…
- vze9i86ezn.feishu.cn/docx/MDZjdm…