常用技巧与方法 #
清晰表达技巧 #
使用具体动词 #
❌ 模糊的动词:
"处理一下这段文本"
"看看这个代码"
✅ 具体的动词:
"将这段文本翻译成英文"
"分析这段代码的时间复杂度"
"提取文本中的关键信息"
"总结文章的主要观点"
常用动词列表:
├── 分析:分析、评估、比较、诊断
├── 创建:编写、生成、设计、构建
├── 转换:翻译、转换、重写、改写
├── 提取:提取、识别、分类、归纳
└── 解释:解释、说明、描述、阐述
量化要求 #
❌ 模糊的量词:
"写长一点"
"多给几个例子"
"简单解释"
✅ 具体的量化:
"写 800-1000 字"
"提供 3-5 个示例"
"用 3 句话概括"
"列举至少 5 个要点"
量化维度:
├── 数量:3 个、5 条、至少 2 个
├── 长度:500 字、10 行代码
├── 时间:5 分钟内可完成
└── 程度:详细、简要、适中
避免歧义 #
❌ 有歧义的表达:
"把重要的信息提取出来"
(什么是"重要"?)
✅ 明确的定义:
"提取以下信息:姓名、年龄、职业、联系方式"
❌ 有歧义的表达:
"用简单的话解释"
(多简单?)
✅ 明确的标准:
"用小学生能理解的语言解释,避免使用专业术语"
格式控制技巧 #
指定输出格式 #
技巧一:使用格式名称
"请以 JSON 格式输出"
"请使用 Markdown 表格"
"请按 CSV 格式整理"
技巧二:提供格式模板
"请按以下格式输出:
标题:[标题]
作者:[作者]
摘要:[摘要]
关键词:[关键词]"
技巧三:提供示例
"输出格式示例:
{
\"name\": \"张三\",
\"age\": 25,
\"skills\": [\"Python\", \"JavaScript\"]
}"
JSON 格式控制 #
提示词:
请将以下信息转换为 JSON 格式,包含以下字段:
- name: 姓名
- age: 年龄(整数)
- skills: 技能列表
输入:张三,28岁,擅长 Python 和 Java
输出:
{
"name": "张三",
"age": 28,
"skills": ["Python", "Java"]
}
表格格式控制 #
提示词:
请将以下数据整理为 Markdown 表格:
数据:
- Python: 1991年,Guido van Rossum
- JavaScript: 1995年,Brendan Eich
- Java: 1995年,James Gosling
输出:
| 语言 | 创建年份 | 创建者 |
|------|----------|--------|
| Python | 1991 | Guido van Rossum |
| JavaScript | 1995 | Brendan Eich |
| Java | 1995 | James Gosling |
列表格式控制 #
提示词:
请以有序列表的形式列出 Python 的主要特点:
输出:
1. 简洁易读的语法
2. 丰富的标准库
3. 跨平台兼容
4. 动态类型系统
5. 强大的社区支持
约束条件技巧 #
内容约束 #
技巧一:限制范围
"只讨论性能优化,不涉及功能实现"
"仅分析前端代码,忽略后端部分"
技巧二:排除内容
"不要使用专业术语"
"避免使用第一人称"
"不要包含代码实现"
技巧三:必含内容
"必须包含至少 3 个实际案例"
"每个要点都需要举例说明"
"必须提供代码示例"
长度约束 #
技巧一:字数限制
"回答控制在 200 字以内"
"详细解释,不少于 1000 字"
"摘要限制在 100-150 字"
技巧二:段落限制
"用 3-5 个段落回答"
"每个要点用一段话说明"
技巧三:条目限制
"列出最重要的 5 个要点"
"提供 3 个示例"
风格约束 #
技巧一:语气风格
"使用正式、专业的语气"
"采用轻松、幽默的风格"
"保持客观、中立的立场"
技巧二:语言风格
"使用简单易懂的语言"
"采用技术文档的写作风格"
"模仿学术论文的表达方式"
技巧三:受众导向
"面向小学生解释"
"写给非技术人员看"
"针对有经验的开发者"
分步引导技巧 #
显式分步 #
提示词:
请按以下步骤分析代码:
步骤 1:识别代码的功能
步骤 2:分析代码结构
步骤 3:找出潜在问题
步骤 4:提出优化建议
步骤 5:给出改进后的代码
代码:
[代码内容]
隐式分步 #
提示词:
请分析这段代码,首先说明它的功能,
然后指出可能存在的问题,最后给出优化建议。
(使用"首先...然后...最后..."引导分步)
思维链引导 #
提示词:
请一步步思考并回答以下问题:
问题:一个班级有 30 名学生,其中 60% 是女生,
女生中有 50% 戴眼镜,请问戴眼镜的女生有多少人?
请展示你的思考过程。
示例引导技巧 #
单示例引导 #
提示词:
请按照以下格式提取信息:
示例:
输入:张三,男,28岁,北京
输出:{"name": "张三", "gender": "男", "age": 28, "city": "北京"}
请处理:
输入:李四,女,35岁,上海
输出:
多示例引导 #
提示词:
请判断以下句子的情感倾向:
示例 1:
输入:这部电影太精彩了!
输出:正面
示例 2:
输入:服务态度很差,不会再来了。
输出:负面
示例 3:
输入:产品一般,没有特别的感觉。
输出:中性
请判断:
输入:这家餐厅的菜品很美味,环境也很舒适。
输出:
格式示例 #
提示词:
请按照以下格式输出代码审查结果:
示例:
## 代码审查报告
### 问题列表
1. [严重] 空指针风险:第 15 行未检查 null
2. [警告] 性能问题:第 23 行循环内创建对象
### 优化建议
- 添加空值检查
- 将对象创建移到循环外
### 总体评价
代码结构清晰,但需要加强异常处理。
请按相同格式审查以下代码:
[代码内容]
上下文管理技巧 #
提供背景信息 #
❌ 缺乏背景:
"这个函数怎么优化?"
✅ 提供背景:
"这是一个处理用户登录请求的函数,在高并发场景下
性能较差,目前 QPS 只有 100,需要优化到 1000 以上。
服务器配置:4核8G,使用 Python 3.10。
请分析性能瓶颈并给出优化建议:"
提供参考资料 #
提示词:
请参考以下代码风格,实现一个用户注册功能:
参考代码风格:
```python
def get_user_by_id(user_id: int) -> Optional[User]:
"""根据 ID 获取用户信息
Args:
user_id: 用户 ID
Returns:
User 对象,如果不存在返回 None
"""
return User.query.filter_by(id=user_id).first()
请实现: def register_user(username: str, password: str) -> User: …
### 提供知识补充
提示词: 请解释以下概念:
概念:CAP 定理
背景知识: CAP 定理指出,在分布式系统中,以下三个特性最多只能同时满足两个:
- Consistency(一致性)
- Availability(可用性)
- Partition Tolerance(分区容错性)
请结合实际应用场景详细解释 CAP 定理。
## 迭代优化技巧
### 迭代改进流程
┌─────────────────────────────────────────────────────────────┐ │ 迭代优化流程 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ 编写初版 │ → │ 测试评估 │ → │ 分析问题 │ │ │ │ 提示词 │ │ 输出效果 │ │ 找出不足 │ │ │ └──────────┘ └──────────┘ └──────────┘ │ │ ↑ │ │ │ │ ↓ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ 应用新版本│ ← │ 优化提示词│ ← │ 制定改进 │ │ │ │ │ │ │ │ 方案 │ │ │ └──────────┘ └──────────┘ └──────────┘ │ │ │ └─────────────────────────────────────────────────────────────┘
### 迭代优化示例
第 1 版提示词: “写一个排序算法”
输出: [可能是一个简单的冒泡排序,没有注释]
─────────────────────────────────────────────────
第 2 版提示词: “用 Python 写一个快速排序算法,添加注释”
输出: [快速排序代码,有简单注释]
─────────────────────────────────────────────────
第 3 版提示词: "用 Python 写一个快速排序算法,要求:
- 添加详细的中文注释
- 包含类型注解
- 提供时间复杂度分析
- 给出使用示例"
输出: [完整的快速排序实现,包含所有要求]
### 问题诊断方法
输出问题诊断清单:
□ 输出是否偏离主题? └── 解决:增加约束条件,明确范围
□ 输出格式是否正确? └── 解决:提供格式模板和示例
□ 输出是否完整? └── 解决:明确列出所有要求的要点
□ 输出是否准确? └── 解决:提供更多上下文,要求验证
□ 输出风格是否合适? └── 解决:明确指定风格和受众
## 组合技巧
### 多技巧组合示例
提示词:
角色(角色设定) #
你是一位资深的 Python 开发者,擅长代码优化。
任务(清晰表达) #
请分析以下代码的性能问题,并提出优化方案。
代码(输入数据) #
def find_duplicates(numbers):
duplicates = []
for i in range(len(numbers)):
for j in range(i+1, len(numbers)):
if numbers[i] == numbers[j]:
duplicates.append(numbers[i])
return duplicates
要求(约束条件) #
- 分析时间复杂度和空间复杂度
- 指出至少 3 个优化点
- 提供优化后的代码
- 代码需要添加类型注解和注释
输出格式(格式控制) #
性能分析 #
[分析内容]
优化建议 #
- [建议1]
- [建议2]
- [建议3]
优化后代码 #
[代码]
性能对比 #
| 指标 | 优化前 | 优化后 |
|---|---|---|
| 时间复杂度 | … | … |
| 空间复杂度 | … | … |
## 下一步
现在你已经掌握了常用技巧与方法,接下来学习 [提示词模板](/docs/prompt-engineering/templates),获取更多可直接使用的模板!