共计 1786 个字符,预计需要花费 5 分钟才能阅读完成。
引言
最近在学习吴恩达老师的 ChatGPT 提示词工程课程,发现很多新手朋友(包括我自己)在构建对话系统时经常掉进各种坑里。今天就把我的学习笔记整理出来,希望能帮助大家少走弯路。

一、新手常见的提示词设计误区
- 模糊指令问题
- 比如直接问 ” 帮我写篇文章 ”,这种过于宽泛的请求往往得不到满意的结果
-
应该具体说明:” 请帮我写一篇 800 字关于 Python 列表推导式的技术博客,要求包含 3 个代码示例 ”
-
上下文缺失
- 在多轮对话中不提供历史上下文
-
例:直接问 ” 这个怎么解决?” 而不说明前面讨论的问题
-
缺乏约束条件
- 不限定输出格式、长度或风格
- 导致响应可能过长过短或不符合预期
二、吴恩达提示词设计四要素
1. 明确意图
- 使用清晰的动词开头(生成 / 解释 / 比较等)
- 示例:” 请用简单的语言向初学者解释神经网络的工作原理 ”
2. 提供示例
- 给 1 - 2 个输入输出示例
- 这对格式化输出特别有效
3. 分步思考
- 让模型展示推理过程
- 例:” 请先分析问题,再给出解决方案 ”
4. 角色设定
- 给 AI 分配特定角色
- 例:” 你现在是一位经验丰富的 Python 开发工程师 ”
三、实战示例模板
客服场景模板
import openai
def customer_service(query):
prompt = f""" 你是一名专业的电商客服代表,请用友好专业的语气回答以下问题。客户问题:{query}
回答要求:1. 不超过 100 字
2. 如果涉及退货,请说明流程
3. 以 '感谢您的咨询' 结尾 """
try:
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": prompt}],
temperature=0.7,
max_tokens=150
)
return response.choices[0].message.content
except Exception as e:
print(f"Error: {e}")
return "服务暂时不可用,请稍后再试"
内容生成模板
def generate_blog(topic, style="informal"):
prompt = f""" 请以 {style} 风格撰写一篇关于 {topic} 的技术博客。要求:- 包含 3 个小标题
- 每个小标题下至少 200 字
- 提供 2 个 Python 代码示例
- 结尾给出 3 个常见问题解答 """
# 添加重试逻辑
max_retries = 3
for attempt in range(max_retries):
try:
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}],
temperature=0.5
)
return response.choices[0].message.content
except:
if attempt == max_retries - 1:
raise
四、性能优化技巧
- Token 使用效率
- 精简不必要的说明文字
-
使用缩写如 ”3 个 ” 代替 ” 三个 ”
-
响应延迟优化
- 对于简单查询使用 gpt-3.5-turbo
-
设置合理的 max_tokens
-
对话连贯性
- 在 API 调用中传入历史消息
- 示例:
messages = [{"role": "system", "content": "你是一个有帮助的助手"}, {"role": "user", "content": "Python 中怎么处理 JSON?"}, {"role": "assistant", "content": "可以使用 json 模块..."}, {"role": "user", "content": "请给我个具体例子"} ]
五、生产环境避坑指南
- 敏感词过滤
- 在调用 API 前检查用户输入
-
使用正则表达式匹配敏感词
-
多轮对话状态
- 使用 session 保存对话历史
-
定期清理过长的对话上下文
-
API 错误处理
- 实现指数退避重试机制
-
设置合理的超时时间
-
结果验证
- 对关键信息进行事实核查
-
对于数学计算要求展示步骤
-
成本控制
- 监控每日 token 使用量
- 对免费用户设置调用频率限制
动手实验
请改进以下有缺陷的提示词:
“ 告诉我关于机器学习的东西 ”
改进思路:
1. 指定具体主题(如监督学习)
2. 定义输出长度和深度
3. 要求提供实际案例
4. 设定讲解难度级别
期待看到大家的改进方案!在实际项目中,好的提示词真的能事半功倍。如果遇到什么问题,欢迎在评论区交流讨论~
正文完
发表至: 未分类
近两天内
