提示词工程02:提示词的基本结构
提示词工程02:提示词的基本结构
📖 系列导航
- 上一篇:什么是提示词?
- 本篇:提示词的基本结构(你正在阅读)
- 下一篇:Few-shot与Zero-shot对比
- 系列:提示词工程从零到精通(共7篇)
上篇回顾
上一篇我们学习了:
- 提示词是人与 AI 的”接口”
- 好提示词公式:背景 + 角色 + 任务 + 要求 + 示例
本篇我们深入拆解这个公式,看看每个部分具体怎么写。
提示词的四大结构
综合 OpenAI 和 Anthropic 官方指南,一个完整的提示词通常包含四个核心部分:
一、角色设定(Role)
为什么需要角色设定?
AI 模型在训练时接触了海量数据,可以扮演各种角色。你不指定角色,它就用”默认模式”回答——通常是中性、泛泛而谈的。
指定角色后,AI 会:
- 调整语言风格
- 选择合适的解释深度
- 使用特定领域的术语
效果对比
常见角色设定模板
| 场景 | 角色设定示例 |
|---|---|
| 学习编程 | ”你是一位有10年经验的Python讲师,擅长用通俗语言解释概念” |
| 面试准备 | ”你是一位技术面试官,正在考察初级工程师的API知识” |
| 写作辅助 | ”你是一位专业编辑,擅长优化文章结构和语言” |
| 代码审查 | ”你是一位资深架构师,专注于代码质量和最佳实践” |
角色设定的三个要素
好的角色设定包含:
身份 + 经验/能力 + 风格/特点
示例:
你是一位有10年经验的Python讲师(身份+经验),
擅长用生活类比解释复杂概念(风格),
教学风格幽默轻松但干货满满(特点)。
二、任务描述(Task)
好任务描述的三个原则
根据 Anthropic 的最佳实践:
1. 使用动词开头
| ❌ 模糊 | ✅ 明确 |
|---|---|
| 关于Python列表 | 解释Python列表的5个常用方法 |
| 一些代码 | 编写一个计算阶乘的函数 |
| 这个问题 | 分析这段代码的性能瓶颈 |
2. 具体明确
❌ "写点关于AI的东西"
✅ "写一篇500字的文章,主题是AI在教育领域的应用,面向家长群体"
3. 复杂任务分步骤
Anthropic 建议:当任务复杂时,用编号列表拆解:
请帮我完成以下任务(按步骤执行):
1. 分析这段代码的时间复杂度
2. 指出可能的性能问题
3. 提出优化建议
4. 给出优化后的代码
任务描述的”黄金模板”
请 [动词] [主题],要求:
- [具体要求1]
- [具体要求2]
- [具体要求3]
三、约束条件(Constraints)
约束的三种类型
1. 格式约束
输出格式要求:
- 使用 JSON 格式
- 包含 name、age、skills 三个字段
- skills 是数组类型
2. 长度约束
长度要求:
- 控制在300字以内
- 列出3-5个要点
- 每个要点不超过50字
3. 风格约束
风格要求:
- 语言通俗易懂,适合初中生阅读
- 避免使用专业术语,必要时用括号解释
- 每个概念都配一个生活例子
约束条件的”说yes不说no”原则
OpenAI 和 Anthropic 都强调:告诉AI要做什么,而不是不要做什么。
| ❌ 负面约束 | ✅ 正面引导 |
|---|---|
| 不要写太长 | 控制在200字以内 |
| 不要用专业术语 | 用通俗易懂的语言 |
| 不要废话 | 直接回答核心问题 |
四、示例引导(Examples)
什么是 Few-shot?
Few-shot(少样本学习)是提示词工程中最有效的技巧之一。
原理: 给AI几个示例,让它”模仿”你的期望输出。
Zero-shot vs Few-shot 对比
Few-shot 的威力
Zero-shot(无示例):
判断这句话的情感倾向:
"这家餐厅的服务太差了"
Few-shot(有示例):
判断这句话的情感倾向:
示例1:"这家餐厅的服务太差了" → 负面
示例2:"菜品味道还不错" → 正面
示例3:"环境一般,没什么特别的" → 中性
请判断:"这家餐厅的服务太差了"
有示例时,AI 输出的准确率和一致性都会大幅提升。
Few-shot 的三个要点
根据 Anthropic 的研究:
- 数量:3-5个示例效果最好
- 多样性:覆盖不同情况和边界
- 结构化:用XML标签包裹示例
推荐格式:
<examples>
<example>
<input>这家餐厅的服务太差了</input>
<output>负面</output>
</example>
<example>
<input>菜品味道还不错</input>
<output>正面</output>
</example>
</examples>
请判断这句话的情感倾向:"环境一般般"
实战练习
练习 1:完善角色设定
把这个提示词的”角色设定”部分补全:
[补全这里],请解释什么是递归。
要求:设计两个不同的角色,对比输出效果。
练习 2:改写任务描述
把模糊的任务改成明确的:
❌ 原版:帮我写个函数
请改写,包含:功能、输入、输出、边界处理。
练习 3:添加约束条件
为以下提示词添加合适的约束:
推荐几本Python入门书籍
要求添加:数量限制、每本书的描述格式、适合人群说明。
练习 4:设计 Few-shot 示例
为”代码风格检查”任务设计 Few-shot 示例:
判断以下Python代码的风格问题:
示例1:[你设计]
示例2:[你设计]
示例3:[你设计]
请判断:x=1+2
练习 5:组合运用
用四大结构写一个完整的提示词,任务是:让 AI 帮你写一封求职邮件。
练习 6:对比测试
分别用 Zero-shot 和 Few-shot 完成同一个任务,对比效果:
任务:将以下句子改写成更正式的表达:
- 原句:“这代码写得真烂”
本篇要点
- 角色设定:让 AI 扮演特定角色,改变回答风格
- 任务描述:动词开头、具体明确、复杂任务分步
- 约束条件:格式、长度、风格约束,说”要做什么”不说”不要做什么”
- 示例引导:3-5个示例效果最好,用XML标签包裹
下篇预告
下一篇我们将深入对比 Few-shot 与 Zero-shot:
- 什么是 Zero-shot?什么时候用?
- Few-shot 的适用场景
- 如何设计高质量的示例
- Few-shot 的进阶技巧
💡 本系列文章
💬 评论区