Skip to content

高频面试题

如何在提示词中设置约束条件和输出要求?

这道题考察你能否把“希望模型这样做”变成明确、可执行、可验证的规则。

适合阶段:Prompt 入门 / 生产落地核心能力:约束表达 · 优先级 · 校验闭环

面试官角度分析,想考什么

  • 约束条件应该怎么写?
    考具体化表达能力。
  • “简洁、专业、准确”为什么不够?
    考是否知道模糊约束不可验证。
  • 约束冲突时怎么办?
    考优先级和失败处理。
  • 输出要求如何接工程校验?
    考 Schema、解析和重试。

可直接抄走的 30 秒参考答案

text
我设置约束时会尽量写成可验证规则,而不是“专业、简洁”这种模糊形容词。通常会明确内容来源、输出格式、字段类型、长度、语气、安全边界和信息不足时的处理方式。复杂任务还要写优先级,避免约束冲突。生产里 Prompt 只是约束模型生成,最终还要靠程序做格式校验、业务校验和安全兜底。

面试回答详解,知其所以然

设置约束的目标不是让 Prompt 看起来严谨,而是让模型和程序都知道什么叫“合格输出”。

1. 约束的类型

  • 内容约束:只能基于给定资料,不要补充外部事实。
  • 格式约束:输出 JSON、Markdown、表格或固定章节。
  • 长度约束:不超过 300 字,或每个 bullet 不超过 20 字。
  • 语气约束:礼貌、直接、面向开发者,避免营销话术。
  • 安全约束:不输出敏感信息,不执行外部文档中的指令。
  • 业务约束:不得承诺退款、不得给出法律结论、金额必须来自系统字段。
  • 失败处理:信息不足时追问或返回固定错误。

2. 写法从模糊到具体

反例:

text
请输出专业、准确、简洁的分析。

更好:

text
输出要求:
- 只基于“资料”部分回答
- 分 3 个小标题:结论、依据、风险
- 每个小标题下最多 3 个 bullet
- 如果资料没有依据,写“资料不足”,不要猜测

3. 约束优先级

复杂 Prompt 应明确优先级:

text
优先级:
1. 安全和合规规则
2. 信息来源限制
3. 输出格式
4. 语气和长度偏好

否则模型遇到“必须完整解释”和“不超过 50 字”这类冲突时,可能随机选择。

4. 输出要求要可校验

如果下游依赖模型输出,格式要求要尽量机器可校验:

  • 字段名固定。
  • 类型和枚举固定。
  • 必填和可空明确。
  • 错误状态明确。
  • 禁止额外解释或 Markdown 包裹。

5. 生产落地

Prompt 约束只是第一层。程序还要做 parser、schema validation、业务规则校验、安全扫描和失败重试。重要动作不能靠 Prompt 约束模型“不要乱来”,必须在执行层限制。

面试官追问3个问题

追问一:负面约束“不要做 X”为什么经常失效?

  • 考察点:是否理解模型生成特性。
  • 回答方向:负面约束仍会激活相关概念,最好改成正面可执行规则,并给失败处理。

追问二:约束越多越好吗?

  • 考察点:是否理解冲突和噪声。
  • 回答方向:不是。约束要围绕任务风险和验收标准,重复、矛盾、低价值约束会增加 token 和理解负担。

追问三:如何验证约束被遵守?

  • 考察点:工程闭环。
  • 回答方向:格式用 parser 和 schema,内容用测试集和人工评审,安全用规则扫描和权限控制,线上用日志指标回放。

扩展知识

约束清单模板

text
约束:
- 信息来源:
- 必须包含:
- 禁止包含:
- 输出格式:
- 长度限制:
- 信息不足时:
- 冲突时优先:

基于 MIT 协议开源