Skip to content

提示词深度解析

提示词是与 AI 模型交互的核心接口,通过精心设计的提示词,您可以引导 AI 生成更准确、更符合需求的代码和建议。

提示词基础

什么是提示词

提示词 (Prompt) 是发送给 AI 模型的指令或问题,用于:

  • 明确意图: 清楚表达您想要什么
  • 提供上下文: 给出相关背景信息
  • 设定约束: 定义输出格式和要求
  • 引导输出: 影响 AI 的回答方式

提示词类型

系统提示词

系统提示词定义 AI 助手的角色和行为准则:

yaml
models:
  - name: "guided-assistant"
    provider: "openai"
    model: "gpt-4"
    apiKey: "${OPENAI_API_KEY}"
    roles: ["chat"]
    defaultCompletionOptions:
      temperature: 0.7
      maxTokens: 4000

系统提示词示例可以在 .bytebuddy/prompts/system.md 中定义:

markdown
# 系统提示词

你是一个专业的代码助手,擅长:

- 编写清晰、可维护的代码
- 遵循项目的编码规范
- 提供详细的代码注释
- 考虑性能和安全性

请始终:

1. 使用项目约定的命名规范
2. 添加必要的错误处理
3. 编写简洁的注释
4. 考虑边界情况

用户提示词

用户提示词是具体的任务请求:

  • 代码生成: "创建一个用户认证函数"
  • 代码解释: "解释这段代码的作用"
  • 代码重构: "优化这个函数的性能"
  • 问题诊断: "为什么这段代码会报错"

上下文提示词

提供相关背景信息:

  • 代码上下文: 当前文件和相关文件
  • 项目信息: 技术栈、架构模式
  • 历史记录: 之前的对话和操作
  • 文档引用: 相关 API 文档

提示词工程

基本原则

1. 清晰明确

yaml
models:
  - name: "precise-assistant"
    provider: "openai"
    model: "gpt-4"
    apiKey: "${OPENAI_API_KEY}"
    roles: ["chat"]
    defaultCompletionOptions:
      temperature: 0.5
      maxTokens: 4000

好的提示词:

创建一个 React 函数组件,名为 UserCard,
接收 user 对象作为 props (包含 name, email, avatar 字段),
使用 Tailwind CSS 进行样式设计,
显示用户头像、姓名和邮箱。

不好的提示词:

做一个用户卡片

2. 提供上下文

markdown
# 项目上下文

当前项目: React + TypeScript + Vite
状态管理: Zustand
样式方案: Tailwind CSS
组件库: shadcn/ui

请基于以上技术栈生成代码。

3. 设定约束

markdown
# 代码生成约束

- 使用 TypeScript
- 遵循 ESLint 规则
- 添加 JSDoc 注释
- 包含错误处理
- 最大函数长度 50 行

4. 指定格式

markdown
# 输出格式

请按以下格式输出:

1. 代码实现
2. 使用示例
3. 注意事项
4. 测试用例

高级技巧

Few-Shot 提示

提供示例来引导输出:

markdown
# 命名规范示例

变量命名:

- 好: `userProfile`, `isAuthenticated`, `totalCount`
- 差: `up`, `auth`, `tc`

函数命名:

- 好: `getUserById()`, `validateEmail()`, `formatDate()`
- 差: `get()`, `check()`, `format()`

请按照这些规范命名代码中的变量和函数。

Chain-of-Thought

引导 AI 逐步思考:

markdown
# 问题分析

请按以下步骤分析这个问题:

1. 确定问题的根本原因
2. 列出可能的解决方案
3. 评估每个方案的优缺点
4. 推荐最佳方案
5. 提供实现步骤

角色扮演

让 AI 扮演特定角色:

yaml
models:
  - name: "security-expert"
    provider: "openai"
    model: "gpt-4"
    apiKey: "${OPENAI_API_KEY}"
    roles: ["chat"]
    defaultCompletionOptions:
      temperature: 0.3
      maxTokens: 4000
markdown
# 安全专家角色

你是一位经验丰富的安全专家,专注于:

- 识别代码中的安全漏洞
- 提供安全最佳实践建议
- 推荐加密和认证方案
- 进行安全代码审查

请从安全角度审查以下代码。

场景化提示词

代码生成场景

API 接口开发

markdown
# API 开发任务

创建一个 RESTful API 端点:

**路径**: POST /api/users
**功能**: 创建新用户
**请求体**:

```json
{
  "name": "string",
  "email": "string",
  "password": "string"
}
```

要求:

  1. 验证邮箱格式
  2. 密码加密存储
  3. 检查邮箱唯一性
  4. 返回创建的用户信息(不含密码)
  5. 添加错误处理

技术栈: Node.js + Express + PostgreSQL


#### 数据库模型

