ChatGPT如何写好Prompt编程示例详解

2023-03-23 11:03:54 示例 详解 写好

引言

现在已经产生了一种新职业:Prompt Engineer(提示指令工程师),可见 Prompt 是多么重要,且编写不易。

ChatGPT的产出,一半决定于它的实力,一半决定于你给它的指令,即Prompt。如果你在试用ChatGPT时,发现它比较弱智,没有大家传诵的那么智能,多半原因是你比较”弱智“,不知道如何编写它能清晰理解的指令。

这篇文章一起探讨下,小白如何写好 Prompt。

好的 prompt 具有的设计原则

  • 清晰,切忌复杂或歧义,如果有术语,应定义清楚。
  • 具体,描述语言应尽量具体,不要抽象活模棱两可。
  • 聚焦,问题避免太泛或开放。
  • 简洁,避免不必要的描述。
  • 相关,主要指主题相关,而且是整个对话期间,不要东一瓢西一瓤。

但这些原则比较抽象,不具有具体的指导意义,只能先做为整体的要求了解。

好与坏的举例:

# 有效 Prompt
你能总结一下《锻炼的好处》一文的要点吗?  # 聚焦、相关
巴黎最好的素食餐厅有哪些?  # 具体、相关
# 无效 Prompt
你能告诉我关于这个世界的什么?  # 宽泛、开放
你能帮我做作业吗?  # 开放
你好  # 无目的、不聚焦

编写良好prompt的四种基础模式

四种基础模式:

  • By example (示例模式)

在这种模式下,我们给模型提供一些示例文本,模型需要生成与示例文本类似的文本。 这种模式通常用于生成类似于给定示例的文本,例如自动生成电子邮件、产品描述、新闻报道等。 示例文本可以是单个句子或多个段落,具体取决于任务的要求。

示例中有什么格式或规律,让AI自己发现。

  • By instruction template (指令模板)

在这种模式下,我们给模型提供一些明确的指令,模型需要根据这些指令生成文本。 这种模式通常用于生成类似于技术说明书、操作手册等需要明确指令的文本。 指令可以是单个句子或多个段落,具体取决于任务的要求。

在给出prompt的时候,同时给出指令模板,约束输入和输出的互动格式。

  • By specific (特定指令)

在这种模式下,我们给模型提供一些特定信息,例如问题或关键词,模型需要生成与这些信息相关的文本。 这种模式通常用于生成答案、解释或推荐等。 特定信息可以是单个问题或多个关键词,具体取决于任务的要求。

这些问题或关键词一定是AI可以理解和接受的,是预置的已经存在的。

  • By proxy(代理模式)

在这种模式下,可以充当了一个代理,代表某个实体(例如人、角色、机器人等)进行操作或交互。 代理模式的核心思想是引入一个中介对象来控制对实际对象的访问,从而实现一定程度上的隔离和保护。 诸如于在 ChatGPT 中,"act as xxx" 可以让 ChatGPT 充当一个代理,扮演某个角色或实体的身份,以此来处理与该角色或实体相关的任务或请求。

这4个基础模式都很历害,它们可以推导出很多东西,包括下面的prompt编写模板。

编写一个合格的prompt的要点

  • 让AI扮演角色
  • 提供要执行的任务
  • 给出完成任务的步骤
  • 围绕任务提供上下文
  • 陈述具体目标,给出具体要求
  • 要求格式化输出
  • 明确指定语言风格
  • 让AI站在角色的角度
  • 马上给出具体的样例

下面分别看,这些要点都指什么。

让AI扮演角色

你想让它扮演一个什么样的角色,它便站在这样的角色的立场思考。

举例:你是...

你是一家顶级市场研究公司的才华横溢的分析师...

我希望你充当...

我希望你充当 javascript Console...

这种角色扮演ChatGPT竟然也毫不示弱,估计让它扮演一只小狗也可以。

此外还有:

  • 我想让你扮演一个脱口秀喜剧演员...
  • 我想让你扮演讲故事的角色...
  • 我想让你扮演一个小说家...
  • 我想让你充当书面作品的标题生成器...

