跳到主要内容

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. [尝试 1] - 结果:[效果]
  2. [尝试 2] - 结果:[效果]

【期望结果】 [描述期望的行为]


### 模板 3:代码审查

【审查目标】 请审查以下代码,关注 [具体关注点,如性能、安全性、可读性]。

【代码】

[代码片段]

【审查要求】 请按以下结构输出:

  1. 总体评价:[代码质量概述]
  2. 关键问题:[列出发现的重大问题]
  3. 改进建议:[具体的优化方案]
  4. 重构后的代码:[改进后的代码]

### 模板 4:技术选型

【场景描述】 我需要为 [项目/功能] 选择合适的技术方案。

【需求分析】

  • 核心需求:[需求 1, 需求 2]
  • 约束条件:[约束 1, 约束 2]
  • 团队技术栈:[现有技术]

【候选方案】

  1. [方案 A]
  2. [方案 B]
  3. [方案 C]

【期望输出】 请对比各方案的优缺点,给出推荐并说明理由。


### 模板 5:重构建议

【重构目标】 改进以下代码的 [目标,如可读性、性能、可维护性]。

【当前代码】

[代码片段]

【重构约束】

  • 保持功能不变
  • [其他约束]

【期望输出】

  1. 识别出的代码异味
  2. 重构步骤
  3. 重构后的代码
  4. 重构带来的收益

---

## 常见错误

### 错误 1:过于模糊

❌ "帮我写个功能"
✅ "请帮我写一个 JavaScript 函数,实现数组去重并按数值排序"

### 错误 2:一次性要求过多

❌ "帮我设计数据库、写 API、做前端界面"
✅ 分步骤进行,每次聚焦一个任务

### 错误 3:缺乏约束

❌ "优化这段代码"
✅ "优化这段代码,重点关注时间复杂度,要求保持 O(n)"

### 错误 4:没有提供上下文

❌ 直接粘贴代码问问题
✅ 先说明项目背景、技术栈、出现问题的场景

---

## 实践建议

1. **从简单开始**:先用简单 Prompt 试探,再逐步添加细节
2. **保存有效模板**:收集对自己项目有效的 Prompt 模板
3. **记录失败案例**:分析为什么某些 Prompt 效果不好
4. **持续迭代**:像优化代码一样优化你的 Prompt

---

**返回**:[上一页:工具配置](./01-tools-setup) | [下一章:实战篇](../02-practice/)