核心要点
常见组成部分:角色/人设、任务指令、上下文背景、输入数据、约束规则、输出格式、示例(Few-shot)、思维引导。
各部分分工明确:角色定基调、指令说目标、上下文给背景、数据是处理对象、约束控边界、格式定结构。
编排有顺序:一般「角色 → 任务 → 上下文 → 约束 → 示例 → 输入数据 → 输出要求」,并用分隔符隔开各段。
总原则:清晰具体、给示例、定格式、分隔清楚。
标准回答
Prompt 的常见组成部分
- 角色 / 人设(Role):告诉模型「你是谁」,如「你是一名资深法律顾问」。它能设定语气、专业领域和回答风格,常放在 System 消息里。
- 任务指令(Instruction):明确「要做什么」,是 Prompt 的核心。要用动词清楚描述目标,如「总结」「翻译」「分类」。
- 上下文 / 背景信息(Context):提供完成任务所需的背景,如业务规则、领域知识或对话历史,帮助模型理解场景。
- 输入数据(Input):本次要处理的具体对象,如一段待总结的文章、一条用户评论,通常用分隔符与指令隔开。
- 约束与规则(Constraints):对输出的限制,如语气、字数、语言、禁止项(「不要编造」「只用中文」)。
- 输出格式(Output Format):规定结果形态,如 JSON、Markdown 表格、固定模板,便于程序解析与展示。
- 示例(Few-shot):给出若干「输入-输出」范例,让模型照样仿写,对格式要求严格的任务尤其有效。
- 思维引导(Reasoning):引导模型先推理再作答,如「请分步骤思考(CoT)」,提升复杂任务的准确率。
编排顺序
常见顺序为:角色 → 任务指令 → 上下文 → 约束规则 → 示例 → 输入数据 → 输出格式要求。把稳定不变的设定(角色、规则)放在前面,把每次变化的输入数据放在靠后位置,并用清晰的分隔符(如 ### 标题、三引号、XML 风格标签)把不同部分隔开,避免模型把背景当成要处理的数据。
四条核心原则
- 清晰具体:指令越明确,歧义越少,结果越稳定。
- 给示例:用 Few-shot 范例对齐格式与风格。
- 定格式:显式规定输出结构,方便下游解析。
- 分隔清楚:用分隔符区分指令、数据与示例,减少混淆。
常见误区
⚠️ 常见踩坑
误区一:把背景信息、待处理数据和指令混在一段里不加分隔,模型容易把「数据」误当成「指令」执行。误区二:以为加一句「你是专家」就能提升效果,但缺乏清晰任务描述和输出约束时角色设定收效甚微。误区三:所有部分都堆满,让 Prompt 又长又乱——并非每个任务都需要全部要素,简单任务一条清晰指令即可,要素应按需取用。
追问
追问 1:System、User、Assistant 三种消息角色和 Prompt 结构是什么关系?
在对话式 API 中,Prompt 的各部分会按角色分配到不同消息里:System 消息放角色设定、全局规则与输出约束等稳定信息;User 消息放本轮任务指令与输入数据;Assistant 消息可放历史回复或 Few-shot 示例中的「示范输出」。合理利用三种角色,相当于把 Prompt 结构在多消息间做了职责划分,让稳定设定与变化输入分离,更易维护。
追问 2:为什么要用分隔符把不同部分隔开?常见的分隔方式有哪些?
分隔符能帮模型明确区分「这是指令、这是背景、这是要处理的数据」,避免把输入内容误当成指令执行(也能降低提示注入风险)。常见方式有:Markdown 标题(### 任务、### 数据)、三引号或代码围栏包住数据、以及 XML 风格标签如
追问 3:是不是每个 Prompt 都要包含全部这些部分?
不是。这些部分是「可选组件库」,应按任务复杂度取用。简单任务(如翻译一句话)只需清晰的任务指令加输入数据即可;当任务对格式、风格或准确率要求高时,再逐步加入角色设定、约束、Few-shot 示例和思维引导。原则是「够用就好」,过度堆砌反而拉长上下文、增加成本并稀释关键指令。
🔗 相似问题
同一考点的不同问法,面试官可能换着问,一起刷更稳
没找到想看的面试题?把你想看的告诉我们 →
延伸学习
按主题分类的相关资源,便于系统复习