AI辅助编程:常用的7种Prompt模式

简介: DevGPT数据集收录了使用ChatGPT进行辅助编程的2万余条提示语及回答;基于该数据集的总结发现了7种常用的提示语模式

“ChatGPT共享链接”(ChatGPT Shared Links)是ChatGPT支持的一个功能,用来为用户的ChatGPT对话生成URL,便于用户分享对话记录,比使用截屏更便捷。GitHub和Hacker News上的不少用户通过“ChatGPT共享链接”来分享与ChatGPT的交互及结果。下图就是一个在GitHub的Pull Request中使用“ChatGPT共享链接”的示例。

Figure_1B.jpg

DevGPT数据集[1]的数据就来源于GitHub和Hacker News上大量的“ChatGPT共享链接”[2]。该数据集包含了2万余条用户输入的ChatGPT提示语(Prompt)及对应的对话内容。

Title_1.jpg

DevGPT数据集的作者们希望通过该数据集,来促进AI辅助编程领域的研究。作者们列举了AI辅助编程领域若干有待研究的问题[2],例如:

  • 开发人员常向ChatGPT提问哪类问题(排错、编程、理论问题等)?
  • 开发人员向ChatGPT提问时,使用的提示语有哪些模式?使用这些模式与所提问题得到解决有什么关系?
  • 与ChatGPT对话的典型结构是什么样的?提问的问题得到解决平均需要多少轮问答?
  • 如果ChatGPT生成的代码被开发人员采用,有关的代码在使用前需要开发人员做多大程度的修改?修改有哪些常见类型?
  • ChatGPT生成的代码与Stack Overflow等网上找到的代码相比,有什么特点?
  • ChatGPT生成的代码,常见的质量问题有哪些?
  • 根据开始的提示语以及上下文情况,能否准确地预测出与ChatGPT对话的长度?
  • 根据开始的ChatGPT对话,能否准确地预测出所提问题是否会被解决?

提示语的7种常用模式

自DevGPT数据集发布以来,基于该数据集开展的研究成果不少,其中,近期发布的一篇论文[3]基于有关文献以及DevGPT数据集,总结出了AI辅助编程常用的7种提示语模式。

Title_2.jpg

提示语模式在概念上有些类似于软件设计模式,但主要用于与大语言模型(LLM)的交互。以下是这7种常用的提示语模式[3]。

Persona模式

采用该模式时,开发人员为AI定义一个角色或身份,让AI以这个角色或身份来生成信息或结果。该模式常采用“你是....”、“假设你是....”等词语。

提示语示例:“你是一个XX专家....你的任务是创建一个....”

Recipe模式

采用该模式时,开发人员为AI列出一步步的指示,用于指导AI完成一个多步骤的过程,或者进行一系列操作。

提示语示例:“写一个名为XX的函数,该函数首先....,然后....”

Template模式

采用该模式时,开发人员为AI的输出描述一个模板、结构或格式,要求AI按照描述的模板、结构或格式进行回答。

提示语示例:“....回答时采用....格式,分隔符采用....符号,各个标题分别采用....”

Output Automator模式

采用该模式时,开发人员指示AI以代码、脚本、配置文件等机器可读的形式生成结果,以避免AI为答案中的多个步骤生成较长的语言描述。

提示语示例:“....生成一个Dockerfile....”

Instructions-Based模式

又称为Simple Instruction模式——开发人员仅向AI提出指示或命令,无需提供背景知识、角色定义等。该模式常采用“解释....”、“描述....”、“告诉我....”、“为我提供....”等词语。

提示语示例:“帮我解释一下....”

Context and Instructions模式

采用该模式时,开发人员既提出指示或命令,又描述背景知识。该模式中可能会出现“根据....”、“....基于这一信息....”等词语。

提示语示例:“我正在使用XX库来实现....功能。当触发了'开始'之后,XX库一直显示....,直到运行完成为止。我想修改一下这个XX库,使得在触发了'开始'之后,显示变成....”

Question模式

采用该模式时,开发人员围绕感兴趣的信息或解释,直接向AI提问,无需提供背景知识、输出模板、输出风格等。该模式常采用“为什么....”、“在哪里....”、“什么时候....”、“谁....”、“怎样....”等词语。

提示语示例:“如何让XX平台的通知在YY程序运行时显示?”

小结

以上仅为AI辅助编程中常用的一些提示语模式。多个提示语模式可以相互组合,同时出现在一个提示语中。

其它关于提示语模式的总结

