外观
Prompt Engineering 提示词工程
约 2547 字大约 8 分钟
2025-09-05
Prompt 提示词
Prompt(提示词)是用户与大语言模型(LLM)交互时输入的指令或上下文信息,用于引导 AI 生成符合预期的输出结果。它可以是一段文字、一个问题、一些描述或带有特定参数的指令,本质上是连接人类意图与 AI 能力的桥梁。
Prompt 的核心价值在于它能够显著提升 AI 输出的准确性和可控性。通过精心设计的 Prompt,用户可以:
- 减少歧义:明确任务边界,避免模型“自由发挥”。
- 提高效率:一个精心设计的 Prompt 可以使 AI 在最短的时间内生成最符合需求的答案或内容。
- 适配专业场景:针对不同领域(如编程、法律、教育)定制指令,获得更专业的输出。
常见类型及示例
类型 | 说明 | 示例 |
---|---|---|
指令型 | 明确要求 AI 完成特定动作(如创作、总结、翻译、分析等) | “写一封求职邮件,主题为‘应聘产品经理岗位’,突出项目管理经验。” |
角色扮演型 | 为 AI 指定一个角色,使其输出更专业、更符合特定视角 | “假设你是哈佛大学的时间管理教授,用轻松幽默的语言写一篇给拖延症患者的 5 分钟速读指南。” |
结构化输出型 | 要求 AI 返回特定格式的数据,如 JSON、表格等,便于程序解析 | “以 JSON 格式返回中国 GDP 排名前 5 的城市,包含字段:城市名、GDP(亿元)、同比增长率。” |
思维链(CoT)型 | 引导 AI 展示推理过程,适用于复杂问题或逻辑分析 | “请分步骤解答:小明有 12 个苹果,吃掉 1/3 后分给朋友一半,还剩多少?” |
少样本学习(Few-Shot)型 | 提供 1-3 个输入-输出示例,让 AI 模仿学习特定模式或风格 | 示例 1:输入:“嘿,明天能交报告吗?” -> 输出:“您好,请问报告能否在明日提交?期待您的回复。” 任务:改写“这方案行不行?快点反馈!” |
Prompt 的应用场景
Prompt 的应用场景非常广泛,几乎涵盖了所有与 AI 交互的领域
- 内容创作:撰写文章、脚本、诗歌、邮件、营销文案等。
- 代码辅助:生成代码片段、解释代码、调试、转换编程语言等。
- 知识问答与学习:解答问题、解释概念、总结文献、翻译语言等。
- 推理与分析:进行逻辑推理、数学计算、数据分析、图表生成等。
- 对话与角色扮演:模拟客服、进行语言练习、创建聊天机器人等。
设计优质 Prompt 的基本原则
一个高质量的 Prompt 通常具备以下特点,可以参考RCO-STAR等模板来构思:
- 清晰具体 (Clear and Specific):避免模糊表述,明确任务目标。例如,不说“写篇文章”,而说“写一篇关于‘低碳生活小技巧’的科普短文,分 5 个要点”。
- 提供上下文 (Context):提供必要的背景信息、约束条件或参考标准。例如,“针对 3-5 岁儿童,用绘本风格解释‘为什么月亮会变圆缺’”。
- 定义角色 (Role):为 AI 设定一个身份,如“你是一位资深 Python 工程师”。
- 明确目标 (Objective):清晰说明需要完成的具体任务。
- 指定风格和语调 (Style & Tone):根据需求指定输出风格(如学术、口语、幽默、专业等)和语调。
- 考虑受众 (Audience):明确输出内容的受众群体。
- 定义响应格式 (Response Format):要求 AI 以特定格式(如 JSON、Markdown、列表)输出结果。
Prompt Engineering 提示工程
Prompt Engineering(提示工程)是一门通过精心设计和优化输入给大型语言模型(LLM)的文本指令(即 Prompt),以引导模型生成更准确、更符合预期输出的技术。其核心在于在不修改模型本身权重的情况下,通过调整输入内容来影响和优化模型的行为,可以理解为一种“与 AI 高效沟通的艺术”。
核心设计要素
要素 | 说明 | 示例(简化版) |
---|---|---|
任务 (Task) | 清晰、明确地指出你希望模型完成的具体动作。这是 Prompt 最核心的部分。 | “总结以下文章的核心观点。” |
上下文 (Context) | 提供与任务相关的背景信息、数据或材料,帮助模型更准确地理解意图。 | “这是一篇关于气候变化对农业影响的学术论文:[文章内容]” |
角色 (Role) | 为模型设定一个特定的身份或角色,使其输出更具专业性、更符合特定视角。 | “你是一位资深营养师。” |
示例 (Examples) | 提供一两个输入-输出的例子(Few-shot),让模型通过模仿来快速学习任务模式。 | “输入:'这部电影很棒' -> 输出:正面情感 输入:'服务很差' -> 输出:负面情感” |
格式 (Format) | 指定模型输出的形式和要求,如 JSON、表格、列表、Markdown、代码等。 | “请将结果以 JSON 格式输出。” |
语气/风格 (Tone) | 指定输出文本的风格或语调,如正式、口语化、幽默、严谨、简洁等。 | “用通俗易懂的语言向初学者解释。” |
常用方法
方法 | 说明 | 示例(简化版) |
---|---|---|
零样本提示 (Zero-shot) | 直接向模型下达任务指令,不提供任何已完成任务的示例。模型依赖其内部知识来理解和执行。 | “将‘Hello, world!’翻译成中文。” |
少样本提示 (Few-shot) | 在 Prompt 中提供几个任务示例(输入-输出对),让模型通过上下文学习(In-context Learning)来模仿模式。 | “Q: 今天天气怎么样? A: 询问天气 Q: 讲个笑话 A: 请求笑话 Q: [用户问题] A:” |
思维链 (Chain-of-Thought, CoT) | 对于复杂问题,要求模型展示其推理步骤和思考过程,而不仅仅是给出最终答案,以提高准确性和可解释性。 | “请分步骤解答这个问题:如果小明有 5 个苹果,吃了 2 个,又买了 3 个,他现在一共有几个?” |
指令迭代优化 | 通过不断调整和细化指令的清晰度、具体性和约束条件,像调试代码一样调试 Prompt,以获得最佳输出。 | 从模糊的“写首诗”优化为具体的“写一首关于离别的七言律诗,押仄韵,意境苍凉。” |
核心目标与价值
Prompt Engineering 的主要目标是精准地控制模型的输出,使其更好地与人类意图对齐。
- 提升准确性:减少模型产生错误或不相关信息(“幻觉”)的可能性。
- 增强可控性:通过指令精确控制输出的格式、风格、长度等。
- 提高效率:好的 Prompt 能减少与模型的反复沟通次数,更快获得理想结果。
- 降低使用成本:无需重新训练或微调模型(这通常计算成本很高),通过优化输入就能让模型适配多种任务。
- 扩展应用范围:通过巧妙的 Prompt 设计,可以激发模型完成更复杂的任务,如复杂推理、创意生成等。
Prompt Engineering 六步法
1. 明确任务
用最直接的语言告诉模型要做什么。
错误:翻译一下。
正确: 将这句英文翻译成中文:'The quick brown fox jumps over the lazy dog.',确保翻译流畅。
错误:分析数据。
正确: 分析这份销售数据,指出过去一季度销量最高的产品和其销售额。
2. 提供背景
给出执行任务所需的相关信息,帮助模型理解场景。
错误:写个广告。
正确: 假设你是资深营销专家,为一款新上市的智能手机写一条朋友圈广告。
错误:总结文章。
正确: 这是一篇关于量子计算突破的科技新闻,请用三句话总结其核心发现。
3. 设定约束
对模型的输出格式、风格、长度等提出具体要求。
错误:列出要点。
正确: 用带序号的列表,分三点说明全球变暖的主要成因。
错误:写封邮件。
正确: 用正式、礼貌的商业信函格式,写一封催款邮件,字数不超过 200 字。
4. 举例说明(可选但有效)
提供一两个输入输出的例子,让模型快速模仿。
示例:输入‘苹果’,输出‘水果’。输入‘汽车’,输出‘交通工具’。那么输入‘书本’,输出?
示例:请模仿以下文案风格为新产品写口号。示例原文:‘专注每一刻,畅享天籁之声’(某耳机广告)。新产品:一款抗疲劳眼药水。
5. 拆分复杂任务
将复杂问题分解成几个简单的步骤,让模型逐步解决。
错误:分析一下某某公司财报。
正确: 第一步:提取某某公司 Q3 财报中的三大亮点。第二步:指出两个潜在风险。第三步:将上述分析用 SWOT 模型呈现。
错误:小明有 12 个苹果,吃了 1/3,又分给朋友一半,还剩几个?
正确: 请分步骤解答这个问题:1. 计算小明吃了多少个苹果。2. 计算吃完后剩下多少个。3. 计算分给朋友后还剩多少个。
6. 迭代优化
根据第一次的输出结果,调整和优化你的 Prompt,比如补充信息或修正指令。
前置条件:初始输出太笼统
追加指令:请将技术术语替换为初学者能理解的语言,并添加两个现实应用场景。
前置条件:模型输出与预期格式不符
修正指令:请不要输出段落,而是严格按照‘关键词:解释’的键值对形式重新生成。