本文提出 PLLM+,一种用于解决 Python 依赖冲突的混合式依赖修复流水线,并在包含 2891 个依赖失败代码片段的 HG2.9K 基准上进行评估。该方法优先执行低成本的确定性步骤,包括基于 AST 的静态解释器推断、从竞赛提供的解决方案数据库中重放历史成功的依赖配置,以及在 PyPI 上实时验证候选包版本;当这些步骤无法解决问题时,才回退到基于大语言模型的结构化修复循环,并辅以类型化错误分类和 Proposer/Critic 智能体机制。实验结果显示,PLLM+ 成功修复 1500 个片段,优于基线 PLLM 的 1169 个,同时将平均运行时间从 368.7 秒降至 71.8 秒。值得注意的是,1500 个成功修复中有 1495 个来自解决方案数据库的重放,仅有 5 个由 LLM 回退机制贡献。这表明在该基准场景下,复用已验证的依赖配置是一种简单而有效的策略,LLM 修复更适合作为覆盖未知情况的辅助手段。
| PLLM+ | 本文提出的混合依赖修复流水线,结合确定性步骤与基于大语言模型的修复循环。 |
| HG2.9K | 包含 2,891 个依赖失败代码片段的基准数据集,用于评估依赖修复方法。 |
| AST-based interpreter inference | 基于抽象语法树的静态分析技术,用于推断代码片段所需的 Python 解释器版本。 |
| Proposer/Critic agents | 基于大语言模型的双智能体协作机制,一个提出修复方案,另一个进行批判性评估。 |
| PyPI validation | 在 Python 包索引上实时验证候选包版本是否存在及其兼容性。 |
📱 每天一份 AI 前沿日报
关注公众号,每天 09:00 推送 · 不错过任何重磅