Large language models (LLMs) have recently been applied in software engineering to perform tasks such as translating code between programming languages, generating code from natural language, and autocompleting code as it is being written. When used within development tools, these systems typically treat each model invocation independently from all previous invocations, and only a specific limited functionality is exposed within the user interface. This approach to user interaction misses an opportunity for users to more deeply engage with the model by having the context of their previous interactions, as well as the context of their code, inform the model's responses. We developed a prototype system -- the Programmer's Assistant -- in order to explore the utility of conversational interactions grounded in code, as well as software engineers' receptiveness to the idea of conversing with, rather than invoking, a code-fluent LLM. Through an evaluation with 42 participants with varied levels of programming experience, we found that our system was capable of conducting extended, multi-turn discussions, and that it enabled additional knowledge and capabilities beyond code generation to emerge from the LLM. Despite skeptical initial expectations for conversational programming assistance, participants were impressed by the breadth of the assistant's capabilities, the quality of its responses, and its potential for improving their productivity. Our work demonstrates the unique potential of conversational interactions with LLMs for co-creative processes like software development.
翻译:大型语言模型(LLMS)最近被应用在软件工程中,以完成在编程语言之间翻译代码、生成自然语言代码和自动完成代码等任务。当这些系统在开发工具中使用时,这些系统通常将每种模式的援引与以前的所有引用分开,而用户界面中只暴露一个特定的有限功能。这种用户互动方法使用户没有机会更深入地参与模型,因为其先前互动的背景以及代码的背景,为模型的响应提供了信息。我们开发了一个原型系统 -- -- 程序员助理 -- -- 以探索以代码为基础的对话互动的效用,以及软件工程师是否愿意接受与所有先前的引用不同引用的代码性LM的理念。通过与42个具有不同水平的编程经验的参与者进行的评价,我们发现我们的系统能够进行扩展、多方向的讨论,并使得超出代码生成之外的更多知识和能力能够从LM中产生。尽管最初对对话程序设计协助抱有怀疑性的期望,但参与者们对以代码进行互动的实用性互动的实用性,但我们助手们的生产力的深度互动能力展示了他们自己发展过程的潜力。