制造业的师傅们都知道,设备一停,产线等着,领导催着,维修工单堆成山,这时候最怕的就是翻手册、找图纸、问了一圈没人说得清故障代码的含义。这个大模型智能问答项目,就是冲着这个痛点去的——把分散在老师傅脑子里的经验、设备手册里的参数、历史工单里的处理记录,统一收进一个问答系统里,让维修工在现场通过自然语言提问就能拿到可执行的答案。我当时参与落地这个项目的时候踩了不少坑,从知识库搭建到检索调优都有一些值得复盘的地方,这篇就完整拆一遍,给正在做企业知识库问答的团队一些参考。
这个场景其实非常有代表性。很多人一提到大模型就想着让它写诗、写代码,但放到制造业里,它真正值钱的能力是“把知识变成生产力”。同样是Q&A,面向C端闲聊和面向产线维修完全是两码事:维修场景要的是准确、可溯源、能立刻指导动作。如果你的团队也准备在企业内部做大模型应用,尤其是知识密集但数字化基础一般的制造场景,这篇文章值得收藏。
1. 场景拆解:制造业设备维修到底需要什么样的问答系统
我一开始以为设备维修问答就是“拿一本手册喂给大模型,然后它就能回答”,真正接触了现场之后发现完全不是这个逻辑。你得先搞清楚谁在问、问什么、怎么判断答案好不好,这三件事决定了整个系统的设计方向。
1.1 三类用户、三种问法,决定系统的交互设计
制造业设备维修场景里,面向的用户大致可以分成三类,他们提问的习惯和需求都不一样。
第一类是产线操作工。他们的典型问法是“这台机床报警代码2013是什么意思”“液压站油温正常范围是多少”“更换滤芯需要停机吗”。这些问题相对简单,答案在手册里基本都有原文,但操作工往往没时间也不愿意去翻几百页的PDF。他们对系统的核心诉求是快速、准确、直接给结论。
第二类是维修工程师。他们的问题要复杂得多,典型问法是“主轴异响伴随振动值偏大,可能是什么原因”“A轴伺服报警后复位不了,除了排查电缆还能查什么”。这类问题没有标准答案,需要综合多个知识源,甚至要基于故障现象做推理。系统如果只给一段手册摘录,很难满足他们的需求。
第三类是设备管理员。他们问的是“最近一个月哪类故障发生频次最高”“某个型号的变频器更换周期怎么定”。这已经上升到设备管理和预防性维护的层面了,对系统的要求更高——不仅要知道知识,还要能结合工单数据做统计分析。
有意思的是,这三类用户对“答案好不好”的判断标准完全不同。操作工觉得“20秒内给出三步操作”就是好答案;维修工程师能容忍答案长一点,但必须包含排查路径和判断依据;设备管理员则更看重答案是否有数据支撑。设计问答系统的时候,不能只用一套Prompt和一套交互逻辑去满足所有人,而是要允许用户选择答案深度,或者通过追问来细化。
1.2 盘点知识资产:维修手册、工单记录和老师傅的经验
建问答系统之前,最重要的一步是盘点企业里到底有哪些知识可以被利用。很多制造企业做数字化转型,最不缺的就是数据,缺的是把这些数据变成“知识”的整理能力。
维修场景的知识源大概有这几类:
- 设备手册和操作说明书:包括机械部分、电气部分、液压部分,通常以PDF形式存在,页数从几十页到上千页不等。这是最基础、也最容易“喂”给系统的语料。
- 故障代码表:这是非常关键的结构化知识。每台设备都有自己的故障代码体系,代码含义、触发条件、处理建议一目了然。
- 历史维修工单:工单是宝藏,记录了真实的故障现象、排查过程和处理结果。但工单质量参差不齐,有的写得很详细,有的就一句话“更换了传感器”。
- 标准作业流程(SOP)与点检表:这部分知识决定了维修动作是否规范,问答系统在给出建议时如果能关联到对应的SOP,答案的专业度会明显提升。
- 老师傅的经验:这部分最难处理。经验往往不成文,存在于老维修工的脑子里和笔记本上。我们当时是通过访谈、整理故障案例库的方式,把口头经验转成文字条目,再归入知识库。
盘完这些资产之后,你要做一个非常重要的判断:哪些知识适合进知识库,哪些不适合。我们的原则是“有据可查的进,口口相传的先整理再进”。比如“这台设备老毛病多,经常是PLC电池没电”——这种经验可以整理成故障案例条目,但必须注明是非官方经验,系统返回答案时要加以区分,避免误导。
知识资产盘点完成后,你会得到一张知识地图,明确各类知识的格式、质量和更新频率。这一步做好了,后面知识库构建才能有的放矢,否则就是一股脑把文档丢给模型,结果检索出来一堆噪音。
2. 方案选型:为什么是RAG而不是微调,技术栈怎么搭
聊技术方案之前,先说一个常见的误区。很多团队一上来就想着“要不要微调一个自己的大模型”,这个方向在这个场景里大概率是走不通的。微调适合的是改变模型的行为风格或特定任务的输出格式,而不是给它注入新知识。制造业设备维修的知识是高度动态的——设备升级了、工艺改了、新故障出现了,如果靠微调去更新知识,每一次知识变化都要重新训练,成本和时间都不可接受。
RAG(检索增强生成)才是这个场景的正确答案。它的核心思想很简单:不把知识存在模型的参数里,而是存在外部的知识库中;用户提问时,先从知识库检索出相关内容,再让大模型基于这些检索结果来生成答案。这种方式的好处有三个:知识可以随时更新、答案可以溯源、幻觉问题能被有效控制。
2.1 RAG架构的整体流程和核心模块
一个标准的工业级RAG系统,链路大致是这样:
- 离线阶段:文档加载 → 文档解析与清洗 → 切分 → 向量化 → 存入向量数据库,同时建立倒排索引用于关键词检索。
- 在线阶段:用户提问 → 问题理解与改写 → 检索(向量检索+关键词检索) → 重排序 → 构造Prompt → 大模型生成 → 答案后处理与溯源展示。
每一步都有各自的坑。我一个个说。
文档加载与解析这一步,制造业场景里最大的问题是PDF格式五花八门。有的是文本型PDF可以直接提取文字,有的是扫描件需要OCR(光学字符识别),还有的是CAD图纸导出的PDF,里面全是矢量线段,提取出来根本没法用。我们当时用了一套组合策略:文本型PDF直接提取,扫描件用OCR服务识别,实在复杂的图纸类文档直接放弃全文识别,只录入图纸编号和标题,作为检索元数据使用。
文档清洗没做好,后面全白搭。我举个例子:设备手册里经常有“注意”“警告”“小心”这类警示词,在原文里是带有特殊格式的,提取出来之后格式丢了,文字混在一起,切分出来的片段语义就不完整。还有一些手册使用了多层级的目录结构,自动提取时目录和正文会混在一起。这些都需要清洗规则去处理,比如识别页码、去掉页眉页脚、合并因格式断裂的段落。
2.2 技术栈选择:向量模型、向量库和大模型的搭配
技术栈怎么选,直接关系到成本和效果。我分享一下我们在实际项目里用的配置,以及为什么这么选。
向量模型:选用了一个中文效果较好的通用向量模型,维度是1024维。为什么不用更大的模型?因为在制造业问答场景里,文档主要是中文技术文档,专业术语密集。通用向量模型对古文、诗词、网络用语这些可能不擅长,但技术文档属于它见得比较多的内容,效果足够。另一个考虑是硬件成本和推理速度,向量模型越大,召回越慢,在产线现场的使用体验会差很多。
向量数据库:选择了开源的Milvus。选它的原因主要有几点:一是支持混合检索,可以把向量检索和标量过滤结合起来用,比如按设备型号过滤,这个能力在制造业场景里很实用;二是社区活跃,问题好排查;三是支持常用的索引类型,比如HNSW,在千万级数据量下也能保持毫秒级召回。
大模型:当时选了通用大模型的API,没有做私有化部署。原因很简单,设备的故障代码表和维修手册属于企业的核心数据资产,直接调外部API确实有合规风险。我们是先做了数据脱敏和安全审查,再通过企业的私有网关去调用,确保请求记录可审计。如果你所在企业数据敏感度极高,那就只能考虑私有化部署开源模型,成本会高不少,但可控性更强。
工具方面还要补充一个重排序模型(Reranker)。检索阶段拿回来的top-k个片段可能顺序不合理,相关性高的混在后面,重排序模型的作用就是把它们重新排一遍,让最相关的内容排到最前面,这能显著提升答案质量。我们用的是bge-reranker-large,效果不错。
这一段技术栈选型完成后,我建议团队做一个小的效果验证:先建一个只包含2-3台设备手册的最小知识库,跑通整条链路,看端到端的回答质量和延迟。这个小验证能帮你发现很多问题,比如PDF解析失败、切分不合理、检索召回为空、大模型不按照Prompt要求回答等,远比直接铺开做要划算得多。
3. 知识库构建:从原始资料到高质量可检索语料
知识库构建是整个系统里最耗时、也最决定成败的部分。大模型问答的下限取决于检索,检索的下限取决于知识库质量。我再强调一遍:如果没有一个干净、结构化、覆盖完整的高质量知识库,后面所有环节都是空中楼阁。
3.1 文档切分策略:你是“一刀切”还是“按结构切”
文档切分是RAG里最容易被低估的技术细节。切得太粗,每个片段包含太多信息,向量化之后语义会被稀释,检索精度下降;切得太细,一个完整知识点被拆成好几段,检索结果就会出现碎片化,大模型拿到的是不完整的上下文。
我的建议是“按结构切分优先,兼顾长度”。比如设备手册通常有明确的章节结构:1. 概述 2. 技术参数 3. 安装调试 4. 操作说明 5. 维护保养 6. 故障排除。你可以先用结构识别把文档切成章、节、子节,然后在每个最小语义单元内部,如果文本还是太长(比如超过模型Token限制),再继续切分,同时保留相邻片段的重叠。
具体来说,我们当时的切分参数是这样的:最大片段长度500个字符(大约750个token),重叠长度80个字符。但这个参数并不是万能的,需要根据你的文本特点来调整。设备手册里技术参数表很多,表格被切成几块之后,每一块单独看都不完整,这时候就要对表格做特殊处理——把表格转成Markdown格式,尽量整表保留在同一个片段里。
还有一个很关键的细节:不要把目录、页眉页脚、纯空白页这些东西切进来,否则检索结果里会出现大量无意义的内容。我们当时在清洗阶段就做了规则过滤,把明显是目录的文本块(特征是连续行都只有标题和页码)直接删除,这些噪音虽然不会导致严重错误,但会稀释检索结果的密度。
3.2 元数据设计:让检索多一个“过滤器”
知识库不只是把文档切碎了存进去就完事,还要给每个片段挂上元数据。制造业场景里,这类元数据特别重要:
- 设备型号:比如某系列加工中心、某系列注塑机。有了这个过滤条件,检索时可以只搜对应设备的文档,大幅提升精度。
- 文档类型:是操作手册、故障代码表、还是工单记录。不同类型的文档在答案可信度上权重不同。
- 故障代码:故障代码表里的每个条目,都对应一个代码,这个可以直接作为标量字段。
- 更新时间:设备手册常有版本更新,检索时最好能优先返回新版本的内容。
- 知识等级:官方文档、经验整理、还是维修案例,在生成答案时可以让模型注意区分。
有了这套元数据之后,你可以实现一个非常有用的功能:用户在提问时,系统可以自动识别问题中涉及的设备型号,然后把检索范围锁定到该设备的文档子集里面。比如用户问“加工中心主轴异响怎么排查”,系统识别出“加工中心”这个设备类型,就优先在加工中心相关手册和案例里检索,过滤掉其他设备的无关内容。这一步对精度提升的帮助非常明显。
3.3 向量化与混合检索的配置细节
向量化这一步,要注意的不只是“把所有文本转成向量”,而是“如何保证不同来源的文本在向量空间里有区分度”。设备手册里的专业术语和通用中文的词向量分布差异很大,如果直接混合,可能会出现语义偏移。
我当时选择一个稳妥的做法:先做一遍文档分类,把语料分成“手册类”“故障代码类”“工单案例类”“经验整理类”四个大类,每一类单独建立索引空间。查询的时候,根据问题的类型走对应的索引。比如故障代码类问题,优先检索故障代码表;现象排查类问题,优先检索工单案例和经验整理。这个做法虽然增加了一点工程复杂度,但效果非常明显——答案的相关性和准确性都比“一个索引打天下”高出不少。
混合检索是另一个提升点。纯向量检索在制造业技术文档里有个天然弱点:专业术语的“同义改写”能力有限。比如用户说“电机不转”,手册里写的是“电动机无法启动”,向量检索可能只搜到“电机”相关的片段,未必能把“无法启动”关联起来。所以还要叠加一层BM25关键词检索,把字面匹配的结果也召回,然后通过重排序模型把两路结果合并排序。
我给大家一个参考配置:向量检索召回top-20,关键词检索召回top-10,合并之后去重,再经过重排序模型取top-5。这个参数搭配在多数场景下效果比较稳定。这里说的数量和具体业务有关,如果你的知识库规模很大,或者问题类型很杂,可以适当调整。
混合检索做完之后,还要处理一个问题:检索结果之间的上下文连贯性。有时候top-5的结果虽然每一条都相关,但它们分别来自不同的文档章节,相互之间没有逻辑关联。大模型拿到这些片段后,可能生成果断但论据不足的回答。解决方案是做一个“片段扩展”:把命中的片段所在的整节内容一并取回作为上下文。比如命中了一个故障排查步骤的一小部分,就把整个排查步骤完整拿过来,确保上下文完整。
3.4 知识库更新的“保鲜”机制
知识库如果建好之后就一劳永逸,三个月后基本就废了。制造业现场变化快,设备软件升级、维护周期调整、新的故障模式出现,都需要知识库跟着更新。
我们当时的做法是建立知识库更新的“定时+触发”双机制。定时:每周自动扫描指定目录,检查有没有新增或修改的文档,有变化就执行增量向量化并更新元数据。触发:当工单系统里出现新的故障代码或新的处理方案且被标记为“已验证”时,自动追加一条知识片段并标注更新时间。
还有一个细节点值得说:知识库更新不只是增加新文档,还要处理老文档的“下架”。设备手册的旧版本如果和新版本冲突,应该设一个“版本生效时间”字段,让系统默认检索新版本的内容,旧版本仅作为备选。否则新旧表述混在一起,大模型会无所适从。
4. 问答链路实现:Prompt设计、引用溯源与权限控制
知识库搭建完成之后,就要面对整个系统中直接和用户体验相关的部分——问答链路。这里包含Prompt工程、答案结构化、引用溯源、权限控制这些环节,任何一个做得不到位,都可能让前面的努力白费。
4.1 系统提示词:把大模型“约束”成维修顾问
很多团队写Prompt就是三行字:“你是一个助手,请根据以下内容回答问题”。这种Prompt在制造业维修场景里完全不够用。你想想,大模型如果没有约束,它会自己发挥,把搜索引擎里看到的内容或者自身训练数据里的知识混进来,甚至回答“根据我的理解”这种话。在维修场景里,这是绝对不能接受的。
我们的系统提示词大概这几个部分组成:角色定义、回答规则、输出格式、约束条件。角色定义要明确“你是某工厂设备维修知识助手”;回答规则要强调“只基于给定的检索内容回答,如果检索内容不包含答案,明确说不知道”;输出格式要定义“故障排查类回答必须包含原因分析、排查步骤、参考文档编号”;约束条件要写明“不要编造参数,不要给出超出知识库范围的维修建议”。
这里我提供一个简版Prompt模板供参考:
你是一名经验丰富的工业设备维修顾问。请基于【检索片段】中的内容回答用户问题。 要求: 1. 只使用【检索片段】提供的信息,不得使用模型自身知识补充; 2. 如果【检索片段】无法回答问题,回复“库中没有找到相关答案,请上传相应设备手册或联系设备工程师”; 3. 回答需包含具体操作步骤,步骤编号清晰; 4. 对于故障排查类问题,请按“现象确认-原因分析-排查顺序-处理建议”的结构组织回答; 5. 涉及参数(压力值、温度值、转速等),必须原样引用,不得近似改写; 6. 在回答末尾列出引用的文档编号和片段页码。这套Prompt看起来简单,但实际调优过程花了不少功夫。最大的教训是:不要写“如果不知道请回答抱歉”,因为模型会非常频繁地道歉,哪怕它其实检索到了内容。你要给它一个明确的兜底策略,而且“兜底”本身也要有实用价值——引导用户下一步怎么做,而不是干巴巴地道歉。
4.2 答案结构化与引用溯源
维修场景的答案不能是一段纯文本,最好是有结构的、可执行的。我们在设计输出格式的时候,把答案分成了三种类型,分别对应不同的输出模板:
- 参数查询类:输出“参数名称:标准值 / 允许范围 / 注意事项”,用表格呈现。
- 操作指导类:输出“准备工具 → 操作步骤(分步) → 安全注意”,步骤必须带序号。
- 故障诊断类:输出“可能原因列表(按概率排序) → 排查方法 → 处理措施 → 验证方式”。
结构化输出的好处是肉眼扫一遍就能定位到关键信息,而不是在一大段话里找重点。这个在产线现场尤其重要——维修工通常是边看手机边操作,目光在屏幕和设备之间来回切换,要是答案是一大段话,他根本来不及读。
引用溯源是这个场景的红线要求。维修人员用问答系统,是基于对系统的信任做事,如果系统给出错误建议,可能造成设备二次损坏甚至人身安全风险。所以每条回答必须标明信息来自哪份文档、哪个章节、哪一页。我们在前端展示时用了角标引用,把文档编号和页码跟在结论后面,用户可以点击查看原文。这个做法不仅提升了可信度,也大大方便了后续的知识审核。
4.3 权限控制:不同角色看到不同知识边界
企业内部的知识并不都是可以公开查询的。有些核心工艺参数,操作工不该看;有些商业敏感的设备改造方案,外部供应商不该看。所以在问答系统的设计里,权限控制不能省。
我们的做法是在知识库的元数据上增加“可见范围”字段,分为“公开”“维修组”“管理员”三个级别。检索时,系统根据当前用户的角色过滤检索范围,没有权限的知识片段直接不出现在召回结果里。这个方案比“生成之后再过滤”要靠谱,因为大模型生成阶段的不可控性太大,在输入端就把关才安心。
有一个实施细节值得注意:权限控制的粒度不要做得太细。我见过有的团队把权限切到段落级,结果检索效率大幅下降,而且管理成本很高。一般来说,做到“文档级”或“安全类别级”就够了,制造业场景里不太需要更细的粒度。
4.4 对话历史与多轮追问的处理
维修场景中,一次问答往往不够。用户会基于上一个答案继续追问,比如先问“主轴异响怎么办”,得到答案后再问“排查到轴承间隙过大,怎么换轴承”。这个多轮能力如果处理不好,第二问往往就答非所问了。
处理多轮问答的常用策略是“问题改写”。在把用户当前问题送入检索之前,先用大模型基于之前的对话历史,把当前问题改写成一个独立的完整问句。比如上面的例子,第二问“怎么换轴承”被改写成“主轴轴承间隙过大时,更换主轴轴承的具体步骤是什么”,然后拿这个改写后的问题去检索。
问题改写要注意控制历史对话的长度。我们当时的做法是只保留最近的3轮对话用于改写,超出部分直接丢弃。原因是对话历史越长,改写模型会越困惑,而且会产生内容漂移,把早期对话中的噪音引入当前检索。3轮是一个经验值,你可以根据实际效果微调。
5. 实测效果与踩坑记录:现场问答实录和常见问题排查方法
项目做完不能只看演示DEMO,要在真实产线上跑一段时间才能见真章。这一节我复盘几个典型的问答案例,再把我们遇到过的典型问题整理成一个问题排查表,给后来者一些参考。
5.1 三类典型问答的实测分析
第一个案例是操作工的高频问题:“注塑机炮筒温度偏差超过±5度,怎么处理”。系统返回答案结构为:先给出温度偏差的标准范围(来自手册技术参数表),再列出可能的偏差原因排序(加热圈老化、热电偶接触不良、温控模块PID参数漂移),最后给出对应的检查步骤。这个答案格式很理想,操作工不需要翻手册就能直接按顺序排查。这个案例背后用到的是“参数查询+故障诊断”的混合链路,检索召回的是手册的参数表和故障排查章节,重排序后取到了最相关的5个片段,Prompt结构也适配了故障类问题的输出模板。
第二个案例是维修工程师的中级问题:“CPK值不稳定且有周期性波动,可能是哪里的问题”。这个问题没有标准答案。系统检索后发现知识库中有一篇经验整理的案例,描述的场景很接近,同时召回了一条工单记录。系统结合两段内容,给出了“检查液压系统压力波动→检查伺服电机反馈信号→检查机械传动间隙”的排查顺序,并备注“本建议综合自内部维修案例,未经设备厂商确认,请谨慎参考”。这个备注是Prompt里约束的,目的就是让经验类回答和官方手册类回答分开,避免误导。
第三个案例是边界情况的处理:“某个操作工问了一个完全不在知识库里的型号”。系统兜底策略生效,回复“库中没有找到该型号的相关资料,请确认设备型号或联系设备管理员补充文档”。实测下来,这个兜底场景出现的频率比想象的高,因为制造业设备更新换代后,老型号的文档可能还是纸质的,没有归入系统。兜底策略加上“引导上传资料”的功能,能够把知识缺口暴露出来,推动知识库的持续完善。
实测下来,整个系统从提问到答案生成完毕,平均耗时在2.8秒左右,其中检索和重排序耗时占比超过一半,生成反而很快。用户反馈最满意的是引用溯源功能——他们在确认关键参数时可以直接点开原文,而不是像以前一样凭经验猜。
5.2 高频问题排查速查表:检索失败、幻觉答案、耗时过长
做这个项目半年多,团队踩了不少坑。我把典型问题整理成一张表,方便后来者按图索骥。
| 问题现象 | 可能原因 | 排查手段 | 解决建议 |
|---|---|---|---|
| 检索结果完全无关,回答答非所问 | 切分粒度过大,语义被稀释;或问题改写失败 | 检查检索片段的词嵌入相似度,看top-1结果与问题的相关性 | 调小片段长度;检查问题改写模型是否需要补充上下文 |
| 答案里出现知识库之外的参数 | 系统提示词未充分约束;检索片段里混入了网页抓取的噪音数据 | 逐条检查检索片段,确认来源;复现时查看检索命中的文档编号 | 强化Prompt约束,增加“不得使用自身知识”的字段;清洗阶段加强噪音过滤 |
| 同问题不同日期的回答差异大 | 知识库更新后旧版本未下架;向量检索排序不稳定 | 对比两次回答使用的检索片段,看是否有版本混用 | 建立版本生效时间机制,检索时按时间过滤;调优重排序参数 |
| 回答太慢,超过5秒 | 召回量太大或重排序模型推理慢 | 查看每一阶段的耗时日志,定位瓶颈在召回层还是排序层 | 降低top-k召回数量;换更轻量的重排序模型;开启向量索引量化 |
| 同一个问题多次追问后跑偏 | 多轮会话历史过长导致问题改写失真 | 检查改写后的独立问句是否偏离原意 | 限制历史轮次为3轮;增加改写结果的置信度判断,低置信度时退回单一问题检索 |
| 部分敏感数据泄漏在答案中 | 权限过滤未生效,检索范围未按角色裁剪 | 检查用户角色与知识元数据的权限字段是否匹配 | 在检索层强制加入权限过滤条件,而不是在生成后过滤 |
这张表是我们在实践中摸索出来的,不一定覆盖所有情况,但至少能帮你少走弯路。
我现在还记着一个很深刻的问题:有一次系统对“液压油更换周期”返回了两种互相矛盾的答案,一个说1000小时,一个说2000小时。排查原因发现是知识库里同时存在设备手册的旧版和新版,旧版写的是1000小时,新版因为工艺改进改成了2000小时。我们的版本生效时间机制没有完全覆盖这种情况,导致检索时新旧版本被同时召回。后来我们专门加了一个规则:当同一文档存在多个版本时,低版本号的段落默认不参加检索,除非用户显式指定要查看历史版本。这个教训告诉我们,知识库的“保鲜”不只是新增数据那么简单,更要管理好数据之间的冲突关系。
6. 还有一件重要的小事:去钓鱼、盘点知识库、搭一个回归测试集
项目上线之后,我强烈建议团队做三件“不起眼但影响深远”的事。
第一件事是建一个回归测试集。你改了一个Prompt参数、换了一个重排序模型,怎么知道效果是变好了还是变差了?不能靠感觉,要在固定测试集上跑一遍看分。我们的做法是从真实用户的问题里抽样了大约200条,覆盖三类用户和三种问题类型,每一条问题都人工标注了标准答案和关键评分点。每次系统迭代后,就在这个测试集上跑一遍,计算命中率、完整性和格式合规率。这个测试集是整个项目迭代的“方向盘”,没有它,后面的优化就是在盲人摸象。
第二件事是知识库的内容盘点要定期做。我们每季度会导出一份知识库报告,看每个设备的文档覆盖率、用户的未命中问题Top50、新增资料数量。这些数据看起来不起眼,但它们会告诉你:哪些设备的知识还是一片空白,哪些用户问的问题系统答不上来。设备维修的知识库不是建完就完了,它是需要持续运营的资产。
第三件事是线下知识库和线上问答系统的联动。我们后来把问答系统里“未命中”的问题自动导出成工单,发给对应的设备工程师,请他们补充资料或给出答案。这样形成了一个闭环:系统发现问题→人补充知识→系统更新知识库→下次回答命中。这个机制跑通了之后,整个系统的命中率在一个季度内提升了差不多10个百分点,效果非常显著。
我最后想说一个心得体会。做企业级大模型应用,最让我意外的不是模型能力本身有多强,而是“把人找对、把数据理清、把流程跑通”这三件事有多关键。我们花在清洗手册、整理工单、访谈老师傅上的精力,和对大模型及RAG的调优精力相比,大概是三比一。但恰恰是那三份的投入,决定了最后效果的上限。技术只是工具,知识才是核心资产,这个认知在整个项目做完之后变得特别牢固。如果你的团队也在规划类似的智能问答系统,我的建议是别急着上模型,先花一个月走访现场、盘点文档、弄清用户真正的提问习惯,这一个月不会白费。