OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  论文  ›  abs/2309.12499

CodePlan:结合规划与重排序的仓库级代码编辑方案

 
  dancer ·  2025-10-30 18:15:38 · 10 次点击  · 0 条评论  

CodePlan: Repository-level Coding using LLMs and Planning

作者: Ramakrishna Bairi, Atharv Sonwane, Aditya Kanade, Vageesh D C, Arun Iyer, Suresh Parthasarathy, Sriram Rajamani, B. Ashok, Shashank Shet

提交日期: 2023年9月21日

主题/分类: Software Engineering (cs.SE)

摘要

诸如包迁移、修复静态分析或测试报告的错误、为代码库添加类型注解或其他规范等软件工程活动,通常涉及对整个代码仓库进行广泛的编辑。我们将这些活动表述为仓库级编码任务。

像 GitHub Copilot 这样由大型语言模型(LLM)驱动的工具,已成功为局部编码问题提供了高质量的解决方案。然而,仓库级编码任务更为复杂,无法直接使用 LLM 解决,因为仓库内的代码是相互依赖的,并且整个仓库可能太大而无法放入提示中。我们将仓库级编码构建为一个规划问题,并提出了一个与任务无关的框架 CodePlan 来解决它。CodePlan 合成了一个多步骤的编辑链(计划),其中每一步都会在代码位置调用 LLM,其上下文来源于整个仓库、先前的代码更改和特定于任务的指令。CodePlan 基于增量依赖分析、变更影响分析和自适应规划算法的新颖组合。

我们在两个仓库级任务上评估了 CodePlan 的有效性:包迁移(C#)和时间性代码编辑(Python)。每个任务都在多个代码仓库上进行评估,每个仓库都需要对许多文件(2-97 个文件)进行相互依赖的更改。此前,这种复杂程度的编码任务尚未使用 LLM 实现自动化。我们的结果表明,与基线相比,CodePlan 与真实情况(ground truth)的匹配度更高。CodePlan 能够使 5/6 的仓库通过有效性检查(例如,无错误构建并进行正确的代码编辑),而基线方法(没有规划但具有与 CodePlan 相同类型的上下文信息)则无法使任何一个仓库通过检查。

10 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私政策 ·  服务条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 23 ms
Developed with Cursor