摘要
大型语言模型(如GitHub Copilot和ChatGPT)已成为代码生成的强大工具,显著提升了生产力并加速了软件开发。然而,现有基准主要关注通用代码生成,而未考虑面向API的代码生成,即生成调用特定库API的代码。鉴于面向API的代码生成需求日益增长,迫切需要一种系统化和自动化的方法来评估LLM在面向API代码生成方面的能力。为填补这一空白,我们提出了AutoAPIEval,一个轻量级且自动化的框架,旨在评估LLM在面向API代码生成方面的能力。我们的框架适用于任何提供API文档的库,并专注于两个单元任务:API推荐和代码示例生成,以及四个评估生成API和代码示例的指标,如任务1中错误API推荐的比例,以及任务2中未调用特定API和不可编译/不可执行代码示例的比例。此外,我们通过三个LLM(ChatGPT、MagiCoder和DeepSeek Coder)和Java运行时环境8的案例研究,展示了框架的有效性。我们的研究发现,LLM在不同任务中的表现存在显著差异,ChatGPT更符合指令,但在代码示例生成方面与其同行(即MagiCoder和DeepSeek Coder)效果相似。我们还识别了与代码质量相关的关键因素,如API的流行度和模型置信度,并构建了高精度检测错误API推荐和错误代码示例的分类器。检索增强生成提高了LLM生成代码的质量,但其效果在不同LLM之间有所不同。