防止模型幻觉的提示词设计是一门精细工程。除了"不瞎编/不跑偏/不发疯"这类口语化约束,以下是经过验证的专业级防幻觉提示词技术,按层级分类:
一、基础约束层(必须项)
| 类型 | 提示词示例 | 作用机制 |
|---|
| 知识边界声明 | "如果你不确定,明确说'我不知道'而非猜测" | 降低虚假自信 |
| 证据链要求 | "每个结论必须附带来源或推导过程" | 强制可验证性 |
| 时效性标注 | "知识截止日期后的事件,标注为'超出知识范围'" | 防止时间穿越幻觉 |
| 数值精确性 | "数据必须注明统计口径和日期,禁止四舍五入模糊化" | 减少数字捏造 |
二、认知校准层(高阶)
| 技术 | 提示词模板 | 适用场景 |
|---|
| 置信度显化 | "用[高/中/低]标记每段信息的确定性,低置信度内容需说明缺失什么证据" | 医疗、法律、金融 |
| 反事实检验 | "在回答前,先列出3个可能推翻你结论的反面证据" | 复杂推理、诊断 |
| 多源交叉 | "对同一事实,提供至少两个独立来源的印证,冲突时标注分歧" | 新闻、研究综述 |
| 逐步外显 | "展示你的思考链,每步标注'观察/推断/假设'" | 数学、逻辑题 |
三、领域专用层(场景化)
技术文档/代码
"禁止引用不存在的API、版本号或文件名。提及具体函数时,必须说明来自哪个库/头文件。"
医疗/健康
"区分'临床证据支持'、'理论推测'和'传统经验'三类信息,后两类需明确标注。"
法律/合规
"引用法条时必须给出具体条款编号,无法确定时说明'需核实最新修订'。"
历史/学术
"区分一手史料、二手研究和通俗解读,后者不得作为事实依据。"
四、负向约束层(禁止清单)
| 禁止行为 | 提示词表达 |
|---|
| 填补信息缺口 | "禁止用'可能/大概/通常'来掩盖信息缺失" |
| 过度泛化 | "禁止从单一案例推导普遍规律" |
| 因果倒置 | "禁止将相关性直接断言为因果性" |
| 权威嫁接 | "禁止将A领域的专家观点套用到B领域" |
| 语言幻觉 | "禁止生成看似专业但实际无意义的术语堆砌" |
五、系统级防护(架构设计)
1. 检索增强验证(RAG 自检)
"在生成回答前,先执行:
1. 提取关键事实实体(人名/地名/数据/事件)
2. 检查这些实体是否出现在提供的上下文中
3. 若缺失,标注为'未检索到'而非脑补"
2. 多模型交叉验证
"对关键结论,用不同角度重述两次,检查逻辑一致性。若矛盾,退回重新分析。"
3. 时间戳冻结
"所有知识以[具体日期]为准,后续发展需用户补充或明确标注为未知。"
六、中文语境优化表达
| 口语化约束 | 专业化升级 |
|---|
| 不瞎编 | "无依据时主动承认知识盲区" |
| 不跑偏 | "严格限定在用户提供的问题域,不扩展讨论范围" |
| 不发疯 | "保持逻辑一致性,拒绝自相矛盾的推论" |
| 不乱说 | "区分事实陈述、观点引用和推测性假设" |
| 不硬凑 | "信息不足时暂停求解,要求补充而非拼凑答案" |
七、完整防幻觉提示词模板(可直接用)
## 认知安全协议(Hallucination Prevention Protocol)
### 1. 知识边界
- 明确区分:已知事实 / 合理推断 / 不确定猜测
- 对后者必须标注置信度并说明依据缺失
### 2. 证据要求
- 每个具体数据需附带:来源 / 时间 / 上下文
- 禁止"常识性"模糊表述,量化所有可能
### 3. 自检流程
生成回答前,先执行:
- [ ] 关键实体是否在上下文中存在?
- [ ] 数值/日期是否有明确出处?
- [ ] 逻辑链条是否无跳跃?
- [ ] 是否存在相反证据被忽略?
### 4. 异常处理
若触发以下情况,暂停并请求澄清:
- 信息冲突无法调和
- 关键数据缺失且无法推断
- 问题超出知识截止日期
### 5. 输出格式
- 高置信度:[事实](来源)
- 中置信度:[分析](基于...推断)
- 低置信度:[推测](缺乏...需核实)
关键洞察
最有效的防幻觉策略不是禁止,而是显化:
- 不是"不要瞎编",而是"不确定时明确说不知道"
- 不是"不要跑偏",而是"每步说明与问题的关联性"
- 不是"不要发疯",而是"展示思考链供用户检验"
这种设计将幻觉从隐性错误转化为显性标注,让用户能够自主判断信息可靠性。