摘要
代码片段适配是软件开发过程中的一个基本活动。与代码生成不同,代码片段适配并非“自由创作”,它需要开发人员调整给定的代码片段以适应特定的需求和代码上下文。最近,大型语言模型 (LLM) 在代码生成任务中证实了其有效性,并取得了可喜的成果。然而,它们在适配任务(一项面向重用且依赖上下文的代码更改预测任务)上的性能仍不清楚。为了弥合这一差距,我们进行了一项实证研究,以调查 LLM 在适配任务上的性能和问题。我们首先评估了三个流行的 LLM 的适配性能,并将它们与代码生成任务进行了比较。我们的结果表明,它们的适配能力弱于生成能力,pass@1 下降了近 15%,并且出现了更多与上下文相关的错误。通过人工检查 200 个案例,我们进一步调查了 LLM 性能欠佳的原因,这些原因可分为三类:需求不明确、需求错配和上下文误用。基于上述实证研究,我们提出了一种交互式提示方法来激发 LLM 的适配能力。实验结果表明,我们的方法极大地提高了 LLM 的适配性能。性能最佳的人机交互成功解决了 202 个已识别缺陷中的 159 个,并将 pass@1 和 pass@5 提高了 40% 以上,超过了最初基于指令的提示。考虑到人力成本,我们建议采用多智能体交互作为一种折衷方案,它可以实现具有出色泛化能力的相当性能。我们认为,我们的方法可以为使用 LLM 进行自主代码片段重用和适配提供方法论上的帮助。