AI 检索不是把资料丢进向量库:档案 RAG 真正难在这五步
用通俗语言讲清楚档案 RAG 的基础原理:切片、关键词召回、向量召回、重排、权限过滤、引用追踪缺一不可。
AI 检索不是把资料丢进向量库:档案 RAG 真正难在这五步
用通俗语言讲清楚档案 RAG 的基础原理:切片、关键词召回、向量召回、重排、权限过滤、引用追踪缺一不可。
文章属于行业研究与技术科普,不替代项目设计、合规审查或招投标技术文件;引用时应保留来源、标题和原文地址。
AI 检索不是把资料丢进向量库:档案 RAG 真正难在这五步
很多 AI 检索项目一开始都很兴奋。
把 PDF、图片 OCR、目录数据切成一段一段,丢进向量数据库,再接一个大模型。演示时问一句,模型答一段,看起来就像“档案智能化”已经完成了。
但真正到档案行业现场,问题很快出现:用户明明知道材料存在却搜不到;模型说得很像但找不到出处;同一问题不同人问,权限边界不一样;OCR 有错,模型还会顺着错下去编。
所以档案 RAG 不是“资料 + 向量库 + 大模型”这么简单。
它更像一条供水管线:水源、过滤、加压、阀门、计量、检修口都要有。向量库只是其中一个部件。

