技术实践
京东物流以双RAG与本地重排序执行代码审查
概述
京东物流团队针对流水线式 AI 评审(固定行数截断导致全局上下文缺失、Prompt 硬编码规则膨胀)和单纯 JoyAgent 知识库 RAG(LLM 知识归纳失真、检索与生成联动失效、缺少项目身份感知)两条路线的缺陷,构建双 RAG 代码评审系统:先按文件扩展名(.flow、.dt)识别项目类型且 EDI 优先于普通 Java,决定后续评审规则与检索策略。 再用自研 Token 估算公式(基础开销 63 tokens、中文每 2 字 1 token 等)在预估超过 10 万 token 时触发分块,按 git diff 文件边界与方法签名模式做两级语义完整切分,单块上限 6 万 token 以预留 40% 安全余量。检索侧一路走知识工程做业务领域识别(WMS/ECLP/TC)、关键词提取过滤与语义搜索,另一路走 JoyAgent 自定义知识库召回评审规则,并对结果用部署在本地的 bge-reranker-base.onnx(HuggingFace 分词器 + ONNX Runtime Java API)做查询-文档对重排序后再送入 JoyAI 大模型生成行级评审意见并回写 MR。 系统在大促封板前置的需求高峰中拦截了两类真实问题:三方系统地址编码空值导致 NumberFormatException,以及 EDI XML 配置误用变量而非字面常量的语法错误。