模板占位符设计是什么
提示模板把可变部分抽成占位符:命名语义化、区分必填与可选、给默认值与类型。设计得好不好,直接决定模板能不能长期维护——用 {{a}}、{{1}} 这类位置式占位时,过几个月没人说得清哪个变量对应什么,改一处要在所有调用方里找。占位符本质是模板与调用方之间的接口契约,接口变更的纪律和函数签名一样严。
基本信息
| 适用平台 | 应用侧模板引擎(Jinja2、Handlebars 等)或框架自带的提示模板机制 |
|---|---|
| 命名规则 | 语义化命名,如 {{source_text}},避免 {{a}}、{{1}} 式占位 |
| 必填与可选 | 必填显式声明;可选项带默认值,如 {{tone | 默认: 正式}} |
| 类型标注 | 注明文本、列表或枚举,渲染层按类型校验与转换 |
典型使用场景
- 多业务线共用模板:不同调用方传入不同变量值,模板本身保持不变
- 翻译与改写服务:目标语言、风格、术语表作为可配项
- 抽取任务:待处理文本作为必填变量,字段清单作为可选变量
- 批量任务:列表类变量按行展开,需在渲染层做长度与条数校验
- 模板复用:把稳定部分沉淀为公共片段,减少重复维护
模板示例
模板示例
# 任务:将以下内容翻译为 {{target_lang}}(必填,枚举)
# 风格:{{tone | 默认: 正式}}
# 术语表:{{glossary?}} # 可选,缺省时不出现该行
# 输出格式:{{format | 默认: 纯文本}}
# ---
# {{source_text}} # 必填,超长时由渲染层截断并记录
# 说明:变量清单同步维护在接口文档中,新增必填变量需更新全部调用方占位符字段设计
| 字段要素 | 作用 | 设计要点 |
|---|---|---|
| 名称 | 让调用方与维护者理解含义 | 语义化、全小写下划线分隔 |
| 必填标记 | 区分缺失时是报错还是用默认值 | 必填缺失一律报错,不静默变空串 |
| 默认值 | 减少调用方重复传参 | 默认值写在模板里,不散落在代码中 |
| 类型 | 决定渲染方式与校验规则 | 文本、列表、枚举分别标注 |
| 长度上限 | 控制 token 与注入面 | 渲染前截断并记录原文长度 |
变量值不要直接拼接进指令区:文本类变量应放入明确的数据段(带分隔标记),否则用户内容里的语句会被模型当作指令执行。
新增必填变量属于不兼容变更:所有调用方更新完成后模板才能上线,否则线上渲染直接报错。