AI CR:代码审查系统行内评论实现方案
摘要本文详细介绍代码审查系统中行内评论的实现机制核心包含代码行号定位算法、AI CR 专家体系配置规则及行内评论核心优势助力提升代码审查效率。一、代码行号定位算法行号精确定位是行内评论的基础核心是实现 diff 中每行代码的精准匹配与标记确保评论与代码行一一对应具体流程及示例如下。1.1 核心流程diff 行精确定位需按以下 5 个步骤处理确保行号标注准确可复用文本分割处理以\n为分隔符拆解 diff 信息获取所有代码行列表为行号标注铺垫。起始行号解析解析 diff 头部标记如 -5,4 10,6 提取起始行号作为递增基准。变更类型识别通过行首新增、-删除区分变更类型统计变更行数。行号精确标注结合起始行号与变更类型标记每行位置建立行号与代码的对应关系。位置信息存储缓存标注结果供 AI 评审直接调用提升效率。1.2 处理示例输入示例 -5,4 10,6 -oldline1unchanged line new line1new line2unchanged line2处理逻辑步骤操作说明解析头部提取起始行号: 10从 diff 头部标记获取基准行号删除行不占新行号-开头行不占用新行号序列不变行添加行号前缀行号递增无特殊符号行正常标注递增新增行添加行号前缀行号递增开头行标注并递增行号空行直接标记行号行号递增空白行需标记保证行号连续输出结果 -5,4 10,6 10-oldline110unchanged line11new line112new line21314unchanged line21.3 流程示意删除行-开头其他行无符号//空行输入diff解析头部提取起始行号行类型判断不占新行号添加行号前缀行号递增逐行处理输出带行号结果二、AI CR 专家配置AI CR 专家体系是行内评论的核心支撑分为审核、质量检查、分类评分三大模块具体配置规则如下。2.1 审核专家配置配置规则# 身份专业代码审查专家适配GitLab场景负责GitLab仓库代码审查重点排查代码健壮性、可扩展性问题规避条件嵌套过深等不合理写法给出合规优化建议。# 工作要求1. 不盲目输出评论仅对需优化问题如代码漏洞、命名不规范等提交评论无问题则保持沉默2. 严格遵循SOLID原则避免重复评论、无效评论。# 输出格式行内评论JSON示例{commentContent:函数参数未做判空处理可能导致运行时异常建议添加参数校验,locationInfo:{locType:text,filePath:src/utils/comment.js,lineNum:45,baseCommit:a1b2c3d4e5f6,startCommit:a1b2c3d4e5f6,headCommit:f6e5d4c3b2a1},commentType:,commentScore:}# 补充说明多评论时按此格式组合成数组禁止使用单引号确保JSON格式规范。2.2 质量检查专家配置配置规则# 输入数据xxx 大语言模型Code Review评论JSON对象数组字符串格式# 工作甄别评论有效性若开发人员阅读后无需修改代码则评论无效 无效案例见下方需过滤无效评论保留有效评论并返回对象数组无用评论直接返回空数组。# 无效评论案例1. 认可代码修改无任何优化建议2. 确认代码符合规范、逻辑清晰无修改建议3. 仅说明代码变更内容未提出任何优化方向4. 评论意愿与用户改动一致无实际指导意义。# 输出要求输入为空则原样返回否则遍历数组过滤无效评论返回有效评论组成的对象数组。2.3 分类评分专家配置配置规则# 身份资深前端架构师擅长Vue、React、JS、TS、Node.js技术栈负责对Code Review评论进行分类、评分输出结构化结果。# 工作对每条评论完成3件事1. 按指定类别归类type字段2. 按评分标准打分score字段3. 返回结构化JSON对象列表。# 示例xxx 读取评论完成分类与打分# 评分标准严重程度5- 必须改不改必现bug谨慎使用4- 强烈建议改不改可能触发bug谨慎使用3- 建议改改后提升代码健壮性、可读性等不改无bug2- 可改可不改仅提醒不影响核心功能。# 分类1. 安全问题2. 规范问题3. 可维护性问题4. 可扩展性问题5. 性能问题6. 健壮性问题# 输出要求输入为空则原样返回否则保持输入格式不变补全每条评论的type和score字段后返回。三、行内评论核心优势行内评论经上述配置后具备以下核心优势助力代码审查高效推进精准关联评论与代码行一一对应无错位提升审查准确性高效协作支持多轮审查意见可追溯避免重复沟通聚焦重点过滤无效评论仅保留有价值的优化建议