提示词结构
提示词结构 · 阅读后完成下方实验与检查题,再用「标记完成」记录进度。
学习目标
把一个含糊的请求改写成结构化提示词:目标、背景、输入、约束、结果格式五要素写清楚;并用同一组样例对比改写前后的行为,代替凭感觉调提示词。
问题场景
「帮我总结这段话」——每次输出的条数、格式、侧重点都不一样,没法接程序处理,也没法比较两次结果。你补一句「简洁点」,结果变短了但重点也丢了。凭感觉调提示词,永远在碰运气。
核心解释
把提示词当接口设计,五要素各司其职:
| 要素 | 回答的问题 | 示例写法 |
|---|---|---|
| 目标 | 要模型做什么 | 「从下面的介绍中提取 3 个学习要点」 |
| 背景 | 谁在用、用在哪 | 「读者是在校学习者,用于课程页摘要」 |
| 输入 | 处理哪一段内容 | 「【输入内容】……」明确标出边界 |
| 约束 | 不要做什么 | 「只提取原文要点,不要扩展,每条不超过 20 字」 |
| 格式 | 结果长什么样 | 「每行一条,以 - 开头」或「输出 JSON 数组」 |
改写前后对比:
改写前:帮我总结这段话
改写后:
目标:从下面的课程介绍中提取 3 个学习要点。
背景:读者是在校学习者,介绍来自 React 入门课程。
输入:【输入内容】本课带你从零认识组件与状态……
约束:只提取原文出现过的要点,不要扩展,每条不超过 20 字。
格式:每行一条,以 - 开头。
三条原则:
- 写清楚 ≠ 啰嗦:五要素各管一段,多余的形容词一个都不要。「认真、专业、高质量」对模型没有可执行的含义。
- 约束要可判定:「简洁点」因人而异,「每条不超过 20 字」才能被稳定执行。
- 格式跟消费方走:给程序消费就用 JSON(A09 课讲怎么校验),给人看就用列表;格式错误是最常见也最好防的失败。
示例拆解
把五要素工程化成模板函数,让提示词可测试:
function buildPrompt(
input: string,
opts: { goal: string; background: string; constraints: string[]; format: string }
) {
return [
`目标:${opts.goal}`,
`背景:${opts.background}`,
`输入:【输入内容】\n${input}`,
`约束:${opts.constraints.join(";")}。`,
`格式:${opts.format}`,
].join("\n");
}
关键点:
- 换输入不换结构:模板固定后,不同输入的行为差异才可归因于输入本身。
- 输入用【输入内容】标注边界,防止正文里的指令被当成要求(A04 课来源边界在提示词层的落实)。
- 验证方式:固定 3 个样例输入(典型、边界、异常各一),改写前后各跑一遍并排对比。一次只改一个要素,否则说不清是哪个改动起了作用。
动手任务
- 在实验区把含糊提示词补到五要素齐全,观察模拟响应如何从「自由发挥」变成「受控」。
- 给「把课程简介改写成一句话推荐语」写五要素提示词,交给同学看能否找出歧义。
- 本机固定 3 个样例,把你某个真实提示词改写前后各跑一遍,记录格式错误次数与遗漏要点的对比。
常见错误
- 堆形容词代替约束:「认真专业地总结」不可执行,等于没写。
- 输入不标边界:正文里的句子被当成指令,或要求被当成正文处理。
- 一次改五处:行为变了没法归因,回到碰运气。一次一个要素,同一组样例对比。
- 格式与消费方脱节:给程序输出散文,给人看输出 JSON 字符串,两边都不好用。
检查与复盘
自查清单:
- 能默写五要素及各自回答的问题
- 能把一段含糊请求改写成五要素齐全的版本
- 验证提示词改动时用固定样例组对比,不凭单次感觉
参考资料
- OpenAI 文档:Prompt engineering —— 官方的提示词结构建议,与本课五要素相互印证
- 智谱开放平台文档 —— 所用模型的提示词指南入口,各提供方建议略有差异
- 下一课 A08 在结构之上叠加两个工具:示例与任务拆解。
读完这一课了?
标记完成后,工作台会安排接下来的学习。