```markdown
# 数据库模型设计

创建一个 Prisma schema 定义:

**模型**: Post (博客文章)
**字段**:
- id: 自增主键
- title: 标题 (必填,最长 200 字符)
- content: 内容 (必填)
- published: 是否发布 (默认 false)
- authorId: 作者 ID (外键关联 User)
- createdAt: 创建时间
- updatedAt: 更新时间

**关联**:
- 一个作者可以有多篇文章
- 一篇文章属于一个作者

代码审查场景

yaml
models:
  - name: "code-reviewer"
    provider: "anthropic"
    model: "claude-3-sonnet"
    apiKey: "${ANTHROPIC_API_KEY}"
    roles: ["chat"]
    defaultCompletionOptions:
      temperature: 0.3
      maxTokens: 4000
markdown
# 代码审查清单

请审查以下代码,重点关注:

1. **代码质量**

   - 可读性和可维护性
   - 命名规范
   - 代码复杂度

2. **安全性**

   - 输入验证
   - SQL 注入风险
   - XSS 漏洞

3. **性能**

   - 算法效率
   - 数据库查询优化
   - 内存使用

4. **最佳实践**
   - 错误处理
   - 日志记录
   - 单元测试

对于发现的问题,请提供:

- 问题描述
- 严重程度 (高/中/低)
- 修复建议
- 改进后的代码示例

重构场景

markdown
# 代码重构任务

重构以下代码,目标:

1. **提高可读性**

   - 使用有意义的变量名
   - 简化复杂逻辑
   - 添加注释说明

2. **改善结构**

   - 提取重复代码
   - 拆分大函数
   - 应用设计模式

3. **优化性能**

   - 减少不必要的计算
   - 优化数据结构
   - 缓存重复调用

4. **增强健壮性**
   - 添加错误处理
   - 处理边界情况
   - 输入验证

请保持原有功能不变。

提示词模板

功能开发模板

markdown
# 功能开发

**功能名称**: [功能名称]

**需求描述**: [详细描述功能需求]

**技术栈**:

- 前端: [技术]
- 后端: [技术]
- 数据库: [技术]

**实现要求**:

1. [要求 1]
2. [要求 2]
3. [要求 3]

**验收标准**:

- [ ] [标准 1]
- [ ] [标准 2]
- [ ] [标准 3]

**注意事项**: [特殊考虑]

Bug 修复模板

markdown
# Bug 修复

**问题描述**: [描述 bug 现象]

**复现步骤**:

1. [步骤 1]
2. [步骤 2]
3. [步骤 3]

**预期行为**: [应该发生什么]

**实际行为**: [实际发生了什么]

**环境信息**:

- 操作系统: [OS]
- 浏览器: [Browser]
- 版本: [Version]

**相关代码**: [粘贴相关代码]

**错误信息**: [粘贴错误堆栈]

请分析问题原因并提供修复方案。

性能优化模板

markdown
# 性能优化

**性能问题**: [描述性能问题]

**性能指标**:

- 当前响应时间: [时间]
- 目标响应时间: [时间]
- 内存使用: [内存]
- CPU 使用: [CPU]

**分析要求**:

1. 识别性能瓶颈
2. 分析原因
3. 提出优化方案
4. 评估优化效果

**约束条件**: [技术或业务约束]

提示词优化

迭代改进

yaml
models:
  - name: "iterative-assistant"
    provider: "openai"
    model: "gpt-4"
    apiKey: "${OPENAI_API_KEY}"
    roles: ["chat"]
    defaultCompletionOptions:
      temperature: 0.6
      maxTokens: 4000

优化流程:

  1. 初始提示: 基本需求描述
  2. 观察输出: 检查生成结果
  3. 识别问题: 找出不满意的地方
  4. 调整提示: 添加更多细节或约束
  5. 重新测试: 验证改进效果

A/B 测试

对比不同提示词的效果:

markdown
# 提示词 A

创建一个登录表单

# 提示词 B

创建一个 React 登录表单组件,
包含邮箱和密码输入框、
记住我复选框、
登录按钮,
使用 Formik 进行表单验证,
使用 Tailwind CSS 样式。

温度参数调节

yaml
models:
  # 创造性任务 - 高温度
  - name: "creative-assistant"
    provider: "openai"
    model: "gpt-4"
    apiKey: "${OPENAI_API_KEY}"
    roles: ["chat"]
    defaultCompletionOptions:
      temperature: 0.9
      maxTokens: 4000

  # 精确任务 - 低温度
  - name: "precise-assistant"
    provider: "openai"
    model: "gpt-4"
    apiKey: "${OPENAI_API_KEY}"
    roles: ["chat"]
    defaultCompletionOptions:
      temperature: 0.2
      maxTokens: 4000

温度选择:

  • 0.0-0.3: 代码生成、数据处理
  • 0.4-0.7: 一般对话、问题解答
  • 0.8-1.0: 头脑风暴、创意建议

最佳实践

1. 分层提示

markdown
# 层次 1: 系统角色

你是一个 React 专家

# 层次 2: 任务上下文

当前项目使用 React 18 + TypeScript

# 层次 3: 具体任务

创建一个用户列表组件

# 层次 4: 详细要求

使用 hooks、支持分页、添加搜索功能

2. 使用检查点

markdown
在开始编码前,请先:

1. 确认你理解了需求
2. 列出实现步骤
3. 指出潜在问题

然后再开始实现。

3. 要求解释

markdown
请在代码中添加注释,解释:

- 关键逻辑的实现原理
- 为什么选择这种方案
- 需要注意的边界情况

4. 迭代优化

markdown
请先提供一个基本实现,
然后我会给出反馈,
之后你再进行优化改进。

环境变量配置

bash
# ~/.bashrc 或 ~/.zshrc
export OPENAI_API_KEY="your-openai-api-key"
export ANTHROPIC_API_KEY="your-anthropic-api-key"

通过掌握提示词工程技巧,您可以更有效地与 AI 协作,获得更高质量的代码和建议。