Skip to content
微信公众号

提示词工程

Prompt 是什么?

Prompt 是⼀种⼈为构造的输⼊序列,⽤于引导 GPT 模型根据先前输⼊的内容⽣成相关的输出。 简单来说,就是你向模型提供的 “提示词”。

在 ChatGpt 中,我们可以通过设计不同的 prompt,让模型⽣成与之相关的⽂本。例如,假设我 们想让 ChatGpt 担任英语翻译。我们可以给模型提供以下 prompt:

md
我希望你能担任英语翻译、拼写校对和修辞改进的⻆⾊。
我会⽤任何语⾔和你交流,你会识别语⾔,将其翻译并⽤更为优美和精炼的英语回答我。
请将我简单的词汇和句⼦替换成更为优美和⾼雅的表达⽅式,确保意思不变,但使其更具⽂学性。
请仅回答更正和改进的部分,不要写解释。我的第⼀句话是“how are you ?,请翻译它。
我希望你能担任英语翻译、拼写校对和修辞改进的⻆⾊。
我会⽤任何语⾔和你交流,你会识别语⾔,将其翻译并⽤更为优美和精炼的英语回答我。
请将我简单的词汇和句⼦替换成更为优美和⾼雅的表达⽅式,确保意思不变,但使其更具⽂学性。
请仅回答更正和改进的部分,不要写解释。我的第⼀句话是“how are you ?,请翻译它。

这样,我们就可以期待模型⽣成⼀段⽂本了。

Prompt 如何⽣成?

prompt 如此重要,我们应该怎么去写⼀个好的 prompt 呢?github 上有位⼤佬 Matt Nigh。 https://github.com/mattnigh/ChatGPT3-Free-Prompt-List

CRISPE Prompt Framework,CRISPE 是⾸字⺟的缩写,分别代表以下含义:

  • CR:Capacity and Role(能⼒与⻆⾊),你希望 ChatGPT 扮演怎样的⻆⾊。
  • I:Insight(洞察),背景信息和上下⽂。
  • S:Statement(陈述),你希望 ChatGPT 做什么。
  • P:Personality(个性),你希望 ChatGPT 以什么⻛格或⽅式回答你。
  • E:Experiment(实验),要求 ChatGPT 为你提供多个答案。

github 上的那 prompt ⻆⾊⼤全基本都是 CRISPE 框架。

担任产品经理

请确认我的以下请求。请您作为产品经理回复我。我将会提供一个主题,您将帮助我编写一份包括以下 章节标题的 PRD 文档:主题、简介、问题陈述、目标与目的、用户故事、技术要求、收益、KPI 指标、开 发风险以及结论。我的需求是:做一个赛博朋克的网站首页。

做表格 请你充当表格生成器。您只会回复我一个包含 10 行的表格。我会告诉你在单元格中写入什么,你只会以 markdown 表格形式回复结果,而不是其他任何内容。请注意,您的回答应该是简明扼要的,不需要附 带任何额外的解释。你只会回复 markdown 表的作为结果。首先,回复我十二生肖表。

充当英语发音帮手 请为说汉语的人提供英语发音帮助。我会给你汉语句子,你需回答正确的英语发音。仅回答发音,不需 要翻译或解释。请使用汉语谐音注音。首句:“上海的天气怎么样?”

充当旅游指南 我想让你做一个旅游指南。我会把我的位置写给你,你会推荐一个靠近我的位置的地方。在某些情况 下,我还会告诉您我将访问的地方类型。您还会向我推荐靠近我的第一个位置的类似类型的地方。我的 第一个建议请求是"我在上海,我只想参观博物馆。

先定角色,后说背景,再提要求,最后定风格。是否生成多个例子可以看自己喜好。

Prompt 的重要性

合理使用 prompt 可以为 ChatGpt 带来很多好处。以下是 一 些例子:

  • 提高生成准确性:通过正确的 prompt 引导,模型能够更好地理解用户的意图,从而生成更加 准确的文本。
  • 增强自由度:通过多种不同的 prompt, 我们可以让模型生成各种各样的文本,增强了模型的 表现力和自由度。
  • 提高效率:如果我们已经知道要生成的文本大致内容,通过正确的 prompt 可以让模型更快地 生成出我们想要的结果。

