Prompt 技巧
掌握编写高效 Prompt 的艺术,让 AI 更好地理解你的需求。
基础技巧
1. 明确意图
清晰表达"要什么"而非"怎么做"。
❌ 不好的例子:
用 for 循环遍历数组。
✅ 好的例子:
请帮我统计一个数组中每个元素出现的次数,返回一个对象,键是元素值,值是出现次数。
2. 提供上下文
让 AI 了解项目背景和技术栈。
示例:
项目背景:
- 使用 React 18 + TypeScript
- 状态管理使用 Zustand
- UI 组件库使用 Ant Design
需求:
需要创建一个用户列表组件,支持分页和搜索功能。
3. 结构化输出
要求 AI 以特定格式返回结果。
示例:
请分析以下代码的性能问题,并按以下格式返回:
## 问题描述
[简要描述问题]
## 影响范围
- [问题 1]
- [问题 2]
## 优化建议
1. [建议 1]
2. [建议 2]
## 优化后的代码
```[代码]```
4. 迭代优化
通过多轮对话逐步完善。
第一轮:
请帮我设计一个用户注册功能的 API。
第二轮:
很好,现在请添加邮箱验证和密码强度检查。
第三轮:
请补充错误处理和响应格式规范。
进阶策略
角色设定 (Role Prompting)
让 AI 扮演特定角色,获得更专业的回答。
示例:
你是一位有 10 年经验的资深前端架构师。请审查以下 React 组件代码,关注:
1. 性能优化机会
2. 可维护性问题
3. 可访问性(Accessibility)
4. TypeScript 类型安全性
思维链 (Chain of Thought)
要求 AI 展示思考过程,获得更准确的答案。
示例:
请帮我调试这个错误。在给出解决方案之前,请先:
1. 分析错误信息的含义
2. 推断可能的原因
3. 列出排查步骤
4. 提供解决方案
错误信息:
TypeError: Cannot read property 'map' of undefined
Few-Shot 示例
提供示例让 AI 学习模式。
示例:
请将以下自然语言描述转换为 SQL 查询。参考示例:
示例 1:
描述:查询所有年龄大于 25 岁的用户
SQL:SELECT * FROM users WHERE age > 25;
示例 2:
描述:查询每个部门的员工数量
SQL:SELECT department, COUNT(*) FROM employees GROUP BY department;
现在请转换:
描述:查询最近 7 天内注册且邮箱已验证的用户,按注册时间倒序排列
元认知提示 (Metacognitive Prompting)
让 AI 反思自己的输出质量。
示例:
请审查你刚才生成的代码,并回答:
1. 这段代码是否有潜在的边界情况未处理?
2. 是否有更简洁的实现方式?
3. 是否遵循了最佳实践?
4. 如果是生产环境,还需要哪些改进?
模板库
模板 1:代码生成
【需求描述】
请帮我实现 [功能描述]。
【技术栈】
- 语言/框架:[具体技术]
- 版本:[版本号]
【约束条件】
1. [约束 1]
2. [约束 2]
3. [约束 3]
【期望输出】
- 完整的可运行代码
- 关键部分的注释说明
- 使用示例
模板 2:Bug 调试
【问题描述】
我遇到了一个 [错误类型] 错误。
【错误信息】
[完整的错误堆栈]
【相关代码】
```[语言]
[相关代码片段]
【已尝试的解决方案】
- [尝试 1] - 结果:[效果]
- [尝试 2] - 结果:[效果]
【期望结果】 [描述期望的行为]
### 模板 3:代码审查
【审查目标】 请审查以下代码,关注 [具体关注点,如性能、安全性、可读性]。
【代码】
[代码片段]
【审查要求】 请按以下结构输出:
- 总体评价:[代码质量概述]
- 关键问题:[列出发现的重大问题]
- 改进建议:[具体的优化方案]
- 重构后的代码:[改进后的代码]
### 模板 4:技术选型
【场景描述】 我需要为 [项目/功能] 选择合适的技术方案。
【需求分析】
- 核心需求:[需求 1, 需求 2]
- 约束条件:[约束 1, 约束 2]
- 团队技术栈:[现有技术]
【候选方案】
- [方案 A]
- [方案 B]
- [方案 C]
【期望输出】 请对比各方案的优缺点,给出推荐并说明理由。
### 模板 5:重构建议
【重构目标】 改进以下代码的 [目标,如可读性、性能、可维护性]。
【当前代码】
[代码片段]
【重构约束】
- 保持功能不变
- [其他约束]
【期望输出】
- 识别出的代码异味
- 重构步骤
- 重构后的代码
- 重构带来的收益
---
## 常见错误
### 错误 1:过于模糊
❌ "帮我写个功能"
✅ "请帮我写一个 JavaScript 函数,实现数组去重并按数值排序"
### 错误 2:一次性要求过多
❌ "帮我设计数据库、写 API、做前端界面"
✅ 分步骤进行,每次聚焦一个任务
### 错误 3:缺乏约束
❌ "优化这段代码"
✅ "优化这段代码,重点关注时间复杂度,要求保持 O(n)"
### 错误 4:没有提供上下文
❌ 直接粘贴代码问问题
✅ 先说明项目背景、技术栈、出现问题的场景
---
## 实践建议
1. **从简单开始**:先用简单 Prompt 试探,再逐步添加细节
2. **保存有效模板**:收集对自己项目有效的 Prompt 模板
3. **记录失败案例**:分析为什么某些 Prompt 效果不好
4. **持续迭代**:像优化代码一样优化你的 Prompt
---
**返回**:[上一页:工具配置](./01-tools-setup) | [下一章:实战篇](../02-practice/)