论文

FeatLens:用于存储库级代码生成的特征引导动态代码图构建和检索

FeatLens: Feature-Guided Dynamic Code Graph Construction and Retrieval for Repository-Level Code Generation

上下文与知识检索增强

摘要

最近的代码生成研究已经从孤立的函数完成转向现有代码库中的存储库级生成。为了正确实现目标函数,LLM 必须识别可重用的存储库依赖项,例如现有函数、API 和跨文件定义。现有的检索方法通过代码相似性搜索、持久性全存储库图或 LLM 驱动的图探索来提供此类上下文,但通常会产生较高的图构建、推理和词元成本。面向特征的方法提供了软件功能的自然视图,但它们主要支持需求分解、规划或特征编辑,而不是代码依赖性检索。本文提出了 \textbf{FeatLens},一种用于存储库级代码生成的特征引导的动态代码图构建和检索方法。 FeatLens 构建了一个功能索引,将自然语言功能描述链接到功能级代码实体。给定生成任务,它从特征索引动态构建特定于任务的种子图,并应用具有个性化 PageRank 的语义结构图推理来选择紧凑的推理图。该设计用确定性和轻量级依赖关系检索取代了持久的全存储库图维护和 LLM 探索。 DevEval 和 EvoCodeBench 上的实验表明,FeatLens 在稀疏、密集和基于图的基线(0.501 和 0.460)中实现了最佳 DR@15。在 DevEval 一代中,它获得了最高的 DIR@1,在 DeepSeek-V3.2 中达到 52.91\%,在 GPT-5-mini 中达到 53.58\%,同时保持具有竞争力的 Pass@1 并生成更短的代码。与最强的基于图的基线相比,FeatLens 将图节点减少了 61.0%,边减少了 86.2%,总词元开销减少了 45.9%,并且在检索过程中不使用 LLM 词元。