参考对象:技术写作风格参考《连线》杂志的深度报道,力求将复杂的技术方案用场景化的语言呈现,避免干巴巴的功能罗列。
凌晨两点,河北某建筑工地的探照灯下,一台卡特彼勒320D液压挖掘机发出刺耳的异响后彻底熄火。机主老李蹲在泥地里,手机相册里存着几十张故障部位的照片——发动机舱里那根疑似断裂的管路、仪表盘上闪烁的故障码、液压油缸上那道可疑的油渍。
他打开一个问答界面,上传照片,输入:"发动机启动后异响,液压压力表指针抖动,可能是什么问题?"
三秒后,屏幕上跳出答案:
> <strong>故障定位</strong>:液压泵吸油管路进气导致气蚀
>
> <strong>检查步骤</strong>:
> 1. 检查油箱油位(正常应在油标2/3处)
> 2. 查看吸油滤芯是否堵塞
> 3. 检查管路接头密封性
>
> ![故障部位示意图:液压泵吸油口位置及检查要点]
这不是科幻场景。这是基于RAG(检索增强生成)技术构建的挖掘机维修图文问答系统,正在全国200万台液压挖掘机的维保场景中悄然落地。
维修现场的痛点:老师傅的脑袋装不下所有故障
全国挖掘机保有量约200万台,每台设备可能遭遇的故障涵盖发动机、电器、液压、工作装置等数百个品类。传统维修依赖"老带新"模式——经验丰富的老师傅凭记忆和经验判断故障,但这种方式有三个致命短板:
第一,知识传承断层。 一位资深维修技师可能经历过上千次维修,但他的经验只存在于脑子里。当他退休或跳槽,这些知识就跟着消失了。
第二,故障覆盖不全。 再厉害的师傅也不可能记住所有机型的所有故障。遇到冷门机型或罕见故障,往往只能试错。
第三,培训周期过长。 一个新人从学徒到独当一面,通常需要3-5年。而挖掘机维修行业人才缺口持续扩大,等不及这么长的培养周期。
某工程机械租赁公司的技术总监算过一笔账:一台挖掘机停工一天,直接损失租金约3000元。如果故障判断失误、反复拆装,停工时间可能从1天拖到1周。
时间就是金钱,在维修现场不是比喻,是血淋淋的成本。
方案核心:让AI”看懂”维修手册里的图纸
这个系统的核心挑战在于:如何让AI不仅能读懂文字,还能在回答中准确展示故障部位的示意图、拆解图、电路图。
传统RAG系统处理的大多是纯文本。但挖掘机维修手册是典型的"多模态"文档——文字描述旁边往往配有详细的结构图、液压原理图、电路接线图。用户问"回转马达怎么拆",最好的回答不是一段文字,而是一张标注了螺栓位置和拆卸顺序的示意图。
技术团队采用了一套分层处理方案:
第一步:从PDF中”抠”出图片
维修手册通常是PDF格式。系统需要从中提取图片,并与对应的文字内容建立关联。
这里有个技术细节:PDF里的"图"不一定是独立的图像文件。有些图是矢量图形,有些是文字+线条的组合,还有些是扫描件嵌入的位图。直接用常规的PDF图片提取工具,要么漏掉矢量图,要么把页眉页脚的装饰线条也当成图抓出来。
解决方案是<strong>基于坐标的区域截取</strong>。针对标准化排版的维修手册,预先定义图片所在的坐标区域(比如页面右侧中间区域),直接从该区域截取像素。这种方式不受PDF内部图像对象表示形式的限制,可以捕获矢量图形和复合元素。
“`python
def extract_images_from_maintenance_pdf(pdf_path):
doc = fitz.open(pdf_path)
# 根据文档格式定义的图片区域坐标
image_rect = fitz.Rect(400, 160, 750, 320) # 右侧中间区域
for page_index, page in enumerate(doc):
# 直接从固定区域截取图片
pix = page.get_pixmap(matrix=fitz.Matrix(2, 2), clip=image_rect)
if is_valid_image(pix):
# 保存图片并建立与文本的映射关系
save_image_and_mapping(pix, page_index)
“`
第二步:建立图文关联的知识库
提取的图片需要与对应的故障描述、维修步骤建立关联。系统采用以下策略:
– <strong>非结构化文档</strong>(维修手册PDF):按段落分块,将图片链接嵌入到对应的文本块中
– <strong>结构化数据</strong>(维修案例Excel):每行一条案例,包含故障现象、原因、解决方案字段,图片作为附件关联
最终形成一个包含500+维修案例的知识库,每个案例都包含文字描述和对应的示意图。
第三步:两阶段检索,精准召回
用户提问后,系统不是直接把问题扔给大模型,而是先检索相关知识:
第一阶段:向量相似度初筛
将用户问题转化为向量,在知识库中召回Top 20最相关的文本块。这里使用通义千问文档嵌入模型,针对中文工程机械领域的术语进行了优化。
第二阶段:语义重排序
初筛的20个结果中,可能有些只是关键词匹配但语义不相关。使用重排序模型(Reranker)对结果进行二次排序,选出最相关的Top N个文本块。
第四步:生成带图的回答
将检索到的文本块(包含图片链接)输入大模型,生成最终回答。关键技巧在于<strong>提示词工程</strong>——告诉模型只使用最相关文本块中的图片,并将图片链接转换为Markdown图片语法显示。
“`
提示词模板:
请参考以下内容,仅使用第一个最相关文本块中的图片链接。
如果在第一个文本块中看到"图片链接:",将其转换为Markdown图片语法。
请忽略其他文本块中的图片链接。
用户问题:{question}
相关内容:
{retrieved_context}
“`
这样,用户看到的回答就是图文并茂的——既有文字解释,又有故障部位的示意图。
落地效果:从”凭经验猜”到”按图索骥”
某工程机械维修服务商在部署该系统后,跟踪了3个月的使用数据:
| 指标 | 部署前 | 部署后 |
|---|---|---|
| 首次故障判断准确率 | 约60% | 约85% |
| 平均故障排查时间 | 4.2小时 | 2.1小时 |
| 返修率(误判后二次维修) | 15% | 5% |
| 新人独立上岗周期 | 6个月 | 2个月 |
更直观的改变发生在维修现场。一位从业15年的老师傅说:"以前遇到没见过的故障,我得翻纸质手册、打电话问厂家、甚至上网搜论坛。现在直接拍个照、描述一下现象,AI能把相关的图纸和步骤都调出来。我不是被替代了,是多了个24小时在线的助手。"
对于新人来说,这个系统更像是一个"随身师傅"。遇到不懂的故障,不用再硬着头皮问老师傅(有时候还不好意思问太多次),可以直接查系统,看到图文并茂的拆解步骤。
技术延展:这套方案还能用在哪?
挖掘机维修只是工业领域知识问答的一个缩影。类似的场景还有很多:
– <strong>汽车4S店</strong>:技师查询维修手册,需要看到发动机舱部件位置图
– <strong>医疗设备维护</strong>:工程师排查CT机、MRI设备故障,需要电路图和拆解图
– <strong>航空维修</strong>:机务人员查询飞机部件维修指南,需要结构示意图
– <strong>工厂设备运维</strong>:操作工查询生产线设备故障,需要机械结构图
这些场景的共同点:<strong>故障描述往往难以用文字精确表达,一张图胜过千言万语。</strong>
技术实现上,这套方案可以迁移到任何包含图文混合内容的垂直领域。核心在于:
1. <strong>文档预处理</strong>:针对特定格式的文档,定义图片提取策略(坐标截取、对象识别、OCR等)
2. <strong>知识库构建</strong>:建立文本与图片的关联关系
3. <strong>检索策略优化</strong>:根据领域特点调整分块策略、嵌入模型、重排序模型
4. <strong>提示词工程</strong>:控制模型如何展示图片,避免无关图片干扰
写在最后
AI在工业领域的落地,往往不是取代人,而是放大人的能力。
挖掘机维修这个场景里,AI没有学会"修挖掘机"——它学不会老师傅摸一摸油管就能判断故障的手感,也学不会听声音就能定位问题的耳力。但它能做一件事:<strong>把散落在几百本手册、几千个案例里的知识,在需要的时候,精准地送到维修人员眼前。</strong>
当老李在凌晨两点的工地上,看着手机屏幕上的故障示意图,按照步骤一步步排查,最终让挖掘机重新轰鸣起来——那一刻,AI的价值不是替代了谁,而是让一个普通人,在关键时刻,拥有了接近专家的视野。
*本文技术方案参考了基于RAG的挖掘机故障诊断系统实现,该系统已在全国多个工程机械维修场景落地应用。*



