9.0
重磅
AI SCORE
技术实践2026-08-20 23:31
代码库 RAG 实战:AST 分块策略让检索质量翻倍
dev.to · AI#RAG#代码检索#AST
Editor brief · 编辑速览
代码不适合 prose 分块,应基于 tree-sitter 语法树按函数/类/方法边界切分;元数据(路径、符号名、import)占检索信号一半;混合 BM25+embedding 并用调用图处理多跳问题。
代码的分块方式与普通文本不同。在函数中间切断会生成一个片段:语法无效、语义孤立,检索出来毫无用处。要基于语法树来分块。用 tree-sitter 解析,在函数、类和方法的边界处切分。卡内基梅隆大学和 Augment Code 的 cAST 论文用数据说明了这种做法的收益。**元数据占了检索信号的一半。**在嵌入每个块之前,要把文件路径、符号名、文档字符串、导入项和调用者信息 prepend 进去。**始终用混合方案。**开发者的查询充满了精确的标识符——process_partial、ERR_CONN_RESET——这些是 BM25 的强项,而 embedding 会把它们模糊化。两者要融合。多跳问题需要符号图。"改这个会坏什么?"这是一个调用图问题,而不是相似度问题。每次 commit 后刷新……
在 AI Tech Connect 阅读完整文章 →
进一步操作,你可以考虑屏蔽此人或举报滥用行为

我们是一个让程序员分享、保持最新和发展事业的平台。