共计 2123 个字符,预计需要花费 6 分钟才能阅读完成。
为什么提示工程如此重要?
在构建基于 ChatGPT 的对话系统时,提示(Prompt)的质量直接决定了 AI 的回答效果。好的提示能引导模型输出更精准、更符合预期的内容,而模糊的提示则可能导致答非所问甚至完全错误的输出。提示工程就是通过优化输入的文本指令,让 AI 的表现更接近我们的需求。

新手常见的 3 个问题
-
指令模糊不清 :比如简单地问 ” 写篇文章 ”,但没有指定主题、风格或长度,导致输出内容不符合预期。
-
上下文丢失 :在多轮对话中,没有正确管理对话历史,导致 AI” 忘记 ” 之前的交流内容。
-
输出格式混乱 :没有明确指定响应格式(如 JSON、Markdown 等),导致后续处理困难。
5 个核心优化技巧
1. 结构化提示模板
原理 :通过固定的指令结构,明确告诉 AI 角色、任务和输出格式要求。
代码示例 :
import openai
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "system", "content": "你是一个专业的文案写手"}, # 角色定义
{"role": "user", "content": "写一篇关于 Python 入门的博客,300 字左右,使用 Markdown 格式"} # 具体任务
],
temperature=0.7 # 控制创意程度
)
print(response.choices[0].message.content)
应用场景 :内容生成、自动写作等需要特定格式输出的场景。
2. 多轮对话管理
原理 :通过维护 messages 列表,保留完整的对话历史。
代码示例 :
conversation = [{"role": "system", "content": "你是一个专业的客服助手"},
{"role": "user", "content": "我的订单 12345 在哪里?"},
{"role": "assistant", "content": "您的订单正在配送中"},
{"role": "user", "content": "预计什么时候能到?"} # 这里 AI 会基于前面上下文回答
]
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=conversation
)
print(response.choices[0].message.content)
应用场景 :客服对话、教学辅导等需要记忆上下文的场景。
3. 使用 few-shot 示例
原理 :提供几个输入 - 输出示例,让 AI 学习你的期望模式。
代码示例 :
examples = """用户: 把这句话改写得专业些:" 这个产品很牛 "
AI: 该产品具有卓越的性能表现
用户: 改写这句话: "这个软件太难用了"
AI: 该软件的用户体验有待优化
"""
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "system", "content": "你是一个专业的文案改写助手"},
{"role": "user", "content": examples + "\n 用户: 改写这句话:' 这个功能太棒了 '"}
]
)
应用场景 :风格转换、文本改写等需要特定表达方式的场景。
4. 控制输出随机性
原理 :通过 temperature 和 top_p 参数控制输出的创造性和多样性。
代码示例 :
# 需要确定性回答时(如事实查询)response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "Python 是什么?"}],
temperature=0.3, # 值越低输出越确定
top_p=0.9
)
# 需要创造性回答时(如写诗)response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "写一首关于春天的诗"}],
temperature=0.9, # 值越高输出越随机
top_p=1.0
)
应用场景 :事实查询需要低 temperature,创意写作需要高 temperature。
5. 分步思考提示
原理 :让 AI 展示推理过程,提高复杂问题的回答质量。
代码示例 :
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "请一步步思考:如果明天下雨,我应该怎么准备出行?"}
],
temperature=0.5
)
应用场景 :复杂问题解决、决策建议等需要逻辑推理的场景。
生产环境注意事项
- 敏感内容过滤 :
- 实现输入输出内容审查
-
使用关键词过滤或第三方审查 API
-
API 调用频率控制 :
- 实现请求限流(如令牌桶算法)
-
监控 API 使用情况,避免超出配额
-
响应缓存策略 :
- 对常见问题答案进行缓存
- 设置合理的缓存过期时间
留给读者的思考
- 在你的业务场景中,哪些类型的提示最容易出现问题?如何优化?
- 如何设计一个评估提示效果的指标体系?