至于说,ChatGPT能扮演什么,不能扮演什么,没有人知道,或许你能想到的它都能扮演,或许它只能扮演好一部分角色,但至少上面提供的角色,它都能很好的扮演,且已经有人分享过相关的prompt。

结论:无论写什么Prompt,开头第一句先描述一下我们想让ChatGPT充当什么角色。如果没有这样的角色,就杜撰一个,次数多了它可能也猜到是什么了。

明确提供要执行的任务

可以查到已经支持的任务有:文本分类、实体标注、信息抽取、翻译、生成、摘要提取、阅读理解、推理、问答、纠错、关键词提取、相似度计算。

这些单词在Prompt中都可以光明正大地出现,它们都有人使用过,ChatGPT都会理解得很好。

它有十大类基本能力:

  • 文本生成:  ChatGPT 可以生成各种格式的文本,例如写故事、写新闻文章或诗歌、写代码等。
  • 自动摘要:  ChatGPT 可以将一段很长的文本摘要成一个较短的版本。
  • 自然语言理解 (NLU):  ChatGPT 可以理解文本的含义,可用于情感分析、命名实体识别和文本分类等任务。
  • 语言翻译:  ChatGPT 可以针对语言翻译任务进行微调,将文本从一种语言翻译成另一种语言。
  • 对话生成:  ChatGPT 可以生成类似人类的对话,使其适用于聊天机器人和虚拟助手应用程序。
  • 文本转语音:  ChatGPT 可以针对文本转语音任务进行微调,将文本转换为口语。
  • 图像字幕:  ChatGPT 可以针对图像字幕任务进行微调,它可以为图像和视频生成字幕。
  • 阅读理解:  ChatGPT 可以针对阅读理解任务进行微调,它可以根据给定的文本回答问题。
  • 问答:  ChatGPT 可以根据给定的上下文或知识库回答问题。
  • 文本补全:  ChatGPT 可以根据给定的上下文或提示来完成给定的文本。

这十大项,及它们的子项,都是它可以执行的任务。

例如第一项能力中的:写故事、想故事、编故事,字词可以稍有差别,但都可能作为任务使用。

每一个prompt,都应该至少有一个清晰的任务。 这很重要!

举例:

我希望你充当 JavaScript console。我将键入命令,您将回复 JavaScript console 应显示的内容...

在这里“您将回复 JavaScript console 应显示的内容”,“回复内容”便是给AI的明确的任务。

再举一个例子:

我想让你扮演一个小说家。您将想出富有创意且引人入胜的故事...

在这里“您将想出富有创意且引人入胜的故事”,“想故事”便是任务。

再举例:

我想让你扮演一个脱口秀喜剧演员。我将...,您将...,根据这些话题创建一个例程...

在这里,“创建例程”便是任务。什么是例程?别担心AI看不懂,多给它几个样例,它自然就懂了。它以于自己要完成的任务,一半靠理解,一半猜测,本质上都是基于概率的推测。

再举例:

我想让你扮演讲故事的角色。您将想出引人入胜、富有想象力和吸引观众的有趣故事...

这里的任务是什么?“想出故事”对不对?

给出完成任务的步骤

步骤是一个大于1的待办事项,且有先后依赖关系和前后次序。

举例:

我希望你充当 JavaScript console。我将键入命令,您将回复 JavaScript console 应显示的内容...

这里的步骤是:

  • 我将键入命令
  • 你将回复内容

这就是完成任务的步骤,是人类与AI共同协作完成的。

再举例:

请做一个实体抽取任务,从下面这段话中提取出人名和地名,并用JSON格式输出:
刘亦菲( Crystal Liu,1987 年 8 月 25 日-[1])为 华裔美籍的女演员...

在这里:

  • 提取出人名和地名
  • json格式输出

就是任务步骤。

再举例:

我想让你扮演一个脱口秀喜剧演员。我将为您提供一些与时事相关的话题,您将运用您的智慧、创造力和观察能力,根据这些话题创建一个例程...

