跳转至

事实与知识:如何写“可核查/可溯源”的 Prompt

事实类输出最致命的缺陷不是文笔差,而是“一本正经地胡说八道”。当你要求模型生成非虚构内容时,Prompt 必须像一份严苛的审计合同:不知道就闭嘴,有结论必给凭证,有冲突必须摊牌

章节插图占位:证据矩阵与审计账本

你现在的痛点与本章交付物

你卡在哪:你喂给模型一堆文档,让它写总结,结果它把文档里没有的“常识”混了进去;或者文档里明明有两个数据打架,它却自作聪明地取了个平均值,把你坑了。

本章能救你:我们将建立一套强制性的“审计规则”,剥夺模型“脑补”的权力,逼它做一个诚实的搬运工。

交付物清单: - 一套“拒答/追问/标注不确定性”的通用指令块。 - 一个标准化的证据矩阵模板(结论、证据、来源、冲突,一次对齐)。 - 一个不可妥协的冲突处理策略。 - 一份发布前自检清单,覆盖文字幻觉与图片乱码。

三条铁律:安全出口、审计账本、冲突并列

  1. 安全出口(未知出口):材料没提就是没提。禁止模型调用“训练数据”来补全常识。如果输入材料是空的,输出也必须是空的(或报错),绝不能是编造的废话。

  2. 审计账本(证据矩阵):任何一个关键结论,必须能追溯到输入材料里的具体位置(行号、段落、片段 ID)。找不到出处的结论,直接视为幻觉。

  3. 冲突并列:当来源 A 说涨了,来源 B 说跌了,模型绝对不能自己决定谁对。它的任务是把“A 说涨,B 说跌”这个事实摆在你面前,由你来裁决。

文本生成:拒答、追问与不确定性标注

把“安全出口”写进 Prompt,是防幻觉的第一道防线。你需要明确告诉模型:回答不了不是无能,编造答案才是严重的失职。

模板 1:通用事实审计规则(复制即用)

把这段话贴在你任何处理事实的 Prompt 顶部:

事实规则:
1) 严格基于“输入材料”回答;禁止引入任何外部常识或训练数据进行补全。
2) 若材料不足以支撑结论:必须输出“材料未提及/无法确认”,并列出具体的“缺口字段清单”。
3) 若存在冲突:必须并列展示冲突来源与差异点;禁止擅自取平均、调和或选择其一。
4) 对任何推断内容必须标注不确定性:高/中/低,并说明不确定性来源(如:数据缺失/样本不足/口径不一致)。

证据矩阵模板(你的核心交付物)

别再让模型给你吐“引用列表”了,那东西没法核对。你要的是“结论的审计账本”。表填不出来,就说明结论是编的。

模板 2:标准证据矩阵

要求模型按这个格式输出。只替换 <...> 部分,严禁新增列名,严禁修改表头。

| claim_id | 结论(命题一句话) | 证据(原文最小单元) | 来源标识(文件名/段落ID) | 冲突/反例 | 不确定性 |
| ---: | --- | --- | --- | --- | --- |
| 1 | <核心结论> | <对应的原文摘录> | <来源ID> | <无则留空> | 高/中/低 |

配图提示词:审计账本的隐喻(无文字)

证据矩阵本质是审计。配图不要画复杂的表格文字(模型画不出来),画“账本 + 标签 + 勾叉”的视觉隐喻。

image_prompt:
flat 2D vector illustration, minimalist ledger book and stacked cards representing evidence units, simple tags and checkmark/cross icons as shapes,
blue and white palette, solid white background, clean composition, high contrast, no text

negative_prompt:
text, letters, numbers, watermark, signature, handwriting, photorealistic, 3d render, gradients, shadows, blur, messy background, humans, faces

params:
aspect_ratio=16:9, quality=high

冲突证据处理策略(别让模型当裁判)

当来源冲突时,Prompt 里要明确模型的职责边界:它负责“整理案卷”,不负责“宣判”。