RAG 是什么,先讲白话版
RAG 的英文全称是 Retrieval-Augmented Generation,直译是“检索增强生成”。
白话讲,就是不要让大模型凭记忆回答,而是先从你的资料库里找材料,再让模型基于这些材料回答。
它分两步。
第一步是找资料,也就是 Retrieval。
第二步是根据资料写答案,也就是 Generation。
档案行业真正难的是第一步。因为档案不是普通网页,它有目录、原文、页码、权限、开放状态、审批流程、OCR 质量、版本和保管期限。
如果第一步找错了,第二步写得越流畅,风险越大。
第一步:切片不是切西瓜
很多系统把文档按固定字数切块,比如每 800 字一段。
这在普通知识库里勉强能用,但在档案里很容易出问题。
档案材料有页码、附件、表格、红头、印章、批注、目录关系。随便切,可能把一个关键日期切到上一段,把责任者切到下一段,把表格标题和表格内容拆开。
更稳的做法是按层级切片。
全宗 / 门类
└── 案卷或件
└── 原文文件
└── 页
└── 段落或版面区域
每个片段都要带元数据。
{
"chunk_id": "LZ-2021-013-P003-C02",
"archive_no": "LZ-2021-013",
"title": "某项目验收材料",
"year": 2021,
"page": 3,
"text": "验收组认为该项目...",
"ocr_quality": 0.93,
"permission_tag": "project_member",
"source_file": "scan_003.jpg"
}
没有这些字段,模型后面就很难回答“这句话从哪来”。
第二步:关键词检索不能丢
向量检索很适合处理“意思相近”。
比如用户问“那次库房改造的验收资料”,材料题名可能写的是“智慧档案库房升级项目竣工验收报告”。这时候向量检索能帮忙。
但档案里也有大量精确信息:档号、文号、年度、责任者、项目编号、保管期限。
这些信息不应该交给向量相似度去猜。它们更适合关键词检索、字段查询和 BM25 全文检索。
一个稳定的档案 RAG,通常要做混合召回。
用户问题
├── 字段查询:档号、年度、门类、责任者
├── BM25 全文:文号、题名、专有名词
└── 向量召回:同义表达、模糊描述、自然语言问题
然后把三路结果合并去重。
这就是为什么“只上向量库”不够。向量库擅长理解意思,但不擅长替代档案目录和精确字段。
第三步:重排决定谁站在前面
召回只是把候选材料捞上来,重排决定谁排在前面。
档案 RAG 的重排不能只看“相似度”。
题名命中的材料应该加分;档号或文号精确命中的材料应该加分;OCR 质量太低的片段要降权;用户权限不满足的材料要直接排除;同一案卷中的连续页可能要合并展示。
可以把重排想象成档案人员在柜台前整理材料:不是把所有看起来相关的盒子都扔给用户,而是先把最可能有用、最能解释来源、最符合权限的材料放在前面。
score = 0
score += bm25_score * 0.35
score += vector_score * 0.30
score += title_match * 0.15
score += archive_no_match * 0.10
score += ocr_quality * 0.05
score -= permission_risk * 1.00
这段代码不是要让读者照抄,而是说明一个原理:排序应该把业务规则算进去。
第四步:权限过滤必须在模型之前
这是底线。
不能先把所有片段交给模型,再提醒模型“不要说不该说的”。
模型只要看到了,就有可能在回答里泄露。正确顺序是:先判断用户权限,再决定哪些片段能进入模型上下文。
候选片段
├── 用户有权访问:进入模型上下文
├── 用户需审批后访问:提示走审批,不进入模型
└── 用户无权访问:直接过滤,不进入模型
这里要特别注意一个隐性风险:有些系统前端不展示无权限材料,但后端已经把片段发给模型了。这在档案场景里是不合格的。
权限过滤要在模型调用之前完成,并且要写日志。
第五步:答案必须带引用
档案问答不能只给一段漂亮文字。
至少要给三样东西:答案、依据、复核入口。
答案给普通用户看,语言可以通俗。
依据给档案人员看,要能回到档号、页码、片段编号。
复核入口用于人工确认,尤其是编研、著录、专题利用这类正式业务。
{
"answer": "初步判断该项目验收材料形成于 2021 年。",
"citations": [
{
"archive_no": "LZ-2021-013",
"page": 3,
"chunk_id": "LZ-2021-013-P003-C02",
"evidence": "验收组认为该项目..."
}
],
"review_required": true
}
微信公众号里看到的是代码块;工程里看到的是验收口径。
只要系统能稳定输出这种结构,后续就能做引用检查、人工复核、报告生成和错误追踪。
一个最小可行测试怎么做
不需要一上来做百万级数据。
先准备 1000 条目录、200 份 OCR 原文、50 个真实问题,就能测出很多问题。
测试集可以分成五类。
test_questions:
exact_lookup: 10 # 精确查档号、文号、责任者
semantic_lookup: 10 # 模糊描述查材料
multi_page_answer: 10 # 多页材料归纳
no_answer: 10 # 材料里没有答案,测试拒答
permission: 10 # 用户无权限,测试过滤
然后看五个指标。
查全率:该找到的材料有没有找到。
查准率:排在前面的材料是不是真的相关。
引用命中率:答案里的结论能不能回到正确片段。
拒答正确率:没有材料时会不会编。
权限拦截率:无权限材料有没有进入模型。
如果这五个指标没有数据,只看一个演示页面,很难判断系统是否真的可用。
领至科技的落地路径
领至科技做档案 RAG,重点应该放在“可验收链路”。
前端要让用户看到自然语言检索和来源卡片。
中台要处理目录、全文、向量、重排、权限和审计。
后台要能回放每一次问题的召回结果、过滤过程、模型输入、模型输出和人工修改。
运维侧要能看到索引是否更新、OCR 质量是否下降、哪些问题经常拒答、哪些材料经常被误召回。
这条链路做扎实以后,不只服务 AI 检索,也会服务未来机器人和现场智能。因为机器人调档、盘点、巡检时,同样需要准确对象、准确位置、权限边界和任务回写。
结尾:向量库只是零件,不是答案
档案 RAG 的核心,不是买哪个向量数据库,也不是接哪个大模型。
真正核心的是把档案对象、原文片段、权限规则、召回链路、引用证据和人工复核组织成一个可运行、可审计、可验收的系统。
点击文末阅读原文访问领至科技官网,后续我们会继续拆解模型评测、本地部署和 Agent 工程实践。