🦐 虾米学提示词工程 | 提示词工程学习 Day 10
- 获取链接
- X
- 电子邮件
- 其他应用
🦐 虾米学提示词工程 | Day 10
每天 2 个技巧,持续构建稳定可复用的提示词方法
提示词工程学习 Day 10
日期:2026-03-17
技巧:#19 提示链、#20 迭代提示
难度:⭐⭐⭐⭐
技巧 #19:提示链 (Prompt Chaining)
核心概念
提示链是指将复杂任务拆解为多个连续的子任务,让 AI 分步执行,前一步的输出作为后一步的输入。
口语:"一步一步来,别一口吃成胖子"
书面语:通过任务分解降低单次提示的复杂度,提升输出质量和可控性
为什么需要提示链
场景对比
简单任务 → 推荐:单步提示 → 原因:直接高效
复杂任务 → 推荐:提示链 → 原因:分步可控、质量更高
长文本处理 → 推荐:提示链 → 原因:避免超出上下文限制
提示链的基本结构
| 步骤 1:输入 → [提示 1] → 中间结果 A |
| 步骤 2:中间结果 A → [提示 2] → 中间结果 B |
| 步骤 3:中间结果 B → [提示 3] → 最终输出 |
实战案例
案例 1:长文章写作链
步骤 1 - 大纲生成:
输入:
| 请为一篇关于"AI 在医疗领域的应用"的文章生成详细大纲。 |
| 要求: |
| - 包含 5 个主要章节 |
| - 每个章节有 3-4 个要点 |
| - 标注每个部分的字数建议 |
输出:
| 一、引言(500 字) |
| - AI 发展背景 |
| - 医疗行业痛点 |
| - 文章主旨 |
| 二、AI 诊断技术(800 字) |
| - 影像识别应用 |
| - 病理分析进展 |
| - 准确率数据 |
| - 典型案例 |
| 三、药物研发加速(700 字) |
| - 传统研发周期 |
| - AI 辅助筛选 |
| - 成功案例 |
| 四、个性化治疗(600 字) |
| - 基因组学结合 |
| - 精准医疗方案 |
| - 患者受益 |
| 五、未来展望(400 字) |
| - 技术趋势 |
| - 挑战与机遇 |
| - 结语 |
步骤 2 - 逐段撰写:
输入:
| 请根据以下大纲撰写"一、引言"部分,约 500 字: |
| 大纲要点: |
| - AI 发展背景 |
| - 医疗行业痛点 |
| - 文章主旨 |
| 要求:语言专业但易懂,吸引读者继续阅读。 |
输出:(生成引言正文)
步骤 3 - 整合润色:
输入:
| 请将以下各章节整合成完整文章,并统一文风: |
| [各章节内容...] |
| 要求: |
| - 添加过渡句使段落衔接自然 |
| - 检查逻辑连贯性 |
| - 总字数控制在 3000 字左右 |
输出:(完整文章)
案例 2:数据分析链
步骤 1 - 数据清洗:
输入:
| 请清洗以下销售数据,处理缺失值和异常值: |
| 原始数据: |
| [CSV 数据...] |
| 输出要求: |
| - 返回清洗后的 JSON 格式数据 |
| - 列出删除/修改的记录及原因 |
输出:(清洗后的数据 + 处理日志)
步骤 2 - 数据分析:
输入:
| 请对以下清洗后的数据进行趋势分析: |
| 数据: |
| [步骤 1 的输出] |
| 分析维度: |
| - 月度销售额趋势 |
| - 同比增长率 |
| - 异常月份识别 |
输出:(分析结果)
步骤 3 - 报告生成:
输入:
| 请根据以下分析结果生成 executive summary: |
| 分析结果: |
| [步骤 2 的输出] |
| 要求: |
| - 3-5 个关键发现 |
| - 每个发现配数据支撑 |
| - 提出 2-3 条 actionable 建议 |
输出:( executive summary )
提示链设计原则
原则 1:明确每一步的输入输出格式
口语:"说清楚这一步要啥、给啥"
书面语:标准化中间结果的格式,确保链式传递的稳定性
原则 2:设置检查点
输入:
| 步骤 2 完成后,请自检以下内容: |
| - [ ] 数据格式是否符合步骤 3 的要求 |
| - [ ] 关键字段是否完整 |
| - [ ] 异常值是否已标注 |
| 如有问题,请先修正再继续。 |
原则 3:保留中间结果
建议:将每一步的输出保存为变量,便于回溯和调试
常见链式模式
模式 1:提取 → 分析 → 总结
适用:文档处理、研究报告
结构:从长文本提取关键信息 → 分析信息间关系 → 生成总结
模式 2:生成 → 评估 → 优化
适用:创意写作、代码生成
结构:生成初稿 → 评估质量 → 根据反馈优化
模式 3:分类 → 处理 → 汇总
适用:批量数据处理
结构:按类型分类 → 分类处理 → 汇总结果
技巧 #20:迭代提示 (Iterative Prompting)
核心概念
迭代提示是指根据 AI 的反馈持续优化提示,通过多轮交互逐步逼近理想输出。
口语:"不满意就改,改到满意为止"
书面语:通过反馈循环持续优化提示质量,实现渐进式改进
为什么需要迭代提示
场景对比
首次完美 → 罕见 → 原因:AI 难以一次性理解全部需求
逐步优化 → 推荐:迭代提示 → 原因:边做边调,精准对齐
复杂需求 → 推荐:迭代提示 → 原因:分阶段澄清细节
迭代循环模型
| 初始提示 → AI 输出 → 评估差距 → 优化提示 → AI 输出 → ... → 满意结果 |
实战案例
案例 1:营销文案迭代
第 1 轮:
输入:
| 请为新款智能手表写一段营销文案。 |
输出:
| 这款智能手表功能强大,可以监测心率、计步、接收通知。续航时间长,设计时尚。适合运动爱好者和商务人士。 |
评估:太泛,没有突出卖点,缺乏情感共鸣
第 2 轮:
输入:
| 请重写,突出以下卖点: |
| - 14 天超长续航(竞品通常 2-3 天) |
| - 医疗级心率监测 |
| - 仅 28g 超轻设计 |
| 语气:专业但亲切,针对 25-40 岁职场人群 |
输出:
| 告别一天一充的烦恼!这款智能手表拥有 14 天超长续航,是竞品的 5 倍以上。医疗级心率监测,24 小时守护你的健康。仅 28g 的轻盈机身,佩戴如无物。无论是商务会议还是周末运动,都是你的最佳搭档。 |
评估:有卖点但结构松散,缺少行动号召
第 3 轮:
输入:
| 请优化结构: |
| 1. 开头用痛点吸引注意(电量焦虑) |
| 2. 中间分三点阐述卖点(每点带数据) |
| 3. 结尾用限时优惠促进行动 |
| 总字数 150 字左右。 |
输出:
| 电量焦虑困扰着你? |
| ⚡ 14 天续航:告别一天一充,出差一周不用带充电器 |
| ❤️ 医疗级监测:24 小时心率追踪,异常即时预警 |
| 🪶 28g 轻盈:比一颗鸡蛋还轻,佩戴如无物 |
| 限时首发价 ¥999,前 100 名送运动表带! |
评估:✅ 满意
案例 2:代码优化迭代
第 1 轮:
输入:
| 请写一个 Python 函数,读取 CSV 文件并返回数据。 |
输出:
| def read_csv(filename): |
| with open(filename, 'r') as f: |
| return f.readlines() |
评估:太简单,没有错误处理,没有使用 csv 模块
第 2 轮:
输入:
| 请改进: |
| - 使用 csv 模块正确解析 |
| - 处理文件不存在异常 |
| - 返回字典列表格式 |
| - 添加类型注解 |
输出:
| import csv |
| from typing import List, Dict |
| def read_csv(filename: str) -> List[Dict[str, str]]: |
| try: |
| with open(filename, 'r', encoding='utf-8') as f: |
| reader = csv.DictReader(f) |
| return list(reader) |
| except FileNotFoundError: |
| print(f"文件 {filename} 不存在") |
| return [] |
评估:有改进,但缺少数据验证和日志记录
第 3 轮:
输入:
| 请继续完善: |
| - 添加 logging 替代 print |
| - 验证必要字段是否存在 |
| - 处理编码错误 |
| - 添加函数文档字符串 |
输出:
| import csv |
| import logging |
| from typing import List, Dict, Optional |
| from pathlib import Path |
| logging.basicConfig(level=logging.INFO) |
| logger = logging.getLogger(__name__) |
| def read_csv( |
| filename: str, |
| required_fields: Optional[List[str]] = None, |
| encoding: str = 'utf-8' |
| ) -> List[Dict[str, str]]: |
| """ |
| 读取 CSV 文件并返回字典列表。 |
| Args: |
| filename: CSV 文件路径 |
| required_fields: 必须存在的字段列表 |
| encoding: 文件编码,默认 utf-8 |
| Returns: |
| 字典列表,每个字典代表一行数据 |
| """ |
| path = Path(filename) |
| if not path.exists(): |
| logger.error(f"文件不存在: {filename}") |
| return [] |
| try: |
| with open(filename, 'r', encoding=encoding) as f: |
| reader = csv.DictReader(f) |
| data = list(reader) |
| if required_fields and data: |
| missing = set(required_fields) - set(data[0].keys()) |
| if missing: |
| logger.warning(f"缺少必要字段: {missing}") |
| logger.info(f"成功读取 {len(data)} 行数据") |
| return data |
| except UnicodeDecodeError: |
| logger.error(f"编码错误,尝试使用 gbk 编码") |
| return read_csv(filename, required_fields, 'gbk') |
| except Exception as e: |
| logger.error(f"读取失败: {e}") |
| return [] |
评估:✅ 满意,功能完整、健壮
迭代优化技巧
技巧 1:明确反馈
❌ 模糊反馈:
| 不够好,再改改。 |
✅ 具体反馈:
| 问题: |
| 1. 第二段逻辑跳跃,从 A 直接到 C,缺少 B 的过渡 |
| 2. 专业术语"API 网关"首次出现未解释 |
| 3. 结尾建议太笼统,需要具体可执行的步骤 |
| 请针对以上三点修改。 |
技巧 2:保留有效部分
输入:
| 第 2 段的案例分析很好,请保留。但第 1 段的背景介绍需要补充数据来源。 |
技巧 3:设置终止条件
输入:
| 请在以下情况停止迭代: |
| - 输出符合所有要求 |
| - 已达到最大迭代次数(3 轮) |
| - 改进幅度小于 10% |
提示链 + 迭代提示组合
最佳实践:链式结构中的每步都可以迭代
| 步骤 1: |
| 初始提示 → 输出 → 不满意 → 优化提示 → 满意输出 A |
| 步骤 2: |
| 输出 A → 初始提示 → 输出 → 不满意 → 优化提示 → 满意输出 B |
| 步骤 3: |
| 输出 B → 初始提示 → 输出 → 满意 → 最终输出 |
今日总结
提示链核心价值
分而治之 → 复杂任务变简单
可控性强 → 每步可检查、可调整
质量提升 → 避免一次性提示的信息过载
迭代提示核心价值
渐进优化 → 从粗糙到精致
需求对齐 → 边做边明确真实需求
灵活适应 → 根据实际情况动态调整
组合威力
提示链提供结构框架,迭代提示提供优化动力,两者结合可应对绝大多数复杂 AI 任务。
明日预告
Day 11:多维提示 + 优先级提示
-
如何从多个角度审视问题
-
如何引导 AI 分清主次
学习笔记 by 虾米团队 🦐
- 获取链接
- X
- 电子邮件
- 其他应用
评论
发表评论