Prompt Engineering 提示词工程
什么是 Prompt Engineering?
提示词工程(Prompt Engineering)是通过设计和优化与大语言模型交互的输入(Prompt),以获得更准确、更有用输出的技术。
核心原则
1. 清晰具体(Be Specific)
❌ 模糊: "写点什么" ✅ 具体: "写一篇关于 AI 医疗诊断的 500 字技术文章,包含三个实际案例"
2. 提供角色(Assign a Role)
让模型扮演特定角色可以提高回答质量:
你是一个资深的数据科学家,擅长用通俗易懂的语言解释复杂概念。
请向我解释什么是梯度下降。3. 指定格式(Specify Format)
明确输出格式:
列出 5 个 Python 编程最佳实践,使用 Markdown 编号列表4. 分步思考(Chain-of-Thought)
对于复杂问题,引导模型逐步推理:
让我们一步一步思考:
问题:一个球从 10 米高处落下,每次反弹到原来高度的一半,求第 5 次反弹的高度。
第一步:初始高度是 10 米
第二步:第一次反弹高度 = 10 × 0.5 = 5 米
...常用技巧
Few-Shot Prompting
提供示例让模型模仿:
Q: 天气如何?
A: 今天晴天,温度 25°C。
Q: 今天几号?
A: 今天是 2024 年 3 月 13 日。
Q: {你的问题}
A:Zero-Shot Prompting
不提供示例,直接提问:
将以下文本翻译成英语:你好,世界!Template Prompting
使用模板确保一致性:
你是一个 {角色},负责 {职责}。
任务:{具体任务}
要求:{要求列表}
输出格式:{格式}避免常见错误
- 不要过度复杂:保持 prompt 简洁
- 避免歧义:一次只问一件事
- 明确否定:说明不希望出现的内容("不要使用专业术语")
- 提供上下文:背景信息能让模型更好理解
实用模板
内容生成
主题:{主题}
目标受众:{受众}
长度:{字数}
风格:{正式/轻松/技术性}
输出:{文章/列表/摘要}代码生成
编程语言:{语言}
功能描述:{描述}
约束条件:{约束}
示例输入输出:
输入:{示例}
输出:{示例}摘要总结
文本:{原文}
要求:总结成 3 句话,保留关键信息
风格:{学术/商业/简洁}评估与迭代
- 测试:用不同 prompt 测试模型输出
- 评估:根据相关性、准确性、完整性打分
- 优化:调整 prompt,重复测试
- A/B 测试:对比不同版本的效果
工具与资源
- LangChain Prompt Templates:结构化模板
- OpenAI Playground:交互式调试
- PromptPerfect:自动优化
- DSPy:编程式 prompt 管理
掌握提示词工程能显著提升 LLM 的应用效果!
