Contextual API Completion for Unseen Repositories Using LLMs
arxiv(2024)
摘要
Large language models have made substantial progress in addressing diverse
code-related tasks. However, their adoption is hindered by inconsistencies in
generating output due to the lack of real-world, domain-specific information,
such as for intra-repository API calls for unseen software projects. We
introduce a novel technique to mitigate hallucinations by leveraging global and
local contextual information within a code repository for API completion tasks.
Our approach is tailored to refine code completion tasks, with a focus on
optimizing local API completions. We examine relevant import statements during
API completion to derive insights into local APIs, drawing from their method
signatures. For API token completion, we analyze the inline variables and
correlate them with the appropriate imported modules, thereby allowing our
approach to rank the most contextually relevant suggestions from the available
local APIs. Further, for conversational API completion, we gather APIs that are
most relevant to the developer query with a retrieval-based search across the
project. We employ our tool, LANCE, within the framework of our proposed
benchmark, APIEval, encompassing two different programming languages. Our
evaluation yields an average accuracy of 82.6
76.9
Copilot by 143
completion, respectively. The implications of our findings are substantial for
developers, suggesting that our lightweight context analysis can be applied to
multilingual environments without language-specific training or fine-tuning,
allowing for efficient implementation with minimal examples and effort.
更多查看译文
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要