美国范德比尔特大学(Vanderbilt University)的研究人员曾经在一篇论文[4]中详细列举并讨论了16种提示语模式。该大学的研究人员在另外一篇论文[5]中列举并讨论了更多的提示语模式,用于软件工程中的代码改进、需求征集、代码重构、系统设计等场景。

参考资料

[1] https://github.com/NAIST-SE/DevGPT

[2] DevGPT: Studying Developer-ChatGPT Conversations

https://arxiv.org/abs/2309.03914

使用许可协议:CC BY

https://creativecommons.org/licenses/by/4.0/

[3] Exploring Prompt Patterns in AI-Assisted Code Generation: Towards Faster and More Effective Developer-AI Collaboration

https://arxiv.org/abs/2506.01604

[4] A Prompt Pattern Catalog to Enhance Prompt Engineering with ChatGPT

https://arxiv.org/abs/2302.11382

[5] ChatGPT Prompt Patterns for Improving Code Quality, Refactoring, Requirements Elicitation, and Software Design

https://arxiv.org/abs/2303.07839


封面图:Kindel Media、Pexels

目录
相关文章
|
17天前
|
传感器 人工智能 自动驾驶
生成式AI应用于自动驾驶:前沿与机遇
近期发表的一篇综述性论文总结了生成式AI在自动驾驶领域的应用进展,并探讨了自动驾驶与机器人、无人机等其它智能系统在生成式AI技术上的交叉融合趋势
64 10
|
15天前
|
机器学习/深度学习 存储 自然语言处理
通义实验室开源发布QwenLong-L1 与 QwenLong-CPRS 双模型
近年来,随着大规模预训练语言模型(LLM)在短文本理解与生成任务中的成功,如何让模型在超长文本场景(如学术论文、法规文档、长视频字幕等)中保持高效、准确地推理与理解,成为下一代应用的核心挑战。
328 92
|
15天前
|
SQL JSON API
什么!我把SQL编辑器装进了大模型?
本文旨在通过约束解码技术,赋予大型语言模型在生成SQL等结构化内容时更高的准确性、可控性与可解释性,从而满足企业级场景对“精准生成”的严苛要求。
359 125
什么!我把SQL编辑器装进了大模型?
|
29天前
|
人工智能 自然语言处理 机器人
MCP、A2A、ACP、ANP、.... :AI智能体协议的演进展望
多家机构各自推出的MCP、A2A、ACP、ANP等AI智能体协议将会彼此竞争、互补还是趋同?前景有多种可能
302 3
MCP、A2A、ACP、ANP、.... :AI智能体协议的演进展望
|
15天前
|
机器学习/深度学习 数据采集 存储
大模型微调知识与实践分享
本文详细介绍了大型语言模型(LLM)的结构、参数量、显存占用、存储需求以及微调过程中的关键技术点,包括Prompt工程、数据构造、LoRA微调方法等。
247 72
大模型微调知识与实践分享
|
17天前
|
运维 监控
Dataphin V5.0:增全量一体实时集成
数据集成中,离线与实时方式各有优劣。为解决传统“全量+增量”双轨模式运维复杂的问题,Dataphin 5.0推出“全量+增量一体化实时同步”功能。用户仅需创建一个实时任务,即可完成整库或多表的数据迁移,系统自动协调全量与增量同步,简化管理并降低运维成本。该功能支持灵活配置启动范围与方式,提供实时监控及操作能力,大幅提升数据同步效率与稳定性。
103 41
|
24天前
|
机器学习/深度学习 人工智能 算法
Scikit-learn:Python机器学习的瑞士军刀
想要快速入门机器学习但被复杂算法吓退?本文详解Scikit-learn如何让您无需深厚数学背景也能构建强大AI模型。从数据预处理到模型评估,从垃圾邮件过滤到信用风险评估,通过实用案例和直观图表,带您掌握这把Python机器学习的'瑞士军刀'。无论您是AI新手还是经验丰富的数据科学家,都能从中获取将理论转化为实际应用的关键技巧。了解Scikit-learn与大语言模型的最新集成方式,抢先掌握机器学习的未来发展方向!
320 12
Scikit-learn:Python机器学习的瑞士军刀
|
3天前
|
API 双11 数据安全/隐私保护
|
1月前
|
机器学习/深度学习 人工智能 算法
“别让模型坑了人”:数据科学中的那些伦理雷区
“别让模型坑了人”:数据科学中的那些伦理雷区
69 16
|
2月前
|
Ubuntu Linux
Ubuntu下载工具:ip addr、ifconfig、ping、make的使用
的选项和参数,这里只是简单地介绍了它们的基本用法。如果你想要深入学习这些工具,我建议你查阅它们的man页面,或者找一本好的Linux教程进行学习。
101 22