10-提示词工程(Prompt Engineering)完整指南
📚 提示词工程是大语言模型应用的核心技能,本教程从基础到进阶,系统讲解提示词设计原则、技巧和实战应用。
适用人群:
- 🎯 想要提升 LLM 使用效果的开发者
- 🎯 需要构建 AI 应用的产品经理
- 🎯 希望优化对话质量的研究人员
预计时间: 45-90 分钟
前置知识: [LLM 环境搭建](../AI_basics/LLM 环境搭建完整指南.md)
📋 目录
1. 什么是提示词工程
1.1 定义
提示词工程(Prompt Engineering) 是通过设计和优化输入文本(提示词),引导大语言模型生成更准确、更有用输出的技术和方法。
1.2 为什么重要?
| 对比项 | 无提示词工程 | 有提示词工程 |
|---|---|---|
| 回答准确率 | 60-70% | 85-95% |
| 输出质量 | 不稳定 | 稳定可控 |
| 使用成本 | 高(多次尝试) | 低(一次成功) |
| 应用场景 | 简单问答 | 复杂任务 |
1.3 核心要素
好的提示词 = 清晰的任务描述 + 充分的上下文 + 明确的格式要求示例对比:
❌ 差的提示词:
写点关于 AI 的东西✅ 好的提示词:
你是一位 AI 技术专家,请为初学者写一篇 500 字的科普文章,
介绍人工智能的基本概念、主要应用领域和未来发展趋势。
要求语言通俗易懂,避免使用专业术语。2. 提示词基础原则
2.1 CLEAR 原则
| 原则 | 说明 | 示例 |
|---|---|---|
| Concise(简洁) | 避免冗余,直截了当 | "用一句话总结"而非"希望你能用比较简短的方式" |
| Lucid(清晰) | 表达明确,无歧义 | "列出 3 个要点"而非"列出一些要点" |
| Explicit(明确) | 明确说明要求和限制 | "不超过 200 字"而非"简短一点" |
| Actionable(可执行) | 任务具体可操作 | "分析这段代码的问题"而非"看看这个" |
| Reflective(反思) | 鼓励模型检查和验证 | "请检查你的答案是否有逻辑错误" |
2.2 结构化提示词
基本结构:
markdown
# 角色设定
你是一位 [专业角色]
# 任务描述
请完成 [具体任务]
# 背景信息
[相关上下文和背景]
# 输出要求
- 格式:[文本/列表/表格/代码等]
- 长度:[字数限制]
- 风格:[正式/轻松/专业等]
- 其他:[特殊要求]
# 示例(可选)
输入示例:[...]
输出示例:[...]完整示例:
markdown
# 角色设定
你是一位资深 Python 工程师和技术作家
# 任务描述
请解释 Python 装饰器的工作原理
# 背景信息
读者是有 Python 基础的开发者,熟悉函数和类,但第一次接触装饰器
# 输出要求
- 格式:教程文章,包含代码示例
- 长度:800-1000 字
- 风格:技术性强但易于理解
- 必须包含:定义、语法、至少 2 个实用示例
# 示例
输入:请解释装饰器
输出:装饰器是 Python 中用于修改函数行为的工具...3. 核心提示技巧
3.1 零样本提示(Zero-Shot Prompting)
直接提问,不提供示例。
markdown
# 示例
问题:法国的首都是哪里?
回答:巴黎适用场景: 简单事实性问题、常识性任务
3.2 单样本提示(One-Shot Prompting)
提供一个示例作为参考。
markdown
# 示例
将以下句子翻译成英文:
输入:今天天气很好
输出:The weather is very nice today
输入:我喜欢学习编程
输出:适用场景: 格式转换、风格模仿
3.3 少样本提示(Few-Shot Prompting)
提供多个示例,让模型学习模式。
markdown
# 示例
提取句子中的人名:
句子:张三和李四在北京见面了
人名:张三、李四
句子:王五给赵六发了一封邮件
人名:王五、赵六
句子:小明和小红一起去上学
人名:适用场景: 复杂模式识别、特定任务学习
3.4 思维链提示(Chain-of-Thought)
引导模型逐步推理。
markdown
# 示例
问题:小明有 5 个苹果,他给了小红 2 个,又买了 3 个,现在有几个?
请逐步思考:
1. 小明最初有 5 个苹果
2. 给了小红 2 个,剩下 5 - 2 = 3 个
3. 又买了 3 个,现在有 3 + 3 = 6 个
答案:6 个适用场景: 数学问题、逻辑推理、复杂分析
3.5 角色扮演提示(Role-Playing)
设定特定角色,获得专业化回答。
markdown
# 示例
你是一位有 10 年经验的营养师,请为一名 30 岁的办公室职员设计一份
一周的健康饮食计划。考虑以下因素:
- 每天工作 8 小时,运动量少
- 目标:保持健康,控制体重
- 预算:中等
- 饮食偏好:中式料理适用场景: 专业咨询、创意写作、特定风格输出
4. 高级提示模式
4.1 自洽性提示(Self-Consistency)
让模型生成多个答案,选择最优解。
markdown
# 示例
问题:一个农场有鸡和兔子共 35 个头,94 只脚,问鸡和兔子各有多少?
请提供 3 种不同的解法,然后比较结果,给出最终答案。4.2 反思提示(Reflection Prompting)
让模型检查和改进自己的答案。
markdown
# 示例
请写一段 Python 代码实现快速排序算法。
完成后,请:
1. 检查代码是否有边界情况未处理
2. 分析时间复杂度和空间复杂度
3. 提出可能的优化建议4.3 分步提示(Step-by-Step Prompting)
将复杂任务分解为多个步骤。
markdown
# 示例
请帮我分析这家公司的商业模式:
第一步:描述公司的核心产品和服务
第二步:分析目标客户群体
第三步:识别收入来源
第四步:评估竞争优势
第五步:指出潜在风险
请依次完成以上步骤,每一步不少于 200 字。4.4 对比提示(Comparison Prompting)
通过对比获得更深入的洞察。
markdown
# 示例
请对比分析 Python 和 JavaScript 在以下方面的异同:
- 语法特点
- 运行环境
- 应用场景
- 学习曲线
- 生态系统
请以表格形式呈现,并给出选择建议。4.5 约束提示(Constrained Prompting)
设置明确限制,引导精确输出。
markdown
# 示例
请用不超过 100 字总结这篇文章的核心观点,要求:
- 必须包含 3 个关键数据
- 不能使用专业术语
- 适合初中生阅读理解5. 实战应用场景
5.1 代码生成
markdown
# 角色
你是一位资深软件工程师
# 任务
请编写一个 Python 函数,实现以下功能:
- 接收一个字符串列表
- 统计每个字符串出现的次数
- 返回按出现次数降序排列的字典
# 要求
- 包含类型注解
- 添加文档字符串
- 提供 3 个测试用例
- 时间复杂度优于 O(n²)5.2 文档写作
markdown
# 角色
你是一位技术文档工程师
# 任务
为以下 API 函数编写使用文档:
```python
def calculate_mortgage(principal, rate, years):
"""计算房贷月供"""
pass要求
- 包含参数说明
- 提供使用示例
- 说明返回值格式
- 列出常见错误和解决方案
- 字数:500-800 字
### 5.3 数据分析
```markdown
# 角色
你是一位数据分析师
# 任务
分析以下销售数据,提供业务洞察:
月份 | 销售额 | 订单数 | 客户数
1 月 | 100 万 | 5000 | 3000
2 月 | 120 万 | 6000 | 3500
3 月 | 150 万 | 7500 | 4000
# 要求
- 计算月增长率
- 识别趋势和模式
- 提出 3 条业务建议
- 用数据支撑结论5.4 创意写作
markdown
# 角色
你是一位科幻作家
# 任务
写一篇微型科幻小说
# 要求
- 主题:人工智能与人类情感
- 字数:800-1000 字
- 风格:温暖感人
- 必须包含:一个出人意料的结局
- 避免:技术术语堆砌5.5 学习辅导
markdown
# 角色
你是一位耐心的家庭教师
# 任务
帮我理解机器学习中的"过拟合"概念
# 要求
- 用生活中的类比解释
- 提供图形化描述
- 说明如何识别过拟合
- 列出 3 种解决方法
- 适合高中毕业生理解5.6 面试准备
markdown
# 角色
你是一位技术面试官
# 任务
模拟 Python 后端开发岗位的面试
# 要求
- 提出 10 个面试问题(涵盖基础、进阶、项目经验)
- 每个问题附带考察点说明
- 提供参考答案要点
- 难度分布:3 个基础、5 个中级、2 个高级6. 提示词优化方法
6.1 A/B 测试法
测试不同提示词版本,比较效果。
markdown
# 版本 A
请总结这篇文章
# 版本 B
请用 3 句话总结这篇文章的核心观点,每句不超过 30 字
# 评估标准
- 准确性
- 完整性
- 简洁性6.2 迭代优化法
markdown
# 第 1 轮
解释什么是机器学习
# 第 2 轮(添加约束)
用通俗易懂的语言解释什么是机器学习,避免使用数学术语
# 第 3 轮(添加示例)
用通俗易懂的语言解释什么是机器学习,避免使用数学术语,
并用生活中的例子说明监督学习和无监督学习的区别6.3 提示词模板化
创建可复用的模板:
markdown
# 代码审查模板
你是一位资深代码审查专家,请审查以下代码:
【代码内容】
请从以下维度分析:
1. 代码正确性:是否存在 bug
2. 代码质量:是否遵循最佳实践
3. 性能:是否有优化空间
4. 安全:是否存在安全隐患
5. 可维护性:是否易于理解和修改
输出格式:
- 问题列表(按严重程度排序)
- 改进建议(附代码示例)
- 总体评分(1-10 分)6.4 提示词检查清单
在发送前检查:
- [ ] 任务描述是否清晰?
- [ ] 是否提供了足够的上下文?
- [ ] 输出格式是否明确?
- [ ] 是否有字数或长度限制?
- [ ] 是否需要提供示例?
- [ ] 是否设定了合适的角色?
- [ ] 是否有不合理的约束?
7. 常见错误与避免
7.1 模糊不清
❌ 错误:
写点有用的代码✅ 改进:
编写一个 Python 脚本,批量重命名文件夹中的所有 JPG 文件,
按"image_001.jpg"格式命名7.2 信息过载
❌ 错误:
请分析这家公司的财务状况、市场地位、竞争优势、管理团队、
发展战略、风险因素、行业趋势、政策环境、技术创新、
供应链情况、客户关系、品牌价值...(继续列举 50 个维度)✅ 改进:
请从以下 3 个维度分析这家公司的投资价值:
1. 财务健康状况(重点看现金流和负债率)
2. 市场竞争地位(市场份额和增长率)
3. 主要风险因素(政策、市场、技术)7.3 缺乏上下文
❌ 错误:
这个怎么优化?✅ 改进:
以下 Python 函数处理 10 万条数据需要 30 秒,太慢了。
目标是优化到 5 秒以内。硬件配置:8 核 CPU,16GB 内存。
请问如何优化?
【代码内容】7.4 矛盾的要求
❌ 错误:
请详细解释量子力学,用 50 字以内说完✅ 改进:
请用一句话(不超过 50 字)概括量子力学的核心思想7.5 忽略模型限制
❌ 错误:
请分析这个 100MB 的日志文件(直接粘贴文件内容)✅ 改进:
我有一个 100MB 的日志文件,需要分析错误模式。
由于文件太大,我提取了 100 行典型样本:
【样本内容】
请分析这些样本,总结错误类型和出现规律8. 工具与资源
8.1 提示词管理工具
| 工具 | 功能 | 链接 |
|---|---|---|
| PromptPerfect | 提示词优化和测试 | https://promptperfect.jina.ai |
| FlowGPT | 提示词分享社区 | https://flowgpt.com |
| PromptBase | 提示词市场 | https://promptbase.com |
| Awesome Prompts | 提示词合集 | https://github.com/promptslab/Awesome-Prompt-Engineering |
8.2 学习资源
在线课程:
书籍:
- 《Prompt Engineering Guide》
- 《The Art of Prompt Engineering》
社区:
- Reddit r/PromptEngineering
- Hugging Face 社区
8.3 提示词库
常用提示词模板:
markdown
# 文章摘要
请用 3 句话总结以下内容,每句不超过 30 字:
【内容】
# 代码解释
请解释这段代码的功能、输入输出、时间复杂度:
【代码】
# 翻译任务
请将以下文本从【源语言】翻译成【目标语言】,保持专业术语准确:
【文本】
# 问答任务
基于以下背景信息,回答问题。如果信息不足,请说明:
【背景信息】
问题:【问题】
# 创意生成
请为【产品/服务】生成 10 个创意名称,要求:
- 朗朗上口
- 体现产品特点
- 易于记忆
- 未被注册商标📚 下一步学习
完成本教程后,建议继续学习:
✅ 实践作业
完成以下练习,巩固所学技能:
- 基础练习:使用 CLEAR 原则重写 3 个模糊的提示词
- 进阶练习:为同一个任务设计零样本、单样本、少样本 3 种提示词,比较效果
- 实战练习:设计一个完整的提示词模板,用于你的实际工作场景
最后更新: 2026 年 3 月 30 日
作者: 小蛋蛋 🦞
参考资料:
- DeepLearning.AI Prompt Engineering for Developers
- Hugging Face Prompt Engineering Guide
- OpenAI Prompt Engineering Best Practices
