Prompt 工程笔记
什么是 Prompt 工程
Prompt 工程是通过设计和优化输入提示词(prompt)来引导 AI 模型产生期望输出的技术。
基本原则
1. 明确性(Clarity)
好的 prompt 应该清晰明确:
❌ 不好的示例:
写点关于 AI 的东西
✅ 好的示例:
请用 200 字介绍人工智能的发展历史,包括三个重要里程碑。
2. 具体性(Specificity)
提供具体的细节和要求:
❌ 不好的示例:
写一个函数
✅ 好的示例:
用 Python 写一个函数,接收一个整数列表,返回列表中的最大值。要求:
1. 使用内置函数 max()
2. 包含类型提示
3. 添加文档字符串
3. 结构化(Structure)
使用结构化的格式:
任务:[具体任务]
输入:[输入格式]
输出:[输出格式]
要求:[特殊要求]
常用技巧
1. 角色设定(Role Playing)
让 AI 扮演特定角色:
你是一位经验丰富的 Python 开发工程师,擅长编写清晰、高效的代码。
请用中文回答,并提供代码示例。
2. 示例引导(Few-Shot Learning)
提供示例来引导输出格式:
请将以下文本转换为 JSON 格式:
示例:
输入:姓名:张三,年龄:25,城市:北京
输出:{"name": "张三", "age": 25, "city": "北京"}
现在请转换:
输入:姓名:李四,年龄:30,城市:上海
3. 分步思考(Chain of Thought)
引导模型分步思考:
请解决以下数学问题,并展示你的思考过程:
问题:一个班级有 30 名学生,其中 60% 是女生。问女生有多少人?
思考过程:
1. 首先计算女生的比例
2. 然后计算具体人数
3. 最后验证答案
4. 输出格式控制
明确指定输出格式:
请用以下格式输出结果:
标题:[标题]
摘要:[摘要]
要点:
- [要点1]
- [要点2]
- [要点3]
5. 负面提示(Negative Prompting)
明确不想要的内容:
请写一篇关于 Python 的文章,要求:
- 不要包含代码示例
- 不要使用专业术语
- 不要超过 500 字
不同场景的 Prompt 模板
代码生成
作为一位 [语言] 开发专家,请帮我:
任务:[具体任务]
要求:
- [要求1]
- [要求2]
- [要求3]
请提供:
1. 完整的代码
2. 代码说明
3. 使用示例
文本摘要
请为以下文本写一个摘要:
文本:[文本内容]
要求:
- 长度:[字数要求]
- 风格:[正式/非正式]
- 重点:[重点内容]
输出格式:
标题:[标题]
摘要:[摘要内容]
问题解答
请回答以下问题:
问题:[问题内容]
要求:
- 提供详细的解释
- 包含相关示例
- 如果有多个答案,请列出所有可能的答案
请用以下格式回答:
答案:[答案]
解释:[解释]
示例:[示例]
内容创作
请创作一篇 [类型] 文章:
主题:[主题]
目标读者:[读者群体]
风格:[风格要求]
长度:[字数要求]
文章结构:
1. 引言
2. 主体内容(至少 3 个段落)
3. 结论
高级技巧
1. 思维链(Chain of Thought)
让我们一步步解决这个问题:
第一步:[步骤1]
第二步:[步骤2]
第三步:[步骤3]
请按照这个思路给出答案。
2. 自我验证
请回答以下问题,然后验证你的答案是否正确:
问题:[问题]
答案:[你的答案]
验证:[验证过程]
3. 多角度思考
请从以下角度分析这个问题:
角度1:[角度1]
角度2:[角度2]
角度3:[角度3]
请分别给出每个角度的分析。
4. 迭代优化
请先给出一个初步答案,然后根据以下反馈进行优化:
初步答案:[答案]
反馈:[反馈内容]
优化后的答案:[优化答案]
常见问题与解决方案
以下是我在 Prompt 工程实践中遇到的常见问题和解决方案:
Q: 输出不符合预期?
解决方案:
- 检查 prompt 是否足够明确
- 添加更多约束条件
- 使用示例引导
- 调整 temperature 参数
Q: 输出太长或太短?
解决方案:
- 明确指定长度要求
- 使用 "不超过 X 字" 或 "至少 X 字"
- 指定段落数量
Q: 输出格式不一致?
解决方案:
- 提供格式示例
- 使用结构化模板
- 明确指定输出格式
Q: 模型理解错误?
解决方案:
- 重新表述问题
- 添加背景信息
- 使用更简单的语言
- 分步提问
实践建议
- 记录有效 Prompt: 保存好用的 prompt 模板
- 迭代优化: 根据结果不断调整
- A/B 测试: 尝试不同的 prompt 版本
- 学习他人: 参考优秀的 prompt 示例
- 工具辅助: 使用 prompt 优化工具
工具推荐
- PromptPerfect: Prompt 优化工具
- PromptBase: Prompt 模板库
- ChatGPT Prompt Engineering Guide: OpenAI 官方指南