🎯 三层Prompt技术框架
基础层:让模型听懂你的话
1. Zero-shot(零样本提示)
请解释什么是微服务架构。
- 适合:简单任务或常识性问题
- 优点:简单直接
- 缺点:复杂任务效果不稳定
2. Few-shot(少样本提示)
erlang
请根据以下示例风格,为新产品写描述:
示例1:
产品:无线蓝牙耳机
描述:戴在耳朵上的小宇宙,音质清晰得像在现场听演唱会...
示例2:
产品:便携咖啡机
描述:把咖啡馆装进背包...
现在请为"智能保温杯"写一个产品描述。
- 适合:需要特定格式或风格的输出
- 关键:示例质量要高,数量2-5个就够
3. Role Prompting(角色提示)
erlang
你是一位有10年经验的后端架构师,擅长性能优化和系统设计。
请分析以下代码的性能问题...
- 作用:约束输出风格和专业程度
- 技巧:角色设定要具体,不要只说"你是专家"
4. 结构化输出
javascript
请以JSON格式输出:
{
"product_name": "产品名称",
"price": "价格",
"features": ["特性列表"]
}
- 适合:数据提取、对接下游系统
- 效果:大大提高输出可用性
推理层:让模型"会思考"
1. Chain-of-Thought (CoT) 思维链
Zero-shot CoT(最简单):
请一步步思考这个问题,然后给出答案。
Few-shot CoT(更稳定):
css
问题:小明有5个苹果,给了小红2个,又摘了3个。现在有几个?
推理过程:开始有5个 → 给小红2个剩3个 → 摘了3个共6个
答案:6个
现在请用同样的方式解决:
[你的问题]
CoT适用场景:
- ✅ 数学推理和逻辑分析
- ✅ 多步骤任务规划
- ✅ 代码生成中的问题分析
- ❌ 简单问题(不需要多步推理)
2. ReAct框架(推理+行动循环)
ini
Thought: [当前需要做什么]
Action: search("[搜索内容]")
Observation: [搜索结果]
... (循环直到找到答案)
Final Answer: [最终答案]
ReAct vs CoT关键区别:
| 维度 | CoT | ReAct |
|---|---|---|
| 信息来源 | 模型内部知识 | 内部知识 + 外部工具 |
| 推理方式 | 纯思考 | 思考 + 行动交替 |
| 适用场景 | 已有足够信息 | 需要检索、调用工具 |
| 成本 | 单次调用 | 可能多次调用 |
3. Self-Consistency(自一致性)
- 让模型多次推理同一个问题,然后投票选择最可信的答案
- 适合:需要高准确度的场景
- 缺点:成本高(需要多次调用)
4. Tree of Thoughts (ToT) 思维树
- 让模型探索多条推理路径,选择最优的一条
- 适合:复杂决策问题、创意方案生成
系统层:工程化的Prompt管理
1. 模块化Prompt
- 把复杂Prompt拆成可复用组件
- 例如:角色设定模块、任务定义模块、输出约束模块、工具调用模块
2. 自动化优化(DSPy框架)
python
import dspy
# 定义任务签名
class QuestionAnswer(dspy.Signature):
"""回答问题,给出详细解释"""
question = dspy.InputField(desc="用户的问题")
answer = dspy.OutputField(desc="详细的答案")
# 选择模块(自动生成Prompt)
qa = dspy.ChainOfThought(QuestionAnswer)
# 自动优化
optimizer = BootstrapFewShot(metric=evaluate_answer)
qa_optimized = optimizer.compile(qa, trainset=trainset)
DSPy核心理念:Programming, not prompting --- 用代码定义任务,框架自动优化
3. 标准化评估
- 准备测试集
- 定义评估指标(准确性、一致性、安全性、成本效率)
- 跑批量测试
- 记录每次迭代的得分变化
🔄 Claude vs ChatGPT:差异化最佳实践
Claude的最佳实践
1. 用XML标签做结构化约束
xml
请分析以下代码:
<code>
[你的代码]
</code>
请按以下格式输出:
<analysis>
[性能问题分析]
</analysis>
<suggestions>
[优化建议]
</suggestions>
2. 角色 + 约束 + 示例模式
- Claude对XML标签格式的理解特别好
- 响应角色设定和约束非常认真
3. 利用长上下文(200K tokens)
- 可以直接粘贴完整文件
- 适合处理长文档、复杂代码
ChatGPT的最佳实践
1. 明确的输出格式约束
javascript
请输出JSON格式,必须严格遵循此结构:
{
"name": "产品名称",
"price": "价格"
}
2. 调整温度参数
python
# 确定性输出(适合代码生成、数据分析)
temperature=0
# 创意性输出(适合文案写作、创意设计)
temperature=0.8
3. 分步骤引导
请按以下步骤完成任务:
步骤1:列出主要功能模块
步骤2:分析性能特点
步骤3:找出性能瓶颈
步骤4:给出优化方案
请先完成步骤1。