AI Prompt 设计方论
一、提示词设计四大黄金原则
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 用户:请具体展示异常处理部分的代码
|
思考01:结构清晰,目的越明确,得出结果越准确,渐进和逐步反馈对话,得出需要的结果。
思考02: 需求/问题/目的:需要登录验证的代码。
渐进法则/反馈修正:
1 2 3 4 5
| User:描述一下登录验证的功能 AI:xx User:描述一下登陆验证流程 AI:xx User:给出xx登陆验证流程的具体示例和代码。
|
思考03: 渐进法则/反馈修正法则具体的区别是什么,看起来很像。
渐进法则:基于预设规则的分阶段递进优化
反馈修正法则:基于实时反馈的动态偏差修正# Obsidian 简介(基于5W1H框架)
二、六大核心方法论
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”