Prompt Engineering - 提示词工程
如何向AI提问才能得到最好的回答
🎯 什么是提示词工程
提示词工程:设计和优化输入给AI的文本提示,以获得更准确、更相关、更高质量的输出。
核心问题:如何表达需求,让AI理解并给出满意的结果。
为什么重要
- 同样的需求,不同的表达方式,结果天差地别
- AI不是读心术,需要清晰的指令
- 好的提示词能激发AI的最佳表现
- 提示词质量直接决定输出质量
📊 提示词核心要素
1. 角色设定(Role)
作用:告诉AI扮演什么角色,影响输出风格和专业度。
示例:
❌ 差:写一篇关于机器学习的文章
✅ 好:你是一位资深机器学习工程师,拥有10年实战经验。
请写一篇面向初学者的机器学习入门文章。常见角色:
- 专业人士:程序员、产品经理、设计师、医生
- 风格角色:老师、朋友、专家、评论家
- 特殊角色:某个具体人物、虚构角色
2. 任务描述(Task)
作用:明确告诉AI要做什么。
SMART原则:
- Specific(具体的):明确要做什么
- Measurable(可衡量的):有明确的输出标准
- Achievable(可实现的):AI能力范围内
- Relevant(相关的):与目标相关
- Time-bound(时限的):有范围限制
示例:
❌ 差:分析一下这个数据
✅ 好:分析以下销售数据,找出:
1. 销售额最高的3个月份
2. 同比增长率超过20%的产品
3. 销售趋势异常的产品
输出格式为Markdown表格。3. 背景信息(Context)
作用:提供必要的背景,让AI理解任务环境。
示例:
❌ 差:帮我写一个按钮组件
✅ 好:这是一个React项目,使用TypeScript和Tailwind CSS。
我们需要一个可复用的按钮组件,支持:
- 不同大小:sm, md, lg
- 不同类型:primary, secondary, danger
- 禁用状态
- 加载状态
请提供完整的TypeScript代码。4. 输出格式(Format)
作用:指定输出的格式和结构。
常见格式:
- Markdown
- JSON
- 表格
- 列表
- 代码块
- 特定结构
示例:
请以JSON格式输出,包含以下字段:
{
"title": "标题",
"summary": "摘要",
"points": ["要点1", "要点2"],
"conclusion": "结论"
}5. 约束条件(Constraints)
作用:限定范围,避免偏离目标。
示例:
要求:
- 字数控制在500字以内
- 使用通俗易懂的语言
- 避免专业术语
- 包含具体案例🛠️ 常用技巧
技巧1:少样本学习(Few-shot Learning)
原理:给AI几个示例,让它理解模式。
示例:
任务:将产品描述转换为卖点
示例1:
输入:这款手机续航时间长,拍照清晰。
输出:超长续航,清晰拍摄,记录生活每一刻。
示例2:
输入:这台电脑轻薄便携,性能强劲。
输出:轻薄随行,性能强劲,办公娱乐两不误。
现在请转换:
输入:这款耳机音质出众,佩戴舒适。
输出:技巧2:思维链(Chain of Thought)
原理:让AI一步步思考,提高推理质量。
示例:
问题:小明有5个苹果,给了小红2个,又买了3个,现在有几个?
请一步步思考:
1. 小明一开始有5个苹果
2. 给了小红2个,剩下 5-2=3 个
3. 又买了3个,现在有 3+3=6 个
答案:6个技巧3:角色扮演(Role Playing)
原理:让AI扮演特定角色,影响输出风格。
示例:
你是一位严厉的代码审查员,请审查以下代码:
[代码]
从以下角度批评:
- 代码质量
- 性能问题
- 安全隐患
- 可维护性技巧4:任务分解(Task Decomposition)
原理:将复杂任务拆分为多个简单步骤。
示例:
❌ 差:写一个完整的电商系统
✅ 好:让我们分步骤完成:
第一步:设计数据库schema
第二步:实现用户模块
第三步:实现商品模块
第四步:实现订单模块
请先从第一步开始。技巧5:对比学习(Contrastive Learning)
原理:给AI对比示例,让它理解好坏标准。
示例:
任务:写产品文案
好的示例:
"超长续航,陪伴你的每一天"
- 简洁有力
- 突出卖点
- 情感共鸣
差的示例:
"这个手机电池很大,能用很久很久"
- 啰嗦
- 缺乏吸引力
- 过于直白
请按照"好的示例"风格,为这款耳机写文案。💡 最佳实践
实践1:明确具体
❌ 模糊:
帮我写点东西✅ 具体:
写一篇800字的技术博客,主题是"如何使用React Hooks",
面向有一定React基础的前端开发者,要求:
- 包含代码示例
- 解释核心概念
- 提供最佳实践建议实践2:提供示例
❌ 无示例:
写一个登录表单✅ 有示例:
参考以下注册表单的风格,写一个登录表单:
[注册表单代码]
要求:
- 保持相同的样式风格
- 包含用户名和密码输入框
- 添加记住我复选框实践3:分步骤执行
❌ 一次性要求:
分析这个CSV文件,生成报告,并创建可视化图表✅ 分步执行:
第一步:请先分析CSV文件的结构,告诉我包含哪些字段。
[等待AI输出]
第二步:基于这个结构,请生成一份摘要报告。
[等待AI输出]
第三步:请为报告添加可视化图表。实践4:迭代优化
流程:
1. 初始提示词
2. 查看输出
3. 识别问题
4. 优化提示词
5. 再次生成
6. 重复直到满意示例:
第1轮:
提示词:写一篇文章
输出:[太笼统]
第2轮:
提示词:写一篇关于AI的文章
输出:[太专业]
第3轮:
提示词:写一篇面向普通读者的AI入门文章
输出:[满意]实践5:使用约束
❌ 无约束:
推荐一些书✅ 有约束:
推荐5本适合初学者的Python编程书,要求:
- 出版年份在2020年之后
- 中文版
- 评分8.0以上
- 包含实战项目⚠️ 常见误区
误区1:提示词越长越好
❌ 错误:
你是一个非常专业的、有丰富经验的、在业界很有声望的资深工程师,
毕业于清华大学计算机系,在Google工作了10年,
精通各种编程语言,包括但不限于Java、Python、JavaScript、
Go、Rust、C++、Ruby、PHP、Swift...
[后面还有500字]✅ 正确:
你是一位资深后端工程师,精通Java和Python。
请帮我设计一个REST API接口。原因:
- 过长的提示词浪费token
- 关键信息被稀释
- AI可能被无关信息干扰
误区2:假设AI理解上下文
❌ 错误:
(在一段对话后)
再优化一下那个函数✅ 正确:
请优化之前生成的calculateTotal函数,
重点优化性能,特别是循环部分。原因:
- AI的记忆有限
- 需要明确指定上下文
- 避免歧义
误区3:过度依赖AI判断
❌ 错误:
你觉得这个方案怎么样?✅ 正确:
请从以下角度评估这个方案:
1. 技术可行性
2. 性能影响
3. 维护成本
4. 潜在风险
每个角度给出1-5分评分和具体理由。原因:
- AI的回答取决于你的问题质量
- 明确评估标准
- 避免 vague 的回答
误区4:忽视输出验证
❌ 错误:
(AI生成代码后)
直接复制粘贴使用✅ 正确:
(AI生成代码后)
1. 检查语法是否正确
2. 测试功能是否符合预期
3. 检查是否有安全隐患
4. 验证边界情况原因:
- AI会犯错
- 需要人工把关
- 特别注意安全问题
🎯 实战案例
案例1:代码生成
场景:需要一个工具函数
❌ 差的提示词:
写一个排序函数✅ 好的提示词:
请用TypeScript写一个通用的数组排序函数,要求:
功能:
- 支持升序和降序
- 支持自定义比较函数
- 支持对象数组的某个字段排序
类型定义:
- 使用泛型
- 完整的TypeScript类型
示例:
const users = [
{name: 'Alice', age: 30},
{name: 'Bob', age: 25}
];
// 按年龄升序排序
sortBy(users, 'age', 'asc');
输出:
- 完整的函数代码
- 类型定义
- 使用示例案例2:文档撰写
场景:需要写API文档
❌ 差的提示词:
写一个API文档✅ 好的提示词:
请为用户注册API编写文档:
API信息:
- 路径:POST /api/v1/users/register
- 功能:用户注册
- 参数:username, email, password
文档结构:
1. 接口描述
2. 请求参数(表格形式)
3. 返回值(JSON示例)
4. 错误码说明
5. 使用示例(curl命令)
要求:
- 遵循RESTful API文档规范
- 包含成功和失败的返回示例
- Markdown格式案例3:数据分析
场景:需要分析销售数据
❌ 差的提示词:
分析这个数据✅ 好的提示词:
请分析以下CSV格式的销售数据:
数据范围:2025年1月-12月
字段:日期、产品、销售额、销量、地区
分析要求:
1. 整体销售趋势(按月)
2. Top 5畅销产品
3. 地区销售占比
4. 异常值识别(环比变化>30%)
输出格式:
- 摘要(3-5句话)
- 详细分析(Markdown表格)
- 可视化建议(图表类型和说明)📚 学习路径
初学者路径
第1-2天:基础概念
- 理解提示词的作用
- 学习核心要素
- 掌握基本技巧
第3-5天:实践练习
- 尝试不同场景
- 对比不同提示词效果
- 总结经验
第1-2周:进阶技巧
- 学习高级技巧
- 优化提示词模板
- 建立个人提示词库
进阶者路径
第1周:模式识别
- 总结常用模式
- 建立模板库
- 提高复用率
第2-3周:场景应用
- 专业领域应用
- 复杂任务分解
- 多轮对话优化
第4周:持续优化
- 分析失败案例
- 改进提示词策略
- 分享最佳实践
🔗 相关资源
进一步学习
工具推荐
总结
Prompt Engineering是AI协作的基础技能:
核心要素:
- ✅ 角色设定
- ✅ 任务描述
- ✅ 背景信息
- ✅ 输出格式
- ✅ 约束条件
关键技巧:
- ✅ 少样本学习
- ✅ 思维链
- ✅ 角色扮演
- ✅ 任务分解
- ✅ 对比学习
记住:
- 提示词质量决定输出质量
- 具体比模糊好
- 示例比描述强
- 迭代优化是关键
下一步:从你的实际需求开始,练习设计更好的提示词 🚀