设备维修现场查阅手册的示意场景,非实测项目照片

设备手册离线 RAG:先管住版本、权限和引文,再谈本地大模型

设备手册离线 RAG 的关键不是把模型搬到边缘盒子,而是让型号、版本、权限与引文贯穿索引、检索、回答和更新。本文给出可试点的系统边界与验收方法。

现场技师问“这台设备的 E42 报警怎样复位”,系统如果只给出一段流畅的操作说明,却说不清适用型号、手册版本和原文页码,这个答案就不能拿去指导维修。断网时更如此:没有在线文档可回查,错误答案可能被当成现场唯一依据。

离线 RAG 值得做的前提,是把它定义为受版本和权限约束的手册检索入口,而不是一台会聊天的设备。先让用户找到可核对的原文,再让本地模型在这些原文之上组织回答。找不到适用版本、用户无权查看,或证据不足以支持动作时,系统应当说明缺口并停止给出操作指令。没有现场设备与手册集的实测,这里也不承诺回答准确率或维修效果。

从一个错误答案倒推系统职责

同一个 E42 代码可能出现在不同系列设备中;同一型号的新旧固件,复位前提也可能不同。把所有 PDF 切成文本块再做相似度检索,会把“语义接近”误认为“操作可互换”。维修问题最先需要缩小的不是向量距离,而是设备身份、文档版本和使用者的权限范围。

一次可用的提问至少要带上现场已知的设备型号、硬件修订、固件版本、站点或资产编号。若这些信息拿不到,检索可以返回候选手册,但不能把候选手册里的步骤写成确定适用于当前设备的指令。界面应提示“需要核对铭牌或固件版本”,并让技师看到被引用文档的标题、版本、生效日期和具体段落。

这改变了系统的分工:检索器负责找“哪个版本的哪段原文”;权限层负责决定“这个人能否看到”;生成模型只负责把获准片段整理为可读答案。模型不负责猜版本,也不负责代替授权服务做决定。无论选择哪一种本地推理运行时,这条责任边界都应保持不变。

设备手册离线 RAG:先管住版本、权限和引文,再谈本地大模型:技术流程图 1

建知识包时,文本之外还要保留什么

手册不是一堆可以脱离上下文的句子。一个索引条目应保留原始文件标识、文档版本、适用机型、章节、页码或可定位锚点、语言、发布日期、访问范围,以及提取文本的校验值。回答中的“来源”应回到这些字段和原文片段,而不是只列一个 PDF 文件名;同一文件跨版本共用标题时,只有标题的引用无法让读者核对动作。

先处理文档关系,再决定切块大小

设备手册常把一个动作拆在报警表、前置安全条件和操作步骤三处。若只按固定字符数切块,报警码可能在一个块,断电警告在另一个块。更稳妥的设计是先解析目录、表格、警告框和章节层级,再按操作单元建立片段;必要时让一个片段指向同一动作的安全前提和适用条件。扫描版 PDF 还要保留 OCR 置信情况和原页图像链接,不能把识别不清的参数悄悄变成确定数值。

版本关系比“最新文件覆盖旧文件”复杂。旧设备仍可能需要旧版手册;补丁公告可能只替换某个步骤。知识包应明确每条片段的有效范围,并能把补丁与基版连接起来。安装时先验证包的来源、完整性、目标机型和版本兼容性,再切换活动索引。旧包暂存以便回退;回退不仅恢复文本,还要恢复同一版本的索引、权限标记和引文定位,否则界面可能展示旧答案却引用新页码。这是本文建议的发布合同,不是某个检索产品开箱即有的保证。

两版维护手册并排核对,图示版本和原文定位的重要性

关键词和语义检索各有位置

维修查询里有两种不同信号。“E42”“CN7”“3.2.1”这类错误码、连接器和版本号需要尽量保持精确;“压缩机启动后反复停机”这类描述则可能与手册原文用词不同,适合语义召回。SQLite 的官方 FTS5 文档提供全文查询和 BM25 排序等能力;Qdrant 的官方 Hybrid Queries展示了把多路检索结果融合的接口。它们证明“关键词 + 向量”的技术路径可实现,并不证明混合检索一定比单路检索更准。

试点时可以先把精确字段查询单独做成第一道入口,再比较关键词、向量及融合结果在真实问题集上的表现。不要先把所有分数归一化成一个“可信度”。不同检索器的分数没有天然相同的概率含义;把错误码精确命中和模糊语义相似直接加权,可能让一段语气相似但型号不符的文字排在正确手册之前。若需要融合,记录候选来源、过滤条件和排序版本,才能追查一次错误答案究竟从哪一路进入。

是否引入检索编排框架是下一层选择;LlamaIndex RAG 知识库的适用边界可以帮助判断框架能否解决实际的数据接入问题,不能替代这里的设备版本与授权过滤。

权限必须在召回之前生效

有些手册是公开用户版,有些包含维修商专属步骤,还有一些只适用于特定客户或设备序列号。若系统先从全部文档检索,再把不该展示的结果从最终答案中删掉,越权片段已经进入检索上下文,甚至可能进入模型输入。权限应是候选集的硬过滤条件,并在原文打开、引用跳转及缓存读取时再次校验。

索引条目至少需要标出组织、设备范围、文档分级和可访问角色。用户的凭证可在联网时获得,但断网期间仍要有可验证的离线授权边界,包括到期时间、撤销策略和本机密钥保护。若离线授权已过期且无法确认权限,系统应缩小到公开资料或拒绝显示受限内容,而不是因为现场断网就默认放行。Qdrant 的官方 Filtering 文档说明检索时可以应用 payload 条件;这只是实现过滤的一种能力,身份验证、权限签发与撤销仍由应用负责。

