Prompt Engineering 提示词工程
掌握与AI对话的艺术,让AI准确理解并完成你的需求
什么是Prompt Engineering?
Prompt Engineering(提示词工程)是一门设计、优化和调试AI输入指令的技术,通过精心构造的提示词来引导AI模型生成期望的输出。它是使用生成式AI的核心技能。
核心价值:
- 🎯 提高AI输出质量和准确性
- ⚡ 减少迭代次数,提升效率
- 🎨 激发AI的创造力和潜能
- 💰 降低token消耗成本
基础概念
Prompt的组成部分
一个完整的Prompt通常包含以下要素:
[角色设定] + [任务描述] + [上下文信息] + [输出要求] + [约束条件]
示例:
你是一位资深的Python开发者(角色)。
请帮我编写一个函数(任务),用于处理用户上传的CSV文件(上下文)。
代码需要包含错误处理和注释(输出要求),不要使用pandas库(约束)。
提示词类型
| 类型 | 说明 | 适用场景 |
|---|---|---|
| Zero-shot | 不提供示例,直接描述任务 | 简单、通用的任务 |
| Few-shot | 提供几个示例 | 需要特定格式或风格 |
| Chain-of-Thought | 引导逐步思考 | 复杂推理、计算任务 |
| Role-playing | 角色扮演 | 需要特定专业知识 |
核心技巧
1. 清晰明确
❌ 不好的提示:
写点关于AI的东西
✅ 好的提示:
写一篇500字的文章,介绍生成式AI在教育领域的三个主要应用场景,
包括个性化学习、自动批改和智能答疑,目标读者是中小学教师。
2. 提供上下文
❌ 缺少上下文:
这个代码有什么问题?
✅ 提供上下文:
我在开发一个Django Web应用。下面的视图函数在处理POST请求时
总是返回500错误。请帮我找出问题:
[代码]
3. 使用分隔符
使用三引号、XML标签等分隔符清晰标识不同部分:
请总结以下文章的要点:
"""
[文章内容]
"""
要求:
1. 提取3-5个关键要点
2. 每个要点不超过一句话
4. 指定输出格式
分析以下用户评论的情感倾向,以JSON格式输出:
评论:"这个产品质量不错,但价格有点贵"
输出格式:
{
"sentiment": "正面/中性/负面",
"confidence": 0.0-1.0,
"keywords": ["关键词1", "关键词2"]
}
5. 迭代优化
从简单开始,根据输出逐步优化:
第一版:写一个排序函数
第二版:写一个Python快速排序函数,包含注释
第三版:写一个Python快速排序函数,包含详细注释和测试用例,
处理空列表和单元素列表的边界情况
高级技巧
Chain-of-Thought(思维链)
引导AI逐步推理,提高复杂问题的准确性:
问题:一个班级有60名学生,其中40%是女生,女生中有30%戴眼镜。
请问戴眼镜的女生有多少人?
请按以下步骤思考:
1. 先计算女生总数
2. 再计算戴眼镜的女生人数
3. 给出最终答案
Few-shot Learning(少样本学习)
提供示例来定义期望的输出格式:
将以下句子转换为正式语气:
示例1:
输入:这个东西真不错
输出:此产品质量优良
示例2:
输入:赶紧来看看吧
输出:欢迎您前来参观
现在转换:
输入:有啥问题随时找我
输出:
Self-Consistency(自我一致性)
要求AI提供多个解决方案,提高可靠性:
请用三种不同的方法解决以下问题,并说明哪种方法最优:
[问题描述]
角色扮演
指定专家角色获得更专业的回答:
你是一位有20年经验的儿科医生。请用通俗易懂的语言
向家长解释如何预防儿童近视。避免使用专业术语。
实用模板
内容创作模板
主题:[主题]
目标受众:[受众群体]
内容类型:[文章/博客/社交媒体等]
字数:[字数要求]
风格:[正式/轻松/专业等]
关键要点:
1. [要点1]
2. [要点2]
3. [要点3]
请基于以上信息创作内容。
代码生成模板
编程语言:[语言]
功能需求:[详细描述]
输入参数:[参数说明]
返回值:[返回值说明]
特殊要求:
- [要求1]
- [要求2]
请生成代码,包含必要的注释和错误处理。
数据分析模板
数据集描述:[描述]
分析目标:[目标]
关注指标:[指标列表]
输出要求:
1. 数据概览
2. 关键发现(3-5条)
3. 建议行动
数据:
[数据内容]
文本优化模板
请改进以下文本:
原文:
"""
[原文内容]
"""
优化方向:
- [ ] 提高可读性
- [ ] 修正语法错误
- [ ] 增强说服力
- [ ] 简化表达
目标读者:[读者群体]
常见问题与解决方案
问题1:输出不符合预期
解决方案:
- 增加更详细的描述
- 提供示例
- 明确不想要什么
- 使用约束条件
问题2:输出过于冗长
解决方案:
请用不超过100字总结...
只列出最重要的3点...
用一句话回答...
问题3:内容不准确或"幻觉"
解决方案:
- 要求引用来源
- 使用RAG技术提供准确信息
- 要求标注不确定的部分
如果你不确定某个信息,请明确说明"我不确定",不要编造。
问题4:缺乏创意
解决方案:
请提供5个不同风格的方案...
从不同角度分析...
跳出常规思维,给出创新建议...
最佳实践
DO ✅
- 明确目标:清楚说明你想要什么
- 提供上下文:给出必要的背景信息
- 具体化:使用具体的数字、格式要求
- 分步骤:复杂任务拆解为多个步骤
- 反馈优化:根据输出迭代改进提示词
- 使用分隔符:区分不同部分的内容
- 设定角色:利用角色设定获得专业回答
DON'T ❌
- 过于模糊:避免笼统、不清晰的描述
- 假设太多:不要假设AI知道你的具体需求
- 单次完美:不要期望一次就得到完美结果
- 忽略限制:注意模型的能力边界
- 过度复杂:避免在一个提示中包含太多任务
- 缺乏验证:不要盲目信任输出,需要验证
进阶学习
提示词框架
CRISPE框架:
- Capacity and Role(能力与角色)
- Insight(洞察,背景信息)
- Statement(陈述,任务描述)
- Personality(个性,输出风格)
- Experiment(实验,请求多种方案)
示例:
[C] 你是一位经验丰富的品牌营销专家
[I] 我们公司是一家新创立的环保科技公司,目标客户是年轻的环保意识者
[S] 请为我们的品牌写一条slogan
[P] 风格要简洁、有力、富有感染力
[E] 请提供5个不同方向的选项
提示词工程工具
- ChatGPT Prompt Generator:自动生成优化的提示词
- PromptPerfect:提示词优化和测试
- OpenAI Playground:实验和调试提示词
- LangChain:构建复杂的提示词链
学习资源
- 📚 OpenAI Prompt Engineering Guide
- 📚 Anthropic Prompt Engineering Guide
- 📚 Learn Prompting
- 📚 Prompt Engineering Guide
实战案例
案例1:客服机器人
你是一位友好、专业的客服代表。
客户咨询:[客户问题]
回复要求:
1. 首先表达理解和同情
2. 提供清晰的解决方案
3. 询问是否需要进一步帮助
4. 保持礼貌和专业
5. 回复长度控制在100字以内
请回复:
案例2:代码审查
作为一位资深代码审查员,请审查以下代码:
```python
[代码]
```
审查维度:
1. 代码质量(可读性、可维护性)
2. 潜在bug
3. 性能问题
4. 安全隐患
5. 改进建议
请按照以上维度,每个维度给出具体评分(1-10分)和详细说明。
案例3:学习助手
我正在学习[主题]。我是[水平:初学者/中级/高级]。
请为我:
1. 用简单的语言解释[概念]
2. 提供一个实际例子
3. 列出3个常见误区
4. 推荐下一步学习内容
请确保解释通俗易懂,避免过多专业术语。
快速检查清单
在提交提示词之前,检查以下项目:
- 任务描述是否清晰明确?
- 是否提供了必要的上下文?
- 输出格式是否明确?
- 是否设置了合理的约束?
- 是否需要提供示例?
- 角色设定是否合适?
- 语言是否准确无歧义?
- 是否有字数或结构要求?
小结
Prompt Engineering是一项需要不断实践和优化的技能。记住以下要点:
🎯 清晰性:准确描述你的需求
📝 结构化:使用模板和框架
🔄 迭代性:不断测试和改进
🎨 创造性:尝试不同的方法
📊 验证性:检查输出质量
实践建议:
- 从简单的提示词开始
- 建立自己的提示词库
- 分析成功和失败的案例
- 关注社区最新实践
- 定期回顾和优化常用提示词
相关主题
- 📖 大语言模型基础 - Hugging Face LLM课程
- 🔗 RAG技术详解 - 检索增强生成从业者指南
- 🛠️ LangChain实战 - 官方Python教程
- 🎨 AI内容创作指南 - Learn Prompting
最后更新: 2026年1月23日
难度级别: 入门到进阶
预计学习时间: 2-4小时
维护者: AI_GEN Team
版本: v1.0
掌握Prompt Engineering,让AI成为你的得力助手!