法律场景的 AI 知识库:多加一层"引用真实性核验"
法律场景里,AI 最危险的失败方式不是答不上来,而是编一个不存在的条款、法条编号或判例——而且编得完全通顺,措辞专业,格式规范。
这类错误在其他行业可能只是不准,在法律场景里代价是直接的。
所以法律场景的验收标准,要比通用做法多一整层:不只验"答得对不对",还要验"引用的东西是不是真实存在"。
---
先说清楚这不是什么
本文讨论的是法律知识的检索与整理,不是法律意见的生成。
| 可以做 | 不建议做 |
|---|---|
| 从内部制度、合同模板库里检索 | 生成具有对外效力的法律意见 |
| 整理某个主题下已有的资料 | 对具体案件给出结论性判断 |
| 合同条款的比对与差异标注 | 替代律师或法务的专业判断 |
| 检索内部历史处理惯例 | 判断某个行为是否合法 |
本文只讨论左边这一列,且全部以"输出交给专业人员复核"为前提。本文不构成法律意见。
---
为什么法律场景要多一层核验
通用的 RAG 评测(口径见开源框架 RAGAS,docs.ragas.io)量四件事:
| 指标 | 量什么 |
|---|---|
| 上下文召回率 | 该找到的资料找到了几成 |
| 上下文精确率 | 找出来的资料里相关的占几成 |
| 答案忠实度 | 每句话能不能在检索到的资料里找到依据 |
| 答案相关性 | 有没有真的在回答问题 |
这四个指标有一个共同前提:检索到的资料本身是真的。
在通用场景里这个前提成立——资料是企业自己的文档,客观存在。
但法律场景有一个特殊情况:模型在预训练时见过大量法条和判例,它有能力凭记忆生成一个"看起来像法条"的东西,而不去检索。这时候:
- 答案忠实度可能显示正常(因为它自洽)
- 答案相关性可能很高(因为它切题)
- 但引用的条款根本不存在
这就是为什么必须加第五层。
---
第五层:引用真实性核验
做法是程序化的,不靠人眼看:
一、抽取所有引用。
从输出里用规则抽出所有形如"《XX法》第 N 条""(2024)X 民终 X 号"的引用。
二、逐条回原库比对。
每一条都去检索库里查——不是查"有没有相似内容",是查"这个编号是否存在"。
三、不存在的直接拦下。
只要有一条查不到,整个回答不予返回,或明确标注"以下引用未能核实"。
四、存在的还要比对内容。
条款编号对了,内容也要和原文做比对。"不超过三十日"被复述成"不超过六十日"这类错误,语义通顺,只有程序化比对能抓住。
这四步全部是自动的。指望人工复核每一条引用,在实际使用量下不现实——而且人看多了会疲劳,会漏。
---
一个可以直接用的核验指标
在固定测试集上量这个:
引用真实率 = 可核实的引用条数 ÷ 输出中的引用总条数
这个指标必须是 100%。
不是 99%,是 100%。因为它不是一个"质量指标",是一个"能不能用"的开关——一个会偶尔编造法条的系统,专业人员用起来的成本比不用还高:他必须逐条核验每一个引用,那还不如自己查。
达不到 100% 的处理方式不是调模型,是加拦截:核验不通过的引用直接不输出。对使用者来说,少一条可用的引用只是多查一次;多一条虚假的引用则可能直接造成损失。
关于幻觉率的现实水平,Vectara 维护着一个公开的持续评测(HHEM 榜,github.com/vectara/hallucination-leaderboard),测的是有文档做依据时主流模型的表现——也就是最有利的条件。法律场景通常更难,所以工程上的拦截层不是可选项。
---
检索库的三条要求
法律知识库对资料本身的要求比通用场景高:
一、必须有明确的时效标记。
法条会修订,制度会更新。每一份资料必须标注:
- 生效日期
- 是否已被修订或废止
- 如已修订,现行版本在哪
没有时效标记的法律资料,比没有资料更危险——它会被当成现行有效的来引用。
二、必须区分"效力层级"。
法律、行政法规、部门规章、地方性规定、内部制度——层级不同,适用关系不同。检索结果必须带上层级信息,否则使用者无法判断冲突时该以哪个为准。
三、内部惯例要和外部规范分开存。
"我们公司以前是这么处理的"和"法律是这么规定的"是两回事。混在一起检索,会导致内部惯例被当成规范引用。
建议做法:两个库分开,检索结果明确标注来源类型。
---
输出形态:三条硬要求
一、每条结论必须带可点击的原文引用。
不是"根据相关规定",是具体到哪一份文件的哪一条,并且能点开看原文。
二、找不到依据时必须明确拒答。
标准措辞应该是"在现有资料中未找到相关规定",而不是根据常识推理一个答案。
三、绝不使用结论性表述。
| 不该这么说 | 应该这么说 |
|---|---|
| "这个条款是无效的" | "以下规定与此条款相关:……(原文)" |
| "对方构成违约" | "合同第 X 条约定:……(原文);履行记录显示:……" |
理由和金融场景一样:前者是替专业人员做了判断,后者是给他提供了判断材料。责任归属完全不同。
---
一份上线前自检表
- [ ] 引用真实率在固定测试集上达到 100%
- [ ] 核验不通过的引用会被程序拦下,不会输出
- [ ] 每份资料都有生效日期和现行状态标记
- [ ] 效力层级信息随检索结果一起返回
- [ ] 内部惯例与外部规范分库存放且标注来源
- [ ] 所有输出都带可点击原文链接
- [ ] 找不到依据时的拒答措辞已固定,并测试过
- [ ] 输出中不出现结论性表述(有测试用例验证)
第一条和第二条不满足,不要上线。其余各条不满足,会持续产生返工。
---
相关阅读
- 企业知识库怎么做,才不会变成资料坟场
- 企业 AI 的数据治理:治什么、治到什么程度、谁来治
- 企业 AI 项目怎么验收:七层验收标准与证据要求
- 企业第一次做 AI,怎样选对项目并设计可退出的试点
---
*本文说明的是方法与判断标准,不代表任何未公开项目的实施细节,不构成法律意见。文中引用的开源评测框架与公开榜单,出处已在正文标明,读者可自行核验。具体法律问题请咨询执业律师。*