中文

面向未见仓库的情境感知 API 完成

软件工程 2024-05-16 v3

摘要

大型语言模型在解决各种代码相关任务方面取得了显著进展。然而,其采用受限于生成输出的一致性问题,这源于缺乏真实世界、领域特定信息,例如针对未见软件项目的仓库内 API 调用。我们提出了一种新方法,通过利用代码仓库中的全局和局部情境信息来缓解 API 完成任务中的幻觉现象。我们的方法专为细化代码完成任务而设计,特别关注优化局部 API 完成。我们检查 API 完成相关的 import 语句,以洞察局部 API,源自它们的方法签名。对于 API token 完成,我们分析内联变量并将其与相应导入模块相关联,从而允许我们的 approach 对可用局部 API 中最具情境相关性的建议进行排序。进一步地,对于对话式 API 完成,我们收集与开发人员查询最相关的 API,这通过在项目范围内进行检索实现。我们在我们提出的基准框架中使用我们的工具 LANCE。我们的评估显示,API token 完成和对话式 API 完成的平均准确率分别为 82.6% 和 76.9%。平均而言,LANCE 在 API token 完成和对话式 API 完成方面分别超过 Copilot 143% 和 142%。我们的发现对开发人员具有重大的意义,表明我们的轻量级情境分析可以应用于无语言特定训练或微调的多语言环境,允许以最小示例和 effort 高效实现。

关键词

引用

@article{arxiv.2405.04600,
  title  = {Contextual API Completion for Unseen Repositories Using LLMs},
  author = {Noor Nashid and Taha Shabani and Parsa Alian and Ali Mesbah},
  journal= {arXiv preprint arXiv:2405.04600},
  year   = {2024}
}