依赖冲突在 Python 生态系统中普遍存在,表现为版本约束不兼容、缺失包以及未文档化的兼容关系,导致大量代码片段在运行时失败。
本文提出 PLLM+,一种混合依赖修复流水线,在 HG2.9K 基准(2,891 条依赖失败的代码)上进行评估。流水线首先执行成本低且确定性的步骤:基于抽象语法树的解释器推断、从竞赛提供的解答库中回放历史成功的依赖配置、以及对候选包版本进行实时 PyPI 验证。
当上述步骤仍未解决时,系统转入结构化的 LLM 修复循环,包含错误类型分类以及提议者/评审者(Proposer/Critic)代理。
实验结果显示 PLLM+ 在 HG2.9K 上成功修复 1,500 条代码,显著高于基线 PLLM 的 1,169 条;平均运行时间从 368.7 秒降至 71.8 秒。成功修复中 1,495 条来源于解答库的回放,LLM 回退仅贡献 5 条。
这些发现表明,在该基准环境下,复用已验证的依赖配置是一种简洁且高效的策略,LLM 修复可作为覆盖未出现过情形的次要手段。点评