Skip to content

高频面试题

什么是提示词模板?如何设计可复用的提示词模板?

这题考的不是会不会拼字符串,而是能否把 Prompt 当成可维护、可测试、可版本化的工程资产。

适合阶段:Prompt 工程化 / AI 应用开发面核心能力:模板抽象 · 变量隔离 · 版本评估

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

  • 提示词模板是什么?
    考是否能把静态指令和动态变量分开。
  • 为什么不能到处用字符串拼接?
    考维护性、转义、注入风险和复用。
  • 一个好模板有哪些字段?
    考结构设计能力。
  • 模板如何上线和迭代?
    考版本管理、评估集、灰度和回滚。

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

text
提示词模板是把稳定指令和动态输入分离的一种工程化方式。好的模板会包含任务目标、角色边界、输入变量、约束、示例、输出格式和失败策略。设计时要用分隔符保护变量边界,避免用户输入污染指令;输出要能被 schema 校验;上线后要像代码一样版本管理、评估和回滚。

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

提示词模板解决的是“同类任务反复写 prompt 不一致”的问题。

1. 模板的基本结构

一个可复用模板通常包含:

  • 任务目标:模型要完成什么。
  • 角色和边界:模型扮演什么,不做什么。
  • 输入变量:用户问题、检索资料、业务参数。
  • 约束条件:语气、范围、禁止事项、证据要求。
  • 示例:可选,用来稳定风格和推理路径。
  • 输出格式:Markdown、JSON、表格或固定字段。
  • 失败策略:信息不足时拒答、追问或转人工。

2. 变量边界要清楚

坏模板常见问题是把用户输入直接拼进指令区:

text
请回答:{user_input}

更稳的做法是用分隔符和字段标记:

text
任务:基于资料回答用户问题。

资料:
<<<CONTEXT
{{ context }}
CONTEXT

用户问题:
<<<QUESTION
{{ question }}
QUESTION

这样模型更容易区分系统指令、证据和用户输入,也更方便做注入防护。

3. 模板要参数化,但不要过度抽象

可复用不等于一个模板服务所有任务。好的模板通常按任务族拆分,比如客服答疑、代码审查、数据抽取、报告总结。

变量应该是稳定的业务字段,而不是把整段 prompt 都暴露成变量。否则模板失去约束作用,变成另一种字符串拼接。

4. 输出格式要可验证

如果下游要消费结果,模板必须定义清楚输出 schema:

text
请只输出 JSON:
{
  "answer": "string",
  "confidence": "high | medium | low",
  "missing_info": ["string"]
}

实际工程里还要用 JSON schema 或解析器校验,失败后重试或降级。

5. 模板要版本化和评估

Prompt 上线后就是生产逻辑的一部分。要记录版本、作者、变更原因、适用场景、评估结果和回滚方案。

每次改模板,都应跑固定评估集,看准确率、格式合规率、拒答率、幻觉率、token 成本和延迟是否变化。

面试官追问3个问题

追问一:模板字段越全越好吗?

  • 考察点:抽象边界。
  • 回答方向:不是。字段要服务稳定性和可维护性,过度参数化会降低约束力。

追问二:模板和 Few-shot 示例是什么关系?

  • 考察点:组合能力。
  • 回答方向:Few-shot 可以是模板的一部分,用来稳定推理和输出风格,但要控制数量和覆盖范围。

追问三:Prompt 模板怎么做 A/B 测试?

  • 考察点:迭代能力。
  • 回答方向:固定输入集、指标和模型参数,对比不同模板版本的质量、成本、延迟和风险指标。

基于 MIT 协议开源