返回
Enhancing Project-Specific Code Completion by Inferring Internal API Information
DOI:10.1109/TSE.2025.3592823.png)
摘要
En 中文
针对特定项目的代码补全,旨在根据项目上下文完成代码,是一项重要且实用的软件工程任务。当前最先进的方法采用检索增强生成(RAG)范式,并利用从目标项目中检索到的信息提示大型语言模型(LLMs)进行特定项目的代码补全。在实践中,开发者通常会定义和使用自定义功能,即内部API,以促进特定项目需求的实现。因此,考虑内部API信息对于准确完成特定项目的代码至关重要。然而,现有方法要么检索相似的代码片段,这些片段不一定包含相关的内部API信息,要么基于导入语句检索内部API信息,而相关的内部API在文件中未被使用时通常不存在。因此,这些特定项目的代码补全方法在有效性或实用性方面面临挑战。为此,本文旨在通过定位内部API信息而不依赖导入语句来增强特定项目的代码补全。我们首先提出了一种推断内部API信息的方法。我们的方法首先通过构建其使用示例和功能语义信息(即对函数目的的自然语言描述)来扩展每个内部API的表示,并构建一个知识库。基于该知识库,我们的方法使用LLMs生成的初始补全方案来推断完成所需的API信息。在此基础上,我们提出了一种代码补全方法,通过整合相似代码片段和内部API信息来增强特定项目的代码补全。此外,我们开发了一个名为ProjBench的基准测试,该测试包含近期的大型真实项目,且不包含泄露的导入语句。我们在ProjBench和现有的CrossCodeEval基准测试上评估了我们的方法的有效性。实验结果表明,我们的方法在代码精确匹配上平均比基线方法高出+5.91,在标识符精确匹配上高出+6.26,分别对应22.72%和18.31%的相对提升。我们还展示了通过将其整合到各种基线中,我们的方法能够补充现有方法,使代码匹配平均提升+7.77(47.80%)和标识符匹配平均提升+8.50(35.55%)。
Keyword:
Project-specific code completion
large language model
API information
retrieval-augmented generation
期刊
IF:
5.6
论文数:
2.9K
被引数:
1.2W
机构
引用论文
暂无论文信息

