RAG 提示词模板怎么设计
RAG 生成提示词要把角色、上下文、问题、输出要求四段分开写,并明确三件事:只依据给定片段作答、片段不足时说明找不到、每个事实点标注引用编号。模板结构化之后,改一处不会牵动全局,评测结果也能按版本追溯,便于判断是提示词变化还是检索变化带来的效果差异。
模板必备要素
- 角色与边界:说明助手定位与知识范围,明确不补充上下文之外的信息
- 上下文段落:用分隔标记包裹检索片段,每条带编号以便引用
- 问题段落:放改写后的独立问题,避免指代残留
- 输出要求:结论先行、注明引用编号、信息不足时的固定话术
- 输出格式:需要结构化消费时明确字段与取值约束
模板骨架
模板骨架
你是企业知识库助手。只依据下方【上下文】回答,不补充上下文之外的信息。
【上下文】
{context}
【问题】
{question}
【输出要求】
1. 先给结论,再给依据;
2. 每个事实点标注引用编号 [n];
3. 上下文不足时回答:根据现有资料无法确定。版本化管理
版本化管理
PROMPT_VERSION = "v3"
# 与评测集绑定:提示词变更需重跑生成质量评测
# 仓库记录:模板 diff + 评测结果对比常见缺陷与修改
| 缺陷 | 典型表现 | 修改方向 |
|---|---|---|
| 上下文没有编号 | 模型自造引用 | 逐条编号并在输出要求里强制标注 |
| 没给拒答出口 | 检索为空时照样编答案 | 明确写出信息不足时的固定话术 |
| 要求过长过细 | 模型忽略部分约束 | 把硬约束压到三条以内,其余移到示例 |
| 模板频繁改动 | 评测结果不可比 | 按版本号管理并记录变更原因 |
模板中的「只依据上下文」是约束而非保证:仍需生成后的引用校验与人工抽检,尤其是数字与条款类内容。
不要把检索结果拼进系统级提示词:系统提示词被视为指令,混入文档内容后模型难以区分数据与命令,容易被文档内的注入文本带偏。