Prompt 工程实战:从入门到精通

Prompt 工程不是”写提示词”,而是与模型有效沟通的艺术。好的 Prompt 能让模型输出质量提升 10 倍,差的 Prompt 让再强的模型也束手无策。

本文将通过大量实战案例,带你掌握 Prompt 工程的核心技巧。


Prompt 结构层次图

一、Prompt 基础结构

一个高质量的 Prompt 通常包含以下要素:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
┌─────────────────────────────────────────┐
│ 1. 角色设定 (Role) │
│ "你是一位资深 Python 开发者..." │
├─────────────────────────────────────────┤
│ 2. 任务描述 (Task) │
│ "请帮我优化这段代码..." │
├─────────────────────────────────────────┤
│ 3. 上下文/输入 (Context/Input) │
│ "以下是需要优化的代码:..." │
├─────────────────────────────────────────┤
│ 4. 约束条件 (Constraints) │
│ "保持原有功能,时间复杂度 O(n)..." │
├─────────────────────────────────────────┤
│ 5. 输出格式 (Output Format) │
│ "请用 Markdown 格式输出,包含..." │
└─────────────────────────────────────────┘

二、核心技巧

2.1 角色设定(Role Prompting)

原理:给模型一个明确的角色,激活相关知识和表达方式。

角色 适用场景
资深开发者 代码审查、架构设计
产品经理 需求分析、用户故事
数据分析师 数据解读、可视化建议
教师 知识讲解、概念类比

示例

1
2
3
4
5
6
7
8
9
10
# ❌ 差的 Prompt
帮我解释一下 Transformer 架构。

# ✅ 好的 Prompt
你是一位 AI 领域的资深教师,擅长用通俗易懂的类比解释复杂概念。
请向一名有编程基础但没学过深度学习的学生解释 Transformer 架构。
要求:
1. 用生活中的类比说明核心概念
2. 避免过多数学公式
3. 重点说明为什么 Transformer 比 RNN 更适合处理长文本

2.2 思维链(Chain of Thought)

原理:让模型展示推理过程,而不是直接给答案。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
# ❌ 差的 Prompt
计算:(15 + 27) × 3 - 89 ÷ 7 = ?

# ✅ 好的 Prompt
请逐步计算以下表达式,展示每一步的中间结果:
(15 + 27) × 3 - 89 ÷ 7

思考步骤:
1. 先计算括号内的加法
2. 再计算乘法
3. 然后计算除法
4. 最后计算减法
5. 给出最终答案

效果:复杂推理任务准确率提升 30-50%。


2.3 少样本提示(Few-Shot Prompting)

原理:提供几个示例,让模型学习输出格式和风格。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
将以下中文句子翻译成英文,保持专业语气:

示例 1:
输入:这个系统的延迟太高了,需要优化。
输出:The system's latency is too high and needs optimization.

示例 2:
输入:数据库查询超时,请检查索引配置。
输出:Database query timed out, please check the index configuration.

现在请翻译:
输入:API 响应时间超过 2 秒,影响用户体验。
输出:

2.4 约束条件(Constraints)

原理:明确限制输出范围,避免无关内容。

示例

1
2
3
4
5
6
7
8
9
请总结以下文章的核心观点(不超过 200 字):

[文章内容...]

约束条件:
- 只总结核心观点,不要添加个人观点
- 使用中文输出
- 不超过 200 字
- 使用项目符号列出要点

2.5 输出格式控制

原理:明确指定输出格式,便于后续处理。

格式 适用场景
JSON 程序化处理、API 集成
Markdown 表格 对比分析、数据展示
项目符号列表 要点总结、清单
代码块 代码生成、配置示例

示例

1
2
3
4
5
6
7
8
9
10
11
请分析以下用户评论的情感倾向,以 JSON 格式输出:

用户评论:这个产品真的很好用,推荐给大家!

输出格式:
{
"sentiment": "positive|negative|neutral",
"confidence": 0.0-1.0,
"key_phrases": ["短语 1", "短语 2"],
"reasoning": "简短分析"
}

三、实战案例

3.1 代码生成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
你是一位资深 Python 开发者,擅长编写简洁、高效、可维护的代码。

任务:实现一个带缓存的 API 客户端

要求:
1. 使用 functools.lru_cache 实现缓存
2. 支持超时和重试机制
3. 添加类型注解
4. 包含单元测试示例
5. 代码风格遵循 PEP 8

输出格式:
- 主代码放在代码块中
- 单元测试单独放在另一个代码块中
- 在代码前简要说明设计思路

3.2 数据分析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
你是一位数据分析师,擅长从数据中提取洞察。

任务:分析以下销售数据,找出关键趋势

数据:
| 月份 | 销售额 | 新客户 | 复购率 |
|------|--------|--------|--------|
| 1 月 | 120 万 | 500 | 35% |
| 2 月 | 135 万 | 480 | 38% |
| 3 月 | 142 万 | 520 | 40% |

分析要求:
1. 计算环比增长率
2. 识别关键趋势
3. 给出 3 条可执行建议
4. 用 Markdown 表格展示计算结果

3.3 内容创作

1
2
3
4
5
6
7
8
9
10
11
12
13
你是一位科技博主,擅长写深度但不晦涩的技术文章。

任务:写一篇关于"为什么大模型需要更多上下文"的短文

要求:
1. 目标读者:有编程基础的非 AI 专家
2. 字数:800-1000 字
3. 结构:
- 引言:用一个日常类比引入主题
- 正文:解释上下文的重要性(2-3 个要点)
- 结尾:总结 + 展望
4. 风格:亲切、专业、不堆砌术语
5. 包含 1-2 个具体例子

四、常见陷阱

陷阱 表现 修复方法
太模糊 “帮我写点什么” 明确任务、格式、约束
太冗长 无关信息太多 精简上下文,突出关键信息
矛盾指令 “简洁但详细” 明确优先级,分层次说明
假设模型知道 不提背景信息 补充必要上下文
格式混乱 没有指定输出格式 明确指定格式要求

五、Prompt 优化工作流

1
2
3
4
5
1. 初稿 → 写出基础 Prompt
2. 测试 → 用模型跑一遍
3. 诊断 → 分析输出问题(太短?太泛?格式不对?)
4. 迭代 → 针对性优化(加约束?改格式?加示例?)
5. 固化 → 保存为模板,复用

六、总结

技巧 核心 适用场景
角色设定 激活相关知识和风格 所有场景
思维链 展示推理过程 复杂推理、数学
少样本 学习输出格式 格式化输出、翻译
约束条件 限制输出范围 摘要、总结
格式控制 便于后续处理 程序化任务

核心原则:Prompt 工程是迭代过程,没有一蹴而就的完美 Prompt。先写出能用的,再逐步优化。


本文基于实际使用经验整理,Prompt 效果因模型而异,建议根据具体模型调整。