在这里:

  • 你瘵为你提供..话题
  • 你运用..创建例程

就是一个任务步骤。

围绕任务提供上下文

描述上下文是为了让AI更加清晰地理解我们的意图,是代替多次互动效果的。

举例:

...根据目标受众,您可以为讲故事环节选择特定的主题或主题,例如,如果是儿童,则可以谈论动物;如果是成年人,那么基于历史的故事可能会更好地吸引他们等等...

在这里:

  • 如果是儿童,则可以..
  • 如果成年人,那么..

这便是一种上下文环境的描述,它代表的是一种文字的正则表达式

陈述具体目标,给出具体要求

举例:

我想让你充当书面作品的标题生成器。我会给你提供一篇文章的主题和关键词,你会生成五个吸引眼球的标题。请保持标题简洁,不超过 20 个字,并确保保持原意...

在这里,“请保持标题简洁,不超过 20 个字,并确保保持原”就是具体的,对生成目录的要求。

再举例:

...你可以选择任何类型,如奇幻、浪漫、历史小说等,但你的目标是写出具有出色情节、引人入胜的人物和意想不到的高潮的作品...

在这里:

  • “可以选择任何类型,如奇幻、浪漫、历史小说等”这是Option标准
  • “写出具有出色情节、引人入胜的人物和意想不到的高潮”是对目标提出的3个明确的要求

再举例:

写一篇简短的文章,说明为什么文案写作是 2023 年的一项基本技能。
使用这些策略:
- 使用具有说服力的语言
- 提出问题以在段落之间过渡
- 用证据和例子支持要点
- 直接与读者对话

对于多项要求,也可以使用任务的输入格式。不仅输出格式可以指定,输入格式也可以预先告知AI,方便AI理解。

要求格式化输出

举例:

创建关于使用 Notion 作为内容创建者保持井井有条的主题的思维导图,列出中心思想、主要分支和子分支。 

在这里,列出“中心思想、主要分支和子分支”,就是人类指定的输出格式。

下面是一些较用通用的格式描述:

要求其改变输出:大纲;思维导图;要点;
有说服力的文章;
少于 280 个字符的文本块;
使用结构:1)什么,2)为什么,3)如何做。

这些字眼在Prompt中都可以出现。

明确指定语言风格

举例:

就如何使用 ChatGPT,创建更有效的内容,提供最讽刺、嘲讽的建议。

这里的“讽刺、嘲讽”便是语言风格,注意语言风格可以要求极致,例如使用“最”,但不能相互矛盾,例如在同一个prompt中,要求AI同时使用专业且诙谐的语言风格,虽然有时候它俩未必100%矛盾,但这种指定可能会让AI无视你指定的风格,因为它无法完成。

让AI站在人物的角度,而非上帝视角

举例:

主题:企业家的生产力  
对于上述主题,从每个具有不同观点角色的角度编写多个观点。对于每个观点,用角色自己的声音写,使用那个人会使用的短语...

马上给出具体的样例

举例:

...我的第一个要求是“我需要一个关于毅力的有趣故事“...

在这里,“我需要一个关于毅力的有趣故事“,就是第一个输入的样例。样例是互动真正开始的地方,前面的内容都是为此准备的。

再举例:

...我的第一个要求是“我要写一部以未来为背景的科幻小说”...

在这里,“我要写一部以未来为背景的科幻小说”,就是一个样例。

小结

Prompt编写”博大精深“,看起来简单,其实没那么简单,要不为什么instagram上有人可以靠出售Prompt赚钱。能够交易的,尤其是可以复制的文本,它一定具有不扉的价值。但其实经过上面的研究,发现它也没有那么难,对于个人来讲,只需要研究某个垂直细分领域的Prompt如何编写就可以了,这其实又不难。

以上就是ChatGPT如何写好Prompt编程示例详解的详细内容,更多关于ChatGPT Prompt编程的资料请关注其它相关文章!

相关文章