把前面学的所有技巧综合起来,本篇展示 5 个完整可用的实战提示词,每个都包含目标、思路、模板、效果。可以直接复制改用。
1. 案例一:自动化 Code Review
目标
让 Claude 对一段代码做严格的代码审查,输出可执行的改进建议。
思路
- 角色:资深安全 + 代码质量审查者
- 任务:审查 + 分类 + 给修复建议
- 约束:聚焦严重问题,不挑剔风格
- 格式:Markdown 表格,便于人读
完整提示词
你是一名拥有 15 年经验的资深工程师,专注于代码质量、
安全性、性能。
请审查下面这段代码,找出真正的问题。
【范围】
- 安全漏洞(注入、越权、密码处理)
- 正确性 bug(边界、并发、空指针)
- 性能问题(N+1、循环、内存)
- 严重的可维护性(强耦合、上帝函数)
【不要审查】
- 命名风格
- 缩进、空格
- 注释多少
- 一般性"建议加测试"
【输出格式】
| 序号 | 严重 | 文件:行号 | 问题 | 修复建议 |
|---|---|---|---|---|
严重程度:🔴 高 / 🟡 中 / 🟢 低
高 = 可能导致生产事故
中 = 应该尽快修
低 = 有时间改
【代码】
```{language}
{code}
【约束】 - 没有问题就输出"✅ 未发现严重问题" - 不要为了凑数编造问题 - 修复建议必须可执行("加 try"不算,"用 Path.resolve() 检查父目录"才算)
| 序号 | 严重 | 文件:行号 | 问题 | 修复建议 | |---|---|---|---|---| | 1 | 🔴 高 | login.py:8 | 字符串拼接构造 SQL,存在注入风险 | 改用参数化查询:db.query("SELECT * FROM users WHERE name=%s", (user,)) |
| 2 | 🔴 高 | login.py:9 | 明文密码比对,存在时序攻击风险 | 用 secrets.compare_digest() 或 bcrypt |
| 3 | 🟡 中 | login.py:7 | 未对 user 长度做校验 | 加 if len(user) > 64: raise ValueError(...) |
### 2. 案例二:智能客服意图识别
#### 目标
把用户消息分类为预设意图,提取关键参数,输出 JSON 给后端。
#### 思路
- 系统级身份:"生产级 JSON API"
- 多个 Few-shot 覆盖各意图
- Schema 严格定义
- 不识别时给 confidence
#### 完整提示词
【行为约束】 - 始终输出 JSON - 永远不输出自然语言解释 - 永远不偏离意图列表 - 第一个字符必须是 {
【意图列表】 - query_order: 询问订单状态 - request_refund: 退款申请 - product_question: 商品咨询 - complaint: 投诉 - chitchat: 闲聊或问候 - unknown: 无法识别
【Schema】 { "intent": "string", "confidence": "number 0-1", "params": { "order_id": "string | null", "product_name": "string | null", "complaint_type": "string | null" }, "raw_message": "string" }
【示例】
输入:"我那个订单 12345 怎么还没到?" 输出:{"intent":"query_order","confidence":0.95,"params":{"order_id":"12345","product_name":null,"complaint_type":null},"raw_message":"我那个订单 12345 怎么还没到?"}
输入:"你们家狗粮有几种?" 输出:{"intent":"product_question","confidence":0.9,"params":{"order_id":null,"product_name":"狗粮","complaint_type":null},"raw_message":"你们家狗粮有几种?"}
输入:"东西用了两次就坏了,态度还差!" 输出:{"intent":"complaint","confidence":0.92,"params":{"order_id":null,"product_name":null,"complaint_type":"product_quality"},"raw_message":"东西用了两次就坏了,态度还差!"}
输入:"你好" 输出:{"intent":"chitchat","confidence":0.99,"params":{"order_id":null,"product_name":null,"complaint_type":null},"raw_message":"你好"}
【现在】 输入:"{user_message}" 输出:
#### 效果
100% 输出可解析 JSON,confidence < 0.7 时后端转人工兜底。
### 3. 案例三:技术文档自动生成
#### 目标
根据代码自动生成函数文档(Google 风格 docstring)。
#### 思路
- 任务单一:只生成 docstring,不改代码
- 给一个完整 Few-shot
- 强调"不重复类型"
#### 完整提示词
【任务】 为下面的函数生成 Google 风格的 docstring。
【风格要求】 - 第一行:祈使句开头,不超过 80 字 - 详细说明(如果需要):空一行后写 - Args / Returns / Raises 三段式 - 类型已在签名里的,不要在 docstring 重复 - 简单函数(< 5 行)只保留一行总结
【输出】 - 只输出补全 docstring 后的完整函数代码 - 不要解释、不要 Markdown 围栏
【示例】
输入: def calculate_discount(price: float, rate: float, max_off: float = None) -> float: if rate < 0 or rate > 1: raise ValueError("rate must be in [0, 1]") discount = price * rate if max_off is not None: discount = min(discount, max_off) return price - discount
输出: def calculate_discount(price: float, rate: float, max_off: float = None) -> float: """计算商品折扣后的价格。
Args:
price: 商品原价。
rate: 折扣率,0~1 之间,0.2 表示打 8 折。
max_off: 折扣金额上限,超过则按此封顶。默认无上限。
Returns:
折扣后的最终价格。
Raises:
ValueError: 当 rate 不在 [0, 1] 范围内。
"""
if rate < 0 or rate > 1:
raise ValueError("rate must be in [0, 1]")
discount = price * rate
if max_off is not None:
discount = min(discount, max_off)
return price - discount
【现在】 输入:
输出:
#### 效果
可以直接接入 IDE 插件或 git hook,提交前自动补全 docstring。
### 4. 案例四:会议纪要自动整理
#### 目标
把语音转文字的会议记录整理成结构化纪要。
#### 思路
- 角色:专业会议助理
- 拆分维度:参会人 / 议题 / 待办
- 处理"听不清"的情况
#### 完整提示词
【任务】 将下面的会议录音文本整理成结构化纪要。
【输出结构】
会议纪要
概要
- 时间:(从内容推断或填"未知")
- 时长:(推断或填"未知")
- 参会人:(按发言顺序列出)
议题
议题 1:{议题名}
讨论: - {发言人 A}:{核心立场,1-2 句} - {发言人 B}:{核心立场}
结论:{形成的共识或决议}
议题 2:……
待办
| 任务 | 负责人 | 截止 |
|---|---|---|
待确认(如果有)
- ⚠️ {听不清/未明确的关键信息}
【约束】 - 不要逐字记录,要凝练 - 反对意见必须保留,不要"和稀泥" - 待办时间从录音里抓,没说就填"未明确" - 不要补充会议中未提及的内容 - 用第三人称叙述,不用"我说"
【录音文本】 """ {transcript} """
#### 效果
> # 会议纪要
>
> ## 概要
> - 时间:未知
> - 时长:约 35 分钟
> - 参会人:张总、Lisa、Mike、Alex
>
> ## 议题
>
> ### 议题 1:Q4 营销预算
> **讨论**:
> - 张总:建议增加 30% 投入到短视频
> - Lisa:反对,认为应保留预算用于私域
>
> **结论**:增加 15%(折中),下周三前出具体方案
>
> ……
>
> ## 待办
>
> | 任务 | 负责人 | 截止 |
> |---|---|---|
> | 出短视频投放方案 | Lisa | 下周三 |
> | 评估私域 ROI | Mike | 未明确 |
### 5. 案例五:根据需求生成 SQL
#### 目标
把自然语言需求转成可执行的 SQL。
#### 思路
- 给完整 Schema
- 用 CTE 让结构清晰
- 给一两个示例
- 不解释,只出 SQL
#### 完整提示词
【数据库 Schema】 products(id, name, price, category_id, created_at) categories(id, name) orders(id, user_id, created_at, status) order_items(id, order_id, product_id, quantity) users(id, name, email, signup_at, region)
【约束】 - 仅输出 SQL,不要解释 - 不要 Markdown 围栏 - 优先使用 CTE 让结构清晰 - 时间用 INTERVAL 表达式 - 字段可空时显式 IS NULL 判断
【示例】
需求:"本周下单量最多的用户 Top 10" SQL: WITH weekly AS ( SELECT user_id, COUNT(*) AS cnt FROM orders WHERE created_at >= NOW() - INTERVAL '7 days' AND status = 'completed' GROUP BY user_id ) SELECT u.name, u.email, w.cnt FROM weekly w JOIN users u ON u.id = w.user_id ORDER BY w.cnt DESC LIMIT 10;
需求:"上个月每个分类的销售额" SQL: WITH last_month AS ( SELECT p.category_id, SUM(p.price * oi.quantity) AS revenue FROM order_items oi JOIN orders o ON o.id = oi.order_id JOIN products p ON p.id = oi.product_id WHERE o.created_at >= DATE_TRUNC('month', NOW()) - INTERVAL '1 month' AND o.created_at < DATE_TRUNC('month', NOW()) AND o.status = 'completed' GROUP BY p.category_id ) SELECT c.name AS category, lm.revenue FROM last_month lm JOIN categories c ON c.id = lm.category_id ORDER BY lm.revenue DESC;
【现在】 需求:"{user_query}" SQL:
#### 效果
模型生成的 SQL 直接可跑,且风格统一。生产中常配合一个**只读账号 + 沙盒环境**做验证。
### 6. 案例六:内容审核
#### 目标
判断一段文字是否包含违规内容,分类输出。
#### 完整提示词
【任务】 判断下面文本是否违规,按 JSON 输出。
【违规类型】 - spam: 广告、刷屏 - abuse: 辱骂、人身攻击 - adult: 色情、低俗 - politics: 政治敏感 - illegal: 违法(毒品、暴力、欺诈) - safe: 无问题
【Schema】 { "result": "safe | violation", "categories": ["上述类型"], "confidence": "number 0-1", "evidence": ["命中的关键句子(最多 3 句)"] }
【约束】 - 仅输出 JSON - 误伤宁可漏过(confidence < 0.6 视为 safe) - evidence 用原文,不要改写 - 同时命中多类型时全部列出
【示例】
输入:"新版 iPhone 真的太香了,质感超棒" 输出:{"result":"safe","categories":[],"confidence":0.99,"evidence":[]}
输入:"这个 SB 团队做的产品就是垃圾,老板更是个骗子" 输出:{"result":"violation","categories":["abuse"],"confidence":0.95,"evidence":["这个 SB 团队","老板更是个骗子"]}
【现在】 输入:"{text}" 输出:
你是一名经验丰富的旅游规划师,熟悉国内外热门目的地。【任务】 根据用户输入生成详细行程。
【输入参数】 - 目的地:{destination} - 天数:{days} - 预算:{budget}(人均,含机酒+吃喝玩乐) - 偏好:{preferences}(如:自然风光 / 文化古迹 / 美食 / 亲子) - 出发地:{from} - 出行人数:{people}
【输出结构】
{destination} {days}天行程
总览
- 总预算:{推荐预算} / 人
- 适合人群:……
- 最佳季节:……
Day 1
主题:…… - 上午:景点 + 简介(30 字内) - 午餐:餐厅推荐 + 人均 - 下午:…… - 晚餐:…… - 住宿:酒店推荐 + 价位 - 当日花费:约 X 元 / 人
Day 2
……
注意事项
- 交通建议
- 特别提醒
- 备选方案(雨天/淡季)
【约束】 - 推荐都要给出理由("为什么是这家") - 价格给区间(如 ¥200-300) - 行程节奏合理:不超过 3 个景点 / 天 - 在亲子场景下,必须考虑步行距离和午休 - 不要凭空编造不存在的店
【输入】 {...} ```
8. 实战中的注意事项
注意 1:先写人能看懂的版本
把"对模型说的话"先写成你自己看了能懂的话。写不清楚说明你也没想清楚。
注意 2:从一两个高质量示例开始
不要一上来铺 5 个示例。先找一两个理想输出,作为 Few-shot 的"标杆"。
注意 3:边用边调
第一版几乎不可能完美。准备好至少迭代 5 轮。
注意 4:保留版本
每次大改都存一份。有时候新版反而效果差,要回滚。
注意 5:考虑成本
复杂提示词每次调用消耗 5000+ token。评估清楚成本是否能接受。
9. 进一步学习
- Anthropic Prompt Library — Claude 官方提示词集
- OpenAI Cookbook — OpenAI 实战例子
- Awesome Prompts — 社区收集
- 学官方产品的 System Prompt(很多被泄露在 GitHub)
总结
- 一个完整提示词模板包含:身份 + 任务 + 约束 + 格式 + 示例
- 7 个实战模板覆盖:Code Review、意图识别、文档生成、会议纪要、SQL、内容审核、旅游规划
- Code Review 类用"严格分级 + 强调可执行"
- 提取/分类类用"严格 Schema + 多 Few-shot"
- 生成类用"完整范文 + 风格示例"
- 用户输入填空类用"模板 + 占位符"
- 实战要点:先想清楚再写、从理想输出反推 Few-shot、迭代至少 5 轮、保留版本、控制成本
- 把好的提示词当作"代码资产"沉淀到自己的库里,效率会指数级提升