新闻详情

新闻详情

首页 / 资讯中心 / 详情

跨仓库代码RAG实战:如何对百万行代码做语义检索?ai-engineering-from-scratch手把手教程

发布时间:2026/9/17 3:15:53来源:尧图网络
跨仓库代码RAG实战:如何对百万行代码做语义检索?ai-engineering-from-scratch手把手教程
跨仓库代码RAG实战如何对百万行代码做语义检索ai-engineering-from-scratch手把手教程【免费下载链接】ai-engineering-from-scratchLearn it. Build it. Ship it for others.项目地址: https://gitcode.com/GitHub_Trending/ai/ai-engineering-from-scratchai-engineering-from-scratch是一个从零构建 AI 工程师的开源课程仓库其中 Capstone 02「RAG over Codebase」专门演示了跨仓库代码RAG的完整方案对多个代码仓库做 AST 感知切块、混合语义检索向量 BM25、重排序并输出带文件:行号引用的答案。本文将带你理解它的核心原理并跑通仓库里自带的可运行示例。为什么代码搜索需要 RAG当代码库长到几十万甚至上百万行时传统的字符串搜索会遇到三个问题理解不了意思你问权限是怎么校验的但代码里只有check_permission关键词根本对不上跨仓库问答无解一个问题的答案可能横跨 4 个仓库的文件上下文装不下即便模型有 100 万 token 上下文也扛不住整个单体仓库必须先做排序检索。生产级的解法就是一条 RAG 流水线切块 → 嵌入 → 混合检索 → 重排 → 带引用地回答。核心思路一AST 感知切块而不是按 token 硬切固定窗口切块会把一个函数拦腰截断导致检索质量暴跌。Capstone 的做法是用 tree-sitter 解析源码按函数/类节点边界切块每块记录{仓库, 路径, 起始行, 结束行, 符号名, 代码体, 自然语言摘要}关键亮点是每个块额外附一句 LLM 生成的摘要。这样用户问 how is X authorized 时即使代码里只有check_permission摘要中提到 authz 也能被命中——相当于给检索增加了第三种模态。核心思路二混合检索 倒数排名融合RRF纯向量搜索对按符号名精确查找很弱纯 BM25 又不懂语义。所以两个索引并行查询再用倒数排名融合Reciprocal Rank Fusion合并结果每个候选按1/(60 排名)累计分数两路都靠前的结果自然胜出BM25 侧还做了字段加权符号名权重 ×4、摘要 ×2、代码体 ×1兼顾找叫 X 的函数和找做 X 的函数两类查询。仓库里的 Python 参考实现只有两百多行包含真实可跑的 BM25、余弦相似度索引和 RRF 融合code/main.py。TypeScript 版把它做成了 HTTP API融合逻辑见 retrieval.ts索引实现见 index_store.ts。核心思路三增量索引与强制引用增量重索引git push 触发 diff只重新嵌入变化的代码块。目标是200 万行代码库上50 个文件的提交 60 秒内可被检索引用强制回答中每个论断都必须带(仓库/路径:起止行)锚点后过滤器会直接丢弃没有引用的内容杜绝模型幻觉引用。动手跑一遍示例先克隆仓库本地离线可运行无需任何 API Keygit clone https://gitcode.com/GitHub_Trending/ai/ai-engineering-from-scratch方式一Python 快速演示。内置 6 个模拟代码块来自 uploader / auth / client / catalog 四个仓库跑三条真实跨仓库问题python phases/19-capstone-projects/02-rag-over-codebase/code/main.py方式二TypeScript 服务版。启动后自动做健康检查和三条探针查询cd phases/19-capstone-projects/02-rag-over-codebase/code/ts npm install npm start它会暴露/query?q...接口返回 dense、sparse、融合后三路的 top 结果及最终引用——示例语料见 corpus.ts。如何评价检索质量Capstone 的评分标准可以直接当作你自建系统时的验收清单docs/en.md指标含义MRR10 / nDCG10正确代码块是否排在前 10引用忠实度论断中带可验证文件:行锚点的比例增量索引正确性git push 到可被检索的耗时p95 延迟大规模查询语料下的响应时间相关路径速查完整概念与架构文档phases/19-capstone-projects/02-rag-over-codebase/docs/en.mdPython 参考实现phases/19-capstone-projects/02-rag-over-codebase/code/main.pyTypeScript API 实现phases/19-capstone-projects/02-rag-over-codebase/code/ts/src/技能产出文档phases/19-capstone-projects/02-rag-over-codebase/outputs/skill-codebase-rag.md前置 RAG 基础课phases/11-llm-engineering/06-rag/docs/en.md小结跨仓库代码 RAG 的精髓不在模型而在工程AST 感知切块保证切得对混合检索 重排保证找得准增量索引保证更新快强制引用保证说得实。仓库里的双语言示例让你无需任何外部服务就能完整跑通这条流水线建议从main.py读起再看 TypeScript 版的 HTTP 封装最后对照文档实现自己的版本。【免费下载链接】ai-engineering-from-scratchLearn it. Build it. Ship it for others.项目地址: https://gitcode.com/GitHub_Trending/ai/ai-engineering-from-scratch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Robomaster硬件调试实战讲义:从故障定位到可靠性工程 2026/9/17 3:51:59

Robomaster硬件调试实战讲义:从故障定位到可靠性工程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
AI写作实用指南:高效生成优质内容的方法与技巧解析 2026/9/17 3:51:59

AI写作实用指南:高效生成优质内容的方法与技巧解析

作为一名还在读博的 “老油条”,我最怕的就是文献调研环节 —— 不是怕读论文,而是怕那种 “搜了半天全是废纸” 的空虚感。 以前一头扎进数据库,关键词调来调去,结果还是筛出一堆鸡肋,时间成本高到让人想摆烂。但 20…

阅读更多 →
招聘数据可视化:Python爬虫到Flask图表展示的完整实现 2026/9/17 3:51:59

招聘数据可视化:Python爬虫到Flask图表展示的完整实现

简介:这是一份基于Python的招聘数据分析可视化系统毕业设计资料包,面向计算机相关专业毕业生及需要完成数据类课题设计的同学。资源围绕招聘数据的采集、处理与可视化展示,构建了从爬虫脚本、数据清洗分析到前端图表展示的完整闭环&#xff0…

阅读更多 →
用OpenCV和Flask搭建本地家庭监控系统:从视频流到运动检测 2026/9/17 3:51:59

用OpenCV和Flask搭建本地家庭监控系统:从视频流到运动检测

简介:基于OpenCV与Flask的家庭监控系统源码包,涵盖视频捕获、图像处理、运动检测与网页端实时预览,适合计算机视觉入门、Python Web开发及智能家居项目参考。压缩包共30个文件、约1.15MB,含10个Python脚本(覆盖核心监控…

阅读更多 →
把 CC-Switch 的上游 Key 换成 TaoToken 后,WSL2 里也能跑通 Claude Code 2026/9/17 3:51:59

把 CC-Switch 的上游 Key 换成 TaoToken 后,WSL2 里也能跑通 Claude Code

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
基于SpringBoot+SSM的校园防诈骗宣传平台设计与实现 2026/9/17 3:48:58

基于SpringBoot+SSM的校园防诈骗宣传平台设计与实现

2. 核心功能模块设计:用户端与管理员端2.1 用户端功能拆解:从“被动看”到“主动防”用户端是整个平台的流量入口,也是防骗教育真正落地的场景。在设计时,我把它拆成四大块:资讯浏览、案例学习、在线答题、留言反馈。每…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