Skip to content

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协作的基础技能:

核心要素

  • ✅ 角色设定
  • ✅ 任务描述
  • ✅ 背景信息
  • ✅ 输出格式
  • ✅ 约束条件

关键技巧

  • ✅ 少样本学习
  • ✅ 思维链
  • ✅ 角色扮演
  • ✅ 任务分解
  • ✅ 对比学习

记住

  • 提示词质量决定输出质量
  • 具体比模糊好
  • 示例比描述强
  • 迭代优化是关键

下一步:从你的实际需求开始,练习设计更好的提示词 🚀

MIT Licensed