共计 1364 个字符,预计需要花费 4 分钟才能阅读完成。
什么是提示工程?
提示工程(Prompt Engineering)是指通过精心设计输入文本(即 ” 提示 ”)来引导 AI 模型产生更符合预期的输出。就像人与人交流需要清晰表达需求一样,与 AI 对话也需要讲究 ” 说话艺术 ”。好的提示能显著提升模型输出的准确性、相关性和可用性,是开发者必须掌握的核心技能。

新手三大痛点
- 提示模糊 :如 ” 写篇文章 ” 这种开放式指令,模型可能输出无关内容
- 结果不可控 :相同提示在不同时间可能得到差异较大的回复
- 效率低下 :需要反复调整提示才能获得理想结果,耗时耗力
基础原则
- 清晰性 :避免歧义表述
- 反例:” 帮我处理数据 ”
-
正例:” 用 Python 将 CSV 文件中的日期列格式从 MM/DD/YYYY 转换为 YYYY-MM-DD”
-
具体性 :包含关键细节
- 反例:” 推荐书籍 ”
-
正例:” 推荐 3 本适合初学者的 Python 数据分析书籍,按难度从低到高排序 ”
-
结构化 :使用分段和序号
请按以下要求生成内容:1. 用 50 字概括机器学习定义 2. 列出 3 个常见应用场景 3. 给出学习路径建议
实战技巧
角色设定
通过赋予 AI 特定身份提升专业性:
你是一位资深 Linux 系统管理员,请用简明指令教我:1. 如何查看磁盘使用情况
2. 如何查找占用 CPU 最高的进程
分步指令
复杂任务拆解为步骤:
请按顺序执行:1. 解析这段 JSON 数据
2. 提取所有 price 大于 100 的 item
3. 计算这些 item 的平均价格
示例引导(Few-shot Learning)
提供输入输出示例:
请保持相同格式转换日期:输入:"会议在 03/15/2023"
输出:"会议在 2023-03-15"
现在请转换:"截止日是 12/31/2023"
代码示例
import openai
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "system", "content": "你是一位经验丰富的 Python 程序员"}, # 角色设定
{"role": "user", "content": "请用 Python 实现:\n1. 读取 data.csv 文件 \n2. 计算 score 列的平均值 \n3. 输出结果保留两位小数"} # 分步指令
],
temperature=0.7 # 控制创造性(0-1,越高越随机))
print(response.choices[0].message.content)
生产环境避坑指南
- 过度依赖默认参数
- 问题:直接使用默认 temperature= 1 可能导致输出不稳定
-
解决:关键任务建议设为 0.2-0.5 范围
-
忽略上下文长度限制
- 问题:超长提示会被截断
-
解决:精简提示,关键信息放前面
-
未处理敏感信息
- 问题:API 调用可能泄露隐私数据
-
解决:本地预处理脱敏后再调用
-
缺乏错误处理
- 问题:网络问题导致 API 调用失败
-
解决:添加重试机制和超时设置
-
不做结果验证
- 问题:直接使用模型输出可能存在错误
- 解决:设计校验规则或人工复核关键结果
进阶思考
- 如何设计提示模板实现批量自动化处理?
- 当模型返回 ” 我不知道 ” 时,有哪些优化策略?
- 针对专业领域(如法律、医疗),提示设计有哪些特殊注意事项?
实践建议
建议从简单任务开始练习,先实现单个明确目标(如数据格式转换),再逐步尝试复杂场景。每次修改提示后,记录输入输出对比,建立自己的提示库。记住,好的提示工程不是一蹴而就的,而是通过持续迭代优化的过程。
正文完
