RepoHyper: Better Context Retrieval Is All You Need for Repository-Level Code Completion

2024年03月10日
  • 简介
    Code Large Language Models(CodeLLMs)在代码补全任务中表现出了令人印象深刻的熟练程度。然而,它们往往无法完全理解项目存储库的广泛上下文,例如相关文件和类层次结构的复杂性,这可能导致不太精确的完成。为了克服这些限制,我们提出了一个多方面的框架\tool,旨在解决与存储库级代码完成相关的复杂挑战。 \tool 的核心是Repo-level Semantic Graph(RSG),一种新颖的语义图结构,它封装了代码存储库的广泛上下文。此外,RepoHyper利用“扩展和细化”检索方法,包括应用于RSG的图扩展和链接预测算法,实现了相关代码片段的有效检索和优先排序。我们的评估表明,与几个强基线相比,\tool 在存储库级代码完成方面明显优于现有技术,展示了在各种数据集上的增强准确性。我们实现的RepoHyper可以在以下网址找到:\url{https://github.com/FSoft-AI4Code/RepoHyper}。
  • 图表
  • 解决问题
    论文旨在解决代码自动补全中仓库级别上下文理解不足的问题,提出了一种新的语义图结构来捕获代码仓库的上下文信息。
  • 关键思路
    论文的关键思路是提出一种名为Repo-level Semantic Graph(RSG)的语义图结构,用于捕获代码仓库的上下文信息,并使用RSG进行代码检索和排序。
  • 其它亮点
    论文使用了多个数据集对提出的方法进行了评估,并与多个强基线进行了比较。实验结果表明,该方法在仓库级别的代码自动补全任务中表现出色。论文还公开了他们的实现代码。
  • 相关研究
    近期的相关研究包括使用深度学习模型进行代码自动补全的研究,以及使用语义图结构进行代码检索的研究。
许愿开讲
PDF
原文
点赞 收藏
向作者提问
NEW
分享到Link

提问交流

提交问题,平台邀请作者,轻松获得权威解答~

向作者提问