Prompt Engineering 定义

定义: Prompt Engineering 是设计和优化输入提示 (prompt) 以获得预期输出的过程。在与大型语言 模 型 ( 如 GPT-4) 交互时,如何构造提示会显著影响模型的回答质量。

例子:

  • 简单提示: "告诉我关于猫的事情。"
  • 优化提示: "请详细描述猫的生物学特征、行为习惯以及它们在不同文化中的象征意义。" 通过优化提示,用户可以引导模型生成更详细和有用的回答。

Prompt Engineering 是设计和优化输入提示以获得预期输出的过程。为了在使用大型语言模型(如 GPT-4) 时获得最佳结果,以下是一 些最佳实践:

Prompt Engineering 最佳实践

1.明确目标

最佳实践: 明确你希望模型完成的任务或回答的问题。 示例:

  • 目标不明确: "告诉我关于气候变化的事情。"
  • 目标明确: "请简要描述气候变化的主要原因及其对农业的影响。"
  1. 提供上下文

最佳实践: 为模型提供必要的背景信息或上下文,以帮助其理解任务。 示例:

  • 无上下文: "解释 一 下微积分。"
  • 有上下文: "作为一名高中生,我正在学习微积分。请用简单的语言解释一 下微积分的基本概 念 。 "
  1. 使用具体的指示

最佳实践: 使用明确的指示和要求,避免模糊不清的提示。 示例:

  • 模糊指示: "写一篇关干技术的文章。"

  • 具体指示: "请写一篇关于人工智能在医疗领域应用的文章,包含以下几点:应用场景、优势和挑

  1. 提供示例

最佳实践: 通过提供示例来展示你期望的输出格式或内容。 示 例 :

  • 无示例: "生成一个关干产品的报告。"

  • 有示例: "生成 一个关于产品的报告、格式如下:\n\n-产品名称:\n-价格:\n-特点:\n

  • 优 点 : \ n - 缺 点 : "
  1. 使用分步指示

最佳实践: 对于复杂任务,分解为多个步骤,逐步引导模型完成。 示 例 :

  • 一步完成: "解释并解决这个数学问题:2x+3=7。"
  • 分步指示: "首先,解释如何解方程。然后,解方程 2x+3=7。"
  1. 控制输出长度

最佳实践: 通过提示控制输出的长度,确保内容简洁或详细。 示 例 :

  • 无长度控制: "解释一下量子力学。"
  • 有长度控制: "用不超过 100 字解释量子力学的基本概念。"
  1. 使用占位符和模板

最佳实践: 使用占位符和模板来指示需要填充的内容或格式。

示 例 :

  • 无模板: "生成一个用户注册表单。"
  • 有模板: "生成一个用户注册表单.包含以下字段:用户名、密码、邮箱、电话号码。"
  1. 反复试验和调整

最佳实践: 不断试验和调整提示,观察模型的输出,并根据需要进行优化。 示 例 :

  • 初始提示: "描述一下 Python 编程语言。"
  • 调整提示: "描述一下 Python 编程语言的主要特点和常见应用场景。"
  1. 指定输出格式

最佳实践: 明确指定输出格式,确保生成内容符合预期。 示 例 :

  • 无格式指定: "生成一个关干公司财务状况的报告。

  • 有格式指定: "生成一个关于公司财务状况的报告,格式如下:\n\n1 .收入:\n2 . 支出:\n

  1. 使用多轮对话

最佳实践: 在需要时,通过多轮对话逐步引导模型生成所需内容。

示 例 :

  • 单轮对话: "告诉我关于 Python 编程的所有信息。"

  • 多轮对话:

    • 用户:"告诉我 Python 编程的主要特点。" - 模 型 :"Python 是一种高级编程语言,具有易读性、广泛的库支持和跨平台兼容性。" o 用户: "请详细描述 Python 的常见应用场景。"

    • 模 型 :"Python 常用于 Web 开发、数据科学、人工智能、自动化脚本和软件开发。"

      11.使用反思和迭代

