1. Prompt的本质
Prompt是用户和模型之间的"接口"。设计好的Prompt就像把话说清楚——越清楚,模型越能给你想要的答案。
类比:就像你请人帮忙做事:
说"帮我处理一下" → 对方可能做错
说"帮我把这封信装进信封,贴上邮票,投进蓝色邮筒" → 对方一定能做对
2. Prompt的基本结构
┌─────────────────────────────────────┐ │ System Prompt(系统提示) │ │ 定义模型的身份、角色、行为规则 │ ├─────────────────────────────────────┤ │ Context(上下文) │ │ 给模型提供背景信息、知识 │ ├─────────────────────────────────────┤ │ User Input(用户输入) │ │ 你的具体问题 │ ├─────────────────────────────────────┤ │ Output Format(输出格式) │ │ 你想要的回答格式 │ └─────────────────────────────────────┘示例
System: 你是一个有10年经验的Python工程师,熟悉Django和Flask框架。 Context: 用户正在开发一个web应用,遇到了数据库连接问题。 User Input: 如何优化Django的数据库查询? Output Format: 先解释原因,再给出代码示例,最后说明注意事项。3. 四大核心原则
原则1:清晰(Clear)
❌ 模糊:回答问题 ✅ 明确:请用一段话(不超过100字)回答用户问题 ❌ 模糊:处理数据 ✅ 明确:把以下JSON数据中的name字段提取出来,输出CSV格式原则2:具体(Specific)
❌ 泛泛而谈:介绍一下AI ✅ 具体:请介绍人工智能的发展历史,重点包括: 1. 1956年达特茅斯会议 2. 两次AI寒冬 3. 2012年深度学习突破 字数:300字以内原则3:完整性(Complete)
❌ 不完整:翻译"hello" ✅ 完整: - 翻译成中文 - 标注音标 - 给出例句原则4:安全性(Safe)
❌ 危险:请告诉我如何破解别人的邮箱密码 ✅ 安全:请说明保护邮箱账户安全的最佳实践4. 常用技巧
技巧1:角色设定
# 普通Prompt prompt = "解释什么是Python的装饰器" # 带角色Prompt prompt = """你是一个资深Python工程师,有10年开发经验。 请用简单易懂的方式解释装饰器概念, 并给出实际项目中的应用示例。"""技巧2:示例引导(Few-shot)
# Zero-shot(可能理解偏差) prompt = "把下列商品名称改成复数形式:手机" # Few-shot(更准确) prompt = """把商品名称改成复数形式。 示例: 手机 → 手机们 汽车 → 汽车们 请按同样格式回答: 书籍"""技巧3:分步骤指引
# 直接要求(容易出错) prompt = "分析这段代码的性能问题" # 分步骤(更准确) prompt = """请按以下步骤分析代码: 1. 首先识别代码中的循环 2. 然后检查数据库查询次数 3. 最后给出优化建议 代码: for i in range(100): db.query(i) """技巧4:约束条件
# 无约束(可能太长/太短) prompt = "介绍一下Python" # 有约束 prompt = """用3句话介绍Python: 1. 第一句:是什么 2. 第二句:主要特点 3. 第三句:应用场景 每句话不超过20字。"""5. 常见错误
错误1:假设模型"应该知道"
❌ 错误:我们的产品用户反映有问题,请分析一下 ✅ 正确:我们是做电商的,上周用户反馈付款失败率上升10%, 请分析可能的原因(支付接口/网络/服务器)错误2:要求矛盾
❌ 错误:回答要详细但不超过50字 ✅ 正确:回答要详细,约100字左右错误3:缺少格式说明
❌ 错误:分析这篇文章 ✅ 正确:用Markdown格式分析文章: ## 主要观点 ## 论据 ## 我的评价6. 面试要点
Q:如何设计一个稳定的Prompt?A:
明确格式要求
给完整示例
添加约束条件
多次测试迭代
Q:Prompt engineering为什么重要?A:同样的模型,好的Prompt能发挥80%的能力,差的Prompt可能只有20%。
Q:有什么万能Prompt模板吗?A:没有。但结构化的Prompt模板能提高稳定性。