RAMBO:基于 RAG 的存储库级方法体完成增强技术
软件工程
2025-08-05 v3 机器学习
摘要
代码完成是软件开发中不可或缺的技术,帮助开发者根据上下文预测代码片段。在完成任务中,方法体完成 (MBC) 尤为具有挑战性,因为它需要根据方法签名和上下文生成完整的方法体。在大型存储库中,这一任务变得更加困难,因为方法体必须集成存储库特定元素,如自定义 API、跨模块依赖和项目特定约定。本文引入了 RAMBO,这是一种基于 RAG 的存储库级 MBC 方法。RAMBO 不是检索相似的方法体,而是识别必需的存储库特定元素(如类、方法和变量/字段)及其相关用法。通过将这些元素及其相关用法纳入代码生成过程,RAMBO 确保更准确、更具上下文相关性的方法体。我们的实验结果在40个Java项目中显示,RAMBO 在存储库级 MBC 方法中显著优于最先进的技术,BLEU 提升最高达46%,CodeBLEU 提升最高达57%,编译通过率提升36%,且在精确匹配 (Exact Match) 上提升最高达3倍。值得注意的是,RAMBO 在精确匹配方面相较于 RepoCoder Oracle 方法提升最高达12%,为存储库级 MBC 树立了新的基准。
引用
@article{arxiv.2409.15204,
title = {RAMBO: Enhancing RAG-based Repository-Level Method Body Completion},
author = {Tuan-Dung Bui and Duc-Thieu Luu-Van and Thanh-Phat Nguyen and Thu-Trang Nguyen and Son Nguyen and Hieu Dinh Vo},
journal= {arXiv preprint arXiv:2409.15204},
year = {2025}
}