论文
GrepRAG 用无索引词法检索支持仓库级代码补全
GrepRAG: An Empirical Study and Optimization of Grep-Like Retrieval for Code Completion
摘要
跨文件依赖与有限上下文窗口,使代码仓库级补全仍是大语言模型的难题。已有方案采用语义索引或结构感知图分析的检索增强生成(RAG)框架,但索引构建和维护开销较大。受开发者使用ripgrep等轻量搜索工具的工作流启发,我们重新考察一个尚未充分研究的问题:在需要复杂检索机制之前,简单的无索引词法检索能够多大程度支持仓库级代码补全?通过系统实证分析,我们研究轻量、无索引、意图感知的词法检索。首先构建Naive GrepRAG基线,由大语言模型自主生成ripgrep命令来获取上下文。其结构简单,却可达到复杂图检索基线的性能。分析发现,效果来自词法匹配精确、且在空间位置上更接近补全位置的代码片段。同时,词法检索容易受高频歧义关键词的噪声匹配影响,固定截断边界也会割裂上下文。为此,GrepRAG增加了轻量后处理流程,包括按标识符加权重排序和结构感知去重。在CrossCodeEval和RepoEval-Updated上的广泛评估表明,GrepRAG持续优于当前最佳方法;在CrossCodeEval上,相对最强基线,代码精确匹配率(EM)提高7.04%至15.58%。