模板 3:冲突处理专用指令

冲突处理规则:
1) 如果同一结论出现多个互相矛盾的来源:按来源分行并列展示。
2) 每条冲突必须补一列“差异原因猜测”(如:口径不同/时间窗不同/样本范围不同),但必须标记为“推断”。
3) 只输出整理结果;不要给最终裁决建议(除非我显式要求)。

命令行实战示例

目标:把一段混乱的输入材料,整理成一张干净的证据矩阵,并自动吐出“缺口清单”。

请在终端运行以下命令(使用任何可脚本化的模型调用入口,把输出落盘为文件):

cat <<'PROMPT' | <LLM_CLI> > evidence_matrix.md
任务:基于输入材料,生成一张证据矩阵(Markdown 表格)。

硬约束:
1) 仅基于输入材料回答;禁止外部补全。
2) 缺信息就输出‘材料未提及/无法确认’,并列出缺口字段清单。
3) 发现冲突就并列,不要调和。

输出格式:
1) 先输出证据矩阵表格(列名固定:claim_id/结论/证据/来源标识/冲突/不确定性)。
2) 再输出‘缺口字段清单’(若为空则输出‘无’)。

输入材料:
【来源A】2023年Q1营收增长20%,主要得益于云服务。
【来源B】2023年第一季度营收持平,受限于硬件供应链短缺。
【来源C】新产品发布于4月,不在Q1统计范围内。
PROMPT

运行后,检查 evidence_matrix.md。你应该能看到关于营收增长的冲突被清晰地列了出来,而不是被抹平成“增长约10%”。

图片生成:事实类图片的核心是“禁止文字”

图片模型最常见的事故就是生成“伪文字”或者“外星文”。事实类图片的 Prompt 只有一个原则:把文字从生成任务里彻底剔除。先生成干净的底图,文字留给 PPT 或者 Sketch 去加。

图片 Prompt 示例:技术示意图底图

image_prompt:
clean minimalist technical diagram, flat vector style, blue and white palette, solid white background,
abstract server blocks and database cylinders connected by arrows showing data flow, simple geometric data packets, high contrast

negative_prompt:
text, letters, numbers, watermark, signature, handwriting, blurry, noisy background, photorealistic, 3d render, gradients, shadows, humans, faces

params:
aspect_ratio=16:9, quality=high

复现检查清单(发布前必核)

别信誓旦旦地发布,先过一遍这个清单:

  1. 拒答测试:问一个材料里绝对没有的问题,模型是老实说“不知道”,还是开始编故事?
  2. 来源核对:随机抽 3 条结论,顺着来源标识找回去,能找到原文吗?
  3. 冲突暴露:材料里的矛盾点,是并列展示了,还是被模型悄悄“平均”了?
  4. 不确定性:推断出来的内容,有没有标注“不确定”?
  5. 图片净化:生成的示意图里,有没有奇怪的字母、水印或者签名?

常见陷阱(失败样本)

1) 强迫式幻觉

  • 现象:你问“Q4 数据是多少”,材料里只有 Q1-Q3,模型却根据趋势给你编了个 Q4。
  • 根因:Prompt 暗示了“一定有答案”,且没给“不知道”的选项。
  • 修复:加入“若材料不足必须拒答 + 缺口字段清单”。

2) 伪造引用

  • 现象:看起来有理有据,引用了 [Doc 1, p.12],但那页根本没这句话。
  • 根因:Prompt 要求“给来源”,但没强制“来源必须来自输入材料”。
  • 修复:约束“来源标识必须是输入材料中显式存在的标识,否则拒答”。

3) 图片外星文

  • 现象:仪表盘图片里充满了像英文又像甲骨文的乱码。
  • 根因:Prompt 里写了 dashboard with labeltext
  • 修复:Negative prompt 必须包含 text, letters, numbers。只要底图,不要字。

下一章:03-argument.md