缓存同样属于权限边界。用户甲查看过受限步骤后,用户乙不能通过相同问题命中甲的答案缓存;缓存键需包含权限范围和知识包版本,缓存内容应有有效期与清理策略。管理员把某份手册撤回后,旧引用、离线副本和已生成答案的可见性都要有明确处理方式。把权限仅写进提示词,无法替代这些数据层面的检查。

回答可以很短,证据链不能省

原文定位比漂亮措辞更重要

生成模型可以帮助把三段手册内容组合成一句易读的回答,但它不应生成“手册没有说过”的操作顺序。最小回答单元应包含:适用设备与版本、建议动作、每个关键动作对应的原文定位,以及尚未确认的前提。若原文只描述故障现象而没有修复步骤,系统应停在诊断线索,不要把类似设备的步骤补上。

本地推理并不等于天然可信。llama.cpp server 文档提供本地服务和 embedding 接口,可作为某些边缘硬件上的运行时选项;具体模型是否装得下、中文手册处理效果和现场响应速度,需要在目标硬件上分别测。更重要的是,检索到的文档可能含有错误的旧指令,甚至被人为插入试图改变模型行为的文本。OWASP 的 LLM Top 10明确提醒,RAG 不能消除 prompt injection 风险。手册片段在模型上下文里应作为待引用的数据,而不是新的系统命令。

如果正在选择本地模型服务的部署方式,可另看本地 AI 私有化部署指南;模型服务如何启动,与本文的手册版本、授权和引文控制是两项不同的验收任务。

找不到适用证据时,返回缺口

拒答不是“模型失败”的同义词。至少有四种应主动停止给出维修动作的情况:型号或版本无法确认;授权不足;检索片段互相冲突;检索结果没有覆盖必要安全前提。界面可以继续给出可查阅的手册目录、缺失信息清单或转交有权限人员的路径。联网恢复后可回退云端服务,但不能把本地无法授权的内容自动发给云端,也不能把“云端回答”当作绕开本地证据缺口的方法。

知识包更新要回答“现在读的是哪一版”

边缘设备更新常被当作同步新 PDF,其实需要同步的是一组相互依赖的对象:原文、提取文本、片段 ID、向量或全文索引、权限标签、引用定位,以及生成时使用的模型与提示约束版本。更新后如果只替换原文而保留旧向量,检索可能指向已经不存在的段落;如果只更新向量不更新引文,读者也无法核对答案。

一种可审计的流程是把新知识包下载到非活动区域,校验签名和文件哈希,检查目标机型与依赖版本,再在本地构建或导入索引。通过少量已知问题做冒烟验证后,才原子切换活动包标识。若导入失败,继续服务旧包,并清晰标记其版本与更新状态;若新包上线后发现严重错误,回退到前一整包。这个流程还需要处理设备时钟不准、磁盘不足和下载中断,否则“签名有效”仍不保证切换完成。

增量更新是否值得做,取决于包体积、站点网络和索引格式。小规模试点可以先整包替换,以减少新旧索引混合的状态空间;只有在完整包更新造成不可接受的传输或停机代价时,再引入增量补丁。这样做的代价是需要额外磁盘空间保存候选包和回退包。若硬件容量不足,系统要明确选择“可回退”还是“省空间”,不能在方案图上同时承诺两者。

先验收检索,再验收生成

没有脱敏手册、标注问题和正确来源,就无法说这个系统“回答准确”。试点的第一份资产应是覆盖真实设备型号、旧版手册、冲突公告、权限差异和“手册没有答案”的问题集。每个问题至少标注应命中的原文段落、允许查看的人、必须拒答的条件。问题集不需要一开始很大,但要覆盖高风险情形;否则只测几个常见问法,容易把演示顺畅误判为可用。

先在不调用生成模型的条件下验收检索:正确文档和版本是否进入候选集,错误型号是否被排除,引用能否打开到原页,权限过滤是否在所有查询路径生效。再验收生成:回答是否只使用获准证据,是否漏掉安全前提,冲突时是否拒答。最后才在目标硬件、真实离线条件和预期并发下测资源占用、响应时间与知识包升级回滚。不同阶段的通过结果不能互相替代。

评价结果应按问题类型拆开。错误码精确查询、症状描述、跨章节问题、版本冲突和无答案问题,失败原因各不相同;一个汇总命中率会掩盖最危险的一类。还应保存失败样本的查询、过滤范围、检索候选、引用、知识包版本和模型版本,便于判断是 OCR、切块、检索、授权还是生成出了问题。没有这些记录,即使回答看起来错了,也只能靠猜测调提示词。

什么时候不该把问答放到边缘盒子上

如果手册更新频繁而现场设备长期无法获得可靠知识包,离线系统会越来越“自信地引用旧版资料”。如果某些维修动作必须由中心系统实时核对工单状态或安全许可,本地模型不能替代该确认。设备端也未必有足够存储和内存容纳手册索引与生成模型;在这样的硬件上,先做离线全文检索和文档定位,可能比硬塞入一个小模型更有用。

对只需要查错误码、型号和页码的现场,关键词检索、离线 PDF 与清晰的版本过滤就可能满足任务。引入生成模型会增加模型分发、资源占用、提示注入防护和回答审计的负担。只有读者确实需要跨段落解释,且能承担这些代价,RAG 才值得成为下一层。即便如此,最后的产品承诺也应是“让人更快找到并核对适用资料”,不是“让模型替人承担维修责任”。

参考资料

星野云联微信二维码