最佳实践: 在生成初步答案后,反思并可能修改其回答,以提高准确性和质量。 示 例 :

  • 初步回答: "Python 是一种编程语言。"
  • 反思和修改: "Pvthon 是一种高级编程语言、广泛用于 Web 开发、数据科学、人工智能等领域、因 其易读性和丰富的库支持而受到欢迎。"

通过遵循这些最佳实践,可以更有效地引导大型语言模型生成高质量的输出,满足各种任务需求。

提示技术

  1. Zero-shot

定义:Zero-shot 是指模型在没有任何示例的情况下完成任务。模型必须依靠其预训练知识和提示来生 成答案。 例子:

  • 提示: "翻译这句话:'The cat is on the roof .'"
  • 回 答 : "猫在屋顶上。"

模型没有看到过具体的翻译示例,但仍然能够正确翻译句子。

  1. Few-shot

定义:Few-shot 是指模型在完成任务之前,先提供几个示例来帮助模型理解任务。 例子:

  • 提示: "翻译以下句子:'The dog is in the garden.'-> '狗在花园里。' 'The bird is in the tree.'-> '鸟在树上。' 'The cat is on the roof.'->"
  • 回答: "猫在屋顶上。"

通过提供几个翻译示例,模型可以更准确地完成翻译任务。

  1. Chain-of-Thought(CoT) 定义:Chain-of-Thought 是一种提示技术,通过展示模型思考过程的步骤来解决复杂问题。这种方法 可以帮助模型更好地推理和生成答案。

例子:

  • 提 示: "如果一个苹果和一个香蕉的总价是 3 美元, 一个苹果的价格是 2 美元.那么一个香蕉的价格 是多少?请展示你的思考过程。"
  • 回答: "首先 .苹果的价格是 2 美元。总价是 3 美元 .所以香蕉的价格是 3 美元减去 2 美元 .等干 1 美

通过展示思考过程,模型可以更清晰地推理出正确答案。

  1. ReAct

定义:ReAct 是一种结合反应 (Reaction) 和行动 (Action) 的提示技术,通常用于交互式任务或复杂 决策。 例子:

  • 提示: "你是一个虚拟助手。用户问:'我今天应该穿什么衣服?'你需要根据天气情况给出建

  • 回答:

    • 步骤 1: "查询天气:今天的天气是晴天,温度在 25-30 度之间。"
    • 步骤 2: "建议:今天适合穿轻便的夏装,比如 T 恤和短裤。" 通过分步骤反应和行动,模型可以更有效地完成复杂任务。
  1. Reflexion

定义:Reflexion 是一种提示技术,模型在生成初步答案后,反思并可能修改其回答。这个过程可以提高 答案的准确性和质量。 例子:

  • 提示: "解释为什么天空是蓝色的。"
  • 初步回答: "因为大气中的氧气和氮气散射阳光中的蓝色光。"
  • 反思: "这解释不够准确。实际上.蓝色光被散射得更多是因为瑞利散射效应。"
  • 修改回答:"天空是蓝色的,因为阳光穿过大气层时,短波长的蓝色光比其他颜色的光被空气分子 散射得更多,这种现象被称为瑞利散射。"

通过反思和修改,模型可以提供更准确和详细的回答。

  1. Prompt Chaining

定义:Prompt Chaining 是将多个提示串联起来,以分步解决复杂问题或完成多步骤任务。 例子:

  • 任务:写一篇关于气候变化的文章。
  • 提示链:
    • a. "首先,简要介绍什么是气候变化。"
    • b. “接下来,描述气候变化的主要原因。”
    • c. "然后,讨论气候变化的影响。"

通过将任务分解为多个步骤,模型可以更系统和有条理地完成复杂任务。

这些技术和方法帮助用户更有效地与大型语言模型互动,获得更高质量的输出。

结构化输出

结构化输出在 Prompt Engineering 中是指通过设计特定的提示,引导语言模型生成具有明确格式或结 构的输出。这在需要处理数据表格、生成代码、创建报告等任务中尤为重要。通过结构化输出,可以确 保生成的内容符合预期的格式,便于后续处理和使用。

