一、背景介绍
在人工智能的语境下,Prompt特指用于触发和引导人工智能语言模型生成特定输出的文本或语句片段。
在如今,与AI进行交互已经成为程序员工作生活中不可缺少的一部分。你是否有想过,为什么有些人用AI能快速完成工作,而有些人却总是产生不了令人满意的结果?
这个问题的答案其实很简单:关键在于会不会使用提示词。 AI 提示词框架就像是帮助我们与AI更有效地沟通的「导航系统」,让它理解我们的需求并提供最佳回应。
Prompt 本质上是一种注入式指令,它"指挥"AI 按照你预设的思路去思考问题、输出内容。熟练编写 Prompt,你就能充分利用 AI 的能力为你解决问题。
二、提示词优化思路
1. 详细询问,提供细节
当与AI交流时,提供具体和详细的信息非常重要。这样做可以帮助AI更准确地理解你的需求和上下文,从而生成更相关和有用的回答。 明确的信息可以包括具体的问题背景、相关领域的说明、你所期望的答案类型等。
- 明确问题背景:提供足够的信息来描述你的问题背景。例如,如果你在问一个医学相关的问题,提供相关的症状或情境。
- 具体描述需求:清楚地说明你需要什么类型的信息或帮助。例如,如果你需要建议,指明是寻求专业意见还是一般性建议。
- 提供相关领域信息:如果问题涉及特定的知识领域,提供这一领域的相关信息,以便AI更精确地定位答案。
- 避免模糊和广泛的问题:尽量避免提出过于广泛或模糊的问题,这样的问题往往导致AI无法提供具体和有用的回答。
示例:
- 不佳的提问:
- 改进后的提问:
2. 扮演角色
要求AI采用一个特定的角色可以极大地增强交互体验和回答的相关性。 当用户明确指定一个角色,如历史学家、医生、编程教师等,AI会尝试从该角色的视角回答问题,使对话更具针对性和深度。
- 明确指定角色:在提问时,清楚地指出你希望ChatGPT扮演的角色。
- 提供角色背景:如果可能,提供一些关于该角色的背景信息,例如专业知识领域、工作经验等。
- 调整问题风格:根据选定的角色,调整你的提问风格,以便更好地适应这一角色的回答方式。
示例:
- 不佳的提问:
- 改进后的提问:
3. 明确输入分隔
在与AI进行交互时,尤其是在处理包含多个不同部分或请求多项任务的复杂输入时,使用分隔符可以显著提高输入的清晰度和输出的质量。 分隔符有助于明确界定输入中的不同部分,确保每个部分都能被准确识别和适当处理。
- 选择合适的分隔符:根据输入的内容和格式,选择恰当的分隔符,如三引号(```)、XML标签、Markdown标题等。
- 明确标注各部分:使用分隔符前后清楚地标注各个部分的开始和结束,尤其是在文本较长或复杂时。
- 提供说明:在使用分隔符时,如果可能的话,给出简短的说明或注释,指明每个部分的内容或目的。
示例:
- 多部分问题:用户希望得到两个不同主题的解答,可以使用分隔符明确区分两个问题,简单的可以直接使用冒号分割:
解答下面的问题:
问题1:请解释机器学习的基本概念。
问题2:请列举健康饮食的三个基本原则。
- 详细指令与背景信息:当用户需要提供详细的背景信息并请求具体的操作时,可以使用分隔符区分背景信息和具体请求:
##背景:
公司正计划扩展其市场到亚洲,特别是日本和韩国。
##请求:
基于此背景,提出一个市场进入策略的初步计划。
- 使用XML标签处理多项内容:用户需要对两篇文章进行总结和比较,可以使用Markdown标签作为分隔符:
首先总结每篇文章的论点。然后指出哪篇文章提出了更好的论点,并解释为什么。
``` 这里是第一篇文章的内容 ```
``` 这里是第二篇文章的内容 ```
4. 提供示例
在与AI的交互中,提供示例可以极大地增强清晰性和理解。当你提供一个具体的例子时,它有助于AI更准确地把握你的意图和上下文。这一点在解释复杂的概念、描述具体的情况或提出具体的问题时尤为重要。 通常,给出适用于所有情况的通用指导比展示各种任务示例更高效。但在某些情况下,通过提供具体示例来说明可能更直观。比如,你想让模型学习某种特定的回应方式,这种方式可能难以用语言明确描述,这就是所谓的“少样本 (Few-shot)”提示方法。
- 关联说明与实例:在提供说明时,紧跟一个相关的例子,这样可以帮助模型理解说明的上下文。
- 明确示例的范围:确保你的例子足够具体,以展示你的询问或指令的具体应用。
- 使用分隔符标明示例:如果可能,使用适当的分隔符(如引号、括号等)清晰地标识示例的开始和结束。
示例:
三、提示词框架
1. ICIO
适用场景:
-
数据处理与转换:当用户需要 AI 处理特定的数据并按照特定格式输出时,如数据清洗、文本翻译或图像转换。
-
内容创作:当用户希望 AI 为其创作特定风格或格式的内容,如撰写报告、创作诗歌或设计图像。
-
技术任务:例如编码或算法设计,用户可以明确指定输入数据和期望的输出格式。
-
教育与培训:当用户希望 AI 为其提供特定领域的知识或技能培训时,可以使用 ICIO 框架来明确学习内容和格式。
定义:
-
🤖 Instruction (任务):你希望 AI 去做的任务,比如翻译或者写一段文字
-
📋 Context (背景):给 AI 更多的背景信息,引导模型做出更贴合需求的回复,比如你要他写的这段文字用在什么场景的、达到什么目的的
-
📖 Input Data (输入数据):告诉 AI 你这次你要他处理的数据。比如你要他翻译那么你每次要他翻译的句子就是「输入数据」
-
📤 Output Indicator (输出格式):告诉 AI 他输出的时候要用什么格式、风格、类型,如果你无所谓它输出时候的格式,也可以不写
示例(翻译法文到英文用于商务报告):
# Instruction 任务
描述:请将以下的法文段落翻译成英文。
重要性:翻译的准确性对于我们的商务报告至关重要。
# Context 背景
场景:这段法文将用于我们公司的年度商务报告。
目的:报告将呈现给公司的股东和潜在投资者,所以翻译需要准确且专业。
# Input Data 输入数据
"La croissance économique de la France a été stable au cours des dernières années, malgré les défis mondiaux."
# Output Indicator 输出格式
风格:正式和专业的商务英文风格。
注意事项:请确保翻译内容无语法错误,并保持原文的意思。
2. CRISPE
适用场景:
-
角色扮演与模拟:当用户希望 AI 模拟特定的角色进行互动,如医生、律师或教师,为其提供专业建议或解答。
-
情境模拟:例如模拟商务谈判、心理咨询或角色扮演游戏,用户可以为 AI 提供详细的背景和角色描述。
-
个性化互动:当用户希望 AI 具有特定的性格或风格进行互动,如幽默、正式或友好。
-
多样化输出:当用户希望从 AI 那里获得多种不同的答案或建议,可以使用实验部分来请求多个示例。
定义:
-
😊 Capacity and Role (角色):告诉 AI 你要他扮演的角色,比如老师、翻译官等等
-
📜 Insight (背景):告诉 AI 你让他扮演这个角色的背景,比如扮演老师是要教自己 10 岁的儿子等等
-
📌 Statement (任务):告诉 AI 你要他做什么任务
-
🎨 Personality (格式):告诉 AI 用什么风格、方式、格式来回答
-
🧪 Experiment (实验):请求 AI 为你回复多个示例(如果不需要,可无)
案例(AI 作为数学老师帮助解决数学问题):
# Capacity and Role 角色
描述:我希望你扮演一名经验丰富的小学数学老师。
特点:具备耐心和鼓励性的教学风格,能够简单明了地解释数学概念。
# Insight 背景
学生信息:你将为我的10岁的儿子提供帮助,他目前正在学习小学四年级的数学。
学习环境:他在家中进行在线学习,有时会遇到一些数学问题需要帮助。
# Statement 任务
描述:请帮助解答以下数学问题,并提供解题步骤。
重要性:确保解答方法适合10岁儿童的理解能力。
# Personality 格式
风格:友好、鼓励性,使用简单易懂的语言。
示例:可以使用实际生活中的例子来解释数学概念。
# Experiment 实验
描述:如果可能,请为每个问题提供两种不同的解题方法。
目的:增强孩子的数学思维和解题能力。
3. BROKE
适用场景:
-
项目管理与协作:当用户需要 AI 帮助管理项目、分配任务或协调团队合作时,BROKE 框架可以提供明确的背景、角色和目标,确保项目的成功执行。
-
创意与设计:当用户希望 AI 为其提供创意建议、设计方案或艺术创作时,BROKE 框架可以确保 AI 的输出满足用户的关键要求,并根据反馈进行持续改进。
-
研究与分析:当用户需要 AI 进行数据分析、市场研究或学术研究时,BROKE 框架可以为 AI 提供明确的研究背景和目标,确保研究结果的准确性和可靠性。
定义:
-
🌄 Background (背景):说明背景,提供充足信息
-
🎭 Role (角色):你要 AI 扮演的角色是什么
-
🎯 Objectives (目标/任务):你要 AI 做的事情的一个描述
-
🔑 Key Result (关键结果):对于 AI 输出的回答,在风格、格式、内容等方面的要求
-
🌟 Evolve (改进):在 AI 给出回答以后,三种调整、改进方法
案例(AI 作为项目经理帮助制定项目计划):
# Background
项目描述:我们正在启动一个新的软件开发项目,目标是为中小企业提供一款高效的财务管理工具。
团队组成:项目团队由5名开发人员、2名设计师、1名测试工程师和1名产品经理组成。
# Role
描述:我希望你扮演一名经验丰富的项目经理。
特点:具备出色的项目管理技能,能够确保项目按时完成并满足预定的质量标准。
# Objectives
描述:请帮助我们制定一个详细的项目计划,包括项目的各个阶段、关键里程碑、资源分配和风险管理。
# Key Result
输出格式:项目计划应以Gantt图的形式呈现,并包括每个任务的开始和结束日期、负责人和依赖关系。
关键指标:确保项目计划考虑到所有潜在的风险,并为每个风险提供了相应的应对策略。
# Evolve
反馈机制:在项目计划制定完成后,请提供一个反馈机制,以便团队成员可以提出他们的建议和改进意见。
迭代:根据团队的反馈和项目进展,每两周对项目计划进行一次迭代和更新。
持续监控:提供一个机制,以便我们可以实时监控项目的进展和状态。
4. RASCEF
适用场景:
-
专业咨询与建议:当用户需要 AI 为其提供专业的建议或策略,如营销策略、财务规划或法律咨询,RASCEF 框架可以确保 AI 提供的建议是基于明确的上下文和角色。
-
任务执行与流程管理:当用户希望 AI 帮助其执行特定的任务或管理工作流程,如项目管理、事件策划或销售流程,RASCEF 框架可以为 AI 提供明确的执行步骤和格式。
定义:
-
🎭 Role (角色):这就是 AI 需要扮演的人,他可以是电子邮件营销人员、项目经理、厨师或您能想到的任何其他角色
-
🔍 Action (行动):这是人工智能需要做的,例如编写项目执行计划
-
📝 Script (步骤):这些是 A 完成操作应遵循的步骤
-
🌐 Content (上下文):这是背景信息或情况
-
🔍 Example (示例):这些是说明这一点的特定实例,它们帮助人工智能理解语气和思维/写作风格
-
📄 Format (格式):这是 AI 应该呈现其答案的方式,它可以是段落、列表、对话或任何其他格式
案例:
# Role 角色
描述:我希望你扮演一名经验丰富的电子邮件营销人员。
特点:具备出色的市场分析能力,了解当前的电子邮件营销趋势和最佳实践。
# Action 行动
任务:请为我们制定一个电子邮件营销策略,包括目标受众、内容策划和发送频率。
# Script 步骤
1.分析目标受众的特点和需求。
2.设计电子邮件的内容和格式。
3.制定发送计划和频率。
4.设计跟踪和分析反馈的机制。
# Content 上下文
公司背景:我们是一家新兴的健康食品品牌,目标受众为20-40岁的健康生活爱好者。
营销目标:提高品牌知名度,增加网站流量和促进产品销售。
# Example 示例
内容建议:可以设计一系列关于健康饮食的小贴士,每周发送一次。
风格:友好、鼓励性,使用简单易懂的语言。
# Format 格式
电子邮件模板:使用清晰的标题、引人入胜的图片和简洁的文本内容。
响应式设计:确保电子邮件在各种设备上都能正常显示。
希望这样的格式和内容满足您的需求,如有其他修改或补充,请告诉我。
5. 其他框架简述
- APE 框架
- ACTION:行动 定义要完成的工作或活动
- PURPOSE:目的 讨论意图或目标
- EXPECTATION:期望 陈述预期的结果
- COAST 框架
- CONTEXT:上下文背景 为对话设定舞台
- OBJECTIVE:目的 描述目标
- ACTION :行动 解释所需行动
- SCENARIO:方案 描述场景
- TASK:任务 描述任务
- TAG 框架
- TASK:任务 描述任务
- ACTION :行动 解释所需行动
- GOAL:目标 解释最终目标
- RISE 框架
- ROLE:角色 指定ChatGPT的角色
- INPUT:输入 描述信息或资源
- STEPS:步骤 询问详细的步骤
- EXPECTATION 期望 描述所需的结果
- TRACE 框架
- TASK:任务 定义特定任务
- REQUEST:请求 描述要求
- ACTION:行动 说明需要的操作
- CONTEXT:上下文 提供上下文信息或情况
- EXAMPLE:示例 举例子说明你想要达成的效果
- ERA 框架
- EXPECTATION:期望 描述所需的结果
- ROLE:角色 指定角色
- ACTION:行动 指定需要采取哪些操作
- CARE 框架
- CONTEXT:上下文 提供上下文信息或情况
- ACTION:行动 说明需要的操作
- RESULT:结果 描述所需的结果
- EXAMPLE:示例 举例子说明你想要达成的效果
- ROSES 框架
- ROLE:角色 指定角色
- OBJECTIVE:目的 陈述目标
- SCENARIO:方案 描述情况
- EXPECTED SOLUTION:解决方案 定义所需的结果
- STEPS:步骤 要求达到目标所需的步骤
- PATFU 框架
- PROBLEM:问题 清晰的表达需要解决的问题
- AERA:领域 问题所在领域或需扮演的角色
- TASK:任务 解决这个问题需要执行的具体任务
- FORMAT:格式 详细定义输出的格式和限制条件
- UPDATE:迭代 记录提示词版本并根据输出结果对提示词进行迭代
6. 提示词框架总结
框架中常用的方面有:
- 角色:赋予AI的身份
- 任务:整体说明需要完成哪些任务
- 问题:当前存在的不足
- 背景:相关背景信息
- 格式:结果格式要求
- 期望:结果期望
- 行动:说明需要进行的操作
- 目的:实现效果,较笼统
- 方案:给出详细的实现步骤或技术栈
- 示例:符合格式要求的具体例子,输入输出均可
- 实验:对于回复的预测、猜想,提供思路
可灵活补充选择,结合情境和需求使用。
四、总结
本文从背景、理论与实践三个方面介绍了提示词相关知识,通过学习笔者也认识到框架不是死记硬背而是要以目的为导向,许多框架之间也是高度相似或者换了个说法,本文出于尽可能全面收集整理的目的并未进行合并或删减,关键仍是有比较清晰的思路和目的,从而选择合适的引导方面。
参考文献: