AI Prompt 设计方法论

  • ~3.94K 字
  1. 1. 一、提示词设计四大黄金原则
    1. 1.1. 1. 明确性法则
    2. 1.2. 2. 结构化法则
    3. 1.3. 3. 渐进法则
    4. 1.4. 4. 反馈修正法则
  2. 2. 二、六大核心方法论
    1. 2.1. 1. 角色设定法
    2. 2.2. 2. 思维链(Chain-of-Thought)
    3. 2.3. 3. 示例引导法
    4. 2.4. 4. 约束条件法
    5. 2.5. 5. 对抗训练法
    6. 2.6. 6. 元提示法
  3. 3. 三、跨领域案例库
    1. 3.1. 场景1:代码生成
    2. 3.2. 场景2:数据分析
    3. 3.3. 场景3:技术文档
  4. 4. 四、常见错误及修正
    1. 4.1. 1. 模糊请求
    2. 4.2. 2. 过度开放
    3. 4.3. 3. 缺少约束
    4. 4.4. 4. 忽略上下文
  5. 5. 五、进阶技巧
    1. 5.1. 1. 提示词模板化
    2. 5.2. 2. 分层提示策略
    3. 5.3. 3. 迭代优化循环
  6. 6. 六、工具推荐
    1. 6.1. Prompt 工程平台
    2. 6.2. 本地开发工具
  7. 7. 七、最佳实践总结
    1. 7.1. DO - 应该做的
    2. 7.2. DON’T - 避免做的
  8. 8. 更新记录

一、提示词设计四大黄金原则

1. 明确性法则

❌ 错误示范:

“写一个登录验证的代码”

✅ 正确示范:

“用 Python 编写 FastAPI 接口,实现 JWT 令牌校验,要求:

  • 使用 HS256 算法
  • 携带用户角色信息
  • 过期时间 30 分钟”

2. 结构化法则

1
2
3
4
5
6
7
[角色] 你是一位资深系统架构师
[任务] 设计高可用 Redis 集群方案
[要求]
1. 跨 3 个可用区部署
2. 读写分离架构
3. 内存占用率超过 70% 自动告警
[输出格式] Markdown 列表

3. 渐进法则

1
2
3
4
# 分阶段提问示例
prompt1 = "解释什么是数据库连接池"
prompt2 = "比较 HikariCP vs Druid 的特点"
prompt3 = "给出 Spring Boot 集成 HikariCP 的配置示例,要求最大连接数 50,超时时间 5 秒"

4. 反馈修正法则

1
2
3
4
# 对话式修正流程
用户:生成的 Kafka 消费者代码无法处理反序列化异常
AI:建议添加 try-catch 块处理 DeserializationException
用户:请具体展示异常处理部分的代码

核心区别

  • 渐进法则:基于预设规则的分阶段递进优化(主动规划)
  • 反馈修正法则:基于实时反馈的动态偏差修正(被动调整)

实战示例:需求是实现登录验证功能

1
2
3
4
5
6
7
# 渐进式提问
User:描述一下登录验证的功能
AI:[基础功能说明]
User:描述一下登录验证流程
AI:[流程详细说明]
User:给出 JWT 登录验证流程的具体示例和代码
AI:[完整代码实现]

二、六大核心方法论

1. 角色设定法

1
2
3
4
5
6
[角色] 你是有 10 年经验的 AWS 解决方案架构师
[任务] 设计支持百万并发的视频流系统
[约束]
- 使用 MediaLive+MediaPackage 架构
- CDN 成本控制在 $0.05/GB 以下
- 支持 ABR 自适应码率

2. 思维链(Chain-of-Thought)

1
2
3
4
5
6
7
# 数学问题示例
问题:会议室有 8 排座位,前 7 排每排 12 个座位,最后一排少 3 个,总共有多少座位?
思考过程:
1. 计算前 7 排总数:7×12=84
2. 最后一排座位数:12-3=9
3. 总数相加:84+9=93
答案:93

3. 示例引导法

1
2
3
4
5
6
7
8
9
10
11
// 代码生成案例
用户示例:
输入:生成 Java 方法,计算两个 LocalDate 之间的工作日
输出:
public int calculateWorkDays(LocalDate start, LocalDate end) {
// 实现逻辑(排除周末)
}

新需求:
请增加对法定节假日的支持,传入 Set<LocalDate> holiday 参数

4. 约束条件法

1
2
3
4
5
代码要求:
- 使用 Python 3.8+
- 禁止使用全局变量
- 函数参数必须类型注解
- 包含 pytest 单元测试

5. 对抗训练法

1
2
3
4
请生成 3 种不同的 SQL 注入攻击示例,然后为每种攻击编写对应的防御方案,要求:
1. 攻击手段不同
2. 防御措施具体到 PreparedStatement 参数设置
3. 给出 MyBatis 中的防范配置示例

6. 元提示法

1
2
3
4
5
6
7
8
9
"""
你是一位提示词优化专家,请帮我改进以下提示:
原始提示:帮我写个排序算法
优化方向:
1. 明确排序类型(快排/归并/等)
2. 添加边界条件处理要求
3. 指定输出语言和性能指标
请输出优化后的提示模板
"""

三、跨领域案例库

场景1:代码生成

1
2
3
4
5
6
7
8
9
10
11
12
// 优化前:
"写个 Rust 函数处理字符串"

// 优化后:
"""
作为 Rust 专家,实现一个高效反转字符串中单词顺序的函数,要求:
1. 处理 unicode 字符
2. 时间复杂度 O(n)
3. 避免分配额外内存
示例输入:"hello 世界" → 输出:"世界 hello"
给出性能测试方案
"""

场景2:数据分析

1
2
3
4
5
6
7
8
9
10
11
-- 优化前:
"分析销售数据"

-- 优化后:
"""
作为数据分析师,针对 sales 表(字段:order_id, region, product, amount, date):
1. 计算每个区域 Q3 的同比增长率
2. 找出复购率最高的前 3 个产品
3. 输出 DataFrame 包含:区域、增长率、top3 产品
使用 PySpark 实现,并给出避免数据倾斜的优化建议
"""

场景3:技术文档

1
2
3
4
5
6
7
8
9
10
11
优化前:
"写 Nginx 配置教程"

优化后:
"""
面向初级运维工程师的 Nginx 配置指南,包含:
1. 负载均衡配置对比:轮询 vs IP 哈希
2. 静态资源缓存策略(带 etag 配置示例)
3. 常见错误排查清单(502/504 错误处理)
用 Docker 环境演示,要求命令可复制
"""

四、常见错误及修正

1. 模糊请求

🙅 “解释一下微服务”
🙆 “用医院科室的类比方式解释微服务架构,重点说明服务发现和熔断机制”

2. 过度开放

🙅 “给些优化建议”
🙆 “针对 Tps 低于 100 的 Spring Boot 应用,给出 5 个 JVM 参数调优建议,要求基于 G1 垃圾回收器”

3. 缺少约束

🙅 “写个Dockerfile”
🙆 “编写用于 Node.js 18 应用的 Dockerfile,要求:

  • 使用多阶段构建
  • 处理 pm2 日志轮转
  • 镜像体积小于 200MB”

4. 忽略上下文

🙅 错误:”继续优化”(未说明优化什么)

🙆 正确:”针对上一步生成的 Kafka 消费者代码,优化反序列化异常处理,要求:

  • 添加重试机制(最多 3 次)
  • 记录失败消息到 Dead Letter Queue
  • 给出完整的异常处理代码”

五、进阶技巧

1. 提示词模板化

将常用模式抽象为可复用模板:

1
2
3
4
5
6
7
8
9
# 代码生成通用模板
[角色] 你是 {语言}{领域} 专家
[任务] 实现 {功能描述}
[技术要求]
- 语言版本:{version}
- 核心依赖:{dependencies}
- 性能要求:{performance}
[输出格式]
{format_spec}

2. 分层提示策略

对于复杂任务,采用自上而下的分层设计:

1
2
3
4
5
6
7
8
# 第一层:架构设计
"设计一个微服务架构的电商系统,包含用户、商品、订单服务"

# 第二层:接口设计
"基于上述架构,设计订单服务的RESTful API"

# 第三层:实现细节
"实现订单创建接口,要求幂等性、分布式事务处理"

3. 迭代优化循环

1
2
3
初始提示 → 评估结果 → 识别问题 → 优化提示 → 重新生成
↑ ↓
└──────────────── 循环直到满意 ←─────────────────┘

优化维度检查清单

  • 角色定义是否恰当
  • 任务描述是否具体
  • 约束条件是否完整
  • 输出格式是否明确
  • 是否需要示例引导
  • 是否考虑边界情况

六、工具推荐

Prompt 工程平台

工具 特点 适用场景
LangSmith 提示词版本管理、A/B测试 生产环境
PromptLayer 提示词库、协作功能 团队使用
FlowGPT 社区提示词分享 学习参考
OpenAI Playground 快速测试调试 原型验证

本地开发工具

1
2
3
4
5
6
# Python - Prompt 工具库
pip install promptulate # 提示词模板管理
pip install guidance # 结构化生成控制

# JavaScript - LangChain
npm install @langchain/core

七、最佳实践总结

DO - 应该做的

明确角色定位

  • 设定具体的专业背景
  • 匹配任务复杂度

提供充分上下文

  • 背景信息、技术环境、业务场景

使用结构化格式

  • 分点列举、表格对比、代码示例

设定明确约束

  • 技术限制、性能指标、安全要求

迭代优化

  • 记录有效提示词
  • 建立模板库
  • 分享团队经验

DON’T - 避免做的

模糊不清

  • “帮我写个代码”
  • “优化一下”

过度复杂

  • 单次提示包含太多要求
  • 缺乏层次结构

缺少验证

  • 不测试直接使用
  • 忽略安全性检查

重复造轮子

  • 忽略已有模板
  • 不记录有效经验

更新记录

  • 2026-01-12:完整重构文章,修复错误,添加进阶技巧、工具推荐和最佳实践章节
  • 2024-06-01:初始版本
打赏
打赏提示信息