共计 1412 个字符,预计需要花费 4 分钟才能阅读完成。
背景痛点:为什么需要提示词工程?
在实际使用 ChatGPT 这类大语言模型时,开发者常遇到以下典型问题:

- 多轮对话状态丢失 :模型难以记住 5 轮前的对话细节,导致上下文断裂
- 复杂指令理解偏差 :当输入包含多个子任务时,模型可能忽略关键步骤
- 输出随机性不可控 :相同提示词在不同时间可能产生质量波动的结果
- 隐性偏见放大 :模型可能强化提示词中隐含的性别 / 文化偏见
这些问题的核心在于:原始模型就像未调教的助手,需要精确的指令引导才能稳定发挥能力。
核心技术参数解析
1. Temperature:控制创意与确定性
- 取值范围:0.0~2.0(API 常用 0.1~1.0)
- 低值(0.2):适合事实问答等确定性任务
- 高值(0.8):适合创意写作等发散场景
# 温度参数设置示例
response = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "写一首关于春天的诗"}],
temperature=0.7 # 适度创意
)
2. Top-p(核采样):聚焦高概率选项
- 与 temperature 配合使用(建议二选一)
- 取值 0.1~1.0,表示累积概率阈值
- p=0.9 时,模型仅考虑概率总和达 90% 的 token
实战方案:三大提示词模板
模板 1:任务分解式(适合复杂流程)
请按以下步骤处理:1. 识别用户 query 中的核心需求
2. 提取关键实体(时间 / 地点 / 人物)3. 分点列出示意图理解结果
4. 最后给出执行建议
当前 query:"帮我对比 iPhone15 和 Pixel8 的摄像头性能"
模板 2:角色设定(Role Prompting)
system_prompt = """
你是一位资深手机评测师,擅长用通俗语言解释技术参数。回答时请:- 先列出核心参数对比表
- 再用汽车引擎类比相机传感器
- 最后给出购买建议(不超过 3 条)"""
模板 3:链式思考(Chain-of-Thought)
# 数学推理示例
def math_reasoning(question: str) -> str:
prompt = f"""
请逐步解答:Q: {question}
A: 首先,我们...
"""
try:
response = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "system", "content": prompt}],
temperature=0.3
)
return response.choices[0].message.content
except Exception as e:
print(f"API 错误: {e}")
return "处理失败"
避坑指南
- 避免示例过载 :示例对话最好控制在 3 组以内,否则模型可能机械复制
- 注意 token 消耗 :提示词 + 回答总长度影响计费(中文约 1token= 2 字符)
- 谨慎设计停止符 :不合理的 stop sequences 可能导致截断病句
- 平衡指令密度 :每 100token 至少包含 1 个明确指令点
性能优化策略
通过实测发现:
- 提示词每增加 100token,响应延迟约增长 200ms
- 建议将核心指令放在前 300token(模型关注度最高)
- 对于长文档处理,先用独立请求提取摘要再分析
延伸思考
- 如何设计提示词来缓解模型的「幻觉」问题?
- 当处理非英语内容时,提示词设计需要哪些特殊调整?
推荐实验:尝试用相同的提示词,分别设置 temperature=0.2 和 0.8,观察输出风格的差异。
正文完
