高效ChatGPT Prompt (一): 清晰且具体的指令

2023-08-31 19:57:04 浏览数 (1)

从本篇开始,我将介绍编写高效的ChatGPT Prompt的一些策略与技巧. 这个系列是我学习吴恩达与OpenAI合作推出的《ChatGPT Prompt Engineering for Developers》视频教程的学习笔记.

这个教程非常值得学习,建议去看下.

今天介绍编写高效ChatGPT Prompt的第一个原则, 就是编写清晰并且具体的指令

清晰&具体

好的Prompts的第一个重要的原则就是要清晰并且具体

指对问题越详细越好,问题不要模糊,宽泛或者令人难以理解. 描述越具体越好. 不要把清晰理解为简洁. 并不是越简短越好.

举例说明:

代码语言:javascript复制
Prompt: 帮我写一首诗关于春天的诗

# 改进
改进Prompt: 写一诗春天的诗,突出景色的美丽,并衬托出人物心情的喜悦

如上示例, 相比前面的提问, 改进的Prompt描述的更加清晰具体. 对诗的要求描述的更加具体. 这就是比较好的Prompt

想要编写出清晰并且具体的Prompt,以下几个策略可以帮助到你.

一) 学会使用分割符

如果你的问题中,包括一些素材或资料, 需要显式的与问题区分开来. 这种情况下,学会使用一些分割符会更好. 让ChatGPT更容易理解.

如果不使用分割符,在一些场景下,会出现误解.举例如下

代码语言:javascript复制
Prompt:  请帮我将这段文字翻译成英文: 春天这个词,法语怎么说

## 响应
The word "spring" is "printemps" in French.

这并不符合你提问的本意, 使用分割符能很好的避免类似的误解.

代码语言:javascript复制
改进Prompt: 请将下面这段文字翻译成英文,内容会以---分割符来开始并结束.
---
春天这个词,法语怎么说
---

如上所示, 这样的方式更加清晰与具体. 让ChatGPT不易于产生冲突与误解. 这样清晰的表述, 就算内容中有一些容易产生歧义的内容, ChatGPT也不会将引用与问题混淆.

二) 让ChatGPT主动检查前置满足

询问ChatGPT时, 要考虑到前置条件不满足时要如何处理. 显式的告知ChatGPT检查前置并告知其不满足的响应,会改善ChatGPT的响应

代码语言:javascript复制
Prompt: 请帮助计算用户提出的数学计算问题,并告知答案. 问题: 计算130与200的积

上述这个问题看似没有大问题,但考虑到一些场景,问题是由外部传入,并不可控. 也许这样去询问ChatGPT, 就会更有效

代码语言:javascript复制
改进Prompt: 请帮助计算用户提出的数学计算问题,并告知答案. 如果问题不是数学计算问题,请回复不知道.
问题: 中国的面积有多大

如果这样询问,ChatGPT就会回复不知道相关的内容, 而以上一个Prompt来询问,ChatGPT则会回复你这个提问.

三) 提示一个可参照的示例告知ChatGPT

有些时候,问ChatGPT时, 给ChatGPT一个类似的可参照的示例, 这样ChatGPT的回复能更符合你的期望.

代码语言:javascript复制
Prompt: 以一个祖父母的角色向小孩教导韧性的事?

这个问题可能产生非常多的可能性. 如果给一个可参照的示例, 则ChatGPT的回答会好很多.

代码语言:javascript复制
#改进
Prompt: 请参照以---分割的内容,按照一致的语气与模式回答
---
<孩子>: 教教我关于耐心的事。

<祖父母>: 雕刻最深谷的河流源于一眼泉水; 最壮丽的交响乐由单独的音符构成; 最复杂的挂毯始于孤独的一根线。

<孩子>: 教教我关于韧性的事。
---

四) 尽量要求结构化的输出

提问时,如果要求ChatGPT以结构化的方式输出,比如JSON. 回应的效果会更好

举例如下:

代码语言:javascript复制
Prompt: 请帮助我总结下面内容

相比,指定特定的JSON结构化输出,可能效果就会更好

代码语言:javascript复制
改进Prompt: 我了你一篇内容,以---来开始与结束.
---
...省略内容
---
请以下面的JSON格式来总结这篇文章,包括文章主题,主要人物,中心思想,文章评价四个维度来输出总结

这样的提示,就更清晰与具体. 这样的提问会更有价值. ChatGPT的回答会更符合你的期望.

0 人点赞