结构化输出的常见形式

  1. JSON 格 式:适用于需要生成或处理数据对象的任务。
  2. Markdown 格式:用于生成文档或报告,便于阅读和展示。
  3. 表格格式: 适用于数据展示和分析。
  4. 代码格式: 用于生成特定编程语言的代码片段。

设计结构化输出提示的技巧

  1. 明确格式要求: 在提示中清晰地说明输出的格式。
  2. 提供示例: 通过示例展示期望的输出格式。
  3. 使用占位符: 在提示中使用占位符来指示需要填充的内容。

结构化输出的示例

示例 1 : 生成 JSON 格式的数据

提示 :

md
请生成一个包含以下信息的 JSON 对象:

- 名 字
- 年 龄
- 职 业
- 兴趣爱好
  示例格式:
  {
  "name":"张三", 10 "age":30,
  "occupation":"软件工程师",
  "hobbies":["阅读","旅行","编程"]
  }
请生成一个包含以下信息的 JSON 对象:

- 名 字
- 年 龄
- 职 业
- 兴趣爱好
  示例格式:
  {
  "name":"张三", 10 "age":30,
  "occupation":"软件工程师",
  "hobbies":["阅读","旅行","编程"]
  }

输出 :

md
{
"name":"李四", 3 "age":25,
"occupation":"数据分析师",
"hobbies":["绘画","跑步","音乐"]
}
{
"name":"李四", 3 "age":25,
"occupation":"数据分析师",
"hobbies":["绘画","跑步","音乐"]
}

示例 2 : 生成 Markdown 格式的报告

提示 :

md
请根据以下信息生成一份 Markdown 格式的报告: -标题:气候变化对农业的影响 -引言:简要介绍气候变化的背景。 -影响:详细描述气候变化对农业的具体影响。 -结论:总结并提出应对措施。
示例格式:

# 标题

## 引言

内容

## 影响

内容

## 结论

内容
请根据以下信息生成一份 Markdown 格式的报告: -标题:气候变化对农业的影响 -引言:简要介绍气候变化的背景。 -影响:详细描述气候变化对农业的具体影响。 -结论:总结并提出应对措施。
示例格式:

# 标题

## 引言

内容

## 影响

内容

## 结论

内容

输出 :

md
# 气候变化对农业的影响

## 引言

气候变化是指长期气候模式的变化,主要由人类活动引起的温室气体排放导致。这些变化对全球的生 态系统和人类社会产生了深远的影响。

## 影响

气候变化对农业的影响主要体现在以下几个方面: 1.**作物生长周期**:温度升高和降水模式的变化影响作物的生长周期,可能导致减产。 2.**病虫害**:气候变化可能增加病虫害的发生频率和严重程度,对农业生产构成威胁。 3.**水资源**:气候变化导致的极端天气事件,如干旱和洪水,影响农业用水的可用性和质量。

## 结论

为了应对气候变化对农业的影响,需要采取以下措施: 1.推广耐高温和抗旱作物品种。 2.改进农业灌溉技术,提高用水效率。 3.加强农业病虫害监测和防治工作。
# 气候变化对农业的影响

## 引言

气候变化是指长期气候模式的变化,主要由人类活动引起的温室气体排放导致。这些变化对全球的生 态系统和人类社会产生了深远的影响。

## 影响

气候变化对农业的影响主要体现在以下几个方面: 1.**作物生长周期**:温度升高和降水模式的变化影响作物的生长周期,可能导致减产。 2.**病虫害**:气候变化可能增加病虫害的发生频率和严重程度,对农业生产构成威胁。 3.**水资源**:气候变化导致的极端天气事件,如干旱和洪水,影响农业用水的可用性和质量。

## 结论

为了应对气候变化对农业的影响,需要采取以下措施: 1.推广耐高温和抗旱作物品种。 2.改进农业灌溉技术,提高用水效率。 3.加强农业病虫害监测和防治工作。

本站总访问量次,本站总访客数人次
Released under the MIT License.