Prompt Engineering
1. 什么是 Prompt Engineering?
提示工程 是设计和优化输入指令(Prompt),以引导大语言模型(如 GPT-4、Claude 等)生成准确、相关、高质量输出的实践科学。
通俗理解:AI 像一个极度“字面”但知识渊博的助手。Prompt Engineering 就是教会你如何写一份清晰、完整、包含约束和示例的任务说明书,让助手一次就懂。
2. 核心原则与基础技巧(含示例)
| 原则 | 说明 | ❌ 不好的提示 | ✅ 更好的提示 |
|---|---|---|---|
| 清晰具体 | 避免模糊,明确格式与范围 | “写首诗” | “写一首关于秋天落叶的、带有忧伤情绪的七言绝句” |
| 赋予角色 | 设定 AI 的身份或视角 | “解释机器学习” | “你是一位高中计算机老师,请用比喻向学生解释什么是机器学习” |
| 提供示例 | 给出输入-输出样例(Few-shot) | “把‘你好’翻成英文” | “示例:苹果→apple;猫→cat;你好→” |
| 分解步骤 | 拆分复杂任务为顺序指令 | “写篇市场分析报告” | “1. 列出3个关键数据 2. 基于数据写2个发现 3. 给出结论建议” |
| 定义格式 | 指定输出的具体结构 | “总结文档” | “请用三个要点总结,每个要点后用🔍,最后一句概括核心观点” |
| 设定约束 | 限制长度、风格或排除内容 | “写产品描述” | “50字以内,语气活泼,禁用‘最好’‘第一’等词” |
3. 进阶方法与模式示例
3.1 链式思考 (Chain-of-Thought, CoT)
要求模型展示推理步骤,适用于数学、逻辑题。
- 提示:“小明有5个苹果,给了小红2个,又买了3个,然后吃了1个。请一步步计算他现在有几个。”
AI 输出:
`5 - 2 = 3` `3 + 3 = 6` `6 - 1 = 5` 答案:5个。
3.2 自我一致性 (Self-Consistency)
多次运行 CoT 提示,取多数答案,提高准确率。
- 适用场景:对同一逻辑题生成3次推理解答,投票决定最终答案。
3.3 思维树 (Tree-of-Thoughts)
探索多个推理路径,回溯评估分支,适合开放规划问题。
- 示例:“规划一次周末露营。请考虑天气、装备、交通三个维度,分别列出优缺点,再选择最佳路径。”
3.4 反思与修订 (ReAct / Reflexion)
让 AI 自批评并修正答案。
- 提示:“写一段代码计算斐波那契数列。然后检查代码是否有性能问题,并提供优化版本。”
3.5 元提示 (Meta-Prompting)
让 AI 帮你生成或优化提示。
- 示例:“请帮我设计一个提示,用于让 AI 总结新闻文章,要求输出三个要点,每点不超过30字。”
4. 实际应用案例
🖥️ 编程助手
提示:
“用 Python 写一个函数,输入整数列表,输出偶数的平方和。要求包含类型注解和 docstring。”
🧑🏫 教育辅导
提示:
“你是一名数学导师。用户说‘我不懂负数乘法’。用债务或温度的例子解释,然后出两道练习题,不直接给答案。”
✍️ 创意写作
提示:
“写一段300字的悬疑小说开头:雨夜,老书店,一本会自动翻到第47页的书。第一人称,心理描写为主。”
📊 数据分析
提示:
“你是数据分析师。表格数据:[CSV]。请:1) 最高销售额月份 2) 季度增长率 3) 用 markdown 表格输出。”
5. 常见误区与调试技巧
| 误区 | 调试方法 |
|---|---|
| 提示过于简短 | 添加:角色、步骤、格式、示例 |
| 假设 AI 知道上下文 | 显式重复重点:“基于上文第三段......” |
| 输出跑题或啰嗦 | 加约束:“只答 Yes/No” / “每点不超过20字” |
| 逻辑错误 | 要求“逐步推理”或“检查你的答案是否有矛盾” |
| 格式混乱 | 指定“输出 JSON” / “用分号分隔” / “每点前加 ➡️” |