在《GPT最佳实践 - 提升Prompt效果的六个策略》 (opens in a new tab)中,我们介绍了OpenAI官方发布的"GPT 最佳实践"指南的六个策略,其中第一个策略是编写清晰的提示。
关于编写清晰的提示,具体包含了6个方法,下面逐一介绍。
1.在查询中包含详细信息以获得更相关的答案
为了获得高度相关的响应,请确保请求中提供了所有重要的详细信息或上下文。否则,模型将会猜测你的意思,结果的相关度也会降低。
在下面的表格中,右边是推荐的写法,效果会比左边的更好,因为提供了更多具体的细节信息。
更差的 | 更好的 |
---|---|
如何在 Excel 中添加数字? | 如何在 Excel 中添加一行美元金额?我想对整张行自动执行此操作,所有总计都在右侧名为“总计”的列中结束。 |
谁是总统? | 谁是 2021 年墨西哥总统?选举频率如何? |
编写代码来计算斐波那契数列。 | 编写一个 TypeScript 函数来高效计算斐波那契数列。自由地注释代码以解释每部分的作用以及为什么这样编写。 |
总结会议记录。 | 用一个段落总结会议记录。然后写下演讲者的 Markdown 列表以及他们的每个要点。最后,列出发言人建议的后续步骤或行动项目(如果有)。 |
2.要求模型采用特定的角色
GPT的系统消息(system)可用于指定模型在其回复中使用的角色(GPT扮演的角色或行为表现的描述)。
GPT角色 | 角色内容 |
---|---|
SYSTEM | 当我请求帮助写一些东西时,你会回复一份文档,其中每个段落至少包含一个笑话或有趣的评论。 |
USER | 给我的钢螺栓供应商写一封感谢信,感谢他们在短时间内准时交货。这使我们能够交付一份重要的订单。 |
没有系统角色的回复效果:
提供了系统角色的回复效果:
很明显,指定了系统角色信息之后,回复的内容的确是更有趣了。
3.使用分隔符清楚地指示输入的不同部分
使用分隔符,如三重引号、XML 标签、章节标题等,可以帮助区分文本的不同部分。
示例1:
GPT角色 | 角色内容 |
---|---|
USER | 用俳句来总结由三重引号分隔的文本。 """在此插入文本""" |
示例2:
GPT角色 | 角色内容 |
---|---|
SYSTEM | 您将获得一对关于同一主题的文章(用 XML 标记分隔)。先总结一下每篇文章的论点。然后指出他们中的哪一个提出了更好的论点并解释原因。 |
USER | <article> 在此插入第一篇文章 </article> <article> 在此插入第二篇文章 </article> |
示例3:
GPT角色 | 角色内容 |
---|---|
SYSTEM | 您将获得论文摘要和建议的标题。论文标题应该让读者清楚地了解论文的主题,但也应该引人注目。如果标题不符合这些标准,请提出 5 个替代方案。 |
USER | 摘要:在此插入摘要 标题:在此插入标题 |
对于像这样的简单任务,使用分隔符可能不会影响输出质量。然而,任务越复杂,消除歧义就越重要。不要让 GPT 为了理解你所要求的内容而费力。
4.指定完成任务所需的步骤
对于某一些任务,最好提供一系列的步骤来提示模型。
也就是说,进行任务分解,将一个大的任务分成多个小的步骤来完成。
将这些步骤明确地写出来,可以帮助模型更好地理解和执行任务。
GPT角色 | 角色内容 |
---|---|
SYSTEM | 使用以下分步说明来响应用户输入。 步骤 1 - 用户将为您提供三引号中的文本。用一个句子总结这段文字,并加上前缀“摘要:”。 步骤 2 - 将步骤 1 中的摘要翻译成西班牙语,并添加前缀“翻译:”。 |
USER | """在此插入文本""" |
5.提供例子
提供适用于所有示例的“通用说明(general instructions)”,通常比"通过示例"演示"任务的所有排列"更有效,但在某些情况下,提供示例可能更容易。例如,如果您打算让模型复制"响应用户查询的特定风格",而这种风格又很难明确的进行描述。这种提供示例的方式被称为“少样本”提示。
GPT角色 | 角色内容 |
---|---|
SYSTEM | 以一致的风格回答。 |
USER | 教我关于耐心的知识。 |
ASSISTANT | 凿出最深山谷的河流,发源于一个不起眼的泉水;最伟大的交响乐源自一个音符;最复杂的挂毯都是从一根单独的线开始的。 |
USER | 教我关于海洋的知识。 |
6.指定所需的输出长度
您可以要求模型生成给定目标长度的输出。目标输出长度可以根据单词、句子、段落、要点等的计数来指定。需要注意的是,指定生成特定数量的单词并不能保证高精度的结果。相比之下,该模型更可靠地生成具有特定数量的段落或要点的输出。
GPT角色 | 角色内容 |
---|---|
USER | 用大约 50 个单词概括由三引号分隔的文本。 """在此插入文本""" |
GPT角色 | 角色内容 |
---|---|
USER | 将由三个引号括起来的文本总结为两个段落。 """在此插入文本""" |
GPT角色 | 角色内容 |
---|---|
USER | 将由三引号分隔的文本总结为 3 个要点。 """在此插入文本""" |
小结
编写清晰的提示,包含了6个具体的方法:
- 在查询中提供更多细节可以获得更相关的答案
- 可以要求模型采用特定的人设
- 使用分隔符清楚地指示输入的不同部分
- 指定完成任务所需的步骤
- 提供例子
- 指定所需的输出长度