什么是 对话模板(ChatTemplate)?
对话模板(ChatTemplate)是可复用的角色化消息模板,用于把变量、指令、示例、检索上下文和输出要求转换为提供给语言模型的结构化聊天消息。
工作原理
对话模板比原始提示词字符串更严格。它保留消息角色,把系统指令和用户输入分离,显式定义变量,并控制检索上下文或示例插入的位置。这一点很重要,因为现代 LLM 应用经常依赖稳定的消息结构来保证安全、评估、结构化输出和可复现性。生产环境中,对话模板应像代码一样做版本管理和测试,因为措辞、顺序或上下文位置的微小变化都可能影响正确性、成本和安全。
主要特点
- 角色感知结构:组织 system、user、assistant 和 tool 消息,而不是生成一个扁平提示词
- 显式变量:声明用户输入、检索上下文、示例、约束和 Schema 的插入位置
- 可复用性:让团队在请求、环境和模型供应商之间使用同一提示词契约
- 便于评估:支持提示词版本管理、回归测试和黄金数据集对比
- 安全敏感:可编码拒答规则、引用要求、输出约束和上下文边界
常见用途
- 统一 RAG 答案生成步骤使用的提示词
- 把检索上下文注入受控区块,并附带引用要求
- 将系统和开发者指令与用户提供文本分离维护
- 通过显式 Schema 和校验要求生成结构化 JSON 输出
- 在生产发布前用已知样例测试提示词变更
示例
loading...
Loading code...常见问题
对话模板和提示词有什么区别?
提示词可以是任意指令字符串。对话模板是可复用结构,定义角色、变量、上下文位置、示例和输出要求,把提示词变成显式契约。
为什么对话模板需要版本管理?
提示词措辞和消息顺序会改变模型行为。版本管理可以对比结果、回滚退化、审计生产行为,并把答案质量关联到具体模板版本。
什么内容不应盲目放入对话模板?
不可信用户输入和检索内容不应无边界插入。模板应清楚区分指令和数据,以降低提示词注入风险并保持输出可靠性。
对话模板能支持结构化输出吗?
可以。模板可以包含 JSON Schema、字段说明、示例和校验规则。但应用仍应校验模型响应,因为提示词指令本身不是硬保证。