Curiosity by Design: An LLM-based Coding Assistant Asking Clarification Questions

📄 arXiv: 2507.21285v1 📥 PDF

作者: Harsh Darji, Thibaud Lutellier

分类: cs.AI

发布日期: 2025-07-28


💡 一句话要点

设计好奇心:基于LLM的编码助手通过提问进行澄清

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 大型语言模型 代码生成 代码助手 澄清问题 用户意图

📋 核心要点

  1. 现有编码助手难以处理开发者模糊的prompt,导致代码生成错误,缺乏有效推断用户意图的能力。
  2. 该论文提出一种基于LLM的编码助手,通过模仿人类代码审查,主动提问以澄清模糊或不明确的查询。
  3. 实验结果表明,微调的LLM在生成有用澄清问题方面优于零样本提示,用户体验也优于基线系统。

📝 摘要(中文)

大型语言模型(LLMs)越来越多地被用作编码助手。然而,开发者提示的模糊性常常导致不正确的代码生成,因为当前的模型在没有广泛的提示工程或外部上下文的情况下,难以推断用户的意图。本研究旨在构建一个基于LLM的编码助手,通过在面对模糊或不明确的查询时提出澄清问题,来模仿人类的代码审查过程。我们的端到端系统包括(1)一个查询分类器,用于检测不明确的编程相关查询,以及(2)一个微调的LLM,用于生成澄清问题。我们的评估表明,微调的LLM在生成有用的澄清问题方面优于标准的零样本提示。此外,我们的用户研究表明,用户发现我们的模型生成的澄清问题优于基线,这表明与基线编码助手相比,我们的编码助手产生更准确和有帮助的代码响应。

🔬 方法详解

问题定义:现有基于LLM的编码助手在处理模糊或不明确的开发者prompt时,难以准确推断用户意图,导致生成的代码不正确。现有的解决方案通常依赖于复杂的prompt工程或外部上下文,但这些方法成本高昂且效果有限。

核心思路:该论文的核心思路是让LLM具备“好奇心”,主动向开发者提问以澄清模糊的需求,从而更准确地理解用户意图。这种方法模仿了人类代码审查的过程,通过对话交互来消除歧义。

技术框架:该系统包含两个主要模块:(1)查询分类器,用于检测不明确的编程相关查询;(2)微调的LLM,用于生成澄清问题。首先,查询分类器判断用户输入是否清晰。如果判断为不清晰,则触发微调的LLM生成澄清问题,并呈现给用户。用户回答问题后,系统可以利用这些信息生成更准确的代码。

关键创新:该论文的关键创新在于将LLM用于生成澄清问题,从而实现了一种主动式的代码辅助方式。与传统的被动式代码生成相比,这种方法能够更好地理解用户意图,并生成更符合用户需求的代码。此外,通过微调LLM,可以使其更擅长生成与编程相关的澄清问题。

关键设计:查询分类器使用监督学习方法进行训练,目标是区分清晰和不清晰的编程查询。微调LLM使用特定于澄清问题生成的数据集,并采用标准的语言模型训练目标。具体的参数设置和网络结构在论文中可能没有详细说明,属于未知信息。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果表明,微调的LLM在生成有用的澄清问题方面优于标准的零样本提示。用户研究表明,用户认为该模型生成的澄清问题比基线方法更有效,并且生成的代码响应也更准确和有帮助。具体的性能提升数据在摘要中未明确给出,属于未知信息。

🎯 应用场景

该研究成果可应用于各种软件开发场景,例如智能IDE、在线代码编辑器和代码审查工具。通过主动提问澄清需求,可以显著提高代码生成的准确性和效率,降低开发成本,并改善开发者的用户体验。未来,该技术还可扩展到其他领域,例如文档撰写、需求分析等。

📄 摘要(原文)

Large Language Models (LLMs) are increasingly used as coding assistants. However, the ambiguity of the developer's prompt often leads to incorrect code generation, as current models struggle to infer user intent without extensive prompt engineering or external context. This work aims to build an LLM-based coding assistant that mimics the human code review process by asking clarification questions when faced with ambiguous or under-specified queries. Our end-to-end system includes (1) a query classifier trained to detect unclear programming-related queries and (2) a fine-tuned LLM that generates clarification questions. Our evaluation shows that the fine-tuned LLM outperforms standard zero-shot prompting in generating useful clarification questions. Furthermore, our user study indicates that users find the clarification questions generated by our model to outperform the baseline, demonstrating that our coding assistant produces more accurate and helpful code responses compared to baseline coding assistants.